Skip to content

HappyHorse 创建任务-图生视频

HappyHorse图生视频模型,以首帧图片为基础,支持通过文本描述进行引导,生成物理真实、运动流畅的视频。

1 请求地址

POSThttps://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis

2. 请求参数

参数名类型必填默认值描述
modelstring模型名称。可选值:happyhorse-1.1-i2vhappyhorse-1.0-i2v
inputobject输入信息,包含 promptmedia 字段
input.promptstring文本提示词,用于描述期望生成的视频内容。支持任何语言输入,长度不超过 5000 个非中文字符或 2500 个中文字符
input.mediaarray输入媒体列表,用于指定视频生成所需的图像。有且仅有 1 张首帧图像
input.media[].typestring媒体素材类型。取值:first_frame(首帧)
input.media[].urlstring媒体素材 URL 或 Base64 编码数据。支持格式:JPEG、JPG、PNG、WEBP;分辨率 ≥ 300px;宽高比 1:2.5~2.5:1;文件大小 ≤ 20MB
parametersobject-视频处理参数,如分辨率、时长等
parameters.resolutionstring1080P视频分辨率档位。可选值:720P1080P。输出宽高比与输入首帧近似一致
parameters.ratiostring16:9视频宽高比16:9 9:16 3:4 4:3 4:5 5:4 1:1 9:21 21:9
parameters.durationinteger5视频时长,单位秒。取值范围 [3, 15]
parameters.watermarkbooleantrue是否添加水印标识
parameters.seedinteger随机数种子,取值范围 [0, 2147483647]。固定 seed 可提升结果复现性

3. 请求示例

bash
curl --location 'https://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis' \
    -H 'X-DashScope-Async: enable' \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
    "model": "happyhorse-1.1-i2v",
    "input": {
        "prompt": "一只猫在草地上奔跑",
        "media": [
            {
                "type": "first_frame",
                "url": "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
            }
        ]
    },
    "parameters": {
        "resolution": "720P",
        "duration": 5
    }
}'
powershell
$headers = @{
    "X-DashScope-Async" = "enable"
    "Authorization" = "Bearer YOUR_API_KEY"
    "Content-Type" = "application/json"
}
$body = @{
    model = "happyhorse-1.1-i2v"
    input = @{
        prompt = "一只猫在草地上奔跑"
        media = @(
            @{
                type = "first_frame"
                url = "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
            }
        )
    }
    parameters = @{
        resolution = "720P"
        duration = 5
    }
} | ConvertTo-Json -Depth 10

$response = Invoke-RestMethod -Uri "https://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis" -Method Post -Headers $headers -Body $body
Write-Host $response
python
import requests

