- 人工智能
- 大模型
- 计算机视觉
- 媒体生成
- 微调
【免费下载链接】texture-fix-vae-for-qwen-image-2.1
texture-fix-vae-for-qwen-image-2.1 是针对 Qwen-Image-2.1 官方 VAE 的一个对抗微调版本(unofficial finetune),专门用于根治生成图像中的棋盘格伪影(checkerboard artifacts),同时顺带修复了官方 VAE 在 fp16 下输出 NaN 的问题。它不改架构、不增参数,只是把解码器的训练配方补上了"缺失的一环"——GAN 对抗损失。
📌TL;DR 速览
- 棋盘格伪影是训练配方的副作用,不是模型结构缺陷
- MSE / LPIPS / GAN 三种损失各有"副作用",缺一不可;GAN 正是常被忽略的关键项
- 只解冻7.5M 参数的微调(约 5000 步)即可根治
- 附带收益:fp16 下 185 个压力测试输入从 75 个 NaN 降到0 个,rFID 从 3.38 降到2.07
棋盘格伪影是怎么来的
用 Qwen-Image-2.1 生成照片风格的高细节图像(草地、苔藓、岩石、花丛)时,放大局部很容易看到规律性的一格一格噪点,俗称"棋盘格伪影"。
问题出在 VAE 解码环节:扩散模型输出的 latent 被解码成像素时,解码器对无法从 64 通道 latent 中精确恢复的高频细节,会"偷懒"填充出低成本的规律性图案。官方 VAE 解码同一片 lupine 花田,岩石和花丛区域就能观察到明显的网格纹:
而用 texture-fix-vae-for-qwen-image-2.1 解码同一份 latent(即不重跑扩散采样,只换解码器),纹理明显更干净:
三驾马车:MSE、LPIPS、GAN 损失各起什么作用
VAE 这类图像自编码器的训练,几乎都采用"多损失混合"配方。核心逻辑很简单:当 latent 信息不足以精确重建某个细节时,三种损失会把解码器往三个不同方向拉扯:
| 损失函数 | 优化目标 | 细节缺失时的"副作用" |
|---|---|---|
| MSE / MAE(PSNR 导向) | 像素级保真 | 鼓励模糊(取像素均值最安全) |
| LPIPS | 感知相似度 | 鼓励模糊 + 棋盘格等伪影 |
| 对抗(GAN) | 图像真实感 | 鼓励生成锐利、合理的细节 |
三种力量博弈后的平衡点,就决定了输出的纹理风格:
- 只靠 MSE → 画面糊;
- 加上 LPIPS → 在难重建区域更容易出现棋盘格;
- 补上 GAN 对抗损失→ 判别器会惩罚"一眼假的规律性网格",倒逼解码器生成锐利且合理的细节(哪怕细节本身是"编"出来的)。
这正是该项目 README 中描述的完整机制:TAESD 配方混合了 PSNR 导向(MSE/MAE)、LPIPS 与对抗(GAN)三项损失,其中 GAN 项是抑制棋盘格的关键。
为什么官方 VAE 还会出棋盘格?
作者的判断很直接:原版 Qwen-Image-2.1-VAE 很可能是在没有"起作用的对抗损失项"的情况下训练的(或对抗项权重/实现失效)。缺少 GAN 的"监督压力"后,LPIPS 损失很容易被低成本的棋盘格模式"骗过",于是高频纹理区域就留下了规律性网格。
这也解释了为什么伪影集中在细节丰富的照片风格图像上:平坦色块不需要重建高频信息,自然无感;而花田、岩石、草叶这类区域恰恰是细节信息最超出 latent 容量的地方。
对抗微调实操:只解冻 7.5M 参数
修复方式并不是从头训练,而是针对性微调解码器的最高分辨率部分。具体做法(见 README.md 的 Mechanism 与 Version History 章节):
- 只解冻最高分辨率的两个 decoder 阶段 + 输出头,可训练参数仅 7.5M(对照 config.json:
decoder_base_dim: 144,dim_mult: [1,2,4,8,8],微调的正是靠近输出端的两个 8 倍上采样阶段); - 采用 TAESD 开发的对抗配方(MSE/MAE + LPIPS + GAN 混合损失),学习率 3e-5,约 5000 步(首发版本),微调时间很短,避免把已有能力"练坏";
- 2026-10-05 更新版在此基础上又做了 fp16 稳定性加固:约 60k 步微调解码器权重(61k 参数)在保持输出不变的前提下压低激活幅度,再重跑 8000 步对抗微调恢复纹理细节,最后将权重按精确 2 的幂缩放(decoder ÷512、encoder ÷8)——由于每个残差分支都以 RMSNorm 开头,这种缩放不改变函数输出。
值得注意的是:编码器权重仅做了 2 的幂缩放,计算函数与原版完全一致(详见 NOTICE),因此它可以直接替换官方 VAE 而不影响扩散采样端的 latent 分布。
实测对比:棋盘格 vs 干净纹理
同一段溪流岩石场景,两种 VAE 解码同一 latent 的局部放大:
官方 VAE 的岩石表面有明显的灰白网格纹:
texture-fix 版本同一区域纹理连贯、无规律性网格:
官方 README.md 中还提供了 2048px 完整对比图(由"太平洋西北高山野花草甸"照片风格提示词生成的 latent 解码而来),latent 文件即pnw_meadow_stream_2048.latent.pt。
指标:感知质量显著提升,重建精度轻微让步
| 指标(COCO val2017 @ 256²) | 官方 VAE (bf16) | texture-fix (bf16) | texture-fix (fp16) |
|---|---|---|---|
| rFID ↓(感知质量) | 3.38 | 2.07 | 2.06 |
| PSNR ↑(像素保真) | 33.29 | 32.73 | 32.79 |
| LPIPS ↓(感知距离) | 0.0357 | 0.0384 | 0.0380 |
这张表恰好印证了损失博弈的本质:rFID 大幅改善(人眼看更真实),而 PSNR/LPIPS 略有回退——这就是 GAN 项的"代价":允许生成"锐利、合理但可能是编造"的细节,换取整体观感的干净。对出图应用来说,这笔交易几乎总是值得的。
附带修复:fp16 下的 NaN 大坑
微调还顺带解决了官方 VAE 的一个隐蔽问题:fp16 下解码器激活值溢出,产生大片 NaN(解码透明贴纸类图像时尤其明显,NaN 还会"渗透"到周围内容)。
| fp16 指标 | 官方 Qwen-Image-2.1-VAE | texture-fix 版 |
|---|---|---|
| 解码器最大激活值(fp16 上限 65504) | ~3.5M(溢出) | ~1.3k |
| 产生 NaN 的输入(185 个压力测试) | 75 | 0 |
做法分两步:① 微调解码器卷积与 RMSNorm 的 scale/bias,保持输出不变的同时压低激活幅度(类似 SDXL-VAE-FP16-Fix 的思路);② 手动按 2 的幂缩小特定权重,进一步压缩残差流规模。仓库附带 fp16_demo.py 可复现该可视化(官方 bf16 / 官方 fp16 / 修复版 fp16 三方对比,NaN 区域用洋红色标出)。
如何使用:ComfyUI 与 Diffusers 接入
ComfyUI(最省事):下载 texture_fix_vae_for_qwen_image_2.1_bf16.safetensors,放入ComfyUI/models/vae/,在Load VAE节点中替换掉官方qwen_image_2.1_vae_bf16.safetensors即可,--fp16-vae参数同样兼容。
Diffusers(两行代码):
vae = AutoencoderKLQwenImage21.from_pretrained( "madebyollin/texture-fix-vae-for-qwen-image-2.1", torch_dtype=torch.bfloat16) pipe = QwenImage21Pipeline.from_pretrained("Qwen/Qwen-Image-2.1", vae=vae, torch_dtype=torch.bfloat16).to("cuda")模型文件为 diffusion_pytorch_model.safetensors,配置见 config.json。
⚠️许可提醒:本项目基于 Qwen-Image-2.1 权重微调,遵循 Qwen RESEARCH LICENSE(见 LICENSE),仅限非商业/研究用途,商用前请确认合规。
总结
回到标题的问题:是 MSE、LPIPS 还是 GAN 损失?答案是"全都要,但 GAN 是决定项"。
- MSE/MAE 负责打底保真,副作用是模糊;
- LPIPS 负责感知对齐,副作用是棋盘格;
- GAN 对抗损失负责"收尾",逼出锐利且合理的纹理,是棋盘格的克星。
texture-fix-vae-for-qwen-image-2.1 的价值就在于演示了一条低成本修复路径:判断伪影根因(对抗项缺失/失效)→ 只解冻解码器最高分辨率部分(7.5M 参数)→ 用 TAESD 对抗配方微调数千步。这套"病灶定位 + 靶向微调"的思路,对其他出现棋盘格的 VAE 解码器同样具有参考价值。
- 人工智能
- 大模型
- 计算机视觉
- 媒体生成
- 微调
【免费下载链接】texture-fix-vae-for-qwen-image-2.1
相关推荐
如何在 ComfyUI 中 3 步换装 texture-fix-vae-for-qwen-image-2.1:新手零门槛完整教程
如何在 ComfyUI 中 3 步换装 texture fix vae for qwen image 2.1:新手零门槛完整教程 Texture Fix VAE
人工智能大模型计算机视觉媒体生成微调新王登基还是原地踏步:Qwen-Image-2.1 对比 Edit-2511 与 wan2.1-vae 生态
新王登基还是原地踏步:Qwen Image 2.1 对比 Edit 2511 与 wan2.1 vae 生态 2026 年 9 月,通义千问开源 Qwen Im
人工智能大模型媒体生成多模态为什么Qwen-Image-2.1-FP8能把显存砍半?FP8/INT8量化原理与LPIPS质量损失详解
为什么Qwen Image 2.1 FP8能把显存砍半?FP8/INT8量化原理与LPIPS质量损失详解 Qwen Image 2.1 FP8 是 Unslot
人工智能大模型基础模型媒体生成模型量化Qwen
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考