# WorkBuddy Video 使用与 API 接入

更新：2026-09-30（新增 MiniMax H3 / H3 Max）。下列结论来自本部署实际调用 WorkBuddy 上游，包含参数拒绝结果、成功生成、媒体轨道检查；并非直接套用其他供应商的 Seedance 文档。

## 工作台使用

1. 点击“新建视频”，选择 MiniMax H3 / H3 Max、Seedance 2.0 / 2.5 或 GPT Image 2.5 Sunburst。
2. 文生图只需填写提示词、图片尺寸（自由 宽x高，常用值有建议列表）与质量档（low / medium / high，默认 low），提交后同步出图。
3. 视频任务选择输入方式：纯文本、首帧 / 首尾帧、多模态参考。
3. 多模态参考中每行填写一个公网 HTTPS 直链，图片和视频可以一起提供；2.5 和 H3 还可加音频，H3 Max 不开放普通参考数组。
4. 设置时长、分辨率、画幅和“生成音频”。2.5 视频编辑选择“编辑原视频”，时长自动为 -1，画幅跟随原视频；续写输出新增片段。
5. “更多参数”中的种子、返回尾帧及模型高级参数仅对 2.5 开放。提交后任务详情保留输入素材、参数、视频地址、尾帧地址和实际输出尺寸。

素材上传尚未接入，需要先取得无需登录且上游能下载的 HTTPS 直链。网站页面地址不是图片/视频/音频直链。带签名的地址应保持有效，输入 URL 会随任务保存，任务详情的可见权限沿用原有用户隔离规则。

## 模型能力与边界

| 参数 / 功能 | Seedance 2.0 | Seedance 2.5 | GPT Image 2.5 Sunburst |
|---|---|---|---|
| model | `seedance-2.0` | `seedance-2.5` | `gpt-image-2.5-sunburst` |
| 任务类型 | 文生 / 图生视频 | 文生 / 图生视频 | 文生图（同步返回） |
| seconds | 整数 4–15 | 整数 4–30，或 -1 自动定长 | 不适用 |
| 分辨率 | 480P / 720P | 480P / 720P / 1080P | 自由 WxH：宽和高均须被 16 整除，每边 720–3840、总像素 79 万–829 万（实测边界，含 4K） |
| 质量档 | — | — | low / medium / high（默认 low；1024x1024 实测 ≈1.1 / 2.5 / 10 积分，4K low ≈2.15） |
| 画幅 | 16:9、9:16、4:3、3:4、1:1、21:9 | 左列全部 + adaptive | 由尺寸决定（1:1 / 3:2 / 2:3） |
| 首帧 / 首尾帧 | 已出片 | 已出片 | 不支持 |
| 参考图片上限 | 9 | 30 | 不支持 |
| 参考视频上限 | 3 | 10 | 不支持 |
| 参考音频上限 | 不支持 | 10 | 不支持 |
| 图片＋视频混合 | 已出片 | 已出片，可再混合音频 | 不支持 |
| 生成音轨 | 已验证 720P 竖屏 AAC 音轨 | 已验证 AAC 音轨 | 不适用 |
| seed / 返回尾帧 | 未确认生效，本站不开放 | seed ≥ -1；return_last_frame 返回 cover_url | 不支持 |
| 专用编辑 / 续写模式 | 未确认生效，本站不开放 | edit / extend 已出片并检查画面 | 不支持 |
| 任意时间点中间关键帧 | 未发现已确认接口 | 未发现已确认接口 | 未发现已确认接口 |
| 结果存储 | 上游 HTTPS 地址（可能过期） | 同左 | 本站 `data/images/` 存储，直链长期有效 |

Seedance 默认 5 秒、480P、16:9、关闭音频；MiniMax 使用其专节的默认值和声音限制。0 秒在本站拒绝，不能用作自动时长。Kling V3 保持原有入口：720P / 1080P / 4K，默认 1080P，时长为正整数并由上游进一步校验。

上限来自上游校验；2.0 已完成 9 个图片项、3 个视频项的测试（含重复素材），2.5 已完成 10 个图片项、4 个视频项、4 个音频项等测试。没有穷尽所有独立素材、总时长、体积、分辨率及混合组合，可能在上游受理后失败。

2.0 本轮直接生成接口探测 44 次，产生 15 个任务，其中 14 个完成、1 个因首帧与参考媒体冲突而失败；其余请求用于错误边界探测。成功样本返回合计 1070.51 credit，此数值为测试消耗观察，不是报价。另有上线后的网关验收任务单独记录。

