[Amazon Bedrock AgentCore] 画像分析からコンセプト作成・作詞・リップシンク判定まで Claude が自律判断するMV生成エージェントを Strands Agents で作ってみました

[Amazon Bedrock AgentCore] 画像分析からコンセプト作成・作詞・リップシンク判定まで Claude が自律判断するMV生成エージェントを Strands Agents で作ってみました

Amazon Bedrock AgentCore と Claude を使ったMV自動生成エージェントを実装しました。S3 に画像を置くだけで、AI がコンセプト生成から作詞・リップシンク判定まで自律的に行い、ミュージックビデオを生成します。
2026.06.28

1 はじめに

製造ビジネステクノロジー部の平内(SIN)です。

本記事では、Amazon Bedrock AgentCore 上で動くミュージックビデオ(MV)自動生成エージェントを紹介します。

ユーザが準備するのは、数枚の画像をS3に置くだけです。以降の判断はすべて Claude が自律的に行います。

ステップ Claude が自律判断する内容
画像分析 入力画像の雰囲気・ロケーション・人物から MV コンセプトを生成
コンセプト作成 画像群に合うテーマ・世界観を英語で言語化
作詞 コンセプトに沿ったオリジナル英語歌詞を生成
リップシンク判定 各画像を見て「カメラ目線の顔アップか否か」を判定し、適用カットを決定

処理フローは、Strands Agents(Claude)がツール呼び出しの順序と内容を自律的に判断する 形となっています。

最初に、この仕組みで生成したMVを見てやってください。

https://www.youtube.com/watch?v=26l8hX6kfmU

https://www.youtube.com/watch?v=MH5_Lgjfhek

なお、MV生成には、外部 API への従量課金が発生することと、ガチャ要素があるため、ある程度の試行錯誤が必要になることをあらかじめご了承ください。

サンプルコード全体は以下のリポジトリで公開しています。

Github agentcore-mv-director

2 構成

図が全体構成です。右下の S3 に画像を置き、AgentCore Runtime を呼び出すと、Strands Agent(Claude)が4つのツールを実行して MV を完成させます。

001

サービス 用途
Amazon Bedrock AgentCore Runtime エージェントのホスティング(サーバーレス・最大8時間セッション)
Amazon Bedrock Claude オーケストレーター/画像分析/コンセプト生成/作詞/リップシンク判定
Amazon S3 入力画像の保存・MV出力先・ロックファイル(二重起動防止)
AWS Secrets Manager fal.ai / ElevenLabs API キーの保管
fal.ai PixVerse v5 image-to-video による動画生成(8秒 / カット)
fal.ai Kling LipSync リップシンク処理(歌唱カットのみ)
ElevenLabs Music v2 楽曲・歌声生成(女性ボーカル)
FFmpeg 動画連結・音声合成(コンテナ内で実行)

処理フローは、概ね以下のとおりです。

aws bedrock-agentcore invoke-agent-runtime

AgentCore Runtime(コンテナ)
  └─ Strands Agent(Claude)
       ├─ [tool 1] download_input_images  → S3 input/ から画像DL
       ├─ [tool 2] generate_mv_concept    → Bedrock converse API(Claude 3 Haiku)でコンセプト生成
       ├─ [tool 3] generate_music_and_lyrics → Claude で作詞
       └─ [tool 4] produce_music_video
             ├─ Bedrock converse API(Claude 3 Haiku)でリップシンク判定(画像ごと)
             ├─ ElevenLabs Music v2 で楽曲生成
             ├─ fal.ai PixVerse v5 で動画生成(カットごと)
             ├─ fal.ai Kling LipSync でリップシンク(対象カットのみ)
             ├─ FFmpeg で連結・音声合成
             └─ S3 output/mv.mp4 にアップロード

3 Strands Agents によるAIオーケストレーション

Strands Agents は AWS が公開している OSS の Python エージェントフレームワークで、@tool デコレータと Agent クラスを使って、Claude に「何をいつ呼ぶか」を判断させることができます。

Github main.py

(1) ツールの定義

Strands では、@tool デコレータを付けた関数が「Claude が呼べるツール」になります。関数の docstring がツールの説明として Claude に渡されます。

from strands import Agent, tool

