Introduction

Yesterday we flagged that an official ComfyUI integration for MOSS-Image was "in progress." It didn't stay that way for long. On October 16, Comfy-Org merged native MOSS-Image support into ComfyUI core, published repackaged single-file weights on Hugging Face, and shipped a dedicated MOSS-Image Layout Prompt node that turns drawn bounding boxes into placed text and objects. By the morning of October 17, a follow-up change was merged to make INT8 runs about 30% faster.

Quick refresher: MOSS-Image is OpenMOSS's open-weights text-to-image model, Apache-2.0, built for long prompts, bilingual text rendering and JSON-style layouts. Our launch write-up covers the model itself. This piece is about running it the native way.

What Landed in ComfyUI

The core pull request describes MOSS-Image as a 5B single-stream DiT that lives in the FLUX.2 latent space and uses a stock Qwen3.5-9B text encoder, so the DiT is the only genuinely new part. That's why the integration came together so quickly. The highlights:

  • Loads the original Hugging Face checkpoint keys as-is, with optional fused q/k/v detected straight from the file.
  • LoRA support from day one. LoRA keys trained on separate q/k/v projections map onto slices of the fused weight, so community LoRAs should just work.
  • Speed plumbing included: comfy-kitchen kernels, block prefetch, the memory compiler, and single-block replace patches.
  • A new node, MOSS-Image Layout Prompt, which takes your whole-image description plus boxes from the existing Create Bounding Boxes node. Box captions describe objects, text boxes render their text, and a character_boxes field lets you mark specific boxes as characters rather than objects.

The PR also includes an example bounding-box text-to-image workflow you can drag into the canvas.

The Weights: Pick Your Size

The Comfy-Org/MOSS-Image repo repackages both official checkpoints, Base and SFT, into ComfyUI's folder layout:

  • Diffusion model, Base or SFT: about 10.2 GB in BF16, or about 5.4 GB in INT8 ConvRot.
  • Text encoder, Qwen3.5-9B: about 9.8 GB in INT8 ConvRot, or about 7.3 GB in W4A8 GPTQ.
  • VAE: the standard FLUX.2 VAE at about 0.34 GB. If you already run FLUX.2 or FLUX 3 Klein, you likely have it.

Base is the general-purpose generator. SFT is the one to reach for when you want tighter grouping of rendered text. The license stays Apache-2.0.

The 30% INT8 Speedup

On October 17, ComfyUI merged a change that uses a fused SiTU input activation for MOSS-Image, along with a bump to comfy-kitchen 0.2.38, released right after comfy-kitchen merged SiTU input activation for its INT8 ConvRot quantizer. The PR's own note says this gives roughly 30% faster MOSS-Image inference with INT8 models. Update both ComfyUI and its Python requirements to pick it up.

How to Run It Today

Native support is on ComfyUI's master branch right now (nightly). It isn't in the v0.41.0 tag from October 15, so expect it in the next tagged release. If you run from source:

cd ComfyUI
git pull
pip install -U -r requirements.txt
hf download Comfy-Org/MOSS-Image diffusion_models/moss_image_sft_int8_convrot.safetensors text_encoders/qwen3.5_9b_int8_convrot.safetensors vae/flux2-vae.safetensors --local-dir models

Then load the diffusion model, text encoder and VAE with the standard loaders, wire Create Bounding Boxes into MOSS-Image Layout Prompt, and set width and height to match your canvas, since the boxes are placed in its pixels.

Here's a starter whole-image prompt to pair with a few boxes, such as one text box for the headline and one object box for the hero:

A vintage travel poster for a seaside night market, warm lantern light over a curved harbor, deep indigo sky with soft lilac clouds, bold art deco headline across the top, a red paper lantern glowing in the lower right, clean flat shading, high contrast print style

Original Source

https://github.com/Comfy-Org/ComfyUI/pull/17095

Model files: Comfy-Org/MOSS-Image on Hugging Face. Speedup: ComfyUI PR #17099.

Conclusion

MOSS-Image went from "use the plugin" to first-class ComfyUI citizen in about a day: native loading, LoRA mapping, INT8 files that fit mid-range cards, and a layout node that makes bounding-box posters feel like dragging frames on a mood board. If you've been waiting for a clean local route to controllable text-in-image, grab the INT8 SFT build and start boxing.

—Aurelia ♡