Genera imágenes a partir de videos con Gemini

Puedes usar Gemini para generar imágenes a partir de un video, lo que puede ser útil para crear una imagen para la miniatura de un video. Las interfaces compatibles incluyen la Cloud de Confiance consola y la API de Agent Platform.

Los siguientes modelos de Gemini admiten la generación de imágenes a partir de un video:

Haz clic para expandir los modelos compatibles

Genera imágenes a partir de video

A continuación, se muestra cómo generar imágenes a partir de video con Agent Studio o con la API.

Para obtener más información sobre las prácticas recomendadas para las instrucciones, consulta Diseña multimodales instrucciones.

Console

Para generar imágenes a partir de video con Gemini, haz lo siguiente:

  1. En la sección Agent Platform de la Cloud de Confiance consola, ve a Agent Studio > Image.

    Ir a Vertex AI Studio

  2. En Configuración del modelo, selecciona uno de los modelos que se muestran.

  3. En el área de texto Instrucción , haz clic en el Agregar Agregar y, luego, selecciona la fuente del archivo de video:

    Subir

    Selecciona el archivo que quieras subir y haz clic en Abrir.

    Por URL

    Ingresa la URL del archivo que quieres usar y haz clic en Insertar.

    YouTube

    Ingresa la URL del video de YouTube que quieres usar y haz clic en Insertar.

    Puedes usar cualquier video público o uno que pertenezca a la cuenta que usaste para acceder a la Cloud de Confiance consola.

    Cloud Storage

    Selecciona el bucket y, luego, el archivo del bucket que deseas importar y haz clic en Seleccionar.

    Google Drive

    1. Elige una cuenta y da consentimiento a Vertex AI Studio para acceder a tu cuenta la primera vez que selecciones esta opción. Puedes subir varios archivos con un tamaño total de hasta 10 MB. Un solo archivo no puede superar los 7 MB.
    2. Haz clic en el archivo que quieras agregar.
    3. Haz clic en Seleccionar.

      La miniatura del archivo se muestra en el panel Instrucción. También se muestra la cantidad total de tokens. Si los datos de la instrucción superan el límite de tokens, los tokens se truncan y no se incluyen en el procesamiento de tus datos.

  4. Escribe una descripción de la imagen que quieres generar en el área de texto del área de texto Instrucción.

  5. Haz clic en el botón Instrucción ().

Gemini genera una imagen en función de tu descripción. Este proceso tarda unos segundos, pero puede ser comparativamente más lento según la capacidad.

Python

Instalar

pip install --upgrade google-genai

Para obtener más información, consulta la documentación de referencia del SDK.

Configura las variables de entorno para usar el SDK de IA generativa de Google con 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

Después de configurar tu entorno, puedes usar REST para probar una instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Es tu ID del proyecto.
  • FILE_URI: Es el URI o la URL del archivo que se incluirá en la instrucción. Los valores aceptables son los siguientes:

    • URI del bucket de Cloud Storage: El objeto debe poder leerse de forma pública o residir en el mismo Cloud de Confiance proyecto que envía la solicitud.
    • URL HTTP: La URL del archivo debe ser legible públicamente. Puedes especificar un archivo de video, un archivo de audio y hasta 10 archivos de imagen por solicitud. Los archivos de audio, los archivos de video y los documentos no pueden superar los 15 MB.
    • URL del video de YouTube:El video de YouTube debe ser propiedad de la cuenta que usaste para acceder a la Cloud de Confiance consola o ser público. Solo se admite una URL de video de YouTube por solicitud.

    Cuando especifiques un fileURI, también debes especificar el tipo de medio (mimeType) del archivo. Si los Controles del servicio de VPC están habilitados, no se admite especificar una URL de archivo multimedia para fileURI no es compatible.

    Si no tienes un archivo de video en Cloud Storage, puedes usar el siguiente archivo disponible de forma pública: gs://cloud-samples-data/video/animals.mp4 con un tipo de MIME de video/mp4. Para ver este video, abre el MP4 de muestra.

  • MIME_TYPE: El tipo de medio del archivo especificado en los campos data o fileUri. Los valores aceptables son los siguientes:

    Haz clic para expandir los tipos de 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: Las instrucciones de texto que se incluirán en el mensaje. Por ejemplo, What is in the video?

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

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

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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

Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

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

Luego, ejecuta el siguiente comando para enviar tu solicitud de 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
 
Ten en cuenta lo siguiente en la URL para esta muestra:
  • Usa el método generateContent para solicitar que la respuesta se muestre después de que se haya generado por completo. Para reducir la percepción de latencia a un público humano, transmite la respuesta a medida que se genera; para ello, usa el streamGenerateContent método.
  • El ID del modelo multimodal se encuentra al final de la URL antes del método (por ejemplo, gemini-3.5-flash). Esta muestra también puede admitir otros modelos.
  • Cuando usas un extremo de API regional (por ejemplo, us-central1), la región de la URL del endpoint determina dónde se procesa la solicitud. Se ignora cualquier ubicación en conflicto en la ruta de acceso del recurso.

Próximos pasos

Consulta los siguientes vínculos para obtener más información sobre la generación de imágenes de Gemini: