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 時間ダウンロードできます
  • 解像度の要件: 参照画像はターゲット ビデオの解像度と正確に一致する必要があります
  • コンテンツフィルタリング: プロンプトはコンテンツモデレーションの対象となります。有害なコンテンツが生成されない

次の演習では、これらの手法を適用して、完全なビデオ生成アプリケーションを構築します。