alt.freeweights.image / MOSS-Image-SFT-FP8
From: unsloth <huggingface.co/unsloth>Newsgroups: alt.freeweights.imageSubject:

MOSS-Image-SFT-FP8

Date: 2026-11-15Commit: 8fb0d8cSigned: 2DC28CC7B26A283B ✓

Text to image model with 5.1B parameters. Safetensors weights, 55.0 GB in all. Published by unsloth under Apache-2.0.

5.1B params55.0GBMOSS-Image-SFT-FP8safetensorspermissive
FactsParams5.1BSize55.0 GBFormatssafetensorsTasktext to imageLicenseApache-2.0From sourcepermissive
$ fw get unsloth/MOSS-Image-SFT-FP8
# manifest sha256 5d4982d8920a… · 55.0 GB · 33 files
$ fw verify ./MOSS-Image-SFT-FP8 unsloth/MOSS-Image-SFT-FP8
From sourceHosted (signed)unsloth/MOSS-Image-SFT-FP8Last check: 2026-11-15 04:42 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Quantized of MOSS-Image-SFT.

Works with

Overview

Size
55.0 GB
Weights
54.9 GB (safetensors)
Parameters
5.1B
Formats
safetensors
Task
text to image
License
Apache-2.0 (permissive)
Files
33, each with a sha256
Publisher
unsloth
Added
2026-11-15
Section
alt.freeweights.image
Lineage

Original release from the publisher.

Base model: OpenMOSS-Team/MOSS-Image-SFT

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 04:42 UTCpassed

Model card

From the publisher at commit 8fb0d8c. Shown as plain text with links; images open at the publisher.

https://github.com/unslothai/unsloth/ https://discord.gg/unsloth https://docs.unsloth.ai/

This is an FP8 / INT8 quantized version of MOSS-Image-SFT by OpenMOSS, the 5.1B text-to-image transformer (Qwen3.5-9B text encoder, FLUX.2 small-decoder VAE).

  • The transformer is 5.42 GB instead of 10.16 GB in bf16.
  • Loads pre-quantized in Unsloth Studio, which skips the bf16 download and the on-the-fly quantization.
  • Text encoder (Qwen3.5-9B, 16.8 GB in bf16): MOSS-Image-SFT-text_encoder-INT8-ConvRot.safetensors (11.49 GB), LPIPS 0.059 vs the bf16 encoder. MOSS-Image-SFT and MOSS-Image-Base ship byte-identical text encoders, so this one file serves both.
  • This repo also carries the upstream diffusers files from OpenMOSS-Team/MOSS-Image-SFT (commit f972bd4b), unchanged (model_index.json, pipeline_moss_image.py, scheduler/, text_encoder/, tokenizer/, transformer/, vae/), so Unsloth Studio downloads every component, the bf16 transformer and text encoder included, from here.

Recommended: MOSS-Image-SFT-INT8-ConvRot.safetensors (LPIPS 0.058, against 0.111 for plain INT8 and 0.163 for FP8) together with the INT8-ConvRot text encoder. FP8 changes the image noticeably more on this model, so Unsloth Studio only uses it when you pick it explicitly.

Usage in Unsloth Studio#

Pick MOSS-Image-SFT in the Images tab. Unsloth Studio keeps the transformer in bf16 while it fits on your GPU and otherwise loads MOSS-Image-SFT-INT8-ConvRot.safetensors from this repo; the text encoder loads the INT8-ConvRot file by default. INT8 and FP8 can be chosen explicitly in the precision setting. Defaults follow the reference workflow: 1024x1024, 50 steps, CFG 3, shift 5, Euler. MOSS-Image needs transformers 5.3 or newer, and float16 is not supported (bf16 or fp32 only).

Files#

FileSizeSchemeLPIPS (alex) vs bf16, mean / maxSSIM vs bf16
MOSS-Image-SFT-INT8-ConvRot.safetensors5.42 GBINT8 per-row weight with ConvRot rotation (group 256) on the 252 block Linears, dynamic per-token activation; text embedder, timestep MLP and AdaLN bf16. Unsloth Studio's default0.058 / 0.1280.929
MOSS-Image-SFT-INT8.safetensors5.42 GBINT8 per-row weight, dynamic per-token activation, same bf16 layers0.111 / 0.3140.877
MOSS-Image-SFT-FP8.safetensors5.41 GBFP8 e4m3, per-row weight scale, dynamic per-token activation, same bf16 layers0.163 / 0.4130.826
MOSS-Image-SFT-text_encoder-INT8-ConvRot.safetensors11.49 GBText encoder (Qwen3.5-9B): INT8 weight-only with ConvRot rotation on the MLP and full-attention Linears; gated-delta layers, embeddings and vision tower bf16. Unsloth Studio's default0.059 / 0.3210.931

