# UKP — Gemini Nano Banana (MCP @fre4x/gemini)
# Unité de Connaissance Professionnelle — Agents 21 (Design System) & 31 (Graphiste)

> Source : NotebookLM "21-31-NanobananaPro" — 56 sources — https://notebooklm.google.com/notebook/29f6b0b1-35e9-428a-a109-1afda0ae8377
> Généré le : 07/06/2026
> Statut : ✅ v1 — 56 sources Deep Research
> Agents consommateurs : 21 (Design System), 31 (Graphiste)

---

## 1. Vue d'ensemble de l'outil

**Définition :** Le MCP `@fre4x/gemini` est un serveur Model Context Protocol standardisé conçu pour intégrer les capacités multimédias avancées de l'écosystème Google Gemini directement dans des interfaces orientées agent comme Claude Code. Ce package npm s'exécute localement et sert de passerelle d'exécution standardisée pour manipuler des images, des vidéos et des modèles d'analyse via des messages JSON-RPC fluides.

**Différence avec l'API Gemini directe :**
- L'API directe impose la gestion manuelle du cycle de vie des requêtes, de l'authentification, de la validation des types et de l'écriture asynchrone de fichiers
- Le MCP encapsule tout cela : les agents n'écrivent aucun script d'intégration personnalisé
- Avantage supplémentaire : sandboxing des accès disque, découverte dynamique des modèles actifs

**5 outils exposés :**

| Outil | Fonction |
|---|---|
| `generate_image` | Génération d'images via Imagen 4.0 (Fast / Standard / Ultra) |
| `generate_video` | Génération vidéo via Veo 3.1 (Standard / Fast) |
| `get_video_status` | Suivi asynchrone d'un rendu vidéo en cours |
| `analyze_media` | Analyse et contrôle qualité d'images ou de vidéos |
| `list_models` | Inventaire des modèles disponibles sur le compte |

**Architecture recommandée :**
```
Agent 21 (brief stratégique + Design System JSON)
  → generate_image / generate_video
  → Agent 31 (analyze_media — Visual QA)
  → output final archivé
```

---

## 2. Maîtrise de `generate_image`

### 2.1 Paramètres disponibles

| Paramètre | Type | Valeurs | Rôle |
|---|---|---|---|
| `prompt` | string | texte libre | Description complète de l'image |
| `model` | string | voir tableau ci-dessous | Choix du modèle Imagen |
| `aspect_ratio` | string | `"1:1"`, `"16:9"`, `"9:16"` | Format de sortie |
| `output_dir` | string | chemin absolu | Dossier de sauvegarde locale |

### 2.2 Hiérarchie des modèles Imagen 4.0

| Modèle | ID API | Caractéristiques | Temps | Coût | Usage recommandé |
|---|---|---|---|---|---|
| **Imagen 4.0 Fast** | `imagen-4.0-fast-generate-001` | Génération en temps réel, économique | < 3 sec | Très faible | Prototypage rapide, tests d'agencement, validation de concepts (Agent 21) |
| **Imagen 4.0 Standard** | `imagen-4.0-generate-001` | Équilibre fidélité visuelle + intégration de texte | 5–10 sec | Modéré | Production posts carrés, illustrations articles LinkedIn |
| **Imagen 4.0 Ultra** | `imagen-4.0-ultra-generate-001` | Rendu haut de gamme, textures complexes, lumière avancée | 10–20 sec | ~$0.06/image | Production finale assets clés : bannières, couvertures articles |

### 2.3 Structure d'un prompt Imagen efficace (5 couches)

**Ordre impératif — toujours respecter cette séquence :**

1. **Style** — Définir le registre visuel en premier (ex. "Photographie corporative haut de gamme de style studio")
2. **Sujet** — Décrire l'élément principal avec précision (ex. "un cadre en verre de haute technologie affichant un graphique de croissance financière épuré")
3. **Composition** — Préciser le cadrage et la mise en scène (ex. "vue de face en plan moyen, espace négatif à gauche", "Plan de trois-quarts", "Règle des tiers")
4. **Éclairage** — Définir la nature et la direction de la lumière (ex. "éclairage de studio soft, lumière de contour diffuse, reflets mats")
5. **Finition** — Traitement de surface et ambiance chromatique (ex. "texture grainée subtile, palette chromatique corporate hautement contrastée")

