Lovely Router文档
获取密钥
模型 API

视频

通过 Videos API 进行角色替换:发送一段视频和一张新角色的图片,得到换成该角色的同一镜头,动作、构图和声音保持不变;以及用标记了角色和场景的提示词制作视频镜头。涵盖请求、轮询、定价、可用地区和限制。

Lovely Router 通过与 OpenAI 形式相同的 Videos API 生成视频:POST /v1/videos 创建任务并返回一个视频对象,轮询直到它变为 completed,然后从 /v1/videos/{id}/content 下载 mp4。不想写代码,可以在 Playground 中试用:上传视频或在 X 上找一段,上传图片或让任意图像模型画一张,再让你选的对话模型优化角色和场景提示词——每一步都像对应的 API 调用一样从余额扣费。

想要边看边持续生成的视频,请看实时视频;想把一首歌做成音乐视频,请看音乐视频。

模型#

模型价格作用
minimax-h3-character-swap按生成视频的秒数计费,每秒 $0.10用新角色重拍一段视频:脸、发型、身材和服装来自图片;动作、构图、机位和音轨来自视频。每段最长 10 秒。
minimax-h3-aftermidnight按生成视频的秒数计费,每秒 $0.12同样的角色替换,加上用于成人场景的 NSFW LoRA(AfterMidnight):更丰富、更私密的场景,身体不受审查。每段最长 10 秒。
minimax-h3-video按渲染秒数计费,每秒 $0.13,第二张起每张图片每秒加 $0.06用标记了角色和场景的提示词制作视频镜头,带声音和台词;免费把镜头拼接成一个视频。每个镜头 5–15 秒。

它们都由 MiniMax H3 驱动,运行在我们自己的 GPU 上,属于 creative-hosted 渠道分组。它们受 MiniMax H3 条款约束:每个请求都要设置 consent: true,表示接受这些条款(包括不在欧盟、英国、韩国或美国使用)并对遵守条款负责。

替换角色#

把源视频作为 video、新角色的图片作为 input_reference 发送,可以是文件(multipart),也可以是 URL(http(s) 或 data:,放在 JSON 里或作为 multipart 文本字段)。

curl https://lovelyrouter.com/v1/videos \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -F model=minimax-h3-character-swap \
  -F video=@clip.mp4 \
  -F input_reference=@character.png \
  -F prompt="In front of a weathered concrete wall, soft window light" \
  -F consent=true

一段 5 秒的视频大约需要一分钟渲染,10 秒的视频大约两到三分钟(画面越大越久)。如果模型有一段时间没人使用,GPU 唤醒还要再加约一分钟。断开连接后任务会继续运行。

请求字段#

请求体参数

modelstring必填

minimax-h3-character-swap。

videofile必填

源视频:MP4、MOV 或 WebM,最大 80 MB,以文件或 http(s) / data: URL 发送。保留它的动作、构图、机位和音轨;从 start 开始最多使用 10 秒。

input_referencefile

新角色的图片:PNG、JPEG 或 WebP,最大 20 MB,以文件或 URL 发送。单人、脸部可见、光线均匀、背景简洁的图片效果最好。

character_idstring

用你账户中的一个已保存角色代替 input_reference:它的角色设定图就是这张图片。两者必须且只能发送其一。

consentboolean必填

设为 true 表示你接受 MiniMax H3 条款并对遵守条款负责(包括其中的地区条款),并确认视频和图片中出现的每个人都已年满 18 岁,且同意以此方式使用其肖像。

promptstring

场景:地点、光线、氛围(最多 4,000 个字符)。视频只沿用动作,因此描述的场景会决定画面风格;不描述时,模型会选用简洁的背景。

secondsnumber

最多使用视频的多少秒,3 到 10。默认:整段视频,最长 10 秒。

startnumber

从视频的第几秒开始(0–3600;Playground 的裁剪工具会设置它)。默认:0。

backgroundstring

new(默认):只沿用视频的动作,场地由 prompt 描述。keep:保留视频原来的背景、物品和光线,只替换人物,不需要 prompt。价格相同。

seedinteger

用相同的种子重现一次渲染(0–2147483647)。默认:随机。

在 POST 上加 ?wait=0–300 会保持请求直到视频完成(返回 200),超时则返回 202 和排队中的视频对象。

使用已保存角色#

新角色可以随每次调用发送,也可以来自你的已保存角色:

  • 一次性: input_reference——图片,以文件或 URL 发送(见上文)。
  • 已保存: character_id——你用 POST /v1/characters 保存的角色;它的角色设定图就是这张图片。视频对象的 character_id 会显示它。
cURL
curl https://lovelyrouter.com/v1/videos \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -F model=minimax-h3-character-swap \
  -F video=@clip.mp4 \
  -F character_id=chr_3b9e1f0c7a2d4e58b6c1a9f2 \
  -F consent=true

两者同时发送,或 character_id 不是你的角色,请求会被拒绝(400 / 404)。

