Claude
Skills
Sign in
Back

fan-cam

Included with Lifetime
$97 forever

Create personalized live sports broadcast fan-cam videos with genmedia. Use this for realistic spectator cutaways, stadium or arena crowd reactions, broadcast screenshots, sports TV shots, scoreboard overlays, TV channel bugs, and identity-preserving fan reaction videos from a user photo.

Image & Video

What this skill does


# Fan cam production with genmedia

Use this skill when the user wants a personalized spectator video that feels
like a real live sports broadcast cutaway. The usual input is one photo of the
person, event details, and a desired reaction or situation.

Runtime is the genmedia CLI. Use the `genmedia` skill for command syntax. Load
`model-routing`, `fal-prompting`, and `genmedia-workflow` when endpoint choice,
model-specific prompt craft, or pipeline execution details matter.

Do not encode private examples, local file paths, user-specific workflow names,
or conversation-specific details into prompts or docs. Keep this skill
generalized.

## References

Load only what is needed:

- `references/prompt-contract.md` for the image prompt and Kling prompt rules.
- `references/genmedia-commands.md` for executable CLI command patterns.
- `references/examples.md` for sport-specific examples.

## Required inputs

Ask only for missing information that changes execution:

- User photo: local path or URL. This is the identity reference.
- Event details: sport, matchup, venue, league, broadcast context, wardrobe,
  scoreboard idea, crowd behavior, and any specific scenario.
- Reaction or situation: excited, happy, laughing, sad, neutral, angry,
  surprised, nervous, focused, eating, distracted, caught on camera, noticing
  the stadium screen, celebrating, disappointed, or another user-specified
  moment.
- Budget or quality preference only when the user explicitly asks for economy,
  preview, or native 4K final output. Otherwise use the standard fan-cam
  defaults: GPT Image 2 edit at `quality=high` with a 3840x2160 frame, then
  Kling v3 Pro.

If the user gives a local image path, upload it once with `genmedia upload` and
reuse the returned URL. If the user gives multiple references, treat the first
person image as the identity source and later images as optional venue,
broadcast, or styling references.

The user photo is an identity reference, not a Kling-ready start frame. Do not
skip GPT Image 2 edit just because the user supplied a person's photo. For a
personalized fan-cam, first use `openai/gpt-image-2/edit` to place the person
inside a realistic 16:9 broadcast scene, then use the approved generated frame
as Kling `start_image_url`.

## Pipeline

Default graph:

```text
photo URL -> prompt planning -> GPT Image 2 edit frame -> optional compression -> Kling v3 image-to-video -> downloaded video manifest
```

The GPT Image 2 edit frame is mandatory when the input is an ordinary person
photo. Only bypass this step if the user explicitly provides an already
approved 16:9 broadcast fan-cam frame and asks to animate that frame.

The planning step is performed by the agent using this skill. Do not call a
separate LLM endpoint just to write prompts unless the user explicitly asks for
a hosted planner. Write the image prompt and Kling multi prompts directly.

## Endpoint selection

Always verify endpoints before use:

```bash
genmedia models --endpoint_id openai/gpt-image-2/edit --json
genmedia models --endpoint_id fal-ai/kling-video/v3/standard/image-to-video --json
genmedia models --endpoint_id fal-ai/kling-video/v3/pro/image-to-video --json
genmedia models --endpoint_id fal-ai/kling-video/v3/4k/image-to-video --json
```

Inspect schemas before running:

```bash
genmedia schema openai/gpt-image-2/edit --json
genmedia schema fal-ai/kling-video/v3/pro/image-to-video --format openapi --json
```

Use `--format openapi` for Kling v3 image-to-video endpoints because compact
schema output may omit top-level fields such as `multi_prompt`,
`start_image_url`, `duration`, `prompt`, `elements`, `shot_type`,
`negative_prompt`, and `cfg_scale`.

Check pricing when cost matters:

```bash
genmedia pricing openai/gpt-image-2/edit --json
genmedia pricing fal-ai/kling-video/v3/standard/image-to-video --json
genmedia pricing fal-ai/kling-video/v3/pro/image-to-video --json
genmedia pricing fal-ai/kling-video/v3/4k/image-to-video --json
```

