📋 Contexte du projet

Durant mon stage dans une agence web spécialisée dans le référencement naturel et la création de sites, j’ai été chargé de développer une solution d’automatisation pour la génération massive de coloriages destinés à des challenges pour enfants.

Problématique initiale

L’agence souhaitait créer des contenus éducatifs pour différentes licences populaires (Stitch, personnages de dessins animés, etc.), mais la création manuelle était :

  • ⏱️ Chronophage : plusieurs heures par série
  • 💰 Coûteuse : nécessité de faire appel à des graphistes
  • 🔄 Peu scalable : difficile de produire en volume

Objectif : Concevoir un workflow automatisé capable de générer des coloriages de qualité professionnelle sans intervention humaine.


🎯 Cahier des charges

Besoins fonctionnels

✅ Générer 20 images de coloriage par licence
✅ Format requis : dessin au trait noir sur fond blanc, style livre de coloriage
✅ Sauvegarde automatique dans Google Drive avec organisation par dossiers
✅ Nomenclature cohérente des fichiers
✅ Qualité adaptée aux enfants de 10-12 ans

Besoins techniques

✅ Solution réutilisable pour de futures licences
Aucune intervention manuelle une fois lancé
✅ Gestion des erreurs API
Workflow documenté et maintenable


📅 Planning du projet (3 jours)

Jour 1 : Analyse et configuration

  • 🔍 Matin : Recherche et tests d’APIs de génération d’images IA (Flux API retenue)
  • ⚙️ Après-midi :
    • Installation et configuration de n8n
    • Configuration de l’API Flux et authentification
    • Premiers tests de génération d’images

Jour 2 : Développement du workflow

  • 🔧 Matin :
    • Construction du workflow n8n (14-15 nœuds)
    • Développement des prompts initiaux
  • 🧪 Après-midi :
    • Tests itératifs et optimisation des prompts (10 versions testées)
    • Configuration de l’intégration Google Drive

Jour 3 : Tests et livraison

  • Matin :
    • Tests de génération complète (première série de 20 images)
    • Corrections et ajustements finaux
  • 📦 Après-midi :
    • Génération de la série finale (40 images au total)
    • Livraison et validation par le tuteur

🛠️ Architecture technique

Technologies utilisées

CatégorieTechnologieRôle
Orchestrationn8n (v1.x)Plateforme d’automatisation no-code/low-code
IA GénérativeFlux APIGénération des images de coloriage
StockageGoogle Drive APISauvegarde organisée des images
ScriptingJavaScriptTransformations de données et logique conditionnelle
AuthentificationBearer TokenSécurisation des appels API

🔧 Conception du workflow n8n

J’ai conçu un workflow composé de 14-15 nœuds orchestrant l’ensemble du processus :

1️⃣ Déclenchement et configuration

[Trigger Manual] 
    ↓
[Set Variables]
    - Licence : "Stitch"
    - Nombre d'images : 20
    - Style : "Coloriage enfant"

2️⃣ Génération intelligente des prompts

// Exemple de logique JavaScript dans n8n
const themes = [
  "surfing on a wave",
  "playing guitar",
  "eating ice cream",
  // ... 17 autres variations
];

return themes.map((theme, index) => ({
  promptId: index + 1,
  prompt: `Coloring page for kids aged 10 to 12, Stitch ${theme}, 
           all shapes fully closed, black and white line art, 
           thick black outlines, white background, no shading`
}));

3️⃣ Appel à l’API Flux

[HTTP Request]
    - Method: POST
    - URL: https://api.flux.com/generate
    - Headers: 
        * Authorization: Bearer {{$env.FLUX_API_KEY}}
        * Content-Type: application/json
    - Body:
        {
          "prompt": "{{$json.prompt}}",
          "model": "flux-pro",
          "width": 1024,
          "height": 1024
        }

4️⃣ Traitement et validation

[IF Condition]
    - Si réponse API == 200 → Continue
    - Sinon → Retry (max 3 tentatives)
    
[Code JavaScript]
    - Vérification format image (PNG/JPG)
    - Validation taille fichier (< 5 Mo)

5️⃣ Sauvegarde organisée dans Google Drive

[Google Drive] Upload File
    - Dossier cible : /Coloriages/{{$json.licence}}
    - Nom fichier : {{$json.licence}}_coloriage_{{$json.id}}.png
    - Permissions : Lecture seule

6️⃣ Boucles et notifications

[Loop Over Items] (20 itérations)
    ↓
[Wait] 2 secondes entre chaque appel API
    ↓
[Send Email] (fin de processus)
    - Destinataire : equipe@agenceweb.fr
    - Sujet : "✅ Génération terminée : 20 images Stitch"

