Skip to main content

Documentation Index

Fetch the complete documentation index at: https://runcrate.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Ideogram 3 is the leading model for generating images with accurate, readable text. Logos, event posters, social media graphics — anywhere words need to render correctly inside an image.

Why Ideogram 3

Most image models distort or misspell text. Ideogram 3.0 is purpose-built for text accuracy.

Basic usage

from runcrate import Runcrate

client = Runcrate(api_key="rc_live_YOUR_API_KEY")

image = client.models.generate_image(
    model="ideogram/ideogram-3.0",
    prompt='A modern coffee shop logo with the text "MORNING RITUAL" in clean sans-serif font, '
           'minimalist design, coffee cup icon, warm earth tones, white background',
    aspect_ratio="1:1",
)

image.data[0].save("coffee-logo.png")

Social media graphics

from runcrate import Runcrate

client = Runcrate(api_key="rc_live_YOUR_API_KEY")

graphics = [
    {"file": "launch.png", "prompt": 'Instagram post with bold text "NOW LIVE" and "v2.0". Dark gradient, subtle confetti.', "ratio": "1:1"},
    {"file": "sale.png", "prompt": 'Banner with large text "50% OFF" and "This Weekend Only". White background, red accents.', "ratio": "16:9"},
    {"file": "quote.png", "prompt": 'Quote card with text "Ship it." in bold serif font, centered. Cream background.', "ratio": "4:3"},
]

for g in graphics:
    image = client.models.generate_image(
        model="ideogram/ideogram-3.0", prompt=g["prompt"], aspect_ratio=g["ratio"],
    )
    image.data[0].save(g["file"])
    print(f"Saved {g['file']}")

Event posters

from runcrate import Runcrate

client = Runcrate(api_key="rc_live_YOUR_API_KEY")

image = client.models.generate_image(
    model="ideogram/ideogram-3.0",
    prompt='Concert poster with text "JAZZ UNDER THE STARS" in elegant serif. '
           'Below: "FRIDAY JULY 18 • 8PM". Art deco style, navy and gold, saxophone silhouette.',
    aspect_ratio="9:16",
)

image.data[0].save("jazz-poster.png")

Vercel AI SDK integration

// app/api/generate-graphic/route.ts
import { runcrate } from '@runcrate/ai';
import { generateImage } from 'ai';

export async function POST(req: Request) {
  const { prompt, aspectRatio } = await req.json();

  const sizeMap: Record<string, string> = {
    '1:1': '1024x1024', '16:9': '1792x1024', '9:16': '1024x1792',
  };

  const { image } = await generateImage({
    model: runcrate.imageModel('ideogram/ideogram-3.0'),
    prompt,
    size: sizeMap[aspectRatio] || '1024x1024',
  });

  return Response.json({ image: image.base64 });
}

Prompting tips for text accuracy

TipExample
Quote the exact text'text reads "HELLO"' not text saying hello
Specify font style"clean sans-serif", "bold serif", "handwritten"
Keep text short2–5 words renders most reliably
Describe placement"centered at the top", "bottom-right corner"

Tips

  • Always quote exact text in your prompt — this is the most important factor.
  • Shorter text renders better. 1–4 words is reliable, 5–8 usually works.
  • Seed for iteration: lock the composition with seed, then adjust the prompt.
  • Not a layout tool — for precise positioning, generate and composite in code.

Next steps