url = "https://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis"
headers = {
    "X-DashScope-Async": "enable",
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
data = {
    "model": "happyhorse-1.1-i2v",
    "input": {
        "prompt": "一只猫在草地上奔跑",
        "media": [
            {
                "type": "first_frame",
                "url": "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
            }
        ]
    },
    "parameters": {
        "resolution": "720P",
        "duration": 5
    }
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

HttpClient client = HttpClient.newHttpClient();
String json = """
{
    "model": "happyhorse-1.1-i2v",
    "input": {
        "prompt": "一只猫在草地上奔跑",
        "media": [
            {
                "type": "first_frame",
                "url": "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
            }
        ]
    },
    "parameters": {
        "resolution": "720P",
        "duration": 5
    }
}
""";

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis"))
    .header("X-DashScope-Async", "enable")
    .header("Authorization", "Bearer YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
vue
<script setup>
import axios from 'axios'

const url = 'https://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis'
const data = {
  model: 'happyhorse-1.1-i2v',
  input: {
    prompt: '一只猫在草地上奔跑',
    media: [
      { type: 'first_frame', url: 'https://cdn.translate.alibaba.com/r/wanx-demo-1.png' }
    ]
  },
  parameters: { resolution: '720P', duration: 5 }
}

const res = await axios.post(url, data, {
  headers: {
    'X-DashScope-Async': 'enable',
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
})
console.log(res.data)
</script>
javascript
const url = 'https://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis'

fetch(url, {
  method: 'POST',
  headers: {
    'X-DashScope-Async': 'enable',
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'happyhorse-1.1-i2v',
    input: {
      prompt: '一只猫在草地上奔跑',
      media: [{ type: 'first_frame', url: 'https://cdn.translate.alibaba.com/r/wanx-demo-1.png' }]
    },
    parameters: { resolution: '720P', duration: 5 }
  })
})
  .then(res => res.json())
  .then(data => console.log(data))
csharp
using System.Net.Http;
using System.Text;
using Newtonsoft.Json.Linq;

var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-DashScope-Async", "enable");
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");

var requestBody = new JObject
{
    ["model"] = "happyhorse-1.1-i2v",
    ["input"] = new JObject
    {
        ["prompt"] = "一只猫在草地上奔跑",
        ["media"] = new JArray
        {
            new JObject
            {
                ["type"] = "first_frame",
                ["url"] = "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
            }
        }
    },
    ["parameters"] = new JObject
    {
        ["resolution"] = "720P",
        ["duration"] = 5
    }
};

var content = new StringContent(requestBody.ToString(), Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis", content);
Console.WriteLine(await response.Content.ReadAsStringAsync());
vb
Imports System.Net.Http
Imports System.Text
Imports Newtonsoft.Json.Linq

Module ImgToVideo
    Sub Main()
        Dim client As New HttpClient()
        client.DefaultRequestHeaders.Add("X-DashScope-Async", "enable")
        client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY")

        Dim requestBody As New JObject()
        requestBody("model") = "happyhorse-1.1-i2v"

        Dim inputObj As New JObject()
        inputObj("prompt") = "一只猫在草地上奔跑"
        Dim mediaArray As New JArray()
        Dim mediaItem As New JObject()
        mediaItem("type") = "first_frame"
        mediaItem("url") = "https://cdn.translate.alibaba.com/r/wanx-demo-1.png"
        mediaArray.Add(mediaItem)
        inputObj("media") = mediaArray
        requestBody("input") = inputObj

        Dim paramsObj As New JObject()
        paramsObj("resolution") = "720P"
        paramsObj("duration") = 5
        requestBody("parameters") = paramsObj

        Dim json As String = requestBody.ToString()
        Dim content As New StringContent(json, Encoding.UTF8, "application/json")
        Dim response As HttpResponseMessage = client.PostAsync(
            "https://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis", content).Result
        Console.WriteLine(response.Content.ReadAsStringAsync().Result)
    End Sub
End Module
java
import System.*;
import System.Net.*;
import System.IO.*;
import System.Text.*;

public class ImgToVideo {
    public static void main(String[] args) throws Exception {
        String url = "https://llm.infiflow.cn/dashscope/api/v1/services/aigc/video-generation/video-synthesis";
        String json = "{\"model\":\"happyhorse-1.1-i2v\",\"input\":{\"prompt\":\"一只猫在草地上奔跑\",\"media\":[{\"type\":\"first_frame\",\"url\":\"https://cdn.translate.alibaba.com/r/wanx-demo-1.png\"}]},\"parameters\":{\"resolution\":\"720P\",\"duration\":5}}";

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "application/json";
        request.Headers.Add("X-DashScope-Async", "enable");
        request.Headers.Add("Authorization", "Bearer YOUR_API_KEY");

        byte[] bytes = Encoding.UTF8.GetBytes(json);
        request.ContentLength = bytes.length;
        request.GetRequestStream().write(bytes, 0, bytes.length);

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        String result = new StreamReader(response.getResponseStream()).readToEnd();
        System.out.println(result);
    }
}

4. 响应参数

字段类型描述
outputobject任务输出信息,包含 task_idtask_status
output.task_idstring任务 ID,查询有效期 24 小时
output.task_statusstring任务状态。枚举值:PENDING(排队中)、RUNNING(处理中)、SUCCEEDED(成功)、FAILED(失败)、CANCELED(已取消)、UNKNOWN(未知)
request_idstring请求唯一标识,用于请求明细溯源和问题排查
codestring请求失败的错误码,请求成功时不返回
messagestring请求失败的详细信息,请求成功时不返回

5. 响应示例

json
{
    "output": {
        "task_status": "PENDING",
        "task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx"
    },
    "request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}
json
{
    "code": "InvalidApiKey",
    "message": "No API-key provided.",
    "request_id": "7438d53d-6eb8-4596-8835-xxxxxx"
}

算力有源 智算无限