Skip to main content
POST
生成视频
使用 multipart/form-dataapplication/json 提交请求,至少通过 character_image_urlcharacter_image_urls 提供一张角色图片,也可同时提供 driving_video_url。这三个字段会选择 POST /v1/videos 的角色动画模式,由 Viggle-Animate 处理,与该接口的其他四种模式使用不同的后端。
角色动画模式不接受文件上传。driving_video_url 和角色图片都必须已经可以通过 URL(https:// 或内部 gs:// 对象)访问。它也是唯一支持普通 JSON 请求体的模式,详见下方 JSON 请求体
本模式与文本生成视频首帧生成视频首尾帧生成视频参考素材生成视频共用 POST /v1/videos。模式由请求字段决定,无需单独的选择参数。角色动画字段不能与 quality 或其他模式的帧、参考素材字段混用,否则返回 400 INVALID_REQUEST,例如 “driving_video_url/character_image_url cannot be combined with quality”。
每次请求固定收取 11 积分($0.11),与实际输出时长无关。本模式不支持 qualityduration_sresolutionaspect_ratioseed。详见下方计费说明。

请求参数

使用 multipart/form-data 或 JSON。 本模式没有单独的 source 参数,由 driving_video_urlcharacter_image_urlcharacter_image_urls 选择。进入角色动画模式后,至少需要一张角色图片。若三个字段都不提供,则根据其他字段进入文本生成视频等模式。

驱动视频与角色图片

  • 驱动视频driving_video_url):可省略,仅凭角色图片也能生成。若提供,长度必须为 5–10 秒(含边界),比本 API 其他视频输入的 0.5–600 秒范围更窄;分辨率至少为 64×64,宽高均为偶数。无法下载 URL 时返回 400 INVALID_REQUEST:“failed to fetch driving_video_url”。
  • 角色图片character_image_url / character_image_urls):至少一张。** 无驱动视频时最多 4 张;有驱动视频时仅允许 1 张**。超限会返回 400 INVALID_REQUEST:“at most 4 character images are allowed”,或 “only one character_image_url is allowed when driving_video_url is provided”。两个图片字段不能同时使用,否则返回 “supply only one of character_image_url or character_image_urls”。
所有驱动视频和角色图片 URL 都必须使用 https://gs://。其他协议(例如 http://)会返回 400 INVALID_REQUEST,例如 “each character_image_url must be a gs:// or https:// URI”;驱动视频字段会返回对应的错误信息。

JSON 请求体

只有角色动画模式支持普通 JSON 请求体(Content-Type: application/json),也支持原生数组。由于本模式无需上传文件,可直接使用:
请求体必须为单个 JSON 对象,包含 driving_video_urlcharacter_image_urlcharacter_image_urls 中的至少一个字段,并满足上方的角色图片要求。空请求体或格式错误会返回 400 INVALID_REQUEST:“request body must be a JSON object”;缺少这三个字段时会返回 “JSON animation requests require character images”。 JSON 对象的键不能重复,因此 character_image_url 只能保存一个字符串。需要多张图片时,使用 character_image_urls 原生数组。

响应参数

返回 200 OK,表示请求已受理,并非最终结果。
创建响应不包含 video_urlcompleted_aterror。处理过程中或完成后的完整结构见获取视频。角色动画的查询响应没有 seed 字段,该字段仅适用于 H3。

计费

每次受理的请求固定收取 11 积分($0.11),创建时扣费,与实际输出时长无关。实际时长需在服务端测量驱动视频后才能确定,而积分预留更早发生,因此每次请求按最大可能输出(约 10 秒)统一计费。watermark 不影响价格。详见计费与保留期限

示例

常见错误

下一步

使用返回的 id 调用获取视频,轮询生成结果。

从文本生成视频

仅凭提示词生成,无需帧图片或参考素材。

从参考视频或图片生成视频

使用 H3 延续参考视频或最多 4 张图片的主体或风格。

授权

Authorization
string
header
必填

服务端 SDK 使用项目 API 密钥,Remote MCP 使用 OAuth 访问令牌。不要在浏览器代码中暴露项目密钥。

请求头

X-Request-Id
string

可选的调用者自定义关联 ID,最长 128 字符。服务会在响应头返回实际使用的值,便于追踪和支持排查。

Required string length: 1 - 128
X-Viggle-Source
string

可选来源标签,最长 128 字符,用于识别 SDK、集成、产品入口或内部工作流。

Required string length: 1 - 128

请求体

multipart/form-data