**Exemple Fidulia complet :**
> *"Photographie corporative haut de gamme de style studio, un cadre en verre de haute technologie affichant un graphique de croissance financière épuré, posé sur un bureau minimaliste en chêne sombre, vue de face en plan moyen avec un large espace négatif à gauche, éclairage de studio tamisé créant de discrets reflets mats sur les surfaces vitrées, palette de couleurs sobres et élégantes."*

### 2.4 Formats LinkedIn compatibles

| Type d'asset | Aspect ratio | Dimensions cibles | Notes techniques |
|---|---|---|---|
| Post standard / carré | `"1:1"` | 1200 × 1200 px | Format roi pour l'engagement ; aucun recadrage mobile/desktop |
| Infographie / Portrait | `"9:16"` | 1080 × 1350 px | Occupation d'écran maximale, idéal scroll smartphone |
| Bannière profil personnel | Personnalisé | 1584 × 396 px | ⚠️ Zone obstruée : 20% coin inférieur gauche (photo de profil) |
| Bannière page entreprise | Personnalisé | 1128 × 191 px | Centrer textes/logos dans les 70% centraux |
| Couverture article | `"16:9"` | 1200 × 627 px | Intégration parfaite dans les cartes de prévisualisation |

> **Règle safe zone bannière :** ne jamais placer d'information critique dans les 460px gauche (mobile) ni dans les 20% inférieurs gauche (photo de profil).

### 2.5 Traduction des tokens Fidulia en langage prompt

| Token Design System | Traduction prompt Imagen |
|---|---|
| `primary_color: #0C132A` | "Le fond est une surface satinée de couleur bleu marine profond codé #0C132A" |
| `accent_color: #D70459` | "Un rai de lumière néon de couleur magenta vif codé #D70459 découpe les contours du sujet" |
| `background_style` | "Style épuré, minimaliste, atmosphère sombre et élégante de studio photo, aucun élément superflu en arrière-plan" |
| `typography: Playfair Display / League Spartan` | "Le nom de la marque 'FIDULIA' est intégré au centre, écrit dans une police serif éditoriale élégante haute-contraste (rappel de Playfair Display), blanche et lumineuse. Si un chiffre est mis en avant, il est en sans-serif géométrique très bold (rappel de League Spartan)." |

---

## 3. Maîtrise de `generate_video` et `get_video_status`

### 3.1 Modèles Veo 3.1

| Modèle | ID API | Caractéristiques | Durée de rendu | Coût |
|---|---|---|---|---|
| **Veo 3.1 Standard** | `veo-3.1-generate-preview` | Synthèse cinématique, cohérence temporelle optimale, audio spatialisé | 1 à 6 minutes | ~$0.35/seconde d'output |
| **Veo 3.1 Fast** | (variante Fast) | Rendu rapide, moins de détails fins | < 2 minutes | Plus économique |

### 3.2 Gestion asynchrone avec `get_video_status`

Le rendu vidéo est **toujours asynchrone**. Protocole de suivi obligatoire pour l'Agent 31 :

```
generate_video(prompt) → capture task_id
       ↓
   Attente 30 secondes (éviter la surcharge API)
       ↓
get_video_status(task_id) → vérifier l'état
       ↓
   ┌── IN_QUEUE / IN_PROGRESS → redémarrer la boucle d'attente
   │
   ├── COMPLETED → extraire video.url → sauvegarde locale
   │
   └── FAILED / CANCELED → analyser _meta.code → rapport d'anomalie
```

**Causes fréquentes de FAILED :**
- Erreur de modération de prompt (contenu refusé par les filtres)
- Dépassement de quota budgétaire
- Format de prompt incompatible

