- moss-image.com
- Download & install
Download MOSS-Image and run it locally
Where to get the official weights, which files you need for each setup, and the exact commands to generate your first image with Diffusers or the Gradio app.
MOSS-Image’s weights are free to download under Apache-2.0. Choose the route that matches how you work: ComfyUI for a visual workflow, Diffusers for Python, or the Gradio app for a quick local UI. Not ready to install anything? Generate online first.
Official downloads
| Checkpoint | Hugging Face | ModelScope | Use it for |
|---|---|---|---|
| MOSS-Image-SFT | OpenMOSS-Team/MOSS-Image-SFT | openmoss/MOSS-Image-SFT | Everyday generation |
| MOSS-Image-Base | OpenMOSS-Team/MOSS-Image-Base | openmoss/MOSS-Image-Base | LoRA training, tag prompts |
| ComfyUI single files | Comfy-Org/MOSS-Image | — | ComfyUI (int8 and bf16) |
The Hugging Face repositories are Diffusers directories: keep the full folder structure (transformer, text encoder, tokenizer, VAE, scheduler and the custom pipeline file). Users in mainland China can download faster from ModelScope.
Requirements
- GPU: an NVIDIA GPU with CUDA. OpenMOSS does not publish a minimum VRAM figure; the pipeline holds a 5B generator and a 9B text encoder, so plan memory accordingly or use the lower-memory options below.
- Software: Python 3.10+ and a PyTorch build that matches your CUDA version.
- Disk: the Diffusers repositories are tens of gigabytes; the ComfyUI int8 set is much smaller.
Install the official pipeline
git clone https://github.com/OpenMOSS/MOSS-Image.git
cd MOSS-Image
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Install a PyTorch build for your CUDA version before or after requirements.txt if pip picks the wrong one.
Generate with Diffusers
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")
image = pipe(
'A minimalist café poster on cream paper. The large title reads "SLOW COFFEE".',
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("poster.png")
- Width and height must be positive multiples of 16; 1–2 MP gives the best results.
uncond_skip_layers=[22]is the official skip-layer guidance setting.- The VAE runs in float32 for quality; everything else in bfloat16.
To use a layout, pass the JSON as a string: pipe(json.dumps(layout, ensure_ascii=False), height=1024, width=1024, ...). Keep the JSON coordinates consistent with the output size. See the layout guide.
Run the Gradio app
pip install -e '.[ui]'
python gradio_app.py --model OpenMOSS-Team/MOSS-Image-SFT
Paste a prompt or layout JSON into the Prompt field. Resolution and aspect-ratio controls calculate sizes aligned to 16 pixels for you.
Memory modes
The Gradio app’s Advanced settings expose three memory modes:
| Mode | Behavior | When to use |
|---|---|---|
| GPU resident | Keeps the whole model on the GPU | Fastest; large GPUs |
| Component | Moves components between CPU and GPU as needed | Mid-size GPUs |
| Sequential · fallback | Lowest memory, slowest | When you run out of memory |
If memory is still short, reduce the image size. Compile DiT is off by default and unavailable in Sequential mode. For the lightest local setup, use ComfyUI with the int8 diffusion model and the 4-bit Qwen3.5-9B encoder.
Faster and lighter community options
- FP16-fixed weights for GPUs where bf16 is slow or unsupported.
- 8-step DMD LoRA to cut sampling from 50 steps to 8.
- SGLang and vLLM-Omni had day-0 support for serving MOSS-Image in production.
Troubleshooting
trust_remote_codeerror — the custom pipeline file must be present; download the full repository.- Dimension error — width and height must be multiples of 16.
- CUDA out of memory — try Component or Sequential mode, 1 MP output, or ComfyUI int8.
- Washed-out or undercooked images — use 50 steps, CFG 3, shift 5 and skip layer 22.
Commands and settings checked against the official README and user guide on 26 October 2026.
Questions
Where can I download MOSS-Image?
Official weights are on Hugging Face (OpenMOSS-Team/MOSS-Image-Base and OpenMOSS-Team/MOSS-Image-SFT) and ModelScope (openmoss/MOSS-Image-Base and openmoss/MOSS-Image-SFT). ComfyUI-format single files are in Comfy-Org/MOSS-Image.
How much VRAM does MOSS-Image need?
OpenMOSS does not publish a minimum. The full-precision pipeline loads a 5B generator plus a 9B text encoder, so it needs a large GPU when kept fully resident. Lower-memory options are the Gradio Component and Sequential memory modes, smaller output sizes, and ComfyUI’s int8 model with a 4-bit text encoder.
Does MOSS-Image run on a Mac or AMD GPU?
The official instructions target NVIDIA GPUs with CUDA and a recent PyTorch. Other back ends are not documented by OpenMOSS; ComfyUI users on other hardware should check ComfyUI’s own support for their device.
Which checkpoint should I download?
Download SFT for generation and Base if you plan to train LoRAs or prefer tag-style prompts. Both use the same pipeline and settings.