Gerar vídeo em Python
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.