Qu'est-ce qu'ImagiChet ?
ImagiChet est un générateur d'images personnel propulsé par Imagen 3 de Google via Vertex AI. Contrairement aux interfaces publiques (Gemini, Google AI Studio), ImagiChet tourne sur un compte GCP privé — permettant un contrôle total sur les prompts, les styles et la gestion des images générées.
Pourquoi Vertex AI plutôt que Gemini public ?
L'API Vertex AI offre plusieurs avantages décisifs pour un usage personnel :
- Accès direct au modèle sans passer par une interface grand public avec ses limitations UI
- Intégration native avec le compte de service GCP déjà utilisé pour le stockage et l'IA
- Flexibilité totale : paramétrage fin de l'aspect ratio, du nombre d'images, du prompt négatif
- Stockage GCS : chaque image est automatiquement sauvegardée dans le bucket personnel, sans limite de rétention
- Tarification à l'usage : ~$0,02 par image avec le modèle Fast, pas d'abonnement
Modèle : Imagen 3 Fast
ImagiChet utilise imagen-3.0-fast-generate-001, la variante rapide et économique d'Imagen 3 :
- Qualité remarquable malgré la vitesse (résolution 1024×1024 en natif)
- Génération en ~8 secondes contre 15-20s pour le modèle full
- Support multi-ratio : carré (1:1), paysage (16:9), portrait (9:16)
- Paramètre
addWatermark: false : aucun SynthID visible sur les images personnelles
Styles prédéfinis
Chaque style enrichit automatiquement le prompt avec un suffixe optimisé :
- Aquarelle : watercolor painting, soft wet brushstrokes, delicate pastel colors
- Cinématique : cinematic photography, dramatic lighting, 35mm film, shallow depth of field
- Manga : manga illustration, clean line art, black and white, Japanese anime style
- Illustration : digital illustration, vibrant colors, flat design, editorial art style
- Photo réaliste : hyperrealistic photography, 8K resolution, sharp details, professional camera
Architecture technique
Backend (Nuxt 3 / Nitro) :
server/utils/imagen.ts — utilitaire d'appel Imagen 3 via fetch natif + service account OAuth2
server/api/imagenie/generate.post.ts — génération + sauvegarde PNG en GCS + mise à jour galerie
server/api/imagenie/gallery.get.ts — lecture de imagenie/gallery.json
server/api/imagenie/image.get.ts — URL signée GCS (1h) pour affichage sécurisé
server/api/imagenie/delete.delete.ts — suppression fichier GCS + retrait de l'index
Stockage GCS :
- Images :
imagenie/YYYY/MM/DD/{id}.png
- Index galerie :
imagenie/gallery.json (tableau prepend, plus récent en premier)
- Chaque entrée contient : id, timestamp, auteur, prompt, style, ratio, chemin GCS
Sécurité :
- Authentification Google (JWT via Google Identity Services)
requireAuth(event) sur chaque endpoint
- URLs d'images signées temporaires (1h), jamais publiques directement
Flux de génération
- L'utilisateur saisit un prompt + sélectionne un style + choisit le ratio
- Le frontend envoie
POST /api/imagenie/generate avec le Bearer token Google
- Le backend enrichit le prompt avec le suffixe de style, appelle Imagen 3 via Vertex AI
- L'image PNG est sauvegardée en GCS, l'entrée est ajoutée à
gallery.json
- L'image est retournée en base64 pour un affichage immédiat sans second aller-retour
- La galerie se recharge et affiche toutes les images via URLs signées
Galerie et gestion
- Affichage grid : 3 colonnes desktop, 2 colonnes mobile
- Modal plein écran : clic sur une image pour l'agrandir
- Suppression : bouton 🗑️ sur chaque carte — supprime le fichier GCS et retire l'entrée de l'index
- Métadonnées : prompt original, style appliqué, date de génération, ratio