curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "happyhorse-1.0-video-edit",
"prompt": "让视频中的角色穿上图片中的条纹毛衣",
"video_urls": [
"https://cdn.example.com/source.mp4"
],
"image_urls": [
"https://cdn.example.com/sweater.jpg"
],
"quality": "720p",
"keep_original_sound": true
}
'
{
"created": 1761313744,
"id": "task-unified-1761313744-h1edgh12",
"model": "happyhorse-1.0-video-edit",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 2400,
"video_duration": 6
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 1608660,
"user_group": "default"
}
}{
"error": {
"code": "missing_video_urls",
"message": "happyhorse-1.0-video-edit requires video_urls or video_url",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: happyhorse-1.0-video-edit",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}HappyHorse 1.0
HappyHorse 1.0 Video-Edit 视频编辑
- HappyHorse 1.0 视频编辑,输入 1 个源视频 + 文本指令完成风格变换、局部替换等
- 可选传入 0~5 张参考图,用于风格 / 主体引导
- 不支持
duration:输出视频时长 =min(输入视频时长, 15),由模型决定 - 不支持
aspect_ratio:输出宽高比与源视频一致 - 计费规则特殊:
(输入视频时长 + 输出视频时长) × 分辨率单价;模型会对超过 15 秒的输入截断按 15 秒计算 - 异步处理模式,使用返回的任务ID 进行查询
- 生成的视频链接,有效期为24小时,请尽快保存
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "happyhorse-1.0-video-edit",
"prompt": "让视频中的角色穿上图片中的条纹毛衣",
"video_urls": [
"https://cdn.example.com/source.mp4"
],
"image_urls": [
"https://cdn.example.com/sweater.jpg"
],
"quality": "720p",
"keep_original_sound": true
}
'
{
"created": 1761313744,
"id": "task-unified-1761313744-h1edgh12",
"model": "happyhorse-1.0-video-edit",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 2400,
"video_duration": 6
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 1608660,
"user_group": "default"
}
}{
"error": {
"code": "missing_video_urls",
"message": "happyhorse-1.0-video-edit requires video_urls or video_url",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: happyhorse-1.0-video-edit",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}授权
##所有接口均需要使用Bearer Token进行认证##
获取 API Key:
访问 API Key 管理页面 获取您的 API Key
使用时在请求头中添加:
Authorization: Bearer YOUR_API_KEY
请求体
application/json
视频生成模型名称
可用选项:
happyhorse-1.0-video-edit 示例:
"happyhorse-1.0-video-edit"
编辑指令文本,必填
长度限制:
- 中文:最多
2500个字符 - 非中文:最多
5000个字符 - 超长部分将被自动截断
提示词技巧:
- 使用编辑指令而非创作描述
- 例如:
将主角的衣服换成图片中的条纹毛衣、把视频背景换成雪山
示例:
"让视频中的角色穿上图片中的条纹毛衣"
待编辑的源视频 URL,必填,仅 1 个(取数组第 1 个)
输入视频要求:
- 支持格式:MP4、MOV(建议 H.264 编码)
- 时长:
3~60秒 - 模型会对超过
15秒的输入自动截取前15秒 - 分辨率:长边 ≤
2160像素,短边 ≥320像素 - 宽高比:
1:2.5~2.5:1 - 文件大小:≤
100MB - 帧率:>
8fps - 视频 URL 必须公网可访问(HTTP 或 HTTPS),不支持私有 OSS、内网或需要鉴权的链接
兼容字段: 也接受 video_url / video(优先级低于 video_urls)
Required array length:
1 element示例:
["https://cdn.example.com/source.mp4"]
参考图像 URL 数组,可选,0 ~ 5 张
用于风格 / 主体引导。
输入图片要求:
- 支持格式:JPEG、JPG、PNG、WEBP
- 分辨率:宽高均 ≥
300像素 - 宽高比:
1:2.5~2.5:1 - 单张大小:≤
10MB - 图像 URL 必须公网可访问(HTTP 或 HTTPS)
Maximum array length:
5示例:
["https://cdn.example.com/sweater.jpg"]
是否保留输入视频的原始声音,默认为 false
可选值:
true:保留输入视频的原始声音false:不保留原始声音,由模型生成新声音
示例:
false
视频分辨率档位,默认为 720p
可选值:
720p:标准清晰度,此为默认值1080p:高清清晰度
计费提示: 分辨率档位直接影响计费,详见模型计费规则
可用选项:
720p, 1080p 示例:
"720p"
随机种子,默认随机
说明:
- 取值范围:
1~2147483647 - 固定 seed 可在调试 prompt 时降低参数变化的干扰,提升结果可复现性
必填范围:
1 <= x <= 2147483647示例:
42
任务完成后的 HTTPS 回调地址
回调时机:
- 任务完成(completed)、失败(failed)或取消(cancelled)时触发
- 在计费确认完成后发送
安全限制:
- 仅支持 HTTPS 协议
- 禁止回调到内网 IP 地址(127.0.0.1、10.x.x.x、172.16-31.x.x、192.168.x.x 等)
- URL 长度不超过
2048字符
回调机制:
- 超时时间:
10秒 - 失败后最多重试
3次(分别在失败后1/2/4秒重试) - 回调响应体格式与任务查询接口返回格式一致
- 返回 2xx 状态码视为成功,其他状态码触发重试
示例:
"https://your-domain.com/webhooks/video-task-completed"
响应
视频生成任务创建成功
任务创建时间戳
示例:
1761313744
任务ID
示例:
"task-unified-1761313744-h1edgh12"
实际使用的模型名称
示例:
"happyhorse-1.0-video-edit"
任务的具体类型
可用选项:
video.generation.task 任务进度百分比 (0-100)
必填范围:
0 <= x <= 100示例:
0
任务状态
可用选项:
pending, processing, completed, failed, cancelled 示例:
"pending"
视频任务详细信息
Show child attributes
Show child attributes
任务的输出类型
可用选项:
text, image, audio, video 示例:
"video"
使用量和计费信息
Show child attributes
Show child attributes