💡 Optimisation des prompts

Version initiale (résultats insatisfaisants)

Stitch surfing, coloring page, black and white

Problèmes : Traits non fermés, présence d’ombres, trop simple

Version finale (validée)

Coloring page for kids aged 10 to 12, Stitch surfing on a wave, 
board and water shapes clearly separated, tropical sun in background, 
happy expression, all shapes fully closed and clearly separated, 
no open lines, balanced level of detail, black and white line art, 
thick black outlines, white background, no shading, no shadows, 
high contrast, clean vector style, summer action composition.

Points clés du prompt optimisé

Tranche d’âge ciblée (10-12 ans) → Adapte la complexité
Description détaillée de la scène → Contexte narratif
Contraintes techniques strictes (« all shapes fully closed », « no shading »)
Style graphique précis (« thick black outlines », « high contrast »)
Composition équilibrée (« balanced level of detail »)


🚧 Difficultés rencontrées et solutions

❌ Problème 1 : Configuration de l’API Flux

Difficulté : Documentation API complexe, authentification Bearer non fonctionnelle au premier essai

Solution :

  1. Étude de la documentation officielle
  2. Tests avec Postman pour valider la structure des requêtes
  3. Configuration correcte du header Authorization: Bearer {token}
  4. Création d’une variable d’environnement dans n8n pour sécuriser le token

Temps de résolution : 2 heures


❌ Problème 2 : Qualité variable des premières images

Difficulté :

  • Traits non fermés (impossibles à colorier)
  • Présence d’ombrages indésirables
  • Niveau de détail inadapté

Solution : Tests itératifs rapides (10 versions de prompts en quelques heures) :

  • V1 : « Stitch coloring page » → ❌ Trop simpliste
  • V2 : « Stitch surfing, black and white, no colors » → ❌ Présence d’ombres
  • V5 : « … all shapes fully closed, no shading » → ⚠️ Mieux mais traits encore fins
  • V10 : « … thick black outlines, high contrast, clean vector style » → ✅ VALIDÉ

Enseignement : Le prompt engineering nécessite des itérations rapides et de la précision.


❌ Problème 3 : Gestion des boucles dans n8n

Difficulté : Créer une itération fiable pour générer exactement 20 images

Solution :

[Split in Batches]
    - Items per batch: 1
    - Total items: 20
    
[Wait] 2 secondes (éviter rate limiting API)

[Merge] Regrouper toutes les réponses

Temps de résolution : 1 heure


📊 Résultats obtenus

Métriques du projet

IndicateurObjectifRéaliséStatut
Durée du projet3 jours⚡ Rapide
Images générées2040+100%
Taux de réussite90%95%
Temps de génération/série~15 min⚡ Automatisé
Intervention humaine00
Coût vs graphiste-80%💰

Retours utilisateurs


Équipe marketing : « On peut lancer de nouvelles licences en 15 minutes maintenant »
Organisation Google Drive : Dossiers clairs, nomenclature cohérente


🎓 Compétences développées (B1.4)

✅ Gestion de projet technique rapide

  • Analyse du besoin et développement en 3 jours
  • Priorisation des fonctionnalités essentielles
  • Livraison en avance (dépassement des objectifs)

✅ Conception de workflows complexes

  • Orchestration de 14-15 nœuds interdépendants
  • Gestion des boucles et conditions
  • Gestion des erreurs et retries automatiques

✅ Intégration d’APIs

  • Authentification Bearer Token
  • Gestion des requêtes HTTP (POST)
  • Traitement des réponses JSON

✅ Prompt engineering

  • Optimisation itérative rapide (10 versions testées)
  • Compréhension des modèles génératifs
  • Contraintes techniques strictes

✅ Autonomie et efficacité

  • Projet réalisé en total autonomie
  • Résolution rapide des blocages techniques
  • Documentation claire pour réutilisation

🔮 Perspectives d’évolution

Phase 2 envisagée

🔜 Déclenchement automatique via webhook
🔜 Interface web de configuration (choix licence/style)
🔜 Intégration multi-APIs (tester d’autres modèles IA)
🔜 Export multi-formats (PDF imprimable, SVG vectoriel)


💡 Apports professionnels

Ce projet m’a permis de :

Livrer un projet complet en 3 jours avec un résultat dépassant les attentes
Concevoir une architecture technique robuste et scalable
Maîtriser une plateforme no-code/low-code professionnelle (n8n)
Développer des compétences en IA générative (prompt engineering)
Optimiser par itérations rapides (tests, ajustements, validation)
Travailler en autonomie avec un fort sens de l’efficacité

Comments are closed