Agent skill

Scenario Fan Cam

by scenario-labs in scenario-labs/skills

A skill your agent uses when putting a person from a photo into live-broadcast crowd footage with Scenario: a stadium or arena fan-cam reaction, a jumbotron or kiss-cam moment, a spectator cutaway…

MITAuto-check passed

Install Scenario Fan Cam

skills CLI
$ npx skills add scenario-labs/skills --skill scenario-fan-cam -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install scenario-labs/skills scenario-fan-cam --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/scenario-fan-cam .claude/skills/scenario-fan-cam && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
scenario-fan-cam
GitHub stars
946
Token cost
~2.1k tokens
SKILL.md length
1,123 words
Files
1
Skills in repo
146
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when putting a person from a photo into live-broadcast crowd footage with Scenario: a stadium or arena fan-cam reaction, a jumbotron or kiss-cam moment, a spectator cutaway…

  • Works in 9 steps: Collect the photo, the sport or event,… → Create this run's collection before the… → recommend with capability="img2img" and… → …
  • Putting a person from a photo into live-broadcast crowd footage with Scenario: a stadium
  • SKILL.md covers Overview, Quick reference, Worked example: caught on the… and Common mistakes
  • Calls npx

What it does

Scenario Fan Cam is an agent skill from scenario-labs/skills. Use when putting a person from a photo into live-broadcast crowd footage with Scenario: a stadium or arena fan-cam reaction, a jumbotron or kiss-cam moment, a spectator cutaway at a match or concert, a courtside or front-row sighting, or a personalized sports-TV still that then animates into video. Keywords: fan cam, crowd reaction, jumbotron, stadium screen, kiss cam, broadcast cutaway, spectator, crowd shot, sports TV, courtside, arena.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Get production-ready images, video, audio, and 3D from any AI agent: skills that pick the right model, price before spending, and keep characters and brands consistent through… The licence is MIT.

When your agent uses it

  • Putting a person from a photo into live-broadcast crowd footage with Scenario: a stadium
  • Arena fan-cam reaction
  • Kiss-cam moment
  • A spectator cutaway at a match

Example prompts

  • “/scenario-fan-cam”