## MiniMax H3 / H3 Max（2026-09-30 实测接入）

请使用 WorkBuddy 的准确模型 ID；MiniMax 官方服务中的名称不能直接代替下表 ID。

| 参数 / 能力 | minimax-video-h3 | minimax-video-h3-max |
|---|---|---|
| 工作台名称 | MiniMax H3 | MiniMax H3 Max |
| seconds | 严格整数 4–15，默认 5 | 严格整数 5–15，默认 5 |
| resolution | 768P / 2K，默认 768P | 480P / 768P，默认 480P |
| aspect_ratio | 16:9、9:16、4:3、3:4、1:1、21:9、adaptive | 同左 |
| 首帧 / 首尾帧 | image_url / image_url + last_image_url | 同左 |
| 仅尾帧 | WorkBuddy 明确拒绝，必须配首帧 | 同左 |
| 普通参考图片 | reference_images，最多 9 项 | WorkBuddy 明确拒绝，即使只有 1 项 |
| 普通参考视频 | reference_videos，最多 3 项 | WorkBuddy 明确拒绝 |
| 普通参考音频 | reference_audios，最多 3 项 | WorkBuddy 明确拒绝 |
| 混合输入 | 可同时使用三类素材；合计最多 12 个文件 | 不适用 |
| 提示词 | 非空；最多 7000 字符 | 同左 |
| enhance_prompt | 可选布尔值；true 请求已完成，增强效果未独立对照 | 同左 |
| additional_parameters | 本站不开放：畸形 JSON / 非法高级值仍可出片，不能视为生效 | 同左 |
| seed / 返回尾帧 / edit / extend | 未确认生效，不沿用 Seedance 2.5 的高级控制 | 同左 |

**输入组合：**首尾帧不能与 reference 数组混用。首帧模式由图片决定画幅，网关省略上游 aspect_ratio。文生视频必须选具体画幅，不可使用 adaptive；H3 普通参考模式可以选 adaptive。两款都不支持 -1 自动时长；0 在上游可能触发默认行为，但本站明确拒绝，避免计费时长歧义。

**声音：**上游公共结构识别 enable_audio 布尔值，本站原样发送，但不能承诺关闭即静音。两款 enable_audio=false 样本仍含 AAC 音轨；H3 样本检测到实际非静音声音。因此工作台标注“关闭开关未证实可静音”，详情显示原生音轨，不能把请求值当作实际音轨检测结果。需要严格静音时应对成品另行处理。

### 请求字段和上游映射

本地请求路径仍是 POST /v1/videos（/v1/videos/generations 同义）；WorkBuddy 上游为 POST /v2/videos/generations。创建后查询原任务至 completed，不能把 queued 当作成功。所有正常权限、用户隔离、幂等、排队、积分与失败记录保持共用。

| 本站字段 | 类型 | 上游位置 / 说明 |
|---|---|---|
| model | string | 上游 model，准确 ID 见表 |
| prompt | string | 上游 prompt；非空，网关按供应商公开上限 7000 字符限制 |
| seconds | int | 上游 seconds；两个模型各自范围校验 |
| resolution | string | 上游 extra_parameters.resolution |
| aspect_ratio | string | 上游 extra_parameters.aspect_ratio；首帧时省略 |
| enable_audio | bool，默认 false | 上游 extra_parameters.enable_audio；见声音限制 |
| negative_prompt | string，默认空，≤2500 字符 | 公共解码器识别并接受，负向语义未单独验证 |
| image_url | string | 首帧；公网 HTTPS / PNG、JPEG、WebP Data URI / 纯 Base64 |
| last_image_url | string | 尾帧；必须同时提供 image_url |
| reference_images | object[] | H3 专用；每项 image_url，可选 reference_type 字符串 |
| reference_videos | object[] | H3 专用；每项 video_url，可选 reference_type、keep_original_sound（yes / no） |
| reference_audios | object[] | H3 专用；每项 audio_url，可选 reference_type 字符串 |
| enhance_prompt | bool，可省略 | 上游同名字段；接受不等于已证明增强效果 |
| watermark | 仅 false，可省略 | 兼容网关既有约定；上游顶层未识别，不承诺移除强制 AIGC 标识 |

reference_type 的有效枚举和控制效果、keep_original_sound 的声音保留效果尚未独立验证；通常省略可选角色字段。普通参考素材仅针对 H3，Max 的三个数组在创建本地任务前即返回 422。

