MOSS-Image SFT Destripe LoRA 在 ComfyUI 中移除竖直条纹

ComfyUI Wikinews

一个 1.9 MB 的 LoRA 可移除 MOSS-Image SFT 在天空和平坦背景上绘制的淡淡竖直彩色条纹,并且可通过 ComfyUI 原生 LoRA 加载器加载。

MOSS-Image SFT 会在平滑区域(天空、雾气、纯色墙面、影棚背景)上绘制出规则的淡淡竖直彩色条纹图案。10 月 18 日,nynxz 发布了一个 1.9 MB 的 LoRA SFT Destripe,它能移除这些条纹,同时几乎保留 SFT 模型的其他一切特性。这是一个权重补丁,而非重新训练:无需自定义节点,无需新的模型,只需在模型之后接一个 LoraLoaderModelOnly,本站曾在发布报道中介绍过该模型。

使用与不使用 Destripe LoRA 的 MOSS-Image SFT

上:SFT 输出,原图以及去除亮度并增强色彩 5 倍后的版本。下:相同提示词与种子,使用强度 1.5 的 Destripe LoRA。条纹是色彩偏移而非亮度偏移,这正是它们在原图中得以保留的原因。来源:nynxz/MOSS-Image

条纹是什么

这种伪影在正常观看时很容易被忽略,而一旦放大色彩就再也无法忽视。它固定在某个周期上:768 px 宽时约 16 px,1024 px 宽时约 21.3 px,两种情况折算下来沿图像宽度都是 48 个周期。由于周期随宽度缩放,它不像是传感器噪点或平铺接缝。它的表现更像是模型学会绘制的一种图案。

用户在发布后几天内就在 SFT 仓库上反馈了该问题:第一个反馈帖于 10 月 16 日发布并附带了示例渲染图,其中的猜测从 VAE 使用错误到蒸馏教师的伪影都有。这些猜测均未得到确认。该帖至今仍开放,OpenMOSS 也未发布任何解释。

一个 1.9 MB 的 LoRA 如何移除它

该 LoRA 是从 Base 与 SFT 之间的差值中提取的,而非训练得到。大致流程:

  1. 对 SFT 的 252 个线性层,取相对 Base 的权重差值,用 SVD 分解为秩 1 方向。每个方向都是微调所添加的一条"输入模式到输出模式"的规则。
  2. 按每个方向对条纹的贡献程度为其打分。条纹的度量方式是:在模型自身的预测中,测量早期采样步骤里 48 周期列图案的能量(文件头部记录的是 25 步运行的第 4 至 13 步,ER-SDE,CFG 2.5,768 px,两个种子)。一次反向传播即可给出:加入某个方向时,该条纹能量的增长速度。
  3. 减去得分最高的 64 个方向。它们分布在 24 至 41 层的 25 个矩阵中,其中 11 个是 MLP 的 ffn_up_gate,其余位于 ffn_down、q、k、v 和 o。秩为 1 到 7,这也是文件只有 1.9 MB 的原因:945,152 个存储数值。MATLOWAI 的权重分析表明,这约相当于 SFT 相对 Base 总变化能量的 0.09%。

方向打分正是让文件既小又不失精确的原因。此前两种修复方案会整层回退到 Base,代价是图像漂移;而这一方案只移除这些层内部携带条纹的方向。作为因果验证,以相反符号施加相同方向会使条纹强度增强约 22 倍。

在 ComfyUI 中使用

将 moss_sft_destripe_top64_bf16.safetensors 放入 ComfyUI/models/loras/,加载 MOSS-Image SFT(来自 Comfy-Org/MOSS-Image 的 moss_image_sft_bf16 或 moss_image_sft_int8_convrot),添加 LoraLoaderModelOnly,并按宽度设置强度:

  • 768 px 时用 1.0
  • 1024 px 时用 1.5

在 1024 px 下,强度 1.0 能在 12 张测试图像中的 6 张清除条纹,其余仍有淡淡痕迹。强度 1.5 可提升到 12 张中仅 1 张残留,而 2.0 并不比 1.5 更好,还会进一步偏离 SFT。该 LoRA 由 SFT 自身的变化构建,因此对 Base 没有用处。键使用 diffusion_model. 前缀,原生加载器可直接映射。

一个加载器注意事项来自同一仓库:如果你使用 加载 LoRA(绕过),在融合的 Comfy-Org 模型上 q/k/v 适配器会被丢弃,而该 LoRA 会在少数层中作用于 q、k 和 v。对融合文件使用正常的补丁方式没有问题。

