THE MOSS-IMAGE FIELD NOTES
MOSS Image workflow: JSON layout and text placement
An original 1024 × 1024 MOSS-Image layout prompt, a coordinate walkthrough and a checklist for moving from a plain scene to deliberate poster composition.
Updated October 20, 2026 · Independent guide · Official sources linked belowThis workflow begins with a short visual brief, separates its headline from its main object, and turns those decisions into a model-facing JSON prompt. The example below is an original prompt template. It has been checked for JSON structure and bounds, but has not been validated by running MOSS-Image. The diagram shows the requested geometry, not a generated result.
1. Start with a working plain-text workflow
Complete one simple generation before adding structured input. Follow the MOSS Image ComfyUI guide if you still need to set up model files or choose native versus plugin loaders. A layout prompt cannot repair a mismatched loader or VAE. Keep a copy of your working graph and change the prompt independently.
For this example, the brief is a square product poster with a short headline above an orange vase. There is one focal object, one visible line of text and a quiet background. That makes it possible to judge both spelling and arrangement without introducing several unrelated problems at once.
2. Understand the layout coordinates
The official layout documentation describes a global summary and an items list. Model-facing boxes use abs_centralized coordinates ordered as yxyx: top, left, bottom, right, measured from the canvas center. On our 1024-square canvas, the center is zero and each edge is 512 pixels away.
Use the same output dimensions when running the prompt. A box describes an intended region, not an instruction to resize an object after generation. If you change the canvas to a portrait or landscape format, redesign the boxes rather than assuming the old coordinates still express the same hierarchy.
3. Copy the model-facing JSON prompt
Keep the JSON intact when copying it into a compatible positive prompt field. The caption describes how an element should look; the text field gives the exact visible wording. Use the same 1024 × 1024 dimensions in your generation settings.
{
"summary": {
"meta": [
"product poster"
],
"canvas": "single",
"caption": "A restrained product poster on a warm ivory background, featuring a small matte orange ceramic vase and a short dark headline. Soft light from the upper left, generous empty space."
},
"items": [
{
"label": "text",
"caption": "Large dark uppercase sans-serif headline on a single line at the top.",
"text": "A LITTLE COLOR",
"bbox": [
-416,
-416,
-256,
416
]
},
{
"label": "object",
"caption": "One matte orange ceramic vase with a short neck, centered on a pale stone surface. A soft shadow falls to the right.",
"bbox": [
-128,
-240,
400,
240
]
}
],
"bbox_coord_space": "abs_centralized",
"bbox_format": "yxyx"
}Do not mix this centered yxyx example with a top-left xyxy draft. The official prompt-enhancer tool also works with a human-friendly draft format, then compiles it to model-facing coordinates. That is a separate input stage. If you use such a tool, follow its schema and compile once rather than converting already-compiled coordinates a second time.
4. Check the geometry before running
- Confirm the output canvas is 1024 × 1024.
- Read each box as top, left, bottom, right, with top below bottom numerically and left below right.
- Check that each coordinate stays within the canvas edges.
- Ensure the headline has enough room for the exact string and intended line count.
- Check whether overlap is deliberate. In this example, text and object regions are separated.
For example, the headline’s left coordinate is −416, which becomes 96 pixels from the left edge after adding half the canvas width. Its right coordinate is 416, or 928 pixels from that edge. Apply the same reasoning vertically. This is a simple way to catch an accidental coordinate-order swap before spending time on a generation.
5. Review text and composition separately
After a run, first check that the headline is present and spelled correctly. Then evaluate whether its region is visually distinct from the vase. Only after those conditions work should you refine ceramic texture, shadows or stylistic detail. Change one caption or one box at a time and keep the previous prompt for comparison.
Bounding boxes express intended placement; they do not promise pixel-perfect typography. If the final asset needs an exact font, dense information or legal copy, generate an appropriate visual base and finish typesetting in an editor. If a generation is attractive but misses the brief, retain it as an experiment rather than presenting it as a successful layout test.
The full model-facing format is documented by OpenMOSS. For simpler briefs, use our natural-language prompt examples. This website’s studio does not yet submit either text or layout prompts to a live hosted generation service.