Accéder au contenu principal

Image 3 : Un guide avec des exemples dans l'API Gemini

Apprenez à générer des images à l'aide de l'API Imagen 3 de Google avec Python, notamment en configurant votre environnement et en réglant des options telles que le ratio d'aspect et les filtres de sécurité.
Actualisé 26 févr. 2025  · 12 min de lecture

Imagen 3 est un modèle de génération texte-image qui peut rendre avec précision des scènes détaillées dans différents styles et même incorporer du texte dans les images, ce qui le rend adapté à des applications telles que la publicité et la création de contenu médiatique.

Nous pouvons utiliser Imagen 3 via l'interface Vertex AI Studio ou l'intégrer directement dans des applications via une API.

Dans ce tutoriel, je vais vous expliquer comment générer des images avec Imagen 3 en utilisant l'API de génération de Google avec Python. Je vous guiderai à travers des exemples pratiques qui montrent comment configurer l'environnement, écrire le code nécessaire et intégrer cette technologie dans vos projets. Que vous souhaitiez enrichir vos applications d'images dynamiques ou simplement satisfaire votre curiosité, ce guide vous permettra de comprendre et d'utiliser Imagen 3 de manière simple et programmée.

Développer des applications d'IA

Apprenez à créer des applications d'IA à l'aide de l'API OpenAI.
Commencez à Upskiller gratuitement

Configuration de l'API Google Generative AI

Pour commencer à utiliser Imagen 3 en Python, nous devons effectuer quelques étapes essentielles. Tout d'abord, nous allons créer un projet Google Cloud. Une fois que notre projet est prêt, nous devons générer une clé API. Cette clé permettra à notre code Python d'interagir avec le service Imagen 3.

Création d'un projet Google Cloud

La création d'un projet Google Cloud est la première étape pour utiliser l'API d'IA de Google. Voyons ensemble comment procéder :

  1. Accédez à la console Google Cloud : Nous commençons par naviguer vers la Google Cloud Console. Vous devez vous connecter avec votre compte Google.
  2. Sélectionnez ou créez un nouveau projet : Dans la console, cherchez le menu déroulant "projet" dans la barre de navigation supérieure. En cliquant dessus, vous pourrez sélectionner un projet existant ou en créer un nouveau. Nous choisissons "Nouveau projet" pour continuer.
  3. Fournissez des détails sur le projet : Un formulaire simple s'affiche pour vous demander des informations de base. Nous pouvons choisir n'importe quel nom pour le projet, mais il est utile de choisir quelque chose de descriptif. Il peut être modifié ultérieurement si nécessaire. Nous utiliserons Imagen-tutorial. L'organisation peut être laissée en blanc.

Mise en place d'un projet Google Cloud pour imagen 3

Création de la clé API

Maintenant que le projet Google Cloud est créé, nous pouvons créer une clé d'API en naviguant vers la page de clé d'API dans Google AI Studio.

Pour créer la clé, cliquez sur le bouton "Créer une clé API" :

Création d'une clé d'API dans la console Google Cloud

Dans la fenêtre contextuelle, saisissez le nom du projet que nous avons créé ci-dessus, sélectionnez-le et cliquez sur "Create API key in existing project" (Créer une clé API dans un projet existant) :

Création d'une clé API pour un projet spécifique dans Google Cloud

Copiez la clé et créez un fichier nommé .env situé dans le même dossier que celui où nous écrirons le script Python. Le contenu du fichier .env doit être le suivant :

GEMINI_API_KEY=<paste_your_key_here>

Compte de facturation

Si nous essayons d'utiliser la clé API maintenant, nous obtiendrons une erreur disant "Imagen API is only accessible to billed users at this time" (l'API d'Imagen n'est accessible qu'aux utilisateurs facturés pour le moment). Cela est dû au fait que l'API n'est pas gratuite et que nous devons associer un compte de facturation au projet avant de pouvoir l'utiliser.

