アセット準備台
動画生成が機能するかどうかは、このステップにかかっています。解決する問題は一つだけ:同じものをすべての画像で同じものにすること。
入力はアセットリスト(または絵コンテ)、出力は番号で命名され、short-video-generate が最初のフレームとして直接参照できる画像群です。
絵コンテは書きません。セグメントは切りません。動画のプロンプトは書きません。動画も生成しません。「画像」の部分だけを担当します。
一、四つの鉄則
- まずアンカー、次に派生物。 マスターテンプレートが決まるまでは、アングル図を作成しないでください。アングル図はマスターから派生するものです。マスターが間違っていれば、グループ全体が間違えます。
- 一度に変更する変数は一つだけ。 アングルを変えるなら照明は変えず、照明を変えるならアングルは変えません。両方を同時に変更すると、問題が発生したときに原因を特定できません。
- 候補は追加のみ、上書き禁止。
v1、v2は共存させ、選択されたバージョンを作業指示書に記録します。生成は確率的です。古いバージョンを削除することは、逃げ道をなくすことと同じです。 - 画像とリストは完全に一致している必要があります。 番号がファイル名です。リストに
PR-01があれば、ディレクトリにPR-01_*が存在しなければなりません。
二、アセットの三段階
すべての画像に同じ労力をかける価値はありません。まずレベル分けし、それからリソースを配分します。
| レベル | 定義 | 例 | 要件 |
|---|---|---|---|
| アンカーレベル | 作品全体のアイデンティティの基準。複数の箇所で参照される。 | 製品メイン画像、キャラクター三面図、メインシーン全景 | 最も厳格:複数候補、項目ごとの検収、決定後の変更禁止 |
| 派生レベル | アンカーから生まれたアングル、状態、詳細。 | 製品背面、開封状態、手元のクローズアップ | アンカーと並べて比較する必要がある |
| 使い捨て | 一度だけ出現し、一貫性に影響しない。 | 空ショット、光エフェクト、トランジション素材 | 使えればそれで良し。複数候補は不要 |
レベル分けを誤ると無駄が生じます: 空ショットをアンカーレベルで処理すると、30秒の動画で3日間も詰まる可能性があります。製品メイン画像を使い捨てで処理すると、後続のすべてのセグメントでやり直しが必要になります。
三、ソース:三つとも使用可、用途に応じて選択
| ソース | 使用タイミング | 注意点 |
|---|---|---|
| 実写 | 実物があり、正確さが必要で、パラメータや効果が関係する場合。 | 最も良いが、素材が必要。 |
| AI生成 | 実物がない場合、架空のシーン、雰囲気、手の部分。 | 形状とロゴを固定する必要がある。複数候補を生成する。 |
| 公式素材 | ブランドから提供されたメイン画像やパッケージ画像。 | そのままアンカーとして使用可能。最も安定。 |
実写は強制しません。 完全にAIで生成された動画の場合、アセット全体をAIで作成しても問題ありません。ただし、内部で一貫性が保たれている必要があります。
事前に明確にしておくべきリスク
この動画で視聴者に具体的なパラメータや効果(容量、持続時間、成分、効果など)を主張する場合、画面に表示される製品がAI生成だと、画面と主張内容が一致しません。軽ければコメントで指摘され、重ければ虚偽表示になります。
対処方法は一つだけ:主張がある場合は、製品画像に実写または公式素材を使用する。主張がなく、純粋な雰囲気や架空の内容の場合は、AI生成で十分。
この点は作業開始前に一度確認するだけで済みます。完成してから気付かないようにしましょう。
AI生成の実行方法
付属の scripts/kie_gen.py(KIE GPT Image 2)を使用して、送信、ポーリング、ダウンロード、命名保存を一度に行います。
# テキストから画像生成(解像度を指定しない場合は 1K、十分です)
python scripts/kie_gen.py generate --prompt "…" --ratio 9:16 \
--out 04-素材/01-アセット図/PR-01_製品メイン画像_v1.png
# 画像から画像生成:アンカーを参照として使用
python scripts/kie_gen.py generate --prompt "…" --ref PR-01_製品メイン画像_v1.png \
--out 04-素材/01-アセット図/S01_f01_v1.png
# バッチ:JSONタスクファイルを読み込む(デフォルト5並列)
python scripts/kie_gen.py batch --tasks tasks.json --out-dir 04-素材/01-アセット図 --dry-run
python scripts/kie_gen.py batch --tasks tasks.json --out-dir 04-素材/01-アセット図
解像度はデフォルトで 1K です。これらの画像は最終的に動画モデルによってリサンプリングされるため、元画像を大きくしても詳細は保持されず、失敗率が上がるだけです。個別に拡大・切り抜き(サムネイル用)や白背景のマスターテンプレートとして再利用する場合のみ、--resolution 2K を追加してください。
バッチはデフォルトで 5枚同時実行 します。画像生成には10~40秒かかるため、6枚を直列で実行すると3~4分の待ち時間になります。5並列で6枚実行すると、合計時間は最も遅い1枚の時間に1ラウンド分を加えた程度です。レート制限(code != 200 または 429)が発生した場合は --concurrency 2 を使用してください。レート制限のためにプロンプトを変更しないでください。
4つのルール:
- まず
--dry-runでリクエスト本文を確認してから、実際に実行する。一度に20枚のバッチを送信して、パラメータが間違っていると20回の無駄になる。 - APIキーは環境変数
KIE_API_KEYのみで管理し、スクリプト、タスクファイル、作業指示書には記述しない。 - まずアンカーを出力してスタイルを確認 してから、派生物をバッチ生成する。アンカーレベルのアセットは、並列数を減らして1枚ずつ確認することを推奨。
- taskIdを記録 し、作業指示書に残す。後で同じ画像を再生成する必要がある場合に参照できる。
書き方、パラメータ制限、障害対応の詳細は references/ai-generation.md を参照してください。
四、7ステップの流れ
1 リスト読み込み → 2 順序決定 → 3 レベル分類 → 4 候補生成 → 5 検収 → 6 保存 → 7 ステータス更新
ステップ1・リスト読み込み
02-アセットリスト.md から、番号、タイプ、用途、ソース、参照セグメントを読み取ります。
リストに画像プロンプトがない場合は、references/prompt-fixups.md の4つのカテゴリのテンプレートを使用して補完します。すでにある場合は、そのまま使用し、書き直さないでください。
ステップ2・生産順序の決定
アンカーレベル → 派生レベル → 使い捨て
同じレベル内では、参照される回数が多い順に並べます。参照が多いアセットほど、やり直しが発生した場合に影響を受けるセグメントが多くなるからです。
複数のセグメントで再利用され、空間的な連続性が重要な場所については、必要に応じて2層のアセットに分割します。
- 空間構造マスターテンプレート:人物や動作なし。床/壁の素材、ショーウィンドウと建築ブロック、固定の背景構造、空間の奥行き関係、およびシーン内のメイン光源の発生源とおおまかな方向を固定。特定のカメラ位置、ショットサイズ、人物、一時的な小道具は固定しない。
- カメラ位置サブテンプレート:同じ空間から、実際に使用する正面全景、サイドからの近景、俯瞰、低アングルまたはクローズアップなどの空ショットを派生。最初のフレームは対応するカメラ位置サブテンプレートから派生させ、全編で同じパースペクティブと構図が継承されるのを防ぐ。
各空間では、実際に使用するアングルのみを作成します。固定枚数は強制しません。照明の方向は空間的な連続性を保ちますが、正午/夕方などの照明バリエーションは、ストーリーが時間帯をまたぐかどうかに応じて決定します。基本マスターテンプレートには、不要な強い時間帯の特徴を焼き付けないようにします。まず代表的なカメラ位置を並べて検収し、その後バッチで最初のフレームを派生させます。
ステップ3・レベル分類
各番号にレベル(アンカー/派生/使い捨て)を割り当て、作業指示書に記録します。このステップは1分で完了しますが、後続の候補生成にかける工数を決定します。
ステップ4・候補生成
| レベル | 候補数 | 説明 |
|---|---|---|
| アンカーレベル | 4–6 | 1枚を選んで決定版とし、残りは予備として保持 |
| 派生レベル | 2–3 | アンカーと比較して選択 |
| 使い捨て | 1–2 | 使えればOK |
画像生成前に、以下の3点を確認します:アスペクト比は正しいか、背景は正しいか(白背景かシーンか)、不要な要素(テキスト、ウォーターマーク、手)はないか。
AI生成を使用する場合は、まず --dry-run でパラメータを確認し、アンカー→派生の順に送信します。1バッチあたり4~6枚。
ステップ5・検収
references/acceptance.md の7項目を1つずつ確認します。7項目中6項目をクリアすれば合格。重要な項目(形状、ロゴ)をクリアできない場合は、直接差し戻します。
ステップ6・保存
04-素材/01-アセット図/
├── PR-01_製品メイン画像_v1.png
├── PR-01_製品メイン画像_v2.png ← 予備、削除しない
├── SC-01_オフィスデスク_v1.png
└── CH-01_女性の手_v1.png
命名形式:<番号>_<用途>_v<N>.<ext>。番号はリストと一致させ(ステータスサフィックスA/Bは保持)、用途は2~8文字、アンダースコアで細分化可能、バージョンはインクリメント。
ステップ7・ステータス更新
リストのステータスを「あり/予備あり/補充待ち」に更新し、作業指示書に選択されたバージョンを記録します。ステータスを更新しなければ、次のステップでどのバージョンを参照すべきか分からなくなります。
五、一貫性の確保方法
同じ番号の複数の画像は、以下の4つの方法で整合性を保ちます。
- 同じ主体の説明:アンカーのプロンプトからコピーし、変更しない。
- 同じ照明位置:メインライトの方向と色温度を固定し、派生画像では照明を変更しない。
- 同じアスペクト比と背景:白背景ならすべて白背景に、シーンならすべてシーンに。
- 並べて比較:2枚の画像を左右に並べて、形状、色、ロゴ、比率を確認する。
並べて比較することが最も効果的な方法です。 1枚だけ見るとすべて正しく見えても、並べてみると、カップの口が2ミリ広かったり、ロゴの位置が1段ずれていたりすることがあります。
詳細は references/acceptance.md を参照してください。
六、自己チェック(スクリプト実行可能)
python scripts/check_assets.py --dir <制作ディレクトリ>
5つの判定基準:
| # | 判定基準 | レベル |
|---|---|---|
| A1 | リスト内のすべての番号に対応するファイルが存在する | 致命的 |
| A2 | ファイル名が <番号>_<用途>_v<N> の形式に従っている | 致命的 |
| A3 | ディレクトリ内にリストにない孤立ファイルがない | 警告 |
| A4 | 各画像の解像度が短辺720px以上 | 警告 |
| A5 | アンカーレベルのアセットの候補数が2以上 | 警告 |
終了コード:0 合格 / 2 致命的な項目あり / 3 ディレクトリを読み取れない。
七、境界
- 絵コンテは書きません:アセットの要件は絵コンテとリストから取得し、自ら内容を変更しません。
- 動画のプロンプトは書きません:それは上流の作業です。本スキルは画像プロンプトのみを補完します。
- 動画は生成しません:静止画像のみを処理します。
- 判断を代替しません:検収基準は提供しますが、「この画像を使用できるかどうか」は最終的に人間が判断します。
- 一度で正しく生成されることを保証しません:生成は確率的です。本スキルが保証するのは「候補があること、検収があること、バージョンがあること」です。
八、参考資料
| ファイル | 参照タイミング |
|---|---|
references/production.md | 順序決定、レベル分類、候補生成、保存、ステータス更新時 |
references/acceptance.md | 検収、並べて比較、差し戻し時 |
references/prompt-fixups.md | リストにプロンプトがない場合、または特定の画像が何度生成しても期待通りにならない場合 |
references/ai-generation.md | AI生成使用時:パラメータ、書き方、バッチ、障害対応 |
assets/asset-production-sheet.md | 作業開始前の作業指示書作成、納品時のステータス更新 |
assets/batch-tasks-example.json | バッチ生成用タスクファイルのサンプル |
scripts/kie_gen.py | 送信、ポーリング、ダウンロード、命名保存 |
scripts/check_assets.py | 納品前に実行 |