Améliorer la résolution des images avec Imagen

Vous pouvez utiliser Imagen sur Vertex AI pour augmenter la résolution des images, ce qui augmente leur taille sans perte de qualité.

Les modèles suivants sont compatibles avec l'upscaling d'images :

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  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 role (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 role (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.

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services Google Cloud et aux API, vous n'avez pas besoin de configurer l'authentification.

    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 .

Augmenter la résolution d'une image

REST

Pour en savoir plus sur l'API Imagen, consultez les ressources suivantes :

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

  • REGION : région dans laquelle se trouve votre projet. Pour en savoir plus sur les régions compatibles, consultez Emplacements de l'IA générative sur Vertex AI.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • BASE64_SUBJECT_IMAGE : image encodée en base64 de l'image du sujet.
  • ADD_WATERMARK : valeur booléenne facultative. Définissez la valeur sur true pour activer les images avec filigrane ou sur false pour les désactiver. La valeur par défaut est true.
  • GCS_IMAGE_PATH : chemin d'accès Cloud Storage à un fichier image.
  • GCS_OUTPUT_PATH : chemin d'accès Cloud Storage pour stocker la sortie générée.
  • OUTPUT_MIMETYPE : chaîne facultative qui définit le type de fichier de sortie de l'image. Les valeurs suivantes sont acceptées : "image/png" ou "image/jpeg". La valeur par défaut est "image/png".
  • COMPRESSION_QUALITY : valeur entière facultative qui spécifie le niveau de détail conservé par le modèle pour les images JPEG. La plage de valeurs suivante est acceptée : 0 - 100. Plus la valeur est élevée, plus le niveau de compression est élevé. La valeur par défaut est 75.
  • UPSCALE_FACTOR : facteur de scaling pour l'image améliorée. La résolution finale de l'image après application du facteur d'upscaling ne doit pas dépasser 17 mégapixels. Les valeurs suivantes sont acceptées :
    • "x2"
    • "x3"
    • "x4"

Méthode HTTP et URL :

POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-4.0-upscale-preview:predict

Corps JSON de la requête :

{
  "instances": [
    {
      "prompt": "Upscale the image",
      "image": {
        // use one of the following to specify the image to upscale
        "bytesBase64Encoded": "BASE64_SUBJECT_IMAGE"
        "gcsUri": "GCS_IMAGE_PATH"
        // end of base image input options
      },
    }
  ],
  "parameters": {
    "mode": "upscale",
    "storageUri": "GCS_OUTPUT_PATH",
    "outputOptions": {
      "mimeType": "OUTPUT_MIMETYPE",
      "compressionQuality": COMPRESSION_QUALITY
    },
    "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://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-4.0-upscale-preview: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://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-4.0-upscale-preview:predict" | Select-Object -Expand Content
La requête renvoie un objet image. Dans cet exemple, un objet image est renvoyé en tant qu'objet de prédiction avec une image encodée en base64.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}


Étapes suivantes

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