Trackily Docs

Image Providers

Le moteur AI peut générer les images via 7 providers : Pollinations (gratuit, lazy URL), Nano Banana (Gemini 2.5 Flash, near-free), gpt-image-1 (ChatGPT-native, $0.011-$0.167), DALL-E 3 (legacy, URL expire en 1h), FLUX via fal.ai ($0.003-$0.025), Replicate, et Ideogram (text-in-image $0.008).

Settings AI

Concept

Le AI Landing Builder a besoin de 1-4 images par landing (hero + benefit images + product). Au lieu de te demander d'uploader, il appelle un image provider et injecte les URLs ou data:URLs dans le HTML directement.

Tous les providers respectent le même contrat interne :

async function imgProvider(apiKey, prompt, opts) {
  return { url: '...', provider: 'name' };          // remote URL
  // OU
  return { dataUrl: 'data:image/png;base64,...', provider: 'name' };  // inline
}

Le dataUrl est persistent dans le HTML (l'image vit dans le DOM, plus besoin du provider). Le url peut expirer (DALL-E !) ou être servi à chaque request par le provider (Pollinations).

Source : ai-landing.js lignes 210-410.

Comparatif rapide

Provider Coût/image Persistence Key requise Quand l'utiliser
pollinations Gratuit Lazy URL (re-fetch) Non Default. Tests rapides, prototypes
nano_banana ~Gratuit data:URL (forever) gemini key Best quality/price ratio, embedding-friendly
openai_gpt_image $0.011-$0.167 Base64 → forever openai key Production, text-in-image rendering
openai_dalle ~$0.04 URL 1h expire openai key Legacy. Préfère gpt-image-1
flux_fal $0.003-$0.025 URL persistent fal key Volume, vitesse, photoréalisme
replicate $0.003-$0.10 URL persistent replicate key Flexibilité modèles, FLUX/SDXL/etc.
ideogram $0.008 URL persistent ideogram key Badges, overlays "30% OFF", texte dans l'image

Détail par provider

1. pollinations (default)

Endpoint : https://image.pollinations.ai/prompt/<prompt>?width=...&height=...&seed=...

  • Coût : 0 €.
  • Clé API : aucune.
  • Persistence : URL lazy — le navigateur fetch l'image au render. Si Pollinations tombe, l'image est cassée.
  • Sortie : { url, provider: 'pollinations' }.
  • Qualité : variable. SDXL-based, parfois excellent, parfois "DeviantArt 2010".
  • Quand l'utiliser : tests, prototypes, A/B archetype où la qualité photo n'est pas critique.
  • Code : ai-landing.js:213.
{ "image_provider": "pollinations" }

2. nano_banana (Google Gemini 2.5 Flash Image)

Endpoint : https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent

  • Coût : ~$0.005-0.01 par image (selon usage).
  • Clé API : image_keys.gemini dans Settings → AI.
  • Persistence : data:URL — embeddé inline en base64 dans le HTML. Forever.
  • Sortie : { dataUrl, provider: 'nano_banana' }.
  • Qualité : très bon ratio prix/qualité. Photoréalisme correct, prompt understanding solide.
  • Quand l'utiliser : production cost-conscious, on veut du persistent.
  • Code : ai-landing.js:223.
{ "image_provider": "nano_banana" }

3. openai_gpt_image (gpt-image-1, lancé 2025)

Endpoint : https://api.openai.com/v1/images/generations avec model: 'gpt-image-1'.

  • Coût : tiered selon quality :
    • low → $0.011
    • medium (default) → $0.042
    • high → $0.167
    • auto → modèle pick
  • Clé API : image_keys.openai dans Settings → AI.
  • Persistence : base64 → converti en data:URL → forever.
  • Sortie : { dataUrl, provider: 'openai_gpt_image' }.
  • Sizes supportées : 1024x1024 (square), 1024x1536 (portrait), 1536x1024 (landscape). Trackily snap automatiquement selon le ratio demandé.
  • Qualité : haut de gamme. Excellent text rendering dans l'image (un gros progrès vs DALL-E 3 qui produit du gibberish).
  • Quand l'utiliser : production premium, brand-forward, landings avec badges/labels qui doivent être lisibles.
  • Code : ai-landing.js:287.
{ "image_provider": "openai_gpt_image" }

4. openai_dalle (DALL-E 3, legacy)

Endpoint : https://api.openai.com/v1/images/generations avec model: 'dall-e-3'.

  • Coût : ~$0.04 par 1024x1024.
  • Clé API : image_keys.openai.
  • Persistence : ⚠️ URL OpenAI qui EXPIRE EN 1 HEURE. Au-delà, l'image est cassée — il faut soit re-générer, soit downloader/stocker.
  • Sortie : { url, provider: 'openai_dalle' }.
  • Quand l'utiliser : très peu de raisons. gpt-image-1 est meilleur partout sauf si tu veux EXACTEMENT le style DALL-E.
  • Code : ai-landing.js:248.
{ "image_provider": "openai_dalle" }

⚠️ Si tu utilises DALL-E sur une landing destinée à vivre longtemps, déclenche rerender_landing_from_meta régulièrement OU stocke l'asset via le downloadAndStoreAssets pipeline.

5. flux_fal (FLUX via fal.ai)

Endpoint : https://fal.run/fal-ai/flux/schnell (default) ou https://fal.run/fal-ai/flux/dev.

  • Coût :
    • schnell (fast) → $0.003 par image
    • dev (high quality) → $0.025 par image
  • Clé API : image_keys.fal dans Settings.
  • Persistence : URL persistent (CDN fal.ai).
  • Sortie : { url, provider: 'flux_fal' }.
  • Qualité : FLUX = state-of-the-art photoréalisme depuis 2024. Schnell suffit pour 80 % des cas.
  • Quand l'utiliser : volume + photoréalisme. Hero photo product, lifestyle shots.
  • Code : ai-landing.js:327.
{ "image_provider": "flux_fal" }

6. replicate (FLUX / SDXL / autres via Replicate)

Endpoint : https://api.replicate.com/v1/models/<model>/predictions.

  • Coût : $0.003-$0.10 selon le modèle (FLUX schnell = $0.003, FLUX dev = $0.025, SDXL = $0.0025, Imagen 3 = $0.05).
  • Clé API : image_keys.replicate.
  • Persistence : URL persistent.
  • Sortie : { url, provider: 'replicate' }.
  • Quand l'utiliser : flexibilité modèles (tu veux tester Imagen 3 ou Stable Diffusion 3).
  • Code : ai-landing.js:352.
{ "image_provider": "replicate" }

7. ideogram (text-in-image specialist)

Endpoint : https://api.ideogram.ai/generate.

  • Coût : $0.008 par image.
  • Clé API : image_keys.ideogram.
  • Persistence : URL persistent.
  • Sortie : { url, provider: 'ideogram' }.
  • Qualité : THE provider quand tu veux du TEXTE LISIBLE dans l'image (badges "Sale 30%", overlay text, fake logo, sticker price). Aucun autre provider ne rend le texte aussi bien.
  • Quand l'utiliser : landings tabloid avec badges geants, packshots avec étiquette prix, hero avec overlay "Try Risk-Free".
  • Code : ai-landing.js:376.
{ "image_provider": "ideogram" }

Fallback automatique

ai-landing.js enrobe chaque appel image avec un try/catch. En cas d'erreur (rate limit, clé invalide, API down) le système fallback silencieusement sur Pollinations.

Conséquence pratique : tu peux configurer image_provider: openai_gpt_image sans clé — la landing s'génère quand même, juste avec des images Pollinations. Vérifie toujours meta.image_provider dans la réponse si tu doutais.

Recommandations par cas d'usage

Cas Recommandation
Test rapide, A/B archetype pollinations (gratuit)
Production cost-conscious nano_banana
Production premium brand-forward openai_gpt_image (medium)
Landings tabloid avec badges textuels ideogram
Photoréalisme volume (e-com) flux_fal schnell
Photoréalisme premium (luxury) flux_fal dev OU openai_gpt_image high
Test d'un modèle exotique replicate
Legacy / compat openai_dalle

Configuration des clés API

UI : Settings → AI → Image Providers.

Chaque provider a son propre champ (gemini, openai, fal, replicate, ideogram). Les valeurs sont stockées chiffrées en DB (jamais loggées en clair, jamais retournées par MCP).

Exemples

Génération avec gpt-image-1 medium

{
  "name": "generate_ai_landing",
  "arguments": {
    "description": "MemoMind cognitive supplement, premium look",
    "vertical": "memory",
    "engine": "v2",
    "force_archetype": "wellness",
    "image_provider": "openai_gpt_image"
  }
}

Landing tabloid avec badges textuels Ideogram

{
  "name": "generate_ai_landing",
  "arguments": {
    "description": "Win a $1000 Amazon gift card sweepstakes",
    "vertical": "sweepstakes",
    "engine": "v2",
    "force_archetype": "tabloid",
    "image_provider": "ideogram"
  }
}

Génération budget Pollinations

{
  "name": "generate_ai_landing",
  "arguments": {
    "description": "Crypto trading platform demo",
    "vertical": "crypto",
    "engine": "v2",
    "force_archetype": "dark_tech",
    "image_provider": "pollinations"
  }
}

Production photoréalisme FLUX

{
  "name": "generate_ai_landing",
  "arguments": {
    "description": "Premium organic skincare cream",
    "vertical": "skin",
    "engine": "v2",
    "force_archetype": "wellness",
    "image_provider": "flux_fal"
  }
}

Erreurs courantes

  • DALL-E URL morte : tu vois <img src="https://oaidalleapi…/abc.png"> mais l'image renvoie 403. C'est l'expiration 1h. Re-render via rerender_landing_from_meta (qui re-générera l'image) ou switch sur openai_gpt_image.
  • Pas de clé : silently fallback sur Pollinations. Si tu attendais du premium, vérifie meta.image_provider dans la réponse.
  • Coût qui explose : 4 images × $0.167 (gpt-image-1 high) = $0.67 par landing. Si tu génères 100 landings par jour, ça monte. Use medium par défaut.
  • Texte gibberish dans image : tu utilises Pollinations / FLUX / DALL-E avec du texte attendu ("Sale 30%"). Switch sur Ideogram ou gpt-image-1.
  • Image floue / artefacts : Pollinations a parfois des hits/miss. Re-génère avec un seed différent ou switch provider.
  • CSP qui bloque data:URL : si tu sers via un domaine avec CSP strict, data: images peuvent être bloquées. Configure img-src 'self' data: https:.
  • HTML qui devient énorme : data:URLs gpt-image-1 medium = ~200-400 KB par image. Une landing avec 4 images peut peser 2 MB. C'est le prix de la persistence. Pour landings push haute volumétrie, préfère flux_fal (URLs externes légères dans le HTML).

Voir aussi

  • AI Builder — le wrapper qui appelle ces providers
  • Typestype='ai' qui stocke le rendered HTML
  • Re-render zero costrerender_landing_from_meta
  • Code source : ai-landing.js:210-410, Settings → AI → Image Providers