Generare video in Python

Completato

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.