edit_image 工具使用 Qwen-Image 2.1 图像编辑工作流。
工具参数:prompt(必填)、input_image(必填)、reference_images(≤15)、output_path、resolution、steps、seed、negative_prompt、custom_size、aspect_ratio、megapixels。
-
工作流
cfg=1,负面提示词无效。 -
Qwen-Image-2.1 原生支持 RGBA 透明图
0. 什么是否放弃使用edit_image工具
-
单纯的像素级操作不应该使用模型(剪切等)。
-
生图工作流(T2I)不应该使用 edit_image 工具。
1. 提示词指导
2.1 引用规则
- 用
<image1>、<image2>… 指代图片:<image1>就是input_image(编辑目标),其余按reference_images的列表顺序依次编号。 - 上传顺序 = 编号顺序。调换
reference_images的顺序会静默改变每个编号指向的对象。 - 存在
reference_images的情况下(即多图片输入)必须使用<imageN>界定被引用元素所属那张图片。
2.2 指导
- 使用指令,而非描述。
- 有效示例——动词 + 指认可见输入:
把 <image2> 里的蘑菇串加入到 <image1> 的场景中,放在 <image1> 火堆左前方的沙土地上:<物体外观描述>。整串平躺在地面上……<光照方向、投影、明暗、材质> - 无效示例:"火堆左前方的沙土地上躺着一串烤蘑菇……"
- 属性解耦:每个子指令只解耦并修改一个属性;需要改多处时,用多个短句或并列动词短语逐项写清楚。例如:
Keep the character and pose in <image1> unchanged. Use the shirt from <image2>. Preserve facial identity and hair.。 - 需要保留的东西显式写出来:
keep the face, hairstyle and lighting unchanged/preserve her identity and the product shape。模型对人物与商品身份做了优化,但明确要求"保持不变"仍然更稳。 - 画面里的文字:要把文字原样渲染出来就用引号给出确切内容(
a neon sign that reads "QWEN IMAGE 2.1")。改字时最好同时说明"原文 → 新文",并保留引号。模板:A [surface/medium] that reads "[YOUR TEXT]" in [typography style], [context], [lighting] - 多图合成:在一条指令里说清每张图的角色和它们的关系,例如"把
<image2>的衣服穿到<image1>的人身上,背景换成<image3>的街道,保持<image1>的脸不变"。 - 不要使用否定句,提供尽量明确具体的指令,而非需要思考、抽象的指令。
2.3 透明背景
需要显式提示透明背景,并非自动透明,推荐使用固定句式:
This is an RGBA image with transparency. <你的描述>. The image has alpha channel and the background is transparent.
例:
This is an RGBA image with transparency. A cute cartoon dragon sticker. The image has alpha channel and the background is transparent.
-
透明输出必须保存为支持 alpha 的格式
-
想"从照片里抠出主体"也可以用同一套说法让它输出透明背景。例:
This is an RGBA image with transparency. The sneaker from <image1>, isolated on a clean edge with a soft contact shadow. The image has alpha channel and the background is transparent.
2.4 在指定的区域修改
Qwen-Image 2.1 支持通过独立掩码(separate masks) 来指定局部编辑区域。
独立掩码
- 是什么:把一张掩码当空间约束传进来——掩码区内按提示词重绘,区外逐像素保留。一个掩码参数都不给时,整张画布都能改。
- 掩码图必须是黑白/灰度、且不带 alpha:工具固定按红通道取值。带 alpha 的图按它自带的 RGB 判色(ComfyUI 读图是 RGB 直取、alpha 单独拆出去),所以透明区并不等于「不重绘」——Photoshop 导出的透明区常带白色 RGB,那会被当成重绘区。
- 保护强度:实测掩码区外逐像素保留(与「什么都不改」同量级),而且提示词吃不掉它——同一张掩码配「把整张图变成夜间场景」,区外照样不变。所以提示词只需写掩码内要变成什么,不必再反复强调「其余保持不变」。
- 注意:
- Qwen-Image 2.1可以直接使用提示词编辑图片,除非用户指定,否则使用独立掩码必须是只使用提示词效果不理想后的选择。
- 不能和
custom_size同时用:走掩码时输出尺寸改由input_image决定,两者冲突会被直接拒绝;要扩展画布请先使用pad_image对input_image进行处理。 - 掩码图最好与原图同尺寸,否则会被拉伸到原图大小。
- 掩码不占
reference_images的位置;也不要把掩码图当参考图传——参考图是「内容」,模型只当它是另一张画,给不了任何空间约束。 - 掩码只决定"允许改哪里",它不进入模型的视觉输入。 :使用'白色区域....'、'在我标记的这块区域里....'指定掩码的重绘范围是无效的,要让"在掩码处加入某物"成立,必须至少给一条能落到可见输入上的任务信号。
2.5
Qwen-Image 2.1 支持视觉提示,可通过圈选和涂抹选区提供视觉线索。
-
圈选 (Circle Annotation):直接在图像上画出闭合形状(如圆圈、方框)来圈定目标。注意圈要画得足够大,确保完全包围目标,否则模型可能会误判为“添加新物体”而非“修改旧物体”。
-
涂抹 (Painted Annotation):在图像上自由涂抹来标记编辑区域,通常使用白色标记“需要修改”的区域。
视觉提示的核心逻辑是:你标记了哪里,提示词就只描述那个区域的变化,同时明确锁定其他部分保持不变。
通用提示词模板:
Modify <image1>: Keep [需要保持不变的元素,如面部、背景、构图] unchanged, replace/change [标记区域] with [你想要的描述].
示例:
不佳:“把图里的杯子变蓝”(模型可能改变整个画面色调)。
推荐:Modify <image1>: Keep the background and table unchanged, change the mug in the circled area from white to blue.
2.6 输出尺寸
默认情况下,custom_size 关闭、resolution为 0,输出画布就是 <image1> 的宽高尺寸本身**,宽高各自对齐到 32 的倍数。
实测:输入 1208×1208 → 输出 1216×1216;输入 2368×1344 → 输出 2368×1344。
-
输出尺寸会对齐到32的倍数,输入图像和输出图像有轻微的尺寸差距是正常的,除非用户要求分毫不差,否则可以不用管。
-
resolution > 0会把输入图缩到约resolution²的面积(各图保持比例、对齐 32),输出画布随之缩小。实测resolution=1024+ 输入 2368×1344 → 输出 1344×768。要input_image尺寸保持resolution为0(默认)。 -
custom_size=true意味着自定义输出尺寸,一般只有高清放大 / 指定输出尺寸 / 改变图像比例时才需要打开, 开启参数后将由aspect_ratio+megapixels决定画布最终形态(megapixels基准 1 ≈ 1024×1024)。 -
扩展图片需要使用
pad_image先把input_image扩展到目标尺寸,再用mask_from_transparency(使用该工具时,expand=48 是一个表现良好的数值。) 生成掩码,再使用扩展后的图片和掩码作为input_image和mask_image传给edit_image。 -
人物全身图请使用9:16的比例。
2.7 如何控制reference_images中的物体在结果图片上的尺寸
工具会先把参考图统一缩放到固定大小,物体在成图里的大小,不由参考图有多少像素决定,而由物体在参考图里占了多大一块地方决定。
有效做法:调整物体在图里占的比例,需要修改参考图。
3. 参数使用场景
| 参数 | 工作流默认 | 怎么用 |
| --- | --- | --- |
| input_image | 必填 | 编辑目标 = <image1>;默认输出画布就是它的宽高尺寸(各边 32 对齐,见 §2.5) |
| reference_images | 无 | 依次为 <image2>…;与 input_image 合计最多 16 张(工作流容量),官方模型支持 ≤10 张参考图 —— 超过 10 张属于超出官方验证范围,建议优先挑最必要的几张 |
| prompt | 必填 | 见第 2 节。省略不是选项(必填) |
| mask_image | 无 | 掩码图的绝对路径,白 = 重绘、黑 = 保护。请用不带 alpha 通道的黑白/灰度图:工具固定取红通道,带透明的图按它自带的 RGB 判色(透明区 ≠ 不重绘)。这张图会一并上传给 ComfyUI,最好与原图同尺寸,否则会被拉伸到原图大小。|
| mask_invert | false | 把已经算出来的掩码整体反过来:白 = 重绘 ↔ 黑 = 重绘。单独传它不会让掩码生效 |
| steps | 25 | 生成步数,保持默认就好。 |
| resolution | 0 | 所有输入图(含参考图)会被缩放到约 resolution × resolution 像素,各自保持比例、对齐到 32 的倍数。0 = 不缩放,每张按自己尺寸取整,输出画布 = <image1> 尺寸。取值 0–4096。⚠️ 它还会改掉画布尺寸:> 0 时输出画布跟着缩到约 resolution² 面积(实测 1024 + 输入 2368×1344 → 输出 1344×768)——要原尺寸就留 0。|
| custom_size | 关 | 关着(默认)= 输出画布用 <image1> 的宽高尺寸(各边 32 对齐),普通改图保持关闭即可,成图不会比原图小。要做高清放大 / 指定输出尺寸才打开它,此时画布改用 aspect_ratio + megapixels 计算 |
| aspect_ratio / megapixels | 1:1 / 1 | 仅在 custom_size 打开时才参与算画布;aspect_ratio 只给比例,真正的像素量由 megapixels 决定(基准 1 ≈ 1024×1024),宽高各自按 32 对齐,因此比例是逼近、尺寸不精确。 |
| negative_prompt | 空 | 省略 = 空,不会沿用工作流里残留的文字。工作流里 cfg=1,此时负向提示词不生效——想让它生效得先把工作流 cfg 调高 |
| seed | 随机 | 复现同一张图用同一个值 |
补充:工作流采样器 euler + simple 调度、cfg=1、denoise=1,出图节点 SaveImageAdvanced。
4. 语言偏好
- 中英文都可以:官方 README 与 Diffusers 示例用英文,Qwen 自己的中文文档与中文示例同样是一等公民;这是个中文团队的模型,中文指令不会因为"非英语"而系统性变差。
- 什么时候倾向中文:画面里要渲染中文字(招牌、菜单、书法、字幕)时用中文描述并给出中文字符串,通常比用英文转述更准。
- 什么时候倾向英文:指令里夹带大量摄影/美术术语(
three-quarter view、softbox key light、rim light、gouache texture)时,英文术语更稳。 - 别混着乱写:一条指令里主语和对象保持一致的语言即可;给画面文字时引号内的内容必须是原样字符,不翻译。
- 用户用中文提需求时,直接用中文写指令是最自然的选择,不必额外翻译成英文。
5. 常见坑
- 多图输入不使用
<imageN>:这会导致引用不明确。 - 编号与传参顺序不一致:
<image2>到底指哪张,取决于reference_images的顺序。写提示词前先把列表定下来。 - 只看
resolution的那句"缩放到 resolution²",以为只影响条件图:它同时决定输出画布。想压条件图成本又不牺牲画布,是做不到的——本工具里两者是同一个 latent。 custom_size打开但megapixels离<image1>太远:官方明确提醒会导致编辑偏移(内容跑到错位置)。要放大就接受这一点并用提示词钉住取景;要精确编辑就保持custom_size关闭。- 指望
negative_prompt起作用:工作流cfg=1,负向无效。要正面描述你想要的画面。 - 一句话里塞五处修改:容易只做其中一两处或整体漂移。拆成多条指令、多跑几次,比一次贪多稳。
- 文字模糊或尺寸不对:文字渲染是强项但不是万能,长段落/小字号仍可能糊;必要时分两步(先出图,再用
edit_image只改字)。 - 分辨率过大:受限于本地条件,
custom_size开到 2MP 这类量级时,图像生成所需时间可能会超过工具等待时间。超时最后会产出文件,但你无法得到。。 - 把图像编辑工具当生图工具:使用了描述而非指令
微信扫一扫