Générer des images

L'API Imagen vous permet de créer des images de haute qualité en quelques secondes, en utilisant des requêtes textuelles pour guider la génération. Vous pouvez également améliorer la qualité des images à l'aide de l'API Imagen.

Afficher la fiche du modèle Imagen pour la génération d'images

Modèles compatibles

Modèle Code
Génération d'images imagen-3.0-generate-002
imagen-3.0-generate-001
imagen-3.0-fast-generate-001
imagegeneration@006
imagegeneration@005
imagegeneration@002

Pour en savoir plus sur les fonctionnalités disponibles avec chaque modèle, consultez Versions de modèles.

Exemple de syntaxe

Syntaxe pour créer une image à partir d'une requête textuelle.

Syntaxe

Syntaxe pour générer une image.

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \

https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_VERSION}:predict \
-d '{
  "instances": [
    {
      "prompt": "..."
    }
  ],
  "parameters": {
    "sampleCount": ...
  }
}'

Python

generation_model = ImageGenerationModel.from_pretrained("MODEL_VERSION")

response = generation_model.generate_images(
    prompt="...",
    negative_prompt="...",
    aspect_ratio=...,
)
response.images[0].show()

Liste des paramètres

Consultez des exemples pour en savoir plus sur l'implémentation.

Générer des images

REST

Paramètres
prompt

Obligatoire : string

Requête textuelle pour l'image.

Le modèle imagen-3.0-generate-002 accepte jusqu'à 480 jetons.

Le modèle imagen-3.0-generate-001 accepte jusqu'à 480 jetons.

Le modèle imagen-3.0-fast-generate-001 accepte jusqu'à 480 jetons.

Le modèle imagegeneration@006 accepte jusqu'à 128 jetons.

Le modèle imagegeneration@005 accepte jusqu'à 128 jetons.

Le modèle imagegeneration@002 accepte jusqu'à 64 jetons.

sampleCount

Obligatoire : int

Nombre d'images à générer. La valeur par défaut est 4.

Le modèle imagen-3.0-generate-002 accepte les valeurs 1 à 4.

Le modèle imagen-3.0-generate-001 accepte les valeurs 1 à 4.

Le modèle imagen-3.0-fast-generate-001 accepte les valeurs 1 à 4.

Le modèle imagegeneration@006 accepte les valeurs 1 à 4.

Le modèle imagegeneration@005 accepte les valeurs 1 à 4.

Le modèle imagegeneration@002 accepte les valeurs 1 à 8.

seed

Facultatif : Uint32

Graine aléatoire pour la génération d'images. Ce paramètre n'est pas disponible lorsque addWatermark est défini sur true.

Si enhancePrompt est défini sur true, le paramètre seed ne fonctionnera pas, car enhancePrompt crée une nouvelle requête qui génère une image nouvelle ou différente.

enhancePrompt

Facultatif : boolean

Paramètre facultatif 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.

Le modèle imagen-3.0-generate-002 est compatible avec ce champ. Valeur par défaut : true.

Le modèle imagen-3.0-generate-001 n'est pas compatible avec ce champ.

Le modèle imagen-3.0-fast-generate-001 n'est pas compatible avec ce champ.

Le modèle imagegeneration@006 n'est pas compatible avec ce champ.

Le modèle imagegeneration@005 n'est pas compatible avec ce champ.

Le modèle imagegeneration@002 n'est pas compatible avec ce champ.

negativePrompt

Facultatif : string

Description de ce que vous ne voulez pas voir apparaître dans les images générées.

Le modèle imagen-3.0-generate-002 n'est pas compatible avec ce champ.

Le modèle imagen-3.0-generate-001 accepte jusqu'à 480 jetons.

Le modèle imagen-3.0-fast-generate-001 accepte jusqu'à 480 jetons.

Le modèle imagegeneration@006 accepte jusqu'à 128 jetons.

Le modèle imagegeneration@005 accepte jusqu'à 128 jetons.

Le modèle imagegeneration@002 accepte jusqu'à 64 jetons.

aspectRatio

Facultatif : string

Format de l'image. La valeur par défaut est "1:1".

Le modèle imagen-3.0-generate-002 accepte les formats "1:1", "9:16", "16:9", "3:4" ou "4:3".

Le modèle imagen-3.0-generate-001 accepte les formats "1:1", "9:16", "16:9", "3:4" ou "4:3".

Le modèle imagen-3.0-fast-generate-001 accepte les formats "1:1", "9:16", "16:9", "3:4" ou "4:3".

Le modèle imagegeneration@006 accepte les formats "1:1", "9:16", "16:9", "3:4" ou "4:3".

Le modèle imagegeneration@005 accepte les formats "1:1" ou "9:16".

