Claude Skill

scenario-multi-reference

Use when one image must be composed from several reference pictures through the Scenario MCP server, each lending one thing: the character from one, the place, pose, style, light, palette, material, outfit, or layout from others. Also when a reference leaks into the result (its o

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download scenario-labs-skills-skills_scenario-multi-reference-dc592af.zip · 10 KB
Part of scenario-labs/skills — 97 skills

Install

skills CLI npx skills add https://github.com/scenario-labs/skills/tree/main/skills/scenario-multi-reference
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install scenario-labs-skills@llmmart
Git git clone https://github.com/scenario-labs/skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole scenario-labs/skills collection as a plugin from our marketplace. Git is the plain clone.

README

scenario-multi-reference: maintainer notes

How this skill was built and why it makes its choices. Not linked from SKILL.md and not read at runtime.

Origin

Distilled from the Give each picture a job exploration on scenario.com/explorations: one agent session working through the Scenario MCP server generated reference cards, then composed one picture and one six-second film per set. Eight sets were kept, from a 3D animated film still to a risograph poster. The kept picture prompts are in references/prompt-patterns.md, with the first set inlined in SKILL.md as the worked example.

The exploration used GPT Image 2.5 Sunburst for the cards and pictures and Seedance 2.5 for the films. SKILL.md names neither: discovery goes through recommend, and a live call on 2026-10-06 (capability="img2img", features=["referenceImages"], a four-role brief) ranked that same editor first among 51 matching members, so the route reaches it without naming it.

Why this route

  • A separate skill, not a section of scenario-image or scenario-consistency. scenario-image covers the reference field's contract (name, cap, array) and says to name each reference's role in one sentence; scenario-consistency holds one look across many images. Neither teaches composing one image from several roles, nor the leak failure that is the technique's whole point.
  • One output type. The exploration also filmed each picture. The film step is a short handoff to scenario-video with the one rule the record supports (the film prompt carries no jobs), not a second workflow.
  • features=["referenceImages"] on recommend. It filters on an exact input name. Some families call the slot something else (imageRef), which is why the body says to drop the filter to see them.
  • WHO and WHERE kept as run. The exploration page calls those jobs Main subject and Stage, but the kept prompts were written with WHO and WHERE, and relabeling them would ship prompts nobody ran.

What changed from the exploration's downloadable skill

  • Discovery moved from a capability-worded search to recommend, per the authoring contract.
  • The two helper scripts (a JSON-to-prompt formatter and a Pillow contact sheet) were dropped: an agent writes a six-line prompt directly, and contact sheets are generic. Their example configs went with them; references/prompt-patterns.md holds the same prompts.
  • The job vocabulary and leak checks were folded into the body, since every run needs them.
  • Spelling moved to American English, prompts included.
  • Added the asset_get consumed-reference check, so a silently dropped reference is not misread as an ignored job.

What the record does not cover

  • The user's own photos: every card in the exploration was generated, so noisy photos, faces, and text-bearing references are untested.
  • More than five references in one call, and any editor other than the one used.
  • Films longer than six seconds.

Skill manifest

Scenario Multi-Reference Composition

Overview

A reference image lends everything it shows unless the prompt says otherwise: hand a model a raccoon chef as a style reference and the raccoon walks into the scene. The fix is to give each picture exactly one job, then say, for every picture, what not to take from it. Four or five pictures, one idea each (a drawing, a photo, a mannequin, a film still, a color swatch), compose into one image that keeps each contribution and nothing else. Connection and the generation loop: see the scenario skill. Per-family reference caps and syntax: scenario-image lists the image model-family skills. One subject held across many images: scenario-consistency. Animating the result: scenario-video. Refusals: scenario-moderation. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.

Quick reference

Job The picture lends Typical "not" line
Main subject (WHO) the character, product "Use only the idea of a gecko. Do not copy the photo's colors."
Stage (WHERE) the place "redrawn as woodblock architecture" when the medium differs
Pose the body pose "Do not show the mannequin or any wood."
Angle the camera "Do not include the lighthouse."
Style medium, render, texture "Do not include the raccoon, the kitchen, the apron or the pot."
Light the light only "Do not include the flowers or vase."
Palette the only allowed colors "No green anywhere."
Material a surface "Do not show any fish, fins or water."
Expression the mood of a face "No human skin, no nose, no ears, no hair."
Wear clothing or armor "The cat's own face stays visible; no human face mask."
Inspiration a design idea, not the thing "a gown designed from this jellyfish. Do not show a jellyfish."
Layout grid and composition "Do not copy the word MONDAY."

The prompt, one line per picture (the kept prompts wrote Main subject and Stage as WHO and 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.>

Rules that held

  • One job per picture. Two jobs on one card (subject plus palette) blur both. A card kept in the call but unused gets "Image 4 = no job: ignore it completely."
  • One main subject. Two identities in one run split attention; compose them per scenario-consistency.
  • The job most likely to be ignored goes first, usually Style, with "This is the most important job". A clay scene came back as chrome CG until the Style line moved to the top.
  • Lend concretely. "Copy its 3D render look, soft materials, warm bounce light" beats "use its style". A palette job names each element's color ("the gecko is Prussian blue with vermilion spots"); "palette only" barely recolors.
  • Settle conflicts between jobs. Every picture carries more than its job, so a Style card brings its own colors and a subject photo its own fur. With a Palette card, the Style line adds "do not copy its colors", and the subject's colors are named from the swatch. When that recolors something the user cares about (their dog, their product), ask before running; unattended, follow the task instructions, else keep the subject's own colors and report the conflict.
  • Idea, not copy. When a subject photo must not survive literally: "Use only the idea of a gecko ... Do not copy the photo's pose, lighting, colors or realism."
  • Text is quoted exactly with "No extra words, no duplicate text"; copy that must be letter-perfect goes to scenario-text-overlay.
  • Clean cards. Plain backgrounds, no readable signs or logos. The user's own pictures are best; generate a missing card with a text-to-image run, one idea per card.

Worked example: a crayon drawing becomes a film still

Cards: a child's crayon monster (Main subject), a backyard photo (Stage), a wooden mannequin leaping (Pose), a 3D animated film still of a raccoon chef (Style).

  1. upload_asset each card, then upload_asset_complete (see scenario). Keep the asset ids in the order you will number them.
  2. recommend with capability="img2img", features=["referenceImages"] (keeps only members exposing that exact field; drop it to see members that name the slot differently), and the user's own words as prompt. Handle next_step as scenario directs.
  3. model_schema_get on the pick. Read: the reference field's cap (four or five cards fit the leading members at authoring time, up to ten on some), array: true, how the description says the prompt addresses references (by order as "Image 1", or by tags such as @Image1 on some families), the sizing family, and the quality tier. When the schema offers a dedicated slot for a job (a style-reference field, a pose control), put that card there instead of in the reference array (scenario-consistency), and read the field description for how the prompt refers to it, since prompt numbering follows the array.
  4. model_run with dry_run=true (top-level, beside model_id, never inside parameters) and the schema's own names, for example parameters={"prompt": "<below>", "referenceImages": ["asset_monster", "asset_yard", "asset_mannequin", "asset_raccoon"], "quality": "high"} plus its sizing fields. Quote the user the total, any cards still to generate and the film included when one is wanted (a dry run rejects a payload missing its required image, so price against any uploaded picture, a small stand-in when no card exists yet), and run nothing paid until they agree (unattended, launch only inside a budget the task states; otherwise stop and report the quote). Then the same call with wait=false, jobs_wait, and 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. Check every picture for a leak (below). Fix by tightening that picture's line and running again, never by retouching.
  2. To animate it, hand the result to scenario-video as the first frame. The film prompt carries no jobs, only motion, camera, and sound: the frame already holds every job.

Seven more kept prompts across claymation, product ad, woodblock print, fashion editorial, pixel art, tilt-shift miniature, and risograph poster, each with its film prompt: references/prompt-patterns.md.

Leak check before keeping

For each picture, ask two questions: is its job visible, and is anything else from it visible?

  • Pose and Angle: no mannequin, no wood, no prop from the sketch.
  • Style: none of the style reference's own subject, set, or objects.
  • Expression: the mood moved, the face did not (no human nose or skin on a toaster).
  • Layout: the grid moved, the reference's own words did not.
  • Palette: no color outside the swatch.

Before rewriting a line for an ignored job, asset_get the output: metadata.referenceImages lists what the run consumed, and a reference sent as a bare string where the schema says array: true was dropped silently, so no wording brings its job back.

Common mistakes

  • The main subject copied the photo. A green gecko photo came back as the same green gecko in a woodblock print. Put Style first, use "only the idea of", and make the palette strict.
  • A logo by accident. Red, white and blue swooshes on generated billboards read as a soda brand: the image-to-video model refused the frame, and the image editor then refused it as input. Say what billboards and signs show (waves, clouds, cranes).
  • Brands in a reference. A street photo with real shop signs was refused as a reference. Regenerate the card with "invented, blank signs, no logos".
  • A protected design named in the prompt. A famous chair named outright was refused. Describe an original design instead.
  • A garment blocked by the safety filter. A translucent gown was refused; "opaque, fully covered, high-necked" passed.
  • Drift in the film. A guitar changed color mid-clip. Ask for "almost static", list what must not change, and move only what should.
  • Hardcoding a model id or price. Discover with recommend, read caps off model_schema_get, price with dry_run=true.
Files (skills)
  • references
    • prompt-patterns.md 11.2 KB
      # Kept prompts
      
      Each prompt below produced a kept result. Picture prompts ran on a multi-reference image editor with the cards as `referenceImages` in the numbered order; film prompts ran on an image-to-video model with the picture as first frame, 6 seconds, 720p, sound on. They are as run apart from American spelling, so they say WHO and WHERE (and once STAR and STAGE) for Main subject and Stage. Read each as a pattern for its medium, not a template to fill.
      
      ## Grumpy toaster (claymation)
      
      Picture:
      
      ```text
      A handmade stop-motion claymation film still, everything sculpted from matte plasticine. Each reference picture has exactly one job:
      Image 4 (clay snail) = STYLE. This is the most important job: the whole scene, the toaster, the counter, the cabinets, the tiles and the fridge are all chunky handmade plasticine with visible thumbprints, tool marks and soft rounded edges, slightly lumpy, matte, like a miniature stop-motion set. No photoreal surfaces, no real chrome, no CG. Do not include the snail.
      Image 1 (chrome toaster) = WHO. The character is this 1950s toaster shape, sculpted in silver-gray clay: rounded body, black lever and knob, two bread slots.
      Image 2 (old man) = EXPRESSION only. The toaster has two clay eyes, bushy white clay eyebrows and a mouth with this exact grumpy expression: deep scowl, furrowed brows, pursed lips. No human skin, no nose, no ears, no hair.
      Image 3 (1970s kitchen) = WHERE. This kitchen layout and colors: orange cabinets, mustard flower tiles, avocado fridge, wood paneling, wall clock, all made of clay.
      Wide shot, the toaster on the counter in the foreground, two clay slices of toast half popped up.
      ```
      
      Film:
      
      ```text
      Stop-motion claymation, choppy handmade frame rate, static camera. The grumpy clay toaster on the counter scowls harder, its bushy clay eyebrows furrow and twitch, it rattles and shakes with irritation, then the two slices of toast pop up with a jolt and fall back down, and it huffs a little puff of steam from the slots. Everything stays plasticine with fingerprints. Mechanical toaster clunk, spring ping, a low grumble.
      ```
      
      ## Koi sneaker (product ad)
      
      Picture:
      
      ```text
      A high-end sneaker advertising photo. Each reference picture has exactly one job:
      Image 1 (white sneaker) = WHO. Keep this exact low-top shape, sole, laces and proportions.
      Image 2 (koi fish) = MATERIAL only. The whole upper is made of koi skin: white with bright orange-red patches and a few black spots, covered in overlapping shimmering metallic scales. Do not show any fish, fins or water.
      Image 3 (concrete stairs) = WHERE. The sneaker rests on one step of this exact brutalist board-marked concrete staircase.
      Image 4 (sun through blinds) = LIGHT only. Hard midday sun through venetian blinds throws crisp diagonal stripes of light and shadow across the shoe and the concrete.
      Wide shot, low camera, the sneaker in the center, sharp focus, no logos, no text.
      ```
      
      Film:
      
      ```text
      Premium sneaker commercial. Slow smooth camera arc around the koi-scale sneaker resting on the concrete step, low angle. The striped shadows of the venetian blinds slowly glide across the shoe and the concrete as the sun moves, and the metallic koi scales shimmer and catch the light. The shoe itself stays still and keeps its exact shape. Minimal ambient sound, soft whoosh.
      ```
      
      ## Gecko kaiju (ukiyo-e woodblock)
      
      Picture:
      
      ```text
      A traditional Japanese ukiyo-e woodblock print, Edo-period printmaking. Each reference picture has exactly one job:
      Image 3 (wave print) = STYLE. This is the most important job: everything, including the creature, is carved and printed like this wave print: flat color areas, bold black outlines, stylized curling linework, scales drawn as repeating carved patterns, wood grain and aged washi paper texture. Nothing photographic. Do not include the boats or mountain.
      Image 5 (color swatch) = PALETTE, strictly. The whole print uses only these inks: deep indigo, Prussian blue, vermilion red and cream white (pale ochre allowed for paper tone). No green anywhere. The gecko is Prussian blue and indigo with vermilion spots and a cream belly.
      Image 1 (gecko) = STAR. Use only the idea of a gecko: a colossal stylized gecko-kaiju, reinterpreted as a mythical creature like a dragon in old prints, with curling toes and a coiled tail, towering over the city and clinging to a building. Do not copy the photo's pose, lighting, colors or realism.
      Image 2 (city crossing) = STAGE. The huge scramble crossing with a crowd and tall buildings, redrawn as woodblock architecture. The big billboards on the buildings each show a traditional woodblock motif: curling waves, swirling clouds, flying cranes, or a plain indigo panel with cream grid lines. No swoosh shapes, no split circles, no logos, no text anywhere.
      Image 4 (storyboard sketch) = ANGLE only. Extreme worm's-eye view looking up from the street at the giant creature, strong converging lines. Do not include the lighthouse.
      Wide composition. No text, no writing, no logos, no seals.
      ```
      
      Film:
      
      ```text
      An animated ukiyo-e woodblock print, everything stays flat printed ink in indigo, blue, vermilion and cream with paper texture. The giant gecko slowly turns its head down toward the crowd, blinks, and flicks out a long vermilion tongue; its coiled tail curls and uncurls. The crowd below sways and points up, the stylized clouds drift across the sky, the printed waves on the billboards roll. Static camera. Deep rumbling, crowd murmurs, a taiko drum hit.
      ```
      
      ## Jellyfish couture (fashion editorial)
      
      Picture:
      
      ```text
      A fashion editorial photo. Each reference picture has exactly one job:
      Image 1 (woman portrait) = WHO. This exact woman: sharp black bob, freckles, confident neutral expression.
      Image 2 (moon jellyfish) = WEAR. She wears a modest couture gown designed from this jellyfish: a high-necked, long-sleeved, fully lined pearly white structured top shaped like the jellyfish bell, with faint pink ring patterns, and a long skirt of frilly layered organza ribbons trailing to the floor like tentacles and lacy oral arms. Opaque fabric, fully covered. Do not show a real jellyfish.
      Image 3 (laundromat) = WHERE. She stands in this exact empty laundromat at night: row of washing machines, orange plastic chairs, checkered floor, big dark window.
      Image 4 (flash snapshot) = LIGHT only. Harsh on-camera direct flash: bright highlights, a hard black shadow right behind her, dark falloff. Do not include the flowers or vase.
      Full body, wide 3:2 frame, 35mm film snapshot feel.
      ```
      
      Film:
      
      ```text
      Fashion film, night. The woman in the ruffled jellyfish-inspired gown turns slowly on the spot in the laundromat, the layered frilly organza train drifting and floating around her like tentacles in water, then she looks straight into the camera. A camera flash pops twice, freezing the moment with hard light. The washing machines spin behind her. Slow gentle push-in. Hum of washing machines, flash pop sounds.
      ```
      
      ## Cat samurai (16-bit pixel art)
      
      Picture:
      
      ```text
      A 16-bit pixel art game scene, like a screenshot from a classic side-view action game. Each reference picture has exactly one job:
      Image 1 (tabby cat) = WHO. The hero is this orange tabby cat with a white chest and paws and green eyes, standing upright on two legs.
      Image 2 (samurai armor) = WEAR. The cat wears this exact armor: black lacquered plates laced with red silk cords, horned kabuto helmet with a gold crest, shoulder guards. The cat's own face stays visible; no human face mask.
      Image 3 (mossy forest path) = WHERE. The misty mossy forest path with stone lanterns and tall cedars, as a pixel art background.
      Image 4 (pixel knight sprite sheet) = STYLE only. Copy its 16-bit look: limited palette, crisp hard-edged pixels, no anti-aliasing. Do not include the blue knight and do not lay it out as a sprite sheet.
      Image 5 (wooden mannequin) = POSE only. The cat holds a katana in both hands raised above its head, feet wide apart, knees bent. Do not show the mannequin.
      Wide 3:2 scene, the cat in the center, no text, no UI.
      ```
      
      Film:
      
      ```text
      16-bit pixel art game animation, crisp pixels, limited palette, static camera like a game screen. The armored tabby cat samurai swings its katana down in a fast slash with a white pixel slash arc, then steps back into its ready stance, its tail swishing. The stone lanterns flicker, pixel fireflies and falling leaves drift through the misty forest. Retro chiptune sword swoosh and a short 8-bit music sting.
      ```
      
      ## Ramen mountains (tilt-shift miniature)
      
      Picture:
      
      ```text
      A tilt-shift miniature photograph. Each reference picture has exactly one job:
      Image 1 (ramen bowl) = WHERE. The bowl of ramen is a vast landscape seen from above at an angle: wavy noodle ridges are rolling hills, the creamy broth is a lake, the halved egg is a hill with a glowing jammy yolk, chashu slices are cliffs, nori sheets are dark standing walls, green onions are scattered bushes. The dark bowl rim is the horizon.
      Image 2 (hiker figurines) = WHO. These four tiny hikers in red, yellow, blue and green jackets with backpacks walk in a line along a noodle ridge.
      Image 3 (tilt-shift harbor) = STYLE only. Copy the miniature effect: strong blur top and bottom, one sharp band in the middle, boosted toy-like color. Do not include the harbor, houses or boats.
      Image 4 (misty dawn) = LIGHT only. Soft pink and pale gold dawn light, low sun, fog drifting over the broth like morning mist.
      Wide 3:2, no text.
      ```
      
      Film:
      
      ```text
      Tilt-shift miniature macro shot of the ramen landscape. The camera slowly orbits around the scene and smoothly zooms in toward the four tiny toy hiker figurines in red, yellow, blue and green jackets walking along the noodle ridge, ending in a close-up on them with the egg-yolk sun and broth lake softly blurred behind. Shallow depth of field, gentle steam drifting over the broth, warm dawn light. The hikers keep their exact look. Soft wind, tiny footsteps.
      ```
      
      ## Album cover (risograph poster)
      
      Picture:
      
      ```text
      A gig poster printed as a two-color risograph. Each reference picture has exactly one job:
      Image 1 (musician) = WHO. This exact man: curly dark hair, moustache, denim jacket, bass guitar over his shoulder, as a halftone photo portrait.
      Image 2 (Swiss poster) = LAYOUT only. Copy its strict grid: a huge bold sans-serif headline flush-left across the top, narrow text columns below, one big circle offset to the right, lots of empty paper. Do not copy the word MONDAY.
      Image 3 (risograph leaves) = STYLE only. Copy the riso print texture: grain, coarse halftone dots, slight misregistration, uneven ink on textured paper. Do not include the leaves.
      Image 4 (color swatch) = PALETTE. Only two inks: fluorescent hot pink and teal, overprinting to dark where they meet, on off-white paper. No yellow, no blue.
      Text, exactly: the headline "LOW TIDE" in heavy bold uppercase sans-serif, and one small line "LIVE · 14 NOV" bottom-left. No extra words, no duplicate text. Portrait poster.
      ```
      
      Film:
      
      ```text
      An almost static risograph poster, locked-off camera. Everything stays exactly the same: the text "LOW TIDE" and "LIVE · 14 NOV", the grid, the pink circle, the bass guitar with its exact colors and position, his hands and jacket. Only the musician's face moves: he slowly breaks into a subtle smile and gives one wink to the viewer, with a tiny natural head tilt and breathing. Very minimal motion, halftone grain stays still. Quiet, a soft bass note.
      ```
      
  • README.md 2.9 KB
    # scenario-multi-reference: maintainer notes
    
    How this skill was built and why it makes its choices. Not linked from SKILL.md and not read at runtime.
    
    ## Origin
    
    Distilled from the _Give each picture a job_ exploration on scenario.com/explorations: one agent session working through the Scenario MCP server generated reference cards, then composed one picture and one six-second film per set. Eight sets were kept, from a 3D animated film still to a risograph poster. The kept picture prompts are in `references/prompt-patterns.md`, with the first set inlined in SKILL.md as the worked example.
    
    The exploration used GPT Image 2.5 Sunburst for the cards and pictures and Seedance 2.5 for the films. SKILL.md names neither: discovery goes through `recommend`, and a live call on 2026-10-06 (`capability="img2img"`, `features=["referenceImages"]`, a four-role brief) ranked that same editor first among 51 matching members, so the route reaches it without naming it.
    
    ## Why this route
    
    - **A separate skill, not a section of `scenario-image` or `scenario-consistency`.** `scenario-image` covers the reference field's contract (name, cap, array) and says to name each reference's role in one sentence; `scenario-consistency` holds one look across many images. Neither teaches composing one image from several roles, nor the leak failure that is the technique's whole point.
    - **One output type.** The exploration also filmed each picture. The film step is a short handoff to `scenario-video` with the one rule the record supports (the film prompt carries no jobs), not a second workflow.
    - **`features=["referenceImages"]` on `recommend`.** It filters on an exact input name. Some families call the slot something else (`imageRef`), which is why the body says to drop the filter to see them.
    - **WHO and WHERE kept as run.** The exploration page calls those jobs Main subject and Stage, but the kept prompts were written with WHO and WHERE, and relabeling them would ship prompts nobody ran.
    
    ## What changed from the exploration's downloadable skill
    
    - Discovery moved from a capability-worded `search` to `recommend`, per the authoring contract.
    - The two helper scripts (a JSON-to-prompt formatter and a Pillow contact sheet) were dropped: an agent writes a six-line prompt directly, and contact sheets are generic. Their example configs went with them; `references/prompt-patterns.md` holds the same prompts.
    - The job vocabulary and leak checks were folded into the body, since every run needs them.
    - Spelling moved to American English, prompts included.
    - Added the `asset_get` consumed-reference check, so a silently dropped reference is not misread as an ignored job.
    
    ## What the record does not cover
    
    - The user's own photos: every card in the exploration was generated, so noisy photos, faces, and text-bearing references are untested.
    - More than five references in one call, and any editor other than the one used.
    - Films longer than six seconds.
    
  • SKILL.md 10.3 KB
    ---
    name: scenario-multi-reference
    description: "Use when one image must be composed from several reference pictures through the Scenario MCP server, each lending one thing: the character from one, the place, pose, style, light, palette, material, outfit, or layout from others. Also when a reference leaks into the result (its object, colors, or face showing where it should not) or a reference's role is ignored. Keywords: multi-reference, reference roles, combine references, style reference, pose reference, give each picture a job."
    license: MIT
    ---
    
    # Scenario Multi-Reference Composition
    
    ## Overview
    
    A reference image lends everything it shows unless the prompt says otherwise: hand a model a raccoon chef as a style reference and the raccoon walks into the scene. The fix is to give **each picture exactly one job**, then say, for every picture, what **not** to take from it. Four or five pictures, one idea each (a drawing, a photo, a mannequin, a film still, a color swatch), compose into one image that keeps each contribution and nothing else. Connection and the generation loop: see the `scenario` skill. Per-family reference caps and syntax: `scenario-image` lists the image model-family skills. One subject held across many images: `scenario-consistency`. Animating the result: `scenario-video`. Refusals: `scenario-moderation`. If a sibling skill named here is missing from your available skills, ask the user to install it (`npx skills add scenario-labs/skills --skill <name>`); unattended, proceed from tool schemas and flag the gap.
    
    ## Quick reference
    
    | Job                | The picture lends            | Typical "not" line                                               |
    | ------------------ | ---------------------------- | ---------------------------------------------------------------- |
    | Main subject (WHO) | the character, product       | "Use only the idea of a gecko. Do not copy the photo's colors."  |
    | Stage (WHERE)      | the place                    | "redrawn as woodblock architecture" when the medium differs      |
    | Pose               | the body pose                | "Do not show the mannequin or any wood."                         |
    | Angle              | the camera                   | "Do not include the lighthouse."                                 |
    | Style              | medium, render, texture      | "Do not include the raccoon, the kitchen, the apron or the pot." |
    | Light              | the light only               | "Do not include the flowers or vase."                            |
    | Palette            | the only allowed colors      | "No green anywhere."                                             |
    | Material           | a surface                    | "Do not show any fish, fins or water."                           |
    | Expression         | the mood of a face           | "No human skin, no nose, no ears, no hair."                      |
    | Wear               | clothing or armor            | "The cat's own face stays visible; no human face mask."          |
    | Inspiration        | a design idea, not the thing | "a gown designed from this jellyfish. Do not show a jellyfish."  |
    | Layout             | grid and composition         | "Do not copy the word MONDAY."                                   |
    
    The prompt, one line per picture (the kept prompts wrote Main subject and Stage as WHO and WHERE):
    
    ```text
    <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.>
    ```
    
    ## Rules that held
    
    - **One job per picture.** Two jobs on one card (subject plus palette) blur both. A card kept in the call but unused gets "Image 4 = no job: ignore it completely."
    - **One main subject.** Two identities in one run split attention; compose them per `scenario-consistency`.
    - **The job most likely to be ignored goes first**, usually Style, with "This is the most important job". A clay scene came back as chrome CG until the Style line moved to the top.
    - **Lend concretely.** "Copy its 3D render look, soft materials, warm bounce light" beats "use its style". A palette job names each element's color ("the gecko is Prussian blue with vermilion spots"); "palette only" barely recolors.
    - **Settle conflicts between jobs.** Every picture carries more than its job, so a Style card brings its own colors and a subject photo its own fur. With a Palette card, the Style line adds "do not copy its colors", and the subject's colors are named from the swatch. When that recolors something the user cares about (their dog, their product), ask before running; unattended, follow the task instructions, else keep the subject's own colors and report the conflict.
    - **Idea, not copy.** When a subject photo must not survive literally: "Use only the idea of a gecko ... Do not copy the photo's pose, lighting, colors or realism."
    - **Text** is quoted exactly with "No extra words, no duplicate text"; copy that must be letter-perfect goes to `scenario-text-overlay`.
    - **Clean cards.** Plain backgrounds, no readable signs or logos. The user's own pictures are best; generate a missing card with a text-to-image run, one idea per card.
    
    ## Worked example: a crayon drawing becomes a film still
    
    Cards: a child's crayon monster (Main subject), a backyard photo (Stage), a wooden mannequin leaping (Pose), a 3D animated film still of a raccoon chef (Style).
    
    1. `upload_asset` each card, then `upload_asset_complete` (see `scenario`). Keep the asset ids in the order you will number them.
    2. `recommend` with `capability="img2img"`, `features=["referenceImages"]` (keeps only members exposing that exact field; drop it to see members that name the slot differently), and the user's own words as `prompt`. Handle `next_step` as `scenario` directs.
    3. `model_schema_get` on the pick. Read: the reference field's cap (four or five cards fit the leading members at authoring time, up to ten on some), `array: true`, how the description says the prompt addresses references (by order as "Image 1", or by tags such as `@Image1` on some families), the sizing family, and the quality tier. When the schema offers a dedicated slot for a job (a style-reference field, a pose control), put that card there instead of in the reference array (`scenario-consistency`), and read the field description for how the prompt refers to it, since prompt numbering follows the array.
    4. `model_run` with `dry_run=true` (top-level, beside `model_id`, never inside `parameters`) and the schema's own names, for example `parameters={"prompt": "<below>", "referenceImages": ["asset_monster", "asset_yard", "asset_mannequin", "asset_raccoon"], "quality": "high"}` plus its sizing fields. Quote the user the total, any cards still to generate and the film included when one is wanted (a dry run rejects a payload missing its required image, so price against any uploaded picture, a small stand-in when no card exists yet), and run nothing paid until they agree (unattended, launch only inside a budget the task states; otherwise stop and report the quote). Then the same call with `wait=false`, `jobs_wait`, and `asset_display`.
    
    ```text
    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.
    ```
    
    5. **Check every picture for a leak** (below). Fix by tightening that picture's line and running again, never by retouching.
    6. To animate it, hand the result to `scenario-video` as the first frame. The film prompt carries no jobs, only motion, camera, and sound: the frame already holds every job.
    
    Seven more kept prompts across claymation, product ad, woodblock print, fashion editorial, pixel art, tilt-shift miniature, and risograph poster, each with its film prompt: [references/prompt-patterns.md](references/prompt-patterns.md).
    
    ## Leak check before keeping
    
    For each picture, ask two questions: is its job visible, and is anything else from it visible?
    
    - Pose and Angle: no mannequin, no wood, no prop from the sketch.
    - Style: none of the style reference's own subject, set, or objects.
    - Expression: the mood moved, the face did not (no human nose or skin on a toaster).
    - Layout: the grid moved, the reference's own words did not.
    - Palette: no color outside the swatch.
    
    Before rewriting a line for an ignored job, `asset_get` the output: `metadata.referenceImages` lists what the run consumed, and a reference sent as a bare string where the schema says `array: true` was dropped silently, so no wording brings its job back.
    
    ## Common mistakes
    
    - **The main subject copied the photo.** A green gecko photo came back as the same green gecko in a woodblock print. Put Style first, use "only the idea of", and make the palette strict.
    - **A logo by accident.** Red, white and blue swooshes on generated billboards read as a soda brand: the image-to-video model refused the frame, and the image editor then refused it as input. Say what billboards and signs show (waves, clouds, cranes).
    - **Brands in a reference.** A street photo with real shop signs was refused as a reference. Regenerate the card with "invented, blank signs, no logos".
    - **A protected design named in the prompt.** A famous chair named outright was refused. Describe an original design instead.
    - **A garment blocked by the safety filter.** A translucent gown was refused; "opaque, fully covered, high-necked" passed.
    - **Drift in the film.** A guitar changed color mid-clip. Ask for "almost static", list what must not change, and move only what should.
    - **Hardcoding a model id or price.** Discover with `recommend`, read caps off `model_schema_get`, price with `dry_run=true`.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related