Au moment de la rédaction de ce document, le prix de la génération d'une image avec Imagen 3 est de 0,03 $. Consultez leur page de tarification pour plus d'informations.

Pour ajouter un compte de facturation, cliquez sur le bouton "Configurer la facturation" en regard de la clé API dans Google AI Studio.

mise en place d'un compte de facturation dans google cloud

Cela nous redirigera vers le site web de Google Cloud, où nous pourrons soit sélectionner un compte de facturation existant en cliquant sur "Lier un compte de facturation", soit en créer un nouveau en cliquant sur "Gérer les comptes de facturation".

Création d'un compte de facturation dans google cloud projecs.

Supposons que nous n'en ayons pas, nous créons donc "Gérer les comptes de facturation". En haut à gauche de la page, vous trouverez un bouton "Créer un compte". Pour créer le compte, nous devons remplir nos informations personnelles et une carte de crédit pour traiter les paiements.

Générer une image avec Imagen 3 en utilisant Python

Configuration de l'environnement avec Anaconda

Dans ce tutoriel, nous utilisons Anaconda, une plateforme populaire qui simplifie la gestion des paquets et la configuration des projets, facilitant ainsi l'exécution des scripts Python.

Nous pouvons installer Anaconda à partir de leur site officiel.

Pour configurer l'environnement Anaconda, ouvrez un terminal et :

  • Créez un environnement : conda create -n imagen python=3.9. Cette commande a créé un environnement nommé imagen qui utilise la version 3.9 de Python.
  • Activez l'environnement : conda activate imagen.
  • Installez le paquetage Google Generative AI : pip install -q -U google-genai.
  • Installez un logiciel de traitement d'images pour traiter les images générées : pip install pillow.
  • Installez un paquet pour charger la clé API : pip install python-dotenv

Nous pouvons également installer les paquets directement sans utiliser Anaconda, mais il y a un risque que certains des paquets actuellement installés entrent en conflit avec certains des nouveaux paquets ou que notre installation de Python utilise une version différente de Python. L'utilisation d'Anaconda permet d'éviter ces problèmes potentiels.

Générer notre première image

Nous sommes maintenant prêts à utiliser Imagen 3. Créez un nouveau script Python, par exemple gen_image.py, dans le même dossier que le fichier .env..

Tout d'abord, nous importons les paquets nécessaires :

# Google generative AI:
from google import genai
from google.genai import types

# Packages to process the generated image:
from PIL import Image
from io import BytesIO

# Packages to load the .env file:
import os
from dotenv import load_dotenv

Ensuite, nous chargeons la clé API à partir du fichier .env:

load_dotenv()
api_key = os.getenv("GEMINI_API_KEY")

Ensuite, nous initialisons le client d'IA générative de Google. Il s'agit de l'objet qui nous permet de communiquer avec l'API de Google :

client = genai.Client(api_key=api_key)

Pour générer une image, nous utilisons la fonction client.models.generate_images():

prompt="""
A dog surfing at the beach
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        number_of_images=1,
    )
)

Enfin, nous affichons l'image générée à l'aide de l'objet Image:

for generated_image in response.generated_images:
  image = Image.open(BytesIO(generated_image.image.image_bytes))
  image.show()

Voici le résultat :

Génération de notre première image avec Imagen 3

Génération de texte

L'une des caractéristiques intéressantes d'Imagen 3, par rapport à d'autres modèles de conversion texte-image, est sa capacité à générer du texte. Essayons-le en lui demandant de générer le mot "Thé" à l'aide de feuilles de thé fraîches :

prompt="""
Word "tea" made from fresh tea leaves, white background
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
)

Voici le résultat :

Générer du texte avec Imagen 3

Options de génération d'images avec Imagen 3

Les options de génération d'images sont fournies à l'aide des options types.GenerateImagesConfig. Dans l'exemple ci-dessus, nous n'avons spécifié que le nombre d'images à générer :

config=types.GenerateImagesConfig(
    number_of_images=1,
)

