AWS re:Invent2024 と Amazon Nova Workshop

日立システムズの後藤です。

このたび、2024年12月2日～6日にラスベガスで開催された [AWS re:Invent2024](https://reinvent.awsevents.com/on-demand/) に現地参加してきました。その中で新しく発表された「[Amazon Nova](https://aws.amazon.com/jp/ai/generative-ai/nova/?nc1=h_ls)」について 現地での Workshop に参加する機会がありましたので、その内容を中心に記載しました。

# AWS re:Invent
AWS re:Invent は、[Amazon Web Services（AWS）](https://aws.amazon.com/jp/)が主催するクラウドコンピューティングに関する世界最大規模のカンファレンスです。毎年米国ネバダ州ラスベガスで開催されており、2024年は12月2日から6日まで開催されました。現地で6万人、オンラインで40万人が参加する規模のイベントとなっています。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/a6520fce-a92b-617e-9505-3f3c51c062c5.jpeg">

# Keynote と Nova
Keynote は AWS の CEO や他の高位のエグゼクティブが行い、AWSのビジョンや戦略、最新の技術トレンドについての情報を提供する場になります。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/94bdbdbf-a853-fac8-10f1-7c799ed1db23.jpeg">

以下のようにイベント期間中に5回開催され、それぞれテーマが異なります。

|日時|タイトル|
|:-----------|:-----------|
|12/2（月）7:30 – 9:00 pm| [Monday Night Live](https://youtu.be/vx36tyJ47ps?si=5WgAdTObS2qID8q5)|
|12/3（火）8:00 – 10:30 am| [CEO Keynote](https://youtu.be/LY7m5LQliAo?si=6rp0z73hYPGw5Vu6)|
|12/4（水）8:30 – 10:30 am| [Dr. Swami Sivasubramanian Keynote](https://youtu.be/qGzYTg5FIA4?si=mzPAJdRuisqNuMd8)|
|12/4（水）3:00 – 4:30 Pm| [AWS Partner Keynote](https://youtu.be/IQtJ-VixZ9Q?si=HcH6hlvMMO_VBqzf)|
|12/5（木）8:30 – 10:30 am| [Dr. Werner Vogels Keynote](https://youtu.be/aim5x73crbM?si=nNeYD54J6Qlrxcly)|

この中でも注目されるのが CEO Keynote です。CEOの Matt Garman がメインで登壇するということで、期間中最も重要な発表がされます。注目度の高いサービスのローンチもこの場で発表されることが多いです。もちろん私も CEO Keynote に参加しました。

|タイトル|内容|
|:-----------|:-----------|
|KEY002 CEO Keynote with Matt Garman|AWS CEO の Matt Garman 氏と一緒に、世界をリードするクラウドのあらゆる側面で AWS がどのように革新を起こしているかについてお聞きください。彼は、基礎となる構成要素を改革し、まったく新しいエクスペリエンスを開発する方法について説明し、より良い未来を築くために必要なものをお客様とパートナーに提供することの重要性を説きます。|


午前8時から開始なのですが、当日は6時過ぎには人が並び始めます。予約できるセッションが多い中で、Keynoteは事前予約ができないセッションになります。Keynote の会場自体は数千人入る広さなのですが、開始時間前になると満席になる人気なので、早めに行っておくのが無難です。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/58994e6e-5596-af15-fc45-7b903b564afd.jpeg">

また、Keynote だけは同時通訳機が準備されており、日本語も対応しています。数に限りがあり先着順になるので、必要であれば少しでも早く並んでおく必要があります。

<img width="300" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/5bf76793-2ad5-0f59-e550-8596dd26c57f.jpeg">

午前8時になると CEO Keynote が始まります。新しいサービスや機能が次々に発表されて、会場は大いに盛り上がります。そのような中で発表されたのが新しい基盤モデル「Amazon Nova」でした。当日の keynote は Youtube の AWS公式チャネルでも公開されていますので、雰囲気を味わいたい方は動画もご確認ください（[keynote 動画](https://youtu.be/LY7m5LQliAo?si=5OVK0ny-KMlbIFDJ&t=6497))。ちなみに、Nova の発表は AWS CEO の Matt Garman ではなく、Amazon CEO の Andy Jassy が実施していますので、ご注意ください。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/79faa9b7-bd59-b2ac-a9b1-efefbfd14fe1.jpeg">

Amazon Nova は最先端のインテリジェンスと業界をリードする価格性能を実現する、新世代の最先端基盤モデル (FM) であり、Amazon Bedrock でのみ利用可能です。「Amazon Nova understanding models（読解モデル）」と「Amazon Nova creative content generation models（クリエイティブコンテンツ生成モデル）」があります。

### Amazon Nova understanding models（読解モデル）
テキスト、画像、またはビデオの入力を受け入れ、テキスト出力を生成する理解モデルです。機能、精度、速度、コストの運用ポイントを幅広く選択できます。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/29f62ea5-2ffa-44b9-0160-517c70e90297.jpeg">

4つのモデルが準備されています。

|区分|内容|
|:-----------|:-----------|
|Amazon Nova Micro|非常に低コストで最小の遅延応答を実現するテキストのみのモデル|
|Amazon Nova Lite|画像ビデオとテキスト入力を超高速で処理する非常に低コストのマルチモーダル モデル|
|Amazon Nova Pro|幅広いタスクに最適な精度、速度、コストの組み合わせを備えた高度な機能を備えたマルチモーダル モデル|
|Amazon Nova Premier|最も有能なマルチモーダルモデルであり、複雑な推論タスクに最適で、カスタムモデルを蒸留するための最良の教師として使用される<br>※近日公開|

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/a60d2b3f-7432-ccd2-7172-d7dd700272d0.jpeg">

他社の基盤モデルと比較した[ベンチマークテスト結果](https://aws.amazon.com/jp/ai/generative-ai/nova/understanding/)を見ると、Gemini、Claude、GPT4といった他社モデルに引けを取らない性能であることが分かります。また、他社モデルと比較してコスト面でも秀でているとの説明もありました。

### Amazon Nova creative content generation models（クリエイティブコンテンツ生成モデル）
テキストと画像の入力を受け入れ、画像またはビデオの出力を生成するクリエイティブなコンテンツ生成モデルです。これらは、ビジュアルコンテンツ生成用にカスタマイズ可能な高品質の画像とビデオを提供するように設計されています。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/7f30b869-80cc-1494-215a-45865aeedefe.jpeg">

|区分|内容|
|:-----------|:-----------|
|Amazon Nova Canvas|プロンプトで提供されるテキストや画像からプロ仕様の画像を作成する最先端の画像生成モデル|
|Amazon Nova Reel|テキストと画像から高品質のビデオを簡単に作成できる最先端のビデオ生成モデル|

さらに詳細を知りたい方は「[User Guide for Amazon Nova](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/what-is-nova.html)」をご確認ください。


# Workshop と Nova
CEO Keynote が終わると、AWS re:Invent の公式アプリ上に「NEW LAUNCH」のセッションが満を持して大量に追加されます。Keynote で発表された新しいサービスや機能に関するセッションです。このように後から重要なセッションが追加されるため、事前に計画を立てていてもイベント期間の後半はほとんど予定を見直しすることになります。

そのような中で、参加したかったのが Workshop でした。

|区分|主な内容|
|:-----------|:-----------:|
|Workshop|参加者が少人数のグループで作業し、AWS を使用して問題の解決策を構築するインタラクティブなセッション。ワークショップは交流を促進し、参加者が互いに学び合い、教え合う機会を提供します。このセッションに参加するには、ご自身のノートパソコンをお持ちいただく必要があります。|

基本的にハンズオン形式のセッションである場合が多く、最初にサービスの説明があります。そのあとはサポートを受けながらハンズオンを実施できる形式です。新しくローンチされたサービスの環境を触りながら説明を受けることができるので、非常に有益なセッションです。もちろん、新しいサービスのローンチ直後のため、世界で初めての Workshop を受けることができるのもメリットです。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/9bbc5286-6b40-52a3-53da-2aa1d19d9917.jpeg">

ただし、Workshop が全部ハンズオンではなく、グループディスカッションの場合もあります。参加した Workshopの1つにグループディスカッション形式があったのですが、英語力の弱い私は会話に非常に苦慮しました。ハンズオンを希望される方は登録時に十分に注意が必要です。

今回、「NEW LAUNCH」の Workshop に参加したいと考えていましたが、運よく Nova の Workshop に登録することができました。運よくというのは 人気のある Workshop はすぐに満席になってしまって、なかなか登録ができないからです。登録できなくても、Walk-up という当日参加枠もありますが、この場合は数十分くらい前から並ぶ必要があり、確実に入れるとは限りません。

|タイトル|内容|
|:-----------|:-----------|
|AIM385-NEW [NEW LAUNCH] Amazon Nova ビデオと画像生成で創造性を解き放ちます|このワークショップでは、Amazon Nova ビデオおよび画像ジェネレーターを使用した AI を活用したコンテンツ作成の最先端の世界に飛び込みます。ビデオ ストーリーボード、テキストからビデオへの生成、テキストと画像からビデオへの変換などの機能を調べてください。これらの強力なツールを活用して、魅力的なビジュアルナラティブを作成し、書かれたコンセプトを動的なビデオコンテンツに変換し、既存のビジュアルをモーションで強化する方法を学びます。これらの高度な機能がどのように創造的なプロセスを合理化し、ストーリーテリングの新たな可能性を開くのかをご覧ください。マーケター、コンテンツクリエイター、ビジネスストラテジストのいずれであっても、このワークショップでは、Amazon Nova ジェネレーターをワークフローに統合するための知識を身につけることができます。参加するにはラップトップを持参する必要があります。<br>|

上記の通り、Amazon Nova のクリエイティブコンテンツ生成モデルである Amazon Nova Canvas と Amazon Nova Reel に関する様々な操作確認が実施できる内容となっていました。

# Workshop「AIM385-NEW | [NEW LAUNCH] Unleash your creativity with Amazon Nova video and image generation」

それでは、Workshop についてです。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/5b469c88-b5a4-4ab5-92f7-177483741110.jpeg">

|アジェンダ|
|:-----------|
|Introduction to Nova|
|Nova Canvas - Image Generation|
|Nova Reel - Video Generation|
|Hands on Workshop|

最初にサービスの概要についての説明がありました。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/0cb07ccc-9e11-0c29-f32d-5a934b9aa75f.jpeg">

Nova のモデルについて、Understanding models と Creative content generation models の内容が説明されました。今回の WorkShop は  Creative content generation models の内容のため、その部分を深堀して説明されました。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/1a83149b-b38a-c81f-7f1e-3293364a0c4b.jpeg">

そのあとは、ハンズオン の開始です。
参加者各自が Workshop 環境にアクセスして、手順に従ってハンズオンを開始します。JupyterLab を起動させて、コマンドを実行しながら動きを確認していく流れでした。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/74ef9f20-5675-7f15-10d3-e712001a56f6.png">

モデルのAPI や 設定するパラメータ等を確認しながら、プロンプロトを入力して動きを確認できます。

### Amazon Nova Canvas
画像生成モデルである Nova Canvas の Workshopです。

前提として、Amazon Nova Canvas モデルを使用して InvokeModel 呼び出しを行う場合は、bodyリクエストのフィールドをユースケースに一致する形式で置き換える必要があります。例えば、「Text-to-image request（テキストから画像へ）」を利用する場合は、「TextToImageParams」を利用します。このパラメータ部分がユースケースにより異なります。「imageGenerationConfig」は「背景の削除」以外で共通的に利用されるパラメータです。

``` python
{
    "taskType": "TEXT_IMAGE",
    "textToImageParams": {
        "text": string,
        "negativeText": string
    },
    "imageGenerationConfig": {
        "width": int,
        "height": int,
        "quality": "standard" | "premium",
        "cfgScale": float,
        "seed": int,
        "numberOfImages": int
    }
}
```
この設定の違いをユースケースごとに確認します。基本的な記載ルールに関しては「[Request and response structure for image generation](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/image-gen-req-resp-structure.html)」をご確認ください。

それでは Workshop の内容になりますが、Nova Canvas では、以下の動きを確認できます。

|手順|内容|
|:-----------|:-----------|
|Nova Canvasの前提条件|実行環境を準備します。|
|テキストから画像へ|テキストの説明に基づいて画像を生成します。「[textToImageParams](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/image-gen-req-resp-structure.html)」パラメータで定義します。<br><br>以下は「A women's collared white t-shirt, with a cat image in the center; the whole shirt is visible（中央に猫の絵が描かれた、女性用の襟付きの白い T シャツ。シャツ全体が見える）」とテキストを設定した場合の結果です。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/d24fc651-2bf7-c10e-ac58-9c8f4075fda3.png"><br>|
|インペインティング|インペインティングでは、編集する画像と、画像のどの部分を変更するかを定義する「マスク」を提供します。マスクは、白黒画像として、または何を変更するかの自然言語による記述として提供できます。「[inPaintingParams](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/image-gen-req-resp-structure.html)」パラメータで定義します。<br><br>以下は「White T-shirt with a picture of a black bear（黒い熊の絵が描かれた白い T シャツ）」と入力し mask_prompt で「cat image」を指定した場合の結果です。左側が元画像、右側が生成された画像です。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/ad23e862-58dc-8f09-fe9f-9ed2adb67841.png"><br>|
|アウトペインティング|アウトペインティングでは、編集する画像と、画像のどの部分を保持するかを定義する「マスク」を提供します。マスクは、白黒画像として提供することも、画像のどの部分を保持するかについての自然言語記述として提供することもできます。アウトペインティングは、画像の背景を置き換えて、画像の被写体をまったく新しい環境または特別な背景に配置するために使用できます。「[outPaintingParams](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/image-gen-req-resp-structure.html)」パラメータで定義します。<br><br>以下は「A man with tanned skin stands in a T-shirt at an intersection in New York against a backdrop of blue skies and a double-decker bus.（日焼けした肌を持つ男性が、青い空と2階建てバスを背景に、T シャツを着てニューヨークの交差点に立っています。）」とテキストを指定し、mask_prompt で「shirt」を指定した場合の結果です。左側が元画像、右側が生成された画像です。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/2a22071e-f805-9e33-f2aa-27cd5b96b31e.png"><br>|
|背景の削除|オブジェクトを元の背景から分離します。この機能を使用するには、モデルに画像を提供するだけです。モデルは、画像のどの部分を前景と背景と見なすべきかを自動的に決定します。プロンプトは必要ありません。「[backgroundRemovalParams](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/image-gen-req-resp-structure.html)」パラメータで定義します。<br><br>左側が元画像、右側が生成された画像です。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/fe621269-0e72-342c-66cd-eab8af68dda4.png"><br>|
|イメージバリエーション|イメージ バリエーションは、さまざまな用途に使用できる汎用性の高い機能です。「[imageVariationParams](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/image-gen-req-resp-structure.html)」パラメータで定義します。<br><br>1. 特定の被写体の画像に基づいて、その被写体の新しい画像を作成します。<br><br>以下は左端の画像を読み込ませてテキストで「red japanese armor（赤い日本の鎧）」と指定した結果です。中央の画像は左端の画像を参照していません。右端の画像は参照しており、左端の画像の影響を受けています。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/221a7acd-6127-e6ad-d5ca-ae82d2c70110.png"><br><br>2. 特定の視覚スタイルの例を提供することにより、特定の視覚スタイルで画像を生成するようにモデルをガイドします。<br><br>以下は左端の画像を読み込ませてテキストで「suits for men（男性のスーツ）」と指定した結果です。中央の画像は左端の画像を参照していません。右端の画像は参照しており、左端の画像の影響を受けています。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/093d226a-a636-3dcc-65f0-388f2cfb6cf5.png"><br><br>|
|イメージコンディショニング|ユーザー指定の参照画像をテキスト プロンプトと共に提供することで、そのレイアウトと構造に従う出力を生成するイメージ コンディショニング機能に焦点を当てます。「[textToImageParams](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/image-gen-req-resp-structure.html)」パラメータで定義します。次の 2 つのモードがサポートされています。<br><br>・キャニーエッジ:参照画像から目立つエッジを抽出して、生成プロセスをガイドします。以下は左端の画像を読み込ませてテキストで「A white dress with elegant details（エレガントなディテールを施した白いドレス）」と指定した結果です。右側の画像が作成されています。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/a797901d-03f4-0a26-a384-4bb18e948fac.png"><br><br>・セグメンテーション: モデルの参照画像内の特定の領域/オブジェクトを定義して、それらの領域に合わせたコンテンツを生成します。以下は左端の画像を読み込ませてテキストで「fashion photo of blonde woman in elegant dress against old western city background（古い西洋の街を背景にエレガントなドレスを着た金髪の女性のファッション写真）」と指定した結果です。右側の画像が作成されています。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/063b1d22-4644-b716-2265-e11e070f517e.png"><br>|
|カラーコンディショニング|生成された画像のカラーパレットを制御するための正確な色値を指定できるカラーコンディショニング機能に焦点を当てます。必要に応じて、参照イメージを指定して、指定したカラー パレットと参照から継承されたスタイルを組み合わせたビジュアルを生成することもできます。「[colorGuidedGenerationParams](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/image-gen-req-resp-structure.html)」パラメータで定義します。<br><br>以下はテンプレートで「a patterned dress, $pattern, on solid white background（無地の白い背景に模様のあるドレス）」と指定し pattern として「"paisley", "striped", "floral"」を設定した場合の結果です。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/b49541dc-84c2-4f4f-432d-8714b3b14910.png"><br>|

### Amazon Nova Reel
ビデオ生成モデルである Nova Reel の Workshopです。

前提として、Amazon Nova Reel モデルを使用する場合、以下の通りビデオ生成ジョブのパラメータを定義します。「textToVideoParams」の「"images"」は、「text-to-video（テキストからビデオへの変換）」の場合は設定せず、「image-to-video（画像からビデオへの変換）」する場合のみ設定するオプション項目となります。

``` python
{
    "taskType": "TEXT_VIDEO",
    "textToVideoParams": {
        "text": string,
        "images": ImageSource[] (list containing a single ImageSource)
    },
    "videoGenerationConfig": {
        "durationSeconds": int,
        "fps": int,
        "dimension": string, 
        "seed": int
    }
}
```
基本的な記載ルールに関しては「[Video generation access and usage](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/video-gen-access.html)」をご確認ください。


ビデオ生成モデルである Nova Reel に関しては、以下の操作を確認できます。

|手順|内容|
|:-----------|:-----------|
|Nova Reel の前提条件|実行環境を準備します。|
|テキストからビデオへの変換|Nova Reel のテキストからビデオへの変換機能を使用すると、対象、環境、カメラの動きなどを説明する簡単なテキスト プロンプトからビデオを作成できます。「[textToVideoParams](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/video-gen-access.html)」パラメータで定義します。<br><br>以下は「a woman from the rear is standing, her black hair waving in the strong wind. The lush greenery in the foreground extends to the beautiful beach and waves in the background. Soft sunlight.（後姿の女性が立っていて、女性の黒髪は強風で波打っている。前景の豊かな緑は、背景の美しいビーチと波に広がっています。柔らかな日差し。）」と指定した結果です。髪の毛が強風で波打っている動画が作成されます。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/7fd299fa-3bba-9319-0c8e-88bda0aea55b.png"><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/e8491a7e-ee63-6f20-8130-4991c4350a0f.png"><br><br>|
|画像からビデオへの変換|Nova Reel の画像からビデオへの変換機能を使用すると、既存の画像からビデオを作成できるため、テキストからビデオへの変換機能のみを使用する場合よりもビデオ出力をより細かく制御できます。「[textToVideoParams](https://docs.aws.amazon.com/ja_jp/nova/latest/userguide/video-gen-access.html)」パラメータで定義し、「"images"」の設定が必要です。<br><br>以下の画像を読み込みます。<br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/28c2b989-58ab-06c6-7b82-5a3cf3f0569b.png"><br><br>以下は「static camera: static camera: waves roll in, sandy beach, The woman shifts his body subtly.Her hair is blowing in the strong wind.（静止カメラ: 波が押し寄せ、砂浜。女性は微妙に体を動かします。彼女の髪は強風になびいています。）と指定した結果です。波が押し寄せ、女性の髪が風になびいている動画が作成されました。<br><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/c9bc5a71-2b25-7886-b64b-18db9af5cd72.png"><br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/0450138d-04a7-4e41-5fd6-d48a23c07849.png"><br>|


上記の通り、基本的には提示された手順に沿って処理を実行していく流れとなります。プロンプトやパラメータなどは自分の好きに書き換えて実行することで、動作を検証することができました。表示結果もパラメータの異なる画像を並べて表示されるなど、参加者がパラメータの効果を理解しやすい作りとなっていました。そのため、Nova の概要を理解するには有益な Workshop でした。


# 一般公開された Nova Workshop
今回の WorkShop に関しては、Github で一般公開している旨ご紹介頂きました。こちらをダウンロードして自分の環境で実行することが可能です。Workshop は時間が限られているので、これは非常に嬉しい情報提供でした。

|公開先|
|:-----------|
|[amazon-bedrock-works/04_Image_and_Multimodal/AmazonNova](https://github.com/aws-samples/amazon-bedrock-workshop/tree/main/04_Image_and_Multimodal/AmazonNova)|

実行方法はいくつかありますが、ここでは Amazon SageMaker AI Studio　から JupyterLab を起動して実行する手順を説明します。

|手順|内容|
|:-----------|:-----------|
|1|リージョンは「us-east-1（バージニア北部）」を選択します。|
|2|[Amazon Bedrock](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/)に遷移します。|
|3|「Amazon Bedrock - Bedrock configurations-モデルアクセス」で「Nova Canvas」と「Nova Reel」のモデルアクセスを許可します。<br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/96b4bf92-48e4-89d8-9911-04c3aec52edc.png">|
|4|[Amazon SageMaker AI](https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/landing)に遷移します。|
|5|「Amazon SageMaker AI - 管理者設定 - ドメイン」で新規ドメインを作成します。設定は「シングルユーザー向けの設定（クイックセットアップ）」で問題ありません。|
|6|作成された新規ドメインの「ドメインの詳細 - ドメインの設定 -　認証と許可」で「スペースの実行ロール」名を確認します。|
|7|[IAM](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/home)に遷移します。|
|8|「IAM - アクセス管理 - ロール」で先ほど確認した「スペースの実行ロール」を検索して詳細を確認します。|
|9|「許可ポリシー - 許可を追加 - インラインポリシーを作成」を選択して以下のポリシーを追加します。このポリシーを追加しないと SageMaker で Nova が利用できません。|

※追加するインラインポリシー
```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "BedrockFullAccess",
            "Effect": "Allow",
            "Action": ["bedrock:*"],
            "Resource": "*"
        }
    ]
}
```
|手順|内容|
|:-----------|:-----------|
|10|IAMロールの許可ポリシーに先ほどのポリシーが追加されます。<br><img width="400" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/03b07ab0-1ff0-39c5-87d5-76b87abbd440.png">|
|11|[Amazon SageMaker AI](https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/landing)に遷移します。|
|12|「Amazon SageMaker AI - Applications and IDEs - Studio」で先ほど作成したドメインを指定して SageMaker Studio を起動します。|
|13|SageMaker Studio の 「JupyterLab」で「Create JupyterLab space」を選択してスペースを作成します。<br><img width="400" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/ebc42dbd-67f4-7672-13b1-79370c279a3e.png">|
|14|作成したJupyterLab スペースで「Run」を選択します。<br><img width="600" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/ab9dfb5a-42d9-27c3-2560-2049d443e16a.png">|
|15|作成したJupyterLab スペースで「Open」を選択します。<br><img width="600" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/cca8e5ae-77d3-9fdd-f5fa-305c5df97d8e.png">|
|16|JupyterLab で 「Launcher - Other - Terminal」を選択します。|
|17|Terminal で以下のコマンドを実行して必要なファイルをダウンロードします。<br><br>git clone https://github.com/aws-samples/amazon-bedrock-workshop.git<br><br>|
|18|WorkShop の環境準備は完了しました。それぞれの WorkShop を実行します。必ず最初に「00」から実行してください。それ以外は順不同で実行できます。<br><img width="600" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/8ef5b4e8-4b0e-6b4d-2def-af5ea06a5704.png"><br><br>・NovaCanvas<br>amazon-bedrock-workshop/04_Image_and_Multimodal/AmazonNova/NovaCanvas<br><img width="200" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/4fdcf182-7f63-b3fc-0b5c-780bc6142f55.png"><br>・NovaReel<br>amazon-bedrock-workshop/04_Image_and_Multimodal/AmazonNova/NovaReel<br><img width="200" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/04d18b74-6419-9e60-0bb5-f4a8abf6351e.png"><br>|

上記の環境を準備することで、Workshop の内容を体験することができます。
この Workshop に関心のある方は是非体験してみてください。

また、上記の手順を実施する場合の重要なポイントは以下の通りです。

|#|ポイント|
|:-----------|:-----------|
|1|リージョンは「us-east-1（バージニア北部）」で実施してください。|
|2|SageMaker AIのドメインのスペースの実行ロールにはBedrockのアクセス権付与が必須です。|
|3|JupyterLab を起動したままにすると課金されます。検証が終わったら Stop してください。環境自体が不要でしたら、作成した[ドメインも削除](https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/gs-studio-delete-domain.html)してください。JupyterLab 環境を不用意に起動したままにしておくと、まったく環境を触っていなくても高額な課金がされてしまう危険性があります。|


# Nova のプレイグラウンド
もっと簡単に Nova を試したいという方にはプレイグラウンドで確認ができます。こちらは AWS マネージドコンソール上からGUIで実行可能です。

手順は以下の通りです。

|手順|内容|
|:-----------|:-----------|
|1|リージョンは「us-east-1（バージニア北部）」を選択します。|
|2|[Amazon Bedrock](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/)に遷移します。|
|3|「Amazon Bedrock - Bedrock configurations-モデルアクセス」で「Nova Canvas」と「Nova Reel」のモデルアクセスを許可します。<br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/96b4bf92-48e4-89d8-9911-04c3aec52edc.png">
|4|「Amazon Bedrock - プレイグランド - Image / Video」を選択します。|
|5|モデルの選択で「Nova Reel」または「Nova Canvas」を選択して適用します。<br><img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/d67b2ea2-a3ca-4a82-ef56-e27e7ef89d16.png">|

Nova Canvas　の場合は、Action で 実施したいアクションを選択して実行します。

<img width="300" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/a5e032ef-48e5-d16f-b258-4e216ea7b487.png">

プロンプトを入力して画像生成を確認できます。

<img width="800" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/582c4759-913f-7b91-68ef-0a82531c895a.png">

Nova Reel 場合は、生成されたビデオは S3 bucket にmp4形式で保存されます。

<img width="400" alt="photo" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/0662dc80-5230-0cdd-b890-86114ca98e94.png">

コードやパラメータを気にせず、画像や動画の作成精度を確認したい方はこちらでお手軽にご確認ください。


# まとめ
この記事では AWS re:Invent 2024 で Workshop に参加した「Amazon Nova」の画像生成、動画生成機能についてまとめました。COE Keynote で発表されたときに「すぐに触ってみたい」という気持ちになり、Workshop に参加できたのは、非常に幸運でした。Workshop ではそれぞれの機能を丁寧に紹介してくれていたので、コードやパラメータの内容も含めて、理解を深めることができました。Nova 自体、今後も性能向上や機能の充実が図られる予定とのことなので、今後も進化が楽しみです。

また、Workshop のデータが一般公開されているので、誰でも自分の環境で実施できることもあり、この記事をきっかけに Nova を体験する人が増えると嬉しいです。

最後までお読みいただき、ありがとうございました。