mcpField
F
fan-cam

fan-cam

github.com/fal-ai-community创意与媒体257274 次安装24 周前更新
代码仓库

关于 fan-cam

fan-cam 是基于 genmedia CLI 的技能,用于根据人物照片和赛事信息制作个性化、仿现场转播的观众视频。它规定了从图像编辑到视频生成的流程及提示词要求。

主要功能

  1. 01照片转为转播观众画面
  2. 02使用 Kling 制作图像转视频
  3. 03按赛事规划场景与反应
  4. 04规定转播叠加层和提示词
  5. 05校验模型端点与参数

适用场景

  1. 01制作观众庆祝或紧张反应片段
  2. 02将人物照片置入赛事转播场景

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fal-ai-community/skills --skill fan-cam

安装后在 Claude Code 中输入/fan-cam确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
examples.md
genmedia-commands.md
prompt-contract.md

详细介绍

使用 genmedia 制作粉丝镜头视频

当用户想要一段个性化的观众视频,呈现真实体育直播转播中观众镜头切换的效果时,使用此技能。通常需要提供一张人物照片、赛事详情,以及期望的反应或情境。

运行时使用 genmedia CLI。命令语法请参考 genmedia 技能。涉及端点选择、特定模型的提示词编写或管线执行细节时,加载 model-routing、fal-prompting 和 genmedia-workflow。

不要在提示词或文档中写入私密示例、本地文件路径、特定用户的工作流名称或对话专属细节。请保持此技能通用。

参考资料

仅加载所需内容:

  • references/prompt-contract.md:图像提示词和 Kling 提示词规则。
  • references/genmedia-commands.md:可执行的 CLI 命令模式。
  • references/examples.md:针对不同运动项目的示例。

必需输入

仅询问会影响执行的缺失信息:

  • 用户照片:本地路径或 URL。这是身份参考。
  • 赛事详情:运动项目、对阵双方、场馆、联赛、转播背景、服装、记分牌构想、观众行为,以及任何具体情境。
  • 反应或情境:兴奋、开心、大笑、悲伤、平静、愤怒、惊讶、紧张、专注、吃东西、分心、被镜头捕捉到、注意到体育场大屏幕、庆祝、失望,或用户指定的其他时刻。
  • 仅当用户明确要求节省成本、预览或原生 4K 最终输出时,才询问预算或质量偏好。否则使用标准粉丝镜头默认设置:以 quality=high 使用 GPT Image 2 edit 生成 3840x2160 画面,然后使用 Kling v3 Pro。

如果用户提供本地图片路径,使用 genmedia upload 上传一次,并重复使用返回的 URL。如果用户提供多张参考图,将第一张人物照片作为身份来源,后续图片则作为可选的场馆、转播或造型参考。

用户照片是身份参考,不是可直接用于 Kling 的起始帧。即使用户提供了人物照片,也不要跳过 GPT Image 2 edit。制作个性化粉丝镜头视频时,先使用 openai/gpt-image-2/edit 将人物放入逼真的 16:9 转播场景,再将获准使用的生成画面作为 Kling 的 start_image_url。

管线

默认图:

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

如果输入是普通人物照片,则必须使用 GPT Image 2 edit 生成画面。只有在用户明确提供了已获准使用的 16:9 转播粉丝镜头画面,并要求为其制作动画时,才能跳过此步骤。

规划步骤由 Agent 使用此技能完成。除非用户明确要求使用托管式规划器,否则不要调用单独的大模型端点来编写提示词。直接编写图像提示词和 Kling 多提示词。

端点选择

使用前始终验证端点:

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

运行前检查架构:

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。

涉及成本时,检查价格:

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=high。GPT Image 2 的价格受 low 与 high 的影响很大,但粉丝镜头中的身份还原、转播场景融合和叠加信息清晰度都需要更高的默认质量。
  • 仅当用户明确要求节省成本、预览、快速迭代或低成本社交媒体草稿时,才使用 quality=low。
  • 除非用户需要透明背景或无损输出,否则生成转播画面时使用 output_format=jpeg。
  • 默认使用 16:9 的 4K 画面尺寸:
{"width":3840,"height":2160}
Kling v3 选择

根据需求选择端点:

  • 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 核实模型状态和架构。

镜头与时长规划

由 Agent 决定多段提示词的数量和时长。

硬性规则:

  • 每段多段提示词至少 3 秒。
  • 视频总时长不得超过 15 秒。
  • 使用 2 至 5 段多段提示词。
  • 顶层 Kling duration 必须等于所有节拍时长之和。
  • 如果通过 Kling elements 提供了用户提供或已获批准的真实参考图,每段多段提示词都必须引用 @Element1。不要为了满足提示词模式而臆造额外元素。
  • Kling 提示词要简洁。建议控制在 250 至 430 个字符。

推荐模式:

  • 简单转播镜头:2 个节拍,共 6 秒。
  • 常规反应:3 个节拍,共 9 秒。
  • 丰富的球迷镜头片段:4 个节拍,共 12 秒。
  • 完整故事节拍:5 个节拍,共 15 秒。

不要总是使用 5 个节拍。选择能清晰呈现这一刻的最少数量。

场景规划

球迷镜头不必只是对着观众拉近镜头。根据赛事细节设计场景:

  • 一名紧张的球迷正观看决胜分。
  • 一名支持者正在吃喝时,被转播摄像机捕捉到。
  • 一名观众发现自己出现在体育场大屏幕上。
  • 网球抢七期间,观众席安静地做出反应。
  • 篮球场低层看台上的球迷对压哨绝杀做出反应。
  • 赛车看台上的观众转向场外发生的超车或撞车事故。
  • 紧张回合期间,格斗赛事观众席的转播镜头。
  • 用户有要求时,可呈现观赛派对或电竞场馆中的反应。