Dans cette section, nous explorons les autres options offertes par l'API Imagen 3. Vérifiez la documentation officielle pour plus d'informations.

Générer des images multiples

Nous pouvons utiliser le paramètre number_of_images pour générer plusieurs images avec une seule invite. Par défaut, quatre images sont générées.

Essayons de générer deux images pour une bande dessinée.

prompt="""
Single comic book panel of two people overlooking a destroyed city. 
A speech bubble points from one of them and says: I guess this is the end.
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        number_of_images=2,
    )
)

Voici le résultat :

Générer plusieurs images pour une bande dessinée avec Imagen 3

Il s'agit là d'un autre exemple de génération de texte dans des images. Même si l'image de gauche contient du texte indésirable supplémentaire, la possibilité de générer plusieurs images nous permet d'augmenter nos chances d'obtenir le résultat souhaité. L'image de droite répond presque entièrement à notre demande.

Contrôler le rapport d'aspect

Par défaut, les images générées sont des carrés avec un rapport d'aspect de 1:1. Le modèle prend en charge les rapports d'aspect suivants : 1:1, 3:4, 4:3, 9:16, et 16:9.

Générons une image 9:16 à utiliser comme arrière-plan du téléphone :

prompt="""
A drone shot of a river flowing between mountains with a stormy sky.
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        aspect_ratio="9:16",
    )
)

Voici le résultat :

Génération d'une image au format 9:16 avec Imagen 3

Filtre de niveau de sécurité

La documentation mentionne que nous pouvons utiliser le site safety_filter_level pour spécifier le niveau de filtrage de l'image. Chaque image générée reçoit un score de probabilité qui mesure la probabilité que l'image soit dangereuse (par exemple, un contenu inapproprié). 

Le réglage du filtre de niveau de sécurité est important car il permet de s'assurer que le contenu généré est approprié et correspond aux préférences de l'utilisateur, ce qui permet de maintenir un environnement sûr et respectueux pour diverses applications.

La documentation indique qu'il prend en charge trois niveaux :

  • BLOCK_LOW_AND_ABOVE: Bloquer l'image même avec un score de probabilité faible.
  • BLOCK_MEDIUM_AND_ABOVE : Ne bloquez que les images dont la probabilité est moyenne ou élevée.
  • BLOCK_ONLY_HIGH : Ne bloquez que les images ayant un score de probabilité élevé

Cependant, après expérimentation, l'API ne prend désormais en charge que l'option BLOCK_LOW_AND_ABOVE. Toute autre indication entraînera une erreur.

Génération de personnes

Nous pouvons contrôler si le modèle est autorisé à générer des personnes à l'aide de l'option person_generation. Il propose deux options :

  • DONT_ALLOW: Les images comportant des personnes seront bloquées.
  • ALLOW_ADULT: Cela nous permettra de générer des images avec des personnes (adultes uniquement).

L'option par défaut est d'autoriser les personnes. Par exemple, si nous choisissons de ne pas autoriser les personnes et que nous essayons de générer l'image d'une personne en train de cuisiner, nous n'obtiendrons aucune image.

