Python でビデオを生成する
プログラムによってビデオを生成するアプリケーションを構築するには、Microsoft Foundry で OpenAI Python SDK と一緒にOraora 2 デプロイを使用できます。 ビデオ生成は非同期プロセスです。ジョブの送信、ステータスの確認、準備ができたら結果をダウンロードします。
ビデオを生成する
ビデオの生成は、ジョブの作成、完了のポーリング、結果のダウンロードという 3 つの手順のパターンに従います。
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")
参照画像からビデオを生成する
開始フレームとしてイメージを使用するには、 input_reference パラメーターに渡します。 画像の解像度は、ターゲット ビデオのサイズと一致する必要があります。
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"),
)
注
現在、人間の顔を含む参照画像は拒否されています。 代わりに、風景、オブジェクト、またはアニメーション化されたキャラクターの画像を使用します。
既存のビデオをリミックスする
構造を維持しながら既存のビデオを変更するには、元のビデオの ID で remix メソッドを使用します。
video = client.videos.remix(
video_id="video_abc123",
prompt="Change the color palette to warm sunset tones",
)
ジョブステートを処理する
ビデオ ジョブは、次の状態値を返すことができます。
| 地位 | 説明 |
|---|---|
queued |
ジョブが処理されるのを待機しています |
in_progress |
ビデオが生成されています |
completed |
ビデオをダウンロードする準備ができました |
failed |
生成に失敗しました (エラーの詳細を確認してください) |
cancelled |
ジョブがキャンセルされました |
ジョブが失敗した場合は、 video.error で問題の詳細を確認します。
主な考慮事項
- レート制限: 最大 2 つのビデオ作成ジョブを同時に実行できます
- ジョブの有効期限: 完了したビデオは 24 時間ダウンロードできます
- 解像度の要件: 参照画像はターゲット ビデオの解像度と正確に一致する必要があります
- コンテンツフィルタリング: プロンプトはコンテンツモデレーションの対象となります。有害なコンテンツが生成されない
次の演習では、これらの手法を適用して、完全なビデオ生成アプリケーションを構築します。