Le modèle imagegeneration@002 accepte le format "1:1".

outputOptions

Facultatif : outputOptions

Décrit le format des images de sortie dans un objet outputOptions.

sampleImageStyle

Facultatif : string (imagegeneration@002 uniquement)

Définit le style des images générées. Les valeurs suivantes sont acceptées :

  • "photograph"
  • "digital_art"
  • "landscape"
  • "sketch"
  • "watercolor"
  • "cyberpunk"
  • "pop_art"
personGeneration

Facultatif : string (imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001 et imagegeneration@006 uniquement)

Autorise ou non la génération de personnes par le modèle. Les valeurs suivantes sont acceptées :

  • "dont_allow" : interdit l'inclusion de personnes ou de visages dans les images.
  • "allow_adult" : autorise uniquement la génération d'adultes.
  • "allow_all" : autorise la génération de personnes de tous âges.

La valeur par défaut est "allow_adult".

language

Facultatif : string (imagen-3.0-capability-001, imagen-3.0-generate-001 et imagegeneration@006 uniquement)

Code de la langue de votre requête textuelle. Les valeurs suivantes sont acceptées :

  • auto : détection automatique. Si Imagen détecte une langue compatible, la requête et une requête négative facultative sont traduites en anglais. Si la langue détectée n'est pas compatible, Imagen utilise le texte d'entrée tel quel, ce qui peut entraîner un résultat inattendu. Aucun code d'erreur n'est renvoyé.
  • en : anglais (valeur par défaut en cas d'omission)
  • es : espagnol
  • hi : hindi
  • ja : japonais
  • ko : coréen
  • pt : portugais
  • zh-TW : chinois (traditionnel)
  • zh ou zh-CN : chinois (simplifié)
safetySetting

Facultatif : string (imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001 et imagegeneration@006 uniquement)

Ajoute un niveau de filtrage de sécurité. Les valeurs suivantes sont acceptées :

  • "block_low_and_above" : niveau de filtrage le plus élevé, blocage le plus strict. Valeur obsolète : "block_most".
  • "block_medium_and_above" : bloque certaines requêtes et réponses problématiques. Valeur obsolète : "block_some".
  • "block_only_high" : réduit le nombre de requêtes bloquées en raison de filtres de sécurité. Peut augmenter le contenu répréhensible généré par Imagen. Valeur obsolète : "block_few".
  • "block_none" : bloque très peu de requêtes et de réponses problématiques. L'accès à cette fonctionnalité est limité. Ancienne valeur du champ : "block_fewest".

La valeur par défaut est "block_medium_and_above".

addWatermark

Facultatif : bool

Ajoute un filigrane invisible aux images générées. La valeur par défaut est false pour les modèles imagegeneration@002 et imagegeneration@005, et true pour les modèles imagen-3.0-generate-002, imagen-3.0-generate-001, imagen-3.0-fast-generate-001, imagegeneration@006 et imagegeneration@006.

storageUri

Facultatif : string

URI Cloud Storage pour stocker les images générées.

Objet outputOptions

L'objet outputOptions décrit la sortie d'image.

Paramètres
outputOptions.mimeType

Facultatif : string

Format d'image dans lequel la sortie doit être enregistrée. Les valeurs suivantes sont acceptées :

  • "image/png" : enregistrer au format PNG.
  • "image/jpeg" : enregistrer au format JPEG.

La valeur par défaut est "image/png".

outputOptions.compressionQuality

Facultatif : int

Niveau de compression si le type de sortie est "image/jpeg". Les valeurs acceptées sont 0 à 100. La valeur par défaut est 75.

Réponse

Corps de la réponse de la requête REST.

Paramètre
predictions

Un tableau d'objets VisionGenerativeModelResult, un pour chaque sampleCount demandé. Si des images sont filtrées par l'IA responsable, elles ne sont pas incluses, sauf si includeRaiReason est défini sur true.

Objet du résultat du modèle génératif de vision

Informations sur le résultat du modèle.

Paramètre
bytesBase64Encoded

Image générée encodée en base64. Non présente si l'image de sortie n'a pas passé les filtres d'IA responsables.

mimeType

Type de l'image générée. Non présent si l'image de sortie n'a pas passé les filtres d'IA responsables.

raiFilteredReason

Motif du filtrage par l'IA responsable. Renvoyé uniquement si includeRaiReason est activé et que cette image a été filtrée.

safetyAttributes.categories

Nom de l'attribut de sécurité. Renvoyé uniquement si includeSafetyAttributes est activé et que l'image de sortie a passé les filtres d'IA responsable.

safetyAttributes.scores

Score de l'attribut de sécurité. Renvoyé uniquement si includeSafetyAttributes est activé et que l'image de sortie a passé les filtres d'IA responsable.

Python

Paramètres
prompt

Obligatoire : string

Requête textuelle pour l'image.

Le modèle imagen-3.0-generate-001 accepte jusqu'à 480 jetons.

Le modèle imagen-3.0-fast-generate-001 accepte jusqu'à 480 jetons.

Le modèle imagegeneration@006 accepte jusqu'à 128 jetons.

Le modèle imagegeneration@005 accepte jusqu'à 128 jetons.

Le modèle imagegeneration@002 accepte jusqu'à 64 jetons.

number_of_images

Obligatoire : int

Nombre d'images à générer. La valeur par défaut est 1.

Le modèle imagen-3.0-generate-001 accepte les valeurs 1 à 8.

Le modèle imagen-3.0-fast-generate-001 accepte les valeurs 1 à 8.

Le modèle imagegeneration@006 accepte les valeurs 1 à 4.

Le modèle imagegeneration@005 accepte les valeurs 1 à 4.

Le modèle imagegeneration@002 accepte les valeurs 1 à 8.

seed

Facultatif : int

Graine aléatoire pour la génération d'images. Ce paramètre n'est pas disponible lorsque addWatermark est défini sur true.

Si enhancePrompt est défini sur true, le paramètre seed ne fonctionnera pas, car enhancePrompt crée une nouvelle requête qui génère une image nouvelle ou différente.

negative_prompt

Facultatif : string

Description de ce que vous ne voulez pas voir apparaître dans les images générées.

Le modèle imagen-3.0-generate-001 accepte jusqu'à 480 jetons.

Le modèle imagen-3.0-fast-generate-001 accepte jusqu'à 480 jetons.

Le modèle imagegeneration@006 accepte jusqu'à 128 jetons.

Le modèle imagegeneration@005 accepte jusqu'à 128 jetons.

Le modèle imagegeneration@002 accepte jusqu'à 64 jetons.

aspect_ratio

Facultatif : string

Format de l'image. La valeur par défaut est "1:1".

Le modèle imagen-3.0-generate-001 accepte les formats "1:1", "9:16", "16:9", "3:4" ou "4:3".

Le modèle imagen-3.0-fast-generate-001 accepte les formats "1:1", "9:16", "16:9", "3:4" ou "4:3".

Le modèle imagegeneration@006 accepte les formats "1:1", "9:16", "16:9", "3:4" ou "4:3".

output_mime_type

Facultatif : string (imagen-3.0-generate-001, imagen-3.0-fast-generate-001 et imagegeneration@006 uniquement)

Format d'image dans lequel la sortie doit être enregistrée. Les valeurs suivantes sont acceptées :

  • "image/png" : enregistrer au format PNG.
  • "image/jpeg" : enregistrer au format JPEG.

La valeur par défaut est "image/png".

compression_quality

Facultatif : int

Niveau de compression si le type MIME de sortie est "image/jpeg". La valeur par défaut est 75.

language

Facultatif : string

Langue de la requête textuelle de l'image. Les valeurs suivantes sont acceptées :

  • "en" : anglais
  • "hi" : hindi
  • "ja" : japonais
  • "ko" : coréen
  • "auto" : détection automatique de la langue

La valeur par défaut est "auto".

output_gcs_uri

Facultatif : string

URI Cloud Storage pour stocker les images générées.

add_watermark

Facultatif : bool

Ajoute un filigrane à l'image générée. La valeur par défaut est false pour les modèles imagegeneration@002 et imagegeneration@005, et true pour les modèles imagen-3.0-fast-generate-001, imagen-3.0-generate-001 et imagegeneration@006.

safety_filter_level

Facultatif : string

Ajoute un niveau de filtrage de sécurité. Les valeurs suivantes sont acceptées :

  • "block_low_and_above" : niveau de filtrage le plus élevé, blocage le plus strict. Valeur obsolète : "block_most".
  • "block_medium_and_above" : bloque certaines requêtes et réponses problématiques. Valeur obsolète : "block_some".
  • "block_only_high" : bloque moins de requêtes et de réponses problématiques. Valeur obsolète : "block_few".
  • "block_none" : bloque très peu de requêtes et de réponses problématiques. Valeur obsolète : "block_fewest".

La valeur par défaut est "block_medium_and_above".

person_generation

Facultatif : string (imagen-3.0-generate-001, imagen-3.0-fast-generate-001 et imagegeneration@006 uniquement)

Autorise ou non la génération de personnes par le modèle. Les valeurs suivantes sont acceptées :

  • "dont_allow" : bloque la génération de personnes.
  • "allow_adult" : génère des adultes, mais pas des enfants.
  • "allow_all" : génère des adultes et des enfants.

La valeur par défaut est "allow_adult".

Augmenter la résolution des images

REST

Paramètre
mode

Obligatoire : string

Doit être défini sur "upscale" pour les requêtes d'augmentation de la résolution.

upscaleConfig

Obligatoire : UpscaleConfig

Objet UpscaleConfig.

outputOptions

Facultatif : OutputOptions

Décrit le format des images de sortie dans un objet outputOptions.

storageUri

Facultatif : string

URI Cloud Storage pour stocker les images générées.

Objet UpscaleConfig

Paramètre
upscaleConfig.upscaleFactor

Obligatoire : string

Facteur d'augmentation. Les valeurs acceptées sont "x2" et "x4".

Réponse

Corps de la réponse de la requête REST.

Paramètre
predictions

Un tableau d'objets VisionGenerativeModelResult, un pour chaque sampleCount demandé. Si des images sont filtrées par l'IA responsable, elles ne sont pas incluses, sauf si includeRaiReason est défini sur true.

Exemples

Les exemples suivants montrent comment utiliser les modèles Imagen pour générer des images.

Générer des images

REST

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 imagegeneration à utiliser. Valeurs disponibles :
    • Imagen 3 :
      • imagen-3.0-generate-002 (modèle le plus récent)
      • imagen-3.0-generate-001
      • imagen-3.0-fast-generate-001 : version du modèle à faible latence.
    • Version du modèle par défaut :
      • imagegeneration : utilise la version de modèle par défaut v.006. Nous vous recommandons de toujours spécifier la version du modèle, en particulier dans les environnements de production.

    Pour en savoir plus sur les versions et les fonctionnalités des modèles, consultez la section Versions de modèles.

  • 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 : la requête de texte qui guide les images générées par le modèle. 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 de 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 : false.
    • INCLUDE_SAFETY_ATTRIBUTES : valeur booléenne. Facultatif. Indique si les scores d'IA responsable doivent être arrondis pour obtenir 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 source donne toujours les mêmes images de sortie. Si le modèle que vous utilisez est compatible avec le filigrane numérique, vous devez définir "addWatermark": false pour utiliser ce champ. Valeurs entières acceptées : 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"
    }
  ]
}

