{"id":"image-generation","slug":"image-generation","name":"Programmatic image generation","shortName":"Programmatic image generation","problemStatement":"Generate images from agents/apps via API.","whenNotTopPick":"Need Midjourney aesthetics and have API access; want OpenAI one-vendor stack; first-party FLUX.2/FLUX 3 terms — Black Forest Labs.","categoryIds":["cat-media-gen","cat-inference-apis"],"depotPickProviderId":"fal","depotPickRationale":"dx + capability catalog + pricePerf. Midjourney penalized on API dx.","runnersUpIds":["openai-media","black-forest-labs","stability","replicate","midjourney","ideogram","recraft"],"weights":{"capabilityFit":0.25,"pricePerformance":0.18,"latencyReliability":0.15,"developerDx":0.15,"privacyPosture":0.1,"lockInRisk":0.07,"maturity":0.1},"methodologyNotes":"dx + capability catalog + pricePerf. Midjourney penalized on API dx.","tags":["image"],"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."}},"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}}}}