MOSS-Image-SFT β€” INT8 / W4A8 ConvRot (ComfyUI)

Single-file, ComfyUI-ready quantization of OpenMOSS-Team/MOSS-Image-SFT (code and docs: OpenMOSS/MOSS-Image). All credit for the model goes to OpenMOSS; this repo only re-packages the weights.

Component Format Size Original
Diffusion model (DiT, 42 blocks) INT8 ConvRot 5.41 GB 10.16 GB (bf16)
Text encoder (Qwen3.5-9B) W4A8 GPTQ ConvRot 5.43 GB 16.79 GB (bf16)
VAE (AutoencoderKLFlux2) bf16 125 MB 250 MB (fp32)

File layout

MOSS-Image-SFT-INT8-W4A8-ConvRot/
β”œβ”€β”€ diffusion_models/
β”‚   └── moss_image_sft_int8_convrot.safetensors        # 5.41 GB
β”œβ”€β”€ text_encoders/
β”‚   └── qwen3.5_9b_moss_image_sft_w4a8_gptq.safetensors # 5.43 GB
β”œβ”€β”€ vae/
β”‚   └── moss_image_vae_bf16.safetensors                # 125 MB
└── assets/                                            # comparison images

Drop each file into the matching folder of your ComfyUI models/ directory.

Usage (ComfyUI)

  1. Install the official node pack from the MOSS-Image ComfyUI guide (copy comfyui/moss-image into custom_nodes/). ComfyUI needs comfy-kitchen quantized-op support; the quantization type is auto-detected from the files.
  2. Load with the plugin's single-file loaders:
    • MOSSImageUNETLoader β†’ moss_image_sft_int8_convrot.safetensors
    • MOSSImageCLIPLoader β†’ qwen3.5_9b_moss_image_sft_w4a8_gptq.safetensors
    • VAELoader β†’ moss_image_vae_bf16.safetensors
  3. Use the official SFT sampling settings: Euler, 50 steps, CFG 3, ModelSamplingSD3 shift 5, uncond skip-layer 22.

Tested end-to-end in stock ComfyUI on an 8 GB RTX 3060 Ti (β‰ˆ210 s for 1024Γ—1536, 50 steps).

How it was made

  • DiT: all 252 block linears (layers.N.proj.{q,k,v,o,ffn_up_gate,ffn_down}) quantized to INT8 with a group-Hadamard (size 256) ConvRot rotation and per-output-channel scales. Embedders, modulation, final layers and norms are kept in original precision.
  • Text encoder: the 200 body linears (attention / linear-attention / MLP) quantized to 4-bit weights (group 16, fp8 relative scales) with 8-bit activations, using GPTQ run in the rotated basis. Calibration used the model's real chat template on the official example prompts and negatives plus public prompt datasets. Embeddings and the vision tower are INT8 ConvRot; everything else is unchanged.
  • VAE: plain fp32 β†’ bf16 cast.

Quality check

50 steps, official sizes, same seed, cfg 3. Left β†’ right in each strip: original bf16 pipeline Β· bf16 VAE Β· INT8 DiT Β· everything quantized (INT8 DiT + W4A8 text encoder + bf16 VAE).

anime pop-up book noir photo

  • bf16 VAE vs. fp32 decode: ~54 dB PSNR (visually identical).
  • Quantized DiT / full stack diverge in fine detail over the 50-step trajectory (PSNR 19–27 dB vs. the original output), but composition, identity, style, lighting and rendered text are preserved.
  • Text-encoder last_hidden_state cosine vs. bf16: β‰ˆ 0.996 (mean over tokens, first example prompt).

Limitations: only three prompts were compared visually; the original model card recommends an fp32 VAE, which is the safest choice if you see banding. Results in ComfyUI's sampler will not match the diffusers pipeline pixel for pixel.

Checksums (SHA-256)

ffd98820ac8f0f57c48386bd98852720de50c3acb502f73fd641d0cd9df6d0af  moss_image_sft_int8_convrot.safetensors
b5f31a430e4912decb152f3a0761350f52282176823b597edd43b2e3f6403da4  qwen3.5_9b_moss_image_sft_w4a8_gptq.safetensors
81a27c7135775f149648fa35a58eec6d78a3e6a9bb9273885b51895cbc212d5d  moss_image_vae_bf16.safetensors

License & attribution

Apache-2.0, same as the original. Original model, architecture and pipeline Β© OpenMOSS-Team (MOSS-Image-Base, MOSS-Image-SFT, technical report). This repo is an unofficial community quantization and is not affiliated with OpenMOSS.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for nif0/MOSS-Image-SFT-ComfyUI

Quantized
(5)
this model