
HappyHorse 1.1 API 使用指南:通过 EvoLink 生成 AI 视频

HappyHorse 1.1 API 使用指南
如果你想通过 EvoLink 使用 HappyHorse 1.1,核心流程很直接:
- 根据输入类型选择正确的 HappyHorse 1.1 model ID。
- 向
POST /v1/videos/generations提交视频生成任务。 - 保存返回的 task ID。
- 通过
GET /v1/tasks/{task_id}轮询状态,或配置callback_url接收回调。 - 任务完成后,下载或迁移视频结果到你自己的存储系统。
快速结论
HappyHorse 1.1 在 EvoLink 当前有三条路由:
| 使用场景 | Model ID | 适合什么时候用 |
|---|---|---|
| Text-to-video | happyhorse-1.1-text-to-video | 只有文本提示词,没有图片输入 |
| Image-to-video | happyhorse-1.1-image-to-video | 已经有一张首帧图片 |
| Reference-to-video | happyhorse-1.1-reference-to-video | 需要 1-9 张有顺序的参考图 |
callback_url,以及按生成视频秒数计费。不要把 HappyHorse 1.1 和旧的 HappyHorse 1.0 路由混用。当前 HappyHorse 1.1 页面与 API reference 暴露的是上面三条路由。
目录
- 已确认信息
- 如何选择正确路由
- 接入前准备
- 基础请求流程
- Text-to-video 示例
- Image-to-video 示例
- Reference-to-video 示例
- 上线前要规划的参数
- Async 状态与 callback_url
- 成本规划
- 生产上线清单
- 常见排错
- FAQ
已确认信息
| 项目 | HappyHorse 1.1 on EvoLink |
|---|---|
| API 可用性 | 已在 EvoLink 上线 |
| 创建任务 endpoint | POST /v1/videos/generations |
| 查询任务 endpoint | GET /v1/tasks/{task_id} |
| 交付方式 | Async 任务创建 + 状态查询 |
| 回调支持 | 创建请求中支持 callback_url |
| 输出分辨率 | 720p 与 1080p |
| 时长范围 | 整数秒,3 到 15 |
| 生成结果链接 | 有效期为 24 小时,完成后应及时保存或迁移资产 |
| 计费形态 | 按生成视频秒数计费,受时长和分辨率影响 |
| 当前价格来源 | HappyHorse 1.1 pricing 表 |
这意味着视频生成不应该被当成同步 API 请求处理。生产系统应从一开始就按异步任务、队列、状态回写和资产存储来设计。
如何选择正确路由
最常见的接入错误,是按名字猜路由,而不是按输入资产选路由。先看你的工作流已经有什么输入。
| 输入资产 | 推荐路由 | 原因 |
|---|---|---|
| 只有 prompt,没有图片 | happyhorse-1.1-text-to-video | 保持 prompt-first 生成,并显式控制视频比例 |
| 一张产品图、角色图或场景图 | happyhorse-1.1-image-to-video | 把图片作为首帧,输出比例由源图决定 |
| 多张角色、物体或风格参考图 | happyhorse-1.1-reference-to-video | prompt 可以用 character1、character2 等关键词引用图片顺序 |
简单说:创意探索用 text-to-video,图片动效用 image-to-video,多参考一致性用 reference-to-video。
接入前准备
第一次请求前,先准备这些内容:
| 准备项 | 需要做什么 |
|---|---|
| EvoLink API key | 在 EvoLink 账户中创建 API key |
| 公网图片 URL | image-to-video 和 reference-to-video 必须提供 |
| Model ID | 从三条 HappyHorse 1.1 路由里选择 |
| 结果存储 | 决定完成后的视频文件保存到哪里 |
| Callback endpoint | 生产环境建议准备 HTTPS 回调接口 |
| 成本护栏 | 先定义默认时长、分辨率和重试策略 |
图片输入必须是公网可访问的 HTTP 或 HTTPS URL。内网地址、需要鉴权的对象存储地址、本地文件路径,都不适合作为生产请求输入。
基础请求流程
HappyHorse 1.1 使用 EvoLink 的视频任务模式:
| 步骤 | API 动作 | 你的应用应该保存什么 |
|---|---|---|
| 创建任务 | POST /v1/videos/generations | Task ID、model ID、用户 ID、请求时长、请求分辨率 |
| 跟踪任务 | GET /v1/tasks/{task_id} | 状态、进度、结果链接、usage 信息 |
| 完成任务 | 轮询或 callback_url | 最终视频资产、最终状态、计费元数据 |
| 持久化结果 | 你自己的存储层 | 稳定的视频 URL、任务历史、审计记录 |
model 值,并传入对应路由需要的字段。Text-to-video 示例
model 和 prompt。curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <EVOLINK_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.1-text-to-video",
"prompt": "A cinematic product shot of a transparent electric scooter moving through a clean studio space, slow dolly camera, soft reflections",
"quality": "720p",
"aspect_ratio": "16:9",
"duration": 5,
"callback_url": "https://your-domain.com/webhooks/video-task-completed"
}'Text-to-video 参数建议
| 参数 | 建议 |
|---|---|
prompt | 描述主体、场景、镜头运动、动作、光线和风格 |
quality | 先用 720p 测试,prompt 稳定后再切 1080p |
aspect_ratio | 先确定分发渠道,例如 16:9、9:16、1:1 |
duration | 先用 3-5 秒做测试,再扩大到更长视频 |
seed | 只有需要复现 prompt 迭代时再固定 seed |
Shot 1 [0~3s] wide angle...; Shot 2 [3~6s] medium shot...。Image-to-video 示例
model 和 image_urls。curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <EVOLINK_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.1-image-to-video",
"image_urls": ["https://cdn.example.com/product-hero.png"],
"prompt": "Animate the product with a smooth camera orbit and subtle studio lighting movement",
"quality": "720p",
"duration": 5,
"callback_url": "https://your-domain.com/webhooks/video-task-completed"
}'Image-to-video 输入要求
| 规则 | 要求 |
|---|---|
| 图片数量 | 只能传一张首帧图片 |
| 支持格式 | JPEG、JPG、PNG、WEBP |
| 最小尺寸 | 宽和高建议至少 300 px |
| 宽高比 | 源图应位于支持的宽高比范围内 |
| 文件大小 | 单张图片不超过 10MB |
| URL 访问 | 必须是公网可访问 URL |
aspect_ratio 来设计这条路由。Reference-to-video 示例
model、prompt 和 image_urls。curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <EVOLINK_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.1-reference-to-video",
"prompt": "character1 walks into the scene, picks up the object shown as character2, and places it on the table beside character3",
"image_urls": [
"https://cdn.example.com/person.png",
"https://cdn.example.com/object.png",
"https://cdn.example.com/scene.png"
],
"quality": "720p",
"aspect_ratio": "16:9",
"duration": 5,
"callback_url": "https://your-domain.com/webhooks/video-task-completed"
}'Reference-to-video 输入要求
| 规则 | 要求 |
|---|---|
| 图片数量 | 1-9 张参考图 |
| Prompt 约定 | 使用 character1、character2、character3 等关键词 |
| 图片顺序 | 第一个 URL 对应 character1,第二个对应 character2 |
| 支持格式 | JPEG、JPG、PNG、WEBP |
| 推荐质量 | 使用清晰图片,短边至少 400 px,且短边 / 长边比例至少 0.4 |
| 文件大小 | 单张图片不超过 10MB |
| URL 访问 | 使用公网 HTTP 或 HTTPS URL |
character1 / character2,模型可能混淆角色或物体。用户上传参考图时,建议同时保存用户看到的顺序和最终传入的 image_urls 数组。上线前要规划的参数
API reference 是 schema 的权威来源,但大多数生产问题都集中在少数参数上。
| 参数 | 适用路由 | 生产决策 |
|---|---|---|
model | 全部 | 把产品工作流映射到固定 model ID |
prompt | Text-to-video、reference-to-video、可选 image-to-video | 定义 prompt 模板和校验规则 |
image_urls | Image-to-video、reference-to-video | 调 API 前校验 URL、格式、大小和数量 |
quality | 全部 | 测试默认 720p,通过后再切 1080p |
aspect_ratio | Text-to-video、reference-to-video | 先匹配最终分发渠道 |
duration | 全部 | 先短时长测试,时长会直接影响成本 |
seed | 全部 | 只有复现型迭代才保存 seed |
callback_url | 全部 | 生产队列和后台任务优先用 callback |
建议服务端维护 model ID allowlist,不要让客户端任意传入模型名。
Async 状态与 callback_url
创建任务后,你会收到 task ID。应立即保存它,并查询任务状态:
curl --request GET \
--url https://api.evolink.ai/v1/tasks/<TASK_ID> \
--header 'Authorization: Bearer <EVOLINK_API_KEY>'任务响应可能包含状态、进度、model、task 信息、结果详情和 usage 信息。把 task ID 当成用户侧任务与 EvoLink 生成任务之间的稳定关联键。