供应商公开素材约束：图片 256–5760 像素；参考视频单段 2–15 秒、总时长 ≤15 秒，最多 3 段、单个 ≤50 MB；参考音频单段 2–15 秒、总时长 ≤15 秒，最多 3 段、单个 ≤15 MB；参考素材共 ≤12 个。网关按模型检查数量和组合，其余下载、编解码、实际尺寸/时长仍由上游校验。供应商约束与 WorkBuddy 包装层能力分开记录，未对所有组合逐项生成。

H3 参考视频支持公网 HTTPS 或 data:video/mp4;base64,…；单个内联 MP4 ≤50,000,000 字节，整个上游 JSON 请求（包含 Base64 膨胀）≤64,000,000 字节。单张内联图片仍沿用网关 5 MiB 限制；大素材推荐 HTTPS 直链。参考音频只支持 HTTPS URL：本次实际提交 data:audio/mp3;base64,… 被 WorkBuddy 明确拒绝。H3 Max 不提供普通参考视频/音频入口。

### 不应误当作可用功能的字段

- additional_parameters 在公共解码器中是 JSON 字符串，但两款传入畸形字符串仍实际完成生成。传入非法 seed、非法 duration / resolution / ratio、return_last_frame=true 和非法 prompt_expansion_mode 的任务也完成，仍按外层时长/画质输出且没有返回 cover_url。因此本站拒绝非空 additional_parameters，而不是假装提供这些控制。
- 公共 extra_parameters 仅确认 resolution:string、aspect_ratio:string、enable_audio:bool。seed、fps、prompt_expansion_mode、prompt_optimizer、aigc_watermark 等候选未被该结构识别；H3 的旧版实验扩展入口不开放。
- 顶层 scene_type:string、size:string 被公共解码器识别，但未验证 H3 的有效取值/语义，本站不开放。使用明确的 resolution 和 aspect_ratio。
- 顶层 callback_url、aigc_watermark、extra、prompt_expansion_mode、seed、watermark 未被 WorkBuddy 的公共结构识别。不要直接照搬 MiniMax 官方 content[]、extra.prompt_expansion_mode、回调、文件 ID、再生成或 Context-IR 接口。
- MiniMax 官方文档列出的 H3 Max 全能参考在本次 WorkBuddy 路由中实际被拒绝；应以当前接入实测为准。

### 示例：H3 混合参考

~~~json
{
  "model": "minimax-video-h3",
  "prompt": "参考图片的角色，参考视频的镜头运动和音频节奏，生成自然连贯的画面",
  "seconds": 4,
  "resolution": "768P",
  "aspect_ratio": "16:9",
  "enable_audio": true,
  "reference_images": [{"image_url": "https://YOUR_CDN/subject.jpg"}],
  "reference_videos": [{"video_url": "https://YOUR_CDN/reference.mp4"}],
  "reference_audios": [{"audio_url": "https://YOUR_CDN/sound.mp3"}]
}
~~~

### 示例：H3 Max 首尾帧

~~~json
{
  "model": "minimax-video-h3-max",
  "prompt": "从首帧平滑自然过渡到尾帧，保持主体外观一致",
  "seconds": 5,
  "resolution": "480P",
  "image_url": "https://YOUR_CDN/start.jpg",
  "last_image_url": "https://YOUR_CDN/end.jpg"
}
~~~

示例直链需替换为自己的素材；实际测试中 GitHub 图片直链曾因供应商侧无法下载而失败，任务受理不保证素材可达。可使用可靠 CDN 或已开放的内联图片入口。

**结果字段：**继续读取 id、status、url、usage.credit、usage.output_video_duration、error。MiniMax 的 size 返回 768P / 480P / 2K 档位，网关现在原样保留，不能当作精确像素尺寸。实际像素与媒体时长可能不同于档位名称和请求秒数，应以视频文件为准。

供应商文档交叉核对：platform.minimax.cn/docs/guides/video-generation 与 platform.minimax.cn/docs/api-reference/video-generation-v2-create；已记录与 WorkBuddy 实测不一致处。详细脱敏校验和成片证据见本次交付报告。


## 鉴权与任务接口

Base URL：`https://your-domain.example.com/shipin/v1`

在“API 接入”页复制本人的独立 API Key。请求头为 `Authorization: Bearer YOUR_VIDEO_API_KEY`。

| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /models | 模型元数据，包括 seconds、reference_limits、generation_modes、sizes、qualities 等 |
| POST | /videos | 创建任务；/videos/generations 为同义入口 |
| GET | /videos/{id} | 查询本地任务状态与结果 |
| POST | /videos/{id}/refresh | 查询原上游任务，适用于补查，不重新生成 |
| GET | /videos/{id}/content | 跳转到已完成视频地址 |
| POST | /images/generations | 创建文生图任务（gpt-image-2.5-sunburst，同步出图） |
| GET | /images/{id} | 查询文生图任务；返回中 object 为 image |
| GET | /images/{id}/content | 下载本站存储的生成图片（需完成任务） |

首次创建返回 HTTP 202；相同用户、相同 Idempotency-Key、相同规范化请求返回 HTTP 200 和原任务。用同一键发送不同参数返回 409。不要在网络超时后随意换键重复提交，付费生成不会自动重试。

建议每 10–15 秒 GET 查询状态。`queued` / `submitting` / `in_progress` 表示未完成；`completed` 可读取视频；`failed` 查看 error；`submission_unknown` 需核对是否已受理，不能直接重发；`polling_timeout` 会继续查询原任务，并可手动 refresh。网页和 API 共用个人及全站并发上限。

## 请求字段

| 字段 | 类型 / 默认值 | 规则 |
|---|---|---|
| model | string，默认 kling-v3-t2v | Seedance 调用务必显式指定 |
| prompt | string，默认空 | MiniMax ≤7000 字符且所有模式非空；其他模型 ≤2500 字符，纯文本模式必须非空 |
| seconds | 严格整数，默认 5 | 不接受数字字符串、布尔值、小数；范围见能力表 |
| resolution | string | Seedance 默认 480P；按模型校验 |
| aspect_ratio | string，默认 16:9 | 首尾帧和 edit 时不发送给上游 |
| enable_audio | boolean，默认 false | 控制输出音轨，和 reference_audios 输入是不同字段 |
| watermark | boolean，默认 false | 可省略或显式传 false；本站固定关闭可选水印，不接受 true、null、数字或字符串 |
| negative_prompt | string，默认空 | ≤2500 字符；效果未独立对照验证 |
| enhance_prompt | boolean，可选 | Seedance 提示词增强入口；增强效果未独立对照验证 |
| image_url | string，可选 | 首帧 HTTPS 图片或图片 Base64；不能和 reference 数组混合 |
| last_image_url | string，可选 | 尾帧 HTTPS 图片或图片 Base64；Seedance 必须同时有 image_url |
| reference_images | 对象数组，默认 [] | 每项 image_url 可为 HTTPS 地址或图片 Base64 |
| reference_videos | 对象数组，默认 [] | 每项 video_url 为 HTTPS 地址；2.5 还支持 `data:video/mp4;base64,...` |
| reference_audios | 对象数组，默认 [] | 仅 2.5；每项 `{ "audio_url": "https://…" }` |
| additional_parameters | 对象或 JSON 字符串 | 仅 2.5，见下一节；网关转换为上游所需的 JSON 字符串 |
| extra_parameters | JSON 对象，可选 | 保留旧版实验透传；不是 additional_parameters 的别名 |

文生图（gpt-image-2.5-sunburst）仅接受以下字段，其余顶层字段一律 422：

| 字段 | 类型 / 默认值 | 规则 |
|---|---|---|
| model | string | 固定 `gpt-image-2.5-sunburst`（可省略，默认即该模型） |
| prompt | string | 1–2500 字符，必须非空 |
| size | string，默认 1024x1024 | 自由 WxH；宽和高均须被 16 整除，每边 720–3840、总像素 78.6 万–829.4 万（含 4K 3840x2160，均已实测） |
| quality | string，默认 low | low / medium / high；1024x1024 实测约 1.14 / 2.54 / 10.1 积分 |

上游为 `POST /v2/images/generations` + `response_format=b64_json` 同步返回，一次一张；提交受理后即完成，无排队轮询阶段，无 `upstream_id`。网关校验图片为 PNG / JPEG / WebP（按文件头识别，单张解码后 ≤32 MiB）后存入本站 `data/images/`，completed 的 `url` 指向 `/v1/images/{id}/content`。余额核验按历史单张 P90 × 1.25 预留，无历史按 5 积分/张。

每个参考项还可带 `reference_type:string`（≤64 字符），视频项可带 `keep_original_sound:"yes"|"no"`。这些入口已识别，但角色语义、保留原声的实际效果尚未独立确认；不要依赖它们保证精确控制。参考项不接受 weight、strength、timestamp、frame_index 等未知字段。

