WiktorMatuszek's picture
MOSS-Image-SFT MOSS-Image-SFT-NVFP4-Core experimental release
efa7c77
|
Raw History Blame Contribute Delete
5.27 kB
---
license: apache-2.0
base_model: OpenMOSS-Team/MOSS-Image-SFT
base_model_relation: quantized
pipeline_tag: text-to-image
library_name: diffusers
language:
- en
- pl
tags:
- quantization
- torchao
- diffusion-transformer
- moss-image-sft
- nvfp4
---
# MOSS-Image-SFT — NVFP4-Core
## Release status
Experimental checkpoint — **further testing required**. Packed NVFP4 weights and saved-shard integrity were verified; native NVFP4 full 50-step inference, performance and image fidelity have **not** been validated. Short fallback / weight-reconstruction tests do not demonstrate native FP4 speed.
**Benchmark interpretation:** The [image gallery and measurements](https://huggingface.co/datasets/WiktorMatuszek/moss-zimage-quantization-benchmarks) are **reference examples for visual inspection**, not a required reproducibility package or guarantee of quality, speed, or VRAM usage on another setup.
**Original MOSS-Image-SFT DiT with genuinely packed NVFP4 storage weights.** The model is quantized from the original SFT checkpoint; there is **no** extra training, LoRA, distillation or architecture change.
| Property | This checkpoint |
|---|---|
| Quantization | Packed E2M1 4-bit weights, FP8 block scales and FP32 global scale |
| Coverage | **228 / 269** transformer Linear projections (precision-sensitive edge layers retained in BF16) |
| Stored DiT weights | **3.706 GiB**, **60.9%** smaller than original 9.467 GiB BF16 DiT |
| Checkpoint files | Three TorchAO/PyTorch `.bin` weight shards; **not** generic safetensors |
| Upstream revision | [OpenMOSS-Team/MOSS-Image-SFT](https://huggingface.co/OpenMOSS-Team/MOSS-Image-SFT), `fc5de0d56fc910cbca6f6625a70f5f582b26deb1` |
| Integrity | All 463 original state keys matched; shards reloaded and SHA-256 verified |
This repo contains the **transformer only**. The original Qwen text encoder, tokenizer, FP32 VAE, scheduler and pipeline code are loaded from the pinned upstream revision as needed. The stored DiT size is **not** total RAM/VRAM or whole-pipeline model size.
## Evidence and measured limits
**Weights:** all 228 quantized Linear weight matrices compared with the original BF16 tensors: parameter-weighted MSE **1.98e-05**, SQNR **20.47 dB**, cosine **0.995515**. These are *weight-space errors*, not generated-image correctness. Detailed [per-layer measurements](benchmark/weight_quantization_metrics.json), [quantization receipt](QUANTIZATION_RECEIPT.json), [checkpoint integrity](COMPLETE.json).
**Original SFT50 image study:** **Not measured** with the original 50-step pipeline and native runtime in the recorded SM80 benchmark. Checkpoint weight verification does not imply that image quality or GPU execution passed.
**Runtime qualification:** native NVFP4 execution did not pass the original SFT50 kernel check in the recorded SM80 setup. A distinct short fallback reconstructed weights for higher-precision computation; it is **not native FP4 speed evidence**, nor a quality-accepted 50-step run. See [kernel and image study](https://huggingface.co/datasets/WiktorMatuszek/moss-zimage-quantization-benchmarks).
## Use with original SFT inference
Install a CUDA-compatible PyTorch for your GPU, followed by the repository requirements. The conversion environment was PyTorch 2.7.0+cu128 / TorchAO 0.12.0+cu128; compatibility with packed tensor subclasses and native kernels is device dependent.
```bash
hf download WiktorMatuszek/MOSS-Image-SFT-NVFP4-Core --local-dir ./moss-quant
cd moss-quant
python -m pip install -r requirements.txt
# Check all real saved shards before using the model
python generate.py --verify-only
# Original MOSS-SFT: 50 denoising steps, CFG 3, 1024px
python generate.py --prompt-file example_layout.json --output image.png
```
The launcher downloads the **unchanged missing upstream components**, not duplicate original BF16 DiT weights. Optional [Qwen FP8 encoder](https://huggingface.co/WiktorMatuszek/MOSS-Image-SFT-Qwen3.5-FP8-WO) / [Flux2 VAE FP16](https://huggingface.co/WiktorMatuszek/MOSS-Image-SFT-VAE-FP16) can be selected with `--encoder-repo` and `--vae-repo`; that combination needs its own end-to-end quality validation.
## Files and limitations
`transformer/` contains the quantized checkpoint; `generate.py`, `run_quantized_sft.py`, `compact_components.py` contain the strict pinned loader; `QUANTIZATION_RECEIPT.json` and `COMPLETE.json` record checksums. Frozen prompt suites are archived once in the [research dataset](https://huggingface.co/datasets/WiktorMatuszek/moss-zimage-quantization-benchmarks/tree/main/research/moss50-20261021), not copied into this model repo.
Pixel similarity does **not** prove correct Polish spelling, photorealism, aesthetic quality or native-kernel support. Test speed and GPU memory on your intended stack. The full cross-format gallery, including explicitly missing measurements, is maintained **once** in the [benchmark dataset](https://huggingface.co/datasets/WiktorMatuszek/moss-zimage-quantization-benchmarks).
**Attribution:** independently quantized from [OpenMOSS-Team/MOSS-Image-SFT](https://huggingface.co/OpenMOSS-Team/MOSS-Image-SFT) at `fc5de0d56fc910cbca6f6625a70f5f582b26deb1`; original Apache-2.0 license in [LICENSE](LICENSE). Not an official OpenMOSS-Team release.