LPIPS (alex, lower is better) and SSIM against the bf16 transformer: same prompt, seed, initial noise and bf16 text embeddings, 1024x1024, 50 steps, CFG 3, over 12 prompts (8 general prompts plus 4 held-out ones: a close-up portrait, a storefront sign with text, hands folding origami, a long scene description). A repeated bf16 render scores 0. MOSS-Image is sensitive to tiny numeric changes: changing a single bf16 rounding step in one layer already moves the renders by 0.041 LPIPS on average, so differences near that level are composition shifts rather than quality loss.

The text encoder row is scored against the bf16 text encoder with the bf16 transformer, so it measures only the encoder.

GGUF builds for CPU, Mac and smaller GPUs: unsloth/MOSS-Image-SFT-GGUF.


MOSS-Image-SFT#

Image: MOSS-Image-Base and MOSS-Image-SFT

MOSS-Image-SFT is a supervised fine-tuned text-to-image model in the MOSS-Image family from OpenMOSS, derived from MOSS-Image-Base. It uses the same architecture and inference pipeline, supporting natural-language prompts, tag sequences, and JSON layouts for controlling text placement and object arrangement.

Base vs. SFT#

In this example, SFT produces clearer text grouping and a more organized whiteboard layout.

MOSS-Image-BaseMOSS-Image-SFT
Image: MOSS-Image-BaseImage: MOSS-Image-SFT

Quick start#

Use Python 3.10 or later and an NVIDIA GPU with CUDA support. Install a PyTorch 2.9 or later build compatible with your CUDA environment, then install:

pip install "diffusers>=0.38" "transformers>=5.3" "accelerate>=1.10" "safetensors>=0.6" "Pillow>=10"
import torch
from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained(
    "OpenMOSS-Team/MOSS-Image-SFT",
    custom_pipeline="pipeline_moss_image",
    trust_remote_code=True,
    torch_dtype={"default": torch.bfloat16, "vae": torch.float32},
)
pipe.scheduler = type(pipe.scheduler).from_config(pipe.scheduler.config)
pipe.to("cuda")

prompt = '''A wide view of a refrigerator beside a kitchen counter with a fruit bowl. A small sticky note on the refrigerator door is handwritten in Chinese:
"记得买牛奶和鸡蛋!
牛奶两盒,鸡蛋一打。
顺便带一袋面包。"'''

image = pipe(
    prompt,
    height=1024,
    width=1024,
    num_inference_steps=50,
    guidance_scale=3.0,
    uncond_skip_layers=[22],
    generator=torch.Generator("cpu").manual_seed(42),
).images[0]
image.save("refrigerator_note.png")

The model and custom pipeline code are downloaded and cached automatically. You can also pass a complete local model directory to from_pretrained. The transformer and text encoder use bfloat16; the VAE and initial noise use float32. The bundled VAE uses the FLUX.2 small decoder.

For the Gradio interface, CPU offload, and compilation options, follow the project quick start. For ComfyUI, search for MOSS-Image in ComfyUI Manager to install the native plugin. Integration into the official ComfyUI repository is in progress. See the installation and usage guide and example workflow.

Sampling settings#

SettingDefault
SamplerFlow-matching Euler
Steps50
CFG3
Shift5
Layer skippingNegative branch, layer index 22 (zero-based)
Negative promptEmpty

The default guidance uses two transformer forwards per step. Pass uncond_skip_layers=[] to disable negative-branch skipping, or set negative_prompt to provide a negative prompt. Python API image dimensions must be positive multiples of 16.

See the user guide for resolution, sampling, prompt, and LoRA training recommendations.

Layout-to-image generation#

Pass a JSON layout as the prompt to describe the scene, rendered text, objects, and their positions. Layouts use summary.caption and items, with bbox_format: "yxyx" and bbox_coord_space: "abs_centralized".

With the Python API, serialize the layout using json.dumps(layout, ensure_ascii=False) and pass it to pipe. In Gradio, paste the JSON into the Prompt field and set the matching image dimensions. See the layout format and example.