POST /v1/videos 根据输入选择模式:无帧、参考或角色动画字段时为文本生成;只有首帧时为首帧生成;首尾帧同时提供时为首尾帧生成;任一 reference_video/reference_video_url/reference_image/reference_image_url 字段选择参考素材模式;driving_video_url 或角色图片字段选择独立的 Viggle-Animate。默认使用 multipart,角色动画也支持 JSON。每个帧位置的文件与 URL 互斥,尾帧必须配合首帧,否则返回 400 INVALID_REQUEST。参考模式没有单独的 source/mode 参数,遗漏所有参考字段会回退到文本生成。参考视频的文件与 URL 合计最多 1 个,参考图片合计最多 4 张;超限或与首尾帧混用均返回 400 INVALID_REQUEST。参考视频长 0.5–600 秒,至少 64×64,宽高均为偶数,duration_s 控制生成视频而非参考视频长度。角色动画至少需要一张角色图片,character_image_url 与 character_image_urls 互斥;无驱动视频最多 4 张,有驱动视频仅 1 张。驱动视频可选,只能一个 URL,时长为 5–10 秒(含边界),至少 64×64,宽高为偶数。角色动画不能与 quality 或帧、参考字段混用,不支持 duration_s、resolution、aspect_ratio、seed,prompt 可选。H3 按 duration_s 向上取整后每秒 1 积分($0.01)计费,low/high 同价,分辨率、宽高比及图片或视频条件不影响价格。角色动画每次固定 11 积分。H3 视频自带原生音频,无需额外开关。完整字段及错误信息见各模式的接口正文。

prompt
string

H3 模式必填且非空;Viggle-Animate 模式可选,不强制非空。

Minimum string length: 1
示例:

"A paper airplane gliding through a sunlit office"

quality
enum<string>

H3 模式必填:low 生成更快,high 保真度更高,两者均为 $0.01/秒。不可与角色动画字段混用。

可用选项:
low,
high
示例:

"low"

first_frame_image
file

直接上传的首帧图片,与 first_frame_image_url 二选一。

first_frame_image_url
string<uri>

可公开访问的首帧图片 URL。服务会下载并重新托管,与 first_frame_image 二选一。

last_frame_image
file

直接上传的尾帧图片,与 last_frame_image_url 二选一。必须同时提供首帧。

last_frame_image_url
string<uri>

可公开访问的尾帧图片 URL。服务会下载并重新托管,与 last_frame_image 二选一。必须同时提供首帧。

reference_video
file[]

直接上传的参考视频。为兼容未来扩展,字段声明为可重复,但当前与 reference_video_url 合计最多 1 个视频。提供参考图片时可省略。

Maximum array length: 1
reference_video_url
string<uri>[]

可公开访问的参考视频 URL,服务会下载并重新托管。字段声明为可重复,但当前与文件形式合计最多 1 个视频。

Maximum array length: 1
reference_image
file[]

直接上传的参考图片,可重复,也可与 reference_image_url 混用,两种形式合计最多 4 张。

Maximum array length: 4
reference_image_url
string<uri>[]

可公开访问的参考图片 URL,服务会下载并重新托管。可重复,也可与文件形式混用,合计最多 4 张。

Maximum array length: 4
driving_video_url
string<uri>

驱动视频 URL,其动作将应用到角色图片。支持 https:// 或内部 gs://,仅可提供一个值。视频须为 5–10 秒(含边界)、至少 64×64 像素,且宽高均为偶数。

character_image_url
string<uri>[]

角色参考图片 URL,可重复。与 character_image_urls 互斥。

character_image_urls
string<uri>[]

character_image_url 等效,但将多个值放入一个字段。multipart 中使用 JSON 字符串数组,JSON 请求体中使用原生数组。与 character_image_url 互斥。

priority
integer
默认值:1000

与 H3 模式共用的准入队列优先级。必须使用服务端支持的档位(当前为 10000),否则返回 400 INVALID_REQUEST:"unsupported priority"。通常无需设置。

duration_s
number
默认值:5

生成时长,单位为秒,范围 3–15。计费时向上取整。

必填范围: 3 <= x <= 15
resolution
enum<string>
默认值:768p

480p768p1080p,不影响价格。

可用选项:
480p,
768p,
1080p
aspect_ratio
enum<string>
默认值:16:9

16:99:161:14:33:421:9,不影响价格。

可用选项:
16:9,
9:16,
1:1,
4:3,
3:4,
21:9
seed
integer

大于或等于 0;省略时使用随机种子。

必填范围: x >= 0
watermark
boolean
默认值:false

是否将 Viggle 水印嵌入视频,与其他模式的用法一致。

响应

请求成功。

POST /v1/videos 五种模式共用的受理响应,只表示排队成功,并非最终结果。轮询 GET /v1/videos/{video_id},直至 ready 后读取 video_url;也可通过视频列表查看任务状态。

id
string
必填

视频公开 ID:H3 为 vid_ 前缀,角色动画为 anim_ 前缀。

Minimum string length: 1
status
enum<string>
必填

受理时固定为 queued

可用选项:
queued,
processing,
ready,
failed,
cancelled
progress
integer | null
必填

受理时固定为 null

必填范围: 0 <= x <= 100
created_at
string<date-time> | null
必填

ISO 8601 创建时间,精确到秒。