图片 Base64 推荐使用 `data:image/png;base64,...`、`data:image/jpeg;base64,...` 或 `data:image/webp;base64,...`；也接受纯 Base64 并按文件头识别类型。每张解码后 ≤5 MiB，PNG/JPEG/WebP 文件头必须和声明类型一致。SVG 和 GIF 不开放。

Seedance 2.5 的 `reference_videos[*].video_url` 支持完整 `data:video/mp4;base64,...`，每个 MP4 解码后 ≤64 MiB，网关校验 MP4 文件类型头。没有前缀的纯视频 Base64、WebM 和 Seedance 2.0 视频 Base64 不开放。编码、时长和画面尺寸由上游继续校验；已验证 H.264、1280×720、4 秒 MP4。实测低于 407,696 像素的参考视频可能被 2.5 拒绝，建议使用 720p 或更高的合规素材。

音频 Base64 被上游明确拒绝，`reference_audios[*].audio_url` 必须是可公开访问的 HTTPS URL。图片与视频的解码后内联体积共享 **72 MiB** 总额度。任务详情和调用日志只显示内联媒体占位符，提交后清理队列中的 Base64 正文。

**数量和体积限制同时生效。** 2.5 支持最多 30 张参考图，但 30 张各 5 MiB 编码后约 200 MiB，超过上游实测 100 MiB 请求入口限制。大素材请使用 HTTPS URL 或减小体积；72 MiB 内联合计编码后约 96 MiB，为 JSON 和参数留出空间。

普通媒体 URL ≤8192 字符，不接受 HTTP、含用户名密码或私网 IP 字面量的地址；必须确保上游能够公开访问。整个请求 ≤100 MiB，超限返回 413。为控制内存，大请求上传与上游提交共享一个传输名额；忙碌时大请求返回 429 和 Retry-After，请保留同一 Idempotency-Key 稍后重试。此限制不减少已受理任务的生成并发。未知顶层字段、不支持的分辨率、画幅、数量或互斥输入返回 422。

Seedance 2.5 内联 MP4 请求示例（省略号须替换为真实 Base64）：

```json
{"model":"seedance-2.5","prompt":"参考原视频的运动生成新镜头","seconds":4,"reference_videos":[{"video_url":"data:video/mp4;base64,AAAA..."}]}
```

## 2.5 高级参数

推荐发送对象，例如：

```json
{"additional_parameters":{"seed":42,"return_last_frame":true,"omni_reference_task_type":"reference"}}
```

| 字段 | 本站校验 / 证据 |
|---|---|
| seed | 安全整数 ≥ -1；42 和 2147483648 已出片，未验证同种子完全可复现 |
| return_last_frame | boolean；true 时成功返回 cover_url，样本与视频末帧一致性已检查 |
| omni_reference_task_type | auto / reference / edit / extend；编辑和续写需要 reference_videos |
| priority | 整数 0–9；上游范围校验已确认，实际优先级效果未测试 |
| service_tier | 仅 default 可试验；flex 已明确失败 |
| execution_expires_after | 安全整数 >1；1 被上游拒绝，其完整有效范围和超时行为未验证 |
| output_format | 仅 mp4 可试验；webm 已明确失败 |
| tools | 可作受限 JSON 实验透传；发现入口校验，但联网搜索实际执行未验证 |

`edit` 要求 `seconds:-1`，网关省略画幅控制；实际输出时长可能略短于原视频，不承诺逐帧同长度。`extend` 的 seconds 控制新增片段时长；返回视频不自动拼接原视频。

additional_parameters 最多 16 个顶层键、序列化 ≤4096 字节、嵌套深度 ≤4、字符串值 ≤512 字符、有限 JSON 数值。未识别字段属于实验透传，不承诺生效。受控或已证实无效/不支持的字段（duration、ratio、generate_audio、resolution、content、camera_fixed、frames、draft、draft_task_id、callback_url、watermark 等）拒绝；使用本站顶层字段控制规格。

2.0 的同名高级入口虽然接受合法 JSON 字符串，但非法 seed=-2、priority=10、非法模式、frames=1 等请求仍成功生成普通视频；两次 return_last_frame=true 均未返回 cover_url。因此本次不给 2.0 开放此字段，也不把“成功受理”视作高级参数已生效。

旧版 extra_parameters 最多 16 键、≤2048 字节，只允许标量或一层标量数组/对象。不能覆盖 model、prompt、seconds、resolution、aspect_ratio、enable_audio 等受控键。Seedance 的 seed / fps 放在此对象中未证实有效。

