Generieren von Videos in Python

Abgeschlossen

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.