P-Image-Ideogram

P-Image-Ideogram is a Pruna AI text-to-image model built in collaboration with Ideogram for fast, high-quality visual generation across product, people, and brand-oriented creative work. It offers four generation modes, from Very Low to High, so teams can choose the right balance of speed, cost, and image quality for each workflow while retaining strong prompt following and unusually capable text rendering. The model supports both natural-language prompting and more structured JSON-style prompting for tighter control over layout, color palettes, bounding boxes, and typography-heavy compositions.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesText-heavy design assets
How to design posters, packaging, ads, and menus with P-Image-Ideogram, and the workflow that gets on-image copy to render clean and exact.
Text is where most image models fall down and where P-Image-Ideogram earns its place. Built with Ideogram, it renders exact on-image copy in a finished layout, which makes it a fit for the design work that usually needs a designer: posters, packaging, ads, menus, and social graphics.

Structured JSON prompt: a deep-teal jazz gig poster with a cream BLUE ROOM SESSIONS title, a gold Live every Thursday subhead, a double-bass illustration, and a DOORS 8PM / 45 CANAL ST footer.
That poster is one request. This guide covers the deliverables the model is strongest at, and the workflow that gets the copy right every time.
Build it as a structured prompt
Design work is where the structured JSON prompt pays off. Give each line of copy its own text element, set the palette in hex, and place the blocks so the layout is fixed and only the words change. Everything in this guide is a structured prompt, and it is the mode to reach for over natural language whenever the frame carries more than a headline.
Getting text to land
On-image text is seed-sensitive. The same prompt renders clean on one seed and drops a character on the next, so the reliable move is not to perfect one prompt but to generate a few candidates and keep the clean one. The three exhibition posters below are the same prompt at three seeds:

Structured JSON prompt: a FORM & VOID sculpture exhibition poster, off-white with black and red type, a minimal sculpture illustration, and a dates and venue footer.

Structured JSON prompt: a FORM & VOID sculpture exhibition poster, off-white with black and red type, a minimal sculpture illustration, and a dates and venue footer.

Structured JSON prompt: a FORM & VOID sculpture exhibition poster, off-white with black and red type, a minimal sculpture illustration, and a dates and venue footer.
The layout, palette, and illustration hold across all three, and the fine text is what varies. Seed 1001 spells everything right, seed 2002 garbles the venue into "RIVVRSSIDE MUSEUM", and seed 3003 drops a line of stray characters above the footer. Pick the render whose copy is clean, then reuse its seed to lock it while you finish the surrounding work. A fixed seed with enhancePrompt off reproduces the image exactly, so the keeper stays the keeper.
Five habits keep the hit rate high:
- Quote every string exactly, inside a
textelement. Anything you describe instead of quote is reinterpreted. - Keep each line short. A headline and a few words render far more reliably than a paragraph, so break long copy into separate elements.
- One element per line of type. Bundling three lines into one
textfield invites the model to merge or drop them. - Turn off
enhancePrompt. The rewrite is not seeded, so it breaks the reproduce-a-good-seed workflow. - Tell it "no other text". Left with empty space, the model fills it with invented, often garbled copy, so name the strings you want and end the prompt with an instruction to add nothing else.
Higher output resolution does not fix text. Small print can render as cleanly at 1K as at 2K, and sometimes cleaner, so iterate at 1K and only move up for the extra detail on a render whose copy is already right.
Use cases
Each format below is one structured prompt, built the same way, so the approach carries from a packshot to a menu with only the copy and the layout changing.
Packaging and labels
Product labels are dense with small, exact copy: a name, a variant, a volume, a percentage. Give each its own element and the model holds them in place.

Structured JSON prompt: a matte navy craft beer label with a cream HARBOUR HOPS name, a copper WEST COAST IPA line, a hop-cone illustration, and a 6.2% ABV / 440 ml line.
Name, style, and the stats line all sit where their elements put them. Scope brand colours with a per-element color_palette so a copper accent holds on one line without tinting the rest of the label.
Editorial and advertising
For an ad, the model composes a photographic scene and lays type into it in one pass. Describe the shot in the background, then place the headline over the negative space you left for it.

Structured JSON prompt: an editorial fashion ad of a model in a camel coat against concrete with clean upper negative space, headlined QUIET LUXURY over The autumn edit.
The move here is to write the negative space into the shot, then position the headline into it with a bbox. Asking for the copy and the empty space together is what stops the type landing on the model's face.
Text in other languages
The model renders non-Latin scripts on the same terms as Latin: write the actual characters into the text field, never a description of them.

Structured JSON prompt: a minimal Japanese tea shop poster with 新茶入荷 in black, 季節限定 in green, a tea-branch ink illustration, and a 東京 中目黒店 address line.
Paste the characters you want, because a paraphrase in English produces invented glyphs. As with Latin copy, keep each string short and generate a few candidates for anything dense.
Tips
-
Generate a few, keep the clean one. Text is seed-sensitive, so treat the first render as a draft and pick the candidate whose copy is exact.
-
Lock the seed once it is right. With
enhancePromptoff, a fixed seed reproduces the keeper exactly while you finish the rest. -
Quote every word, one line per element. Literal
textelements render as written. Described text is reinterpreted, and bundled lines get merged. -
Keep copy short. Headlines and labels are reliable, paragraphs are not, so split long text into separate short elements.
-
Set colour in hex. An image-level palette anchors the piece, and a per-element palette pins a brand colour to one line.
-
Iterate at 1K. Resolution does not fix text, so work small and only render larger once the copy is already clean.

Social and promo graphics
Sale and announcement graphics are headline-led and ship in square formats. They are the fastest deliverable: a bold line, a supporting line, a simple illustration.
Structured JSON prompt: a pale-sage square sale graphic with a green SPRING SALE headline, a terracotta 30% OFF ALL PLANTS line, a monstera illustration, and a THIS WEEKEND ONLY footer.
Square canvases suit a centred stack of type over a single object. Keep the promo copy to two short lines, which is where the model is most dependable, and let the illustration carry the rest of the frame.