Generează video în Python
Sfat
Consultați fila Text și imagini pentru mai multe detalii!
Pentru a construi aplicații care generează videoclipuri programatic, poți folosi SDK-ul Python OpenAI împreună cu implementarea ta Sora 2 în Microsoft Foundry. Generarea de videoclipuri este un proces asincron — trimiți un job, faci un sondaj pentru statut și descarci rezultatul când este gata.
Generează un videoclip
Generarea de videoclipuri urmează un model în trei pași: creează lucrarea, sondează pentru finalizare și descarcă rezultatul.
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")
Generează video pornind de la o imagine de referință
Pentru a folosi o imagine ca cadru de pornire, transmite-o input_reference parametrului. Rezoluția imaginii trebuie să corespundă dimensiunii țintă a videoclipului:
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"),
)
Notă
Imaginile de referință care conțin fețe umane sunt în prezent respinse. Folosește în schimb imagini cu peisaje, obiecte sau personaje animate.
Remixează un videoclip existent
Pentru a modifica un videoclip existent păstrându-i structura, folosește metoda remix cu ID-ul videoclipului original:
video = client.videos.remix(
video_id="video_abc123",
prompt="Change the color palette to warm sunset tones",
)
Gestionează stările jobului
Joburile video pot returna aceste valori de status:
| Status | Descriere |
|---|---|
queued |
Jobul așteaptă să fie procesat |
in_progress |
Se generează video |
completed |
Videoclipul este gata pentru descărcare |
failed |
Generare eșuată (verificați detaliile eroarei) |
cancelled |
Postul a fost anulat |
Când o lucrare eșuează, verifică video.error detalii despre ce a mers prost.
Aspecte cheie
- Limite de viteză: Poți rula până la două joburi de creare video simultan
- Expirarea postului: Videoclipurile finalizate sunt disponibile pentru descărcare timp de 24 de ore
- Cerințe de rezoluție: Imaginile de referință trebuie să corespundă exact rezoluției video țintă
- Filtrarea conținutului: Prompturile sunt supuse moderării conținutului; Conținutul dăunător nu va genera
În exercițiul care urmează, vei aplica aceste tehnici pentru a construi o aplicație completă de generare video.