MOSS-Image Recommended Settings: Steps, CFG, Shift and Skip Layers
The sampler, step count, CFG, shift, skip-layer and negative prompt settings the MOSS-Image team recommends, and what each one changes.
The MOSS-Image team recommends a flow-matching Euler sampler with the sgm_uniform scheduler, at least 50 steps, CFG 3, shift 5 and an unconditional skip layer at 22. These values are published in the GitHub README, the USERGUIDE and the Hugging Face model card.
This post lists every recommended value in one table, then explains what each knob changes and when to move it. If you are new to the model, read What is MOSS-Image? first. For node-by-node setup, see the ComfyUI guide.
What are the official MOSS-Image settings?
The official defaults are: Euler sampler, sgm_uniform scheduler, 50 or more steps, CFG 3.0 within a 3.0-6.0 range, shift 5, uncond_skip_layers=[22], and the negative prompt nsfw, worst quality, bad anatomy, watermark, jpeg artifact. Use the MOSS-Image-SFT checkpoint and output sizes between 1 and 2 megapixels.
| Setting | Recommended value | Source |
|---|---|---|
| Checkpoint | MOSS-Image-SFT for everyday generation | GitHub |
| Sampler | Flow-matching Euler | GitHub / ComfyUI Wiki |
| Scheduler | sgm_uniform | ComfyUI Wiki |
| Steps | 50 or more | GitHub |
| CFG | 3 (range 3.0-6.0; go higher for short prompts) | GitHub |
| Shift | 5 | GitHub |
| Skip layer | uncond_skip_layers=[22]; 22, 24 or 26 all work | Hugging Face |
| Negative prompt | nsfw, worst quality, bad anatomy, watermark, jpeg artifact | USERGUIDE |
| Resolution | 1M, 1.5M or 2M pixels; sides must be multiples of 16 | USERGUIDE |
| Prompt language | English recommended; Chinese and others supported | USERGUIDE |
| Text limit | 4096 tokens | GitHub |
Why does MOSS-Image need 50 steps?
MOSS-Image ships without any inference-parameter distillation. The README sets the floor at 50 steps, and the paper's limitations section notes that the Base model in particular depends on 50 or more steps plus careful CFG. Fewer steps are only safe with a community few-step LoRA.
The sampler is a flow-matching Euler solver. In ComfyUI, that means the standard euler sampler with the sgm_uniform scheduler, as documented on ComfyUI Wiki. The team has not published inference-speed numbers, so the time cost of 50 steps depends entirely on your hardware.
What does CFG do in MOSS-Image and why is 3 the default?
CFG (classifier-free guidance) controls how strongly the model follows your prompt relative to its unconditioned output. The team recommends 3 and gives a working range of 3.0 to 6.0. Their guidance is to raise CFG for short prompts, which otherwise give the model too little to anchor on.
For long prompts and JSON layouts, stay at 3. Those prompts already carry a lot of conditioning signal. A related detail: MOSS-Image-Base has no CFG distillation at all, which is one reason the GitHub README steers everyday users toward the SFT checkpoint.
What does shift 5 change?
Shift adjusts the timestep schedule of the flow-matching sampler, moving more of the sampling budget toward the noisier end of the process. The official value is 5, listed in the README. Keep it at 5 unless you are deliberately experimenting; the team publishes no alternative values.
In ComfyUI, shift is set on the model-sampling node rather than the sampler itself. The ComfyUI guide shows where it goes in the default workflow.
What is the unconditional skip layer setting?
The uncond_skip_layers setting skips one transformer layer when computing the unconditional (negative) branch of guidance. The Hugging Face model card recommends [22], and says 22, 24 or 26 all work. The DiT has 42 layers, so these sit in the second half of the network.
This technique is commonly called SLG (skip-layer guidance). The USERGUIDE describes the trade-off plainly: turning SLG off makes images more realistic, but fine details may break. If you prioritize text accuracy and clean layout, leave it on. If you are rendering a scene with little text and want a more photographic look, try switching it off and compare.
What negative prompt does MOSS-Image use?
The USERGUIDE's negative prompt is nsfw, worst quality, bad anatomy, watermark, jpeg artifact. It is a short, generic list, and the team does not publish variations for specific styles. Use it as-is for most work and add terms only when you see a recurring artifact.
Because MOSS-Image uses classifier-free guidance with a real negative branch, the negative prompt has an effect at CFG 3 and above. It is also the branch that uncond_skip_layers modifies, so the two settings interact.
What resolutions does MOSS-Image support?
MOSS-Image works best at 1, 1.5 or 2 megapixels, supports any aspect ratio, and can extrapolate from 0.25 megapixels (512²) up to 4 megapixels (2K). Both width and height must be multiples of 16. These rules come from the USERGUIDE.
The 16-pixel rule follows from the architecture: the VAE downsamples by 8× and the DiT uses 2×2 latent patches, giving a 16 px effective stride. A 1024×1024 image becomes 4096 tokens. Larger canvases cost proportionally more tokens and time. For posters and infographics, 1 to 2 megapixels in a portrait ratio is a reasonable starting point.
What prompt formats does MOSS-Image accept?
MOSS-Image accepts natural-language prompts, booru-style tag sequences, JSON layout objects, and mixtures of the three. Line breaks inside rendered text are controlled with \n or a literal newline. The prompt limit is 4096 tokens, and English is recommended because the training captions are mostly English.
For booru tags, the USERGUIDE specifies an order: quality, rating, meta, year, character, series, artist, then general tags.
For layout control, the prompt is a JSON object with a summary, an items array, bbox_coord_space: "abs_centralized" and bbox_format: "yxyx". Each item has a label (text, character or object), a caption, optional text content and a bbox of [y_min, x_min, y_max, x_max] in pixels from the canvas center. The paper's human-preference test found JSON layout prompts scored 1622.87 Elo against 1509.21 for detailed natural-language prompts, so the format is worth learning. The field reference is in our layout JSON spec, and worked examples are in the prompt guide.
Should you use MOSS-Image-Base or MOSS-Image-SFT?
Use SFT for generation. Base is the pre-trained model with no post-training and no inference distillation, published so the community can train LoRAs and full fine-tunes from a clean starting point. Both checkpoints share the same architecture, so the settings in this post apply to either.
The GitHub README describes SFT output as having cleaner text grouping and more organized whiteboard-style layouts. If you fine-tune on Base, expect to rely on the full 50-step, CFG 3 recipe during evaluation.
How do you run MOSS-Image with Diffusers?
The Diffusers path loads the SFT checkpoint through a custom pipeline with trust_remote_code=True. Requirements from GitHub: Python 3.10 or newer, PyTorch 2.9 or newer, NVIDIA CUDA, diffusers 0.38 or newer and transformers 5.3 or newer. The bf16 DiT weights are 10.2 GB.
from diffusers import DiffusionPipeline
pipe = DiffusionPipeline.from_pretrained(
"OpenMOSS-Team/MOSS-Image-SFT",
custom_pipeline="pipeline_moss_image",
trust_remote_code=True,
)
This is the loading call from the model card. The generation call itself takes the settings above: 50 steps, guidance scale 3, shift 5 and uncond_skip_layers=[22]. The official Gradio app offers three memory modes, GPU-resident, component offload and sequential offload, for machines that cannot hold the DiT, the 9B text encoder and the VAE at once. An int8 DiT (5.4 GB) and int8 or w4a8 Qwen3.5-9B (9.8 GB or 7.3 GB) are also published.
Are there faster few-step settings?
Officially, no. The team has released no distilled checkpoint and no inference-speed figures. The community has: within three days of launch, a 4-step "rapid-moss" LoRA and an 8-step DMD LoRA appeared on Hugging Face, alongside the Kromoss full fine-tune and the KohakuMoss LoRA trainer.
These adapters change the step count and often the CFG, so the official table in this post does not apply when one is loaded. Follow the adapter author's instructions. As of October 20, 2026, Hugging Face listed 16 adapters on the SFT checkpoint and 15 on Base. None of them is endorsed by OpenMOSS, so check output quality on your own prompts before relying on one. If you do not want to manage any of this, you can generate posters and text-heavy images in the MossImage generator.
FAQ
Can I use fewer than 50 steps with MOSS-Image?
Not with the official checkpoints; the README sets 50 as the minimum. Community 4-step and 8-step LoRAs exist for faster runs, but they are unofficial.
What happens if my image size is not a multiple of 16?
The model's 16 px stride means the dimensions will not map cleanly to latent patches. Round each side to the nearest multiple of 16 before generating, as the USERGUIDE requires.
Should I raise CFG for long text prompts?
No. The official guidance is to raise CFG above 3 only for short prompts. Long text and JSON layouts already carry enough conditioning, so stay at 3 and let the 50 steps do the work.
Does turning off SLG make MOSS-Image better?
It makes images look more realistic but can break fine details, according to the USERGUIDE. For text and layout work, keep uncond_skip_layers=[22] on.
Which scheduler should I pick in ComfyUI?
Use euler with sgm_uniform, as listed on ComfyUI Wiki. Set shift to 5 on the model-sampling node and keep CFG at 3.