Python

Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le guide de démarrage rapide de Vertex AI à l'aide de bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI pour Python.

Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

Dans cet exemple, vous appelez la méthode generate_images sur le ImageGenerationModel (version @006) 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 Versions de modèles.


import vertexai
from vertexai.preview.vision_models import ImageGenerationModel

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# output_file = "input-image.png"
# prompt = "" # The text prompt describing what you want to see.

vertexai.init(project=PROJECT_ID, location="us-central1")

model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-002")

images = model.generate_images(
    prompt=prompt,
    # Optional parameters
    number_of_images=1,
    language="en",
    # You can't use a seed value and watermark at the same time.
    # add_watermark=False,
    # seed=100,
    aspect_ratio="1:1",
    safety_filter_level="block_some",
    person_generation="allow_adult",
)

images[0].save(location=output_file, include_generation_parameters=False)

# Optional. View the generated image in a notebook.
# images[0].show()

print(f"Created output image using {len(images[0]._image_bytes)} bytes")
# Example response:
# Created output image using 1234567 bytes

Augmenter la résolution des images

REST

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

  • 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.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • B64_BASE_IMAGE : image de base à modifier ou à améliorer. L'image doit être spécifiée en tant que chaîne d'octets encodés en base64. La taille maximale est de 10 Mo.
  • IMAGE_SOURCE : emplacement Cloud Storage de l'image que vous souhaitez modifier ou améliorer. Exemple : gs://output-bucket/source-photos/photo.png.
  • UPSCALE_FACTOR : facultatif. Facteur d'amélioration de l'image. S'il n'est pas spécifié, il sera déterminé par le côté le plus long de l'image d'entrée et par sampleImageSize. Vous pouvez choisir x2 ou x4 comme valeur.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "instances": [
    {
      "prompt": "",
      "image": {
        // use one of the following to specify the image to upscale
        "bytesBase64Encoded": "B64_BASE_IMAGE"
        "gcsUri": "IMAGE_SOURCE"
        // end of base image input options
      },
    }
  ],
  "parameters": {
    "sampleCount": 1,
    "mode": "upscale",
    "upscaleConfig": {
      "upscaleFactor": "UPSCALE_FACTOR"
    }
  }
}

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/imagegeneration@002: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/imagegeneration@002:predict" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "iVBOR..[base64-encoded-upscaled-image]...YII="
    }
  ]
}

Étape suivante