Layouts can also support controlled editing and user-friendly layout tools. Edit text, element descriptions, and bounding boxes to adjust image content and composition in a structured way.

Image: Layout control

Showcase#

Image: Examples overview

Image: Examples overview 2

Citation#

@misc{ai2026mossimagetechnicalreport,
      title={MOSS-Image Technical Report},
      author={MOSI. AI},
      year={2026},
      eprint={2610.23374},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2610.23374},
}

License and acknowledgements#

The model weights and bundled inference code are released under the Apache License, Version 2.0.

We thank the Diffusers, Qwen, and FLUX teams.

Files

33 files · 55.0 GBWeights 54.9 GB (safetensors). Sizes and sha256 from the signed manifest.
Show all 33 files with their sha256
FileSizesha256
.gitattributes1.99 KBe4ee5336aba4b05cc00e9b18a17edf0bc653a5115d9ffa837ab76c6dcfc66fcb
LICENSE.md11.4 KBcfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30
MOSS-Image-SFT-FP8.safetensors5.41 GB1e0174ec1bc26d61aabb5de9b5fd1b2b729d077a68972ca46aff0c35c754bc23
MOSS-Image-SFT-INT8-ConvRot.safetensors5.42 GBaa2627eda1e4cf1112fb6c96ea3401f315bffe0cbe2a3bc9f66ed51dcba8d604
MOSS-Image-SFT-INT8.safetensors5.42 GBdde6d5a9a17902642b041d1dd7cfe5144196f3e47b77c3815fab3feb0b2bc6fd
MOSS-Image-SFT-text_encoder-INT8-ConvRot.safetensors11.5 GBc07b3c0ab59233fb075344f1e3b57cbbe6d4585b96b58f71765bdc410d9de24f
NOTICE.md718 B09c381f878d86e7cc4e25e31a047bfcb1cb1b2007316e00620a37193032b1e64
README.md10.2 KBb6df1b778e71a4eef86c5e8fe612d74ea03ec92a9fd29d1a7275450d40b1261f
model_index.json412 Bca80b1f562a506e0eb24afb1acb464fb583163e3c240c04e4bc69fea090db173
pipeline_moss_image.py25.1 KB1dac1aca9feb1bfdfc727a401e4b67d61a505d3190706d1b7d2d784f88678b31
samples/bf16_ramen_shop.png582 KB1d2c120d4203554cd9e9491954fa7b23d82f223092478be0f2e586e369de7b4a
samples/bf16_storefront_sign.png338 KB511f85350f2d032e1999642e767f3bb589d167ae26284bf2e1f14a11b51bd53c
samples/int8_convrot_ramen_shop.png590 KB5a67379187cd5693e4532d11ebedba166b73058d694b58a3942d11d52b994c66
samples/int8_convrot_storefront_sign.png350 KB19a235519b413a55291f6cc7245d07a4bca1968a22f5dbcd27822fba231f489d
scheduler/pipeline_moss_image.py25.1 KB1dac1aca9feb1bfdfc727a401e4b67d61a505d3190706d1b7d2d784f88678b31
scheduler/scheduler_config.json494 B707322832cc507dfb8c51c0e0cd04d44ee2d30a9b036b6f3c47d6c17aa71adf0
text_encoder/config.json2.81 KBb31ee18a242bcfcccbe740f825f6b1d3ae231b0655eeecb5de3e98d504b7d68c
text_encoder/model-00001-of-00004.safetensors4.97 GBabfaa3d3a8612508c85ee8f6da9c734b862f10298b903765c4ad384177c32b0b
text_encoder/model-00002-of-00004.safetensors4.99 GB9112637fa6bf4d07bafd6ae268852b18d3d0c1242f4ee901c5579006e5bd4894
text_encoder/model-00003-of-00004.safetensors4.95 GB956f1ef51d0cfe610b0d22987c0b7821c36e3ce228abceccef523518bcf079dc
text_encoder/model-00004-of-00004.safetensors1.87 GB9e21d20e8adde88c3e0b65d4a0d251f143d98ee9d52db36b4348361091e4e208
text_encoder/model.safetensors.index.json64.6 KB0af6fa3fa36ba8dcbb6b7ad0325a36c5b1b69862a9a1f1486b1b80385bd8f5ee
tokenizer/chat_template.jinja7.76 KBa4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715
tokenizer/tokenizer.json20.0 MB06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523
tokenizer/tokenizer_config.json1.12 KBbee8eba30f0eb4af73c0fe2cd06d0f89b657d7819941c438157ec42f7c80ea87
transformer/config.json240 B3291c3a1c7adc22b8182a0de25ca8ec97474d72715ce84adbab09cc0be24f666
transformer/diffusion_pytorch_model-00001-of-00003.safetensors4.99 GBe40d3444940a0b0fd7cd45ba7959a5bd3d5efd7ddf87aae5ce4d87ce8aa03d01
transformer/diffusion_pytorch_model-00002-of-00003.safetensors4.98 GBd106da790ec2924ffd8af04b4ffa8f8de281a974b58e55649c3ec596dc8ef033
transformer/diffusion_pytorch_model-00003-of-00003.safetensors190 MB11f637ab17c7093344a6110a1e87ffda8e56558dc55183d8e790222cfcdcf52d
transformer/diffusion_pytorch_model.safetensors.index.json40.3 KBb609327fc75dbe5080e7e095d8b727d74d728b4f98e8b047133b0082cfa2fb03
transformer/pipeline_moss_image.py25.1 KB1dac1aca9feb1bfdfc727a401e4b67d61a505d3190706d1b7d2d784f88678b31
vae/config.json838 Bcc77f3f0ce0357039c71018dc19edaa4fcceb0c2f7488fdc2b9c0580d6baafa1
vae/diffusion_pytorch_model.safetensors250 MBc3bdf94dc67ec69b30ea9fe1fa8340085679cae64d019f7c7e4a9921f1a7f17a
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
8fb0d8c3a1 pinned now2026-11-15 04:42 UTC33 files · 55.0 GB

