MOSS-Image JSON layout prompts - format, coordinates and examples
22 أكتوبر 2026
هذا المقال متاح باللغة الإنجليزية.
Besides plain sentences, MOSS-Image accepts a JSON layout: a short description of the whole scene plus a list of elements, each with its own description and a bounding box. Use it when where things go matters as much as what they are: posters, thumbnails, product cards, slides.
OpenMOSS calls layout input experimental. It works well for a handful of large elements; it is not a design tool, and the model can still move or merge things.
The format
This is the structure from the official user guide:
{
"summary": {
"meta": ["poster"],
"canvas": "single",
"caption": "A minimalist travel poster with a cream background, a blue mountain illustration, and the title EXPLORE at the top."
},
"items": [
{
"label": "text",
"caption": "Large dark-blue uppercase title centered at the top.",
"text": "EXPLORE",
"bbox": [-416, -384, -288, 384]
},
{
"label": "object",
"caption": "A flat blue mountain illustration in the lower center.",
"bbox": [-192, -288, 384, 288]
}
],
"bbox_coord_space": "abs_centralized",
"bbox_format": "yxyx"
}
summary.captiondescribes the whole image: subject, background, style.itemslists the elements. Each has alabel(textorobject), acaptiondescribing it, and abbox. Text items also carry the exacttextto render.bbox_format: "yxyx"means each box is[y_min, x_min, y_max, x_max]. Note that y comes first.bbox_coord_space: "abs_centralized"means absolute pixels with the centre of the canvas as 0, 0. x grows to the right and y grows downward.
Converting from normal coordinates
Design tools measure from the top-left corner. For a canvas of width W and height H, subtract half of each:
x_centred = x - W / 2
y_centred = y - H / 2
On a 1024 × 1024 canvas, both axes run from -512 to +512. A box that a design tool puts at left 128, top 64, right 896, bottom 192 becomes:
[ 64 - 512, 128 - 512, 192 - 512, 896 - 512 ] = [ -448, -384, -320, 384 ]
Match the canvas you generate
The coordinates are absolute pixels, so the layout only makes sense at the size it was written for. Generate at the same width and height you used for the boxes. The simplest choice in our studio is 1:1: Standard renders at 1024 × 1024 and HD at 1536 × 1536. If you switch from Standard to HD, multiply every coordinate by 1.5.
A worked example: a product card
Goal: a square social post with a headline at the top, the product in the centre and a small price badge at the bottom right, on a 1024 × 1024 canvas.
{
"summary": {
"meta": ["advertisement"],
"canvas": "single",
"caption": "A clean square product card for a ceramic pour-over coffee dripper on a warm sand background, soft studio light, minimal modern design."
},
"items": [
{
"label": "text",
"caption": "Bold dark-brown sans-serif headline across the top.",
"text": "SLOW MORNINGS",
"bbox": [-448, -400, -336, 400]
},
{
"label": "object",
"caption": "A matte white ceramic pour-over coffee dripper on a glass carafe, centred, soft shadow.",
"bbox": [-256, -256, 320, 256]
},
{
"label": "text",
"caption": "Small rounded terracotta badge with cream text in the bottom-right corner.",
"text": "NEW",
"bbox": [352, 256, 448, 432]
}
],
"bbox_coord_space": "abs_centralized",
"bbox_format": "yxyx"
}
Paste the whole JSON into the prompt box, set the style to No style and the ratio to 1:1, and generate.
Tips
- Start with two or three items. Every extra box is another constraint the model may bend.
- Give text room. A headline box should be wide and generous; text squeezed into a tight box gets cut or shrunk.
- Keep important items away from the edges. Leave a margin of about 5% of the canvas.
- Describe each item in its caption. The box says where; the caption says what and how it looks.
- Use the summary for style. Background, palette and medium belong in
summary.caption, not repeated in every item. - Mix with plain language when it helps. OpenMOSS notes the model supports combining natural language with structured input.
Editing with layouts
Because each element is a separate entry, a layout is also an editing handle: change the text of the headline, nudge a box or remove an item, then generate again with the same seed to get a close variant. OpenMOSS describes this as controlled editing through layouts.
Source
Want simpler control first? The prompt guide covers placing text with plain sentences.
صورتك التالية على بُعد وصف واحد
ابدأ الإبداع