Generera video i Python

Slutförd

Tip

Mer information finns på fliken Text och bilder !

Om du vill skapa program som genererar videor programmatiskt kan du använda OpenAI Python SDK med din Sora 2-distribution i Microsoft Foundry. Videogenerering är en asynkron process – du skickar ett jobb, söker efter status och laddar ned resultatet när det är klart.

Generera en video

Videogenereringen följer ett mönster i tre steg: skapa jobbet, sök efter slutförande och ladda ned resultatet.

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")

Generera video från en referensbild

Om du vill använda en bild som en startram skickar du den till parametern input_reference . Bildupplösningen måste matcha målvideons storlek:

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"),
)

Anmärkning

Referensbilder som innehåller mänskliga ansikten avvisas för närvarande. Använd bilder av landskap, objekt eller animerade tecken i stället.

Remixa en befintlig video

Om du vill ändra en befintlig video samtidigt som dess struktur bevaras använder du remixmetoden med den ursprungliga videons ID:

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

Hantera jobbtillstånd

Videojobb kan returnera dessa statusvärden:

Status Beskrivning
queued Jobbet väntar på att bearbetas
in_progress Video skapas
completed Videon är klar för nedladdning
failed Genereringen misslyckades (kontrollera felinformationen)
cancelled Jobbet avbröts

När ett jobb misslyckas, kontrollerar du video.error för detaljer om vad som gick fel.

Viktiga överväganden

  • Hastighetsbegränsningar: Du kan köra upp till två jobb för att skapa video samtidigt
  • Förfallodatum för jobb: Slutförda videor är tillgängliga för nedladdning i 24 timmar
  • Lösningskrav: Referensbilder måste matcha målvideoupplösningen exakt
  • Innehållsfiltrering: Uppmaningar omfattas av innehållsmoderering, och skadligt innehåll genereras inte

I övningen nedan använder du dessa tekniker för att skapa ett komplett videogenereringsprogram.