prompt="""
A person cooking.
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        person_generation="DONT_ALLOW",
    )
)
print(response.generated_images)

Voici le résultat :

None

Faire de bonnes promesses pour Imagen 3

La documentation officielle fournit un guide d'utilisation complet pour Imagen 3, je ne le répéterai donc pas ici. Voici les principales idées sur la manière de rédiger un bon message :

  • Les bases de la rédaction d'un message-guide :
    • Sujet : Concentrez-vous sur l'objet, la personne ou la scène principale que vous souhaitez représenter.
    • Contexte et historique : Décrivez le cadre ou l'environnement dans lequel le sujet est placé.
    • Style : Spécifiez le style artistique ou photographique que vous souhaitez (par exemple, esquisse, peinture, photographie).
  • Utilisez un langage descriptif : Utilisez des adjectifs détaillés et le contexte pour clarifier le résultat souhaité.
  • Référencez des styles spécifiques : Utilisez des artistes ou des mouvements artistiques connus pour guider l'esthétique.
  • Texte en images : Limitez le texte à 25 caractères ou moins et utilisez des phrases distinctes pour fournir des informations supplémentaires.
  • Paramétrage rapide : Si nous devons générer plusieurs images dans le même style, il est judicieux de créer un modèle d'invite réutilisable et de ne fournir en entrée que la partie qui change.
  • Photographie : Spécifiez les réglages de l'appareil photo, les types d'objectifs et l'éclairage pour influencer le résultat.
  • Art : Utilisez des descripteurs tels que "une peinture de..." ou des techniques spécifiques telles que "une peinture à l'aquarelle de...".
  • Modificateurs de la qualité de l'image : Utilisez des mots-clés tels que "haute qualité" ou "4K" pour améliorer la qualité de la sortie.
  • Images photoréalistes : Incluez des détails techniques tels que le type d'objectif et les longueurs focales pour renforcer le réalisme.

Édition et personnalisation d'images

Imagen 3 permet également d'éditer des images et de les personnaliser. Malheureusement, ces fonctionnalités sont toujours verrouillées et ne sont accessibles qu'à des utilisateurs spécifiques.

Par exemple, la fonction de personnalisation nous permet de personnaliser une image de référence à partir d'une invite. Dans l'exemple, une photo d'une femme est donnée, et le message modifie cette image en une image de la même personne tenant des oranges.

Exemple de personnalisation d'image dans imagen 3

Vous trouverez de plus amples informations à ce sujet ainsi que le formulaire de demande d'accès sur leur site web.

Conclusion

Dans ce tutoriel, nous avons appris à utiliser Imagen 3 pour créer des images à l'aide de Python et de l'API générative de Google. Dans l'ensemble, je suis satisfait des résultats que j'ai obtenus en expérimentant l'API. Je pense que les résultats sont de haute qualité et contiennent moins d'artefacts d'IA, ce qui les rend plus difficiles à distinguer des images réelles.

La possibilité de travailler avec du texte dans les images est utile pour l'image de marque et le marketing. Dans l'ensemble, je pense que ce modèle fonctionne bien. J'aimerais simplement que toutes ses fonctionnalités soient ouvertes, car je pense que l'édition d'images est encore plus utile que la génération d'images.


François Aubry's photo
Author
François Aubry
LinkedIn
L'enseignement a toujours été ma passion. Dès mes premiers jours d'études, j'ai cherché avec enthousiasme des occasions de donner des cours particuliers et d'aider d'autres étudiants. Cette passion m'a amenée à poursuivre un doctorat, où j'ai également été assistante d'enseignement pour soutenir mes efforts académiques. Au cours de ces années, j'ai trouvé un immense épanouissement dans le cadre d'une classe traditionnelle, en favorisant les liens et en facilitant l'apprentissage. Cependant, avec l'avènement des plateformes d'apprentissage en ligne, j'ai reconnu le potentiel de transformation de l'éducation numérique. En fait, j'ai participé activement au développement d'une telle plateforme dans notre université. Je suis profondément engagée dans l'intégration des principes d'enseignement traditionnels avec des méthodologies numériques innovantes. Ma passion est de créer des cours qui sont non seulement attrayants et instructifs, mais aussi accessibles aux apprenants à l'ère du numérique.
Sujets

Apprenez l'IA avec ces cours !

cursus

Développer des applications d'IA

23 heures hr
Apprenez à créer des applications alimentées par l'IA avec les derniers outils de développement d'IA, notamment l'API OpenAI, Hugging Face et LangChain.
Afficher les détailsRight Arrow
Commencer le cours
Certification disponible

cours

Développer des applications LLM avec LangChain

3 hr
17.6K
Découvrez comment créer des applications alimentées par l'IA en utilisant des LLM, des invites, des chaînes et des agents dans LangChain.
Voir plusRight Arrow