fan-cam

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Fan 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
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.
当用户想要制作具有真实体育直播切镜质感的个性化观众视频时,可使用此技能。通常的输入包括一张人物照片、赛事详情,以及期望的反应或场景。
运行环境为genmedia CLI。如需命令语法,请使用
genmedia
技能。当涉及端点选择、特定模型提示词编写或流水线执行细节时,加载
model-routing
fal-prompting
genmedia-workflow
请勿将私有示例、本地文件路径、用户特定的工作流名称或对话专属细节编码到提示词或文档中。保持此技能的通用性。

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.
仅加载所需内容:
  • references/prompt-contract.md
    :用于图片提示词和Kling提示词规则。
  • references/genmedia-commands.md
    :用于可执行的CLI命令模板。
  • 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
    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
.
仅询问会影响执行的缺失信息:
  • 用户照片:本地路径或URL,作为身份参考。
  • 赛事详情:体育项目、对阵双方、场馆、联赛、直播背景、着装、记分牌构思、人群行为及任何特定场景。
  • 反应或场景:兴奋、开心、大笑、悲伤、平静、愤怒、惊讶、紧张、专注、进食、分心、被镜头捕捉到、注意到体育场屏幕、庆祝、失望,或用户指定的其他瞬间。
  • 预算或画质偏好:仅当用户明确要求经济型、预览版或原生4K最终输出时询问。否则使用粉丝镜头的默认设置:采用
    quality=high
    的GPT Image 2编辑,生成3840x2160分辨率的画面,再使用Kling v3 Pro。
如果用户提供本地图片路径,使用
genmedia upload
上传一次并复用返回的URL。如果用户提供多张参考图,将第一张人物照片作为身份来源,后续图片作为可选的场馆、直播或风格参考。
用户照片是身份参考,并非适用于Kling的起始画面。即使用户提供了人物照片,也不能跳过GPT Image 2编辑步骤。对于个性化粉丝镜头,首先使用
openai/gpt-image-2/edit
将人物置于逼真的16:9直播场景中,然后将生成的已核准画面作为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.
默认流程:
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 --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
使用前务必验证端点:
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 openapi
,因为紧凑模式的输出可能会遗漏顶级字段,如
multi_prompt
start_image_url
duration
prompt
elements
shot_type
negative_prompt
cfg_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 --json

GPT Image 2 quality choice

GPT Image 2画质选择

  • 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}
  • 个性化粉丝镜头默认使用
    quality=high
    。GPT Image 2的价格受
    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:
  • 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.
根据需求选择端点:
  • fal-ai/kling-video/v3/pro/image-to-video
    :默认粉丝镜头端点。用于常规个性化体育切镜、公开示例,以及用户未明确要求经济型的任何请求。
  • fal-ai/kling-video/v3/standard/image-to-video
    :仅当用户明确要求经济型、预览版、最快迭代或低成本时使用。
  • fal-ai/kling-video/v3/4k/image-to-video
    :仅用于最终的高端4K交付,或用户明确要求4K视频时使用。使用前先检查定价。
请勿仅凭记忆选择端点。在当前会话中使用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
    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.
由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 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.
当符合需求时,在右上角添加小型电视频道标识。标识应具有体育项目特色且符合直播真实感,除非用户提供了确切的已核准标识或明确要求指定电视台,否则使用通用标识。
优秀的通用示例:
  • FOOTBALL LIVE
  • COURT LIVE
  • BASKET LIVE
  • RACE LIVE
  • FIGHT LIVE
  • MATCH 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
    @Element1
    in every beat only when the request actually includes a real user-provided or approved Kling
    elements
    entry. Otherwise describe the featured spectator from the
    start_image_url
    ; do not invent extra elements.
  • Always submit Kling with
    generate_audio=true
    . Do not use
    generate_audio=false
    in this skill.
  • When using
    multi_prompt
    , do not send
    end_image_url
    ; Kling rejects
    end_image_url
    together with
    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
    时,不要发送
    end_image_url
    ;Kling会拒绝同时包含
    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 venue

Quality gate

质量检查

Before returning:
  • The selected endpoint and schema were verified with genmedia.
  • GPT Image 2 edit used
    quality=high
    and
    image_size={"width":3840,"height":2160}
    unless the user explicitly requested an economy or preview run.
  • 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
    fal-ai/kling-video/v3/pro/image-to-video
    unless the user explicitly requested economy/preview or native 4K 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
    @Element1
    when a real Kling
    elements
    entry is used.
  • No invented extra elements were added.
  • Kling request uses
    generate_audio=true
    .
  • Kling request does not combine
    multi_prompt
    with
    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、下载文件及任何可见缺陷的简洁清单。