HappyHorse 视频生成

HappyHorse 是阿里云百炼的视频生成模型。在 AI Gateway 中,HappyHorse 使用服务化视频生成接口,不使用

/gateway/v1/chat/completions
/gateway/v1/chat/completions

一、适用模型

模型类型说明
happyhorse-1.0-t2v
happyhorse-1.0-t2v
文生视频根据文本提示词生成视频。
happyhorse-1.0-i2v
happyhorse-1.0-i2v
图生视频根据首帧图片和提示词生成视频。
happyhorse-1.0-r2v
happyhorse-1.0-r2v
参考生视频根据参考图片、角色或风格信息生成视频。

二、提交任务 Endpoint

POST https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/api/v1/services/aigc/video-generation/video-synthesis

请求头:

Authorization: Bearer <API_KEY> Content-Type: application/json X-DashScope-Async: enable

视频生成通常是异步任务。提交任务后,响应中会返回任务 ID,业务系统再根据任务 ID 查询生成状态和结果。

三、文生视频

适用模型:

happyhorse-1.0-t2v
happyhorse-1.0-t2v

curl -X POST "https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/api/v1/services/aigc/video-generation/video-synthesis" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -H "X-DashScope-Async: enable" \ -d '{ "model": "happyhorse-1.0-t2v", "input": { "prompt": "一段 5 秒企业级 AI 网关产品视频:数据请求从多个业务系统进入统一网关,随后按策略路由到不同模型,画面干净、专业、科技感。" }, "parameters": { "size": "1280*720", "duration": 5, "prompt_extend": true } }'

四、图生视频

适用模型:

happyhorse-1.0-i2v
happyhorse-1.0-i2v

curl -X POST "https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/api/v1/services/aigc/video-generation/video-synthesis" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -H "X-DashScope-Async: enable" \ -d '{ "model": "happyhorse-1.0-i2v", "input": { "prompt": "让画面中的数据流缓慢移动,最终汇聚到中心的 AI Gateway 控制台,镜头轻微推进。", "img_url": "https://example.com/first-frame.png" }, "parameters": { "size": "1280*720", "duration": 5, "prompt_extend": true } }'

五、参考生视频

适用模型:

happyhorse-1.0-r2v
happyhorse-1.0-r2v

参考生视频用于根据参考图保持人物、主体或风格一致。不同接入点对参考图字段可能有差异,以下为常见写法,正式接入请以模型广场示例为准。

curl -X POST "https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/api/v1/services/aigc/video-generation/video-synthesis" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -H "X-DashScope-Async: enable" \ -d '{ "model": "happyhorse-1.0-r2v", "input": { "prompt": "保持参考图中的产品外观不变,生成一段展示产品从左到右缓慢旋转的视频。", "ref_img_url": "https://example.com/reference.png" }, "parameters": { "size": "1280*720", "duration": 5, "prompt_extend": true } }'

六、请求字段

字段类型必填适用模型说明
model
model
string全部模型名称,例如
happyhorse-1.0-t2v
happyhorse-1.0-t2v
input
input
object全部输入内容对象。
input.prompt
input.prompt
string全部视频生成提示词,描述主体、动作、镜头、风格和质量要求。
input.img_url
input.img_url
string图生视频必填
happyhorse-1.0-i2v
happyhorse-1.0-i2v
首帧图片 URL。
input.ref_img_url
input.ref_img_url
string参考生视频常用
happyhorse-1.0-r2v
happyhorse-1.0-r2v
参考图片 URL。字段名以模型详情页为准。
parameters
parameters
object全部生成参数。
parameters.size
parameters.size
string全部视频分辨率,例如
1280*720
1280*720
。支持值以模型详情页为准。
parameters.duration
parameters.duration
integer全部视频时长,单位通常为秒。支持范围以模型详情页为准。
parameters.prompt_extend
parameters.prompt_extend
boolean全部是否开启提示词智能扩写。
parameters.seed
parameters.seed
integer全部随机种子。用于提升同参数下结果可复现性。
parameters.watermark
parameters.watermark
boolean全部是否添加水印。是否支持取决于模型。
parameters.fps
parameters.fps
integer全部帧率。是否支持取决于模型。

提示词建议:

  • 明确主体:画面中有什么。
  • 明确动作:主体如何运动。
  • 明确镜头:推近、拉远、环绕、平移、固定镜头等。
  • 明确风格:真实摄影、产品演示、3D 渲染、手绘、科技感等。
  • 明确约束:不要出现文字、不要变形、保持主体一致等。

七、提交任务响应

提交成功后通常会返回任务信息。

{ "output": { "task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "task_status": "PENDING" }, "request_id": "xxxxxxxx" }

字段说明
output.task_id
output.task_id
视频生成任务 ID。后续查询任务状态时使用。
output.task_status
output.task_status
当前任务状态,例如
PENDING
PENDING
RUNNING
RUNNING
SUCCEEDED
SUCCEEDED
FAILED
FAILED
request_id
request_id
请求 ID。排查问题时使用。

八、查询任务结果

视频生成是异步任务。提交后需要根据

task_id
task_id
查询结果。

常见查询方式如下:

curl -X GET "https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/api/v1/tasks/<task_id>" \ -H "Authorization: Bearer $API_KEY"

如果模型广场详情页提供了专用查询示例,请以模型详情页中的查询地址为准。

成功响应通常包含视频 URL:

{ "output": { "task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "task_status": "SUCCEEDED", "video_url": "https://example.com/generated-video.mp4" }, "usage": { "video_duration": 5, "video_count": 1 }, "request_id": "xxxxxxxx" }

失败响应通常包含失败原因:

{ "output": { "task_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "task_status": "FAILED", "code": "InvalidParameter", "message": "Invalid image url." }, "request_id": "xxxxxxxx" }

九、轮询建议

建议业务系统使用轮询方式查询任务结果:

  1. 提交视频生成任务。
  2. 保存
    task_id
    task_id
    和业务单号。
  3. 每隔 3 到 5 秒查询一次任务状态。
  4. 如果状态为
    SUCCEEDED
    SUCCEEDED
    ,保存视频 URL。
  5. 如果状态为
    FAILED
    FAILED
    ,记录
    code
    code
    message
    message
    request_id
    request_id
    并展示失败原因。
  6. 设置最大轮询时间,例如 10 分钟,避免无限等待。

Python 示例:

import time import requests api_key = "<your-api-key>" submit_url = "https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/api/v1/services/aigc/video-generation/video-synthesis" headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", "X-DashScope-Async": "enable", } payload = { "model": "happyhorse-1.0-t2v", "input": { "prompt": "一段 5 秒企业级 AI Gateway 产品演示视频。" }, "parameters": { "size": "1280*720", "duration": 5, "prompt_extend": True, }, } submit_resp = requests.post(submit_url, headers=headers, json=payload, timeout=60) submit_resp.raise_for_status() task_id = submit_resp.json()["output"]["task_id"] query_url = f"https://cn-shanghai-alicloud-aimesh.api.clickzetta.com/gateway/api/v1/tasks/{task_id}" for _ in range(120): query_resp = requests.get(query_url, headers={"Authorization": f"Bearer {api_key}"}, timeout=30) query_resp.raise_for_status() data = query_resp.json() status = data.get("output", {}).get("task_status") if status == "SUCCEEDED": print(data["output"].get("video_url")) break if status == "FAILED": raise RuntimeError(data["output"].get("message", "video generation failed")) time.sleep(5) else: raise TimeoutError("video generation task timeout")

十、常见问题

为什么必须加
X-DashScope-Async: enable
X-DashScope-Async: enable

视频生成耗时较长,通常通过异步任务执行。该 Header 用于声明异步调用。

为什么图生视频失败?

常见原因包括图片 URL 不可访问、图片格式不支持、图片过大、图片内容不符合模型安全策略等。建议使用公网可访问的对象存储地址,并控制图片大小。

为什么生成视频和提示词不完全一致?

视频生成模型会根据提示词进行概率生成。可以通过更明确的主体、动作、镜头、风格和负面约束提升稳定性。

如何控制费用?

视频模型通常按生成时长、分辨率、模型类型等维度计费。生产环境建议限制

duration
duration
size
size
和并发数,并在用量统计中持续观察费用。

联系我们
预约咨询
微信咨询
电话咨询
邮件咨询