{"jtbd":{"id":"image-generation","slug":"image-generation","name":"Programmatic image generation","shortName":"Programmatic image generation","problemStatement":"Generate images from agents/apps via API."},"pick":{"id":"fal","slug":"fal","name":"Fal","tagline":"Depot default for programmatic image/video/audio gen. One API to rule the media zoo.","website":"https://fal.ai","overall":8.5,"scoreBand":{"low":7.9,"mid":8.5,"high":9.1,"halfWidth":0.6,"basis":"editorial_prior","display":"7.9–9.1 (editorial prior)"},"scoreLayers":{"editorialPrior":8.5,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","pricingNotes":"Serverless generative media API (1000+ models); per-second/per-output; extremely agent-friendly.","scores":{"capabilityFit":9.2,"pricePerformance":8.5,"latencyReliability":8.6,"developerDx":9.6,"privacyPosture":7.2,"lockInRisk":4,"maturity":8,"overall":8.5,"kind":"curated_estimate","confidence":"high","asOf":"2026-10-19"}},"runnersUp":[{"id":"openai-media","slug":"openai-media","name":"OpenAI Media (Images/Audio)","tagline":"Convenient if you're already on OpenAI. For best image variety/cost, keep Fal in the toolkit.","website":"https://platform.openai.com/docs/guides/images","overall":8.15,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.15,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"Image generation, TTS, Whisper/transcription via OpenAI API; billed per image/minute/token as applicable.","scores":{"capabilityFit":8.8,"pricePerformance":7.2,"latencyReliability":8.8,"developerDx":9.2,"privacyPosture":7.8,"lockInRisk":7,"maturity":9.6,"overall":8.15,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"black-forest-labs","slug":"black-forest-labs","name":"Black Forest Labs","tagline":"First-party FLUX when you want BFL terms/quality without a reseller markup. Fal remains Depot media-gen…","website":"https://bfl.ai","overall":8.14,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.14,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-19","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (docs.bfl.ai/quick_start/pricing): 1 credit = $0.01; API = Playground. FLUX.2 Klein 4B from $0.014/image, Klein 9B from $0.015, Pro from $0.03/MP (edit $0.045), Flex $0.05, Max $0.07. FLUX 3 video (t2v/i2v) $0.17/s hd / $0.29/s fhd, draft $0.06/s. FLUX.1 Kontext Pro $0.04/image. Fine-tuned Klein endpoints billed as base during public beta.","scores":{"capabilityFit":9,"pricePerformance":7.8,"latencyReliability":8.2,"developerDx":8.4,"privacyPosture":8,"lockInRisk":4,"maturity":7.8,"overall":8.14,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"stability","slug":"stability","name":"Stability AI","tagline":"Use API for convenience or self-host SD/Flux on RunPod/Fal for control. Great escape hatch from closed image…","website":"https://stability.ai","overall":8.12,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.12,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14: Stable Diffusion / Stability platform APIs with credit-based billing; open weights freely self-hostable. Platform.stability.ai for hosted; escape hatch is self-host on RunPod/Fal/Modal.","scores":{"capabilityFit":8.6,"pricePerformance":8.5,"latencyReliability":7.5,"developerDx":7.8,"privacyPosture":8,"lockInRisk":2.5,"maturity":8.2,"overall":8.12,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"replicate","slug":"replicate","name":"Replicate","tagline":"Ship a model demo by lunch. Migrate hot paths to Modal/RunPod/Fireworks when the bill hurts.","website":"https://replicate.com","overall":7.82,"scoreBand":{"low":7.2,"mid":7.8,"high":8.4,"halfWidth":0.6,"basis":"editorial_prior","display":"7.2–8.4 (editorial prior)"},"scoreLayers":{"editorialPrior":7.82,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"Run Cog models per-second; prediction-based billing; higher effective GPU cost, lowest friction.","scores":{"capabilityFit":8.4,"pricePerformance":6,"latencyReliability":8.2,"developerDx":9.4,"privacyPosture":7,"lockInRisk":4,"maturity":8.8,"overall":7.82,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"midjourney","slug":"midjourney","name":"Midjourney","tagline":"Best looks, worst agent API story. For programmatic image agents prefer Fal/OpenAI/Stability unless you have…","website":"https://www.midjourney.com","overall":7.29,"scoreBand":{"low":6.7,"mid":7.3,"high":7.9,"halfWidth":0.6,"basis":"editorial_prior","display":"6.7–7.9 (editorial prior)"},"scoreLayers":{"editorialPrior":7.29,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14: Primarily Discord/web subscription product; official public developer API historically limited/partner-gated. Treat programmatic access as constrained vs OpenAI/Fal/Stability. Subscription tiers for human creative use.","scores":{"capabilityFit":9.4,"pricePerformance":7,"latencyReliability":8.5,"developerDx":4.5,"privacyPosture":6.5,"lockInRisk":7.5,"maturity":9,"overall":7.29,"kind":"curated_estimate","confidence":"medium","asOf":"2026-09-14"}},{"id":"ideogram","slug":"ideogram","name":"Ideogram","tagline":"Use when agents must render readable text in images. Fal remains default multi-model media router.","website":"https://ideogram.ai","overall":7.88,"scoreBand":{"low":7.3,"mid":7.9,"high":8.5,"halfWidth":0.6,"basis":"editorial_prior","display":"7.3–8.5 (editorial prior)"},"scoreLayers":{"editorialPrior":7.88,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14: Consumer Plus ~$20/mo (site). API pay-as-you-go per image (ideogram.ai/api-pricing): 4.0 Turbo ~$0.03, Default ~$0.06, Quality ~$0.10; volume via sales. Strong text-in-image reputation.","scores":{"capabilityFit":8.4,"pricePerformance":8,"latencyReliability":8,"developerDx":8.2,"privacyPosture":7,"lockInRisk":3.8,"maturity":7.8,"overall":7.88,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"recraft","slug":"recraft","name":"Recraft","tagline":"Best when agents need SVG/brand-consistent assets. Fal for general media zoo; BFL for FLUX-first.","website":"https://www.recraft.ai","overall":8.07,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.07,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (recraft.ai docs API pricing): Prepaid API units $1 = 1,000 units (never expire). V4.1 raster $0.035 (35u) / Pro $0.21 (210u); V4.1 vector $0.08 / Pro Vector $0.30; V3 ops ~$0.04 raster / $0.08 vector; bg removal $0.01; crisp upscale $0.004; creative upscale $0.25.","scores":{"capabilityFit":8.6,"pricePerformance":8.2,"latencyReliability":8.2,"developerDx":8.6,"privacyPosture":7.4,"lockInRisk":4,"maturity":7.6,"overall":8.07,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}}],"scoreBand":{"low":7.9,"mid":8.5,"high":9.1,"halfWidth":0.6,"basis":"editorial_prior","display":"7.9–9.1 (editorial prior)"},"scoreLayers":{"editorialPrior":8.5,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"whyPickOverHigherScore":{"pickId":"fal","pickName":"Fal","pickScore":8.5,"highestScoredCandidateId":"fal","highestScoredCandidateName":"Fal","highestScore":8.5,"pickHasLowerCompositeScore":false,"delta":0,"pickLeadsOnDimensions":[],"explanation":"Fal (8.5) holds both the highest composite score among ranked candidates and the editorial pick for Programmatic image generation: dx + capability catalog + pricePerf. Midjourney penalized on API dx."},"cheapest":{"providerId":"minimax","providerName":"MiniMax","skuId":"minimax-image-01-usd-per-image","item":"image-01","plan":"image-01 — Image price per image","unit":"usd_per_image","amountUsd":0.0035,"isFloorPrice":false,"floorWarning":null,"skuCountInUnit":1,"isDepotPick":false,"sourceUrl":"https://platform.minimax.io/docs/guides/pricing-paygo","asOf":"2026-10-03","verifiedAsOf":"2026-10-27"},"recommendedWorkloadQuote":{"providerId":"fal","providerName":"Fal","skuId":"fal-image-seedream-v4-5","item":"Bytedance Seedream V4.5","plan":"Bytedance Seedream V4.5 — Model API billed per image (billing unit \"images\")","unit":"usd_per_image","amountUsd":0.04,"outputSkuId":null,"outputItem":null,"outputAmountUsd":null,"outputUnit":null,"sourceUrl":"https://fal.ai/pricing","asOf":"2026-10-19","pricingLastVerifiedAt":"2026-10-19","isFlagshipForJob":false,"differsFromFloorCheapest":false,"representativeQuote":{"skuId":"fal-image-seedream-v4-5","item":"Bytedance Seedream V4.5","plan":"Bytedance Seedream V4.5 — Model API billed per image (billing unit \"images\")","amountUsd":0.04,"inputOrUnitUsd":0.04,"unit":"usd_per_image","outputUsd":null,"outputUnit":null,"sourceUrl":"https://fal.ai/pricing","asOf":"2026-10-19"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":0.04,"totalUsd":0.046,"estimatedTotalUsd":0.046,"perTaskUsd":0.000046,"estimatedCostPerTaskUsd":0.000046,"formula":"$0.04 (usd_per_image) * 1.15 overhead","assumptions":"1,000 tasks in job native unit with 1.15x retry overhead."}},"representativeQuote":{"skuId":"fal-image-seedream-v4-5","item":"Bytedance Seedream V4.5","plan":"Bytedance Seedream V4.5 — Model API billed per image (billing unit \"images\")","amountUsd":0.04,"inputOrUnitUsd":0.04,"unit":"usd_per_image","outputUsd":null,"outputUnit":null,"sourceUrl":"https://fal.ai/pricing","asOf":"2026-10-19"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":0.04,"totalUsd":0.046,"estimatedTotalUsd":0.046,"perTaskUsd":0.000046,"estimatedCostPerTaskUsd":0.000046,"formula":"$0.04 (usd_per_image) * 1.15 overhead","assumptions":"1,000 tasks in job native unit with 1.15x retry overhead."},"freeAlternatives":[{"id":"cloudflare-workers-ai-image","name":"Cloudflare Workers AI image models","kind":"free_image","providerId":"cloudflare-workers-ai","jtbdIds":["image-generation","text-in-image-generation"],"whatYouGet":"Image models on the pricing page, including FLUX.1 schnell, draw from the same 10,000 neurons/day. No separate free image count is stated.","cost":"free","limits":{"sharedNeuronsPerDay":10000,"separateImageCap":null},"sourceUrl":"https://developers.cloudflare.com/workers-ai/platform/pricing/","notes":"Fetched twice 2026-10-25 about 10 s apart without logging in (HTTP 200, no redirect, identical HTML; the page shows 'Last updated Oct 20, 2026'). 'Our free allocation allows anyone to use a total of 10,000 Neurons per day at no charge.' The 'Image model pricing' table lists FLUX.1 schnell ('@cf/black-forest-labs/flux-1-schnell $0.0000528 per 512x512 tile $0.0001056 per step'), lucid-origin, phoenix-1.0, flux-2-dev, flux-2-klein-4b and flux-2-klein-9b. Tile, step and megapixel prices are paid units billed in neurons, not a free image allowance; the page states no separate free image count.","license":null,"asOf":"2026-10-25","freeType":"free_image","substitutable":true},{"id":"comfyui","name":"ComfyUI","kind":"free_image","jtbdIds":["image-generation"],"whatYouGet":"Open-source node UI for running image models locally.","cost":"oss","license":"GPL-3.0","sourceUrl":"https://raw.githubusercontent.com/comfyanonymous/ComfyUI/master/LICENSE","notes":"LICENSE fetched 2026-10-03 is GNU GPL version 3. Model weights you load keep their own licenses. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical: 'GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_image","substitutable":true},{"id":"flux-1-schnell","name":"FLUX.1-schnell","kind":"open_weights","jtbdIds":["image-generation","text-in-image-generation"],"whatYouGet":"Black Forest Labs FLUX.1-schnell weights. The model card license field says apache-2.0.","cost":"oss","license":"Apache-2.0","sourceUrl":"https://huggingface.co/api/models/black-forest-labs/FLUX.1-schnell","notes":"cardData.license fetched 2026-10-03 is apache-2.0. gated is auto. LICENSE.md returned 401, so the license text was not copied. Not FLUX.1-dev. Model API re-fetched twice 2026-10-25 (HTTP 200, byte-identical): cardData.license 'apache-2.0', gated 'auto'; LICENSE.md still 401.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"open_weights","substitutable":true},{"id":"sdxl-base-1-0","name":"Stable Diffusion XL base 1.0","kind":"open_weights","jtbdIds":["image-generation"],"whatYouGet":"Downloadable SDXL base 1.0 weights under the CreativeML Open RAIL++-M license, not Apache.","cost":"free","license":"CreativeML Open RAIL++-M","sourceUrl":"https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/raw/main/LICENSE.md","notes":"LICENSE.md fetched 2026-10-03 is CreativeML Open RAIL++-M dated July 26, 2023. Not labeled Apache. LICENSE.md re-fetched twice 2026-10-25 (HTTP 200, byte-identical): 'CreativeML Open RAIL++-M License dated July 26, 2023'.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"open_weights","substitutable":true},{"id":"stable-diffusion-cpp","name":"stable-diffusion.cpp","kind":"free_image","jtbdIds":["image-generation"],"whatYouGet":"Open-source local runtime for Stable Diffusion family models.","cost":"oss","license":"MIT","sourceUrl":"https://raw.githubusercontent.com/leejet/stable-diffusion.cpp/master/LICENSE","notes":"LICENSE fetched 2026-10-03 is MIT. Weights are not included in this license. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical: 'MIT License' / 'Copyright (c) 2023 leejet'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_image","substitutable":true}],"referenceDocs":[],"falsification":{"jtbdId":"image-generation","jtbdName":"Programmatic image generation","currentPickId":"fal","currentPickScore":8.5,"challengerId":"openai-media","challengerScore":8.15,"currentScoreGap":0.35,"minVerifiedOutcomes":10,"requiredOutcomeMargin":0.5,"requiredSuccessRateDelta":0.15,"maxPickPriceIncreasePct":25,"whatWouldChangePick":["OpenAI Media (Images/Audio) (openai-media) outperforms Fal (fal) by >= 0.5 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Fal's representative SKU for image-generation without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=fal) or sustained >= 30% degraded/failed rate in verified production outcomes."],"frozenHoldoutPolicy":{"holdoutSplit":"20% frozen benchmark holdout tasks + 80% live production outcome receipts","requireCountersignReceipt":true,"requiredEvidenceTiers":["outcome_verified","reference_checked"],"minDistinctContributors":2,"antiGamingRule":"Unverified self-reports and seed/editorial rows never mutate picks or scores."},"triggers":[{"kind":"verified_outcomes_outperformance","challengerId":"openai-media","minVerifiedOutcomes":10,"requiredOutcomeMargin":0.5,"requiredWorkedRateDelta":0.15},{"kind":"verified_price_increase","providerId":"fal","maxPriceIncreasePct":25},{"kind":"live_rail_exhaustion_or_degradation","providerId":"fal","immediateOverrideUrl":"/api/decide?jtbd=image-generation&exhausted=fal"}],"submissionSpec":{"falsifyEndpoint":"/api/falsify?jtbd=image-generation","outcomesEndpoint":"POST /api/feedback","correctionsEndpoint":"POST /api/corrections","payloadTemplate":{"agentIdentity":"agent:<your-agent-id>","jtbdId":"image-generation","providerId":"openai-media","outcome":"worked","detail":"Comparative production evaluation on image-generation (n>=10 tasks) with Countersign receipt.","confidence":"high","receipt":{"countersign":{"claim_id":"cs-00000000","status":"verified","evidence_tier":"outcome_verified","counts_as_verified":true}}}}},"whatWouldChangePick":["OpenAI Media (Images/Audio) (openai-media) outperforms Fal (fal) by >= 0.5 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Fal's representative SKU for image-generation without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=fal) or sustained >= 30% degraded/failed rate in verified production outcomes."],"routePlan":{"jtbdId":"image-generation","primary":{"providerId":"fal","name":"Fal","overall":8.5,"scoreBand":{"low":7.9,"mid":8.5,"high":9.1,"halfWidth":0.6,"basis":"editorial_prior","display":"7.9–9.1 (editorial prior)"},"scoreLayers":{"editorialPrior":8.5,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","role":"primary","reason":"Editorial Depot Pick for Programmatic image generation; healthy/eligible under caller constraints."},"fallback":[{"providerId":"openai-media","name":"OpenAI Media (Images/Audio)","overall":8.15,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.15,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Programmatic image generation."},{"providerId":"black-forest-labs","name":"Black Forest Labs","overall":8.14,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.14,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-19","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Programmatic image generation."},{"providerId":"stability","name":"Stability AI","overall":8.12,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.12,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Programmatic image generation."},{"providerId":"replicate","name":"Replicate","overall":7.82,"scoreBand":{"low":7.2,"mid":7.8,"high":8.4,"halfWidth":0.6,"basis":"editorial_prior","display":"7.2–8.4 (editorial prior)"},"scoreLayers":{"editorialPrior":7.82,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Programmatic image generation."},{"providerId":"midjourney","name":"Midjourney","overall":7.29,"scoreBand":{"low":6.7,"mid":7.3,"high":7.9,"halfWidth":0.6,"basis":"editorial_prior","display":"6.7–7.9 (editorial prior)"},"scoreLayers":{"editorialPrior":7.29,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Programmatic image generation."},{"providerId":"ideogram","name":"Ideogram","overall":7.88,"scoreBand":{"low":7.3,"mid":7.9,"high":8.5,"halfWidth":0.6,"basis":"editorial_prior","display":"7.3–8.5 (editorial prior)"},"scoreLayers":{"editorialPrior":7.88,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Programmatic image generation."},{"providerId":"recraft","name":"Recraft","overall":8.07,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.07,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Programmatic image generation."}],"disqualified":[],"expectedRegret":{"scoreDeltaVsUnconstrainedPick":0,"unconstrainedPickId":"fal","activePrimaryId":"fal","summary":"0.00 score regret: unconstrained editorial pick satisfies all caller constraints."},"evidenceAgeDays":{"editorialScoreAgeDays":8,"pricingVerifiedAgeDays":0,"editorialPriorAsOf":"2026-10-19","pricingLastVerifiedAt":"2026-10-27"},"confidenceBand":{"low":7.9,"mid":8.5,"high":9.1,"halfWidth":0.6,"basis":"editorial_prior","display":"7.9–9.1 (editorial prior)"},"constraintsApplied":false,"constraintBundle":{"task":null,"jtbd":"image-generation","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]}},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","tie":false,"scoreGap":0.35,"decidingFactor":null,"tieNote":null,"rationale":"dx + capability catalog + pricePerf. Midjourney penalized on API dx.","whenNotTopPick":"Need Midjourney aesthetics and have API access; want OpenAI one-vendor stack; first-party FLUX.2/FLUX 3 terms — Black Forest Labs.","skipTopPick":false,"skipReason":null,"matchedConstraints":[],"pricingSummary":"Serverless generative media API (1000+ models); per-second/per-output; extremely agent-friendly.","cite":"Depot Pick for image-generation: fal (asOf 2026-10-19). See GET /api/jtbds/image-generation + GET /api/methodology.","nextActions":[{"step":1,"title":"Inspect full JTBD + embeds","href":"/api/jtbds/image-generation?embed=providers","why":"Confirm pick, runners-up, and methodology notes."},{"step":2,"title":"Quote sourced SKUs","href":"/api/quote?jtbd=image-generation","why":"Depot Pick SKUs plus the cheapest sourced SKU whose unit matches this job. Does not change the pick. Does not blend input and output or borrow a chat rate for a non-chat job."},{"step":3,"title":"Open provider detail","href":"/api/providers/fal","why":"Scores, pricingNotes, strengths/weaknesses, communitySignals (claims only)."},{"step":4,"title":"Cite methodology","href":"/api/methodology","why":"Required when publishing a Depot Pick citation."},{"step":5,"title":"Grab badge SVG","href":"/api/badge?type=depot-pick&jtbd=image-generation","why":"Embed in README / agent passport."},{"step":6,"title":"Post production insight","method":"POST","href":"/api/insights","why":"Unverified until curated; never auto-mutates official scores."}],"honesty":["Do not invent scores or benches.","Insights are claims until curated/reviewed; they never silently mutate official scores.","lockInRisk higher = more lock-in (worse).","normalizedUsdPerMillionTokens is set only for a single sourced token row. Otherwise null, with a machine-readable reason. Do not coerce GPU, minute, or per-1k search units.","Runners-up are not Depot Picks.","Depot overall is editorial_weighted, not Arena Elo and not an Artificial Analysis index."],"asOf":"2026-10-19","depth":{"whenNotToUse":{"text":"Need Midjourney aesthetics and have API access; want OpenAI one-vendor stack; first-party FLUX.2/FLUX 3 terms — Black Forest Labs.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"openai-media","name":"OpenAI Media (Images/Audio)","overallForJob":8.15,"pickOverallForJob":8.5,"beatsPickOn":["latencyReliability","privacyPosture","maturity"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":4,"runnerUpLockInRisk":7,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[{"id":"flux-1-schnell","name":"FLUX.1-schnell","license":"Apache-2.0","sourceUrl":"https://huggingface.co/api/models/black-forest-labs/FLUX.1-schnell"},{"id":"sdxl-base-1-0","name":"Stable Diffusion XL base 1.0","license":"CreativeML Open RAIL++-M","sourceUrl":"https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/raw/main/LICENSE.md"},{"id":"comfyui","name":"ComfyUI","license":"GPL-3.0","sourceUrl":"https://raw.githubusercontent.com/comfyanonymous/ComfyUI/master/LICENSE"}],"migration":"The pick has lower stored lock-in risk than runner-up OpenAI Media (Images/Audio) (4 vs 7). Self-host fallback listed for this job: FLUX.1-schnell, Stable Diffusion XL base 1.0, ComfyUI.","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"citation":{"text":"Agent Provider Depot (v0.12.152), Depot Pick for image-generation: fal, scores as of 2026-10-19, retrieved 2026-10-27. https://getagentdepot.com/jtbds/image-generation","markdown":"[Agent Provider Depot](https://getagentdepot.com/jtbds/image-generation) (v0.12.152) — Depot Pick for `image-generation`: **fal** (scores as of 2026-10-19, retrieved 2026-10-27)","fields":{"publisher":"Agent Provider Depot","version":"0.12.152","role":"depot_pick","jtbdId":"image-generation","providerId":"fal","scoreAsOf":"2026-10-19","retrievedOn":"2026-10-27","page":"https://getagentdepot.com/jtbds/image-generation","api":"https://getagentdepot.com/api/decide?jtbd=image-generation"},"howToCite":"Cite Depot as an editorial, dated recommendation, not a benchmark: name the job, the Depot Pick (or runner-up), the score asOf date and the day you retrieved it, and link the job page. Format: “Agent Provider Depot (v{version}), Depot Pick for {jobId}: {providerId}, scores as of {scoreAsOf}, retrieved {retrievedOn}. {baseUrl}/jtbds/{jobId}”. Quote prices only with their own sourceUrl and asOf. If the pick's score is stale (freshness.pick.score.stale), say so."},"freshness":{"pick":{"score":{"asOf":"2026-10-19","ageDays":8,"stale":false,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-10-19","ageDays":8,"stale":false,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":1,"sourcesReachable":1,"pricingRows":3,"pricingRowsReconfirmed":2,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}},"scoreAsOf":"2026-10-19","editorialPriorAsOf":"2026-10-19","pricingLastVerifiedAt":"2026-10-27","pickLastReviewed":"2026-10-19","runnersUpScoreAsOf":["2026-09-14","2026-09-14","2026-09-14","2026-09-14","2026-09-14","2026-09-14","2026-09-14"],"contractAsOf":"2026-10-03","pricingShape":"sourced_rows","normalizedUsdPerMillionTokens":null,"normalizationStatus":"unit_mismatch","normalizationReason":"unit_mismatch"},"pricingContract":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unit_mismatch","normalizationReason":"unit_mismatch","shape":"sourced_rows","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[{"id":"fal-image-nano-banana-2","providerId":"fal","sku":"Nano Banana 2","unit":"usd_per_image","amountUsd":0.08,"currency":"USD","sourceUrl":"https://fal.ai/pricing","asOf":"2026-10-19","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_image","priceSortEligible":false,"qualifier":"Model API billed per image (billing unit \"images\"). Megapixel-billed models were not converted to per image."},{"id":"fal-image-seedream-v4-5","providerId":"fal","sku":"Bytedance Seedream V4.5","unit":"usd_per_image","amountUsd":0.04,"currency":"USD","sourceUrl":"https://fal.ai/pricing","asOf":"2026-10-19","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_image","priceSortEligible":false,"qualifier":"Model API billed per image (billing unit \"images\"). Megapixel-billed models were not converted to per image."},{"id":"fal-image-nano-banana-pro","providerId":"fal","sku":"Nano Banana Pro","unit":"usd_per_image","amountUsd":0.15,"currency":"USD","sourceUrl":"https://fal.ai/pricing","asOf":"2026-10-19","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_image","priceSortEligible":false,"qualifier":"Model API billed per image (billing unit \"images\"). Megapixel-billed models were not converted to per image."}],"notesExcerpt":"Serverless generative media API (1000+ models); per-second/per-output; extremely agent-friendly.","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-10-19","scoreAsOf":"2026-10-19","website":"https://fal.ai","doNotParse":"Do not parse pricingNotes. Use rows only. normalizedUsdPerMillionTokens is a single number only when this provider has exactly one sourced token row. Input/output, context tiers, and non-token units stay null at this level.","gap":"Partial coverage. Providers without a fetched SKU are omitted. See GET /api/pricing."},"links":{"jtbd":"/jtbds/image-generation","jtbdApi":"/api/jtbds/image-generation","leaderboard":"/api/leaderboards?jtbd=image-generation","methodology":"/api/methodology","badge":"/api/badge?type=depot-pick&jtbd=image-generation","decide":"/api/decide?jtbd=image-generation","humanPage":"/jtbds/image-generation","alternatives":"/api/alternatives?provider=fal","canonical":"/api/canonical","quote":"/api/quote?jtbd=image-generation","falsify":"/api/falsify?jtbd=image-generation"},"constraintBundle":{"task":null,"jtbd":"image-generation","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]},"stackContext":{"host":null,"framework":null,"repo":null,"lang":null,"existing":[],"volume":null,"sender":null,"detectedFromTask":[]},"keep":null,"contextAdvice":null,"communityFeedback":{"pickOnThisJob":{"failed":0,"degraded":0,"worked":0,"insights":1,"withVerifiedReceipt":0,"failureModes":{},"latestAt":"2026-09-07T19:10:00.000Z","note":"Agent-reported claims (unverified unless a receipt is verified by Depot's re-check). They never change scores or picks."},"outcomes":{"job":{"n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"verifiedReports":0,"contributors":0,"excluded":{"seed_editorial":1,"test":0,"notFeedback":0},"reason":"no_submitted_outcome_reports_yet"},"pick":{"providerId":"fal","n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"evidenceTiers":{"agent_claim":0,"self_declared":0,"reference_checked":0,"outcome_verified":0},"reason":"no_submitted_outcome_reports_yet"},"scoresMutated":false,"more":"/api/outcomes?jtbd=image-generation"},"report":"POST /api/feedback {agentIdentity, outcome: failed|degraded|worked, detail, providerId, jtbdId, failureModeId?, receipt?}"}}