Skip to content

视频姿势

上传一张人物照片,配合一个视频姿势(官方模板、你的自定义视频姿势,或直接指定首帧图片姿势),生成该人物的姿势视频。任务异步执行,通常需要一到几分钟。

创建任务

http
POST /v1/videos/pose
参数类型必填说明
template_idstring二选一模板 ID(见「模板列表」),或你自己的自定义视频姿势 ID(uvpose_ 开头,见「自定义视频姿势」)
imgpose_idstring二选一直接指定首帧图片姿势 ID(官方 pose_ 或你的 upose_),一次性、不保存。与 template_id 二选一,都传时以 template_id 为准
work_typeint视频引擎,仅在用 imgpose_id 时生效:1=Wan2.2(固定 5 秒)、2=LTX(默认,可调时长)
promptstring视频运动/场景提示词,仅在用 imgpose_id 时生效
imagestring人物照片:图片 URL,或 base64(可带 data:image/jpeg;base64, 前缀)。最大 10MB
durationinteger视频时长(秒)。仅对可调时长模板(duration_adjustable: true)生效,范围为模板的 min_durationmax_duration;固定时长模板会忽略此参数。见计费与点数
webhook_urlstring任务结束后的推送地址

价格随模板与 duration 变化,任务对象的 cost 字段为本次扣除的点数,详见计费与点数

请求头 Idempotency-Key(可选):你的业务 ID,同一功能内不重复,会在结果中原样返回。

照片要求:

  • 正脸、五官清晰,画面中最好只有一个人。
  • 未检测到清晰人脸,或疑似未成年人,会返回 422 input_rejected

示例

bash
curl -X POST https://api.modelgo.moneygo.ai/v1/videos/pose \
  -H "Authorization: Bearer sk-你的Key" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order_10086" \
  -d '{
    "template_id": "video_dance",
    "image": "https://example.com/face.jpg",
    "webhook_url": "https://your-server.com/webhook"
  }'
python
import base64
import requests

with open("face.jpg", "rb") as f:
    image = "data:image/jpeg;base64," + base64.b64encode(f.read()).decode()

res = requests.post(
    "https://api.modelgo.moneygo.ai/v1/videos/pose",
    headers={"Authorization": "Bearer sk-你的Key", "Idempotency-Key": "order_10086"},
    json={"template_id": "video_dance", "image": image},
    timeout=60,
)
print(res.json())
js
import { readFile } from 'node:fs/promises'

const image = 'data:image/jpeg;base64,' + (await readFile('face.jpg')).toString('base64')
const res = await fetch('https://api.modelgo.moneygo.ai/v1/videos/pose', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer sk-你的Key', 'Content-Type': 'application/json', 'Idempotency-Key': 'order_10086' },
  body: JSON.stringify({ template_id: 'video_dance', image }),
})
console.log(await res.json())

返回

json
{
  "id": "task_3kP9xQ2mZ7aB1cD4eF6gH8jK",
  "object": "task",
  "capability": "video.pose",
  "status": "queued",
  "template_id": "video_dance",
  "cost": 140,
  "output": null,
  "error": null,
  "created_at": "2026-09-17T08:00:00.000Z",
  "started_at": null,
  "finished_at": null
}

然后通过 Webhook 回调或任务查询获取结果。成功时 output.images 为结果视频地址(.mp4)。

TIP

结果字段名沿用 output.images,与姿势生图一致;视频能力下该数组里是视频地址。

模板列表

http
GET /v1/templates?capability=video.pose
json
{
  "data": [
    {
      "id": "video_dance",
      "capability": "video.pose",
      "name": "跳舞",
      "description": "",
      "price": 100,
      "duration_adjustable": true,
      "min_duration": 5,
      "max_duration": 15,
      "duration_prices": { "5": 100, "6": 120, "7": 130, "8": 140 },
      "cover_url": "https://cdn.example.com/covers/dance.jpg"
    }
  ]
}

模板会不定期增减,建议定期同步,不要写死模板 ID。priceduration 与计价规则见计费与点数

自定义视频姿势

你可以用一张图片姿势作首帧,配合视频引擎生成自己的视频姿势——分两种方式:

  • 一次性:创建任务时直接传 imgpose_id(+ 可选 work_type/prompt/duration),不保存。
  • 保存复用:把"首帧图片姿势 + 视频设置"保存成私有视频姿势,拿到 uvpose_ ID,之后当作 template_id 使用。

首帧的 imgpose_id 可以是官方图片模板(pose_)或你自己的自定义图片姿势upose_)。生成时先用它把你的照片生成首帧姿势图,再据此生成视频。计费与官方视频模板一致(按引擎默认价,LTX 按秒)。自定义视频姿势不含 LoRA,动作主要由引擎与提示词驱动。

方法说明
POST /v1/video-poses创建。Body:{ name, imgpose_id, work_type?, prompt?, work_duration?, cover_url? }。返回含 iduvpose_...
GET /v1/video-poses我的自定义视频姿势列表
PATCH /v1/video-poses/{id}修改
DELETE /v1/video-poses/{id}删除
bash
# 1. 保存一个视频姿势(首帧用官方图片姿势 pose_office,LTX,默认 5 秒)
curl -X POST https://api.modelgo.moneygo.ai/v1/video-poses \
  -H "Authorization: Bearer sk-你的Key" -H "Content-Type: application/json" \
  -d '{ "name": "办公室转身", "imgpose_id": "pose_office", "work_type": 2, "prompt": "缓慢转身", "work_duration": 5 }'
# → { "id": "uvpose_xxx", ... }

# 2. 用它生成(和官方模板一样)
curl -X POST https://api.modelgo.moneygo.ai/v1/videos/pose \
  -H "Authorization: Bearer sk-你的Key" -H "Content-Type: application/json" \
  -d '{ "template_id": "uvpose_xxx", "image": "https://example.com/face.jpg", "duration": 5 }'