Skip to content

Commit 496a52a

Browse files
authored
Merge pull request #5147 from PatrickFarley/sora-build
Sora build
2 parents 42be054 + 4ec8a95 commit 496a52a

File tree

6 files changed

+214
-13
lines changed

6 files changed

+214
-13
lines changed

articles/ai-services/openai/concepts/models.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,19 @@ Once access has been granted, you will need to create a deployment for the model
244244
|`dall-e-3` | East US<br>Australia East<br>Sweden Central|
245245
|`gpt-image-1` | West US 3 (Global Standard) <br> UAE North (Global Standard) |
246246

247+
248+
## Video generation models
249+
250+
Sora is an AI model from OpenAI that can create realistic and imaginative video scenes from text instructions. Sora is in public preview.
251+
252+
253+
254+
### Region availability
255+
256+
| Model | Region |
257+
|---|---|
258+
|`sora` | East US 2|
259+
247260
## Audio models
248261

249262
Audio models in Azure OpenAI are available via the `realtime`, `completions`, and `audio` APIs.
@@ -434,13 +447,25 @@ These models can only be used with Embedding API requests.
434447

435448
[!INCLUDE [Image Generation](../includes/model-matrix/standard-image-generation.md)]
436449

437-
### Image generation models
438-
439450
| Model ID | Max Request (characters) |
440451
| --- | :---: |
441452
| gpt-image-1 | 4,000 |
442453
| dall-e-3 | 4,000 |
443454

455+
# [Video Generation](#tab/standard-video-generations)
456+
457+
### Video generation models
458+
459+
| **Region** | **sora** |
460+
|:-----------------|:---------------------:|
461+
| eastus2 ||
462+
463+
| Model ID | Max Request (characters) |
464+
| --- | :---: |
465+
| sora | 4,000 |
466+
467+
468+
444469
# [Audio](#tab/standard-audio)
445470

446471
### Audio models
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: Sora video generation overview (preview)
3+
description: Learn about Sora, an AI model for generating realistic and imaginative video scenes from text instructions, including safety, limitations, and supported features.
4+
author: PatrickFarley
5+
ms.author: pafarley
6+
manager: nitinme
7+
ms.service: azure-ai-openai
8+
ms.topic: conceptual
9+
ms.date: 05/22/2025
10+
---
11+
12+
# Sora video generation (preview)
13+
14+
Sora is an AI model from OpenAI that can create realistic and imaginative video scenes from text instructions. The model is capable of generating a wide range of video content, including realistic scenes, animations, and special effects. Several video resolutions and durations are supported.
15+
16+
## Supported features
17+
18+
Sora can generate complex scenes with multiple characters, diverse motions, and detailed backgrounds. The model interprets prompts with contextual and physical world understanding, enabling accurate scene composition and character persistence across multiple shots. Sora demonstrates strong language comprehension for prompt interpretation and emotional character generation.
19+
20+
## How it works
21+
22+
Video generation is an asynchronous process. You create a job request with your text prompt and video format specifications, and the model processes the request in the background. You can check the status of the video generation job and, once it has finished, retrieve the generated video via a download URL.
23+
24+
## Best practices for prompts
25+
26+
Users should write text prompts in English or Latin script languages for the best video generation performance.
27+
28+
29+
## Limitations
30+
31+
### Content quality limitations
32+
33+
Sora may have difficulty with complex physics, causal relationships (for example, bite marks on a cookie), spatial reasoning (for example, knowing left from right), and precise time-based event sequencing such as camera movement.
34+
35+
### Technical limitations
36+
37+
Sora supports the following output resolution dimensions:
38+
480x480, 480x854, 854x480, 720x720, 720x1280, 1280x720, 1080x1080, 1080x1920, 1920x1080.
39+
40+
Sora supports the following video durations: 5, 10, 15, and 20 seconds.
41+
42+
You can request multiple video variants in a single job: for 1080p resolutions, this feature is disabled; for 720p, the maximum is two variants; for other resolutions, the maximum is four variants.
43+
44+
A user can have two video creation jobs running at the same time. In that situation, you must wait for one of the jobs to finish before you can create another.
45+
46+
## Responsible AI
47+
48+
Sora has a robust safety stack including content filtering, abuse monitoring, sensitive content blocking, and safety classifiers.
49+
50+
Sora doesn't generate scenes with acts of violence but can generate adjacent content, such as realistic war-like footage.
51+

