Gerar vídeo em Python

Concluído

Tip

Consulte a guia Texto e imagens para obter mais detalhes!

Para construir aplicações que gerem vídeos programáticamente, pode usar o SDK OpenAI Python com a sua implementação do Sora 2 no Microsoft Foundry. A geração de vídeo é um processo assíncrono — submetes um trabalho, fazes uma sondagem para saber o estado e descarregas o resultado quando está pronto.

Gerar um vídeo

A geração de vídeo segue um padrão de três etapas: criar a tarefa, verificar a conclusão e descarregar o resultado.

import time

# Create the video generation job
video = client.videos.create(
    model="sora-2",
    prompt="A robot walks through a rainy city street at dusk, neon signs reflecting in puddles",
    size="1280x720",
    seconds="4",
)

print(f"Video creation started. ID: {video.id}")

# Poll for completion
while video.status not in ["completed", "failed", "cancelled"]:
    print(f"Status: {video.status}. Waiting...")
    time.sleep(20)
    video = client.videos.retrieve(video.id)

# Download when complete
if video.status == "completed":
    content = client.videos.download_content(video.id, variant="video")
    content.write_to_file("output.mp4")
    print("Video saved to output.mp4")

Gerar vídeo a partir de uma imagem de referência

Para usar uma imagem como frame inicial, passa-a para o input_reference parâmetro. A resolução da imagem deve corresponder ao tamanho alvo do vídeo:

video = client.videos.create(
    model="sora-2",
    prompt="The camera slowly pans across the landscape as clouds drift overhead",
    size="1280x720",
    seconds="4",
    input_reference=open("landscape.png", "rb"),
)

Observação

Imagens de referência que contêm rostos humanos são atualmente rejeitadas. Use imagens de paisagens, objetos ou personagens animadas em vez disso.

Remix de um vídeo existente

Para modificar um vídeo existente preservando a sua estrutura, use o método de remix com o ID do vídeo original:

video = client.videos.remix(
    video_id="video_abc123",
    prompt="Change the color palette to warm sunset tones",
)

Lidar com os estados da tarefa

Os empregos em vídeo podem devolver estes valores de status:

Situação Descrição
queued O trabalho está à espera de ser processado
in_progress Está a ser gerado vídeo
completed O vídeo está pronto para download
failed Geração falhada (verificar detalhes do erro)
cancelled O trabalho foi cancelado

Quando um trabalho falha, verifique em video.error os detalhes sobre o que correu mal.

Principais considerações

  • Limites de taxa: Pode executar até dois trabalhos de criação de vídeo simultaneamente
  • Expiração da tarefa: Os vídeos concluídos estão disponíveis para download por 24 horas
  • Requisitos de resolução: As imagens de referência devem corresponder exatamente à resolução de vídeo alvo
  • Filtragem de conteúdos: Os prompts estão sujeitos a moderação de conteúdos; conteúdos prejudiciais não serão gerados

No exercício que se segue, aplicará estas técnicas para construir uma aplicação completa de geração de vídeo.