轮询 vs callback_url
| 方式 | 适合什么时候用 | 取舍 |
|---|---|---|
| 轮询 | 本地测试、小型后台管理工具 | 简单,但可能增加队列查询压力 |
callback_url | 面向用户的大规模生产任务 | 生产流程更清晰,但需要安全 HTTPS endpoint |
callback_url 必须使用 HTTPS,不应指向私有 IP 段。回调处理器应设计成幂等,因为失败后可能发生重试。成本规划
工程规划时,重点关注这些成本驱动项:
| 成本驱动 | 为什么重要 | 实用护栏 |
|---|---|---|
| 时长 | 生成秒数越多,成本越高 | 默认用 3-5 秒测试 |
| 分辨率 | 更高分辨率会影响计费 | 先用 720p 验证 prompt |
| 重试策略 | 盲目重试会放大成本 | 只对明确的临时失败重试 |
| 路由选择 | reference 工作流更复杂 | 一张首帧够用时,不要用 reference-to-video |
| 批量规模 | 批量任务容易隐藏成本峰值 | 设置用户级和任务级预算限制 |
生产环境建议记录请求时长、实际任务状态、model ID、quality、用户或账户 ID。这样后续账单审计和事故排查会简单很多。
生产上线清单
把 HappyHorse 1.1 接到真实用户前,至少检查这些项:
| 领域 | 检查项 |
|---|---|
| 模型路由 | 把产品动作映射到正确的 HappyHorse 1.1 model ID |
| 输入校验 | 校验 prompt 长度、图片数量、公网 URL、文件格式和图片大小 |
| 队列设计 | 把每个视频任务都当成 async job,并保存 task ID |
| 回调安全 | 使用 HTTPS,校验 payload,保证 handler 幂等 |
| 成本控制 | 设置默认时长、默认分辨率和账户级限制 |
| 资产存储 | 在 24 小时结果链接有效期内,把完成视频迁移到自有存储 |
| Fallback 模型 | 保留另一个 EvoLink 视频模型作为生产 fallback |
| 监控 | 跟踪失败率、平均完成时间、重试率和消费 |
这也是 EvoLink 统一 API 网关的价值所在:一旦你的应用有清晰的路由层,在 HappyHorse、Seedance、Kling、Sora 等视频模型之间切换,更多是模型选择问题,而不是重新接入一个供应商。
常见排错
HappyHorse 1.1 的接入问题通常来自 model ID 不匹配、图片 URL 无效、错误理解路由能力,或把异步任务当同步请求处理。
| 现象 | 可能原因 | 修复方式 |
|---|---|---|
model_access_denied | API key 没有访问该模型的权限 | 检查账户权限,并使用 HappyHorse 1.1 页面展示的 model ID |
| Image-to-video 请求失败 | 缺少 image_urls 或图片 URL 不可公开访问 | 传入一张公网图片 URL |
| Reference 结果混淆角色 | Prompt 没有使用 character1、character2 等引用 | 让 prompt 引用顺序与图片数组顺序一致 |
| 输出比例不符合预期 | 用 image-to-video 时仍期待显式比例控制 | 调整源图比例 |
| 成本高于预期 | 时长、分辨率、重试或批量规模增加 | 先用短时长 720p,并加预算限制 |
| 用户请求超时 | 应用把视频生成当同步接口处理 | 保存 task ID,用轮询或 callback 交付 |
如果本文示例与 API reference 有冲突,以 API reference 为准。
推荐实现模式
大多数产品不应该在每个功能里硬编码 HappyHorse,而应该做一个小型路由层。
type HappyHorseRoute =
| 'text-to-video'
| 'image-to-video'
| 'reference-to-video'
const happyHorseModelIdByRoute: Record<HappyHorseRoute, string> = {
'text-to-video': 'happyhorse-1.1-text-to-video',
'image-to-video': 'happyhorse-1.1-image-to-video',
'reference-to-video': 'happyhorse-1.1-reference-to-video',
}路由层应该放在产品逻辑之后。前端可以问用户“你只有 prompt、有一张首帧图,还是有多张参考图?”后端再把这个选择转成 model ID 和经过校验的请求 body。
什么时候该选择其他 EvoLink 视频模型
HappyHorse 1.1 适合文本、首帧图片和图片参考驱动的视频工作流,但它不是 EvoLink 上唯一的视频路由。
| 需求 | 可以考虑 |
|---|---|
| 需要视频或音频等更丰富参考类型 | Seedance 2.0 |
| 成熟、可重复的短视频 prompt 生产 | Kling 3.0 |
| 需要不同创意风格或模型行为 | 在 EvoLink 模型目录中对比其他路由 |
FAQ
HappyHorse 1.1 使用哪个 endpoint?
POST /v1/videos/generations,并传入与你输入类型匹配的 HappyHorse 1.1 model ID。HappyHorse 1.1 有哪些 model ID?
happyhorse-1.1-text-to-video、happyhorse-1.1-image-to-video 和 happyhorse-1.1-reference-to-video。只有 prompt 时应该用哪个 model ID?
happyhorse-1.1-text-to-video。有一张首帧图片时应该用哪个 model ID?
happyhorse-1.1-image-to-video。这条路由把一张图片作为视频首帧。有多张参考图时应该用哪个 model ID?
happyhorse-1.1-reference-to-video,并在 prompt 中用 character1、character2 等关键词引用 1-9 张有顺序的参考图。Image-to-video 支持 aspect_ratio 吗?
aspect_ratio,优先使用 text-to-video 或 reference-to-video。可以使用 callback_url 吗?
callback_url。生产环境建议使用 HTTPS,并把回调处理器设计成幂等。当前价格在哪里看?
可以复用现有 EvoLink API key 吗?
可以。HappyHorse 1.1 使用与 EvoLink 其他可用模型相同的 API key 和计费系统。
HappyHorse 1.1 支持 video-edit 吗?
当前 HappyHorse 1.1 页面和 API reference 暴露的是 text-to-video、image-to-video 和 reference-to-video。不要把 HappyHorse 1.0 的 video-edit 路由当作 HappyHorse 1.1 路由使用。


