Kromoss: a MOSS-Image full finetune shipped for ComfyUI
Kromoss is a full finetune of MOSS-Image-Base, released as bf16 and int8 ConvRot single files for ComfyUI, with an 8-step DMD LoRA and conversion scripts.
Kromoss is a full finetune of MOSS-Image-Base published on October 19, 2026 by lodestones, the author behind the Chroma checkpoint line and the MOSS-Image SFT 8-step distilled weights. It keeps the architecture, the Qwen3.5-9B text encoder and the FLUX.2 small VAE of MOSS-Image-SFT, so it drops into existing MOSS-Image workflows, and it packages the result in the exact single-file layout ComfyUI already loads.
Within hours of upload it had 96 likes on Hugging Face, and the MOSS-Image channel in Banodoco compared it against the int8 supervised finetune with the same seeds.
What the finetune changes
The model card is narrow about the goal: the full finetune mainly fixes the Base model's blurriness. Everything else is inherited. Training followed the final-stage recipe from the MOSS-Image report, scaled to 64 images per update: hybrid Muon-AdamW at 9e-6 learning rate with a 200-step warmup, truncated logit-normal timesteps, decay of the final-block q/k norms to one, and EMA at 0.999 for the published weights. The checkpoint is update 9000 of that run, over 576k training images at 1024 px, with images below 896² dropped from the dataset. The repo re-publishes its EMA checkpoint every few hours as training continues, and the first day alone brought updates 2000, 4000, 5000, 7000 and then 9000, so both the update number and the image count will keep shifting.
![]() | ![]() |
|---|---|
| 50 steps, CFG 3 | 8 steps, CFG 1, with the bundled DMD LoRA |
Packaged for ComfyUI, not just diffusers
The repo is set up so that nothing needs converting before the first render. Five files are meant to be dropped into a ComfyUI tree:
diffusion_models/kromoss_bf16.safetensors(10.2 GB) intomodels/diffusion_models/, loaded with Load Diffusion Model. It replacesmoss_image_sft_bf16.safetensorsone for one in the Comfy-Org workflows.diffusion_models/kromoss_int8_convrot.safetensors(5.4 GB) for the int8 path, the same ConvRot W8A8 format as Comfy-Org'smoss_image_sft_int8_convrot.safetensors.text_encoders/qwen3.5_9b_bf16.safetensors(19.3 GB) intomodels/text_encoders/, loaded with Load CLIP at typemoss_image. It is the same encoder the other MOSS-Image builds use, so an existing install does not need it twice.vae/flux2-vae_small.safetensorsintomodels/vae/.8-steps-dmd-lora.safetensors(1.19 GB) intomodels/loras/, applied with LoraLoaderModelOnly at strength 1.
The int8 file is not a re-quantized copy of somebody else's checkpoint: the 168 block linears (proj.{qkv,o,ffn_up_gate,ffn_down}) are stored as int8 with per-row scales after a 256-wide regular Hadamard rotation of the input dimension, ComfyUI rebuilds the rotation at load time instead of storing matrices, and each block selects ComfyUI's int8 attention. The bin also ships quantize_convrot.py to produce that format from any bf16 single file, and convert_to_comfy.py to turn a diffusers transformer/ folder into the fused proj.qkv layout.
Both scripts carry a self-check that makes them worth keeping: run on MOSS-Image-SFT's own transformer/, they reproduce Comfy-Org's published moss_image_sft_bf16.safetensors and moss_image_sft_int8_convrot.safetensors byte for byte, and --compare FILE diffs keys, shapes and dtypes against a reference. That means anyone can convert their own MOSS-Image finetune with the same two commands.
The 8-step LoRA
The bundled 8-steps-dmd-lora.safetensors is a data-space DMD distillation of MOSS-Image-Base, fp32, rank 128 with alpha 128 on every block's proj.{q,k,v,o,ffn_up_gate,ffn_down}, saved in kohya keys. It follows the ecosystem convention of separate q, k and v projections, and ComfyUI maps them onto the fused qkv slices of the MOSS-Image single files on load.
The model card is explicit that the LoRA should not be merged into the bf16 weights: the delta is close to bf16's rounding step, so it is applied unmerged at strength 1.
| Setting | Full model | With 8-steps-dmd-lora |
|---|---|---|
| Sampler | Flow-matching Euler | Flow-matching Euler |
| Steps | 50 | 8 |
| CFG | 3 | 1 |
| Shift | 5 | 5 |
| Layer skipping | Negative branch, block 22 | None, no negative branch |
Measured prompt following
The repo reports CLIP ViT-L/14 scores on PartiPrompts' 100 prompts, with Kromoss rows measured at update 2000 rather than the checkpoint published now:
| Model | CLIP ViT-L/14 |
|---|---|
| MOSS-Image-Base, 50 steps, CFG 3 | 27.19 |
| MOSS-Image-Base + 8-step LoRA | 27.53 |
| Kromoss, 50 steps, CFG 3 | 26.88 |
| Kromoss + 8-step LoRA, 8 steps, CFG 1 | 27.82 |
Read plainly, that table says the full finetune alone trades a little prompt adherence for sharpness, while the distilled LoRA on top recovers and slightly exceeds the Base score. The numbers are the author's own and come from a mid-run checkpoint.
Availability
Kromoss is on Hugging Face at lodestones/Kromoss and is also mirrored on Civitai. MOSS-Image support is in current ComfyUI master, so no custom node is needed for either the checkpoint or the LoRA. For the base model and the official weights, see the MOSS-Image release coverage and the 4-step and 8-step community adapters.


Comments
Sign in with GitHub to join the discussion.