mj_imagine
youchuan · /v1/tob/diffusion
生成端点
POST https://www.yunqiai.chat/v1/tob/diffusion
model 使用 mj_imagine 或 youchuan-image,提示词放在 text。请求头为 Authorization: Bearer <API_KEY>、Content-Type: application/json、Accept: application/json;本接口不使用 x-api-key、x-goog-api-key 或 x-youchuan-secret。
{
"model":"mj_imagine",
"text":"现代东方建筑,清晨薄雾,建筑摄影,无文字 --v 8.1 --fast --hd --q 4 --raw --ar 16:9"
}版本、比例、质量等参数写在 text 末尾,参数前留空格,参数后不加逗号或句号。JSON 顶层不使用 prompt、size、n、quality、aspectRatio 或 response_format。
/v1/tob/subscribe 用于账户查询,图片生成使用上面的 diffusion 接口。本页不包含 MJ 视频接口。
版本与质量
| 版本参数 | 质量参数 |
|---|---|
| --v 5.1 / --v 5.2 / --v 6 | --q 0.25 / 0.5 / 1 |
| --v 6.1 | --q 0.5 / 1 / 2 |
| --v 7 | --q 1 / 2 / 4 |
| --v 8 / --v 8.1 | --q 1 / 4 |
| --v 8.2 | --q 1 / 2 / 3 / 4 |
| --niji 5 / --niji 6 | --q 0.25 / 0.5 / 1 |
| --niji 7 | 不使用 --q |
省略版本时使用服务默认值。需要固定配置时,请在 text 中写明版本和参数,默认版本可能调整。
参数
| 参数 | 含义与范围 |
|---|---|
| --ar | 整数宽高比,如 1:1、16:9、9:16、4:3、2:3 |
| --raw | 减少默认美化,受版本支持范围限制 |
| --chaos | 0–100,结果差异 |
| --seed | 0–4294967295,随机种子;不保证跨版本像素复现 |
| --stylize / --s | 0–1000,风格化强度 |
| --weird / --w | 0–3000,超现实程度,受版本支持限制 |
| --no | 排除内容 |
| --tile | 平铺图案,受版本及模式限制 |
| --fast | 快速模式 |
| --turbo | 极速模式,不与 fast 同时使用 |
| --draft | 草图模式,受版本及后续操作限制 |
| --hd | 原生 2K,仅 v8.1 / v8.2 |
| --exp | 0–100,实验性动态美学参数,受版本支持限制 |
任务消耗可能随操作、质量、速度、版本及 HD / Draft 设置变化,无法仅按图片文件体积估算。
参数组合限制:fast 与 turbo 不共用;niji 7 不带 q;v8.1 / v8.2 不用 turbo;v7 draft 不与 tile、oref、q 4 共用。部分参数仅适用于特定版本,请同时检查版本要求。
参考图
| 用途 | text 写法 | 适用版本 |
|---|---|---|
| 普通垫图 | <图1URL> <图2URL> 描述 --iw 1 --v 7 | 图片 URL 在开头,按顺序引用 |
| 风格参考 | 描述 --sref <图URL> --sw 100 --sv 6 | sref / sv 依版本兼容 |
| 角色参考 | 描述 --cref <人物URL> --cw 100 --v 6.1 | v6、v6.1、niji 6 |
| 万物引用 | 描述 --oref <物体URL> --ow 200 --v 7 | v7 |
URL 使用服务端可直接读取的公开图片直链,不支持网页地址、本地路径、需要 Cookie 的链接或裸 Base64。带签名、查询参数或敏感路径的链接,还需检查是否可访问及是否适合对外发送。
任务流程
提交响应中的 id 是 Job ID,收到后立即保存。任务执行期间 urls 可能为空,继续查询即可,无需重新提交。
使用同一 Key 调用 GET https://www.yunqiai.chat/v1/tob/job/{jobId},每 5 秒查询一次,本地等待期限设为 6 分钟。
| 结果 | 动作 |
|---|---|
| status=1 | 继续查原任务 |
| status=2 | 遍历 urls,下载所有可用图片 |
| status=3 | 失败,保存 comment、cost 和脱敏完整响应供诊断 |
| HTTP 404 | 任务不存在,核对 id 和权限 |
| HTTP 400 | 请求参数错误,停止轮询 |
| HTTP 429 / 500 / 502 / 503 / 504 | 有限退避重试查询,不重新提交生成 |
| 本地截止时间到达 | 保存 id,稍后恢复查询,不把任务判为已取消 |
查询遇到临时连接错误或读取超时时,可以在等待期限内退避重试同一 GET。证书错误需单独排查,TLS 校验保持开启。
生成 POST 发生网络错误时,任务可能已经受理。mj.py 会在提交前写入 submission-attempt.json。若未收到 id,请先从平台调用记录确认状态,保留提交记录以防重复生成。已知 id 使用 --job 恢复查询;--wait 仅设置本地等待秒数,不取消远端任务。
二次操作
以下接口均使用 POST JSON,在源任务完成后调用。imageNo 从 0 开始,对应原 urls 数组下标;即使过滤了空项,也需保留原编号。
| 路径 | 字段 |
|---|---|
| /v1/tob/variation | jobId、imageNo、type:0 轻微 / 1 强烈;remixPrompt 可选 |
| /v1/tob/upscale | jobId、imageNo、type:0 标准 / 1 创意 / 2 v5_2x / 3 v5_4x;须匹配源版本 |
| /v1/tob/reroll | jobId |
| /v1/tob/pan | jobId、imageNo、direction:0 下 / 1 右 / 2 上 / 3 左;scale 1.1–3;remixPrompt 可选 |
| /v1/tob/outpaint | jobId、imageNo、scale 1.1–2;remixPrompt 可选 |
| /v1/tob/inpaint | jobId、imageNo、mask;remixPrompt 可选 |
| /v1/tob/remix | jobId、imageNo、remixPrompt;mode:0 强 / 1 弱 |
| /v1/tob/edit | jobId、imageNo、canvas、imgPos、remixPrompt;mask 可选 |
| /v1/tob/upload-paint | imgUrl、mask、canvas、imgPos、remixPrompt |
| /v1/tob/retexture | imgUrl、remixPrompt;版本不低于 6.1 |
| /v1/tob/remove-background | imgUrl,PNG / JPEG 输入 |
| /v1/tob/enhance | jobId、imageNo,仅 draft 任务 |
每次操作都会产生新任务,请保存新的 id 并查询结果。高级编辑 / 转绘任务可继续执行的操作有所限制。
延展、局部重绘和高清使用相应原生成任务的 id 及图片编号,不能使用高清结果任务的 id。源任务的版本和类型也需支持目标操作。若返回 HTTP 403 并提示任务类型不兼容,请停止提交并检查源任务。
蒙版与画布
canvas:{width,height} 设置目标画布像素,imgPos:{width,height,x,y} 设置原图在画布上的位置和大小,坐标原点为左上角。输出可能按模型尺寸规则缩放,因此实际像素未必与 canvas 一致。
mask 支持两种写法,选择其一:{"areas":[{"width":1024,"height":1024,"points":[100,100,500,100,500,500,100,500]}]} 或 {"url":"公开黑白蒙版URL"}。points 按 x、y 成对排列,宽高和坐标对应原图。黑白蒙版中白色部分为重绘区域,与 GPT Images 的透明 Alpha 蒙版规则不同。
图片下载
任务成功后,及时下载 urls 中的全部图片,并保留任务 ID 和原始下标。使用 mj-imagine-{JobID}-{下标}.png 命名时,需将内容实际转码为 PNG。下载失败可恢复下载,无需重新生成;结果链接不宜作为永久存储。
程序见 mj.py,支持提交、恢复查询和读取二次操作 JSON 文件,始终使用所选模型。