Generowanie wideo w języku Python

Ukończone

Wskazówka

Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .

Aby programowo tworzyć aplikacje generujące filmy wideo, możesz użyć zestawu SDK języka Python openAI z wdrożeniem rozwiązania Sora 2 w rozwiązaniu Microsoft Foundry. Generowanie wideo to proces asynchroniczny — wysyłasz zadanie, sprawdzasz status i pobierasz wynik, gdy będzie gotowy.

Generowanie wideo

Generowanie wideo przebiega według trzyetapowego procesu: utwórz zadanie, sprawdzaj, czy zostało ukończone, i pobierz rezultat.

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

Generowanie wideo na podstawie obrazu referencyjnego

Aby użyć obrazu jako ramki początkowej, należy przekazać go do parametru input_reference. Rozdzielczość obrazu musi być zgodna z docelowym rozmiarem wideo:

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

Uwaga / Notatka

Obrazy referencyjne zawierające ludzkie twarze są obecnie odrzucane. Zamiast tego używaj obrazów krajobrazów, obiektów lub animowanych postaci.

Ponowne tworzenie istniejącego klipu wideo

Aby zmodyfikować istniejące wideo przy zachowaniu jego struktury, użyj metody remix z identyfikatorem oryginalnego wideo:

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

Obsługa stanów zadań

Zadania wideo mogą zwracać następujące wartości stanu:

Status Opis
queued Zadanie czeka na przetworzenie
in_progress Trwa generowanie wideo
completed Wideo jest gotowe do pobrania
failed Generowanie nie powiodło się (sprawdź szczegóły błędu)
cancelled Zadanie zostało anulowane

Gdy zadanie zakończy się niepowodzeniem, sprawdź video.error szczegóły dotyczące tego, co poszło nie tak.

Kluczowe zagadnienia

  • Limity szybkości: jednocześnie można uruchomić do dwóch zadań tworzenia wideo
  • Wygaśnięcie zadania: Ukończone klipy wideo są dostępne do pobrania przez 24 godziny
  • Wymagania dotyczące rozdzielczości: Obrazy referencyjne muszą być dokładnie zgodne z docelową rozdzielczością wideo
  • Filtrowanie treści: polecenia podlegają moderowaniu treści; szkodliwa treść nie będzie generowana

W poniższym ćwiczeniu zastosujesz te techniki, aby utworzyć pełną aplikację generowania wideo.