关于 venice-video
venice-video 是通过 Venice 异步视频 API 生成和处理视频的技能,适用于可等待任务完成的工作流。它涵盖多种视频生成与转换方式,并可先查询报价再提交任务。
主要功能
- 01文本生成视频
- 02图像及参考视频生成
- 03视频到视频转换
- 04视频升频与音频
- 05报价、排队和获取结果
适用场景
- 01提交前查询视频任务价格
- 02根据提示词或图像生成视频
- 03转换或升频现有视频
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ veniceai/ skills --skill venice-video安装后在 Claude Code 中输入/venice-video确认已加载。
详细介绍
Venice 视频
视频是异步的——与音乐音频一样。当前有 4 个端点,另有 1 个已停用端点:
| 端点 | 用途 |
|---|---|
POST /video/quote | 以美元报价(不收费,也不创建任务)。无需 API 密钥,但升级模型除外。 |
POST /video/queue | 验证、收费并加入队列。立即返回 queue_id。 |
POST /video/retrieve | 轮询状态、下载 video/mp4,或接收任务失败信息。 |
POST /video/complete | 清理已完成的媒体。目前会拒绝来自 /video/queue 的 queue_id,因此请在 retrieve 时使用 delete_media_on_completion(参见步骤 4)。 |
POST /video/transcriptions | 已停用——始终返回 410。 参见下文。 |
/video/queue、/video/retrieve 和 /video/complete 接受 Bearer API 密钥或 x402 SIGN-IN-WITH-X 钱包标头(参见 venice-x402)。
适用场景
- 你需要文本生成视频、图像生成视频、首尾帧过渡、参考图生成视频(R2V)、视频生成视频、视频升级或带音频的视频。
- 你可以接受异步执行(具体时间从几秒到几分钟不等,取决于模型、时长和队列深度——
/video/retrieve会返回average_execution_time和execution_duration,以提供实时估算)。 - 你希望在提交前精确计算任务价格(
/video/quote)。
不适用于:理解或总结现有视频——请使用 venice-chat,并提供 video_url 内容部分。
先选择模型
以下每个字段都因模型而异。构建请求前,请通过 GET /models?type=video 读取模型的约束(参见 venice-models):
constraints.model_type——text-to-video、image-to-video(包括 R2V 和过渡模型)或video(视频生成视频、动作控制、升级)。constraints.durations、aspect_ratios、resolutions——准确接受的字符串(区分大小写:MiniMax H3 Max 使用480P/768P/1080P,MiniMax H3 使用768P/2K)。constraints.audio_configurable——只有此项为真时,才能发送audio。constraints.audio_input——只有此项为真时,才能发送audio_url。constraints.prompt_character_limit——当模型设定了自身限制时会提供此字段;否则限制为 2500 个字符。
请求架构因模型而异,且严格执行:模型不支持的字段会返回 400(例如,"This model does not support aspect_ratio"),而不会被静默忽略。
生命周期——生成
1. 使用 /video/quote 获取价格
curl https://api.venice.ai/api/v1/video/quote \
-H "Content-Type: application/json" \
-d '{
"model": "wan-2.6-text-to-video",
"duration": "5s",
"aspect_ratio": "16:9",
"resolution": "720p",
"audio": true
}'
响应:{"quote": 0.55}(USD)。
- 必填:
model;对于时长固定的模型,还需填写duration。 - 如果未提供
resolution和aspect_ratio,则使用模型默认值。 - 报价端点会丢弃模型不使用的字段(例如,
audio_configurable: false的模型中的audio、没有aspect_ratios的模型中的aspect_ratio、未知键)——/video/queue会拒绝这些字段。报价成功并不能证明队列请求体有效。 - Upscale 模型(
topaz-video-upscale):报价需要 Bearer API 密钥(不提供密钥会返回403,因此 x402 钱包无法为其报价——请直接加入队列,并依赖402余额检查),并且需要video_url——Venice 会获取文件以检测时长、FPS 和高度(无法读取时返回400)。duration会被忽略。传入upscale_factor(1/2/4)即可按你要加入队列的倍率计算价格;resolution: "1x"/"2x"/"4x"是已弃用的别名。 - 视频转视频模型(例如
wan-2-7-video-to-video):必须提供video_url;时长会从文件中检测。 - 支持参考视频的 R2V 模型(Seedance 2.x、MiniMax H3 / H3 Max、Wan 3.0 R2V 等):传入
reference_video_total_duration(所有参考视频的总秒数,上限为模型的总时长限制——例如 Seedance 2.0 / H3 / Wan 3.0 为 15 秒,Seedance 2.5 为 30 秒;超过上限会返回400)。参考视频会计费,因此省略该字段会返回不含参考视频的价格,导致报价偏低。reference_image_count(不得超过模型的参考图数量上限,否则返回400)用于计算按输入图像计费的模型价格;省略时按一张图计费。
2. 使用 /video/queue 提交
curl https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-2.6-text-to-video",
"prompt": "Commerce being conducted in the city of Venice, Italy.",
"negative_prompt": "low resolution, worst quality, defects",
"duration": "5s",
"aspect_ratio": "16:9",
"resolution": "720p",
"audio": true
}'
响应:{ "model": "...", "queue_id": "uuid" };由 VPS 承载的模型还会返回 download_url。
- 验证和余额检查会在返回
200之前进行;API 密钥调用方也会在此时扣费(x402 钱包调用方在任务被接受后扣费)。内容审查和提供方提交会在响应后进行,因此相关失败会通过/video/retrieve报告。失败通常会退款(如有,错误响应体中的credits_refunded会报告结果),但有一个例外:如果提供方因内容政策拒绝请求,Runway 模型(runway-gen4-5、runway-gen4-5-text、runway-gen4-turbo)仍会扣费(credits_refunded: false)。 - 对于由 VPS 承载的模型,响应会返回
download_url——目前包括所有 Grok Imagine 视频模型,包括*-privateID,以及grok-imagine-1-5-lite-text-to-video/grok-imagine-1-5-lite-image-to-video。应根据队列响应是否包含download_url来判断,而不是看模型 ID。如果包含,/video/retrieve只会返回 JSON 状态;当状态为COMPLETED时,使用GET请求download_url(不带身份验证标头)。该链接有效期最长为 24 小时。
3. 使用 /video/retrieve 轮询
curl https://api.venice.ai/api/v1/video/retrieve \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"wan-2.6-text-to-video","queue_id":"...","delete_media_on_completion":false}' \
--output out.mp4
请求体:model 和 queue_id(均必填),可选的 delete_media_on_completion(默认为 false)。不接受其他键。
- 处理中:返回
200JSON{"status":"PROCESSING","average_execution_time":145000,"execution_duration":53200}(单位为毫秒;average_execution_time是 P80 估算值)。 - 已完成(大多数模型):返回
200二进制video/mp4响应体。 - 已完成(由 VPS 承载的模型):返回
200JSON{"status":"COMPLETED", ...}——请获取队列响应中的download_url。 - 失败:返回非
200的 JSON 错误(请参阅错误)。终止性失败(提交失败、内容政策拒绝、提供方故障、媒体过期)会记录在任务中,因此使用同一queue_id再次轮询会返回相同错误。429为临时错误——请退避后再次轮询。 delete_media_on_completion: true会请求在输出返回后删除存储的输出,以此替代单独调用/video/complete。queue_id限定于密钥对应的用户,并会在 24 小时后过期;未知或已过期的 ID 会返回400"Request ID is invalid."。
4. 使用 /video/complete 清理
curl https://api.venice.ai/api/v1/video/complete \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"...","queue_id":"..."}'
请求体:仅包含 model 和 queue_id。响应:200 {"success": true};如果删除未成功,则返回 {"success": false}。目前,对于由 /video/queue 发放的 queue_id,该接口会返回 400 "Request ID is invalid.",因此不要依赖它:通过设置 delete_media_on_completion: true 进行轮询并清理。
/video/queue 请求字段
| 字段 | 类型 | 说明 |
|---|---|---|
model | string | 必填。 |
prompt | string | 必填(至少包含 1 个非空白字符),但放大模型和 minimax-h3-max-multi-angle 除外。每个模型的最大长度:默认 2500;否则为 constraints.prompt_character_limit(从 Runway 的 1000 到 Wan 3.0 的 20000 不等)。 |
negative_prompt | string | 与 prompt 的最大长度相同。不支持负面提示词的模型会忽略此字段。 |
duration | string | 必填,取值来自 constraints.durations(范围为 1s–30s)。放大模型和视频转视频模型:省略此字段(服务会检测源视频时长),或以字符串形式发送秒数,例如 "12.5"(≤ 300)——不接受字面值 "Auto"。seedance-2-5-reference-to-video-basic 也接受 "-1" / "auto"(匹配源片段)。 |
aspect_ratio | string | 当模型列出了 aspect_ratios 时为必填;列表为空时会被拒绝(图像驱动型模型会从输入中获取比例)。Seedance 2.0 R2V -basic 模型(标准 / fast / mini)和 seedance-2-5-reference-to-video-basic 也接受 adaptive / auto(匹配源片段)。 |
resolution | string | 取值来自 constraints.resolutions;默认使用模型默认值。模型未列出任何分辨率时,以及放大模型中,都会被拒绝——请改用 upscale_factor。 |
upscale_factor | integer 1 / 2 / 4 | 仅适用于放大模型。1 = 仅增强。默认使用模型默认值(topaz-video-upscale 为 2)。 |
audio | bool | 仅当 audio_configurable: true 时可用;默认值为 true。 |
image_url | URL or data: URL | 图像转视频的起始帧。文本转视频模型不接受此字段。 |
end_image_url | URL or data: URL | 适用模型的结束帧(否则返回 400)。过渡模型必须提供此字段:pixverse-c1-transition、pixverse-v5.6-transition、flux-3-first-last-frame-to-video。 |
audio_url | URL or data: URL | 适用于 audio_input: true 的模型。支持 WAV / MP3;通常最长 ≤ 30 s、大小 ≤ 15 MB。在 Seedance 2.x R2V 和 MiniMax H3 R2V 中,它会被视为额外的参考音频(遵循相同的单片段限制)。 |
video_url | URL or data: URL | 放大模型和视频转视频模型必填。支持 MP4、MOV、WebM 和其他常见容器格式。 |
reference_image_urls[] | URLs | R2V 角色 / 风格参考。每个模型的上限(未指定时为 4)——请参阅限制。 |
reference_video_urls[] | URLs | R2V 动作 / 摄像机 / 风格参考素材(.mp4 / .mov)。也可用作 Seedance 编辑 / 扩展的源片段。 |
reference_audio_urls[] | URLs | 配音、旁白或音效参考素材(.wav / .mp3)。在 Seedance 中,请在提示词中以 <Audio 1>、<Audio 2> 引用。必须至少搭配一个图像或视频参考——仅提供音频会返回 400。 |
reference_document_urls[] | URLs, ≤ 1 | 仅适用于 wan-3-0-reference-to-video:文档(pdf、docx、pptx、xlsx、txt、md 等;≤ 100 MB)或公开网页。 |
elements[] | array, ≤ 4 | 适用于 Kling O3 R2V 模型和 kling-v3-4k-reference-to-video(该模型还要求提供 image_url)。每个元素都需要 frontal_image_url(以及最多 3 个 reference_image_urls)或 video_url。请在提示词中以 @Element1、@Element2 引用。 |
scene_image_urls[] | URLs, ≤ 4 | 与 elements 适用相同的模型:场景 / 风格参考;请以 @Image1、@Image2 引用。 |
camera_trajectory[] | array, 2–12 | 仅适用于 minimax-h3-max-multi-angle——请参阅配方。 |
omni_reference_task_type | auto / reference / edit / extend | 仅适用于 seedance-2-5-reference-to-video-basic(editing / extension 也可作为别名)。edit / extend 需要提供 reference_video_urls。若已提供 reference_video_urls,则可省略此字段;Venice 会根据提示词推断任务类型。 |
bitrate_mode | standard / high | 适用于 Seedance 2.0 / 2.5 模型(不适用于 1.5)。默认值为 standard;不会改变价格。 |
image_references[] | {image_url, type?: subject|background, ref_name?} | 带类型的参考(例如 pixverse-c1-reference-to-video);请以 @ref_name 引用。 |
video_references[] | {video_url, ref_name?, audio_url?} | 适用于 per_reference_audio: true 的模型(例如 wan-2-7-reference-to-video):参考片段可选配每个实体的语音。 |
voice_id | string | grok-imagine-1-5-reference-to-video-private:预设的 Grok 语音 ID(例如 eve;无效 ID 的 400 响应会列出允许的值);不支持上传音频。 |
consents | object | Seedance 人脸同意声明——请参阅注意事项。/models 列出的任何模型都不使用此字段。 |
anon_user_id | string, ≤ 128 | 可选的终端用户标识符(可打印 ASCII,不含 ||)。 |
所有媒体 URL 都必须是 data: URL,或指向公共主机的 http(s):// URL;私有、回环、链路本地及云元数据地址会被拒绝,并返回 400。接受 bitrate_mode、image_references、video_references、voice_id 和 anon_user_id,但这些参数未列入已发布的 OpenAPI 架构。 |
参考媒体限制
不同模型的限制有所不同。常见 R2V 系列模型的当前上限如下(截至 2026-09-30):
| 模型系列 | 参考图像 | 参考视频(单个片段 / 总计) | 参考音频(单个片段 / 总计) |
|---|---|---|---|
seedance-2-0-*-reference-to-video-basic(包括 fast / mini) | 9 | 3(2–15 s,≤ 50 MB / 15 s) | 3(2–15 s,≤ 15 MB / 15 s) |
seedance-2-5-reference-to-video-basic | 30 | 10(2–30 s,≤ 50 MB / 30 s) | 10(2–30 s,≤ 15 MB / 30 s) |
seedance-2-5-us-reference-to-video-private | 30 | 10(2–30 s,≤ 200 MB / 30 s) | 10(2–30 s,≤ 15 MB / 30 s) |
wan-3-0-*reference-to-video | 10 | 5(1–15 s,≤ 100 MB / 15 s) | 5(1–15 s,≤ 15 MB / 15 s) |
minimax-h3-reference-to-video、minimax-h3-max-reference-to-video | 9 | 3(2–15 s,≤ 50 MB / 15 s) | 3(2–15 s,≤ 15 MB / 15 s;audio_url 计入 3 个上限) |
minimax-h3-enhanced-reference-to-video | 9 | — | 3(同上) |
kling-o3-{standard,pro}-reference-to-video、kling-v3-4k-reference-to-video | 4 | — | — |
kling-o3-4k-reference-to-video、pixverse-c1-reference-to-video、grok-imagine-reference-to-video-private、grok-imagine-1-5-reference-to-video-private | 7 | — | — |
gemini-omni-flash-1-1-reference-to-video | 10 | — | — |
gemini-omni-flash-reference-to-video | 3 | — | — |
超出限制的数组会返回 400。如果模型列出了 constraints.reference_image_min_aspect_ratio / reference_image_max_aspect_ratio(Seedance 和 MiniMax H3 中分别为 0.4 和 2.5),则宽高比不在此范围内的图像会被拒绝;短边像素低于 reference_image_min_short_side_pixels 的图像会自动放大。
常见用法
文本 → 带音频的视频
{
"model": "wan-2.6-text-to-video",
"prompt": "A golden retriever chasing a frisbee in slow motion at sunset.",
"duration": "10s",
"aspect_ratio": "16:9",
"resolution": "1080p",
"audio": true
}
图像 → 视频
{
"model": "wan-2.6-image-to-video",
"prompt": "Camera slowly zooms out, revealing the cityscape.",
"image_url": "https://example.com/cityscape.jpg",
"duration": "5s",
"resolution": "720p"
}
不要设置 aspect_ratio:此模型的 aspect_ratios 列表为空,因此宽高比会跟随图像,传入该参数会返回 400。
视频超分辨率
{
"model": "topaz-video-upscale",
"video_url": "https://example.com/input.mp4",
"upscale_factor": 2
}
无需设置 prompt 或 duration(时长会从文件中检测);不接受 resolution。源视频最长可达 300 s。
多元素一致性(Kling O3 R2V)
{
"model": "kling-o3-pro-reference-to-video",
"prompt": "@Element1 walks toward @Element2 against @Image1.",
"duration": "5s",
"aspect_ratio": "16:9",
"elements": [
{ "frontal_image_url": "https://example.com/char1.png", "reference_image_urls": ["https://example.com/alt1.png"] },
{ "frontal_image_url": "https://example.com/char2.png" }
],
"scene_image_urls": ["https://example.com/street-scene.jpg"]
}
Seedance 2.5 编辑(匹配源片段)
{
"model": "seedance-2-5-reference-to-video-basic",
"prompt": "Strictly edit <Video 1>: make it snow, keep everything else unchanged.",
"reference_video_urls": ["https://example.com/source.mp4"],
"omni_reference_task_type": "edit",
"duration": "auto",
"aspect_ratio": "adaptive",
"resolution": "720p"
}
duration: "auto" / "-1" 需要 4–30 s 的源片段(否则返回 400)。引用时使用相同的 duration / aspect_ratio,并设置 reference_video_total_duration(匹配源视频的引用必填,否则返回 400)。
H3 Max 多角度(摄像机环绕)
{
"model": "minimax-h3-max-multi-angle",
"image_url": "https://example.com/scene.jpg",
"duration": "5s",
"resolution": "768P",
"camera_trajectory": [
{ "time": 0, "azimuth": 0, "elevation": 0, "distance": 1 },
{ "time": 1, "azimuth": 45, "elevation": 10, "distance": 1 }
]
}
camera_trajectory:包含 2–12 个关键帧,每个关键帧必须且只能包含 time、azimuth、elevation、distance(额外键会导致返回 400)。time 取值为 0–1,且必须严格递增;azimuth 为有符号角度(绝对移动总量 ≤ 32 圈);elevation 为 −90…90;distance > 0,相对于初始摄像机位置(1 = 不变)。省略此参数时,由模型选择路径。必须提供 image_url,prompt 可选;宽高比会跟随图像(传入 aspect_ratio 会返回 400)。
/video/transcriptions(已停用)
POST /video/transcriptions 已移除。每个请求(无论是否经过身份验证)都会收到 410,响应头包含 Deprecation: true 和 Link: </api/v1/chat/completions>; rel="successor-version", </api/v1/models>; rel="describedby",并在 error 消息中指向替代方案(每 IP 的请求频率超过 60 次/分钟的调用方会收到 429,消息前会加上 Rate limit exceeded.)。
替代方案:若要分析、总结视频或提出有关视频的问题(包括提供方支持的 YouTube URL),请对 model_spec.capabilities.supportsVideoInput 为 true 的模型调用 POST /chat/completions,并在内容部分中传入 {"type":"video_url","video_url":{"url":"..."}} — 每个请求最多 3 个视频。请参阅 venice-chat。若要获取音频文件的逐字转录,请使用 venice-audio-transcription。
完整轮询循环
// Pass download_url from the queue response whenever it is present.
async function waitForVideo(model: string, queueId: string, downloadUrl?: string) {
while (true) {
const res = await fetch(`${base}/video/retrieve`, {
method: 'POST', headers,
body: JSON.stringify({ model, queue_id: queueId, delete_media_on_completion: true }),
})
const ct = res.headers.get('content-type') ?? ''
if (res.ok && ct.startsWith('video/')) {
return Buffer.from(await res.arrayBuffer())
}
const body = await res.json()
if (!res.ok) {
// Job failures are replayed here (e.g. 422 with credits_refunded). 429 / 502 / 503 are transient.
if ([429, 502, 503].includes(res.status)) { await new Promise(r => setTimeout(r, 15000)); continue }
throw new Error(`video failed (${res.status}): ${JSON.stringify(body)}`)
}
if (body.status === 'COMPLETED' && downloadUrl) {
const v = await fetch(downloadUrl)
return Buffer.from(await v.arrayBuffer())
}
if (body.status === 'COMPLETED') throw new Error('COMPLETED without download_url: pass download_url from the queue response')
if (body.status !== 'PROCESSING') throw new Error(`unexpected ${body.status}`)
await new Promise(r => setTimeout(r, 5000))
}
}
错误
| 代码 | 含义 |
|---|---|
400 | 参数无效(此模型不支持该字段、枚举值错误、缺少 prompt / image_url / video_url、数组超出限制、媒体 URL 被拦截或无法读取、图像损坏)。在 /video/retrieve 上:对于未知或已过期的 queue_id,返回 "Request ID is invalid."。在 /video/complete 上:目前,对于 /video/queue 发出的所有 queue_id,都会返回相同消息 — 请改用 delete_media_on_completion: true 进行清理(请参阅步骤 4)。 |
401 | 身份验证失败。 |
402 | 余额不足或 API 密钥的支出限额不足(在 /video/queue 上扣费前检查)。钱包余额低于 $0.10 下限时,会返回 x402 PAYMENT_REQUIRED 响应体和 PAYMENT-REQUIRED 响应头;余额高于下限但低于此任务的报价时,会返回不带响应头的普通 {"error":"Insufficient USD or Diem balance…"} 响应体 — 请通过 /x402/top-up 充值后重试。 |
403 | 所在地区无法使用该模型、API 密钥的模型隐私设置不允许使用该模型,或未经过身份验证的放大报价。 |
404 | 找不到模型(适用于所有视频端点)。在 /video/retrieve 上:媒体已过期或已删除。 |
409 | 仅限 /video/queue;未列出的启用人脸功能的 Seedance 模型:{"error":{"code":"needs_consent",...},"consent_flow":"seedance","face_media_roles":[...],"consent":{"consent_version","policy_text"},"docs_url"}。 |
410 | /video/transcriptions(已停用)。 |
413 | 请求负载过大 — 请缩小媒体文件,或将其托管,而不是以内联 data: URL 的方式传入。 |
422 | 内容策略或提供方端故障。筛查在任务受理后运行,因此此类错误通常会在 /video/retrieve 上返回:提供方拒绝 {"error":{"message","type":"provider_content_policy","credits_refunded",...}}(可能包含 recommended_model),或提供方端故障 {"error","credits_refunded"}(如果有,还会包含 hint)。 |
429 | 请求频率受限(/video/queue 为 40 次请求/分钟,/video/retrieve 为 120 次请求/分钟,经过身份验证的放大报价为 40 次请求/分钟 — 均按用户计算),或模型过载。 |
500 | 推理或内部故障。/video/retrieve 重放的 500 表示该 queue_id 已终止 — 请重新提交(如果提示词 / 媒体可能被拦截,请修改后再提交)。 |
502 | 仅限 /video/retrieve:视频已完成,但无法从提供方获取。此错误不会记录在任务中 — 请延长等待时间后再次轮询。 |
503 | 模型离线或已满负载 — 请稍后重试。 |
有关响应体格式和重试策略,请参阅 venice-errors。
注意事项
- 报价接口的校验不如队列接口严格。 报价接口会丢弃不支持的字段;队列接口会对这些字段返回
400。请根据/models的约束构建队列请求体,而不要照搬成功报价的请求体。 - 只要模型列出了宽高比,
/video/queue就必须提供aspect_ratio;如果模型未列出任何宽高比,则禁止提供该字段。 - 队列请求成功 ≠ 生成成功。 审核和提供商错误会在
/video/retrieve中返回;如有退款状态,会显示在credits_refunded中。务必处理所有非200的 retrieve 响应。Runway 因内容政策被拒的请求不会退款。 download_url仅由 VPS 支持的模型(Grok Imagine 系列模型)返回——请检查该字段,而非模型 id。请处理两种路径:从/video/retrieve获取二进制数据,或在状态为COMPLETED后GET download_url。该链接会在 24 h 内过期,请尽快下载。- 放大模型使用
upscale_factor,绝不使用resolution(队列接口会拒绝resolution;报价接口仅将1x/2x/4x作为已弃用的别名接受)。 GET /models会将大多数放大模型和视频转视频模型的时长列为"Auto",但/video/queue会拒绝字面值"Auto"——请改为省略duration。- **Seedance 命名:**列出的 Seedance id 以
-basic结尾(例如seedance-2-0-text-to-video-basic),此外还有单独的seedance-2-5-us-*-private系列。两者都不使用consents/needs_consent,且包含可识别人物的媒体可能会被上游拒绝。人脸同意流程(consents.seedance中的confirmed_terms_and_privacy、confirmed_legal_right、confirmed_screening_acknowledged均设为true,并在收到409后重新提交)仅适用于未列出的 Seedance id;/models不会返回这些 id。 - Seedance 与来源匹配的取值:
aspect_ratio: "adaptive"/"auto"适用于-basicSeedance 2.0 / 2.5 R2V 模型;duration: "-1"/"auto"仅适用于seedance-2-5-reference-to-video-basic。两者在队列请求中都必须提供reference_video_urls,在报价请求中都必须提供reference_video_total_duration。seedance-2-5-us-*-private模型不支持这些取值(adaptive会返回400,auto在这些模型中是普通的宽高比选项)。其他模型中的"auto"也只是普通的宽高比选项(例如 Flux 3)。 - MiniMax H3 和 H3 Max 的参考视频模型不接受同时提供
image_url/end_image_url和参考媒体的请求;audio_url也会计入参考音频上限。 data:URL 会计入载荷大小;较大的 base64 视频可能触发413——建议使用托管 URL。- 价格会动态变化(受分辨率、时长、音频、参考媒体和促销活动影响)——请务必获取报价,不要硬编码。