Supprimer du contenu d'image par inpainting sans masque avec Imagen

Cet exemple montre comment utiliser le modèle Imagen pour modifier des images sans masque. Imagen détecte et crée automatiquement une zone de masque dans laquelle supprimer du contenu d'image.

Exemple de code

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 des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI 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.


import argparse

import vertexai
from vertexai.preview.vision_models import Image, ImageGenerationModel

def edit_image_inpainting_remove_mask_mode(
    project_id: str,
    location: str,
    input_file: str,
    mask_mode: str,
    output_file: str,
    prompt: str,
) -> vertexai.preview.vision_models.ImageGenerationResponse:
    """Edit a local image by removing an object using a mask.
    Args:
      project_id: Google Cloud project ID, used to initialize Vertex AI.
      location: Google Cloud region, used to initialize Vertex AI.
      input_file: Local path to the input image file. Image can be in PNG or JPEG format.
      mask_mode: Mask generation mode ('background', 'foreground', or 'semantic').
      output_file: Local path to the output image file.
      prompt: The optional text prompt describing what you want to see in the edited image.
    """

    vertexai.init(project=project_id, location=location)

    model = ImageGenerationModel.from_pretrained("imagegeneration@006")
    base_img = Image.load_from_file(location=input_file)

    images = model.edit_image(
        base_image=base_img,
        mask_mode=mask_mode,
        prompt=prompt,
        edit_mode="inpainting-remove",
        # Optional parameters
        # For semantic mask mode, define the segmentation class IDs:
        # segmentation_classes=[7], # a cat
        # See https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/image-generation#segment-ids.
    )

    images[0].save(location=output_file)

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

    print(f"Created output image using {len(images[0]._image_bytes)} bytes")

    return images

Étapes suivantes

Pour rechercher et filtrer des exemples de code pour d'autres produits Google Cloud, consultez l'explorateur d'exemples Google Cloud.