The same brief written four ways: one sentence, a line of tags, blocks you keep constant, and JSON. Three of the four drifted over ten runs each, which is why I default to the fourth.

Reading this in another folder? Move it to your inbox so you never miss an issue.

Luxe Prompting ISSUE 140   AUGUST 2026

PROMPT CRAFT

Four ways to shape a prompt.

Plain sentences, comma tags, blocks you keep constant, and JSON. Ideogram 4.0 reads JSON natively, and its own guide tells you when to stop using it.

four shapes    which one holds    prompt of the day

THE SHORT VERSION

Four shapes cover almost everything people call prompt engineering, and only one of them survived being run ten times.

  A plain sentence carries intent and drifts the most. Comma tags list well and cannot say where anything sits. Blocks you keep constant stop a series wandering. JSON holds its structure across runs.

  Ideogram 4.0, open weights since June 3, reads JSON natively. The documented caption carries three fields, and only the compositional one is required.

  Midjourney has no documented JSON input. What circulates as JSON prompting there is a conversion habit: write the object, flatten it to comma tags, then paste.

  Honest caveat: a model tokenizes either shape. JSON buys repeatability and placement, not quality, and Ideogram's own guide sends you back to plain text for photoreal work.

Four shapes, one brief, one afternoon. I wrote the same request as a plain sentence, as a line of comma tags, as a set of blocks I keep constant, and as a JSON object, then ran each ten times in the same tool. Three of the four drifted.

Drift is the whole subject. A brief that reads beautifully and generates differently on every run is not a brief, it is a mood, and you find that out at the worst moment, when a client asks for the same image again with one thing changed.

Below: what each shape is good at, where each one gives way, the shape I default to now and the honest reason for it, and the caveat that stops it becoming a rule.

One brief written four ways on four cards: a sentence, a line of tags, repeated blocks, and a structured object

ONE  ·  PLAIN ENGLISH

Sentences carry intent.

A plain sentence is the only shape that can say why. Warm afternoon light through a west window, the kind that makes people squint. No other shape holds that, and every model I have tried reads it. It is also the shape that moves most between runs, because each adjective invites interpretation.

Keep plain English for the parts you want interpreted. Mood, weather, the feeling of a room. Anything you would defend in a revision call belongs in one of the shapes below, where it stops being a suggestion.

TWO  ·  COMMA TAGS

Tags are a checklist.

Comma tags are the oldest shape and still the most portable. Subject, setting, lens, light, mood, each separated and weighted roughly by where it sits in the line. Midjourney's prompt formula is this shape, and it is what a JSON prompt for Midjourney gets flattened into first, since it has no documented JSON input.

Tags list well and relate badly. A tag line cannot say that the sign hangs above the door rather than beside it. When placement matters, tags guess quietly and leave you to find it in the render.

THREE  ·  BLOCKS YOU KEEP

Consistency is a paste habit.

The third shape is not a format, it is a habit. Write the parts that must not change across a series once, then put them unchanged into every prompt in it. A style block. A camera block. A short list of what you never want to see. Creators call these locks, and the name is fair, since their only job is to stop drift between images that ship together.

A block works because it is pasted, not retyped. Retyping is where a series comes apart. Keep the blocks in one file, paste them whole, and change one thing at a time so you can tell what moved.

FOUR  ·  JSON

The shape I default to.

I write client briefs as JSON now, and the honest reason is not that models prefer it. They tokenize either shape. It is that the format makes me name every element separately, and that running the same object ten times holds the structure in a way a sentence never has.

Ideogram 4.0 reads it natively. The documented caption carries three fields: high_level_description, one or two sentences; style_description, optional, holding lighting, medium and colour direction; and compositional_deconstruction, the required one, holding the background and every element separately. Any element can take a bounding box on a normalised 0 to 1000 grid, written y_min, x_min, y_max, x_max. Boxes are optional, so you place only what needs placing.

{"high_level_description": "a quiet studio kitchen, late afternoon",
 "style_description": "documentary photography, low sun",
 "compositional_deconstruction": [{"description": "a steel kettle", "bounding_box": [420, 120, 760, 380]}]}

WHAT IT CHANGES

One decision, made earlier.

Which shape for which job. Exploring an idea, a plain sentence. A one-off with nothing riding on placement, comma tags. A series that has to match itself, blocks you keep. Anything a client will see twice, anything with text in the frame, anything with a layout, JSON in Ideogram and flattened to tags if it must also run in Midjourney.

What I stopped arguing about. Ideogram's own guide sends you back to plain text for photoreal scenes where placement is not critical, which is a vendor telling you to skip its own feature. Take the advice. The format is there for control, not quality, and the moment it turns into a belief it costs you afternoons.

PROMPT OF THE DAY

The converter.

Paste a plain-English brief under this and let a text model convert it. The field names are the ones Ideogram documents, so the result runs without editing.

Convert the brief below into one JSON object with exactly three fields. high_level_description: one or two sentences summarising the image. style_description: lighting, medium and colour direction. compositional_deconstruction: an array holding the background and every separate element, each with its own description. Add a bounding_box only where I stated a position, written as y_min, x_min, y_max, x_max on a 0 to 1000 grid with 0,0 at the top left. Do not invent elements, do not add adjectives I did not write, and list every gap you had to fill in a notes field outside the object.

The last clause is the one that matters. Without it the model fills your gaps silently, and you inherit its taste as though it were your own brief.

START HERE

Convert one brief.

Take the brief you are running today and write it twice, once as a plain sentence and once as an object, then run each three times in the same tool. The sentence will move more than you expect. Do it once and you will know which half of your brief you were leaving to chance.

THE NEXT WORKING NOTE

The dialect sheet from last time is still in progress. This issue's companion is the format sheet: one brief in all four shapes side by side, the JSON field names filled in, and a note on which shape held under repetition.

Want it when it ships? Reply with send me the format sheet and I will get it to you.

A QUESTION FOR YOU

Which shape do you actually write in?

Reply with the one you reach for when a job is due tomorrow, not the one you mean to use. I will put the split in the format sheet.

If this was useful, forward it to a creator whose series stopped matching itself.

Until next time,

Luxe Prompting

Luxe Prompting

AI SYSTEMS AND PROMPT CRAFT FOR CREATORS

Was this one useful?

Login or Subscribe to participate

Keep Reading