Requirements

  • Node.js

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Collect the photo, the sport or event, venue mood, wardrobe, and the wanted reaction. upload_asset the photo once and reuse the returned…
  2. Create this run's collection before the first generation (collection_create, catalog write lane, name only), then collection_add_assets…
  3. recommend with capability="img2img" and the placement described in words; prefer a ranked entry that takes several reference images, and…
  4. Edit prompt: "the person from the reference image seated mid-crowd at a floodlit football stadium, 16:9 television cutaway, long-lens…
  5. Gate the still: asset_display it for approval, and inventory the likeness features that must hold (face geometry, hairline, skin tone…
  6. recommend with capability="img2video" and the reaction described in words, then check the pick against scenario-kling or scenario-video…
  7. Run with the approved still as the start image and two beats: "she chats, unaware" then "she spots herself on the stadium screen, stands…
  8. Check the clip against the approved still on frames the platform produced: the free firstFrame and lastFrame off asset_get first, then…
  9. Assemble on-platform with model_scenario-compose-video (a tool-model lane per scenario-video-assembly), layering the score strip and…

What it can do on your machine

Read from SKILL.md and the folder at commit f6f8ab7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Scenario Fan Cam loads about 2.1k tokens when it runs. Until then it costs about 115 tokens; SKILL.md has 1,123 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~115
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from scenario-labs/skills at commit f6f8ab7, republished under its MIT licence (© scenario-labs). 1,123 words, ~2,136 tokens.

Download SKILL.mdSave it as .claude/skills/scenario-fan-cam/SKILL.md (or your agent's skills folder).
name
scenario-fan-cam
description
Use when putting a person from a photo into live-broadcast crowd footage with Scenario: a stadium or arena fan-cam reaction, a jumbotron or kiss-cam moment, a spectator cutaway at a match or concert, a courtside or front-row sighting, or a personalized sports-TV still that then animates into video. Keywords: fan cam, crowd reaction, jumbotron, stadium screen, kiss cam, broadcast cutaway, spectator, crowd shot, sports TV, courtside, arena.
license
MIT

Scenario Fan Cam

Overview

A fan cam is a two-stage build: an identity-preserving image edit places the person into a 16:9 broadcast still, and image-to-video animates the approved still into a reaction. The uploaded photo is an identity reference, never a start frame: feeding it straight to a video model animates a portrait, not a broadcast. Stage one is cheap and stage two is not, so the still carries every decision worth approving.

Use only photos of the user or of people who gave them permission; refuse celebrity or stranger insertions. Real faces also trip provider filters more than most subjects: on a block, see scenario-moderation. Connection and the core loop: see the scenario skill in this repo. 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

Discover members with recommend, passing the stage's capability and the user's own words: it ranks by measured cost and latency and names the purpose-built pick, where a capability-worded search returns hundreds of keyword hits with nothing to choose between them. Read next_step before taking a pick, per the scenario skill. Keep search for a member you can already name. Never assert a generative model's id as a constant. Scenario's own single-purpose tool models are named outright below: there is exactly one of each, so discovering them would only re-derive a constant.

StageWhat happensDetail
1. Identity stillImage-edit member (img2img) composites the person into a 16:9 crowd framescenario-image, scenario-consistency
2. Still gateLikeness checked against the photo before any video money is spentscenario-asset-analysis
3. AnimateImage-to-video from the approved still, reaction beats, one camera movescenario-kling, scenario-video
4. Identity gateFrames extracted from the clip, compared to the approved stillscenario-asset-analysis
5. OverlaysScore strip, channel bug, lower third composited as post layers, never generatedscenario-text-overlay, scenario-video-assembly
6. Derivatives9:16 and 1:1 social cuts off the 16:9 masterscenario-formats

Broadcast grammar is what sells the shot, so prompt it explicitly at both stages: long-lens compression with the crowd defocused in front and behind, harsh stadium floodlight or arena strobe, slight motion blur, the camera hunting and reframing as it finds the subject. Keep the person mid-ground among other fans, off-center, at broadcast camera height. A centered, well-lit, eye-level subject reads as a photoshoot in a stadium, not a cutaway.

Give the reaction an arc rather than a state: oblivious, then noticing the camera or the screen, then the reaction the user asked for (cheering, laughing, disbelief, heartbreak). Multi-beat prompting per the video family's contract keeps the turn inside one clip.

Worked example: caught on the stadium screen, 8 seconds

  1. Collect the photo, the sport or event, venue mood, wardrobe, and the wanted reaction. upload_asset the photo once and reuse the returned asset id.
  2. Create this run's collection before the first generation (collection_create, catalog write lane, name only), then collection_add_assets each keeper as it lands; its returned itemCount is the receipt.
  3. recommend with capability="img2img" and the placement described in words; prefer a ranked entry that takes several reference images, and read model_schema_get for those inputs (scenario-image for the lane, scenario-consistency for reference discipline).
  4. Edit prompt: "the person from the reference image seated mid-crowd at a floodlit football stadium, 16:9 television cutaway, long-lens crowd compression, no text, logos, or graphics in frame". Keep the plate text-free: overlays come later.
  5. Gate the still: asset_display it for approval, and inventory the likeness features that must hold (face geometry, hairline, skin tone, wardrobe) with the analysis lane from scenario-asset-analysis; a change in any inventoried feature fails. Unattended, that inventory stands in for the user's sign-off.
  6. recommend with capability="img2video" and the reaction described in words, then check the pick against scenario-kling or scenario-video. The brief's length filters members: duration is usually a fixed enum a member either reaches or does not, and the tiers that reach it sit far apart on price, so model_schema_get each candidate and compare with model_run dry_run=true.
  7. Run with the approved still as the start image and two beats: "she chats, unaware" then "she spots herself on the stadium screen, stands, and cheers", one slow reframing move, wait=false, then jobs_wait re-called with pending_job_ids on timeout, never a second model_run.
  8. Check the clip against the approved still on frames the platform produced: the free firstFrame and lastFrame off asset_get first, then model_scenario-video-to-image-seq for a mid-clip frame (a tool-model lane per scenario-video-editing). A local extraction is not a substitute at any budget, because it yields no asset to file or audit and the gate stops being traceable. A change in any inventoried feature fails the clip, and so does legible generated type: ribbon boards and jumbotron glyphs creep in even against a no-text prompt, worst late in the clip. The retry starts from the same still, never from the drifted output.
  9. Assemble on-platform with model_scenario-compose-video (a tool-model lane per scenario-video-assembly), layering the score strip and channel bug from scenario-text-overlay in the safe corners; a local editor is the wrong lane. Give every overlay layer an explicit width and height, since leaving them empty is documented as native size and does not hold, and pin durationMode: "custom" to the clip's length, since an image layer otherwise stretches the composition past it. A succeeded compose job is not proof the layers drew: pull a frame from the composite (the free firstFrame) and confirm every layer is present and placed before delivering. Then cut 9:16 per scenario-formats, a resize rather than a reframe, whose video members outpaint a wider frame instead of cutting one. Its cover mode crops from the center, so when the subject sits off-center put the master on a 9:16 compositor canvas positioned to hold them instead. asset_display both.
Show full SKILL.md (153 more words)Show less

Common mistakes

  • Animating the uploaded photo directly: the mandatory stage is the broadcast still; skip it only when the user hands over an already approved 16:9 frame.
  • Letting the image or video model render the scoreboard, channel bug, or jersey sponsor text: generated type drifts frame to frame; composite graphics in post on a text-free plate.
  • Portrait staging: centered subject, flattering light, and empty seats around them break the documentary read; bury them in a reacting crowd.
  • Judging likeness from one glance at the moving clip: drift hides between glances; run the frame-extract gate.
  • Retrying from a drifted clip instead of the approved still: errors compound.
  • Composing the master at 9:16: broadcast is 16:9; verticals are derivatives.
  • A flat emotional state for the whole clip: without the notice-then-react turn, the result is a looping portrait, not a fan cam.
  • Compound camera moves: one reframing drift; the crowd and the reaction supply the motion.

© scenario-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/scenario-fan-cam of scenario-labs/skills.

Open the folder on GitHubat commit f6f8ab7

Compare with similar skills

Scenario Fan Cam next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Scenario Fan Cam compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Scenario Fan Cam this skillscenario-labs/skills946—~2.1kAutomated safety check: PassMIT
Photoscodewhale-hq/Codewhale41k—~386Automated safety check: PassMIT
Sports Fan-Cam Videofal-ai-community/skills251—~3.2kAutomated safety check: PassNone
Test Scenariosphuryn/pm-skills27k—~866Automated safety check: PassMIT
Upload PhotoDevin-AXIS/iPolloWork6.8k—~373Automated safety check: PassCustom licence
Adding Warehouse Person PropertiesPostHog/posthog40k—~2.9kAutomated safety check: PassCustom licence

Similar skills

  • Photos

    codewhale-hq/Codewhale

    Search a local macOS Photos library and export selected copies when the user asks to find or use their own photos.

    41k GitHub stars~386 tokensUpdated today
    Auto-check passed
  • Sports Fan-Cam Video

    fal-ai-community/skills

    Produces a personalized, broadcast-style fan-cam video from one photo of a person, using the genmedia CLI to generate a stadium frame and then animate it.

    251 GitHub stars~3.2k tokensUpdated 12 days ago
    Media & CreativeAuto-check passed
  • Test Scenarios

    phuryn/pm-skills

    Create comprehensive test scenarios from user stories with test objectives, starting conditions, user roles, step-by-step actions, and expected outcomes.

    27k GitHub stars~866 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Upload Photo

    Devin-AXIS/iPolloWork

    upload a photo/image/screenshot, host an image, get a public image URL, put images on Vercel Blob, embed images in a PR/comment/doc.

    6.8k GitHub stars~373 tokensUpdated yesterday
    Auto-check passed
  • Official

    Sync columns from a synced data warehouse table onto PostHog person or group properties, so warehouse data becomes usable anywhere person and group properties already work: feature flag targeting…

    40k GitHub stars~2.9k tokensUpdated yesterday
    DatabasesAuto-check passed
  • AI Photo Restyler

    sickn33/agentic-awesome-skills

    Install and use the official Photo to Anime package, pinned by digest, for paid hosted work on the Beatra service.

    47k GitHub starsUsed in 1 repo~3.1k tokens
    Auto-check passed

More from scenario-labs/skills

All 146 skills in this repo
  • Scenario Blender Grease Pencil

    scenario-labs/skills

    A skill your agent uses when drawing or animating with Grease Pencil in Blender 5.x from Python: 2D or 2.5D illustration, frame-by-frame animation, a cutout or part-based 2D character, strokes with…

    946 GitHub stars~4.5k tokensUpdated yesterday
    Auto-check passed
  • Scenario Blender Hair

    scenario-labs/skills

    A skill your agent uses when grooming hair or fur in Blender with hair curves, such as a character hairstyle, animal fur, procedural fur in geometry nodes, or hair cards and mesh hair for games.

    946 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • A skill your agent uses when lighting, rendering or compositing in Blender: light a character, product or hero shot, interior at dusk or night, three-point or motivated lighting, sun and sky, HDRI…

    946 GitHub stars~5k tokensUpdated yesterday
    Auto-check passed
  • Scenario Chatgpt Pet Create

    scenario-labs/skills

    A skill your agent uses when creating a ChatGPT pet or Codex pet with Scenario: hatching an animated companion from a text idea, a character, mascot or brand cue, or reference photos and art; making…

    946 GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • Scenario Godot Animation

    scenario-labs/skills

    A skill your agent uses when animating characters or scenes in Godot 4.7: AnimationPlayer clips and RESET, AnimationTree state machines and blend spaces built in code, Mixamo or glTF import, loop…

    946 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • Scenario Godot Audio

    scenario-labs/skills

    A skill your agent uses when adding or fixing sound in Godot 4.7: audio buses and effects, volume sliders, 'too many sounds', combat audio with hundreds of enemies, sounds clipping or distorting, 3D…

    946 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed

Questions about Scenario Fan Cam

What does Scenario Fan Cam do?

A skill your agent uses when putting a person from a photo into live-broadcast crowd footage with Scenario: a stadium or arena fan-cam reaction, a jumbotron or kiss-cam moment, a spectator cutaway…. Scenario Fan Cam is an agent skill from scenario-labs/skills. Use when putting a person from a photo into live-broadcast crowd footage with Scenario: a stadium or arena fan-cam reaction, a jumbotron or kiss-cam moment, a spectator cutaway at a match or concert, a courtside or front-row sighting, or a personalized sports-TV still that then animates into video.

When should I use Scenario Fan Cam?

Scenario Fan Cam fits situations like: putting a person from a photo into live-broadcast crowd footage with Scenario: a stadium; arena fan-cam reaction; kiss-cam moment; A spectator cutaway at a match.

How do I install Scenario Fan Cam in Claude Code?

Run `npx skills add scenario-labs/skills --skill scenario-fan-cam -a claude-code`. Or copy the skill folder (skills/scenario-fan-cam in scenario-labs/skills) into .claude/skills/scenario-fan-cam in your project. Claude Code loads it when a task matches its description.

How do I install Scenario Fan Cam in Codex?

Run `npx skills add scenario-labs/skills --skill scenario-fan-cam -a codex`. Or copy the skill folder (skills/scenario-fan-cam in scenario-labs/skills) into .agents/skills/scenario-fan-cam in your project. Codex loads it when a task matches its description.

Can I use Scenario Fan Cam in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scenario-labs/skills --skill scenario-fan-cam -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scenario-fan-cam, .gemini/skills/scenario-fan-cam, .github/skills/scenario-fan-cam and .opencode/skills/scenario-fan-cam in your project.

What does Scenario Fan Cam need to run?

Going by SKILL.md and its folder, Scenario Fan Cam needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Scenario Fan Cam access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Scenario Fan Cam safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Scenario Fan Cam use?

Scenario Fan Cam is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Scenario Fan Cam use?

About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Scenario Fan Cam?

Skills that share tags, products or a category with Scenario Fan Cam: Photos (codewhale-hq/Codewhale, 41k stars), Sports Fan-Cam Video (fal-ai-community/skills, 251 stars), Test Scenarios (phuryn/pm-skills, 27k stars) and Upload Photo (Devin-AXIS/iPolloWork, 6.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Scenario Fan Cam?

scenario-labs (a GitHub organization) maintains it in scenario-labs/skills, which has 946 GitHub stars. The repository holds 146 skills in this directory. The repository was last updated on October 10, 2026.

Source: scenario-labs/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.