Claude-code-plugins-plus-skills ideogram-core-workflow-a
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/ideogram-pack/skills/ideogram-core-workflow-a" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-ideogram-core-workflow-a && rm -rf "$T"
manifest:
plugins/saas-packs/ideogram-pack/skills/ideogram-core-workflow-a/SKILL.mdsource content
Ideogram Core Workflow A -- Text-to-Image Generation
Overview
Primary workflow for Ideogram: generating images from text prompts. Ideogram excels at rendering legible text inside images -- a capability where most image models fail. Use this for social media graphics, marketing banners, product mockups, posters, logos, and any visual that combines illustration with typography.
Prerequisites
- Completed
setupideogram-install-auth
environment variable setIDEOGRAM_API_KEY- Understanding of style types and aspect ratios
Instructions
Step 1: Choose Parameters for Your Use Case
| Use Case | Style Type | Aspect Ratio | Model | Notes |
|---|---|---|---|---|
| Social media post | | | | Best text rendering |
| Blog hero image | | | | Photorealistic |
| Story / Reel | | | | Fast, vertical |
| Logo / Icon | | | | Clean typography |
| Product mockup | | | | Studio quality |
| Anime illustration | | | | Japanese art style |
| 3D render | | | | 3D scene |
| Wide banner | | | | Website header |
Step 2: Generate Image (Legacy Endpoint)
import { writeFileSync, mkdirSync } from "fs"; async function generateImage(prompt: string, options: { model?: string; style_type?: string; aspect_ratio?: string; negative_prompt?: string; seed?: number; } = {}) { const response = await fetch("https://api.ideogram.ai/generate", { method: "POST", headers: { "Api-Key": process.env.IDEOGRAM_API_KEY!, "Content-Type": "application/json", }, body: JSON.stringify({ image_request: { prompt, model: options.model ?? "V_2", style_type: options.style_type ?? "DESIGN", aspect_ratio: options.aspect_ratio ?? "ASPECT_1_1", magic_prompt_option: "AUTO", negative_prompt: options.negative_prompt, seed: options.seed, num_images: 1, }, }), }); if (!response.ok) { const err = await response.text(); throw new Error(`Generation failed (${response.status}): ${err}`); } const result = await response.json(); const image = result.data[0]; // Download immediately -- URLs expire after ~1 hour const imgResp = await fetch(image.url); const buffer = Buffer.from(await imgResp.arrayBuffer()); mkdirSync("./output", { recursive: true }); const filename = `ideogram-${image.seed}.png`; writeFileSync(`./output/${filename}`, buffer); return { ...image, localPath: `./output/${filename}` }; }
Step 3: Generate with V3 Endpoint (Multipart)
async function generateV3(prompt: string, options: { aspect_ratio?: string; style_type?: string; rendering_speed?: string; negative_prompt?: string; magic_prompt?: string; style_preset?: string; } = {}) { const form = new FormData(); form.append("prompt", prompt); form.append("aspect_ratio", options.aspect_ratio ?? "1x1"); form.append("style_type", options.style_type ?? "DESIGN"); form.append("rendering_speed", options.rendering_speed ?? "DEFAULT"); form.append("magic_prompt", options.magic_prompt ?? "AUTO"); if (options.negative_prompt) form.append("negative_prompt", options.negative_prompt); if (options.style_preset) form.append("style_preset", options.style_preset); const response = await fetch("https://api.ideogram.ai/v1/ideogram-v3/generate", { method: "POST", headers: { "Api-Key": process.env.IDEOGRAM_API_KEY! }, body: form, }); if (!response.ok) throw new Error(`V3 generation failed: ${response.status}`); return response.json(); }
Step 4: Text-in-Image Best Practices
// Ideogram renders quoted text literally inside the image const textPrompts = [ // Enclose desired text in quotes within the prompt 'A coffee shop chalkboard menu with text "DAILY SPECIALS" and "Latte $4.50"', 'A retro neon sign glowing with the words "OPEN 24 HOURS"', 'Professional business card design with "Jane Smith" and "CEO" text', 'Birthday card with elegant gold script "Happy Birthday!"', ]; // Use DESIGN style for best text accuracy for (const prompt of textPrompts) { const result = await generateImage(prompt, { style_type: "DESIGN", negative_prompt: "blurry text, misspelled, distorted letters", }); console.log(`Generated: ${result.localPath} (seed: ${result.seed})`); }
Step 5: Batch Generation with Seed Consistency
// Use the same seed to reproduce or create consistent variations async function generateVariations(basePrompt: string, seed: number) { const variations = [ { suffix: ", minimalist style", style: "DESIGN" }, { suffix: ", photorealistic", style: "REALISTIC" }, { suffix: ", anime style", style: "ANIME" }, ]; const results = []; for (const v of variations) { const result = await generateImage(`${basePrompt}${v.suffix}`, { style_type: v.style, seed, }); results.push(result); await new Promise(r => setTimeout(r, 3000)); // Rate limit courtesy } return results; }
V3 Style Presets (50+)
80S_ILLUSTRATION, 90S_NOSTALGIA, ART_DECO, ART_POSTER, BAUHAUS, BLUEPRINT, BRIGHT_ART, CHILDRENS_BOOK, COLLAGE, CUBISM, DOUBLE_EXPOSURE, DRAMATIC_CINEMA, EDITORIAL, FLAT_ART, FLAT_VECTOR, GOLDEN_HOUR, GRAFFITI_I, HALFTONE_PRINT, JAPANDI_FUSION, LONG_EXPOSURE, MAGAZINE_EDITORIAL, MIXED_MEDIA, MONOCHROME, OIL_PAINTING, POP_ART, RETRO_ETCHING, SURREAL_COLLAGE, TRAVEL_POSTER, VINTAGE_POSTER, WATERCOLOR, and more.
V3 Rendering Speeds
| Speed | Quality | Cost | Use Case |
|---|---|---|---|
| Lowest | Cheapest | Quick previews |
| Good | Low | Drafts, iteration |
| High | Standard | Production assets |
| Highest | Premium | Final deliverables |
Error Handling
| Error | HTTP Status | Cause | Solution |
|---|---|---|---|
| Content filtered | 422 | Prompt failed safety check | Remove brand names, trademarks, or flagged terms |
| Bad aspect ratio | 400 | Invalid enum value | Use exact enum values (e.g., not ) |
| Rate limited | 429 | 10+ in-flight requests | Queue with 3s delays between calls |
| Expired URL | -- | Downloaded too late | Fetch image within minutes of generation |
Output
- Generated image files downloaded to
./output/ - Metadata: URL, seed, resolution, style type, safety status
- Seed values logged for reproducibility
Resources
Next Steps
For editing and remixing, see
ideogram-core-workflow-b.