Model Details
Ideogram V4 turns a text prompt into a high-quality image, with a standout strength most image models still struggle with: rendering accurate, legible text inside the image. Ask for a logo, a movie poster, a product label, a greeting card, or a street sign with real words on it, and Ideogram V4 keeps the spelling, layout, and typography coherent. It also handles general photorealistic and illustrative generation across a wide range of styles and aspect ratios.
## Features - Accurate in-image text rendering — logos, posters, signage, packaging, and typographic art with legible words - Broad style range — photoreal, illustration, 3D, painterly, and graphic-design looks - Flexible framing — named size presets (square, portrait, landscape) or a custom width/height - Batch generation — request up to four images per prompt to compare options
## What it's good at - Designs that depend on correct text: brand logos, ad creative, posters, book covers, menus - Clean typographic compositions where letters must stay sharp and correctly spelled - Versatile concept art and marketing visuals from a single descriptive prompt
## Tips - Put the exact words you want rendered in quotes in your prompt (e.g. a poster that reads "GRAND OPENING") - Keep on-image text short and specific; long paragraphs are harder to render perfectly - Pick a size preset that matches the medium — portrait for posters, landscape for banners
## Advanced Configuration
### rendering_speed Controls the speed/quality/cost tradeoff of generation. `TURBO` is the fastest and cheapest, `BALANCED` (the default) is the middle ground, and `QUALITY` produces the best results but is the slowest and most expensive. This setting affects both how long generation takes **and** how much each image costs, so choose `TURBO` for quick drafts and `QUALITY` for final hero images.
```js input: { prompt: "...", rendering_speed: "QUALITY" } ```
### expansion_model This is the "Magic Prompt" feature, which automatically enriches your prompt with extra descriptive detail before generation. Options are `None`, `Medium`, and `Large` — `Large` applies the most enrichment and tends to give the highest-quality, most detailed result, while `None` uses your prompt exactly as written for full control. Use a larger value when your prompt is short or sparse, and `None` when you want precise, literal adherence.
```js input: { prompt: "...", expansion_model: "Large" } ```
To run via the ModelRunner JavaScript client: ```js import { modelrunner } from "@modelrunner/client";
const result = await modelrunner.subscribe("ideogram/ideogram-v4", { input: { prompt: "a vintage travel poster that reads \"VISIT MARS\"", image_size: "portrait_4_3", rendering_speed: "QUALITY", expansion_model: "Large", }, }); ```