Use it

$ fw get unsloth/MOSS-Image-SFT-FP8
# manifest sha256 5d4982d8920a… · 55.0 GB · 33 files
$ fw verify ./MOSS-Image-SFT-FP8 unsloth/MOSS-Image-SFT-FP8
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/unsloth/MOSS-Image-SFT-FP8.json --dir ./MOSS-Image-SFT-FP8 $ python3 fw.py verify ./MOSS-Image-SFT-FP8 ./unsloth__MOSS-Image-SFT-FP8.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download unsloth/MOSS-Image-SFT-FP8 --revision 8fb0d8c3a126cfd1406acaf96698dbfe9d99b680 --local-dir ./MOSS-Image-SFT-FP8
diffusersRun the pipeline with diffusers.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from diffusers import DiffusionPipeline pipe = DiffusionPipeline.from_pretrained("unsloth/MOSS-Image-SFT-FP8", revision="8fb0d8c3a126cfd1406acaf96698dbfe9d99b680")
Packaged for ComfyUI. Most image, video and music models run in ComfyUI . Check the publisher's page for the workflow. Freeweights does not host it.

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
LICENSE.md
Text sha256
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: unsloth <huggingface.co/unsloth>Newsgroups: alt.freeweights.imageSubject: MOSS-Image-SFT-FP8Date: 2026-11-15Commit: 8fb0d8cSigned: 2DC28CC7B26A283B ✓
Upstream
unsloth/MOSS-Image-SFT-FP8
Pinned commit
8fb0d8c3a126cfd1406acaf96698dbfe9d99b680
Manifest
MOSS-Image-SFT-FP8.json · .minisig
Manifest sha256
5d4982d8920a5072a750e0cb7999f9810bb7add9b2f1026ac3ef7567489aeb95
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 04:42 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/unsloth/MOSS-Image-SFT-FP8.json $ curl -O https://freeweights.allternit.com/manifests/unsloth/MOSS-Image-SFT-FP8.json.minisig $ minisign -Vm MOSS-Image-SFT-FP8.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

OpenMOSS-Team/MOSS-Image-SFT · this model is a quantization of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download unsloth/MOSS-Image-SFT-FP8
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. MOSS-Image-SFT-FP8.json. Provenance. Takedown history: none.
From: Comfy-Org <huggingface.co/Comfy-Org>Subject: Boogu-Image
From: Comfy-Org <huggingface.co/Comfy-Org>Subject: Chroma1-HD
From: lodestones <huggingface.co/lodestones>Subject: Chroma1-HD
From: Comfy-Org <huggingface.co/Comfy-Org>Subject: Chroma1-Radiance
From: Comfy-Org <huggingface.co/Comfy-Org>Subject: ERNIE-Image
From: baidu <huggingface.co/baidu>Subject: ERNIE-Image