快速结论:在 Diffusers 的 QwenImage21Pipeline 里做图像编辑(image editing)时,若把 output_resolution 设为默认的 1024,会出现编辑指令被忽略、输出变成带光环(halo)的过度锐化近似原图;把目标分辨率降到 512/768(部分环境 864/896)通常可正常编辑。优先排查目标 latent 网格尺寸是否越过触发阈值,而不是 CFG、seed 或 KV cache。
适用环境:Issue 已确认:Diffusers main @ 80c7ed2(含 #14804);transformers 5.14.1 与 5.17.0(结果一致);CUDA 侧为 RTX 3090 Ti、torch 2.14.0+cu130、bf16;报告者本机为 Apple silicon(MPS)。ComfyUI 原生 Qwen-Image 2.1 路径与 Swift/MLX 重实现也复现同类现象。
最快修复方案:暂无确认的一步修复方案。在定位到根因前,可优先尝试把编辑调用的 output_resolution 降到已确认正常的档位(报告中 512/768 干净;部分环境 864/896 仍正常),并避免把参考图与目标都推到 1024。
注意事项:降低 output_resolution 只是规避,未解决 1024 编辑本身;触发阈值随样本与平台变化(有人 896 失效、有人 864 仍可),不能当作硬边界。true_cfg_scale=4.0、use_kv_cache=False、fp32、更换 transformers 版本均未修复。Issue 中关于“同一 seed 用于 t2i 与 i2i 导致问题”的说法来自评论,尚未见验证证据,仅作为待试方向。
问题场景
使用 QwenImage21Pipeline 基于参考图做指令编辑时触发。典型调用是先用管线生成一张 1024×1024 自然照片,再把该图作为 image 传入、用 prompt 描述编辑(如 “Make the dog wear a red scarf” 或 “Change the background to a sunset beach”),并把 output_resolution 设为 1024(默认)。此时管线不报错、正常跑完,但输出不是预期编辑结果,而是参考图的过度锐化、带光环近似副本;同一调用在 512/768 下编辑正确。纯文生图在 1024²、2048² 正常,问题只出现在带参考图的目标编辑路径上。
报错原文
QwenImage21Pipeline: image editing ignores the instruction and returns a haloed near-copy at output_resolution=1024 (default); 512/768 edit correctly
No errors or warnings are emitted; the pipeline completes normally in every configuration.
Observed at `output_resolution=1024` for two prompts ("Make the dog wear a red scarf", "Change the background to a sunset beach") on a natural photo generated by the pipeline itself, and for a synthetic image; at 320² and 512²/768² the same edits are correct.
原因分析
目前没有已合并的根因结论。Issue 中较有价值的线索是:触发条件看起来与目标图像的 latent 网格尺寸有关,而不是与联合序列长度或参考图网格有关。报告者实测“768² 参考图 + 1024² 目标”仍会退化,说明触发点跟的是目标网格;同时 1024² 的输出几乎与噪声无关(两次不同噪声的 ComfyUI 结果仍有 49.1 dB 一致度,而 768² 正常编辑下两次采样只有 33.2 dB),说明结果被参考图主导而非由采样轨迹决定。另有评论提出触发条件是条件图 latent 网格 max(h, w) >= 56,与报告者观察不完全一致,尚无定论。关于 QwenImage21Rope 的帧位置偏移随网格增大、以及 calculate_shift 只接收目标 token 数是否与训练约定一致,都是 Issue 中提出但未获回答的疑问。可能原因包括:64×64 latent 的编辑目标超出了该模型编辑能力的训练范围,或 RoPE/shift 在大网格下的处理与训练约定不符。可优先尝试的排查方向是缩小目标网格、确认阈值。
环境排查
- 确认 Diffusers 版本/commit:Issue 为 main @ 80c7ed2(含 #14804),请核对你的版本。
- 确认 transformers 版本:5.14.1 与 5.17.0 均复现且隐藏状态位一致,排除版本回退可解。
- 确认 PyTorch/CUDA:CUDA 复现环境为 torch 2.14.0+cu130、RTX 3090 Ti、bf16;MPS 侧亦复现。
- 确认精度:端到端 fp32 与 bf16 结果一致(43.4 dB PSNR),精度不是变量。
- 确认
use_kv_cache、true_cfg_scale、seed、num_inference_steps:这些在报告中均不改变 1024 的失败表现。 - 确认编辑时的目标分辨率与对应 latent 网格边长(VAE 16× 下 1024² 对应 64×64 latent),并记录失效/正常的分界点。
解决步骤
- 用最小复现脚本固定输入:同一张参考图、同一 prompt、同一步数(如 40 步)、同一 generator/seed,只改变
output_resolution。 - 分别跑 512、768、896、960、1024,逐一保存输出并肉眼比对:编辑是否生效、是否出现 halo/过度锐化/主体被替换。
- 记录每个分辨率对应的 latent 边长(分辨率 ÷ 16),标出你环境上的失效阈值。
- 在阈值以下的
output_resolution上继续生产性使用;若必须 1024,先按评论建议尝试让 t2i 与 i2i 使用不同 seed,验证是否改善;此点尚未被证实,仅作可优先尝试项。 - 不要反复调
true_cfg_scale、关闭use_kv_cache或切 fp32 来“修”,Issue 证据显示这些无效,避免浪费时间。
验证方法
用同一参考图与 prompt,仅改变 output_resolution 重跑:若在某个分辨率下编辑指令明显生效(出现围巾/背景改变且无明显 halo),且提高到 1024 后再次退回“带光环近似副本”或主体被替换,即可确认命中该问题。注意以编辑语义是否正确为准,而不是看是否报错——该问题全程无报错无警告。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![[Bug] Ascend NPU: RMSNorm crashes with elementwise_affine=False; _native_npu FA rejects [B, N, 1, Skv] masks (LTX-2)](https://www.chat-gpts.plus/wp-content/uploads/2026/09/14380-1858c464-1-768x403.jpg)
![[Bug]: Drop down menu of ´Add Lora to prompt´ does nont have a ´none´ selection and always charge the last Lora selected](https://www.chat-gpts.plus/wp-content/uploads/2026/09/9041-6fefaf96-768x403.jpg)