Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten genererar du videoklipp med hjälp av Azure OpenAI-tjänsten. I exemplet används Sora-modellen, som är en videogenereringsmodell som skapar realistiska och fantasifulla videoscener från textinstruktioner och/eller bild- eller videoindata. Den här guiden visar hur du skapar ett videogenereringsjobb, söker efter dess status och hämtar den genererade videon.
Mer information om videogenerering finns i Begrepp för videogenerering.
Förutsättningar
- Ett Azure-abonnemang. Skapa en kostnadsfritt.
- En Azure OpenAI-resurs som skapats i en region som stöds. Se Regiontillgänglighet. Mer information finns i Skapa en resurs och distribuera en modell med Azure OpenAI.
Gå till Azure AI Foundry-portalen
Bläddra till Azure AI Foundry-portalen och logga in med de autentiseringsuppgifter som är associerade med din Azure OpenAI-resurs. Under eller efter inloggningsarbetsflödet väljer du lämplig katalog, Azure-prenumeration och Azure OpenAI-resurs.
På landningssidan för Azure AI Foundry skapar eller väljer du ett nytt projekt. Gå till sidan Modeller + slutpunkter i det vänstra navigeringsfältet . Välj Distribuera modell och välj sedan Sora-videogenereringsmodellen i listan. Slutför distributionsprocessen.
På modellens sida väljer du Öppna på lekplatsen.
Prova videogenerering
Börja utforska Sora-videogenereringen utan kod via videolekplatsen. Ange din fråga i textrutan och välj Generera. När den AI-genererade videon är klar visas den på sidan.
Anmärkning
API:erna för innehållsgenerering levereras med ett filter för innehållsmoderering. Om Azure OpenAI identifierar din fråga som skadligt innehåll returnerar den inte en genererad video. Mer information finns i Innehållsfiltrering.
I Video Playground kan du också visa Python- och cURL-kodexempel, som är förfyllda enligt dina inställningar. Välj kodknappen överst i videouppspelningsfönstret. Du kan använda den här koden för att skriva ett program som slutför samma uppgift.
Förutsättningar
- Ett Azure-abonnemang. Skapa en kostnadsfritt.
- Python 3.8 eller senare version. Vi rekommenderar att du använder Python 3.10 eller senare, men minst Python 3.8 krävs. Om du inte har en lämplig version av Python installerad kan du följa anvisningarna i VS Code Python-självstudien för det enklaste sättet att installera Python på operativsystemet.
- En Azure OpenAI-resurs som skapats i en av de regioner som stöds. Mer information om regiontillgänglighet finns i dokumentationen för modeller och versioner.
- Sedan måste du distribuera en
soramodell med din Azure OpenAI-resurs. Mer information finns i Skapa en resurs och distribuera en modell med Azure OpenAI.
Krav för Microsoft Entra-ID
För den rekommenderade nyckellösa autentiseringen med Microsoft Entra-ID måste du:
- Installera Azure CLI som används för nyckellös autentisering med Microsoft Entra-ID.
-
Cognitive Services UserTilldela rollen till ditt användarkonto. Du kan tilldela roller i Azure-portalen under Åtkomstkontroll (IAM)>Lägg till rolltilldelning.
Ställ in
Skapa en ny mapp
video-generation-quickstartoch gå till snabbstartsmappen med följande kommando:mkdir video-generation-quickstart && cd video-generation-quickstartSkapa en virtuell miljö. Om du redan har Python 3.10 eller senare installerat kan du skapa en virtuell miljö med hjälp av följande kommandon:
När du aktiverar Python-miljön innebär det att när du kör
pythonellerpipfrån kommandoraden använder du sedan Python-tolken.venvsom finns i mappen för ditt program. Du kan användadeactivatekommandot för att avsluta den virtuella python-miljön och senare återaktivera den när det behövs.Tips/Råd
Vi rekommenderar att du skapar och aktiverar en ny Python-miljö som ska användas för att installera de paket som du behöver för den här självstudien. Installera inte paket i din globala Python-installation. Du bör alltid använda en virtuell miljö eller conda-miljö när du installerar Python-paket, annars kan du avbryta den globala installationen av Python.
För den rekommenderade nyckellösa autentiseringen med Microsoft Entra-ID installerar du
azure-identitypaketet med:pip install azure-identity
Hämta resursinformation
Du måste hämta följande information för att autentisera ditt program med din Azure OpenAI-resurs:
| Variabelnamn | Värde |
|---|---|
AZURE_OPENAI_ENDPOINT |
Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure-portalen. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns underResurshanteringsmodelldistributioner> i Azure-portalen. |
Läs mer om nyckellös autentisering och inställning av miljövariabler.
Generera video med Sora
Du kan generera en video med Sora-modellen genom att skapa ett videogenereringsjobb, söka efter dess status och hämta den genererade videon. Följande kod visar hur du gör detta via REST-API:et med Python.
Skapa filen och lägg till följande kod för att autentisera resursen
sora-quickstart.py:import requests import base64 import os from azure.identity import DefaultAzureCredential # Set environment variables or edit the corresponding values here. endpoint = os.environ['AZURE_OPENAI_ENDPOINT'] # Keyless authentication credential = DefaultAzureCredential() token = credential.get_token("https://cognitiveservices.azure.com/.default") api_version = 'preview' headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" }Skapa videogenereringsjobbet. Du kan bara skapa den från en textprompt eller från en indatabild och en textprompt.
# 1. Create a video generation job create_url = f"{endpoint}/openai/v1/video/generations/jobs?api-version={api_version}" body = { "prompt": "A cat playing piano in a jazz bar.", "width": 480, "height": 480, "n_seconds": 5, "model": "sora" } response = requests.post(create_url, headers=headers, json=body) response.raise_for_status() print("Full response JSON:", response.json()) job_id = response.json()["id"] print(f"Job created: {job_id}") # 2. Poll for job status status_url = f"{endpoint}/openai/v1/video/generations/jobs/{job_id}?api-version={api_version}" status=None while status not in ("succeeded", "failed", "cancelled"): time.sleep(5) # Wait before polling again status_response = requests.get(status_url, headers=headers).json() status = status_response.get("status") print(f"Job status: {status}") # 3. Retrieve generated video if status == "succeeded": generations = status_response.get("generations", []) if generations: print(f"✅ Video generation succeeded.") generation_id = generations[0].get("id") video_url = f"{endpoint}/openai/v1/video/generations/{generation_id}/content/video?api-version={api_version}" video_response = requests.get(video_url, headers=headers) if video_response.ok: output_filename = "output.mp4" with open(output_filename, "wb") as file: file.write(video_response.content) print(f'Generated video saved as "{output_filename}"') else: raise Exception("No generations found in job result.") else: raise Exception(f"Job didn't succeed. Status: {status}")Kör Python-filen.
python sora-quickstart.pyVänta en stund för att få svaret.
Utgång
Utdata visar det fullständiga svaret JSON från begäran om att skapa videogenereringsjobb, inklusive jobb-ID och status.
{
"object": "video.generation.job",
"id": "task_01jwcet0eje35tc5jy54yjax5q",
"status": "queued",
"created_at": 1748469875,
"finished_at": null,
"expires_at": null,
"generations": [],
"prompt": "A cat playing piano in a jazz bar.",
"model": "sora",
"n_variants": 1,
"n_seconds": 5,
"height": 480,
"width": 480,
"failure_reason": null
}
Den genererade videon sparas som output.mp4 i den aktuella katalogen.
Job created: task_01jwcet0eje35tc5jy54yjax5q
Job status: preprocessing
Job status: running
Job status: processing
Job status: succeeded
✅ Video generation succeeded.
Generated video saved as "output.mp4"
Rensa resurser
Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen. Innan du tar bort resursen måste du först ta bort alla distribuerade modeller.
Relaterat innehåll
- Läs mer om distributionstyper för Azure OpenAI.
- Läs mer om Azure OpenAI-kvoter och -gränser.