Cette page explique comment supprimer des objets d'une image à l'aide d'une zone de masque, un processus également appelé "inpainting". Vous pouvez fournir votre propre masque ou laisser Imagen en générer un.
Exemple de suppression de contenu
L'exemple suivant utilise l'inpainting et un masque d'image pour supprimer du contenu d'une image existante :
Entrées
Image de base* à modifier |
Zone de masque spécifiée à l'aide d'outils de la console Google Cloud |
Requête textuelle |
|---|---|---|
|
|
Requête : Supprime les objets sélectionnés de l'image |
* Crédit image : Inside Weather sur Unsplash.
Sortie après avoir spécifié une zone de masque dans la console Google Cloud
|
|
|
Afficher la fiche de modèle Imagen pour la modification et la personnalisation
Avant de commencer
- 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.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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 avec 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 .
Supprimer avec une zone de masque définie
Utilisez les exemples suivants pour supprimer du contenu par inpainting. Dans ces exemples, vous spécifiez une image de base, une requête de texte et une zone de masque afin de modifier l'image de base.
Console
1. Dans la console Google Cloud , accédez à la page Vertex AI>Media Studio.<a href="https://console.cloud.google.com/vertex-ai/studio/media/generate;tab=image" class="button button-primary" target="console" track-name="consoleLink" track-type="task">Go to Media Studio</a>Cliquez sur Importer. Dans la boîte de dialogue de sélection de fichier qui s'affiche, sélectionnez un fichier à importer.
Cliquez sur Réparation.
Dans le panneau Paramètres, cliquez sur Peindre (supprimer).
Effectuez l'une des opérations suivantes :
Importer votre propre masque :
Créez un masque sur votre ordinateur.
Cliquez sur Importer un masque. Dans la boîte de dialogue qui s'affiche, sélectionnez un masque à importer.
Définissez votre propre masque : dans la barre d'outils de modification, utilisez les outils de masque ( Zone, Pinceau ou masked_transitions Inversion) pour spécifier la ou les zones dans lesquelles vous souhaitez ajouter du contenu.
Facultatif : Dans le panneau Paramètres, ajustez les options suivantes :
Modèle : modèle Imagen à utiliser
Nombre de résultats : nombre de résultats à générer
Prompt négatif : éléments à ne pas générer
Dans le champ du prompt, saisissez un prompt pour modifier l'image.
Cliquez sur Générer.
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=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud .
- LOCATION : région de votre projet (
us-central1,europe-west2ouasia-northeast3, par exemple). Pour obtenir la liste des régions disponibles, consultez IA générative sur les emplacements Vertex AI. prompt: pour l'outpainting d'image, vous pouvez fournir une chaîne vide pour créer les images modifiées. Si vous choisissez de spécifier un prompt, décrivez la zone de masque pour obtenir de meilleurs résultats. Par exemple, utilisez un ciel bleu au lieu de insère un ciel bleu.referenceType:ReferenceImagecorrespond à une image qui fournit un contexte supplémentaire pour la modification d'images. Une image de référence brute RVB normale (REFERENCE_TYPE_RAW) est requise pour les cas d'utilisation de modification. Une seule image de référence brute peut exister dans une requête. L'image de sortie a la même hauteur et la même largeur que l'image de référence brute. Une image de référence de masque (REFERENCE_TYPE_MASK) est requise pour les cas d'utilisation de modification de masque. Si une image de référence brute est présente, l'image de masque doit avoir la même hauteur et la même largeur que l'image de référence brute. Si l'image de référence de masque est vide et quemaskModen'est pas défini surMASK_MODE_USER_PROVIDED, le masque est calculé en fonction de l'image de référence brute.- 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. Limite de taille : 10 Mo.
- B64_OUTPAINTING_MASK : image en noir et blanc que vous souhaitez utiliser comme calque de masque pour modifier l'image d'origine. La résolution du masque doit être identique à celle de l'image d'entrée. La résolution de l'image de sortie sera identique à celle de l'image d'entrée. Cette image de masque doit être spécifiée en tant que chaîne d'octets encodés en base64. Limite de taille : 10 Mo.
- MASK_DILATION : float. Pourcentage de la largeur de l'image à utiliser pour dilater ce masque. Nous vous recommandons de définir
0.03comme valeur pour l'outpainting. Définir"dilation": 0.0peut entraîner l'apparition de bordures évidentes au point où l'image a été étendue ou un effet de bordure blanche. - EDIT_STEPS : entier. Nombre d'étapes d'échantillonnage pour le modèle de base. Pour l'outpainting, commencez avec
35étapes. Augmentez le nombre d'étapes si la qualité ne répond pas à vos exigences. - EDIT_IMAGE_COUNT : nombre d'images modifiées. Valeurs entières acceptées : 1 à 4. Valeur par défaut : 4.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
Corps JSON de la requête :
{ "instances": [ { "prompt": "", "referenceImages": [ { "referenceType": "REFERENCE_TYPE_RAW", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "B64_BASE_IMAGE" } }, { "referenceType": "REFERENCE_TYPE_MASK", "referenceId": 2, "referenceImage": { "bytesBase64Encoded": "B64_OUTPAINTING_MASK" }, "maskImageConfig": { "maskMode": "MASK_MODE_USER_PROVIDED", "dilation": MASK_DILATION } } ] } ], "parameters": { "editConfig": { "baseSteps": EDIT_STEPS }, "editMode": "EDIT_MODE_OUTPAINT", "sampleCount": EDIT_IMAGE_COUNT } }Pour envoyer votre requête, choisissez l'une des options suivantes :
L'exemple suivant représente la réponse à une requête aveccurl
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/imagen-3.0-capability-001: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/imagen-3.0-capability-001:predict" | Select-Object -Expand Content"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" } ] }Supprimer avec la détection automatique de masque
Utilisez les exemples suivants pour supprimer du contenu par inpainting. Dans ces exemples, vous spécifiez une image de base et un prompt textuel. Imagen détecte et crée automatiquement une zone de masque pour modifier l'image de base.
Console
1. Dans la console Google Cloud , accédez à la page Vertex AI>Media Studio.<a href="https://console.cloud.google.com/vertex-ai/studio/media/generate;tab=image" class="button button-primary" target="console" track-name="consoleLink" track-type="task">Go to Media Studio</a>Cliquez sur Importer. Dans la boîte de dialogue de sélection de fichier qui s'affiche, sélectionnez un fichier à importer.
Cliquez sur Réparation.
Dans le panneau Paramètres, cliquez sur Peinture (Supprimer).
Dans la barre d'outils de modification, cliquez sur background_replaceExtraire.
Sélectionnez l'une des options d'extraction de masque :
Éléments d'arrière-plan : détecte les éléments d'arrière-plan et crée un masque autour de ces éléments.
Éléments de premier plan : détecte les objets au premier plan et crée un masque autour d'eux.
background_replacePersonnes : détecte les personnes et crée un masque autour d'elles.
(Facultatif) Dans le panneau Paramètres, ajustez les options suivantes :
Modèle : modèle Imagen à utiliser
Nombre de résultats : nombre de résultats à générer
Prompt négatif : éléments à ne pas générer
Dans le champ du prompt, saisissez un prompt pour modifier l'image.
Cliquez sur sendGénérer.
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=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud .
- LOCATION : région de votre projet (
us-central1,europe-west2ouasia-northeast3, par exemple). Pour obtenir la liste des régions disponibles, consultez IA générative sur les emplacements Vertex AI. prompt: pour de meilleurs résultats, omettez le prompt etnegativePromptlorsque vous utilisez l'inpainting pour la suppression.- 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. Limite de taille : 10 Mo.
- MASK_MODE : chaîne qui définit le type de création automatique de masque utilisé par le modèle.
Valeurs disponibles :
MASK_MODE_BACKGROUND: génère automatiquement un masque à l'aide de la segmentation de l'arrière-plan. Utilisez ce paramètre pour modifier le contenu en arrière-plan.MASK_MODE_FOREGROUND: génère automatiquement un masque à l'aide de la segmentation du premier plan. Utilisez ce paramètre pour modifier le contenu au premier plan, par exemple pour supprimer des objets au premier plan (suppression par inpainting).MASK_MODE_SEMANTIC: génère automatiquement un masque à l'aide d'une segmentation sémantique basée sur les classes de segmentation que vous spécifiez dans le tableaumaskImageConfig.maskClasses. Par exemple :"maskImageConfig": { "maskMode": "MASK_MODE_SEMANTIC", "maskClasses": [175, 176], // bicycle, car "dilation": 0.01 }
- MASK_DILATION : float. Pourcentage de la largeur de l'image à utiliser pour dilater ce masque. Nous vous recommandons de définir
0.01comme valeur pour compenser les masques d'entrée imparfaits. - EDIT_STEPS : entier. Nombre d'étapes d'échantillonnage pour le modèle de base. Pour effectuer une suppression par inpainting, commencez avec
12étapes. Augmentez le nombre d'étapes jusqu'à la limite maximale de75si la qualité ne répond pas à vos exigences. L'augmentation du nombre d'étapes augmente également la latence des requêtes. - EDIT_IMAGE_COUNT : nombre d'images modifiées. Valeurs entières acceptées : 1 à 4. Valeur par défaut : 4.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
Corps JSON de la requête :
{ "instances": [ { "prompt": "", "referenceImages": [ { "referenceType": "REFERENCE_TYPE_RAW", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "B64_BASE_IMAGE" } }, { "referenceType": "REFERENCE_TYPE_MASK", "referenceId": 2, "maskImageConfig": { "maskMode": "MASK_MODE", "dilation": MASK_DILATION } } ] } ], "parameters": { "editConfig": { "baseSteps": EDIT_STEPS }, "editMode": "EDIT_MODE_INPAINT_REMOVAL", "sampleCount": EDIT_IMAGE_COUNT } }Pour envoyer votre requête, choisissez l'une des options suivantes :
L'exemple suivant représente la réponse à une requête aveccurl
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/imagen-3.0-capability-001: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/imagen-3.0-capability-001:predict" | Select-Object -Expand Content"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" } ] }Limites
Les sections suivantes expliquent les limites de la fonctionnalité Supprimer des objets d'Imagen.
Pixels modifiés
Les pixels générés par le modèle qui ne se trouvent pas dans le masque sont générés à la résolution du modèle (par exemple, 1024 x 1024) et ne sont pas garantis d'être identiques à l'entrée. Cela peut entraîner de légères modifications de l'image générée.
Pour préserver parfaitement l'image, nous vous recommandons de fusionner l'image générée avec l'image d'entrée à l'aide du masque. Le blending est généralement nécessaire si la résolution de l'image d'entrée est de 2K ou plus.
Limitation de la suppression
De petits objets adjacents au masque peuvent également être supprimés. Pour de meilleurs résultats, rendez le masque aussi précis que possible.
La suppression de grandes zones de ciel dans les images en extérieur peut entraîner des artefacts indésirables. Pour obtenir les meilleurs résultats possible, nous vous recommandons de fournir une requête.
Étapes suivantes
Consultez des articles concernant Imagen et d'autres produits d'IA générative sur Vertex AI :
- Guide du développeur pour bien démarrer avec Imagen 3 sur Vertex AI
- Nouveaux outils et modèles multimédias génératifs, conçus avec et pour les créateurs
- Nouveautés dans Gemini : Gems personnalisés et génération d'images améliorée avec Imagen 3
- Google DeepMind : Imagen 3 – Notre modèle texte-vers-image le plus puissant
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/12/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/12/04 (UTC)."],[],[]]