Générer des images à partir d'une vidéo avec Gemini

Vous pouvez utiliser Gemini pour générer des images à partir d'une vidéo, ce qui peut être utile pour créer une image pour une miniature de vidéo. Les interfaces compatibles incluent la console Google Cloud et l'API Agent Platform.

Les modèles Gemini suivants sont compatibles avec la génération d'images à partir d'une vidéo :

Cliquez pour développer la liste des modèles compatibles

Générer des images à partir d'une vidéo

Vous trouverez ci-dessous la procédure à suivre pour générer des images à partir d'une vidéo à l'aide d'Agent Studio ou de l'API.

Pour en savoir plus sur les bonnes pratiques concernant les prompts, consultez Concevoir des prompts multimodaux.

Console

Pour générer des images à partir d'une vidéo avec Gemini, procédez comme suit :

  1. Dans la section "Agent Platform" de la console Google Cloud , accédez à Agent Studio > Image.

    Accéder à Vertex AI Studio

  2. Dans Paramètres du modèle, sélectionnez l'un des modèles affichés.

  3. Dans la zone de texte Prompt, cliquez sur le bouton add Ajouter, puis sélectionnez la source du fichier vidéo :

    Importer

    Sélectionnez le fichier que vous souhaitez importer, puis cliquez sur Ouvrir.

    À partir d'une URL

    Saisissez l'URL du fichier que vous souhaitez utiliser, puis cliquez sur Insérer.

    YouTube

    Saisissez l'URL de la vidéo YouTube que vous souhaitez utiliser, puis cliquez sur Insérer.

    Vous pouvez choisir n'importe quelle vidéo publique ou une vidéo appartenant au compte dont vous vous êtes servi pour vous connecter à la console Google Cloud .

    Cloud Storage

    Sélectionnez le bucket, puis le fichier que vous souhaitez importer, et cliquez sur Sélectionner.

    Google Drive

    1. Choisissez un compte et autorisez Vertex AI Studio à y accéder la première fois que vous sélectionnez cette option. Vous pouvez importer plusieurs fichiers, à condition de ne pas dépasser une taille totale de 10 Mo. La taille d'un seul fichier ne peut pas dépasser 7 Mo.
    2. Cliquez sur le fichier que vous souhaitez ajouter.
    3. Cliquez sur Sélectionner.

      La vignette du fichier s'affiche dans le volet Prompt. Le nombre total de jetons est également indiqué. Si les données de votre prompt dépassent la limite de jetons, les jetons sont tronqués et ne sont pas inclus dans le traitement de vos données.

  4. Rédigez une description de l'image que vous souhaitez générer dans la zone de texte Prompt.

  5. Cliquez sur le bouton Prompt ().

Gemini génère une image en fonction de votre description. Ce processus prend quelques secondes, mais peut être relativement plus lent en fonction de la capacité.

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 Google 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_ENTERPRISE=True

from google import genai
from google.genai.types import GenerateContentConfig, Modality, Part
from PIL import Image
from io import BytesIO

client = genai.Client()

# A video on 'The ABCs of agent building'
video = "https://www.youtube.com/watch?v=rjoMZyxncUI"

response = client.models.generate_content(
    model="gemini-3.1-flash-image",
    contents=[
        Part.from_uri(
            file_uri=video,
            mime_type="video/mp4"
        ), 
        "Generate an infographic of the topics covered in this video."
    ],
    config=GenerateContentConfig(response_modalities=[Modality.TEXT, Modality.IMAGE]),
)
for part in response.candidates[0].content.parts:
    if part.text:
        print(part.text)
    elif part.inline_data:
        image = Image.open(BytesIO((part.inline_data.data)))
        image.save("output_folder/video-image.png")

REST

Une fois que vous avez configuré votre environnement, vous pouvez utiliser REST pour tester un prompt textuel. L'exemple suivant envoie une requête au point de terminaison du modèle de l'éditeur.

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

  • PROJECT_ID : ID de votre projet.
  • FILE_URI : URI ou URL du fichier à inclure dans la requête. Les valeurs acceptées incluent les suivantes :

    • URI du bucket Cloud Storage : l'objet doit être lisible publiquement ou se trouver dans le même projet Google Cloud que celui qui envoie la requête.
    • URL HTTP : l'URL du fichier doit être lisible publiquement. Vous pouvez spécifier un fichier vidéo, un fichier audio et jusqu'à 10 fichiers image par requête. Les fichiers audio, les fichiers vidéo et les documents ne doivent pas dépasser 15 Mo.
    • URL de la vidéo YouTube : la vidéo YouTube doit appartenir au compte que vous avez utilisé pour vous connecter à la console Google Cloud ou être publique. Une seule URL de vidéo YouTube est acceptée par requête.

    Lorsque vous spécifiez un fileURI, vous devez également indiquer le type de contenu multimédia (mimeType) du fichier. Si VPC Service Controls est activé, vous ne pouvez pas spécifier l'URL du fichier multimédia dans fileURI.

    Si vous ne disposez pas de fichier vidéo dans Cloud Storage, vous pouvez utiliser le fichier suivant, accessible publiquement : gs://cloud-samples-data/video/animals.mp4 avec un type MIME video/mp4. Pour voir cette vidéo, ouvrez l'exemple de fichier MP4.

  • MIME_TYPE : type de contenu du fichier spécifié dans les champs data ou fileUri. Les valeurs acceptées incluent les suivantes :

    Cliquez pour développer les types MIME.

    • application/pdf
    • audio/mpeg
    • audio/mp3
    • audio/wav
    • image/png
    • image/jpeg
    • image/webp
    • text/plain
    • video/mov
    • video/mpeg
    • video/mp4
    • video/mpg
    • video/avi
    • video/wmv
    • video/mpegps
    • video/flv
  • TEXT : instructions textuelles à inclure dans le prompt. Par exemple, What is in the video?

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. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

cat > request.json << 'EOF'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
EOF

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

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/global/publishers/google/models/gemini-3.1-flash-image:generateContent"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :

@'
{
  "contents": {
    "role": "USER",
    "parts": [
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      },
      {
        "text": "TEXT"
      }
    ]
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Exécutez ensuite la commande suivante pour envoyer votre requête REST :

$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/global/publishers/google/models/gemini-3.1-flash-image:generateContent" | Select-Object -Expand Content
Voici un exemple de réponse :
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "IMAGE_BASE64_BYTES"
            }
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 350,
    "candidatesTokenCount": 258,
    "totalTokenCount": 608
  }
}
Notez les points suivants dans l'URL de cet exemple :
  • Utilisez la méthode generateContent pour demander que la réponse soit renvoyée une fois qu'elle a été entièrement générée. Pour réduire la perception de la latence auprès d'un public humain, affichez la réponse progressivement à mesure qu'elle est générée à l'aide de la méthode streamGenerateContent.
  • L'ID du modèle multimodal se trouve à la fin de l'URL avant la méthode (par exemple, gemini-3.5-flash). Cet exemple peut également s'appliquer à d'autres modèles.
  • Lorsque vous utilisez un point de terminaison d'API régional (par exemple, us-central1), la région de l'URL du point de terminaison détermine l'emplacement où la requête est traitée. Tout emplacement en conflit dans le chemin d'accès de la ressource est ignoré.

Étape suivante

Pour en savoir plus sur la génération d'images Gemini, consultez les liens suivants :