### GPT Image 2 quality choice

- Use `quality=high` by default for personalized fan-cam frames. GPT Image 2
  price is strongly affected by `low` vs `high`, but fan-cam identity,
  broadcast integration, and readable overlays need the stronger default.
- Use `quality=low` only when the user explicitly requests economy, preview,
  fast iteration, or lower-cost social drafts.
- Use `output_format=jpeg` for the generated broadcast frame unless the user
  needs transparency or lossless output.
- Use 16:9 4K frame size by default:

```json
{"width":3840,"height":2160}
```

### Kling v3 choice

Select the endpoint based on the brief:

- `fal-ai/kling-video/v3/pro/image-to-video`: default fan-cam endpoint. Use it
  for normal personalized sports cutaways, public examples, and any request
  where the user did not explicitly ask for economy.
- `fal-ai/kling-video/v3/standard/image-to-video`: use only when the user
  explicitly asks for economy, preview, fastest iteration, or lower cost.
- `fal-ai/kling-video/v3/4k/image-to-video`: use only for final premium 4K
  delivery or when the user explicitly asks for 4K video. Check pricing first.

Do not choose from memory alone. Verify model status and schema with genmedia in
the current session.

## Shot and duration planning

The agent decides the number and duration of multi prompts.

Hard rules:

- Each multi prompt must be at least 3 seconds.
- Total video duration must be 15 seconds or less.
- Use 2 to 5 multi prompts.
- Set the top-level Kling `duration` equal to the sum of all beat durations.
- If a real user-provided or approved reference is supplied through Kling
  `elements`, every multi prompt must reference `@Element1`. Do not invent
  extra elements just to satisfy a prompt pattern.
- Keep every Kling prompt concise. Aim for 250-430 characters.

Recommended patterns:

- Simple cutaway: 2 beats, 6 seconds total.
- Standard reaction: 3 beats, 9 seconds total.
- Rich fan-cam moment: 4 beats, 12 seconds total.
- Full story beat: 5 beats, 15 seconds total.

Do not always use five beats. Pick the smallest number that expresses the
moment clearly.

## Scene planning

The fan-cam does not need to be only a zoom on the spectator. Design the scene
from the event details:

- A nervous fan watching a decisive point.
- A supporter eating or drinking when the broadcast camera catches them.
- A spectator noticing themselves on the stadium screen.
- A quiet tennis audience reaction during a tiebreak.
- A basketball lower-bowl fan reacting to a buzzer-beater.
- A race grandstand spectator turning toward a pass or crash offscreen.
- A combat sports crowd cutaway during a tense round.
- A watch-party or esports arena reaction if the user specifies it.

Keep the whole video anchored to the generated frame. Use motion, camera
correction, crowd behavior, expression changes, and offscreen event energy to
create the sequence.

## Broadcast logo and overlay

Add a small top-right TV channel bug when it fits the brief. It should feel
sport-specific and broadcast-realistic, but generic unless the user supplies an
exact approved logo or explicitly requests a named network.

Good generic examples:

- `FOOTBALL LIVE`
- `COURT LIVE`
- `BASKET LIVE`
- `RACE LIVE`
- `FIGHT LIVE`
- `MATCH CAM`

Use compact score or timing overlays when the event calls for them. Keep them
small, integrated, and secondary to the spectator. Avoid fake sponsor marks,
large UI graphics, unstable text, and logos that dominate the frame.

## Image prompt requirements

The GPT Image 2 edit prompt must:

- Use the uploaded photo as the identity reference.
- Preserve the real face, age impression, skin tone, hair, facial hair,
  glasses, face structure, asymmetry, pores, wrinkles, blemishes, and ordinary
  imperfections.
- Create a horizontal 16:9 live TV broadcast screenshot.
- Place the person naturally in the spectator area.
- Make the selected reaction or situation visible but not theatrical.
- Include sport-specific venue, crowd, wardrobe, scoreboard, a
Files: 4
Size: 33.1 KB
Complexity: 46/100
Category: Image & Video

Related in Image & Video