### 3.3 Cas d'usage LinkedIn vidéo

- Reels LinkedIn (15–30 secondes) : teaser d'un article ou résultat client
- Carrousels animés : transition entre slides d'un cas client
- Vidéos de couverture de profil : fond animé professionnel

---

## 4. Maîtrise de `analyze_media`

**Rôle :** outil de contrôle qualité visuel (Visual QA) — à appeler systématiquement après chaque génération avant toute publication.

**Usage en boucle de rétroaction fermée :**
```
generate_image(prompt) → fichier écrit sur disque
       ↓
analyze_media(fichier) → inspection conformité
       ↓
   ┌── Conforme → renommer + déplacer vers /outputs/final/
   │
   └── Non conforme → ajuster prompt → relancer generate_image
```

**Ce qu'analyze_media inspecte :**
- Conformité de la palette chromatique (navy + magenta)
- Cohérence du style visuel avec le brief
- Présence d'artefacts ou de déformations
- Lisibilité des textes intégrés
- Respect des zones de sécurité (safe zone bannière)

**Formats d'entrée acceptés :** images (PNG, JPEG, WebP) et vidéos (MP4)

---

## 5. Workflow de production agentique complet

### 5.1 Chaîne en 5 étapes

```
┌─────────────────────────────────────────────────────┐
│  Étape 1 : Brief & alignement (Agent 21)            │
│  Analyser la demande → charger Design System JSON   │
│  → rédiger le prompt optimal                        │
└─────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────┐
│  Étape 2 : Prototypage rapide                       │
│  Agent 21 → generate_image (Fast)                   │
│  Validation de la composition et des tons           │
└─────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────┐
│  Étape 3 : Visual QA (Agent 31)                     │
│  analyze_media → vérification conformité charte     │
│  Si KO → ajuster prompt → retour étape 2            │
└─────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────┐
│  Étape 4 : Rendu final haute définition             │
│  Agent 21 → generate_image (Ultra) ou               │
│  generate_video (veo-3.1-generate-preview)          │
└─────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────┐
│  Étape 5 : Contrôle final & archivage               │
│  Agent 31 → analyze_media (validation finale)       │
│  → renommage + déplacement vers /outputs/final/     │
└─────────────────────────────────────────────────────┘
```

### 5.2 Allocation des modèles par phase

| Phase | Modèle recommandé | Justification |
|---|---|---|
| Idéation & composition | `imagen-4.0-fast-generate-001` | Vitesse > qualité, économique en phase test |
| Production standard | `imagen-4.0-generate-001` | Équilibre qualité/coût pour posts courants |
| Production finale | `imagen-4.0-ultra-generate-001` | Qualité maximale pour assets haute visibilité |
| Vidéo premium | `veo-3.1-generate-preview` | Cohérence temporelle + audio pour Reels |

### 5.3 Organisation des fichiers de sortie

```
Clients/[Client]/Design/Production/[Semaine]/
├── drafts/          → outputs Fast (tests)
├── review/          → outputs Standard (en validation)
└── final/           → outputs Ultra validés par analyze_media
```

---

## 6. Limites et points de vigilance

### 6.1 Rendu du texte dans les images

**Limite critique :** Imagen 4.0 produit fréquemment des caractères inventés, des fautes d'orthographe ou des glyphes déformés lorsqu'un texte précis est demandé dans l'image.

**Règle absolue :** ne jamais demander à Imagen de générer un texte typographié précis (nom de marque, slogan, chiffres). Toujours intégrer le texte en post-production via Claude Design ou Canva.

### 6.2 Dérive stylistique sans ancrage de prompt

Sans consigne de style explicite **en tout début de prompt**, Imagen adapte le style de manière imprévisible (rendu 3D, illustration vectorielle, photographie réaliste alternés). Une campagne de posts peut perdre toute cohérence visuelle en quelques itérations.

