Generieren von Videos in Python
Tip
Weitere Details finden Sie auf der Registerkarte "Text und Bilder ".
Um Anwendungen zu erstellen, die Videos programmgesteuert generieren, können Sie das OpenAI Python SDK mit Ihrer Sora 2-Bereitstellung in Microsoft Foundry verwenden. Die Videogenerierung ist ein asynchroner Prozess– Sie übermitteln einen Auftrag, fordern den Status ab und laden das Ergebnis herunter, wenn es bereit ist.
Generieren eines Videos
Die Videogenerierung folgt einem dreistufigen Muster: Erstellen Sie den Job, fragen Sie nach dem Abschluss und laden Sie das Ergebnis herunter.
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")
Generieren eines Videos aus einem Referenzbild
Um ein Bild als Startframe zu verwenden, übergeben Sie es an den input_reference Parameter. Die Bildauflösung muss mit der Zielvideogröße übereinstimmen:
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"),
)
Hinweis
Referenzbilder, die menschliche Gesichter enthalten, werden derzeit abgelehnt. Verwenden Sie stattdessen Bilder von Landschaften, Objekten oder animierten Zeichen.
Remixen eines vorhandenen Videos
Wenn Sie ein vorhandenes Video ändern möchten, während seine Struktur beibehalten wird, verwenden Sie die Remixmethode mit der ID des ursprünglichen Videos:
video = client.videos.remix(
video_id="video_abc123",
prompt="Change the color palette to warm sunset tones",
)
Job-Status verarbeiten
Videoaufträge können diese Statuswerte zurückgeben:
| Status | Beschreibung |
|---|---|
queued |
Auftrag wartet auf die Verarbeitung |
in_progress |
Video wird generiert |
completed |
Video kann heruntergeladen werden |
failed |
Fehler bei der Generierung (Fehlerdetails überprüfen) |
cancelled |
Auftrag wurde abgebrochen |
Wenn ein Auftrag nicht erfolgreich ist, überprüfen Sie video.error auf Einzelheiten dazu, was schiefgelaufen ist.
Wichtige Überlegungen
- Geschwindigkeitsbeschränkungen: Sie können bis zu zwei Videoerstellungsaufträge gleichzeitig ausführen.
- Auftragsablauf: Abgeschlossene Videos stehen 24 Stunden lang zum Download zur Verfügung.
- Auflösungsanforderungen: Referenzbilder müssen exakt mit der Zielvideoauflösung übereinstimmen
- Inhaltsfilterung: Aufforderungen unterliegen der Inhaltsmoderation; Schädliche Inhalte werden nicht generiert
In der folgenden Übung wenden Sie diese Techniken an, um eine vollständige Videogenerierungsanwendung zu erstellen.