Operations Spec · version 1.0 · 2026年8月15日
Seedance 2.5・MiniMax H3・Veo 3.1 を Claude Code から MCP 経由で統合制御し、1〜3名のチームで5〜20分の短編〜中編を反復制作するための技術仕様。「著作物性を証跡化する運用」を中核に設計しています。
目次
設計思想
2026年の実務では、作業単位はプロンプトではなく脚本ビート・キャラクタールール・参照素材・サウンド演出・承認ステータスを束ねた構造化オブジェクトです。本仕様書ではこれを shots.json の1エントリとして定義します(§4-3)。
システム構成
| 役割 | サーバー | トランスポート | 認証 | 選定理由 |
|---|---|---|---|---|
| 動画生成の主軸 | fal.ai 公式 MCP | Streamable HTTP | Bearer <FAL_KEY> | 非同期ジョブ用ツール一式を備える唯一の主要MCP。3モデルを同一インターフェースで扱える |
| 横断バックアップ | kie.ai MCP(コミュニティ) | stdio | KIE_AI_API_KEY | Kling / Runway Aleph / Wan 等を1キーで。結果URLは14日で失効 |
| ローカルGPU・LoRA | ComfyUI MCP | HTTP / stdio | OAuth or APIキー | MiniMax H3 を日本国内でローカル配備可。キャラLoRAで最強の一貫性 |
| 音声・音楽 | ElevenLabs 公式 MCP | stdio | ELEVENLABS_API_KEY | 公式。ELEVENLABS_MCP_BASE_PATH で出力先を制御 |
| 編集・結合 | 使わない(Bash + ffmpeg) | — | — | P5 参照 |
Claude Desktop / claude.ai のカスタムコネクタは OAuth 2.0 が必須のため、Bearerヘッダ認証の fal.ai MCP は登録できません。加えて Bash・ファイル操作・サブエージェント並列が必要なため、Claude Code(または Claude Agent SDK)が事実上の唯一の選択肢です。Higgsfield MCP と Comfy MCP は OAuth対応のため Claude Desktop からも利用可能ですが、パイプライン全体を回すには不足します。
環境構築手順
uv / uvx)ffmpeg -version で確認)FAL_KEY、ELEVENLABS_API_KEY、(任意)KIE_AI_API_KEY.mcp.json(プロジェクトルートに配置){
"mcpServers": {
"fal-ai": {
"type": "http",
"url": "https://mcp.fal.ai/mcp",
"headers": { "Authorization": "Bearer ${FAL_KEY}" },
"timeout": 1800000
},
"kie-ai": {
"type": "stdio",
"command": "node",
"args": ["${CLAUDE_PROJECT_DIR:-.}/vendor/kie-ai-mcp/dist/index.js"],
"env": { "KIE_AI_API_KEY": "${KIE_AI_API_KEY}" },
"timeout": 1800000
},
"elevenlabs": {
"type": "stdio",
"command": "uvx",
"args": ["elevenlabs-mcp"],
"env": {
"ELEVENLABS_API_KEY": "${ELEVENLABS_API_KEY}",
"ELEVENLABS_MCP_BASE_PATH": "${CLAUDE_PROJECT_DIR:-.}/assets/audio",
"ELEVENLABS_MCP_OUTPUT_MODE": "files"
},
"timeout": 900000
}
}
}type に streamable-http も http のエイリアスとして使用可url があるのに type がないエントリはエラー(stdioと誤解釈され読み飛ばされる)${VAR} と ${VAR:-default} に対応--scope project で追加すれば VCS にコミットしてチーム共有できる# fal.ai(リモートHTTP) claude mcp add --transport http fal-ai https://mcp.fal.ai/mcp \ --header "Authorization: Bearer $FAL_KEY" # ElevenLabs(ローカルstdio)— "--" 以降がサーバー起動コマンド claude mcp add --env ELEVENLABS_API_KEY=$ELEVENLABS_API_KEY --transport stdio elevenlabs \ -- uvx elevenlabs-mcp # 確認 claude mcp list # ✔ Connected / ! Needs authentication / ✘ Failed claude mcp get fal-ai
※ --env の直後にサーバー名を置くと名前が KEY=value として誤読されます。間に別オプション(上例では --transport)を挟んでください。
動画生成でつまずく原因の9割はここです。
| 項目 | デフォルト | 制御方法 |
|---|---|---|
| ツール実行の壁時計上限 | 約28時間 | サーバー別 timeout(ms)/MCP_TOOL_TIMEOUT |
| HTTP/SSE の初回応答タイマー | 60秒 | サーバー別 timeout を60秒以上に設定すると引き上がる(下げることは不可) |
| アイドルタイムアウト | HTTP/SSE: 5分、stdio: 30分 | CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT(ms、0で無効化) |
| 長時間呼び出しの自動バックグラウンド化 | 2分 | CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS |
| MCP出力トークン上限 | 25,000(10,000超で警告) | MAX_MCP_OUTPUT_TOKENS |
export CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT=1800000 # 30分
export CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS=8
export CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1
export MAX_MCP_OUTPUT_TOKENS=50000① サーバー別 timeout は「進捗通知では延長されない」ハード上限。notifications/progress を送っても壁時計は止まりません。
② timeout を1000以上に設定すると、アイドルタイムアウトの下限にもなる。上例の 1800000(30分)指定はこれを狙ったもの。
③ サブエージェントからのMCP呼び出しは自動バックグラウンド化されない(メイン会話の呼び出しのみが対象)。ショット生成をサブエージェント並列で回す本仕様では、サーバー別 timeout の明示設定が必須です。
ディレクトリ構造と中間成果物スキーマ
project-name/ ├── .mcp.json ├── CLAUDE.md # 作品全体のルール(全サブエージェントが継承) ├── .claude/ │ ├── agents/ # サブエージェント定義 │ └── skills/ │ ├── render-shot/SKILL.md │ ├── retake-shot/SKILL.md │ └── assemble-cut/SKILL.md ├── 00_planning/ │ ├── logline.md │ ├── treatment.md │ └── budget.json # 予算上限と消化状況 ├── 01_script/ │ └── screenplay.md # Fountain形式推奨 ├── 02_characters/ │ ├── sheet.json # キャラクターシート索引 │ └── refs/ # 正面・横・背面・表情差分 ├── 03_storyboard/ │ ├── shots.json # ★ 制作の中核。シーンパッケージの配列 │ └── boards/ # 絵コンテ画像 ├── 04_shots/ │ ├── S001_C01.mp4 │ ├── S001_C01.json # シード・モデルID・プロンプト全文・コスト │ └── _rejects/ # 不採用テイク(証跡として保管) ├── 05_audio/ { vo/ sfx/ music/ } ├── 06_edit/ { edl.json master.mp4 } └── 99_logs/ { generation_log.jsonl compliance.md }
02_characters/sheet.json{
"characters": [{
"id": "kaede",
"canonical_prompt": "24-year-old Japanese woman, shoulder-length black
hair with blunt bangs, single silver ear cuff, charcoal wool coat
over cream turtleneck, calm and slightly guarded expression",
"negative_prompt": "blonde hair, glasses, heavy makeup",
"refs": { "front": "...", "side": "...", "back": "...", "expressions": ["..."] },
"voice": { "provider": "elevenlabs", "license": "commercial", "consent_record": "..." }
}]
}canonical_prompt は全ショットに文字列として完全共有します。ここを揺らすと一貫性が崩れます。
03_storyboard/shots.json — シーンパッケージ{
"target_duration_sec": 300,
"shots": [{
"id": "S001_C01", "duration_sec": 8, "aspect": "16:9",
"description": "楓が無人の駅ホームに立ち、遠くの踏切を見ている。冬の朝。",
"camera": "slow dolly-in, eye level, 50mm equivalent, shallow DoF",
"lighting": "cold overcast morning light, soft, blue-grey palette",
"characters": ["kaede"], "audio_intent": "distant crossing bell, faint wind",
"model": { "primary": "fal-ai/veo3.1/fast", "draft": "fal-ai/veo3.1/lite" },
"reference_images": ["..."],
"continuity": { "prev_shot_last_frame": null, "next_shot_first_frame_lock": true },
"status": "pending", "takes": [], "budget_usd_cap": 6.0
}]
}status の遷移:pending → drafting → review → approved / rework
04_shots/<id>.json — テイク記録(著作物性の証跡){
"takes": [
{ "take": 1, "seed": 883410221, "model_id": "fal-ai/veo3.1/fast",
"prompt_full": "(実際に送信したプロンプト全文をそのまま保存)",
"cost_usd": 1.20,
"human_judgment": "手の位置が不自然。カメラをもう一段寄せる。",
"verdict": "reject" },
{ "take": 4, "seed": 883410224, "verdict": "approved",
"human_judgment": "視線の芝居が意図どおり。採用。" }
]
}human_judgment は必ず人間が書いてください。これがAI生成物の著作物性(創作的寄与)を主張する際の中核証拠になります(§12-1)。
制作パイプライン 全9フェーズ
| Phase | 名称 | 主担当 | 出力 | 人間の関与 |
|---|---|---|---|---|
| 0 | 企画・ログライン | 人間 + Claude | logline.md | 必須(発意) |
| 1 | 脚本 | script-writer (Opus) | screenplay.md | 必須(決定) |
| 2 | キャラクター設計 | character-designer (Opus) | sheet.json | 必須(承認) |
| 3 | 絵コンテ・ショット分解 | storyboard-artist (Sonnet) | shots.json | 必須(承認) |
| 4 | ドラフト生成 | shot-generator ×N | _rejects/*.mp4 | 一括レビュー |
| 5 | 本番ショット生成 | shot-generator ×N | 04_shots/*.mp4 | ショット単位で採否判断 |
| 6 | 音声・音楽 | voice-director | 05_audio/** | 必須(演技指示) |
| 7 | 整合性チェック | continuity-checker (Opus) | 再生成対象リスト | 判断 |
| 8 | 編集・仕上げ | editor (Bash+ffmpeg) | master.mp4 | 必須(最終判断) |
人間が発意する。ここをAIに委ねると、以降すべての「創作的寄与」の主張が弱くなります。成果物:logline.md(1〜3行)、treatment.md(A4 1〜2枚)。Claudeの使い方は壁打ち相手として —「この設定の弱点を3つ挙げて」「観客が離脱するとしたらどこか」。
> script-writer サブエージェントで 00_planning/treatment.md から 5分尺(想定38ショット)の脚本を Fountain 形式で書いてください。 セリフは全体の30%以下に抑え、映像で語る構成にしてください。
canonical_prompt を人間とClaudeで詰める(ここが作品の要)02_characters/refs/ に格納キャラシートは一度確定したら変更しない。 途中で変えると、それ以前のショットが全部作り直しになります。
| 条件 | primary | draft |
|---|---|---|
| 8秒以下・標準ショット | veo3.1/fast($0.15/秒 音声付き) | veo3.1/lite($0.05/秒) |
| 2K納品必要・日本語セリフあり | minimax-h3-2k($0.13/秒) | minimax-h3-768p($0.08/秒) |
| 8〜30秒の連続ワンシーン | seedance-2.5(720p ≒$0.47/秒) | 同480p(≒$0.22/秒) |
| 既存ショットの部分修正 | minimax-h3(編集Arena1位)/局所リライト | — |
理由:Coca-Colaの事例では採用比率が約1:1000でした。総コストは「本番単価 × 最終尺」ではなく「ドラフト単価 × 総試行尺」が支配します。
1. mcp__fal-ai__submit_job → job_id を即座に受け取る 2. mcp__fal-ai__check_job → pollIntervalMs に従ってポーリング 3. mcp__fal-ai__get_job_result → 結果URLを取得 4. すぐにローカルへダウンロード(Bash: curl)
Veo の生成動画は2日で削除されます。 kie.ai 経由の結果URLは14日で失効します。取得直後のダウンロードをパイプラインに必ず組み込んでください。
1ショットあたり3テイク生成 → 人間が採否を基本とし、不採用テイクは削除せず _rejects/ に保管(証跡)。budget_usd_cap を超えたショットは自動停止。並列度は CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS=8 推奨。
日本語セリフの発音は生成後に手動修正できません(Seedance 2.5 の実測レビューで指摘)。日本語作品では映像は無音生成 → ElevenLabsで別録り → ffmpegでミックスを推奨します。
音楽は Suno Pro以上または ElevenLabs Music v2(いずれも商用クリア済み)。無料プランの生成物は商用不可(Suno Free、Kling Free、Luma Free等)なので納品物には絶対に使わない。
| 項目 | 判定基準 |
|---|---|
| キャラ外見 | 髪型・アクセサリ・服装が canonical_prompt と一致するか |
| 照明の連続性 | 隣接ショットで色温度が飛んでいないか |
| イマジナリーライン | 対話シーンで視線方向が反転していないか |
| 小道具の連続性 | 前ショットで持っていた物が消えていないか |
| 尺のリズム | 同じ長さのショットが3つ以上連続していないか |
不合格ショットは status: "rework" に戻し、Phase 5 へ。
# 1. 結合 ffmpeg -f concat -safe 0 -i 06_edit/concat.txt -c copy 06_edit/_v.mp4 # 2. カラーグレーディング ffmpeg -i 06_edit/_v.mp4 -vf "lut3d=luts/film_cold.cube" -c:a copy 06_edit/_vg.mp4 # 3. 音声ミックス(セリフ / SE / 音楽の3系統) ffmpeg -i 06_edit/_vg.mp4 -i 05_audio/vo_mix.wav -i 05_audio/sfx_mix.wav -i 05_audio/music.wav \ -filter_complex "[1:a]volume=1.0[a1];[2:a]volume=0.6[a2];[3:a]volume=0.35[a3];[a1][a2][a3]amix=inputs=3:duration=longest[aout]" \ -map 0:v -map "[aout]" -c:v copy -c:a aac -b:a 192k 06_edit/master.mp4 # 4. ラウドネス正規化(-14 LUFS) ffmpeg -i 06_edit/master.mp4 -af loudnorm=I=-14:TP=-1.5:LRA=11 -c:v copy 06_edit/master_norm.mp4
Seedance 2.5 は720p上限のため、1080p以上の納品には二次アップスケール(Topaz Video AI等)が必須です。
サブエージェント定義
サブエージェントが継承するもの:自身のシステムプロンプト、Agentツールのプロンプト文字列、プロジェクト CLAUDE.md、ツール定義。
サブエージェントが継承しないもの:親の会話履歴・ツール結果・システムプロンプト、プリロードされていないSkill内容。
したがって、キャラクター設定・スタイルガイド・参照画像パスは、Agentツールのプロンプト文字列に毎回明示的に埋め込む必要があります。 これが一貫性維持の実装上の要点です。
| 上限 | 環境変数/設定 | デフォルト |
|---|---|---|
| ネスト深度 | CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH | 3層 |
| 同時実行数 | CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS | 20 |
| 費用上限 | maxBudgetUsd(TS)/max_budget_usd(Py) | 無制限 |
Opus 5 は他モデルより積極的にサブエージェントへ委任するため、上記3つの上限設定が特に重要(公式明記)。
import { query } from "@anthropic-ai/claude-agent-sdk"; for await (const message of query({ prompt: "shots.json の status:pending 全ショットを本番生成してください", options: { allowedTools: ["Read", "Write", "Bash", "Glob", "Agent"], env: { CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS: "8", CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT: "1800000", }, maxBudgetUsd: 200, agents: { "shot-generator": { prompt: `1. shots.json から指定ショットを読む 2. sheet.json から canonical_prompt と参照画像を読む 3. プロンプト = [canonical_prompt] + [description] + [camera] + [lighting] canonical_prompt は一字一句変更しない 4. submit_job で投入する。同期実行(run_model)は使わない 5. check_job でポーリング → get_job_result で結果URL取得 6. curl で即座にローカル保存(URLは失効する) 7. seed / model_id / prompt_full / cost_usd を記録`, tools: ["Read", "Write", "Bash", "mcp__fal-ai"], model: "sonnet", background: true, maxTurns: 40, }, "continuity-checker": { model: "opus", tools: ["Read","Glob","Bash"] }, "script-writer": { model: "opus", tools: ["Read","Write"] }, }, }, })) { if ("result" in message) console.log(message.result); }
リテイク時の再開:Agentツールの結果に agentId が含まれます。resume: sessionId +プロンプト内での agentId 指定で、会話履歴ごと再開できます。
ターンごとのサブエージェント委任ではなく、Workflow ツール(TypeScript Agent SDK v0.3.149+)でオーケストレーションを会話コンテキスト外のスクリプトに移すのが公式推奨です。長編(数百ショット)ではこちらを使ってください。
Skills 定義
Skillsの本文は使用時にのみロードされるため、長いリファレンス(プロンプト規約、モデル選択表、キャラ設定)を安価に持てます。
.claude/skills/render-shot/SKILL.md--- name: render-shot description: 絵コンテJSONの1ショットを動画化する。ショットIDを引数に取る。 argument-hint: [shot-id] context: fork agent: shot-generator background: true model: sonnet allowed-tools: Read Write Bash(curl *) Bash(ffprobe *) --- ショット $0 を生成する: 1. shots.json から shot $0 の定義を読む 2. sheet.json から canonical_prompt と参照画像を取得 3. プロンプト構成: [canonical_prompt] + [description] + [camera] + [lighting] 4. submit_job で model.primary に投入。参照画像を必ず添付 5. check_job でポーリング → get_job_result のURLを curl で即座に保存 6. ffprobe で尺・解像度・音声トラックを検証 7. take エントリ(seed / model_id / prompt_full / cost_usd)を追記 8. shots.json の status を "review" に更新
| フィールド | 用途 |
|---|---|
context: fork | スキルを専用サブエージェントコンテキストで実行(background デフォルト true) |
agent | fork時に使うサブエージェント種別 |
allowed-tools | そのターン中だけ権限プロンプトを省略。同梱スクリプトを無確認実行可 |
disallowed-tools | 自律ループで AskUserQuestion を封じる等 |
model / effort | スキル単位でモデル・推論強度を切替 |
paths | 特定ファイル操作時のみ自動起動 |
disable-model-invocation | /render-shot のように手動専用にする |
変数展開:${CLAUDE_SKILL_DIR}、${CLAUDE_PROJECT_DIR}、$ARGUMENTS / $0 $1… 出典:Claude Code: Skills
キャラクター一貫性の担保
単一手法では長編は成立しません。4つを併用します。
| 手法 | 内容 | 強度 | コスト |
|---|---|---|---|
| 参照画像 | Veo 3.1 は最大3枚、MiniMax H3 は画像9点、Seedance 2.5 は最大30枚 | 基礎(必須) | H3は6枚目以降 各$0.04 |
| フレーム連結 | 前ショットの最終フレームを次ショットの開始フレームに使う。Veoのシーン延長は7秒×最大20回 | 中 | — |
| キャラ学習 | Higgsfield Soul/ComfyUI + LoRA(ローカル) | 最強 | GPU+学習時間 |
| 運用側の担保 | シード固定・canonical_prompt の文字列共有・生成後の整合性検査 | 必須 | — |
<id>.json)canonical_prompt を文字列として完全共有(サブエージェントが会話履歴を継承しないため、毎回埋め込む)continuity-checker による生成後検査 → 不合格ショットのみ再生成コスト管理と品質ゲート
{
"total_cap_usd": 500,
"phase_caps": { "draft": 30, "production": 350, "audio": 60, "retake_reserve": 60 },
"per_shot_default_cap_usd": 6.0
}maxBudgetUsd でハード上限をかける(超過時 error_max_budget_usd を返す)budget_usd_cap で暴走を局所化するgeneration_log.jsonl から実績を集計し spent を更新| ゲート | 通過条件 | 判定者 |
|---|---|---|
| G1(Phase 3後) | 全ショットに camera / lighting / model が埋まっている | 人間 |
| G2(Phase 4後) | ドラフトで構成が成立している。不要ショットを削除済み | 人間 |
| G3(Phase 5後) | 全ショット approved。各ショットに human_judgment が記録済み | 人間 |
| G4(Phase 7後) | continuity-checker の指摘がゼロ | Claude + 人間 |
| G5(Phase 8後) | ラウドネス規格内。透かし・出所表示を確認 | 人間 |
運用チェックリスト
.mcp.json に timeout: 1800000 を全動画サーバーに設定したCLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT を設定したclaude mcp list で全サーバーが ✔ Connectedffmpeg / ffprobe が動くmaxBudgetUsd を設定したcanonical_prompt を一字一句変更していないsubmit_job(非同期)を使った。run_model(同期)を使っていないseed / model_id / prompt_full / cost_usd を記録したhuman_judgment を人間が書いたgeneration_log.jsonl が全ショット分揃っている_rejects/ に保管されているトラブルシューティング
| 症状 | 原因 | 対処 |
|---|---|---|
| 生成が60秒でタイムアウトする | HTTP MCP の初回応答タイマー | .mcp.json にサーバー別 timeout: 1800000 を設定 |
| 5分で「no response」になる | アイドルタイムアウト | CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT=1800000 |
| サブエージェントだけタイムアウトする | MCP呼び出しは自動バックグラウンド化されない | サーバー別 timeout を必ず設定(環境変数だけでは不足) |
| 出力が途中で切れる | MCP出力トークン上限(既定25,000) | MAX_MCP_OUTPUT_TOKENS=50000。または結果をファイル経由で受け渡す |
| 動画URLが404になる | Veoは2日、kie.aiは14日で失効 | 取得直後にダウンロードする工程を必ず入れる |
| キャラの顔が揺れる | canonical_prompt の揺らぎ/参照画像不足 | プロンプトを文字列共有。参照画像を増やす(Seedance 2.5なら最大30枚) |
| 日本語セリフの発音が変 | ネイティブ音声は生成後に修正できない | 映像は無音生成し、ElevenLabsで別録り |
| 1080p納品できない | Seedance 2.5 は720p上限 | Topaz Video AI等で二次アップスケール、または MiniMax H3 2K |
| Claude Desktop に fal.ai MCP を追加できない | カスタムコネクタは OAuth 2.0 必須 | Claude Code を使う |
| 途中でサブエージェントが止まる | 並列上限/予算上限に到達 | 並列数・maxBudgetUsd を確認 |
権利・コンプライアンス運用
文化庁「AIと著作権に関する考え方について」(令和6年3月15日)は、AI生成物の著作物性を利用者の創作意図と創作的寄与の程度で判断するとしています。米国著作権局も同方向で、プロンプトのみでは人間の著作者性を満たさないとしています。
IPライセンス事業を行うなら、著作物性が認められることが前提です。プロンプト一発生成物は、そもそもライセンスの対象になりません。
| 証跡 | 保存場所 | 何を示すか |
|---|---|---|
| ログライン・トリートメント | 00_planning/ | 人間の発意 |
| 脚本の改稿履歴(git) | 01_script/ | 構成の決定 |
| canonical_prompt の設計過程 | 02_characters/ + git | キャラクターの創作 |
| shots.json(camera / lighting) | 03_storyboard/ | 演出の決定 |
| 各テイクの human_judgment | 04_shots/*.json | 採否判断=創作的選択 |
| 不採用テイク | 04_shots/_rejects/ | 選択の存在証明 |
| 編集判断(EDL・カラコレ) | 06_edit/ | 最終的な表現の構成 |
| モデル | リスク | 対応 |
|---|---|---|
| Seedance 2.5 | 高 2.0系でDisneyの排除通告、Paramountの侵害主張、MPA非難、米上院議員の停止要求 | 商用作品では使用を限定的にする。既存IPを想起させるプロンプトを避ける |
| MiniMax H3 | 低〜中。特段の訴訟報道なし | 年商$20M未満は表示義務付きで商用可。日本はオープンウェイトの許諾不要地域 |
| Google Veo | 低。SynthID透かし付与 | 商用条件の明確化に留意。無料枠では不可 |
| Runway | 中 | 入出力がモデル学習に永続利用され得る。機密案件には不向き |
共通の禁止事項(文化庁ガイダンスより)
法務省「肖像、声等の無断利用による民事責任の在り方に関する検討会」が2026年4月24日に設置され、2026年夏を目途に指針をとりまとめる方針です。制作開始前に最新版を必ず確認してください。
| 用途 | 推奨 | 禁止 |
|---|---|---|
| キャラクターボイス | 合成音声(商用ライセンス付き)/自前収録+本人同意書 | 実在人物の声のクローン |
| 顔・容姿 | 完全に架空のキャラクターシートから生成 | 実在人物に酷似する生成 |
| 声優起用 | 契約書に同意・報酬・AI利用の開示の3点を明記 | 口約束 |
日本俳優連合は「声の肖像権」確立を求めており、2025年11月に公式音声DB「J-VOX-PRO(仮称)」のMOUが締結されました。正規ルート経由が事実上の要件になりつつあります。
| サービス | 表示 |
|---|---|
| BytePlus(Seedance) | 可視透かし+C2PA Content Credentials |
| Google(Veo / Gemini Omni) | SynthID 電子透かし |
| MiniMax H3 | UIに「MiniMax H3」の表示が義務(年商$20M未満の商用利用時) |
AI事業者ガイドライン第1.2版(2026年3月31日)は透明性・説明責任の記述を強化しており、「隠す」方向の設計は破綻します。
2025年7月15日施行の「本物ではないコンテンツ」ポリシーは、汎用的・テンプレート的なAI生成コンテンツを収益化対象外としています。本仕様書の Phase 0〜3(人間が発意・決定する工程)と human_judgment の運用は、このポリシー適合にもそのまま効きます。
未確認事項
本仕様書の作成にあたり、以下は一次情報を確認できませんでした。運用前に各自でご確認ください。
現行仕様は前版(2025-11-25)から大きく変わりました。プロトコルレベルのセッション廃止(状態はツール引数で回す → P1)、完全ステートレス化、SSEの再開機能を削除(ストリームが切れたら実行中リクエストは失われる → 同期待ちは完全に非推奨 → P2)、Sampling / Roots / Logging が非推奨、非同期タスクは公式拡張 io.modelcontextprotocol/tasks へ分離(ステータス draft)。
出典:MCP 2026-07-28 Changelog / MCP Tasks 拡張 / Extension Support Matrix
出典一覧