Scenario Ideogram Image

SkillMedia

Lets your agent generate and edit images like posters, logos, and signs with accurate text using Ideogram.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Scenario Ideogram Image skill

About this skill

Use when generating or editing images with Ideogram models on Scenario via MCP: posters, logos, menus, packaging, or signage with exact in-image text, native transparent PNG generation with an alpha channel, background removal that keeps hair and glass edges, splitting a flat graphic into editable t

What this skill tells your AI

The instructions your AI receives, as published by scenario-labs/skills in skills/scenario-ideogram/SKILL.md and read by ahel’s review.

Overview

Ideogram's image family on Scenario is five single-purpose members, not one model with modes: V4 for generation where in-image text must read, V3 Generate Transparent for native alpha output, V3 Layerize Text for turning a flat graphic into editable text layers, Character for one identity held across scenes, and Remove Background for cutouts. Mechanically they agree on almost nothing: the same concept changes name, casing, and allowed values between members, so discover each with search and treat its model_schema_get as the contract.

Connection and the core loop: see the scenario skill in this repo; model-agnostic image work (sizing families, reference cardinality, masks): the scenario-image skill. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.

Quick reference

Pick the member by the job (names from the live schemas, caps at authoring time):

MemberJobInputs that matter
V4Text-heavy generationprompt, imageSize (six presets), renderingSpeed (TURBO, BALANCED, QUALITY), enablePromptExpansion, acceleration, numOutputs (up to 4), seed
V3 Generate TransparentNative alpha outputprompt, negativePrompt, aspectRatio (15 ratios), renderingSpeed (adds FLASH), expandPrompt, numOutputs (up to 8), seed
V3 Layerize TextFlat graphic to layersimage, optional prompt, fontName* or fontFile* per tier (H1, H2, Body, Small), seed
CharacterSame character, new scenesprompt, characterReferenceImage, styleType (Auto, Fiction, Realistic), aspectRatio or resolution, image plus mask, renderingSpeed (Default, Turbo, Quality), seed
Remove BackgroundCutout to transparent PNGimage (10MB cap)

Nothing transfers between members. Sizing is imageSize presets on V4 (square_hd is the largest), aspectRatio ratios on V3 Transparent and Character, and on Character alone an exact resolution that overrides the ratio. renderingSpeed values are uppercase on the two generators and Title case on Character, whose middle tier is Default, not BALANCED. Only V3 Transparent takes a negativePrompt. V4's acceleration buys speed on top of the tier at some quality cost; its default none is right for finals. Per-asset cost differs several-fold across members and moves with every cost_impact: true field, so dry_run the same job on the candidates before a batch.

Exact text wants expansion off

Both generators rewrite the prompt before generating by default, which helps a short exploratory prompt and hurts the family's specialty: the rewrite can paraphrase the exact copy that must render. When the image carries wording, disable expansion (enablePromptExpansion: false on V4, expandPrompt: false on V3 Transparent), quote each piece of copy, and give it a place and a style ('the headline reads "GRAND OPENING" in bold condensed capitals across the top'). V4 renders multilingual text the same way: quote it.

Two routes to transparency

Native: V3 Generate Transparent writes the alpha channel directly, so icons, stickers, and UI elements arrive compositing-ready. Cutout: generate on V4, then run Remove Background on the result; it reconstructs edge pixels with partial transparency rather than segmenting, so hair, fur, and glass survive. Go native when the asset is designed as an isolated element; go cutout when typography or overall quality leads, since at authoring time V4 scored well above the V3 line on public text-to-image arena ratings. Prompting "transparent background" on V4 does nothing: its outputs are opaque.

Worked example: a localizable poster

  1. search with target="models", query="ideogram", public=true. Members return as separate hits; match by name, e.g. model_ideogram-v4 for typography (a live hit at authoring time: re-discover each session).
  2. model_schema_get with that id: field names, allowed values, and defaults before anything else.
  3. model_run with that model_id, dry_run=true, and parameters={"prompt": "Retro travel poster, warm dusk palette. The headline reads \"KYOTO IN BLOOM\" in bold serif across the top; caption \"April 2027\" bottom right.", "imageSize": "portrait_16_9", "renderingSpeed": "QUALITY", "enablePromptExpansion": false, "numOutputs": 2} for the cost estimate.
  4. Repeat model_run with wait=false, then jobs_wait with the returned job id, re-called with pending_job_ids on timeout, never a second model_run.
  5. asset_display the outputs and pick one.
  6. To make the copy editable, discover the Layerize member the same way (model_ideogram-v3-layerize-text at authoring time), read its schema, and model_run with parameters={"image": "<poster asset id>"}: a generated asset's id feeds a file input directly, no re-upload. The output is a text-erased base plus text blocks with role, position, and content.
  7. jobs_wait, then asset_display and asset_download.

Common mistakes

  • Carrying one member's block to the next: imageSize and enablePromptExpansion are V4's; V3 Transparent wants aspectRatio and expandPrompt.
  • Leaving expansion on with exact copy in the prompt: the rewrite can change the words before the model sees them.
  • Prompting a transparent background on V4: generate on V3 Transparent or chain Remove Background instead.
  • Inpainting on Character with image but no mask: they go together (black repaints, white stays, mask resized to the image), characterReferenceImage stays required, and sizing fields are ignored while inpainting.
  • Setting fontNameH1 and fontFileH1 together on Layerize: a tier's font comes from a font name or a font file, never both. upload_asset has no font kind, so with only a local font file use the font name route and flag the gap.

Signals

GitHub stars
681
Forks
82
Last commit
Sep 2026
Advanced
Item type
skill
Key
scenario-ideogram
Source
github.com/scenario-labs/skills