fan-cam
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.
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, aRelated in Image & Video
watch
IncludedWatch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
physical-ai-defect-image-generation
IncludedUse when the user wants to orchestrate defect image generation, run associated setup, or handle outputs on OSMO. The Day 0 path handles cold-start with USD-to-ROI, image-edit augmentation, and AnomalyGen to create initial PCBA datasets. The Day 1 path performs inference and labeling on real images. This skill helps with first-time asset setup, creation of finetuning checkpoints, and configuring deployment. Trigger keywords: defect image generation, dig workflow, dig pipeline, defect image detection workflow, aoi pipeline, aoi anomalygen, usd2roi anomalygen, day 0 pcba, day 1 pcba, day 1 real-photo alignment, day 1 manual roi, metal surface anomaly, glass defect, anomalygen finetune, setup_pcb, setup_metal, setup_glass, setup_pretrained, dig setup, dig datasets, dig pretrained checkpoint, dig image-edit endpoint.
accelint-react-best-practices
IncludedReact performance optimization and best practices. ALWAYS use this skill when working with any React code - writing components, hooks, JSX; refactoring; optimizing re-renders, memoization, state management; reviewing for performance; fixing hydration mismatches; debugging infinite re-renders, stale closures, input focus loss, animations restarting; preventing remounting; implementing transitions, lazy initialization, effect dependencies. Even simple React tasks benefit from these patterns. Covers React 19+ (useEffectEvent, Activity, ref props). Triggers - useEffect, useState, useMemo, useCallback, memo, inline components, nested components, components inside components, re-render, performance, hydration, SSR, Next.js, useDeferredValue, combined hooks.
elevenlabs-agents
IncludedBuild conversational AI voice agents with ElevenLabs Platform using React, JavaScript, React Native, or Swift SDKs. Configure agents, tools (client/server/MCP), RAG knowledge bases, multi-voice, and Scribe real-time STT. Use when: building voice chat interfaces, implementing AI phone agents with Twilio, configuring agent workflows or tools, adding RAG knowledge bases, testing with CLI "agents as code", or troubleshooting deprecated @11labs packages, Android audio cutoff, CSP violations, dynamic variables, or WebRTC config. Keywords: ElevenLabs Agents, ElevenLabs voice agents, AI voice agents, conversational AI, @elevenlabs/react, @elevenlabs/client, @elevenlabs/react-native, @elevenlabs/elevenlabs-js, @elevenlabs/agents-cli, elevenlabs SDK, voice AI, TTS, text-to-speech, ASR, speech recognition, turn-taking model, WebRTC voice, WebSocket voice, ElevenLabs conversation, agent system prompt, agent tools, agent knowledge base, RAG voice agents, multi-voice agents, pronunciation dictionary, voice speed control, elevenlabs scribe, @11labs deprecated, Android audio cutoff, CSP violation elevenlabs, dynamic variables elevenlabs, case-sensitive tool names, webhook authentication
humanizer
IncludedHumanize AI-generated text by detecting and removing patterns typical of LLM output. Rewrites text to sound natural, specific, and human. Uses 28 pattern detectors, 560+ AI vocabulary terms across 3 tiers, and statistical analysis (burstiness, type-token ratio, readability) for comprehensive detection. Use when asked to humanize text, de-AI writing, make content sound more natural/human, review writing for AI patterns, score text for AI detection, or improve AI-generated drafts. Covers content, language, style, communication, and filler categories.
generating-mermaid-diagrams
IncludedSalesforce architecture diagrams using Mermaid with ASCII fallback. Use this skill when generating text-based diagrams for Salesforce architecture, OAuth flows, ERDs, integration sequences, or Agentforce structure. TRIGGER when: user says "diagram", "visualize", "ERD", or asks for sequence diagrams, flowcharts, class diagrams, or architecture visualizations in Mermaid. DO NOT TRIGGER when: user wants PNG/SVG image output (use generating-visual-diagrams), or asks about non-Salesforce systems.