Generează video în Python

Finalizat

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.