Generowanie wideo w języku Python
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.