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. Cela peut être utile pour créer une image pour la miniature d'une vidéo. Les interfaces compatibles incluent la Cloud de Confiance console et l'API Agent Platform.

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

Cliquer pour développer les modèles compatibles

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

La procédure suivante explique comment 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 requêtes, consultez la page Concevoir des requêtes multimodales prompts.

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 Cloud de Confiance console, accédez à Agent Studio > Image.

    Accéder à Vertex AI Studio

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

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

    Importation

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

    Via 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 Cloud de Confiance .

    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. Dans la zone de texte Prompt , saisissez une description de l'image que vous souhaitez générer.

  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 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 le prompt. Les valeurs acceptées sont les suivantes :

    • URI du bucket Cloud Storage : l'objet doit être lisible publiquement ou se trouver dans le même Cloud de Confiance projet 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 Cloud de Confiance console 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 :

    Cliquer 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
 
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 à la ressource est ignoré.

Étape suivante

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