Generera video i Python
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.