Generare video in Python
Tip
Per altri dettagli, vedi la scheda Testo e immagini .
Per compilare applicazioni che generano video a livello di codice, è possibile usare OpenAI Python SDK con la distribuzione di Sora 2 in Microsoft Foundry. La generazione di video è un processo asincrono: si invia una richiesta, si verifica lo stato e si scarica il risultato quando è pronto.
Generare un video
La generazione di video segue un modello in tre passaggi: creare il processo, eseguire il polling per il completamento e scaricare il risultato.
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")
Generare video da un'immagine di riferimento
Per usare un'immagine come frame iniziale, passarla al input_reference parametro . La risoluzione dell'immagine deve corrispondere alle dimensioni del video di destinazione:
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"),
)
Annotazioni
Le immagini di riferimento contenenti visi umani sono attualmente rifiutate. Usare invece immagini di paesaggi, oggetti o caratteri animati.
Remixare un video esistente
Per modificare un video esistente mantenendone la struttura, usare il metodo remix con l'ID del video originale:
video = client.videos.remix(
video_id="video_abc123",
prompt="Change the color palette to warm sunset tones",
)
Gestire gli stati del lavoro
I processi video possono restituire questi valori di stato:
| Condizione | Descrizione |
|---|---|
queued |
Il lavoro è in attesa di essere elaborato |
in_progress |
Il video viene generato |
completed |
Il video è pronto per il download |
failed |
Generazione non riuscita (controllare i dettagli dell'errore) |
cancelled |
Attività annullata |
Quando un processo fallisce, controlla video.error per informazioni dettagliate su cosa è andato storto.
Considerazioni essenziali
- Limiti di frequenza: è possibile eseguire fino a due processi di creazione video contemporaneamente
- Scadenza del lavoro: i video completati sono disponibili per il download per 24 ore
- Requisiti di risoluzione: le immagini di riferimento devono corrispondere esattamente alla risoluzione video di destinazione
- Filtro del contenuto: i prompt sono soggetti alla moderazione del contenuto; contenuto dannoso non genererà
Nell'esercizio seguente si applicheranno queste tecniche per creare un'applicazione completa per la generazione di video.