Image workflows

MOSS-Image: Layout JSON, ComfyUI Setup and a Poster Review Workflow

MOSS-Image is an open image model with structured layout prompts. Start with a small poster, verify the coordinate system, and retain editable text for the final handoff.

SJolt Editorial6 min read
Diagram connecting a poster brief, centered layout coordinates and a final image review.
Original SJolt editorial diagram. Illustrative workflow, not a product screenshot or a generated-model result.

MOSS-Image is an open text-to-image model family from OpenMOSS. The official repository announced Base and SFT checkpoints on October 16, 2026. Its useful distinction for a designer is a structured prompt that describes both content and where text or objects should appear.

As of this October 20 review, MOSS-Image is absent from SJolt’s model catalog. Use the project’s own local workflow to evaluate it. If you need a hosted SJolt image task, choose a supported model and translate the creative brief into that model’s documented inputs; a MOSS layout object is not an interchangeable API contract.

Choose a checkpoint and a deliverable

The repository describes a 5B generation backbone and a separate text encoder; the backbone size alone is not a complete memory requirement. SFT is a curated-data fine-tune of Base. The Base guide emphasizes retaining training information for adaptation. The model cards identify the weights and bundled inference code as Apache-2.0.

For a first evaluation, choose one deliverable: a square event poster with a short title and one illustration. Try SFT as a candidate for everyday output and keep Base in the comparison if customization is your goal. This is a proposed evaluation order, not a measured quality ranking. Record the checkpoint revision before comparing results.

Write the acceptance rules before generating. For this example, the title must read OPEN STUDIO, the illustration must stay below it, and the lower edge must remain clear for a separately typeset date. An attractive image with a misspelled title fails this brief. Keeping that rule fixed makes the experiment useful even when a candidate looks impressive.

Convert the layout before sending the prompt

The official layout format uses summary and items. Each item can carry a label, caption and bounding box, with text for lettering. With bbox_format set to yxyx, the four numbers are y-minimum, x-minimum, y-maximum and x-maximum. With abs_centralized, coordinates are pixels measured from the canvas center. They are not normalized fractions.

On a 1024 × 1024 canvas, a title rectangle from top-left (128, 96) to bottom-right (896, 256) becomes [-416, -384, -256, 384]. Subtract 512 from each coordinate, then place the y values first. The example below is an original prompt fixture; no image was generated from it.

json
{
  "summary": {
    "meta": [
      "poster"
    ],
    "canvas": "single",
    "caption": "A warm ivory open-studio poster with dark green lettering and a simple ceramic vase illustration."
  },
  "items": [
    {
      "label": "text",
      "caption": "A two-word headline centered in the upper band.",
      "text": "OPEN STUDIO",
      "bbox": [
        -416,
        -384,
        -256,
        384
      ]
    },
    {
      "label": "object",
      "caption": "One terracotta vase with three green stems, centered below the headline.",
      "bbox": [
        -128,
        -256,
        320,
        256
      ]
    }
  ],
  "bbox_coord_space": "abs_centralized",
  "bbox_format": "yxyx"
}

Keep the generation dimensions at 1024 × 1024 for this fixture. If you change the canvas to a portrait frame, recompute the boxes using the new width and height. Reusing centered coordinates without deciding whether the layout should scale or keep its pixel size can move the headline into the wrong area.

Treat a box as a requested composition constraint. It is not an editable text layer or a guarantee of exact geometry. Keep the headline and date in a separate copy file so that a designer can finish the deliverable without repeatedly regenerating a whole image to correct one character.

Keep the local ComfyUI workflow internally consistent

The project’s ComfyUI guide provides a plugin and an example workflow. Its MOSS-Image HF Loader expects a downloaded local directory containing transformer, text_encoder, tokenizer and vae; that loader does not download a Hub model from a repository ID. Follow the guide matching the loader you actually install.

The supplied workflow uses 50 steps, CFG 3, shift 5 and negative-branch skipping at layer 22. Its guide also explains that the native scheduler differs from the standalone pipeline, so equal seeds and settings do not guarantee identical images. Preserve the workflow file alongside the checkpoint revision.

The Base user guide recommends roughly 1M, 1.5M or 2M pixels and requires manually entered dimensions to be positive multiples of 16. It labels layout prompts experimental. Start with the documented square size before investigating larger frames or a third-party acceleration package.

A practical setup record should include the runtime version, loader name, weight locations, precision settings, dimensions, sampler and seed. If a load fails, first check that all component directories belong to the intended package. Changing the text encoder, VAE and sampler together makes the cause of a different result much harder to identify.

Review a small matrix before a production batch

Use three briefs with different failure risks: the two-word poster, a bilingual notice with explicit line breaks, and a product card with reserved copy space. Run the same briefs on each configuration you are evaluating, keeping the first result and every rejected attempt. Choose a fixed attempt limit in advance.

CheckRecordDecision
TextExact spelling, punctuation and line breaksFinish lettering in an editor when exact copy fails.
LayoutWhether each element stays in its intended regionRevise one box or description at a time.
IdentityObject count, silhouette and required detailsReject a changed product even if the background improves.
DeliveryExport dimensions and usable cropCheck at the actual placement size.

Compare accepted deliverables per total effort, including setup and manual correction. A local run can avoid a hosted per-request charge while still consuming hardware time and review time. This guide does not provide a VRAM minimum, latency claim or benchmark winner because no local inference was performed.

Save the accepted raster and an editable design document. The layout JSON is useful for another generation attempt, but it does not preserve the rendered image as independently editable layers. Keep a short rejection note for every failed candidate so a later revision starts from evidence.

Use the same brief with a supported SJolt model

SJolt’s Nano Banana 2.1 offers text-to-image and reference-guided image-edit routes. The image-edit contract accepts 1–14 image URLs with a prompt; both modes expose aspect_ratio and resolution. It does not expose MOSS-Image’s centered boxes as structured request fields.

For a fair workflow comparison, describe the same headline region, illustration and reserved space in ordinary language. If reference editing is required, use the documented image-edit input and inspect whether the important details survive. Do not describe this as calling MOSS through SJolt or assume the two systems interpret identical prompt JSON.

After a hosted request, retain data.task_id, wait for its terminal status and inspect the returned file before accepting it. For a local run, retain the equivalent workflow and output record. The shared handoff is an approved file with its brief and review notes. No paid API call or model installation was performed for this article.

Sources & further reading

Take the next idea into production.

Explore the models, test a workflow in the playground, and use the same request in your application.

Keep exploring

← All stories