**Règle absolue :** le premier mot du prompt doit toujours définir le registre visuel (ex. "Photographie corporative...", "Illustration vectorielle minimaliste...", "Rendu 3D studio...").

### 6.3 Marquage SynthID (traçabilité légale)

Tous les contenus générés par Imagen et Veo intègrent automatiquement **SynthID** :
- Filigrane visuel discret indiquant le caractère synthétique
- Marquage numérique invisible dans la structure des pixels
- Résistance aux modifications (recadrage, filtres, compression)

**Implication pour Fidulia :** tout asset généré est traçable comme IA-généré. À mentionner dans les contrats clients si la mention légale est requise par leur réglementation (AMF, CNB, OEC).

### 6.4 Cohérence de personnage entre plusieurs images

Imagen ne maintient pas de cohérence d'un personnage ou d'une mascotte entre deux générations distinctes. Pour une série cohérente (ex. mascotte sur plusieurs posts), utiliser le même prompt base + analyze_media pour valider la conformité visuelle entre visuels.

---

## 7. Recommandations d'intégration Fidulia

### 7.1 Modèle recommandé par type d'asset

| Asset LinkedIn | Modèle | Aspect ratio | Notes |
|---|---|---|---|
| Post carré (actu, conseil) | Standard | `1:1` | Modèle de référence quotidien |
| Infographie portrait | Standard | `9:16` | Carousel slide ou post unique |
| Bannière profil | Ultra | Personnalisé | 1584×396px, safe zone 460px gauche |
| Couverture article | Ultra | `16:9` | Haute visibilité sur partages |
| Vidéo Reels / teaser | Veo Standard | `9:16` | Polling obligatoire get_video_status |

### 7.2 Template de prompt réutilisable Fidulia

```
[Registre visuel : "Photographie corporative haut de gamme" / "Illustration vectorielle épurée"]
[Sujet principal avec contexte métier CGP/notaire/expert-comptable]
[Composition : plan, cadrage, espace négatif]
[Éclairage : "studio soft, reflets mats sur surfaces sombres"]
[Finition : "palette couleurs sobres, fond bleu marine profond #0C132A, 
 accentuation magenta néon #D70459, pas d'éléments superflus"]
```

### 7.3 Positionnement : Gemini Nano Banana vs autres outils

| Tâche | Outil recommandé |
|---|---|
| Asset photo-réaliste (fond d'ambiance, portrait stylisé) | ✅ **Gemini Nano Banana** |
| Retouche conversationnelle d'image existante | ✅ **Gemini Nano Banana** |
| Vidéo cinématique Reels | ✅ **Gemini Nano Banana (Veo)** |
| Composant UI structuré (bannière avec texte, carrousel) | ✅ **Claude Design** |
| Export PNG rapide / modification manuelle légère | ✅ **Canva** |
| Brief textuel, SOP, document Markdown | ✅ **Claude.ai Projects** |

**Ce que Gemini Nano Banana ne remplace pas :**
- Claude Design pour la structure et hiérarchie visuelle des composants avec texte
- Canva pour les exports rapides et modifications manuelles
- Claude.ai Projects pour la documentation et les briefs

### 7.4 Action obligatoire avant toute session de production

1. Vérifier que `GEMINI_API_KEY` est valide et sur un compte facturé
2. Appeler `list_models` pour confirmer les modèles disponibles
3. Charger le `FIDULIA-DESIGN-SYSTEM.json` → extraire les tokens avant de rédiger le prompt
4. Toujours démarrer avec le modèle **Fast** pour valider la composition
5. Passer en **Ultra** uniquement pour le rendu final validé par analyze_media

---

## Annexe — Questions de suivi suggérées par NotebookLM

1. Comment structurer un prompt vidéo Veo 3.1 pour un Reels CGP de 30 secondes ?
2. Exemple de boucle analyze_media → correction automatique de prompt ?
3. Comment intégrer le Design System JSON Fidulia dans le brief Agent 21 ?
4. Quelle est la procédure si get_video_status retourne FAILED avec code de modération ?
