MOSS-Image guide

MOSS-Image in ComfyUI: setup, workflows and fixes

ComfyUI has supported MOSS-Image natively since 16 Oct 2026, and ships three MOSS-Image templates. There is also the official OpenMOSS plugin. They use different files, and mixing them is the most common reason a workflow fails.

Native ComfyUI (recommended)Official OpenMOSS plugin
InstallUpdate ComfyUI. No custom nodesSearch “MOSS-Image” in ComfyUI Manager, or copy comfyui/moss-image into custom_nodes
WeightsComfy-Org single filesThe official Diffusers folder (transformer/, text_encoder/, tokenizer/, vae/)
LoadersLoad Diffusion Model, Load CLIP (type moss_image), Load VAEMOSS-Image HF Loader with model_path set to the folder
Workflowimage_moss_image_t2i.jsonmoss-image.json
Defaults25 steps, CFG 2.5, er_sde / simple50 steps, CFG 3, shift 5, Euler / sgm_uniform

Native ComfyUI, step by step

  1. Update ComfyUI. If the Load CLIP node has no moss_image type, your build is too old. On the Windows portable build, run the nightly update script rather than the plain “Update ComfyUI” one; Desktop and Cloud follow stable releases and may lag.

  2. Download three files from Comfy-Org/MOSS-Image. The template's set, which fits 12 GB cards:

    ComfyUI/models/
    ├── diffusion_models/
    │   └── moss_image_sft_int8_convrot.safetensors   5.41 GB
    ├── text_encoders/
    │   └── qwen3.5_9b_w4a8_gptq.safetensors          7.34 GB
    └── vae/
        └── flux2-vae_small.safetensors               0.25 GB

    More or less VRAM: pick other files.

  3. Load a template. In ComfyUI open Templates and search MOSS, or drag one of these into the canvas:

    Copies of the templates in Comfy-Org/workflow_templates (MIT) as of 18 Oct 2026.

  4. Write a prompt and run. The templates wrap everything in a subgraph called “Text to Image (MOSS-Image)”. Open it to change steps, CFG or skip-layer guidance.

What is inside the template

NodeSetting
Load Diffusion Model (UNETLoader)moss_image_sft_int8_convrot.safetensors, weight dtype default
Load CLIPqwen3.5_9b_w4a8_gptq.safetensors, type moss_image
Load VAEflux2-vae_small.safetensors
SkipLayerGuidanceDiTSimplelayer 22, start 0, end 0.5
EmptyFlux2LatentImage1024 × 1024
KSampler25 steps, CFG 2.5, er_sde, simple, denoise 1
TextGenerate (prompt upsampler)Optional: rewrites your idea into a long caption with the text encoder

The template trades quality for speed. For results closer to the official ones use 50 steps and CFG 3, and set the skip-layer end to 1.0 as the official plugin does. Seeds will still not give the same image as the Python pipeline; the official README says ComfyUI's scheduler does not snap to the training grid.

The official plugin and the “HF Loader”

  1. Install “MOSS-Image” from ComfyUI Manager, or run python comfyui/install.py --comfy-root /path/to/ComfyUI from a clone of the repo. Restart ComfyUI.

  2. Download the whole MOSS-Image-SFT (or Base) repo, about 27 GB, for example with hf download OpenMOSS-Team/MOSS-Image-SFT --local-dir models/MOSS-Image-SFT.

  3. Drag in moss-image.json. In MOSS-Image HF Loader, set model_path to that local folder. It does not download by repo id.

  4. Run: 50 steps, CFG 3, shift 5, negative-branch skipping at layer 22, Euler / sgm_uniform, 1024 × 1024.

Want both? The plugin also ships separate component loaders, and the Comfy-Org single files work with the native nodes. Just do not feed the plugin's workflow a Comfy-Org file, or the other way round.

Errors people hit first

No moss_image option in Load CLIP
ComfyUI is older than 16 Oct 2026. Update to nightly or master; on portable, use the nightly update script.
The workflow from GitHub asks for nodes I don't have
That is the official plugin's workflow. Either install the plugin, or use the native template instead.
Images come out washed out with odd swirls
A user on the Comfy-Org repo traced this to launching ComfyUI with --use-sage-attention. Remove the flag.
Garbage output with a shift node added
In the native workflow, shift is set with ModelSamplingAuraFlow or ModelSamplingFlux; ModelSamplingSD3 uses a different scale, the template notes say. One user fixed garbage output just by removing the shift node, since 5 is already the model default. The official plugin is different: its README says to keep ModelSamplingSD3 before SLG.
ModuleDict … has no attribute q with a 4-step LoRA
Old rapid-moss nodes and fused-QKV checkpoints. Update the adapter's nodes, or use its native workflow (see turbo).
Drag and drop of a workflow image does nothing
Use Workflow → Open and pick the file instead.
Layout boxes are ignored in the bbox template
The prompt upsampler is on and rewrites the layout. Set enable_prompt_upsampler to false inside the subgraph.
Vertical stripes on skies and walls
An SFT issue, not your setup. Fixes here.

Layout boxes in ComfyUI

The bbox template uses two native nodes. Create Bounding Boxes lets you draw boxes and give each a type (object or text), a description and the text to write. MOSS-Image Layout Prompt turns them into the JSON the model reads: it converts the node's 0–1000 coordinates into pixels around the canvas centre, labels text boxes text, and lets you mark object boxes as characters (“1, 3”). Want to see or edit that JSON outside ComfyUI? Paste it into the layout builder.