整个视频#

POST /v1/videos/replacements 接受整个视频——最长 3 分钟,可以有剪辑和多个人物。先找出它的镜头和其中的每个人(每秒 $0.01);然后把每个人对应到一个角色(或保持原样),并选择替换整个人还是只替换头部(脸、头发和头上戴的东西)。每个有被替换人物的镜头都会重新渲染,再按原来的声音拼接回去;按被替换的秒数计费(SFW 模型在 FastH3 Omni 上渲染,每秒 $0.20;AfterMidnight 每秒 $0.12)。完整流程见视频替换端点。Playground 对所有视频(无论长短)都用它。

视频镜头#

minimax-h3-video 从零开始制作视频:POST /v1/videos/shots 接受一段提示词,其中标记了你的已保存角色和场景(@Mia_Wong、@[Night Café]),每个被标记的都会成为一张参考图片——每个镜头最多 9 张。引号中的文字由它前面最后一个被标记的角色说出。把一个故事的镜头逐个渲染,然后用 POST /v1/videos/joins 拼接(免费)。视频镜头端点页面列出了所有字段、定价,以及 Playground 用来保存分镜的项目 API。有声音的角色会用它说话(每个镜头最多 3 个声音)。渲染前,对白之外的代词会被替换为正确的标签(提示词清理)。

cURL
curl https://lovelyrouter.com/v1/videos/shots \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "content-type: application/json" \
  -d '{"model": "minimax-h3-video", "consent": true, "seconds": 5,
       "prompt": "In @[Night Café], @Leo looks up as @Mia_Wong sits down: \"You came.\"",
       "characters": ["chr_3b9e1f0c7a2d4e58b6c1a9f2", "chr_1e4b7d0a9c3f2e5b8a6d0c1f"],
       "scenes": ["scn_5b2d9e0c1a7f4b3e8d6c2a1f"]}'

视频对象#

Response
{
  "id": "video_4f9d0c2b8e1a47d6a3c5b7e2",
  "object": "video",
  "model": "minimax-h3-character-swap",
  "status": "completed",
  "progress": 100,
  "created_at": 1792915200,
  "completed_at": 1792915288,
  "expires_at": 1793520088,
  "seconds": "5.17",
  "size": "768x1376",
  "prompt": "In front of a weathered concrete wall, soft window light",
  "character_id": null,
  "error": null,
  "url": "https://lovelyrouter.com/v1/videos/video_4f9d0c2b8e1a47d6a3c5b7e2/content",
  "charge_usd": 0.3875,
  "powered_by": "MiniMax H3"
}

status 为 queued、in_progress、completed、failed 或 cancelled。失败的视频带有 error: {code, message},不收费。size 跟随源视频的方向,短边为 768 像素;帧率为 24 fps。

端点#

请求作用
POST /v1/videos创建视频。
GET /v1/videos/{id}视频对象。?wait=1–300 会一直等待,直到状态不再是 queued/in_progress 或超时。
GET /v1/videos/{id}/contentmp4 文件(支持 Range 请求,播放器可以拖动进度)。保留 7 天。
GET /v1/videos你最近的视频,按时间倒序:?limit=1–100,用 ?after=<id> 获取下一页。
DELETE /v1/videos/{id}取消排队中的视频(不收费),或删除已完成视频的文件。

定价#

按生成视频的秒数计费,每段 3 到 10 秒(不足 3 秒的结果按 3 秒计费):一段 5.2 秒的视频收费 $0.52。开始生成时,会从余额中预留它可能产生的最高费用($1.00,或 seconds × 单价),完成后退还差额。失败和取消的视频不收费。

获得更好的效果#

  • 视频:单人、清晰可见、以自然的速度移动。快速动作和大面积遮挡更难处理。音轨会保留并用来引导口型,所以说话时口型保持同步。
  • 图片:只有这个人,脸部可见,光线均匀,背景简洁。图片的光线和背景不会被复制,但强烈的彩色光可能会渗入。角色设定图(同一个人的正面、四分之三侧面、侧面和背面在一张图里)在镜头绕着人物移动时效果最好,渲染出来仍是一个人。
  • 场景:在 prompt 中描述地点,让画面接近原视频,例如 “a weathered concrete wall, soft window light”。
  • 发型的形状跟随视频(视频里是辫子,结果仍是辫子);发色、脸和服装跟随图片。

错误#

状态码code / type原因
400consent_requiredconsent 不是 true。
400invalid_request_error缺少文件或文件无法读取、文件过大、seconds 超出范围、同时发送了 input_reference 和 character_id。
402insufficient_quota余额不足以支付预留金额。
404not_found_error模型或视频不存在、该模型不能生成视频,或 character_id 不是你的已保存角色。
429rate_limit_exceeded你的账户已有五个视频在排队或渲染中,或达到了密钥的速率限制。

发现滥用可在 /report 举报。