ComfyUI-DeGrid:精准消除 VAE 解码 2px 网格伪影,支持自动校准与锁相检测

插件1个月前发布 小马良
205 0

ComfyUI-DeGrid 是一款专为移除 Qwen Image VAE(及 Wan 2.1 VAE)解码产生的 2px 像素网格而设计的 ComfyUI 自定义节点。该伪影在常规缩放下不易察觉,但会被后续锐化、放大或反卷积操作显著放大,影响最终输出质量。此节点通过 Nyquist 陷波滤波与自动校准机制,在不损伤真实纹理的前提下精确消除伪影,适用于 Krea2、Qwen Image、Qwen Image 2.1、Anima 等基于相关 VAE 的模型。

  • GitHub:https://github.com/lunaaispace-eng/ComfyUI-DeGrid

项目仅依赖 PyTorch,支持无头环境部署,且明确标注与 ComfyUI-SaveSimple 存在节点 ID 冲突,二者不可共存。其核心价值在于将原本需要手动调参的修复流程自动化,并通过状态行提供可验证的诊断反馈,避免用户陷入“肉眼判断失效”的困境。

技术原理:锁相测量与自适应陷波

传统高频滤波器易误伤真实细节,ComfyUI-DeGrid 采用针对性设计规避此问题:

  • Nyquist 陷波核:9 抽头交替符号二项式核构成可分离滤波器,对 2px 周期图案(棋盘格、垂直/水平条纹)实现精确零点响应,DC 增益为 1 且具备 8 阶平坦特性,确保渐变区域无条带。
  • 振幅钳制保护:校正量在相减前被动态限制,强边缘与合法细微纹理(如皮肤毛孔、织物)原样通过,仅低振幅伪影被移除。
  • 锁相网格检测:VAE 网格相位与输出步长绑定,在全帧恒定。节点对四个 (y%2, x%2) 子晶格取平均,保留网格信号而抵消随机细节,实现约 10 倍信噪比分离(有网格 1.6–2.0/255 vs 无网格 0.10–0.20/255)。低于 0.5/255 阈值时完全跳过处理,避免对干净图像损失高频信息。
  • Auto 模式自适应:钳制上限基于提取网格分量的稳健百分位数按图估算,无需手动干预即可适配不同 VAE、LoRA 栈与内容类型。

2026-09-20 更新修复了旧版将“图像细节量”误判为“网格强度”的检测逻辑,新增 skip_when_clean 控件(默认开启),确保无网格图像逐位直通,彻底杜绝无效过滤导致的纹理损失。

工作流集成:顺序决定有效性

节点的部署位置比参数设置更为关键。必须置于 VAE Decode 之后、任何 resize/sharpen/upscaler/diffusion refiner 之前。半比例 resize 会隐藏网格但保留其结构,导致后续修复器将其误认为有效细节并增强;放大器之后再去网格则为时已晚,节点将报告“未检测到”。

连接示例:
VAE Decode → VAE DeGrid → Resize → Upscaler → Save

默认配置(mode=auto, skip_when_clean=on)即可应对绝大多数场景。状态行是唯一可靠的验证依据:

  • 有网格:grid 2.10/255 (checker) — removed (limit 0.019 auto) · edges protected: 1.2%
  • 无网格:grid 0.16/255 — none detected, passed through untouched · edges protected: 0.0%

预览缩略图中 removed_grid 呈均匀灰色属正常现象(2px 晶格低于缩略图分辨率),需切换至 4x zoom / 8x zoom 或 100%+ 缩放才能观察实际图案。若预览中出现可识别的人脸或织物轮廓,则表明 limit 过高,需切至 manual 模式下调。

安装与兼容性注意事项

cd ComfyUI/custom_nodes
git clone https://github.com/lunaaispace-eng/ComfyUI-DeGrid
  • 重启 ComfyUI 后搜索 degrid 加载节点。
  • 严禁与 ComfyUI-SaveSimple 共存:两者均注册 VAEDeGrid ID,同时安装必致冲突。仅需网格修复选本仓库;已用 SaveSimple 套件则用其内置版本。
  • Qwen Image 2.1 虽采用 64 通道潜在空间与四阶段上采样(区别于原版 16 通道三阶段),但伪影仍为 2px 晶格,节点完全兼容。相位折叠扫描与梳状测试确认无更高周期谐波。

故障诊断与调参指引

症状原因与对策
高对比区网格残留mode=manual,提高 limit 至 0.03–0.04
细微纹理被柔化mode=manual,降低 limit 至 0.01
状态显示“未检测到”但肉眼可见网格网格由后续节点引入或 resize 打乱相位;将 DeGrid 移至 VAE Decode 紧后方
希望对无网格图像强制过滤关闭 skip_when_clean,状态行显示 none detected, filtered anyway
removed_grid 预览全灰提高 grid_gain 或确认图像确实无网格

edges protected 百分比反映真实高频内容占比,几个百分点属正常;过高则提示 limit 过低或图像本身细节密集。

对于依赖 Qwen/Wan VAE 的工作流,这枚单节点可能是提升最终输出纯净度最具性价比的一环——前提是尊重其物理约束:顺序优先于参数,数据优于直觉。

© 版权声明

相关文章