Dev.to AI πŸ€– Ai πŸ‘ 0 πŸ“– 5 min read

MOSS-Image in ComfyUI: which files go where (and the two settings to change)

MOSS-Image is OpenMOSS's 5B open-weights text-to-image model, released on October 16, 2026 under Apache-2.0. Two things make it unusual: it renders Chinese and English text inside the image, and it follows JSON layouts f

MOSS-Image is OpenMOSS's 5B open-weights text-to-image model, released on October 16, 2026 under Apache-2.0. Two things make it unusual: it renders Chinese and English text inside the image, and it follows JSON layouts for where things go. ComfyUI merged native support the same day (pull request #17095), so there is no custom node pack to install and nothing to pip.
That means the only real work between you and a first image is getting four files into four folders, and changing two settings that the templates get wrong on purpose.
I keep the long version β€” all six official templates, the edit and color & depth LoRAs, the text encoder, LoRA training β€” in the MOSS Image ComfyUI workflow guide. This post is the short path.
Check your ComfyUI version first
The four text-to-image templates need ComfyUI 0.42.0 or later. The Image Edit and Color & Depth templates were added on October 26 and need 0.43.0 or later.
The v0.41.3 release did not include native support, so an older install does not fail loudly β€” it reports missing nodes or a template that is not in the library at all.
The fastest check: open a Load CLIP node and look at the type dropdown. If moss_image is not there, your install predates support and you should update before downloading anything.
The four files
All ComfyUI-format weights live in the Comfy-Org/MOSS-Image repository on Hugging Face. The text-to-image templates load exactly these:
| File | Goese into | Size | What it is |
| --- | --- | --- | --- |
| moss_image_sft_int8_convrot.safetensors | models/diffusion_models/ | 5.41GB | SFT checkpoint β€” use this one to make images |
| moss_image_base_int8_convrot.safetensors | models/diffusion_models/ | 5.41GB | Base checkpoint β€” for training, not for output |
| qwen3.5_9b_w4a8_gptq.safetensors | models/text_encoders/ | 7.34GB | Qwen3.5 9B text encoder |
| flux2-vae_small.safetensors | models/vae/ | 0.25GB | FLUX.2 small VAE |
ComfyUI/
└── models/
β”œβ”€β”€ diffusion_models/
β”‚ β”œβ”€β”€ moss_image_sft_int8_convrot.safetensors
β”‚ └── moss_image_base_int8_convrot.safetensors
β”œβ”€β”€ text_encoders/
β”‚ └── qwen3.5_9b_w4a8_gptq.safetensors
└── vae/
└── flux2-vae_small.safetensors
Budget the disk before you start: about 13GB for the SFT text-to-image templates, or 18.4GB if you also want the Base checkpoint. The Image Edit template adds 0.30 GB. The Color & Depth template adds about 12.6 GB, because it pulls in the MoGe 3 depth estimator as well.
Note that the text encoder is the biggest file you load, not the checkpoint. 7.34 GB against 5.41 GB. If you are sizing against VRAM, that ordering matters.
If you have the VRAM, bf16 builds of both checkpoints are in the same repository at 10.16 GB each. Pick one by swapping the file in the UNET Loader; nothing else in the graph changes.
Restart or refresh ComfyUI after dropping the files in, otherwise the loaders will not see them.
Your first image

  1. Open Template, search for MOSS-Image, and pick MOSS-Image: Text to Image.
  2. Type your idea into the positive prompt and hit Queue.
  3. Open the Preview Any node. It shows the caption the model actually received. Step 3 is the one people skip. The text-to-image template runs your prompt through a prompt upsampler that rewrites a short request into a full scene caption before sampling β€” it runs on the Qwen3.5 encoder the graph already loads, so there is nothing extra to download. A one-line idea works, but you are not seeing the wording that produced the image unless you look at Preview Any. This prompt is a full caption already, so the sampler sees it close to how it was written: > A wide conference banner with the title "AI εΌ€ε‘θ€…ε€§δΌš 2026" and the subtitle "AI Developer Summit". A clean blue and violet gradient background, abstract circuit lines, and a bottom row reading "10月28ζ—₯ Β· 深圳 Β· Oct 28 Β· Shenzhen". When you want full control of the wording, set enable_prompt_enhancer to false on the subgraph node. Your prompt then goes to the model unchanged. The two settings to change The templates are tuned for speed, which is the right default for a first render and the wrong default for a final one. These are OpenMOSS's own recommendations, and what the official examples use: | Setting | Template default | Official recommendation | | --- | --- | --- | | Steps | 25 | 50 or more | | CFG | 2.5 | 3 β€” for short prompts, 3 to 6 | | Sampler | er_sde | Euler (flow matching) | | Canvas | 1 MP | 1, 1.5 or 2 MP, sides in multiples of 16 | So: if a result looks undercooked, go to 50 steps at CFG 3 before you touch anything else. Width and height must be multiples of 16; the model is trained for 1 to 2 megapixels and extrapolates from roughly 0.25 MP (512Γ—512) up to 4 MP. Two things you do not need to change: shift is 5 and built into the native model, and skip layer guidance is already on at layer 22, the layer OpenMOSS recommends. Turning SLG off makes images look very realistic but can collapse fine detail. The templates also pre-fill a negative prompt β€” nsfw, worst quality, bad anatomy, watermark, jpeg artifact. That list is OpenMOSS's, and it is fine to leave it alone. One expectation to drop The same seed will not reproduce a Diffusers image exactly. ComfyUI's native scheduler does not use the training-grid snapping that the official Python pipeline does, so identical seed and settings give a different but equivalent image. This is expected, not a bug, and it is worth knowing before you spend an evening bisecting a seed. Where to go next Layout control. The two layout templates add a box-drawing node where each box gets its own caption, and text boxes render their text. This is the most reliable way to put a title or a product shot exactly where you want it. Base vs SFT. SFT for making images, Base for training. Loading Base and wondering why output is worse is a common detour. LoRA training. KohakuMossTrainer, DiffSynth-Studio and ai-toolkit all support it. Keep the text encoder frozen, and cache the encoded captions once instead of every step. If you would rather see what the model does before installing 13 GB, the browser generator runs MOSS-Image-SFT at the official 50 steps and CFG 3. Full guide: MOSS-Image ComfyUI workflow β€” models, templates and settings.
πŸ“° Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.