Ideogram Cost Tuning
Overview
Minimize Ideogram API spending by selecting the right model per task, caching identical prompts, batching images per call, and tracking credit burn rate. Ideogram bills per image generated at a flat rate that varies by model and rendering speed.
Pricing Reference
| Model / Speed | Approx. Cost per Image | Best For |
|---|
| V_2_TURBO | ~$0.05 | Drafts, iteration, testing |
| V_2 | ~$0.08 | Final production assets |
| V3 FLASH | ~$0.03-0.04 | Quick previews |
| V3 TURBO | ~$0.05 | Good quality at speed |
| V3 DEFAULT | ~$0.06-0.08 | Standard production |
| V3 QUALITY | ~$0.09+ | Premium deliverables |
| + Character ref | +$0.02-0.04 | Consistent character faces |
Prices approximate; check ideogram.ai/features/api-pricing for current rates.
Instructions
Step 1: Two-Phase Generation Workflow
async function costEfficientGeneration(prompt: string, iterations = 5) {
const drafts = [];
for (let i = 0; i < iterations; i++) {
const result = await generateImage(prompt, { model: "V_2_TURBO" });
drafts.push(result);
}
const bestSeed = await selectBestDraft(drafts);
const final = await generateImage(prompt, { model: "V_2", seed: bestSeed });
return final;
}
Step 2: Batch Images Per Call
async function generateVariations(prompt: string) {
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: "V_2_TURBO",
num_images: 4,
magic_prompt_option: "AUTO",
},
}),
});
const result = await response.json();
return result.data;
}
Step 3: Cache Identical Prompts
import { createHash } from "crypto";
const cache = new Map<string, { url: string; seed: number; cachedAt: number }>();
const CACHE_TTL_MS = 7 * 24 * 60 * 60 * 1000;
function promptKey(prompt: string, style: string, model: string): string {
return createHash("md5").update(`${prompt}:${style}:${model}`).digest("hex");
}
async function cachedGeneration(prompt: string, style = "AUTO", model = "V_2") {
const key = promptKey(prompt, style, model);
const cached = cache.get(key);
if (cached && Date.() - cached. < ) {
.();
cached;
}
result = (prompt, { : style, model });
localPath = (result.[].);
cache.(key, {
: localPath,
: result.[].,
: .(),
});
cache.(key);
}
Step 4: Budget Tracking
interface CostTracker {
totalImages: number;
totalCostUSD: number;
byModel: Record<string, { count: number; cost: number }>;
dailyBudgetUSD: number;
}
const tracker: CostTracker = {
totalImages: 0,
totalCostUSD: 0,
byModel: {},
dailyBudgetUSD: 10,
};
const MODEL_COSTS: Record<string, number> = {
V_2_TURBO: 0.05,
V_2: 0.08,
V_2A: 0.04,
V_2A_TURBO: 0.025,
};
function trackGeneration(model: string, numImages: number) {
const costPerImage = MODEL_COSTS[model] ?? 0.08;
const cost = costPerImage * numImages;
tracker.totalImages += numImages;
tracker.totalCostUSD += cost;
if (!tracker.[model]) tracker.[model] = { : , : };
tracker.[model]. += numImages;
tracker.[model]. += cost;
(tracker. > tracker. * ) {
.();
}
(tracker. > tracker.) {
();
}
}
() {
.();
.();
.();
( [model, data] .(tracker.)) {
.();
}
}
Step 5: Billing Auto Top-Up Configuration
Ideogram Dashboard > Settings > API Beta > Billing:
Recommended settings:
Top-up Balance: $20.00 (default)
Minimum Threshold: $10.00 (default)
Conservative (small projects):
Top-up Balance: $10.00
Minimum Threshold: $5.00
Enterprise:
Contact partnership@ideogram.ai for volume pricing
1M+ images/month for custom rates
Cost Optimization Checklist
Error Handling
| Issue | Cause | Solution |
|---|
| 402 credits exhausted | Balance depleted | Top up in dashboard, check auto top-up |
| Regenerating same images | No cache | Cache by prompt hash |
| High daily cost | Using V_2 for everything | Draft with TURBO, finalize with V_2 |
| Unexpected charges | High-res for thumbnails | Match model to use case |
Output
- Two-phase generation workflow (draft then finalize)
- Prompt-based cache preventing duplicate charges
- Budget tracker with daily spending alerts
- Cost report by model version
Resources
Next Steps
For architecture patterns, see ideogram-reference-architecture.