返回博客

阿里云百炼图生图:qwen-image-2.0 不支持输入图,必须用 pro

最近在一个 AI 图像工作流里需要做「帧 → 线稿」的风格重绘:给定一张参考图 + 文字指令,输出同构图、不同风格的新图。听起来就是标准的 img2img,阿里云百炼的 Token Plan 里有 qwen-image-2.0,文档标注的是「图像生成」。自然地就拿它去调——然后发现怎么传参都不对劲,要么报错,要么根本没有用到参考图。

排查了一圈之后,坑其实有两个:用了错误的模型,以及端点完全找错了地方

现象

把参考图 base64 丢进 /compatible-mode/v1/chat/completionscontent 数组里,加上重绘指令,调用返回 200,但输出结果完全忽略了输入图——模型只按文字描述出图,参考图形同虚设。换几种参数排列没有改善。

根因

根因分两层:

一、模型选错了。 qwen-image-2.0(非 pro)只支持文生图,它不接受参考图输入。图生图编辑必须用 qwen-image-2.0-pro。Token Plan 的模型列表里两个都标「图像生成」,但能力集完全不同,文档没有在列表层面直接标出这个差异。

二、端点找错了。 百炼图像生成走的是独立的多模态生成端点,不在 OpenAI 兼容对话端点 /compatible-mode/v1/chat/completions 上。文档里明确写了「图像生成使用独立的接口」,但对话兼容端点本身也接受图文混合输入(multimodal chat),很容易产生混淆,以为传图就能生图。

坑:模型 + 端点双重踩空

qwen-image-2.0 非 pro 版只做文生图,传进去的参考图会被静默无视;同时图像生成端点与对话兼容端点是两套不同的 URL,混用不会报错但参考图不生效。

正解

模型:图生图编辑用 qwen-image-2.0-pro,文生图才用 qwen-image-2.0

端点(同步阻塞,无需轮询):

POST https://token-plan.cn-beijing.maas.aliyuncs.com
     /api/v1/services/aigc/multimodal-generation/generation

把对话端点的 /compatible-mode/v1 替换成 /api/v1/services/aigc/multimodal-generation/generation,鉴权用同一把 Token Plan key。

请求体:参考图字段名是 image,支持 base64 data URI,无需上传 OSS:

{
  "model": "qwen-image-2.0-pro",
  "input": {
    "messages": [{
      "role": "user",
      "content": [
        { "image": "data:image/jpeg;base64,<...>" },
        { "text": "Redraw this frame as a clean pencil storyboard sketch. White background, graphite lines only, keep composition." }
      ]
    }]
  },
  "parameters": { "n": 1, "size": "1280*720", "watermark": false }
}

注意 size* 分隔宽高(不是 x),可以贴合原图比例。

返回值:生成图是 OSS 临时 URL,位置在 output.choices[0].message.content[].image(content 是数组,取含 image 字段的项)。URL 有时效,拿到之后立即下载落盘,别存 URL 当持久化。

正解:pro 模型 + 多模态生成端点

换成 qwen-image-2.0-pro + /api/v1/services/aigc/multimodal-generation/generation 端点,参考图用 image 字段传 base64 data URI,同步调用几秒内返回 OSS 临时 URL,下载即得重绘结果。

进阶:多图参考做主体替换

同一端点支持 content 传多张图。场景:保持参考帧的构图和景别,把画面主体替换成指定产品(商品图)。

"content": [
  { "image": "data:image/jpeg;base64,<结构参考帧>" },
  { "image": "data:image/png;base64,<产品白底图>" },
  { "text": "保持图1的构图/景别/光线,把画面主体替换成图2的产品,保持主体在画面中的位置与占比,仅替换其外观。" }
]

实测结论:喂两张图(结构帧 + 产品图)时,qwen-image-2.0-pro 标签和颜色对原产品图还原度最高;只传产品图不传结构帧,构图完全丢失退化成白底电商图;只靠文字描述产品(不喂产品图),无名品牌必崩、训练见过的名牌勉强可用。

多锚参考要声明各图角色

喂 3 张以上参考图时,必须在 prompt 开头显式声明每张图的角色(哪张管构图、哪张管主体外观),否则强锚会接管整张构图,把本镜内容挤走。示例:Image 1 is the SOLE authority for composition. Image 2 = ONLY the appearance of the product, do NOT copy its composition.

一句话外卖

百炼 Token Plan 图生图:模型必须加 -pro,端点换多模态生成路径,这两条缺一条都不会生效,且都不报错。