Prhub

#20679 [diffusion] fix: fix accuracy for some image models

原始 PR 作者 mickqian 合并时间 2026-03-22 15:11 文件变更 20 提交数 27 评论 12 代码增减 +600 / -199

执行摘要

修复多个图像扩散模型的准确性问题,通过对齐官方实现和修复序列并行偏差。

PR body中说明需要修复准确性,具体包括:为Qwen-Image引入true_cfg_scale以对齐官方CFG行为;为Qwen-Image-Edit尊重负图像提示,使无条件分支使用negative_prompt;保持Qwen2.5-VL vision rotary frequencies在fp32以减少编码器漂移;修复Z-Image的prompt tokenization和dtype问题;修正序列并行下的caption token分片逻辑,确保单GPU与多GPU输出一致。

建议扩散模型开发者和维护者精读此PR,特别是qwen_image.py和zimage.py中的序列并行处理设计,以及USPAttention的扩展实现,以学习多GPU下注意力机制的优化策略和对齐官方实现的技巧。

讨论亮点

Review讨论较少,仅gemini-code-assist[bot]在review评论中确认USPAttention参数修改正确,无争议点。Issue评论中用户Rockdu提供了量化测试结果,显示修复后cosine相似度达到1.0000,验证了修复的有效性。讨论聚焦于测试验证,结论是修复成功解决了SP精度问题。

实现拆解

实现按模型和层次拆解:

  1. 基类扩展:在base.py中添加钩子函数如postprocess_cfg_noise、get_latent_dtype和gather_noise_pred_for_sp,支持模型特定CFG变体和SP并行。
  2. Qwen-Image:在qwen_image.py中实现true-CFG的norm rescale逻辑,通过postprocess_cfg_noise匹配官方行为,并添加SP分片函数_shard_qwen_edit_img_cache_for_sp。
  3. Qwen-Image-Edit:保持旋转频率为fp32,修复负提示处理,并扩展SP支持。
  4. Z-Image:在zimage.py中更新tokenization使用渲染后的聊天模板,移除caption token分片改为复制后缀,并修复RoPE偏移;在模型层扩展USPAttention支持num_replicated_suffix。
  5. 通用层修改:在attention/layer.py中扩展USPAttention以支持复制后缀;在denoising.py中优化CFG归一化和重缩放逻辑。
文件 模块 状态 重要度
python/sglang/multimodal_gen/configs/pipeline_configs/qwen_image.py diffusion pipeline configs modified 8.0
python/sglang/multimodal_gen/configs/pipeline_configs/zimage.py diffusion pipeline configs modified 8.0
python/sglang/multimodal_gen/runtime/layers/attention/layer.py runtime layers modified 7.0
python/sglang/multimodal_gen/runtime/pipelines_core/stages/denoising.py pipeline stages modified 6.0
python/sglang/multimodal_gen/configs/pipeline_configs/base.py diffusion pipeline configs modified 5.0

关键符号

postprocess_cfg_noise get_classifier_free_guidance_scale _shard_qwen_edit_img_cache_for_sp _build_zimage_sp_plan forward (in USPAttention with num_replicated_suffix)

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

测试验证结果 正确性

Issue 评论中用户 Rockdu 提供了量化测试数据,显示修复后模型输出与单 GPU 参考的 cosine 相似度从 0.5039 提升至 1.0000,验证了 SP 精度问题的修复。

结论:修复有效,准确性得到充分验证。 · 已解决

风险与影响

技术风险包括:

1) CFG修改在qwen_image.py中的norm rescale逻辑可能影响其他继承基类的模型,需回归测试;
2) SP并行修改在qwen_image.py和zimage.py中可能引入多GPU对齐偏差,特别是在旋转缓存分片和caption token处理上;
3) 浮点数精度调整(如保持fp32旋转频率)可能轻微影响性能;
4) USPAttention扩展需确保向后兼容性,避免破坏现有注意力机制。

影响范围:所有使用Qwen-Image、Qwen-Image-Edit和Z-Image模型的用户将获得更准确的图像输出,提升用户体验。系统层面需重新测试这些模型的序列并行场景,确保跨GPU一致性。团队需关注配置管理,防止变更引入跨模型兼容性问题。影响程度中等,涉及核心生成路径但非全局架构变更。

SP 并行偏差风险 CFG 对齐兼容性 精度变化影响

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论