作者的数值说明了什么

盲测使用四个包含大面积平滑区域的提示词(沙丘、纯色墙面、开阔水面、虚化背景上的人像),每个用三个种子,且都未用于构建该修复。评分采用 MATLOWAI 的 bandviz 指标,数值越低条带越少,约 16 或以下可视为干净。

模型bandviz,768 px条纹仍为最强峰相对 SFT 的 SSIM
SFT9.812 张中 9 张1.000
SFT + Destripe @ 1.04.212 张中 1 张0.995
Base(供参考)4.212 张中 5 张0.876

在 1024 px 下,原始 SFT 得分为 24.0,条纹在 12 张图像中的 11 张里都是最强峰;LoRA 在强度 1.5 下得分为 5.9,12 张中 1 张,而 Base 为 4.0。图像与 SFT 所生成的相似度仍保持在 99% 以上。

纯色区域是伪影最容易看到、也最难移除的地方,因为纯色区域没有地方让条纹藏身:

SFT 纯色Destripe 纯色
纯米色背景,原始 SFT相同提示词与种子,LoRA 强度 1.5

人脸则是取舍的另一端,是力度过大的修复往往会使图像变得柔化的部分:

SFT 人像Destripe 人像
人像,原始 SFT相同提示词与种子,LoRA 强度 1.5

来自 MATLOWAI 基准测试的第三方渲染,用 ArcFace 衡量身份一致性:在标准预设设置下为 0.94,在 LoRA 自带的采样器设置下为 0.96。来源:MOSS-Image-SFT-DeBand

第三方验证

最有力的外部证据来自 MATLOWAI,在该 LoRA 出现之前,他们已经发布了对同一批条纹的调查以及一套图层回退修复方案。该基准测试现将 Destripe LoRA 与替代方案正面对比,并将其报告为这一范围中最温和的一端:

修复方案纯色区域,中位 dB最差情况人脸相似度
Destripe @ 1.0−3.2−1.90.94
Destripe @ 1.5−3.9−1.80.94
Destripe @ 1.5,使用其自有采样器设置−4.6−3.00.96
基础模型(供参考)−16.6−10.40.45

同一份评测也直言了这一取舍:该 LoRA 只能部分清理纯色区域,约 −4 dB,因此条纹会变淡,但在增强色彩的视图中仍可能可见,而图层回退修复能走得更远,代价是整幅图像发生偏移。其 README 现在会把希望改动尽可能小的人引向这个 LoRA,而把需要最干净纯色背景的人引向更重的修复方案。

局限

  • 测量覆盖 768 和 1024 px,使用 ER-SDE、25 步、CFG 2.5。其他采样器、步数和分辨率尚未测试,且条带情况在不同种子之间差异很大。
  • 该修复在设计上就是部分的:64 个方向,在单一分辨率下用一阶估计打分。更宽的图像(1536 px 及以上)会画出不同的、更起伏的条纹,本 LoRA 并未针对其打分。
  • OpenMOSS 没有官方说明。作者于 10 月 19 日在 SFT 仓库上的帖子中询问 SFT 数据流水线是否使用了位置缩放、分桶或调整尺寸后的图像,并提供了各方向的分数;截至本文撰写时仍无回复。

仓库中的其他内容

同一仓库还提供两个 MOSS-Image 模型的分离 q/k/v 版本,每个注意力层的 q、k 和 v 分别存储为独立张量,而非一个融合的 qkv。权重数值相同,只是布局不同,共 463 个张量而非 379 个。它们是为适配器工作准备的:AI Toolkit 之类的训练器会写出独立的 q、k 和 v 层,而在融合文件上这些适配器必须映射到切片上。它们用 UNet加载器 加载,替代 Comfy-Org 的文件。

获取方式

两个产物都在 Hugging Face 上。文本编码器和 VAE 未变,来自 Comfy-Org/MOSS-Image。条带分析以及评分所基于的 bandviz 指标属于 MATLOWAI,位于 MOSS-Image-SFT-DeBand,其中还附有在相同提示词和种子下对每种修复方案的交互式对比。

评论

使用 GitHub 登录后即可参与讨论。

评论加载中…
MOSS-Image SFT Destripe LoRA 在 ComfyUI 中移除竖直条纹 | ComfyUI Wiki