Kromoss:为 ComfyUI 发布的 MOSS-Image 全量微调模型
Kromoss 是 MOSS-Image-Base 的全量微调版本,以 bf16 和 int8 ConvRot 单文件形式发布,可直接用于 ComfyUI,并附赠 8 步 DMD LoRA 与转换脚本。
Kromoss 是 MOSS-Image-Base 的全量微调版本,由 lodestones 于 2026 年 10 月 19 日发布。lodestones 也是 Chroma checkpoint 系列以及 MOSS-Image SFT 8 步蒸馏权重的作者。它保留了 MOSS-Image-SFT 的架构、Qwen3.5-9B 文本编码器和 FLUX.2 small VAE,因此可直接用于现有的 MOSS-Image 工作流,并以 ComfyUI 已能直接加载的单文件布局打包最终结果。
上传后数小时内,它在 Hugging Face 上就获得了 96 个赞,Banodoco 的 MOSS-Image 频道还用相同的随机种子将其与 int8 监督微调版本进行了对比。
微调带来了哪些变化
模型卡片对目标的描述相当克制:这次全量微调主要修复 Base 模型的模糊问题。其余部分均为继承而来。训练遵循 MOSS-Image 报告中的最终阶段配方,并扩展到每次更新 64 张图像:使用混合 Muon-AdamW,学习率 9e-6,200 步预热,截断的对数正态时间步,将最后一个 block 的 q/k 范数衰减到 1,并对发布权重使用 0.999 的 EMA。该 checkpoint 是该次训练的第 9000 次更新,训练数据为 57.6万 张 1024 px 图像,低于 896² 的图像已从数据集中剔除。训练仍在继续,仓库每隔几个小时就会重新上传一次 EMA checkpoint:仅上传首日就依次放出过第 2000、4000、5000、7000 次更新,如今是第 9000 次,因此具体的更新步数和图像数量都会继续变动。
![]() | ![]() |
|---|---|
| 50 步,CFG 3 | 8 步,CFG 1,使用捆绑的 DMD LoRA |
专为 ComfyUI 打包,而不只是 diffusers
该仓库的设置使得首次渲染前无需任何转换。五个文件可直接放入 ComfyUI 的目录树:
diffusion_models/kromoss_bf16.safetensors(10.2 GB)放入models/diffusion_models/,通过 UNet加载器 加载。在 Comfy-Org 的工作流中,它可与moss_image_sft_bf16.safetensors一一替换。diffusion_models/kromoss_int8_convrot.safetensors(5.4 GB)用于 int8 路径,与 Comfy-Org 的moss_image_sft_int8_convrot.safetensors采用相同的 ConvRot W8A8 格式。text_encoders/qwen3.5_9b_bf16.safetensors(19.3 GB)放入models/text_encoders/,通过 加载CLIP 以moss_image类型加载。它与其他 MOSS-Image 版本使用的是同一个编码器,因此已有安装无需重复放置。vae/flux2-vae_small.safetensors放入models/vae/。8-steps-dmd-lora.safetensors(1.19 GB)放入models/loras/,通过 LoraLoaderModelOnly 以强度 1 应用。
int8 文件并非他人 checkpoint 的重新量化副本:168 个 block 线性层(proj.{qkv,o,ffn_up_gate,ffn_down})在输入维度经过 256 宽的正则 Hadamard 旋转后,以 int8 存储并附带逐行缩放因子;ComfyUI 在加载时重建旋转,而不是存储矩阵;每个 block 都选用 ComfyUI 的 int8 注意力。该仓库还附带 quantize_convrot.py,可从任意 bf16 单文件生成该格式;以及 convert_to_comfy.py,可将 diffusers 的 transformer/ 文件夹转换为融合后的 proj.qkv 布局。
两个脚本都带有自检机制,这让它们值得保留:在 MOSS-Image-SFT 自带的 transformer/ 上运行时,它们能逐字节复现 Comfy-Org 发布的 moss_image_sft_bf16.safetensors 和 moss_image_sft_int8_convrot.safetensors;--compare FILE 可将键、形状和 dtype 与参考文件进行比对。这意味着任何人都可以用同样这两条命令转换自己的 MOSS-Image 微调模型。
8 步 LoRA
捆绑的 8-steps-dmd-lora.safetensors 是 MOSS-Image-Base 的数据空间 DMD 蒸馏,fp32,rank 128,每个 block 的 proj.{q,k,v,o,ffn_up_gate,ffn_down} 上 alpha 为 128,以 kohya 键名保存。它遵循生态中 q、k、v 投影分离的惯例,ComfyUI 在加载时会将其映射到 MOSS-Image 单文件的融合 qkv 切片上。
模型卡片明确指出,不应将 LoRA 合并到 bf16 权重中:其增量接近 bf16 的舍入步长,因此以强度 1 在不合并的状态下应用。
| 设置 | 完整模型 | 配合 8-steps-dmd-lora |
|---|---|---|
| 采样器 | Flow-matching Euler | Flow-matching Euler |
| 步数 | 50 | 8 |
| CFG | 3 | 1 |
| Shift | 5 | 5 |
| 层跳过 | 负面分支,block 22 | 无,不使用负面分支 |
实测的提示词遵循度
仓库报告了在 PartiPrompts 的 100 条提示词上的 CLIP ViT-L/14 分数,其中 Kromoss 各行的数据是在第 2000 次更新时测得,而非当前发布的 checkpoint:
| 模型 | CLIP ViT-L/14 |
|---|---|
| MOSS-Image-Base,50 步,CFG 3 | 27.19 |
| MOSS-Image-Base + 8 步 LoRA | 27.53 |
| Kromoss,50 步,CFG 3 | 26.88 |
| Kromoss + 8 步 LoRA,8 步,CFG 1 | 27.82 |
直白地看,这张表说明:单独使用全量微调会用少量提示词遵循度换取锐度,而在此基础上叠加蒸馏 LoRA 则能恢复并略微超过 Base 的分数。这些数字来自作者本人,且取自训练中途的 checkpoint。
获取方式
Kromoss 已在 Hugging Face 上发布,地址为 lodestones/Kromoss,同时也在 Civitai 上有镜像。当前 ComfyUI master 已支持 MOSS-Image,因此无论 checkpoint 还是 LoRA,都不需要自定义节点。有关基础模型和官方权重,请参阅 MOSS-Image 发布报道 和 4 步与 8 步社区适配器。


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