articles/ai-services/openai/includes/model-matrix/standard-image-generation.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ ms.custom: references_regions
99
ms.date: 02/06/2025
1010
---
1111

12-
| **Region** | **dall-e-3**, **3.0** |
13-
|:-----------------|:---------------------:|
14-
| australiaeast ||
15-
| eastus ||
16-
| swedencentral ||
12+
| **Region** | **dall-e-3**, **3.0** | **gpt-image-1** |
13+
|:-----------------|:---------------------:|---|
14+
| australiaeast || |
15+
| eastus || |
16+
| swedencentral || |
17+
| westus3 | ||
18+
| uaenorth | ||

articles/ai-services/openai/toc.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ items:
3636
href: gpt-v-quickstart.md
3737
- name: Image generation
3838
href: dall-e-quickstart.md
39+
- name: Video generation
40+
href: video-generation-quickstart.md
3941
- name: Use your data
4042
href: use-your-data-quickstart.md
4143
- name: Realtime API for speech and audio (preview)
@@ -90,6 +92,8 @@ items:
9092
href: ./concepts/fine-tuning-considerations.md
9193
- name: Vision-enabled models
9294
href: ./concepts/gpt-with-vision.md
95+
- name: Video generation (preview)
96+
href: ./concepts/video-generation.md
9397
- name: Red teaming large language models (LLMs)
9498
href: ./concepts/red-teaming.md
9599
- name: Content credentials
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
title: 'Quickstart: Generate video with Sora'
3+
titleSuffix: Azure OpenAI
4+
description: Learn how to get started generating video clips with Azure OpenAI.
5+
manager: nitinme
6+
ms.service: azure-ai-openai
7+
ms.topic: quickstart
8+
author: PatrickFarley
9+
ms.author: pafarley
10+
ms.date: 05/22/2025
11+
---
12+
13+
# Quickstart: Generate a video with Sora (preview)
14+
15+
In this Quickstart, you generate video clips using the Azure OpenAI service. The example uses the Sora model, which is a video generation model that creates realistic and imaginative video scenes from text instructions. This guide shows you how to create a video generation job, poll for its status, and retrieve the generated video.
16+
17+
18+
## Prerequisites
19+
20+
- An Azure subscription. <a href="https://azure.microsoft.com/free/ai-services" target="_blank">Create one for free</a>.
21+
- <a href="https://www.python.org/" target="_blank">Python 3.8 or later version</a>.
22+
- An Azure OpenAI resource created in a supported region. See [Region availability](/azure/ai-services/openai/concepts/models#model-summary-table-and-region-availability).
23+
- Then, you need to deploy a `sora` model with your Azure resource. For more information, see [Create a resource and deploy a model with Azure OpenAI](./how-to/create-resource.md).
24+
- [Python 3.8 or later version](https://www.python.org/).
25+
26+
27+
## Setup
28+
29+
### Retrieve key and endpoint
30+
31+
To successfully call the Azure OpenAI APIs, you need the following information about your Azure OpenAI resource:
32+
33+
| Variable | Name | Value |
34+
|---|---|---|
35+
| **Endpoint** | `api_base` | The endpoint value is located under **Keys and Endpoint** for your resource in the Azure portal. You can also find the endpoint via the **Deployments** page in Azure AI Foundry portal. An example endpoint is: `https://docs-test-001.openai.azure.com/`. |
36+
| **Key** | `api_key` | The key value is also located under **Keys and Endpoint** for your resource in the Azure portal. Azure generates two keys for your resource. You can use either value. |
37+
38+
Go to your resource in the Azure portal. On the navigation pane, select **Keys and Endpoint** under **Resource Management**. Copy the **Endpoint** value and an access key value. You can use either the **KEY 1** or **KEY 2** value. Always having two keys allows you to securely rotate and regenerate keys without causing a service disruption.
39+
40+
:::image type="content" source="./media/quickstarts/endpoint.png" alt-text="Screenshot that shows the Keys and Endpoint page for an Azure OpenAI resource in the Azure portal." lightbox="./media/quickstarts/endpoint.png":::
41+
42+
43+
44+
[!INCLUDE [environment-variables](./includes/environment-variables.md)]
45+
46+
47+
48+
## Create a new Python application
49+
50+
Create a new Python file named `quickstart.py`. Open the new file in your preferred editor or IDE.
51+
1. Replace the contents of `quickstart.py` with the following code. Change the value of `prompt` to your preferred text.
52+
53+
```python
54+
import os
55+
import time
56+
import requests
57+
58+
# Set these variables with your values
59+
endpoint = os.environ["AZURE_OPENAI_ENDPOINT"] # e.g., "https://docs-test-001.openai.azure.com"
60+
api_key = os.environ["AZURE_OPENAI_KEY"]
61+
access_token = os.environ.get("AZURE_OPENAI_TOKEN") # Optional: if using Azure AD auth
62+
63+
headers = {
64+
"Content-Type": "application/json",
65+
"api-key": api_key,
66+
}
67+
if access_token:
68+
headers["Authorization"] = f"Bearer {access_token}"
69+
70+
# 1. Create a video generation job
71+
create_url = f"{endpoint}/openai/v1/video/generations/jobs?api-version=preview"
72+
payload = {
73+
"prompt": "A cat playing piano in a jazz bar.",
74+
"model": "sora"
75+
}
76+
response = requests.post(create_url, headers=headers, json=payload)
77+
response.raise_for_status()
78+
job_id = response.json()["body"]["id"]
79+
print(f"Job created: {job_id}")
80+
81+
# 2. Poll for job status
82+
status_url = f"{endpoint}/openai/v1/video/generations/jobs/{job_id}?api-version=preview"
83+
while True:
84+
status_response = requests.get(status_url, headers=headers)
85+
status_response.raise_for_status()
86+
status = status_response.json()["body"]["status"]
87+
print(f"Job status: {status}")
88+
if status == "succeeded":
89+
generations = status_response.json()["body"].get("generations", [])
90+
if not generations:
91+
raise Exception("No generations found in job result.")
92+
generation_id = generations[0]["id"]
93+
break
94+
elif status in ("failed", "cancelled"):
95+
raise Exception(f"Job did not succeed. Status: {status}")
96+
time.sleep(5) # Wait before polling again
97+
98+
# 3. Retrieve the generated video
99+
get_video_url = f"{endpoint}/openai/v1/video/generations/{generation_id}?api-version=preview"
100+
video_response = requests.get(get_video_url, headers=headers)
101+
video_response.raise_for_status()
102+
download_url = video_response.json()["body"]["generations"]
103+
print(f"Download your video at: {download_url}")
104+
```
105+
1. Run the application with the `python` command:
106+
107+
```console
108+
python quickstart.py
109+
```
110+
111+
Wait a few moments to get the response.
112+
113+
---

articles/ai-services/openai/whats-new.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ This article provides a summary of the latest releases and major documentation u
2020

2121
## May 2025
2222

23+
### Sora video generation released (preview)
24+
25+
Sora (2025-05-02) is a video generation model from OpenAI that can create realistic and imaginative video scenes from text instructions.
26+
27+
Follow the [Video generation quickstart](/azure/ai-services/openai/video-generation-quickstart) to get started. For more information, see the [Video generation concepts](./concepts/video-generation.md) guide.
28+
2329
### PII detection content filter
2430

2531
Personally identifiable information (PII) detection is now available as a built-in content filter. This feature allows you to identify and block sensitive information in LLM outputs, enhancing data privacy. For more information, see the [PII detection](./concepts/content-filter-personal-information.md) documentation.
@@ -147,7 +153,7 @@ For more information, see the [GPT-4o real-time audio quickstart](realtime-audio
147153

148154
### o1 reasoning model released for limited access
149155

150-
The latest `o1` model is now available for API access and model deployment. **Registration is required, and access will be granted based on Microsoft's eligibility criteria**. Customers who previously applied and received access to `o1-preview`, don't need to reapply as they are automatically on the wait-list for the latest model.
156+
The latest `o1` model is now available for API access and model deployment. **Registration is required, and access will be granted based on Microsoft's eligibility criteria**. Customers who previously applied and received access to `o1-preview`, don't need to reapply as they're automatically on the wait-list for the latest model.
151157

152158
Request access: [limited access model application](https://aka.ms/OAI/o1access)
153159

@@ -161,7 +167,7 @@ To learn more about the advanced `o1` series models see, [getting started with o
161167

162168
### Preference fine-tuning (preview)
163169

164-
[Direct preference optimization (DPO)](./how-to/fine-tuning-direct-preference-optimization.md) is a new alignment technique for large language models, designed to adjust model weights based on human preferences. Unlike reinforcement learning from human feedback (RLHF), DPO does not require fitting a reward model and uses simpler data (binary preferences) for training. This method is computationally lighter and faster, making it equally effective at alignment while being more efficient. DPO is especially useful in scenarios where subjective elements like tone, style, or specific content preferences are important. We’re excited to announce the public preview of DPO in Azure OpenAI, starting with the `gpt-4o-2024-08-06` model.
170+
[Direct preference optimization (DPO)](./how-to/fine-tuning-direct-preference-optimization.md) is a new alignment technique for large language models, designed to adjust model weights based on human preferences. Unlike reinforcement learning from human feedback (RLHF), DPO doesn't require fitting a reward model and uses simpler data (binary preferences) for training. This method is computationally lighter and faster, making it equally effective at alignment while being more efficient. DPO is especially useful in scenarios where subjective elements like tone, style, or specific content preferences are important. We’re excited to announce the public preview of DPO in Azure OpenAI, starting with the `gpt-4o-2024-08-06` model.
165171

166172
For fine-tuning model region availability, see the [models page](./concepts/models.md#fine-tuning-models).
167173

@@ -199,7 +205,7 @@ For fine-tuning model region availability, see the [models page](./concepts/mode
199205

200206
### NEW AI abuse monitoring
201207

202-
We are introducing new forms of abuse monitoring that leverage LLMs to improve efficiency of detection of potentially abusive use of the Azure OpenAI and to enable abuse monitoring without the need for human review of prompts and completions. Learn more, see [Abuse monitoring](/azure/ai-services/openai/concepts/abuse-monitoring).
208+
We're introducing new forms of abuse monitoring that leverage LLMs to improve efficiency of detection of potentially abusive use of the Azure OpenAI and to enable abuse monitoring without the need for human review of prompts and completions. Learn more, see [Abuse monitoring](/azure/ai-services/openai/concepts/abuse-monitoring).
203209

204210
Prompts and completions that are flagged through content classification and/or identified to be part of a potentially abusive pattern of use are subjected to an additional review process to help confirm the system's analysis and inform actioning decisions. Our abuse monitoring systems have been expanded to enable review by LLM by default and by humans when necessary and appropriate.
205211

@@ -312,13 +318,13 @@ OpenAI has incorporated additional safety measures into the `o1` models, includi
312318

313319
### Availability
314320

315-
The `o1-preview` and `o1-mini` are available in the East US2 region for limited access through the [Azure AI Foundry portal](https://ai.azure.com) early access playground. Data processing for the `o1` models might occur in a different region than where they are available for use.
321+
The `o1-preview` and `o1-mini` are available in the East US2 region for limited access through the [Azure AI Foundry portal](https://ai.azure.com) early access playground. Data processing for the `o1` models might occur in a different region than where they're available for use.
316322

317323
To try the `o1-preview` and `o1-mini` models in the early access playground **registration is required, and access will be granted based on Microsoft’s eligibility criteria.**
318324

319325
Request access: [limited access model application](https://aka.ms/oai/modelaccess)
320326

321-
Once access has been granted, you will need to:
327+
Once access has been granted, you'll need to:
322328

323329
1. Navigate to https://ai.azure.com/resources and select a resource in the `eastus2` region. If you don't have an Azure OpenAI resource in this region you'll need to [create one](https://portal.azure.com/#create/Microsoft.CognitiveServicesOpenAI).
324330
2. Once the `eastus2` Azure OpenAI resource is selected, in the upper left-hand panel under **Playgrounds** select **Early access playground (preview)**.
@@ -375,7 +381,7 @@ Unlike the previous early access playground, the [Azure AI Foundry portal](https
375381
> [!NOTE]
376382
> Prompts and completions made through the early access playground (preview) might be processed in any Azure OpenAI region, and are currently subject to a 10 request per minute per Azure subscription limit. This limit might change in the future.
377383
>
378-
> Azure OpenAI abuse monitoring is enabled for all early access playground users even if approved for modification; default content filters are enabled and cannot be modified.
384+
> Azure OpenAI abuse monitoring is enabled for all early access playground users even if approved for modification; default content filters are enabled and can't be modified.
379385
380386
To test out GPT-4o `2024-08-06`, sign-in to the Azure AI early access playground (preview) using this [link](https://aka.ms/oai/docs/earlyaccessplayground).
381387

0 commit comments

Comments
 (0)