fan-cam
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFan cam production with genmedia
借助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 skill for command syntax. Load
, , and when endpoint choice,
model-specific prompt craft, or pipeline execution details matter.
genmediamodel-routingfal-promptinggenmedia-workflowDo not encode private examples, local file paths, user-specific workflow names,
or conversation-specific details into prompts or docs. Keep this skill
generalized.
当用户想要制作具有真实体育直播切镜质感的个性化观众视频时,可使用此技能。通常的输入包括一张人物照片、赛事详情,以及期望的反应或场景。
运行环境为genmedia CLI。如需命令语法,请使用技能。当涉及端点选择、特定模型提示词编写或流水线执行细节时,加载、和。
genmediamodel-routingfal-promptinggenmedia-workflow请勿将私有示例、本地文件路径、用户特定的工作流名称或对话专属细节编码到提示词或文档中。保持此技能的通用性。
References
参考资料
Load only what is needed:
- for the image prompt and Kling prompt rules.
references/prompt-contract.md - for executable CLI command patterns.
references/genmedia-commands.md - for sport-specific examples.
references/examples.md
仅加载所需内容:
- :用于图片提示词和Kling提示词规则。
references/prompt-contract.md - :用于可执行的CLI命令模板。
references/genmedia-commands.md - :用于体育项目相关示例。
references/examples.md
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 with a 3840x2160 frame, then Kling v3 Pro.
quality=high
If the user gives a local image path, upload it once with 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.
genmedia uploadThe 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 to place the person
inside a realistic 16:9 broadcast scene, then use the approved generated frame
as Kling .
openai/gpt-image-2/editstart_image_url仅询问会影响执行的缺失信息:
- 用户照片:本地路径或URL,作为身份参考。
- 赛事详情:体育项目、对阵双方、场馆、联赛、直播背景、着装、记分牌构思、人群行为及任何特定场景。
- 反应或场景:兴奋、开心、大笑、悲伤、平静、愤怒、惊讶、紧张、专注、进食、分心、被镜头捕捉到、注意到体育场屏幕、庆祝、失望,或用户指定的其他瞬间。
- 预算或画质偏好:仅当用户明确要求经济型、预览版或原生4K最终输出时询问。否则使用粉丝镜头的默认设置:采用的GPT Image 2编辑,生成3840x2160分辨率的画面,再使用Kling v3 Pro。
quality=high
如果用户提供本地图片路径,使用上传一次并复用返回的URL。如果用户提供多张参考图,将第一张人物照片作为身份来源,后续图片作为可选的场馆、直播或风格参考。
genmedia upload用户照片是身份参考,并非适用于Kling的起始画面。即使用户提供了人物照片,也不能跳过GPT Image 2编辑步骤。对于个性化粉丝镜头,首先使用将人物置于逼真的16:9直播场景中,然后将生成的已核准画面作为Kling的。
openai/gpt-image-2/editstart_image_urlPipeline
流水线
Default graph:
text
photo URL -> prompt planning -> GPT Image 2 edit frame -> optional compression -> Kling v3 image-to-video -> downloaded video manifestThe 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.
默认流程:
text
照片URL -> 提示词规划 -> GPT Image 2编辑画面 -> 可选压缩 -> Kling v3图片转视频 -> 下载视频清单当输入为普通人物照片时,GPT Image 2编辑画面是必填步骤。仅当用户明确提供已核准的16:9直播粉丝镜头画面并要求将其动画化时,才可跳过此步骤。
规划步骤由使用此技能的Agent执行。除非用户明确要求使用托管规划工具,否则无需调用单独的LLM端点来编写提示词,直接编写图片提示词和Kling多段提示词即可。
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 --jsonInspect 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 --jsonUse for Kling v3 image-to-video endpoints because compact
schema output may omit top-level fields such as ,
, , , , ,
, and .
--format openapimulti_promptstart_image_urldurationpromptelementsshot_typenegative_promptcfg_scaleCheck 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使用前务必验证端点:
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运行前检查模式:
bash
genmedia schema openai/gpt-image-2/edit --json
genmedia schema fal-ai/kling-video/v3/pro/image-to-video --format openapi --json对于Kling v3图片转视频端点,使用,因为紧凑模式的输出可能会遗漏顶级字段,如、、、、、、和。
--format openapimulti_promptstart_image_urldurationpromptelementsshot_typenegative_promptcfg_scale当成本相关时,检查定价:
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 --jsonGPT Image 2 quality choice
GPT Image 2画质选择
- Use by default for personalized fan-cam frames. GPT Image 2 price is strongly affected by
quality=highvslow, but fan-cam identity, broadcast integration, and readable overlays need the stronger default.high - Use only when the user explicitly requests economy, preview, fast iteration, or lower-cost social drafts.
quality=low - Use for the generated broadcast frame unless the user needs transparency or lossless output.
output_format=jpeg - Use 16:9 4K frame size by default:
json
{"width":3840,"height":2160}- 个性化粉丝镜头默认使用。GPT Image 2的价格受
quality=high和low画质影响较大,但粉丝镜头的身份还原、直播融合效果和清晰的叠加层需要更强的默认设置。high - 仅当用户明确要求经济型、预览版、快速迭代或低成本社交草稿时,才使用。
quality=low - 生成直播画面时默认使用,除非用户需要透明背景或无损输出。
output_format=jpeg - 默认使用16:9 4K分辨率:
json
{"width":3840,"height":2160}Kling v3 choice
Kling v3选择
Select the endpoint based on the brief:
- : 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/pro/image-to-video - : use only when the user explicitly asks for economy, preview, fastest iteration, or lower cost.
fal-ai/kling-video/v3/standard/image-to-video - : use only for final premium 4K delivery or when the user explicitly asks for 4K video. Check pricing first.
fal-ai/kling-video/v3/4k/image-to-video
Do not choose from memory alone. Verify model status and schema with genmedia in
the current session.
根据需求选择端点:
- :默认粉丝镜头端点。用于常规个性化体育切镜、公开示例,以及用户未明确要求经济型的任何请求。
fal-ai/kling-video/v3/pro/image-to-video - :仅当用户明确要求经济型、预览版、最快迭代或低成本时使用。
fal-ai/kling-video/v3/standard/image-to-video - :仅用于最终的高端4K交付,或用户明确要求4K视频时使用。使用前先检查定价。
fal-ai/kling-video/v3/4k/image-to-video
请勿仅凭记忆选择端点。在当前会话中使用genmedia验证模型状态和模式。
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 equal to the sum of all beat durations.
duration - If a real user-provided or approved reference is supplied through Kling
, every multi prompt must reference
elements. Do not invent extra elements just to satisfy a prompt pattern.@Element1 - 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.
由Agent决定多段提示词的数量和时长。
硬性规则:
- 每段提示词的时长至少为3秒。
- 视频总时长不得超过15秒。
- 使用2至5段提示词。
- 将Kling的顶级设置为所有片段时长的总和。
duration - 如果通过Kling的提供了真实的用户参考或已核准参考,每段提示词必须引用
elements。请勿为了满足提示词模板而额外添加元素。@Element1 - 保持Kling提示词简洁。目标长度为250-430字符。
推荐模板:
- 简单切镜:2个片段,总时长6秒。
- 标准反应:3个片段,总时长9秒。
- 丰富粉丝镜头瞬间:4个片段,总时长12秒。
- 完整故事片段:5个片段,总时长15秒。
不必总是使用5个片段。选择能清晰表达瞬间的最少数量即可。
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 LIVECOURT LIVEBASKET LIVERACE LIVEFIGHT LIVEMATCH 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.
当符合需求时,在右上角添加小型电视频道标识。标识应具有体育项目特色且符合直播真实感,除非用户提供了确切的已核准标识或明确要求指定电视台,否则使用通用标识。
优秀的通用示例:
FOOTBALL LIVECOURT LIVEBASKET LIVERACE LIVEFIGHT LIVEMATCH CAM
当赛事需要时,使用紧凑的比分或计时叠加层。保持叠加层小巧、融入画面,且处于观众的次要位置。避免虚假赞助商标识、大型UI图形、不稳定文本和占据画面的标识。
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, and broadcast language.
- Include realistic TV capture flaws: mild compression noise, subtle motion blur, off-center crop, foreground occlusion, focus falloff, imperfect background faces, natural venue light, and small exposure inconsistencies.
- Include a small top-right broadcast channel bug when appropriate.
The image prompt must avoid:
- Beauty retouching, AI influencer face, changed face anatomy, enlarged eyes, jawline sharpening, face slimming, porcelain skin, waxy skin.
- Studio portrait, passport photo, selfie framing, isolated subject, pasted face, face cutout, empty background.
- Fake sponsor marks, oversized logos, warped scoreboard text, random props not requested by the user, CGI crowd, cloned faces, anime, cartoon.
GPT Image 2编辑提示词必须:
- 将上传的照片作为身份参考。
- 保留真实的面部、年龄感、肤色、发型、面部毛发、眼镜、面部结构、不对称性、毛孔、皱纹、瑕疵和普通的不完美之处。
- 创建横向16:9的电视直播截图。
- 将人物自然地置于观众区域。
- 清晰呈现所选的反应或场景,但不要过于夸张。
- 包含体育项目相关的场馆、人群、着装、记分牌和直播用语。
- 包含逼真的电视拍摄瑕疵:轻微压缩噪点、细微运动模糊、偏离中心的裁剪、前景遮挡、焦点衰减、不完美的背景人脸、自然场馆光线和微小的曝光不一致。
- 适当的话,添加右上角的小型直播频道标识。
图片提示词必须避免:
- 美颜修图、AI网红脸、改变面部结构、放大眼睛、磨尖下颌线、瘦脸、瓷感皮肤、蜡状皮肤。
- 工作室肖像、护照照片、自拍构图、孤立主体、面部粘贴、面部抠图、空白背景。
- 虚假赞助商标识、过大的标识、扭曲的记分牌文本、用户未要求的随机道具、CGI人群、克隆人脸、动漫、卡通风格。
Kling prompt requirements
Kling提示词要求
The Kling prompts must:
- Reference in every beat only when the request actually includes a real user-provided or approved Kling
@Element1entry. Otherwise describe the featured spectator from theelements; do not invent extra elements.start_image_url - Always submit Kling with . Do not use
generate_audio=truein this skill.generate_audio=false - When using , do not send
multi_prompt; Kling rejectsend_image_urltogether withend_image_url.multi_prompt - Preserve the same person, face, outfit, seat area, crowd, overlay, lighting, and channel bug.
- Animate realistic broadcast motion: small head movement, blinking, breath, slight hand motion, food/drink gesture if present, nearby fans shifting, camera push-in, pan, sidestep, operator correction, or crowd swell.
- Use sport-specific language. Never write generic alternatives like "field or court" or "stadium or arena".
- Fit the chosen beat duration.
- If a spoken phrase should be external narration, do not write it as something the featured spectator says. Phrase it as an off-screen broadcast commentator, arena PA voice, or non-diegetic voiceover, and explicitly state that the featured spectator stays silent with no lip sync and no mouth movement matching the voice.
- Avoid face morphing, beautification, unstable scoreboard text, unstable logo, wrong sport, impossible crowd action, excessive camera movement, and sudden scene resets.
Kling提示词必须:
- 仅当请求中确实包含真实的用户提供或已核准的Kling 条目时,才在每个片段中引用
elements。否则从@Element1描述主要观众;请勿额外添加元素。start_image_url - Kling请求始终设置。在此技能中不要使用
generate_audio=true。generate_audio=false - 使用时,不要发送
multi_prompt;Kling会拒绝同时包含end_image_url和multi_prompt的请求。end_image_url - 保留同一人物、面部、服装、座位区域、人群、叠加层、光线和频道标识。
- 制作逼真的直播动作:头部小幅移动、眨眼、呼吸、轻微手部动作(如果有进食/饮水动作)、附近粉丝的移动、镜头推进、摇移、侧移、操作员调整或人群涌动。
- 使用体育项目专属用语。切勿使用通用替代词,如“场地或球场”或“体育场或竞技场”。
- 符合所选片段的时长。
- 如果需要外部旁白,不要将其写成主要观众的台词。将其表述为场外直播解说员、场馆广播声或非剧情旁白,并明确说明主要观众保持沉默,嘴唇不会与声音同步。
- 避免面部变形、美颜、不稳定的记分牌文本、不稳定的标识、错误的体育项目、不切实际的人群动作、过度镜头移动和突然的场景重置。
Negative prompt
负面提示词
Use a negative prompt like this and adapt only when needed:
text
low quality, smeared face, distorted faces, duplicated face, deformed hands, broken fingers, fake sponsor marks, oversized logos, unstable broadcast logo, watermark, text artifacts, unstable broadcast banner, flickering scoreboard, warped scoreboard text, unreadable names, passport photo, studio portrait, glamour portrait, beauty lighting, AI influencer, beautified face, changed face, enlarged eyes, sharpened jawline, pasted face, face cutout, over-smoothed skin, plastic skin, waxy skin, CGI crowd, cloned crowd, anime, cartoon, excessive camera movement, wrong sport, wrong venue使用如下负面提示词,仅在需要时调整:
text
low quality, smeared face, distorted faces, duplicated face, deformed hands, broken fingers, fake sponsor marks, oversized logos, unstable broadcast logo, watermark, text artifacts, unstable broadcast banner, flickering scoreboard, warped scoreboard text, unreadable names, passport photo, studio portrait, glamour portrait, beauty lighting, AI influencer, beautified face, changed face, enlarged eyes, sharpened jawline, pasted face, face cutout, over-smoothed skin, plastic skin, waxy skin, CGI crowd, cloned crowd, anime, cartoon, excessive camera movement, wrong sport, wrong venueQuality gate
质量检查
Before returning:
- The selected endpoint and schema were verified with genmedia.
- GPT Image 2 edit used and
quality=highunless the user explicitly requested an economy or preview run.image_size={"width":3840,"height":2160} - If the input was a person photo, a GPT Image 2 edit frame was generated and approved before Kling. The raw person photo was not sent directly to Kling as the fan-cam start frame.
- Kling used unless the user explicitly requested economy/preview or native 4K video.
fal-ai/kling-video/v3/pro/image-to-video - Multi prompt durations are each at least 3 seconds.
- Total duration is 15 seconds or less.
- Top-level Kling duration equals the sum of beat durations.
- Every beat references when a real Kling
@Element1entry is used.elements - No invented extra elements were added.
- Kling request uses .
generate_audio=true - Kling request does not combine with
multi_prompt.end_image_url - Any intended external narration is not lip-synced to the featured spectator; verify the mouth does not move like the voice belongs to the person on camera.
- The generated frame is below Kling image limits. If not, compress it.
- The person remains recognizable and not beautified.
- The broadcast bug and scoreboard are small and stable enough.
- Final files were downloaded with .
--download
Return a compact manifest with endpoint IDs, request IDs, model settings,
prompts used, output URLs, downloaded files, and any visible defects.
返回前需确认:
- 已使用genmedia验证所选端点和模式。
- 除非用户明确要求经济型或预览版运行,否则GPT Image 2编辑使用了和
quality=high。image_size={"width":3840,"height":2160} - 如果输入是人物照片,在使用Kling之前已生成并核准了GPT Image 2编辑画面。未将原始人物照片直接作为粉丝镜头起始画面发送给Kling。
- 除非用户明确要求经济型/预览版或原生4K视频,否则Kling使用了。
fal-ai/kling-video/v3/pro/image-to-video - 每段提示词的时长至少为3秒。
- 总时长不超过15秒。
- Kling的顶级时长等于所有片段时长的总和。
- 当使用真实的Kling 条目时,每个片段都引用了
elements。@Element1 - 未添加额外的虚构元素。
- Kling请求设置了。
generate_audio=true - Kling请求未同时使用和
multi_prompt。end_image_url - 任何预期的外部旁白未与主要观众的嘴唇同步;确认人物嘴唇不会随声音做出动作。
- 生成的画面未超过Kling的图片限制。如果超过,已进行压缩。
- 人物保持可识别且未被美颜。
- 直播标识和记分牌足够小巧且稳定。
- 已使用下载最终文件。
--download
返回包含端点ID、请求ID、模型设置、使用的提示词、输出URL、下载文件及任何可见缺陷的简洁清单。