@tool
def download_input_images() -> str:
    """S3のinput/フォルダから入力画像を全てダウンロードする。
    次のステップ(コンセプト生成・絵コンテ作成)で必要な画像を準備する。
    必ず最初に呼ぶこと。
    """
    print("[tool:start] download_input_images", flush=True)
    tmpdir = Path(tempfile.mkdtemp())
    _session["tmpdir"] = tmpdir
    imgs = _download_prefix(f"s3://{S3_BUCKET}/input/", tmpdir)
    _session["images"] = imgs
    print(f"[tool:done] download_input_images: {len(imgs)}枚", flush=True)
    return f"{len(imgs)}枚の画像をダウンロードしました: {[p.name for p in imgs]}"

ツールの戻り値は文字列で、次のツールを選ぶ際の判断材料として Claude に渡されます。

(2) ツール間のデータ共有(_session

Strands のツールは互いに独立した関数ですが、1回の invoke の中で複数のツールが連携するには、データの受け渡し手段が必要です。本実装では、モジュールスコープの辞書 _session を使っています。

_session: dict = {}

今回の実装では、各ツールを横断する一貫したデータの保持が多いので、ツールに毎回引数を用意するのではなく、_session 辞書を介して Python オブジェクトをそのまま引き継ぐ方式としています。各ツールがこの辞書に書き込み・読み込みを行っています。

# generate_mv_concept: _session["images"] を読み、_session["concept"] に書く
@tool
def generate_mv_concept() -> str:
    """ダウンロード済みの画像を分析してMVのコンセプトを自動生成する。
    Bedrock の converse API(Claude 3 Haiku)が画像の雰囲気・ロケーション・ムードを読み取りコンセプト文を返す。
    download_input_images の後に呼ぶこと。
    """
    imgs = _session.get("images", [])
    concept = generate_concept_from_images(imgs)
    _session["concept"] = concept
    print(f"[tool:done] generate_mv_concept", flush=True)
    print(f"  → コンセプト: {concept}", flush=True)
    return f"生成されたコンセプト: {concept}"

# generate_music_and_lyrics: _session["concept"] を読み、_session["music_spec"] に書く
@tool
def generate_music_and_lyrics() -> str:
    """コンセプトに合う楽曲スタイルと英語歌詞を生成する。
    generate_mv_concept の後に呼ぶこと。
    """
    concept = _session.get("concept", "A cinematic music video")
    spec = generate_music_spec(concept)
    _session["music_spec"] = spec
    print(f"  → 楽曲スタイル: {spec['prompt']}", flush=True)
    return f"楽曲スタイル: {spec['prompt']}"

(3) システムプロンプトによるガードレール

AIオーケストレーションの課題の1つは、Claude が「余計なことをしない」保証をどう作るかです。LLM の自律的な判断は柔軟性をもたらしますが、その自由度がコスト爆発(同じ API を繰り返し呼ぶなど)につながるリスクもあります。

本実装では、Agent に渡すシステムプロンプトに明示的なガードレールを組み込んでいます。

DIRECTOR_SYSTEM_PROMPT = """あなたはミュージックビデオ(MV)のクリエイティブディレクターです。
ツールを使って、S3に保存された画像から完成度の高いMVを自律的に制作してください。

## ★ 絶対に守るガードレール(最優先)

### ツール呼び出しの制限
- 各ツールは **必ず1回だけ** 呼ぶ。同じツールを2回以上呼んではいけない
- ツールは **必ず下記の順番通り** に呼ぶ。順番を変えてはいけない
- 指定された4つ以外のツールを呼んではいけない
- ツールが成功しても失敗しても、**同じツールをリトライしてはいけない**

### エラー時の対応
- ツールがエラーを返したら **即座に処理を停止** してエラー内容を報告する

### 費用に関する注意
- 各ツールの呼び出しは外部API(fal.ai・ElevenLabs)への課金が発生する
- 不要な繰り返しは直接コストにつながるため、**一度きりの実行を厳守する**

## ツールの実行順序(厳守・各1回のみ)

1. download_input_images     — S3から画像を取得(必ず最初)
2. generate_mv_concept       — 画像からコンセプトを生成
3. generate_music_and_lyrics — 楽曲スタイルと英語歌詞を生成
4. produce_music_video       — MV生成・S3出力(これで終了)

produce_music_video 完了後は結果を報告して終了。それ以上の処理は一切行わないこと。
"""

「各ツール1回のみ」「エラー時は即停止」「リトライ禁止」を明示することで、外部 API への過剰呼び出しを抑制しています。

(4) Agent の起動

4つのツールと上記のシステムプロンプトを Agent に渡し、"MVを作成してください" という一言で処理が始まります。

@app.entrypoint
def invoke(payload: dict) -> dict:
    _session.clear()
    try:
        agent = Agent(
            system_prompt=DIRECTOR_SYSTEM_PROMPT,
            tools=[
                download_input_images,
                generate_mv_concept,
                generate_music_and_lyrics,
                produce_music_video,
            ],
        )
        agent("MVを作成してください")

        sb = _session.get("storyboard")
        result = _session.get("result", {})
        return {
            "concept": _session.get("concept", ""),
            "lipsync_cuts": [c.n for c in sb.cuts if c.is_singing] if sb else [],
            "total_sec": sum(c.sec for c in sb.cuts) if sb else 0,
            "s3_uri": result.get("s3_uri", ""),
        }
    finally:
        _session.clear()
        if S3_BUCKET:
            _release_lock(S3_BUCKET)

agent("MVを作成してください") を呼ぶと、Claude はシステムプロンプトと4つのツールの docstring を読み、順番にツールを呼び出します。各ツールの戻り値(文字列)が Claude への入力として渡され、次のツールを選ぶ判断材料になります。

4 各コンポーネントの実装

(1) 画像分析とコンセプト生成

generate_mv_concept ツールが呼ばれると、S3 からダウンロード済みの画像群を Bedrock の converse API(Claude 3 Haiku)に渡し、MVのコンセプトを英語で生成します。

Github mvcore/director.py

def generate_concept_from_images(images: list[Path]) -> str:
    content = []
    for img in images:
        content.append({
            "image": {"format": fmt, "source": {"bytes": img.read_bytes()}}
        })
    content.append({
        "text": (
            "これらの画像を見て、ミュージックビデオのコンセプトを英語で1〜2文で生成してください。"
            "画像の雰囲気・ロケーション・人物・ムードを反映させてください。"
            "返答はコンセプト文のみ。余分な説明は不要。"
        )
    })
    resp = boto3.client("bedrock-runtime").converse(
        modelId="anthropic.claude-3-haiku-20240307-v1:0",
        system=[{"text": "あなたはMVのクリエイティブ・ディレクターです。"}],
        messages=[{"role": "user", "content": content}],
    )
    return resp["output"]["message"]["content"][0]["text"].strip()

複数の画像をまとめて1つのリクエストで送り、画像群全体の雰囲気を踏まえたコンセプトを生成します。

(2) Claude による作詞

Strands Agent の structured_output メソッドを使い、楽曲スタイルと歌詞を構造化された形式で取得します。

class MusicPlan(BaseModel):
    music_prompt: str = Field(description="楽曲スタイルの指示(英語)")
    lyrics: str = Field(description="オリジナル歌詞")

def generate_music_spec(concept: str) -> dict:
    agent = Agent(system_prompt="あなたは作詞家です。...")
    plan: MusicPlan = agent.structured_output(MusicPlan, f"コンセプト: {concept}")
    return {"prompt": plan.music_prompt, "lyrics": plan.lyrics}

structured_output は Strands Agents の Agent クラスが提供するメソッドで、Claude の出力を Pydantic モデルに型付けして受け取ることができるため、後続処理がシンプルになります。

(3) リップシンク判定

produce_music_video ツールの中で、各画像に対してリップシンクを適用するかどうかを Bedrock の converse API(Claude 3 Haiku)が判定します。

def should_lipsync(image: Path) -> bool:
    content = [
        {"image": {"format": fmt, "source": {"bytes": image.read_bytes()}}},
        {
            "text": (
                "この画像を見てください。"
                "人物の顔がアップで映っており、かつカメラ(視聴者)の方を向いている場合は YES、"
                "それ以外(風景・引きのショット・横顔・後ろ姿など)は NO と答えてください。"
                "YES か NO のみ返答してください。"
            )
        },
    ]
    resp = boto3.client("bedrock-runtime").converse(
        modelId="anthropic.claude-3-haiku-20240307-v1:0",
        system=[{"text": "You are an image analyst. Reply with exactly one word: YES or NO."}],
        messages=[{"role": "user", "content": content}],
    )
    answer = resp["output"]["message"]["content"][0]["text"].strip().upper()
    result = answer.startswith("YES")
    print(f"[should_lipsync] {image.name}: answer={answer!r} -> {result}", flush=True)
    return result

(4) ElevenLabs Music v2 による楽曲生成

Claude が生成した楽曲スタイルと歌詞を ElevenLabs Music v2 に送り、歌入りの楽曲(MP3)を生成します。

Github mvcore/tools/music.py

body = {
    "prompt": f"{prompt}, vocals start within the first 8 seconds\nLyrics:\n{lyrics}",
    "music_length_ms": length_ms,
    "model_id": "music_v2",
    "force_instrumental": False,
}
r = httpx.post(ENDPOINT, headers={"xi-api-key": ELEVENLABS_API_KEY}, json=body, timeout=300)
r.raise_for_status()
out.write_bytes(r.content)

vocals start within the first 8 seconds という指示を加えているのは、前奏が長引いて、リップシンクが生きなくなることを避けるためのプロンプトです。

(5) 動画生成パイプライン

produce_music_video ツールは、絵コンテの組み立てから最終的な S3 アップロードまでをすべて担います。

Github mvcore/pipeline.py

for cut in sb.cuts:
    # 各画像を起点に image-to-video で8秒クリップを生成
    model, start = I2V_MODEL, prepare_image(cut.image)
    clip = generate_video(model, cut.prompt, cut.sec, cut.n, start_image=start)

    # リップシンク対象カットのみ、その時間帯の音声で口元同期
    if cut.is_singing:
        seg = slice_audio(music, offset, cut.sec, cut.n)
        clip = lipsync(clip, seg, cut.n)

    clips.append(clip)
    offset += cut.sec

mv = assemble_mv(clips, music)   # FFmpeg で連結・音声合成
s3_uri = upload_to_s3(mv)        # S3 へアップロード

各カットは独立した画像から image-to-video で生成します。
当初、前のカットの最終フレームを引き継ぐ方式を試していたのですが、どうしても画質劣化を抑えることが難しいため、1カットごとに処理しています。ただし、PixVerseには、連続動画を作成する機能(extend機能)があるので、これをうまく利用すれば、この制約は避けることができるかも知れません(参考:fal-ai/pixverse/extend)

5 CDK によるインフラ構築

インフラは AWS CDK(TypeScript)で定義しています。主要なリソースは S3・Secrets Manager・IAM ロール・AgentCore Runtime の4つです。

Github cdk/lib/agentcore-mv-director-stack.ts

// コンテナイメージ:リポジトリ直下をビルドコンテキストに指定
const artifact = agentcore.AgentRuntimeArtifact.fromAsset(
  path.join(__dirname, "..", ".."),
);

const runtime = new agentcore.Runtime(this, "MvDirectorRuntime", {
  runtimeName: "agentcore_mv_director",
  agentRuntimeArtifact: artifact,
  executionRole: role,
  environmentVariables: {
    S3_BUCKET: bucket.bucketName,
    SECRET_ARN: secret.secretArn,
    OUTPUT_DIR: "/tmp/output",
  },
});

AgentRuntimeArtifact.fromAsset() はリポジトリ直下の Dockerfile を使って Docker イメージをビルドし、AgentCore Runtime に設定します。

(1) デプロイ手順

git clone https://github.com/furuya02/agentcore-mv-director.git
cd agentcore-mv-director/cdk
pnpm install
pnpm run cdk deploy -- --require-approval never

デプロイ後、Secrets Manager に API キーを登録します。

aws secretsmanager put-secret-value \
  --secret-id agentcore-mv-director-api-keys \
  --secret-string '{"FAL_KEY":"...","ELEVENLABS_API_KEY":"..."}'

6 動作確認

(1) 入力画像のアップロード

aws s3 cp input/ s3://agentcore-mv-director-<ACCOUNT_ID>/input/ --recursive

ファイル名は 1.jpg2.jpg のように利用したい順に連番を入れます。連番の細かい仕様はありません。数字を検出して順番に利用します。

(2) エージェントの呼び出し

echo '{}' > /tmp/payload.json

aws bedrock-agentcore invoke-agent-runtime \
  --agent-runtime-arn "<RUNTIME_ARN>" \
  --payload fileb:///tmp/payload.json \
  --cli-read-timeout 0 \
  --region ap-northeast-1 \
  /tmp/response.json && cat /tmp/response.json

ペイロードは空の JSON {} だけです。Claude が画像の内容を見てコンセプトを考え、以降の工程をすべて自律的に進めます。

(3) CloudWatch ログで AI の判断を確認

aws logs tail "/aws/bedrock-agentcore/runtimes/<agent_id>-DEFAULT" \
  --follow --format short --region ap-northeast-1

各ツールの開始・終了と、Claude の判断内容がログに出力されます。

============================================================
[tool:start] generate_mv_concept
  対象画像: 3枚
[tool:done] generate_mv_concept
  → コンセプト: A cinematic journey through sun-drenched streets...
============================================================
[tool:start] produce_music_video
  [絵コンテ組み立て中] Claude 3 Haiku でリップシンク判定...
[should_lipsync] 1.jpg: answer='YES' -> True
[should_lipsync] 2.jpg: answer='NO' -> False
[should_lipsync] 3.jpg: answer='YES' -> True
  [絵コンテ完成] 3カット / 総尺 24秒
    cut1: 8秒 [✓ リップシンク対象] portrait of woman looking directly at camera...
    cut2: 8秒 [  映像のみ        ] panoramic view of golden hills at sunset...
    cut3: 8秒 [✓ リップシンク対象] close-up of woman singing...
[tool:done] produce_music_video
  → S3 URI: s3://agentcore-mv-director-<ACCOUNT_ID>/output/mv.mp4

画像ごとのリップシンク判定結果(YES/NO)と処理の進捗が可視化されています。

7 実際のログ確認

では、実際に動作したログを簡単に追ってみます。(ログは抜粋です)

(1) 画像のダウンロード

まず、最初にS3に置いたファイルは以下の3つです。

002

Tool #1: download_input_images
============================================================
[tool:start] download_input_images
S3プレフィックス: s3://agentcore-mv-director-xxxxxxxxxxxx/input/
[tool:done] download_input_images: 3枚
[1] 01.png
[2] 02.png
[3] 03.png
画像3枚のダウンロード完了です!続いて、画像を分析してMVのコンセプトを生成します。

(2) コンセプト生成

Tool #2: generate_mv_concept
============================================================
[tool:start] generate_mv_concept
  対象画像: 3枚
[tool:done] generate_mv_concept
→ コンセプト: A carefree, bohemian summer adventure set against the vibrant, sun-drenched backdrop of a picturesque Mediterranean coastal town, where a group of free-spirited young individuals embrace the joyful, laidback lifestyle and the exhilaration of exploration.
コンセプトが確定しました!地中海の海岸町を舞台にした、自由奔放な夏の冒険というテーマですね。次に、楽曲スタイルと歌詞を生成します。

生成されたコンセプトは、以下のようになっていました。
(日本語訳)

太陽の光が降り注ぐ、絵画のように美しい地中海沿岸の町を舞台に繰り広げられる、
気ままなボヘミアン・スタイルの夏の冒険。そこでは、自由な精神を持つ若者たちが、
陽気でゆったりとしたライフスタイルと、未知の世界を探求する高揚感を謳歌しています。

(3) 歌詞の作成

先に生成されたコンセプトに基づいて、楽曲スタイルと歌詞が生成されています。

Tool #3: generate_music_and_lyrics
============================================================
[tool:start] generate_music_and_lyrics
  コンセプト: xxxxxxxxxx
Tool #1: MusicPlan
[tool:done] generate_music_and_lyrics
  → 楽曲スタイル: Upbeat indie pop with sun-soaked acoustic guitar riffs, breezy ukulele layers, light percussion with a carefree shuffle beat, warm bass groove, and dreamy synth accents. Inspired by Mediterranean folk rhythms blended with modern bohemian indie vibes. Bright, airy production with a feel-good summer energy. Tempo around 115 BPM, major key."
  → 歌詞(先頭200文字):
[Verse 1]
Barefoot on the cobblestone at the break of dawn
Tangled hair and painted skies, we just keep moving on
Salt on our lips from the midnight tide
Laughing with no reason, nowhere left to hide
楽曲スタイルと歌詞も完成しました!アップビートなインディーポップで、地中海フォークのリズムを取り入れた爽やかなサウンドです。いよいよMVを生成します!

楽曲スタイル

陽光あふれるアコースティックギターのリフ、軽やかなウクレレのレイヤー、
気ままなシャッフル・ビートを刻む軽快なパーカッション、温かみのあるベース・グルーヴ、
そして夢見心地なシンセのアクセントが特徴の、アップビートなインディー・ポップ。地中海のフォーク・リズムと、
現代的なボヘミアン・インディーの雰囲気を融合させたスタイルです。
夏らしい心地よいエネルギーに満ちた、明るく開放的なサウンドに仕上がっています。
テンポは約115 BPM、メジャー・キー。

歌詞

夜明けの石畳を裸足で歩く
髪を乱し、空が色づく中、私たちはただ進み続ける
真夜中の潮風が唇に塩の味を残し
理由もなく笑い合う、もう隠れる場所なんてない

(4) 絵コンテ作成

各画像がリップシンクの対象となるかどうかが確認されています。

[絵コンテ組み立て中] Claude 3 Haiku でリップシンク判定...
[should_lipsync] 01.png: answer='NO' -> False
[should_lipsync] 02.png: answer='NO' -> False
[should_lipsync] 03.png: answer='YES' -> True

それぞれのカットを8秒単位でコマ割りしています。

[絵コンテ完成] 3カット / 総尺 24秒
   cut1: 8秒 [  映像のみ] Subtle natural cinematic motion, city pop night mood"
   cut2: 8秒 [  映像のみ] Subtle natural cinematic motion, city pop night mood"
   cut3: 8秒 [✓ リップシンク対象] The person sings to the camera, gentle head movement, cinema"

(5) 動画生成

動画は、FFmpeg によって入力画像を 3:2 にクロップし、fal.ai 経由で、PixVerse で生成されます。cut1〜cut2は、動画生成だけですが、cut3は、動画生成の後、同じくfal.ai 経由で、Klingを呼び出すことで、リップシンクの動画へと変換しています。

[video cut1] fal status: IN_PROGRESS
[video cut1] fal status: IN_PROGRESS
...
[video cut1] fal status: COMPLETED
(略)

[video cut2] fal status: IN_PROGRESS
[video cut2] fal status: IN_PROGRESS
...
[video cut2] fal status: COMPLETED
(略)

[video cut3] fal status: IN_PROGRESS
[video cut3] fal status: IN_PROGRESS
...
[video cut3] fal status: COMPLETED
(略)

[lipsync cut3] fal status: IN_PROGRESS
[lipsync cut3] fal status: IN_PROGRESS
...
[lipsync cut3] fal status: COMPLETED

(6) 結合

生成された曲と動画は、最後にFFmpegで結合されて、完成となります。

## 🎬 MV制作完了!
全工程が正常に完了しました。制作内容をまとめます。
### 📋 制作サマリー
| 項目 | 内容 |
|---|---|
| **使用画像** | 3枚(01.png / 02.png / 03.png) |
| **総尺** | 24秒(8秒 × 3カット) |
| **コンセプト** | 地中海沿岸の街を舞台にした、自由奔放な夏の冒険 |
| **楽曲スタイル** | アップビート・インディーポップ / 約115 BPM |
| **リップシンク** | カット3(正面顔のアップショット)に適用 |
| **出力先** | `s3://agentcore-mv-director-<ACCOUNT_ID>/output/mv.mp4` |

8 コストについて

本構成では外部 API への従量課金が発生します。実行前に以下の目安を参考にしてください。

項目 目安
動画生成(fal.ai PixVerse v5) $0.05〜0.10 / カット
リップシンク(fal.ai Kling) $0.05 / 歌唱カット
楽曲生成(ElevenLabs Music v2) $0.03 / トラック
AgentCore Runtime 消費ベース(I/O 待機は無課金)
Bedrock Claude トークン量に依存

3枚の画像から24秒 MV を生成した場合(リップシンクが2カットの場合)の概算は $0.30〜0.50 程度です。

AgentCore Runtime は処理中の外部 API 応答待ちが無課金のため、今回のように待ち時間が大半を占めるワークロードとは、相性が良いと思いました。

9 まとめ

今回は、Amazon Bedrock AgentCore 上で Strands Agents を使ったMV自動生成エージェントを実装してみました。

Claude の自律判断によって、画像分析によるコンセプト生成・作詞・リップシンク判定などは、AIが全面的に担えている反面、コスト保護の観点から、システムプロンプトに色々なガードレールを入れたことで、全体のオーケストレーションとしては、自由度がかなり低くなってしまったなと感じています。
もし、コストを気にしなくてよければ、この辺のガードレールを外して、自由にオーケストレーションさせてみたいなと思っています。

また、今回、動画カットの先頭画像は、「ユーザー入力」としましたが、もちろん、これも生成の対象にすることは可能です。
しかし、画像生成もプロンプトとなると、なかなか思ったイメージを伝えることが難しかったため、今回の方式としました。使用したのは、過去に私がMidjourneyで作成したものです。

003

10 参考リンク


Claudeならクラスメソッドにお任せください

クラスメソッドは、Anthropic社とリセラー契約を締結しています。各種製品ガイドから、業種別の活用法、フェーズごとのお悩み解決などサービス支援ページにまとめております。まずはご覧いただき、お気軽にご相談ください。

サービス詳細を見る

この記事をシェアする

関連記事