Gerar vídeo no Python
Dica
Consulte a guia Texto e imagens para obter mais detalhes!
Para criar aplicativos que geram vídeos programaticamente, você pode usar o SDK do Python OpenAI com sua implantação do Sora 2 no Microsoft Foundry. A geração de vídeo é um processo assíncrono: você envia uma tarefa, verifica o status e baixa o resultado quando ele está pronto.
Gerar um vídeo
A geração de vídeo segue um padrão de três etapas: criar o trabalho, sondar para conclusão e baixar 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 de uma imagem de referência
Para usar uma imagem como um quadro inicial, passe-a para o input_reference parâmetro. A resolução da imagem deve corresponder ao tamanho do vídeo de destino:
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
No momento, as imagens de referência que contêm rostos humanos são rejeitadas. Em vez disso, use imagens de paisagens, objetos ou caracteres animados.
Remixar um vídeo existente
Para modificar um vídeo existente, preservando sua estrutura, use o método remix com a ID do vídeo original:
video = client.videos.remix(
video_id="video_abc123",
prompt="Change the color palette to warm sunset tones",
)
Manipular estados de tarefas
Trabalhos de vídeo podem retornar esses valores de status:
| Situação | Descrição |
|---|---|
queued |
A tarefa está aguardando processamento |
in_progress |
O vídeo está sendo gerado |
completed |
O vídeo está pronto para download |
failed |
Falha na geração (verificar detalhes do erro) |
cancelled |
O trabalho foi cancelado |
Quando um trabalho falha, verifique video.error para detalhes sobre o que deu errado.
Principais considerações
- Limites de taxa: você pode executar até dois trabalhos de criação de vídeo simultaneamente
- Expiração da tarefa: 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 de destino
- Filtragem de conteúdo: os prompts estão sujeitos à moderação de conteúdo; conteúdo prejudicial não gerará
No exercício a seguir, você aplicará essas técnicas para criar um aplicativo de geração de vídeo completo.