scenario-multi-reference について
scenario-multi-reference-composition は、複数の参照画像を使う画像生成向けの skill です。各画像に役割を一つだけ割り当て、無関係な要素を明示的に除外します。Scenario のツールを使うワークフローと、参照要素の混入やモデル schema の確認方法を扱います。
主な機能
- 01各参照画像に一つの役割を割り当て
- 02画像から取り込まない要素を明示
- 03モデル機能と参照画像数の上限を確認
- 04意図しない参照要素の混入を確認
- 05画像生成の実行と確認をガイド
活用シーン
- 01被写体・背景・ポーズ・スタイルの組み合わせ
- 02スタイル参照の被写体が混入するのを防止
- 03参照画像の欠落や意図しない反映の調査
MCP 対応
`upload_asset`、`recommend`、`model_schema_get`、`model_run` などを使う Scenario の画像生成ワークフローを説明します。MCP 対応エージェントによるモデル選択、参照入力の検証、画像生成の実行を支援します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scenario-labs/ skills --skill scenario-multi-referenceインストール後、Claude Code で/scenario-multi-referenceを入力して読み込まれたか確認します。
同梱ファイルREADME.mdreferences/prompt-patterns.md
詳細
シナリオの複数参照合成
概要
プロンプトで別途指示しない限り、参照画像に写っているものはすべて生成に取り込まれます。モデルにスタイル参照としてアライグマのシェフを渡すと、そのアライグマがシーンに登場してしまいます。これを防ぐには、それぞれの画像に役割を1つだけ与え、各画像から何を取り込んではいけないかを明記します。絵、写真、マネキン、映画のワンシーン、カラーチップなど、1つのアイデアを示す4〜5枚の画像を組み合わせれば、それぞれの要素を取り込み、ほかのものは一切含めない1枚の画像を作れます。接続方法と生成ループについては、scenario スキルを参照してください。ファミリーごとの参照画像の上限と構文については、画像モデルファミリーのスキルを列挙している scenario-image を参照してください。複数の画像を通じて同じ被写体を保つ方法については、scenario-consistency を参照してください。生成結果のアニメーション化については、scenario-video を参照してください。拒否については、scenario-moderation を参照してください。ここに記載されている関連スキルが利用可能なスキルにない場合は、ユーザーにインストールを依頼してください
(npx skills add scenario-labs/skills --skill <name>)。無人で処理を進める場合は、ツールのスキーマに基づいて作業を続け、不足しているスキルがあることを明記してください。
クイックリファレンス
| 役割 | 画像から取り込むもの | 一般的な「取り込まない」指示 |
|---|---|---|
| 主な被写体(WHO) | キャラクター、製品 | 「ヤモリのアイデアだけを使ってください。写真の色はコピーしないでください。」 |
| 舞台(WHERE) | 場所 | 媒体が異なる場合は「木版画風の建築として描き直す」 |
| ポーズ | 体のポーズ | 「マネキンも木材も描かないでください。」 |
| アングル | カメラ | 「灯台を含めないでください。」 |
| スタイル | 媒体、レンダリング、テクスチャ | 「アライグマ、キッチン、エプロン、鍋を含めないでください。」 |
| 光 | 光のみ | 「花や花瓶を含めないでください。」 |
| パレット | 使用を許可する色のみ | 「緑色をどこにも使わないでください。」 |
| 素材 | 表面 | 「魚、ひれ、水を一切描かないでください。」 |
| 表情 | 顔の雰囲気 | 「人間の肌、鼻、耳、髪を含めないでください。」 |
| 着用物 | 衣服や鎧 | 「猫自身の顔は見えるままにし、人間の顔を覆うマスクは使わないでください。」 |
| インスピレーション | デザインのアイデアであり、対象物そのものではない | 「このクラゲをモチーフにしたガウン。クラゲは描かないでください。」 |
| レイアウト | グリッドと構図 | 「MONDAY という単語をコピーしないでください。」 |
プロンプトは画像ごとに1行です(完成版のプロンプトでは、主な被写体と舞台を WHO と WHERE として記述しています)。
<One sentence naming the medium.> Each reference picture has exactly one job:
Image N (<what it shows>) = <JOB> only. <What it lends, concretely.> Do not <what to leave out>.
...
<Framing: shot size, placement, mood, text rules.>
守られていたルール
- 1枚につき1つの役割。 1枚のカードに2つの役割(被写体とパレットなど)を持たせると、どちらもぼやけます。呼び出しに含めたものの使わないカードには、「Image 4 = 役割なし:完全に無視してください」と指定します。
- メインの被写体は1つ。 1回の実行で2つのアイデンティティを指定すると注意が分散します。
scenario-consistencyに従って構成します。 - 最も無視されやすい役割を最初に指定します。 通常はスタイルで、「これは最も重要な役割です」と明記します。スタイルの行を先頭に移すまでは、粘土のシーンがクロームのCGとして出力されていました。
- 具体的に取り入れます。 「その3Dレンダリングの見た目、柔らかな素材、暖色の反射光をコピーする」は、「そのスタイルを使う」より効果的です。パレットの役割では各要素の色を指定します(「ヤモリはプルシアンブルーで、朱色の斑点がある」)。「パレットのみ」では、ほとんど色が変わりません。
- 役割間の競合を解消します。 どの画像にも指定された役割以外の要素が含まれるため、スタイルのカードにはそのカード固有の色があり、被写体の写真にはその写真固有の毛並みがあります。パレットカードを使う場合、スタイルの指示に「その色はコピーしないでください」と加え、被写体の色は色見本から指定します。それによってユーザーが大切にしているもの(愛犬や商品など)の色が変わる場合は、実行前に確認します。確認なしで実行する場合は、タスクの指示に従い、それ以外は被写体本来の色を保ち、競合について報告します。
- アイデアとして使い、コピーしません。 被写体の写真をそのまま残してはならない場合は、「ヤモリのアイデアだけを使ってください。…写真のポーズ、照明、色、リアリズムはコピーしないでください」と指定します。
- テキストは「余分な単語や重複したテキストを入れないでください」と添えて、一字一句正確に引用します。一字一句正確に再現する必要があるコピーは、
scenario-text-overlayに任せます。 - カードはすっきりさせます。 背景はシンプルにし、読める看板やロゴを入れません。最適なのはユーザー自身の画像です。足りないカードは、1枚につき1つのアイデアでテキストから画像を生成して用意します。
実例:クレヨンの絵が映画のワンシーンになる
カード:子どもがクレヨンで描いたモンスター(メインの被写体)、裏庭の写真(舞台)、跳躍する木製マネキン(ポーズ)、アライグマのシェフが登場する3Dアニメ映画のワンシーン(スタイル)。
- 各カードで
upload_assetを実行し、続けてupload_asset_completeを実行します(scenarioを参照)。アセット ID は、番号を付ける順に保持しておきます。 capability="img2img"、features=["referenceImages"](この正確なフィールドを公開しているメンバーだけが対象になります。スロットの名前が異なるメンバーも確認するには、この指定を外します)、ユーザー自身の言葉によるpromptを指定してrecommendを実行します。next_stepはscenarioの指示に従って処理します。- 候補の
model_schema_getを実行します。参照フィールドの上限(作成時点で上位メンバーでは4枚または5枚、メンバーによっては最大10枚)、array: trueであること、説明文にあるプロンプトでの参照方法(順番に「Image 1」と指定するのか、一部のファミリーのように@Image1などのタグで指定するのか)、サイズ設定のファミリー、品質ティアを確認します。スキーマに特定の用途向けの専用スロット(スタイル参照フィールドやポーズ制御など)がある場合は、そのカードを参照配列ではなく専用スロットに指定し(scenario-consistency)、プロンプトからの参照方法についてはフィールドの説明を確認します。プロンプト内の番号は配列に基づくためです。 model_runにdry_run=trueを指定します(トップレベルで、model_idの横に置きます。parametersの中には入れません)。次の例のように、スキーマで定義された名前を使います。parameters={"prompt": "<below>", "referenceImages": ["asset_monster", "asset_yard", "asset_mannequin", "asset_raccoon"], "quality": "high"}さらにサイズ設定のフィールドも指定します。合計金額、これから生成する必要のあるカード、そして必要な場合は映画もユーザーに提示します(ドライランでは必須の画像がないペイロードは拒否されるため、アップロード済みの画像を使うか、まだカードがない場合は小さな代替画像を使って料金を確認します)。ユーザーの同意を得るまでは、有料の処理を実行しません(無人実行の場合は、タスクで指定された予算の範囲内でのみ開始します。それ以外は停止し、見積もりを報告します)。その後、同じ呼び出しをwait=falseで実行し、jobs_waitとasset_displayを使います。
A still frame from a 3D animated family feature film. Each reference picture has exactly one job:
Image 1 (child's crayon drawing) = WHO. Turn this crayon monster into a soft, plush 3D animated character: round purple body, three uneven eyes, spiky green hair, tiny orange legs, big toothy smile. Keep its lopsided, hand-drawn charm.
Image 2 (backyard photo) = WHERE. Use this exact backyard: lawn, wooden fence, red hose, blue kiddie pool, swing set, lemon tree.
Image 3 (wooden mannequin) = POSE only. The monster leaps mid-air with both arms thrown up and one knee raised, exactly like the mannequin. Do not show the mannequin or any wood.
Image 4 (raccoon chef frame) = STYLE only. Copy its 3D render look, soft materials, warm bounce light and rich color. Do not include the raccoon, the kitchen, the apron or the pot.
Wide shot, the monster in the center above the lawn, afternoon sun, joyful.
- 画像を1枚ずつ確認し、漏れがないかチェックします(下記参照)。漏れがあれば、その画像の指示を具体化して再実行します。後から画像をレタッチしてはいけません。
- アニメーションにするには、生成結果を最初のフレームとして
scenario-videoに渡します。映画用のプロンプトには、ジョブの指示は含めず、動き、カメラ、音だけを指定します。すべてのジョブは、すでにフレームに反映されています。
クレイアニメーション、商品広告、木版画、ファッションエディトリアル、ピクセルアート、ティルトシフトのミニチュア、リソグラフポスターの7つのプロンプト例と、それぞれの映画用プロンプトを掲載しています: references/prompt-patterns.md。
保存する前の漏れチェック
画像ごとに、次の2点を確認します。用途が反映されているか、そして用途以外のものまで画像に含まれていないか。
- ポーズとアングル:マネキン、木材、スケッチの小道具が写っていないこと。
- スタイル:スタイル参照画像の被写体、背景、小物が含まれていないこと。
- 表情:雰囲気だけが変わり、顔は変わっていないこと(トースターに人間の鼻や肌が付いていないこと)。
- レイアウト:グリッドは変わっても、参照画像に含まれる言葉は変わっていないこと。
- パレット:見本にない色が使われていないこと。
無視された用途について指示を書き直す前に、出力に対して asset_get を実行します。metadata.referenceImages に、その実行で使われたものが一覧表示されます。また、スキーマで array: true とされているのに参照を単独の文字列で送ると、エラーなしに無視されます。そのため、指示の言い回しを変えても、その用途が反映されることはありません。
よくある間違い
- 写真の主題がそのまま複製されました。 緑色のヤモリの写真が、木版画になった同じ緑色のヤモリとして返されました。スタイルを最初に指定し、「アイデアだけを」と書き、色調を厳密に指定してください。
- 意図せずロゴが生成されました。 生成された看板の赤、白、青のうねる模様が、炭酸飲料ブランドのように見えました。画像から動画を生成するモデルはそのフレームを拒否し、その後、画像エディターも入力として拒否しました。看板や標識に何を描くか(波、雲、鶴)を指定してください。
- 参照画像にブランドが含まれていました。 実在する店の看板が写った街の写真は、参照画像として拒否されました。「架空の、何も書かれていない看板、ロゴなし」と指定してカードを再生成してください。
- プロンプトで保護対象のデザインを名指ししました。 有名な椅子をそのまま名指しすると拒否されました。代わりに、オリジナルのデザインを説明してください。
- 衣服が安全フィルターでブロックされました。 透けるガウンは拒否されましたが、「不透明で、全身を覆い、ハイネック」と指定すると通過しました。
- 映像の途中で変化しました。 ギターの色がクリップの途中で変わりました。「ほぼ静止」と指定し、変えてはいけないものを列挙して、動かしたいものだけを動かしてください。
- モデル ID や価格をハードコードしました。
recommendで候補を確認し、model_schema_getで機能を確認して、dry_run=trueで価格を調べてください。