Générer des images à l'aide de requêtes de texte

Vous pouvez utiliser Imagen sur Vertex AI pour générer de nouvelles images à partir d'une requête textuelle. Les interfaces compatibles incluent la console Google Cloud et l'API Vertex AI.

Pour en savoir plus sur l'écriture de prompts textuels pour la génération et la modification d'images, consultez le Guide sur la création de prompts.

Afficher la fiche de modèle Imagen for Generation

Essayer la génération d'images (Vertex AI Studio)

Essayer Imagen dans Colab

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Configurez l'authentification pour votre environnement.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    Python

    Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Pour en savoir plus, consultez la section Configurer les ADC pour un environnement de développement local dans la documentation sur l'authentification Google Cloud .

    REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

    Générer des images avec du texte

    Vous pouvez générer des images inédites en n'utilisant que du texte descriptif comme entrée. Dans les exemples suivants, vous trouverez les instructions de base pour générer des images.

    Console

    1. Dans la console Google Cloud , accédez à la page Vertex AI>Media Studio.

      Accéder à Media Studio

    2. Cliquez sur Imagen. La page de génération d'images d'Imagen Media Studio s'affiche.

    3. (Facultatif) Dans le volet Paramètres, configurez les paramètres suivants :

      • Modèle : sélectionnez un modèle parmi les options disponibles.

        Pour en savoir plus sur les modèles disponibles, consultez Modèles Imagen.

      • Format : choisissez un format parmi les options disponibles.

      • Nombre de résultats : ajustez le curseur ou saisissez une valeur comprise entre 1 et 4.

      • Résolution de sortie : sélectionnez une résolution parmi les options disponibles.

    4. (Facultatif) Dans la section Options avancées, sélectionnez une région dans laquelle générer vos images.

    5. Dans la zone Écrivez votre requête, saisissez votre requête textuelle décrivant les images à générer. Par exemple, illustration en aquarelle d'un petit bateau sur l'eau le matin.

      Pour en savoir plus sur la rédaction de requêtes efficaces, consultez le guide des requêtes et des attributs d'image.

    6. Cliquez sur Générer.

      Un filigrane numérique est automatiquement ajouté aux images générées. Vous ne pouvez pas désactiver le filigrane numérique pour la génération d'images à l'aide de la console Google Cloud .

      Vous pouvez sélectionner une image pour l'afficher dans la fenêtre Détails de l'image. Les images avec filigrane contiennent un badge Filigrane numérique. Vous pouvez également valider explicitement une image en filigrane.

      Exemple d'image avec filigrane générée à l'aide de texte
      Détails de l'image Vue d'une image avec filigrane générée avec Imagen 2 à partir de la requête : petit bateau rouge sur l'eau dans l'illustration de l'aquarelle du matin.

    Python

    Installer

    pip install --upgrade google-genai

    Pour en savoir plus, consultez la documentation de référence du SDK.

    Définissez des variables d'environnement pour utiliser le SDK Gen AI avec Vertex AI :

    # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
    # with appropriate values for your project.
    export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
    export GOOGLE_CLOUD_LOCATION=global
    export GOOGLE_GENAI_USE_VERTEXAI=True

    Dans cet exemple, vous appelez la méthode generate_images sur le ImageGenerationModel et enregistrez localement les images générées. Vous pouvez ensuite utiliser la méthode show() dans un notebook pour afficher les images générées. Pour en savoir plus sur les versions et les fonctionnalités des modèles, consultez Modèles Imagen.

    from google import genai
    from google.genai.types import GenerateImagesConfig
    
    client = genai.Client()
    
    # TODO(developer): Update and un-comment below line
    # output_file = "output-image.png"
    
    image = client.models.generate_images(
        model="imagen-4.0-generate-001",
        prompt="A dog reading a newspaper",
        config=GenerateImagesConfig(
            image_size="2K",
        ),
    )
    
    image.generated_images[0].image.save(output_file)
    
    print(f"Created output image using {len(image.generated_images[0].image.image_bytes)} bytes")
    # Example response:
    # Created output image using 1234567 bytes
    

    REST

    Pour en savoir plus sur les requêtes envoyées au modèle imagegeneration, consultez la documentation de référence de l'API du modèle imagegeneration.

    Avant d'utiliser les données de requête, effectuez les remplacements suivants :

    • PROJECT_ID : ID de votre projet Google Cloud .
    • MODEL_VERSION : version du modèle Imagen à utiliser. Pour en savoir plus sur les modèles disponibles, consultez Modèles Imagen.

    • LOCATION : région de votre projet. (us-central1, europe-west2 ou asia-northeast3, par exemple). Pour obtenir la liste des régions disponibles, consultez IA générative sur les emplacements Vertex AI.
    • TEXT_PROMPT : prompt textuel qui guide le modèle pour la génération d'images. Ce champ est obligatoire pour la génération et la modification.
    • IMAGE_COUNT : nombre d'images générées. Valeurs entières acceptées : de 1 à 8 (imagegeneration@002), de 1 à 4 (toutes les autres versions de modèle). Valeur par défaut : 4.
    • Paramètres facultatifs supplémentaires

      Utilisez les variables facultatives suivantes en fonction de votre cas d'utilisation. Ajoutez l'ensemble ou une partie des paramètres suivants dans l'objet "parameters": {}. Cette liste présente des paramètres facultatifs courants et n'est pas exhaustive. Pour en savoir plus sur les paramètres facultatifs, consultez la section "Générer des images" de la documentation de référence de l'API Imagen.

      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "addWatermark": ADD_WATERMARK,
        "aspectRatio": "ASPECT_RATIO",
        "enhancePrompt": ENABLE_PROMPT_REWRITING,
        "includeRaiReason": INCLUDE_RAI_REASON,
        "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
        "outputOptions": {
          "mimeType": "MIME_TYPE",
          "compressionQuality": COMPRESSION_QUALITY
        },
        "personGeneration": "PERSON_SETTING",
        "safetySetting": "SAFETY_SETTING",
        "seed": SEED_NUMBER,
        "storageUri": "OUTPUT_STORAGE_URI"
      }
      
      • ADD_WATERMARK : valeur booléenne. Facultatif. Active ou non un filigrane pour les images générées. Toute image générée lorsque le champ est défini sur true contient un SynthID numérique que vous pouvez utiliser pour vérifier une image avec filigrane. Si vous omettez ce champ, la valeur par défaut true est utilisée. Vous devez définir la valeur sur false pour désactiver cette fonctionnalité. Vous pouvez utiliser le champ seed pour obtenir un résultat déterministe uniquement lorsque ce champ est défini sur false.
      • ASPECT_RATIO : chaîne. Facultatif. Un paramètre du mode de génération qui contrôle le format. Valeurs de format acceptées et utilisation prévue :
        • 1:1 (par défaut, carré)
        • 3:4 (publicités, réseaux sociaux)
        • 4:3 (TV, photographie)
        • 16:9 (paysage)
        • 9:16 (portrait)
      • ENABLE_PROMPT_REWRITING : valeur booléenne. Facultatif. Paramètre permettant d'utiliser une fonctionnalité de reformulation de requête basée sur un LLM pour générer des images de meilleure qualité qui reflètent mieux l'intention de la requête d'origine. La désactivation de cette fonctionnalité peut avoir un impact sur la qualité de l'image et le respect de la requête. Valeur par défaut : true.
      • INCLUDE_RAI_REASON : valeur booléenne. Facultatif. Indique si le code de motif de filtrage par IA responsable doit être activé dans les réponses comportant une entrée ou une sortie bloquée. Valeur par défaut : true.
      • INCLUDE_SAFETY_ATTRIBUTES : valeur booléenne. Facultatif. Indique si les scores d'IA responsable doivent être arrondis pour une liste d'attributs de sécurité dans les réponses d'entrée et de sortie non filtrées. Catégories d'attributs de sécurité : "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity" et "War & Conflict". Valeur par défaut : false.
      • MIME_TYPE : chaîne. Facultatif. Type MIME du contenu de l'image. Valeurs disponibles :
        • image/jpeg
        • image/gif
        • image/png
        • image/webp
        • image/bmp
        • image/tiff
        • image/vnd.microsoft.icon
      • COMPRESSION_QUALITY : entier. Facultatif. S'applique uniquement aux fichiers de sortie JPEG. Niveau de détail conservé par le modèle pour les images générées au format JPEG. Valeurs : de 0 à 100. Plus la valeur est élevée, plus la compression est importante. Par défaut : 75.
      • PERSON_SETTING : chaîne. Facultatif. Paramètre de sécurité qui contrôle le type de génération de personnes ou de visages autorisé par le modèle. Valeurs disponibles :
        • allow_adult (par défaut) : autorise uniquement la génération d'adultes, à l'exception de la génération de célébrités. La génération de célébrités n'est autorisée pour aucun paramètre.
        • dont_allow : désactive l'inclusion de personnes ou de visages dans les images générées.
      • SAFETY_SETTING : chaîne. Facultatif. Paramètre qui contrôle les seuils de filtre de sécurité pour les images générées. Valeurs disponibles :
        • block_low_and_above : seuil de sécurité le plus élevé qui entraîne le filtrage de la plus grande quantité d'images générées. Valeur précédente : block_most.
        • block_medium_and_above (par défaut) : seuil de sécurité moyen qui équilibre le filtrage des contenus potentiellement dangereux et sécurisés. Valeur précédente : block_some.
        • block_only_high : seuil de sécurité qui réduit le nombre de requêtes bloquées en raison de filtres de sécurité. Ce paramètre peut augmenter le volume de contenus répréhensibles générés par Imagen. Valeur précédente : block_few.
      • SEED_NUMBER : entier. Facultatif. Tout entier non négatif que vous fournissez pour rendre les images de sortie déterministes. Fournir le même numéro de seed génère toujours les mêmes images de sortie. Si le modèle que vous utilisez est compatible avec les filigranes numériques, vous devez définir "addWatermark": false pour utiliser ce champ. Valeurs entières acceptées : de 1 à 2147483647.
      • OUTPUT_STORAGE_URI : chaîne. Facultatif. Bucket Cloud Storage utilisé pour stocker les images de sortie. Si aucune valeur n'est fournie, les octets d'image encodés en base64 sont renvoyés dans la réponse. Exemple de valeur : gs://image-bucket/output/.

    Méthode HTTP et URL :

    POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

    Corps JSON de la requête :

    {
      "instances": [
        {
          "prompt": "TEXT_PROMPT"
        }
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT
      }
    }
    

    Pour envoyer votre requête, choisissez l'une des options suivantes :

    curl

    Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict"

    PowerShell

    Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict" | Select-Object -Expand Content
    L'exemple de réponse suivant concerne une requête avec "sampleCount": 2. La réponse renvoie deux objets de prédiction, avec les octets d'image générés encodés en base64.
    {
      "predictions": [
        {
          "bytesBase64Encoded": "BASE64_IMG_BYTES",
          "mimeType": "image/png"
        },
        {
          "mimeType": "image/png",
          "bytesBase64Encoded": "BASE64_IMG_BYTES"
        }
      ]
    }

    Si vous utilisez un modèle compatible avec l'amélioration des requêtes, la réponse inclut un champ prompt supplémentaire avec la requête améliorée utilisée pour la génération :

    {
      "predictions": [
        {
          "mimeType": "MIME_TYPE",
          "prompt": "ENHANCED_PROMPT_1",
          "bytesBase64Encoded": "BASE64_IMG_BYTES_1"
        },
        {
          "mimeType": "MIME_TYPE",
          "prompt": "ENHANCED_PROMPT_2",
          "bytesBase64Encoded": "BASE64_IMG_BYTES_2"
        }
      ]
    }
    

    Étapes suivantes

    Consultez des articles concernant Imagen et d'autres produits d'IA générative sur Vertex AI :