三步就能出片:
# 1. 拿 token(登录后返回)
curl -X POST https://yuanmengstudio.com/vr/api/student/login \
-H "Content-Type: application/json" \
-d '{"name":"你的学员名","pass":"你的口令"}'
# → {"ok":true,"token":"xxxxx","name":"...","credits":1840}
# 2. 提交任务(带参考图)
# ★ 参考图直接给公网 URL 是最优解:24ms 提交完,服务端零处理
# (图在本地的话先 POST /api/upload 换成 URL,见 ④.5)
curl -X POST https://yuanmengstudio.com/vr/api/tasks \
-H "Content-Type: application/json" \
-H "X-Token: xxxxx" \
-d '{
"title": "海边日落",
"prompt": "图1 里的人站在 图2 的海边,夕阳低垂。无台词。",
"duration": 15,
"ratio": "16:9",
"resolution": "1080P",
"audio": true,
"refs": [
"https://your-oss.com/person.jpg",
"https://your-oss.com/beach.jpg"
]
}'
# 3. 查询(每隔 30~60 秒查一次)
curl "https://yuanmengstudio.com/vr/api/tasks?pageSize=20" -H "X-Token: xxxxx"
所有接口都要带 X-Token 头(登录接口除外):
X-Token: 登录返回的 token
| 参数 | 必填 | 说明 |
|---|---|---|
prompt | 必填 | 提示词,5~20000 字符。写法见 ⑤ |
title | 可选 | 任务标题,方便你在列表里认 |
duration | 可选 | 时长秒数,2~30 的整数,或 -1 让平台智能决定。传了参考视频时:视频时长 + 生成长度 ≤ 30 秒(见 ④) |
ratio | 可选 | 16:9 / 9:16 / 1:1 / 4:3 / 3:4 / adaptive |
resolution | 可选 | 480P / 720P / 1080P(同价,选高的不吃亏) |
audio | 可选 | true 出声音(台词/BGM/音效),false 静音 |
promptExtend | 可选 | 是否让平台「智能改写/扩写」你的提示词。默认 false(不扩写 = 完全按你写的原文生成)。· 不传 = false,适合提示词已经写得很详细(推荐)· 传 true = 平台在生成前先自动「智能改写」一遍提示词(会自己补充细节),但会多等 20–60 秒,且可能改掉你想强调的内容· 平台官方默认值是 true,本站为贴合创作者原意已改为默认 false |
cabin | 可选 | 已废弃,不传即可。历史兼容字段,传任何值都不影响计费与排队(每次生成固定 1 次) |
mode | 可选 | reference(默认,全模态参考)/ first_frame(首帧)/ first_last(首尾帧) |
refs | 可选 | 参考图数组(最多 10 张)。推荐直接传公网 URL("https://..."),也可传 base64 或先用 /api/upload 换 URL。详见 ④ |
audioRefs | 可选 | 参考音频数组(最多 5 段,总时长 ≤15 秒) |
videoRefs | 可选 | 参考视频数组(最多 5 段,总时长 ≤15 秒) |
docFile | 可选 | 文档(dataURI),≤100MB,格式 docx/doc/xlsx/xls/pptx/ppt/pdf/txt/md |
docLink | 可选 | 公开网页链接(无需登录)。与 docFile 二选一 |
firstFrame | 可选 | 首帧图(dataURI),mode=first_frame 或 first_last 用 |
lastFrame | 可选 | 尾帧图(dataURI),mode=first_last 用 |
{"ok": true, "task": {"id":"T130", "status":"pending", "creditsCost":10, ...}}
| 传法 | 写法 | 什么时候用 |
|---|---|---|
| ① 直接给公网 URL 推荐 |
"refs": ["https://your-cdn.com/a.jpg", "https://your-cdn.com/b.jpg"] |
图已经在 OSS / CDN / 图床 / 任意公网空间 24 毫秒提交完,服务端零处理 |
| ② 先上传拿 URL | 先 POST /api/upload 传文件 → 拿到 url → 放进 refs见 ④.5 |
图在本地、没有公网空间 |
| ③ base64 | "refs": ["data:image/jpeg;base64,/9j/4AAQ..."] |
一次性提交、图很小(<1MB) |
http:// 或 https:// 开头| 单张大小 | 10 张 base64 合计 | 结果 |
|---|---|---|
| 500KB(建议压到) | 约 5MB | ✅ 秒提交 |
| 5MB | 约 67MB | ✅ 可提交(约 40 秒) |
| 10MB | 约 134MB | ⚠️ 可提交但慢(约 80 秒) |
| 15MB | 约 200MB | ⚠️ 正好临界 |
| 20MB | 约 266MB | ❌ 报 413 |
| 参考视频 | 生成时长最多 | 说明 |
|---|---|---|
| 不传视频 | 30 秒 | 可以拉满 |
| 5 秒 | 25 秒 | |
| 10 秒 | 20 秒 | |
| 15 秒(上限) | 15 秒 | 参考视频本身也不能超过 15 秒 |
input_video_duration(9.5s) + duration(30.0s) = 39.5s exceeds 30s limit 并失败(次数会退回,但白等一场)。
首帧 firstFrame、尾帧 lastFrame、音频 audioRefs、视频 videoRefs 同样支持公网 URL 或 base64,规则一样。
| 类型 | 上限 | 单文件 |
|---|---|---|
参考图 reference_image | 10 张 | ≤20MB |
参考音频 reference_audio | 5 段,合计 ≤15 秒 | ≤15MB |
参考视频 reference_video | 5 段,合计 ≤15 秒 | ≤100MB |
文档 file 或 网页 link | 二选一,各限 1 个 | 文档 ≤100MB |
| 单次总共最多 20 个素材(所有类型加起来) | ||
官方示例写法:
视频1 抱着 图3,在 图4 的椅子上弹奏一首舒缓的乡村民谣,并说道:"今天的阳光真好。"
图1 手中拿着 图2,路过 视频1,把手中的 图2 放到 视频1 旁边的桌子上。
first_frame / first_last)只能传首尾帧,不能同时传参考图/音频/视频/文档。图在本地、又没有公网空间时用这个。上传一次拿到 URL,之后可以反复用于多条任务。
POST https://yuanmengstudio.com/vr/api/upload
Content-Type: multipart/form-data
X-Token: 你的卡密
表单字段:file(单个文件)
curl -X POST https://yuanmengstudio.com/vr/api/upload \
-H "X-Token: xxxxx" \
-F "file=@/path/to/person.jpg"
{
"ok": true,
"fileId": "596f1c757eab9eb0af86076a2fde9f97.jpg",
"url": "https://yuanmengstudio.com/vr/api/pub/596f1c757eab9eb0af86076a2fde9f97.jpg",
"kind": "image",
"size": 1127664,
"kb": 1101
}
拿到的 url 直接放进 refs 即可:
{
"prompt": "图1 里的人走进房间。无台词。",
"refs": ["https://yuanmengstudio.com/vr/api/pub/596f1c...jpg"],
"duration": 15
}
| 项目 | 说明 |
|---|---|
| 支持格式 | 图片 jpg/jpeg/png/webp/gif、音频 mp3/wav/m4a/aac/ogg/amr、视频 mp4/mov/webm、文档 pdf/docx/doc/xlsx/xls/pptx/ppt/txt/md |
| 大小上限 | 图片 20MB、音频 15MB、视频 100MB、文档 100MB(官方标准) |
| 自动压缩 | 图片 >1MB 自动压到 1920px 长边(画质接近原图),大图上传后体积会小很多 |
| URL 有效期 | 长期有效(7 天浏览器缓存),同一张图可以反复用于多条任务 |
| 是否公开 | 文件名是 32 位随机码,猜不到;只要不主动分享别人拿不到 |
不然模型可能自己加人声。想静音就写:无台词,无旁白。
男人抬头看向门口,说道:"你终于来了。"
audio:true)。| ❌ 太抽象 | ✅ 具体可拍 |
|---|---|
| 一个很漂亮的女孩 | 二十岁出头的短发女孩,齐刘海,穿米白色针织衫 |
| 在跑 | 站立、上身前倾 25°,右腿在前右脚掌着地,左腿在后 |
| 风景很美 | 傍晚海边,夕阳贴近海平线,浪花拍在黑色礁石上溅起白沫 |
可以直接写:中景,镜头缓慢右移、特写,微微仰拍、全景俯拍。
提示词进阶写法参考: 万相 3.0 视频生成官方文档
| 参数 | 说明 |
|---|---|
page | 页码,从 1 开始 |
pageSize | 每页条数:20 / 50 / 100 |
day | today(默认)/ yesterday / 7d / all / 具体日期 2026-10-19 |
{"ok":true, "tasks":[...], "total":749, "page":1, "pages":38,
"counts":{"today":8,"yesterday":668,"d7":749,"all":749}, "remaining":1694}
| status | 含义 |
|---|---|
pending | 候车中(等攒够一车发走) |
submitted | 已提交给平台,排队生成 |
running | 生成中 |
done | 完成,video 字段是成片地址 |
failed | 失败,看 failReason(次数已退) |
cancelled | 已取消 |
failed,就说明还在队列里。// task.video 直接就是可播放地址(带签名,有效期长)
https://yuanmengstudio.com/vr/api/video/T130?dl=xxxxx
pending(候车中)且还没分配上车的任务能改/取消。已上车就改不了了。curl -X POST https://yuanmengstudio.com/vr/api/tasks/T130/update \
-H "Content-Type: application/json" -H "X-Token: xxx" \
-d '{"title":"新标题","prompt":"新的提示词...","refs":[...]}'
可改:title / prompt / refs / params / mode
curl -X POST https://yuanmengstudio.com/vr/api/tasks/T130/cancel -H "X-Token: xxx"
# → {"ok":true, "credits":10} ← 按实扣次数退回
| 返回 | 原因 | 怎么办 |
|---|---|---|
未登录 / 401 | token 无效或过期 | 重新登录 |
次数不足 | 余额不够这一条 | 补充次数后再提交 |
refs 超过 10 张 | 参考图超限 | 删到 10 张以内 |
文档和网页只能二选一 | 同时传了 docFile 和 docLink | 删掉一个 |
这个文件的格式无法识别 | 文件不是标准图片/音频/视频 | 转成 jpg / mp3 / mp4 |
这段音频读不出时长 | 编码不受支持 | 转 mp3 或 wav(手机录音先导出) |
任务 failed | 平台生成失败 | 看 failReason;次数已退,改提示词重提 |
input_video_duration(Ns) + duration(Ms) = ... exceeds 30s limit | 参考视频 + 生成时长超过 30 秒 | 把 duration 改成 30 - 视频时长 以内 |
每条任务扣 1 次,与清晰度(480P / 720P / 1080P)、时长档无关,同价。
余额字段名仍是 credits(历史兼容),语义为剩余次数。任务取消或生成失败时,按任务实际扣减的次数原路退回。
任务按提交时间先来先发(FIFO),系统按批次统一提交发车。任务提交后先「候车」,凑够一批才统一提交到平台生成,所以从提交到出片通常需要等待。加急需求请联系管理员调整。
实际出片时间取决于队列位置和素材复杂度,通常需要数小时。队列越短出得越快。
除了「提交任务排队发车」,还有一个不用排队的快速通道,可以直接出图(也能出短视频)。 它走的是另一套额度池,按张计费、费用远低于视频,而且图片结果是永久链接(不会 24 小时过期)。
不同时期可用的模型不一样(取决于池里还有没有额度),务必先查再调,不要写死模型名。
curl "https://yuanmengstudio.com/vr/api/free/models" -H "X-Token: 你的卡密"
返回(节选):
{
"ok": true,
"models": [
{
"model": "qwen-image-2.0-pro",
"kind": "image", // image=出图,video=出片
"label": "高质量大图 2048",
"credits": 0.02, // 每张扣多少次
"ref": "images-opt", // none=不要参考图 / images-opt=可选 / images=必须
"maxImg": 2, // 最多几张参考图
"sizes": ["1024*1024", "2048*1152", "..."] // 可选尺寸(星号格式)
}
],
"credits": 1234.5
}
ref=none 的模型不接受参考图;ref=images 的必须带图;sizes 为空表示该模型不接受 size 参数(走平台默认)。curl -X POST https://yuanmengstudio.com/vr/api/free/image \
-H "X-Token: 你的卡密" -H "Content-Type: application/json" \
-d '{
"model": "qwen-image-2.0-pro",
"prompt": "一只橘猫坐在窗台上,午后阳光,浅景深",
"size": "2048*1152",
"images": ["https://.../参考图.jpg"]
}'
| 字段 | 必填 | 说明 |
|---|---|---|
model | 否 | 默认 qwen-image-2.0-pro;必须是 /api/free/models 里 kind=image 的模型 |
prompt | 是 | 提示词 |
size | 否 | 格式是星号 1024*1024(不是字母 x),且必须在该模型 sizes 白名单里 |
images | 视模型 | 参考图 URL 数组(先用 ④.5 上传接口 拿 URL),最多 4 张、按模型 maxImg 限制 |
返回:
{
"ok": true,
"model": "qwen-image-2.0-pro",
"url": "https://yuanmeng-agent-updates-002.oss-cn-shanghai.aliyuncs.com/vr-refs/freeimg-1793....png",
"creditsUsed": 0.02,
"ms": 41200,
"credits": 1234.48
}
url 是永久链接(已转存到对象存储),不像视频成片只有 24 小时,可以放心存库。同一套通道,参数多一个 duration(秒)和 size(如 1280*720),
按模型的 ref 可能要 images(首帧/参考图)或 videoUrl(参考视频)。
视频按秒/按条扣得比图片贵得多(见 /api/free/models 的 credits 与 quotaUnit),
排队时间也长,量大仍建议走「提交任务」通道。