整段视频都要以生成的画面为基础。利用动作、摄像机校正、人群行为、表情变化和画外赛事氛围来构成片段。

转播台标与叠加层

符合需求时,可在右上角添加小型电视台台标。台标应有体育赛事特色且符合真实转播风格;除非用户提供了确切且获准使用的标志,或明确要求使用指定电视网名称,否则应采用通用样式。

适用的通用示例:

  • FOOTBALL LIVE
  • COURT LIVE
  • BASKET LIVE
  • RACE LIVE
  • FIGHT LIVE
  • MATCH CAM

赛事需要时,可添加简洁的比分或计时叠加层。叠加层应小巧、融入画面,并作为观众的次要元素。避免使用虚构的赞助商标志、大型 UI 图形、不稳定的文字,以及喧宾夺主的标志。

图像提示词要求

GPT Image 2 编辑提示词必须:

  • 使用上传的照片作为身份参考。
  • 保留真实的脸部、年龄感、肤色、头发、面部毛发、眼镜、面部结构、不对称特征、毛孔、皱纹、瑕疵和普通缺陷。
  • 创建一张横向 16:9 的电视直播截图。
  • 让人物自然地出现在观众席区域。
  • 让选定的反应或情境清晰可见,但不要显得戏剧化。
  • 包含符合具体运动项目的场馆、观众、着装、记分牌和转播用语。
  • 包含逼真的电视拍摄瑕疵:轻微压缩噪点、细微动态模糊、偏离中心的裁切、前景遮挡、焦点衰减、不完美的背景人脸、自然的场馆光线,以及轻微的曝光不一致。
  • 适当时在右上角加入小型转播频道标识。

图像提示词必须避免:

  • 美颜修饰、AI 网红脸、改变面部解剖结构、放大眼睛、锐化下颌线、瘦脸、瓷质皮肤、蜡质皮肤。
  • 影棚肖像、护照照片、自拍构图、孤立人物、粘贴的人脸、抠出的人脸、空荡的背景。
  • 虚假的赞助商标识、过大的 Logo、扭曲的记分牌文字、用户未要求的随机道具、CGI 观众、克隆人脸、动漫、卡通。

Kling 提示词要求

Kling 提示词必须:

  • 仅当请求确实包含用户提供或已批准的 Kling elements 条目时,才在每个节拍中引用 @Element1。否则,应根据 start_image_url 描述出镜观众;不要擅自添加额外元素。
  • 始终使用 generate_audio=true 提交 Kling。此技能中不要使用 generate_audio=false。
  • 使用 multi_prompt 时,不要发送 end_image_url;Kling 不允许 end_image_url 与 multi_prompt 一起使用。
  • 保持同一人物、脸部、服装、座位区域、观众、叠加层、光线和频道标识。
  • 加入逼真的转播动态:轻微的头部动作、眨眼、呼吸、轻微手部动作、进食或喝饮料的动作(如有)、附近观众移动、镜头推进、摇摄、横移、摄像操作员调整画面,或观众席的欢呼声渐起。
  • 使用符合具体运动项目的用语。切勿使用“球场或球馆”“体育场或竞技场”之类的泛化说法。
  • 符合所选节拍的时长。
  • 如果某句台词应作为外部旁白,不要写成出镜观众说的话。应将其表述为画外转播评论员、场馆广播或非画内旁白,并明确说明出镜观众保持沉默,不做口型同步,嘴部动作也不与旁白对应。
  • 避免脸部变形、美颜、记分牌文字不稳定、Logo 不稳定、运动项目错误、不可能的观众动作、过度的镜头移动和突然重置场景。

负面提示词

使用类似下面的负面提示词,仅在必要时进行调整:

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

质量门槛

返回前:

  • 已使用 genmedia 验证所选端点和架构。
  • GPT Image 2 编辑使用了 quality=high 和 image_size={"width":3840,"height":2160},除非用户明确要求经济模式或预览。
  • 如果输入是人物照片,则在使用 Kling 前已生成并批准 GPT Image 2 编辑帧。未将原始人物照片直接发送给 Kling 作为粉丝镜头的起始帧。
  • Kling 使用了 fal-ai/kling-video/v3/pro/image-to-video,除非用户明确要求经济模式、预览或原生 4K 视频。
  • 多提示词中的每段时长至少为 3 秒。
  • 总时长不超过 15 秒。
  • Kling 顶层时长等于各段时长之和。
  • 使用真实 Kling elements 条目时,每段都引用 @Element1。
  • 未添加虚构的额外元素。
  • Kling 请求使用了 generate_audio=true。
  • Kling 请求未将 multi_prompt 与 end_image_url 组合使用。
  • 任何预期的外部旁白都未与画面中的观众进行口型同步;已确认画面中人物的嘴部动作不会让人觉得声音来自该人物。
  • 生成帧尺寸未超过 Kling 图像限制。若超过,已进行压缩。
  • 人物仍可辨认,且未经过美化。
  • 转播台标和记分牌足够小且稳定。
  • 已使用 --download 下载最终文件。

返回一份精简清单,列出端点 ID、请求 ID、模型设置、使用的提示词、输出 URL、已下载文件和任何可见缺陷。

评论

支持 Markdown