Most open-weight image models still fall apart the moment you ask for a full menu, an infographic or a poster with more than a headline. MOSS-Image, released on October 16 by the OpenMOSS team, was built specifically to fix that (GitHub). It renders long English and Chinese text, accepts a JSON layout with a bounding box for every element, and ships under Apache 2.0.

Interest has kept building since launch. In US Google Trends, searches for "moss image" climbed from almost nothing to a peak on October 18 and are still well above launch-day levels (Google Trends). This week brought a wave of hands-on coverage, from MindStudio's text-rendering comparison to Japanese tests by ASCII, and a r/StableDiffusion thread on getting natural-looking people out of it.

This post covers what the model is, how much to trust its numbers, and the one idea from it you can use right now on any model: describe the layout, not just the picture.

What MOSS-Image is

From the repository, the technical report and Intelligent Living's breakdown:

  • A 5B-parameter diffusion transformer trained from scratch, paired with a Qwen3.5-9B text encoder and the FLUX.2 VAE. The full pipeline is about 27 GB in bf16.
  • Two checkpoints. MOSS-Image-Base is meant for fine-tuning and LoRA training. MOSS-Image-SFT is tuned on curated data and is the one the team recommends for everyday generation.
  • Long prompts. Up to about 4,000 tokens, with text in English and Chinese in the same image.
  • A prompt enhancer. Short requests are expanded into a detailed caption or a full layout spec before generation.
  • Apache 2.0. Commercial use, fine-tuning and redistribution are allowed. That is the headline for many people, since several popular open image models come with non-commercial or revenue-capped licenses.

The limits matter too. It is text-to-image only, with no editing or reference-image input. The defaults (50 steps, CFG 3) are slow on older GPUs, and dense text still breaks down when you don't give it layout guidance (MindStudio).

The benchmark numbers, with a caveat

The report introduces two new benchmarks of its own, which is the first thing to keep in mind. As reported by Intelligent Living:

  • LongLongTextBench (240 tasks, about 1,340 characters each): MOSS-Image scores 96.3, against 64.9 for Qwen Image 2512 among open models. Closed models still lead: GPT Image 2 at 99.0 and Nano Banana Pro at 96.6.
  • Layout accuracy (7Bench): 0.88 mIoU for MOSS-Image versus 0.30 for GPT Image 2. In other words, when you give it boxes, it puts things inside them far more precisely.
  • RealLayoutArena (blind human votes on posters, infographics and UIs): second place behind GPT Image 2.

All of these were run by the team, not independently replicated. The fair summary: MOSS-Image is the strongest open model for long text right now, close to but not above the best closed models, and unusually obedient about placement.

The useful idea: write the layout down

The most interesting result in the report is small. When the same requests were given as JSON layouts instead of plain sentences, human raters preferred the results clearly, 1,622.87 Elo versus 1,506.20 (Intelligent Living). Telling a model where each piece of text goes makes the text itself better.

MOSS-Image's JSON format gives each element a label, a caption, the exact text and a bounding box. Its coordinates are measured in pixels from the center of the canvas, in [y_min, x_min, y_max, x_max] order (GitHub README). Only MOSS-Image is trained to read those numbers precisely. But the habit behind it, one element per line with its position and exact text, works on the models you already use. We tried two versions on EasyImagen's generator.

Example 1: a zoned poster in plain English (GPT Image 2)

No JSON here, just the same thinking: split the canvas into zones, give each zone a size and one job, and quote every piece of text.

A vertical 4:5 concert poster for a fictional event, laid out in four clear horizontal zones.
Zone 1, top 18% of the canvas: the title "NIGHT TRAIN JAZZ" in tall condensed cream uppercase letters, centered, edge to edge with a small margin.
Zone 2, the middle 50%: a flat screen-print illustration of a saxophonist silhouette in front of a vintage train window at night, deep navy and teal with a single warm orange accent for the window light.
Zone 3, below the illustration: one line, centered, in orange: "FRIDAY · NOVEMBER 20 · 8 PM".
Zone 4, bottom 10%: one smaller line, centered, in cream: "The Signal Box, 14 Canal Street".
Background: deep navy with subtle paper grain. Generous margins, clean alignment, nothing overlapping.
Render exactly this text and no other words.

Night Train Jazz concert poster with a saxophonist silhouette at a train window, the date Friday November 20 8 PM in orange and the venue line in cream at the bottom

Every line came out spelled correctly and in the zone we asked for. The illustration took a little more than half the height, which is about as precise as percentages get with a model that wasn't trained on boxes. "Night Train Jazz" and the venue are made up; swap in your own and keep the structure. For more event designs, the Halloween poster generator uses the same approach.

Example 2: a MOSS-style JSON layout, pasted as is (Nano Banana)

Next we gave Nano Banana a layout in MOSS-Image's own format, with a bilingual English and Chinese menu, to see whether a general model would follow it. The boxes assume a 1152 × 1440 canvas.

{
  "summary": {
    "meta": ["menu board"],
    "canvas": "single",
    "caption": "A bilingual tea shop menu board in English and Chinese, chalk-white lettering on a dark green slate background, with a small hand-drawn teapot illustration."
  },
  "items": [
    {
      "label": "text",
      "caption": "Large chalk-white title centered at the top, English above Chinese.",
      "text": "TEA HOUSE 茶馆",
      "bbox": [-576, -360, -432, 360]
    },
    {
      "label": "text",
      "caption": "Menu list, left aligned, one item per line with prices on the right.",
      "text": "Jasmine Green 茉莉绿茶 $4\nOolong 乌龙茶 $5\nPu-erh 普洱茶 $6\nMilk Tea 奶茶 $5",
      "bbox": [-336, -360, 240, 360]
    },
    {
      "label": "object",
      "caption": "A small hand-drawn chalk teapot with steam, bottom center.",
      "bbox": [336, -144, 576, 144]
    }
  ],
  "bbox_coord_space": "abs_centralized",
  "bbox_format": "yxyx"
}

A framed green chalkboard menu reading TEA HOUSE 茶馆, then four teas in English and Chinese with prices from $4 to $6, and a chalk teapot drawing at the bottom

The order, the text and the prices all came through, Chinese characters included, and the prices lined up on the right as the caption asked. What Nano Banana did not do is treat the boxes as exact: it turned the design into a photo of a framed chalkboard in a café, so the layout sits inside a scene instead of filling the canvas. That is the gap MOSS-Image closes. For general models, the captions and the item order do most of the work, and the coordinates are a hint.

Which route to take

  • You need long, dense text or exact placement and can run models locally: try MOSS-Image-SFT. The Hugging Face demo is the quickest way to test it before downloading 27 GB of weights.
  • You need a finished design quickly: use GPT Image 2 or Nano Banana with a zoned prompt like the ones above. Keep each text block short, quote it exactly, and finish with "render exactly this text and no other words".
  • Either way, proofread. Even 96% text coverage means a wrong word now and then, and one typo is enough to reprint a menu.

If you are making holiday material, the same layout habits power our Christmas card generator. For another recent model built around design work, see our post on Canva Craft's plan-first approach.