## 可复制示例

将示例媒体域名替换成自己的公网 HTTPS 直链；每次新任务使用新的 Idempotency-Key。

### 2.0 多图

```bash
curl 'https://your-domain.example.com/shipin/v1/videos' \
  -H 'Authorization: Bearer YOUR_VIDEO_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: multi-image-example-001' \
  -d '{"model":"seedance-2.0","prompt":"让图1角色出现在图2场景中，保持人物外观和场景布局","seconds":4,"resolution":"480P","aspect_ratio":"16:9","reference_images":[{"image_url":"https://YOUR_CDN/subject.jpg"},{"image_url":"https://YOUR_CDN/scene.jpg"}]}'
```

### 2.0 视频参考（作为 POST /videos 的 JSON 正文）

```json
{"model":"seedance-2.0","prompt":"参考原视频的构图与运动生成花朵镜头","seconds":4,"reference_videos":[{"video_url":"https://YOUR_CDN/reference.mp4"}]}
```

### 2.0 首尾帧

```json
{"model":"seedance-2.0","prompt":"从首帧平滑过渡到尾帧","seconds":4,"image_url":"https://YOUR_CDN/start.jpg","last_image_url":"https://YOUR_CDN/end.jpg"}
```

同一字段也可以使用 Base64：

```json
{"model":"seedance-2.0","prompt":"让画面产生轻微运动","seconds":4,"image_url":"data:image/png;base64,iVBORw0KGgo..."}
```

### 2.5 多模态参考、有声输出与尾帧返回

```json
{
  "model":"seedance-2.5",
  "prompt":"参考图片中的主体、视频中的运动和音频中的节奏",
  "seconds":4,"resolution":"720P","enable_audio":true,
  "reference_images":[{"image_url":"https://YOUR_CDN/subject.jpg"}],
  "reference_videos":[{"video_url":"https://YOUR_CDN/reference.mp4"}],
  "reference_audios":[{"audio_url":"https://YOUR_CDN/sound.mp3"}],
  "additional_parameters":{"seed":42,"return_last_frame":true}
}
```

### 2.5 编辑与续写

```json
{"model":"seedance-2.5","prompt":"把红花改成蓝花，保留背景和运动","seconds":-1,"reference_videos":[{"video_url":"https://YOUR_CDN/reference.mp4"}],"additional_parameters":{"omni_reference_task_type":"edit","return_last_frame":true}}
```

续写把模式改为 `extend`、seconds 改为 4–30 中的整数，并修改提示词说明如何继续。

### 文生图（作为 POST /images/generations 的 JSON 正文）

```json
{"model":"gpt-image-2.5-sunburst","prompt":"一只在书桌上打瞌睡的橘猫，柔和午后光线","size":"1024x1024","quality":"low"}
```

创建返回 202 与 `img_` 任务 ID；图片同步生成，轮询 `GET /images/{id}` 很快进入 `completed`，随后 `GET /images/{id}/content` 下载图片。

### 查询结果

```bash
curl 'https://your-domain.example.com/shipin/v1/videos/vid_TASK_ID' \
  -H 'Authorization: Bearer YOUR_VIDEO_API_KEY'
```

文生图任务使用 `GET /v1/images/img_TASK_ID`，返回结构与视频一致：`object` 为 `image`，`size` 为请求尺寸，`quality` 为质量档，`url` 指向本站 `/v1/images/{id}/content`（completed 后可 GET 下载，PNG/JPEG/WebP），无 `cover_url`、无 `output_video_duration`。图片由本站存储，地址长期有效，仍建议及时保存副本。

视频完成结果包含 `url`、`cover_url`（无尾帧时为 null）、`size`（上游实际宽×高）、`usage.credit`、`usage.output_video_duration` 及上游提供的 token 用量。自动时长可能没有 output_video_duration，客户端需要读取媒体元数据。输入 seconds=-1 只表示请求自动定长，不能当作成片时长。

样本实际尺寸并不总等于分辨率档位名称：2.0 480P 横屏实测 864×496、4.0417 秒、H.264 24fps；720P 竖屏 720×1280，AAC 44.1kHz 双声道。2.5 480P 横屏实测 854×480；1080P 方形样本为 1440×1440。参考视频数量、参考时长、分辨率及输出音频都可能改变用量，credit 以结果为准。

视频与尾帧地址可能过期，请及时保存。refresh 查询同一个上游任务可以获取更新结果，但不保证上游永久保留文件。网页不缓存视频文件。
