scenario-asset-analysis について
scenario-asset-analysis は、画像アセットを確認・整理するクリエイティブチーム向けの Scenario スキルです。4 種類の専用分析ツールに加え、画像の一括分析とテキスト・類似度・フィルターによる検索に対応します。
主な機能
- 01画像キャプションの生成
- 02再利用可能なスタイル説明の抽出
- 03指示に基づく画像の一括分析
- 04深度・ポーズなどの制御マップ生成
- 05テキスト・類似度・条件による検索
活用シーン
- 01画像群とクリエイティブブリーフの照合
- 02後続の画像生成に使うルックの抽出
- 03別のモデル向け制御マップの作成
MCP 対応
Scenario MCP 経由でアセット分析ツールを検索して実行します。返された permission に応じて読み取り用または書き込み用の実行ツールを使い、再接続して全ツールセットを利用することもできます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scenario-labs/ skills --skill scenario-asset-analysisインストール後、Claude Code で/scenario-asset-analysisを入力して読み込まれたか確認します。
詳細
シナリオアセット分析
概要
4 つのツールが、既存のアセットからキャプション、スタイルの説明、分析、コントロールマップを抽出します。用途が固定されたものが 3 つ、自由形式のものが 1 つです。デフォルトのツールセットに含まれる search と併用すると、バッチを取り込んだ後に生じる質問に答えられます。実際の作業の大半がここにあります。依頼内容に沿っているか、どのような見た目か、何が描かれているか、次のモデルの条件付けに何を使えるか、先週承認されたバージョンはどこにあるか、といった質問です。
いずれもデフォルトのツールセットには含まれていません。scenario_tools_search でスキーマを取得し、返された permission に対応するエグゼキューターで実行してください。read には scenario_tool_execute_read を、write には scenario_tool_execute_write を使います。見積もりと実行の両方で、ライブの結果を使ってください。入力アセットが変わっていないからといって、実行レーンを推測しないでください。name にツール名を、parameters に入力を指定します。または ?toolsets=full を付けて再接続してください。接続とスコープについては、このリポジトリの scenario スキルを参照してください。ここで名前が挙がっている兄弟スキルが利用可能なスキルにない場合は、ユーザーにインストールを依頼してください(npx skills add scenario-labs/skills --skill <name>)。無人で作業を続ける場合は、ツールスキーマをもとに進め、不足していることを明記してください。
クイックリファレンス
| 必要なもの | ツール | 形式 |
|---|---|---|
| 1 枚の画像のキャプション | asset_caption | details_level:action または action+style |
| 1 枚の画像から再利用可能なルックを作成 | asset_describe | 詳細な説明と、プロンプトに使える合成結果を返します |
| その他の用途を自分の言葉で指定 | asset_analyze | instruction、最大 10 個の images と 10 個の text_inputs |
| 別のモデル用の条件付けマップ | asset_detect | 10 種類のうち 1 つの modality。canny、depth、pose、segmentation など |
4 つのツールはいずれもクレジットを消費し、見積もりを先に取得する場合は parameters 内で dry_run: true を指定します。OAuth では、見積もりと実行の両方に、ユーザーが選択した team_id と project_id を渡してください。同じ処理を再実行すると、課金対象のジョブがもう一度作成されることがあります。エグゼキューターのレーンを使っても無料にはなりません。
計画を変える 4 つの事実
asset_analyzeはバッチ処理に対応しています。 1 回の呼び出しで、1 つのinstructionに対して最大 10 枚の画像を処理するため、200 個のアセットを確認する場合、呼び出しは 200 回ではなく 20 回です。num_outputs(1~5)はこれとは別の設定です。同じ指示に対する複数の異なる回答を返すもので、画像ごとに 1 つずつ回答するわけではありません。回答を解析しやすい状態に保つため、instructionでは画像ごとの出力形式を固定して指定してください。asset_detectはデフォルトで背景を除去します。remove_backgroundのデフォルト値は true なので、depth マップや pose マップにはフレームの背景がすでに含まれていません。マップを画像全体に適用する必要がある場合は、false に設定してください。- ファイルではなく、レンダリング結果を読み取ります。 ベクター形式やレイヤー付きのソースでは、ファイルの内容を確認したり、正確な値を報告したりできません。16 個のパスを持つ SVG をラスター画像と判定し、
#101614の塗りつぶしを#131A18に置き換え、パレット外のパスを見落とした例があります。色や構造を正確に把握するにはファイルを解析してください。このツールが判定するのは、レンダリング結果に何が表示されているかです。 - 適合する場合は、固定用途のツールが柔軟なツールに勝ります。
asset_captionとasset_describeは用途に特化しており、同じ作業を LLM に指示するより高速です。分類、抽出、比較、翻訳、または依頼内容に対する判定にはasset_analyzeを使ってください。例外が 1 つあります。設定済みのブランドブリーフに対する pass/warn/fail 形式の判定を構造化して行う場合、Quality Gate アドオンを利用しているチームには、判定を保存して無料で再読み込みできる専用ツールがあります(scenario-quality-gateを参照)。アドオンがない場合や、ブリーフが文章としてしか存在しない場合は、引き続きasset_analyzeを使ってください。
asset_analyze と asset_detect は最大 180 秒待機してから job_id を返します。他の場合と同様に、jobs_wait で処理を続けてください。
アセットを再び見つける
検索には target="assets" を指定した search を使います。また、query、filters、filter、
image、images のいずれかを必ず設定してください。何も指定しない呼び出しは、すべてのアセットを返すのではなく、400 エラーになります。
- テキストで検索する。 デフォルトでは
queryはキーワードで照合します。query_semantic_ratioを設定すると、意味による照合の比率を上げられます(「暗い中世の雰囲気」のようなムードのクエリには 0.5〜0.8 が適しており、1 は完全なセマンティック検索です)。この比率が 0 より大きい場合、sort_by(例:["createdAt:desc"])は無視されるため、新しい順に並べるにはキーワードモードが必要です。 - 類似性で検索する。
imageには 1 つのアセット ID または画像 URL を指定し、類似画像を取得します。imagesには{"like": [...], "unlike": [...]}を指定して、肯定例と否定例で検索を調整します(この 2 つのフィールドは同時に指定できません)。類似性の基準はimage_semantic_ratioで決まります。デフォルトの 1 は被写体とムードを照合し、0 は画像の特徴を照合します。重複に近い画像やクロップ画像を探す場合は 0 に設定します。「これらに似ているが、もっとスタイライズされたもの」のように探すには、併せてqueryを指定してください。 - 構造で絞り込む。
filtersではkind、tags、model_id、collection_ids、created_after/created_beforeで絞り込みます。これらは上記すべての条件と AND で結合されます。
実例:ブリーフに照らして一括レビューする
- 実行結果からアセット ID を収集します(
jobs_waitが返します)。 - 最初のチャンクで
dry_run: trueを指定してasset_analyzeを実行し、処理の料金を確認します。 imagesに 10 個の ID を指定し、ブリーフと出力形式を明記したinstructionを設定してasset_analyzeを実行します。「画像を順に確認し、それぞれ<index>: pass|fail, <reason in under 12 words>の形式で回答してください。すべての行に理由を記載し、pass の場合も省略しないでください。中央に配置されていないもの、無地の背景でないもの、またはテキストが含まれるものはすべて fail にしてください。」と指定します。チャンクごとに繰り返します。回答はテキストアセット(1 つ、または画像ごとに 1 つ)として保存されるため、判定結果を読むにはそれらをasset_downloadします。- 最も評価の高い pass に対して
asset_describeを実行します。プロンプトに利用できる統合結果を次のバッチのプロンプトにそのまま使うと、トレーニングを実行せずに見た目の一貫性を保てます(scenario-consistencyを参照)。統合結果が短いタイトルにすぎない場合は、代わりに説明文をプロンプトに使ってください。 - 結果を整理します。
collection_createの後、すべての ID を指定してcollection_add_assetsを 1 回呼び出します(内部で 49 件を超える場合は分割し、すでに追加済みの ID はスキップします)。asset_add_tagsはタグを追加する処理なので、タグセットを作り直すのではなく、失敗したアセットにタグを付けます。後でsearchのfilters={"collection_ids": [...]}を使ってこのセットを取得でき、images={"like": [...]}を使えば類似画像も検索できます。
よくある間違い
- 1 回の呼び出しに 10 件入るのに、アセットごとに
asset_analyzeを呼び出す。 num_outputsをimagesに対するバッチサイズとして扱う。- 元のフレームと一致させる必要がある
asset_detectのマップで、remove_backgroundをデフォルトのままにする。 - 以前に記憶した実行レーンを再利用する。
dry_runの場合も含め、最新のscenario_tools_searchの結果にあるpermissionを使います。レーンで拒否された場合は、同じ呼び出しを再試行せず、検出を更新してその実行レーンを使ってください。 asset_analyzeに画像の生成を求める。これはテキストを返します。制御マップはasset_detectから、最終レンダリングはmodel_runから取得します。