動画生成のアクセスと使用
Amazon Nova Reel を使用した動画の生成は非同期プロセスであり、通常は 6 秒間の動画の場合は約 90 秒かかり、2 分間の動画の場合は約 14 ~ 17 分かかります。動画の生成を開始したら、動画はアカウントの Amazon S3 バケットに書き込まれます。Amazon Bedrock はユーザーに代わって Amazon S3 バケットにファイルを書き込むため、適切な Amazon Bedrock、Amazon S3 のアクション、s3:PutObject
アクションを許可するため、使用する AWS ロールにはアクセス許可を設定する必要があります。動画の生成に必要なアクションの最小限のアクセス許可は次のとおりです。
-
bedrock:InvokeModel
-
s3:PutObject
ただし、動画生成ジョブのステータスを追跡できるように、次の追加のアクションをお勧めします。
-
bedrock:GetAsyncInvoke
-
bedrock:ListAsyncInvokes
動画の生成が完了すると、動画およびその構成要素のショットは指定した Amazon S3 バケットに保存されます。Amazon Nova は、呼び出し ID ごとにフォルダを作成します。このフォルダには、動画生成リクエストによって作成された manifest.json、output.mp4、generation-status.json ファイルが含まれています。
動画生成ジョブの開始
動画の生成を開始するには、start_async_invoke()
を呼び出します。新しい呼び出しジョブが作成されます。ジョブが完了すると、Amazon Nova は指定した Amazon S3 バケットに生成された動画を自動的に保存します。
start_async_invoke()
は次の引数を取ります。
-
modelId (必須) – 使用するモデル ID。Amazon Nova Reel の場合は「amazon.nova-reel-v1:1」です。
-
modelInput (必須) – Amazon Nova Reel モデル固有のすべての動画生成パラメータを定義します。詳細については、「動画生成の入力パラメータ」を参照してください。
-
outputDataConfig (必須) – 生成された動画を保存する場所を定義します。値には次の構造を持たせる必要があります。
{ "s3OutputDataConfig": { "s3Uri":
string (S3 URL starting with "s3://")
} }
動画生成の入力パラメータ
Amazon Nova Reel を使用して動画を生成する方法については、次のパラメータの説明を参照してください。
動画生成プロセスでは、指定した Amazon S3 保存先に次のファイルが書き込まれます。
-
manifest.json – ジョブの開始時に書き込まれるファイルであり、リクエスト ID が含まれます。
-
video-generation-status.json – ジョブの成功または失敗とは関わらず、このファイルは書き込まれます。ジョブが失敗すると、失敗したジョブの部分に加え、エラーを修正するために実行するアクションを正確に説明する詳細な情報が含まれます。
-
output.mp4 – マルチショット動画の全体。ジョブが成功した場合にのみ書き込まれます。
-
shot_N.mp4 – 個々のショットも独自の動画として提供されます。ファイル名は「shot_0001.mp4」や「shot_0002.mp4」などの形式に従います。これらのファイルは、ジョブ全体が成功した場合にのみ書き込まれます。
動画生成ジョブの進行状況の確認
動画生成ジョブの進行状況を確認する方法は 2 つあります。呼び出しの開始時に返された呼び出し ARN への参照がある場合、Amazon Bedrock ランタイムの get_async_invoke()
方法を使用できます。
response = bedrock_runtime.get_async_invoke( invocationArn="arn:AWS:bedrock:us-east-1:
account-id
:async-invoke/invocation-id
" ) status = response["status"] print(f"Status: {status}")
ジョブのステータスは、「Completed」、「InProgress」、「Failed」になります。get_async_invoke()
方法の使用の詳細については、「非同期 Invoke API ドキュメント」を参照してください。
呼び出し ARN への参照がないか、複数ジョブのステータスを一度に確認する場合、Amazon Bedrock ランタイムの list_async_invokes()
方法を使用できます。
invocations_details = bedrock_runtime.list_async_invokes( maxResults=10, # (Optional) statusEquals="InProgress", # (Optional) Can be "Completed", "InProgress", or "Failed". Omit this argument to list all jobs, regardless of status. # Note: There are other supported arguments not demonstrated here. ) print(json.dumps(invocations_details, indent=2, default=str))
list_async_invokes()
方法の使用の詳細については、「非同期 Invoke API ドキュメント」を参照してください。
動画生成ジョブの結果へのアクセス
動画生成ジョブが成功または失敗したら、JSON ファイルが Amazon S3 バケットに追加されます。このファイルには、動画用に作成されたショットに関するメタデータが含まれています。ファイルの名前は video-generation-status.json
です。
成功した動画生成リクエストの場合、ファイルには動画全体を構成する個々のショットのロケーションが含まれます。失敗したリクエストの場合、ファイルには失敗メッセージおよびショットが失敗した理由に関する追加の詳細が含まれます。
この JSON ファイルのスキーマは以下のとおりに示されます。
{ "schemaVersion": string, "shots": [{ "status": enum, // where success is generation + upload "location": string, "failureType": enum, "failureMessage": string, }, ... ], "fullVideo": { "status": enum, // where success is generation + upload "location": string, "failureType": enum, "failureMessage": string, } }
-
SchemaVersion – JSON スキーマのバージョン。
-
shots – 動画の各ショットに関する情報が提供されます。
-
status – ショットの完了状態 (成功または失敗)。
-
location – ショットが保存されているファイル名と Amazon S3 のロケーション。ロケーションは、すべてのショットが正常に生成され、完成した動画が Amazon S3 のロケーションにアップロードされた場合のみに利用できます。
-
failureType – 失敗の理由が示されます。
-
failureMessage – 失敗の理由に関する詳細な情報が示されます。
-
-
fullVideo – 動画全体に関する情報が示されます。
-
status – 動画全体の完了状態 (正常生成または失敗)。
-
location – 動画全体が保存されているファイル名および Amazon S3 のロケーション。
-
failureType – 失敗の理由が示されます。
-
failureMessage – 失敗の理由に関する詳細な情報が示されます。
-
考えられる失敗の理由およびメッセージは次のとおりです。
-
INTERNAL_SERVER_EXCEPTION – 「サーバー側で問題が発生しました」
-
RAI_VIOLATION_OUTPUT_VIDEO_DEFLECTION – 「生成されたコンテンツはコンテンツフィルターによってブロックされました」
-
RATE_LIMIT_EXCEEDED – 「サービス容量の制限に達しました。後でもう一度お試しください」
-
ABORTED – 「リクエストが中止されました」