scenario-fan-cam
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseScenario Fan Cam
Scenario 粉丝镜头
Overview
概述
A fan cam is a two-stage build: an identity-preserving image edit places the person into a 16:9 broadcast still, and image-to-video animates the approved still into a reaction. The uploaded photo is an identity reference, never a start frame: feeding it straight to a video model animates a portrait, not a broadcast. Stage one is cheap and stage two is not, so the still carries every decision worth approving.
Use only photos of the user or of people who gave them permission; refuse celebrity or stranger insertions. Real faces also trip provider filters more than most subjects: on a block, see . Connection and the core loop: see the skill in this repo. If a sibling skill named here is missing from your available skills, ask the user to install it (); unattended, proceed from tool schemas and flag the gap.
scenario-moderationscenarionpx skills add scenario-labs/skills --skill <name>粉丝镜头制作分为两个阶段:首先通过身份保留型图像编辑将人物合成到16:9的直播静态画面中,再通过图生视频技术将审核通过的静态画面生成带有反应的动态视频。上传的照片仅作为身份参考,绝不能作为起始帧:直接将照片输入视频模型生成的是人像动态效果,而非直播画面。第一阶段成本较低,第二阶段成本较高,因此静态画面需要确认所有关键决策后再进入下一步。
仅可使用用户本人或已获得授权的人物照片,拒绝合成名人或陌生人的画面。真实人脸比大多数主体更容易触发服务商的内容过滤机制:若遇到拦截,请参考。连接方式与核心流程请参考本仓库中的技能。如果你的可用技能中缺少此处提到的关联技能,请让用户安装(命令:);若处于无人值守模式,可基于工具架构继续执行并标记缺失的技能。
scenario-moderationscenarionpx skills add scenario-labs/skills --skill <name>Quick reference
快速参考
Discover members with , passing the stage's capability and the user's own words: it ranks by measured cost and latency and names the purpose-built pick, where a capability-worded returns hundreds of keyword hits with nothing to choose between them. Read before taking a pick, per the skill. Keep for a member you can already name. Never assert a generative model's id as a constant. Scenario's own single-purpose tool models are named outright below: there is exactly one of each, so discovering them would only re-derive a constant.
recommendsearchnext_stepscenariosearch| Stage | What happens | Detail |
|---|---|---|
| 1. Identity still | Image-edit member ( | |
| 2. Still gate | Likeness checked against the photo before any video money is spent | |
| 3. Animate | Image-to-video from the approved still, reaction beats, one camera move | |
| 4. Identity gate | Frames extracted from the clip, compared to the approved still | |
| 5. Overlays | Score strip, channel bug, lower third composited as post layers, never generated | |
| 6. Derivatives | 9:16 and 1:1 social cuts off the 16:9 master | |
Broadcast grammar is what sells the shot, so prompt it explicitly at both stages: long-lens compression with the crowd defocused in front and behind, harsh stadium floodlight or arena strobe, slight motion blur, the camera hunting and reframing as it finds the subject. Keep the person mid-ground among other fans, off-center, at broadcast camera height. A centered, well-lit, eye-level subject reads as a photoshoot in a stadium, not a cutaway.
Give the reaction an arc rather than a state: oblivious, then noticing the camera or the screen, then the reaction the user asked for (cheering, laughing, disbelief, heartbreak). Multi-beat prompting per the video family's contract keeps the turn inside one clip.
使用查找可用组件,传入对应阶段的能力需求和用户的原始描述:它会根据实测成本和延迟排序,并推荐专用方案;而按能力关键词使用会返回数百个匹配结果,难以区分优劣。根据技能的要求,选择方案前请先阅读。仅当你已经知道具体组件名称时才使用。绝不要将生成式模型的ID当作常量使用。Scenario自带的专用工具模型已在下方明确列出:每种仅有一个,因此查找它们只会得到固定结果。
recommendsearchscenarionext_stepsearch| 阶段 | 执行内容 | 相关技能 |
|---|---|---|
| 1. 身份静态画面 | 图像编辑组件( | |
| 2. 静态画面审核 | 在产生视频生成成本前,对照原照片检查人像相似度 | |
| 3. 动态生成 | 基于审核通过的静态画面生成视频,包含反应节拍和一次镜头移动 | |
| 4. 身份一致性校验 | 从视频中提取帧,与审核通过的静态画面对比 | |
| 5. 叠加层 | 计分条、频道台标、底部字幕条作为后期图层合成,绝不通过生成得到 | |
| 6. 衍生版本 | 基于16:9主版本裁剪出9:16和1:1的社交平台版本 | |
直播画面的真实感来自专业的镜头语言,因此两个阶段都要在提示词中明确说明:使用长焦镜头压缩空间,前后景人群虚化,体育场泛光灯或场馆频闪灯的强烈光照,轻微的运动模糊,镜头找到主体时的对焦和重新构图过程。将人物放在其他粉丝中间的中景位置,偏离画面中心,高度与直播摄像机齐平。如果主体居中、光线良好、处于视线水平,看起来就像是在体育场拍的写真,而不是直播切镜。
给反应设计一个情绪弧光,而非单一状态:先是毫无察觉,然后注意到镜头或屏幕,最后做出用户要求的反应(欢呼、大笑、难以置信、心碎)。按照视频类技能的规范使用多节拍提示词,可以让情绪转变在单个视频片段内完成。
Worked example: caught on the stadium screen, 8 seconds
实操示例:被体育场大屏拍到,8秒
- Collect the photo, the sport or event, venue mood, wardrobe, and the wanted reaction. the photo once and reuse the returned asset id.
upload_asset - Create this run's collection before the first generation (, catalog write lane,
collection_createonly), thennameeach keeper as it lands; its returnedcollection_add_assetsis the receipt.itemCount - with
recommendand the placement described in words; prefer a ranked entry that takes several reference images, and readcapability="img2img"for those inputs (model_schema_getfor the lane,scenario-imagefor reference discipline).scenario-consistency - Edit prompt: "the person from the reference image seated mid-crowd at a floodlit football stadium, 16:9 television cutaway, long-lens crowd compression, no text, logos, or graphics in frame". Keep the plate text-free: overlays come later.
- Gate the still: it for approval, and inventory the likeness features that must hold (face geometry, hairline, skin tone, wardrobe) with the analysis lane from
asset_display; a change in any inventoried feature fails. Unattended, that inventory stands in for the user's sign-off.scenario-asset-analysis - with
recommendand the reaction described in words, then check the pick againstcapability="img2video"orscenario-kling. The brief's length filters members:scenario-videois usually a fixed enum a member either reaches or does not, and the tiers that reach it sit far apart on price, sodurationeach candidate and compare withmodel_schema_getmodel_run.dry_run=true - Run with the approved still as the start image and two beats: "she chats, unaware" then "she spots herself on the stadium screen, stands, and cheers", one slow reframing move, , then
wait=falsere-called withjobs_waiton timeout, never a secondpending_job_ids.model_run - Check the clip against the approved still on frames the platform produced: the free and
firstFrameofflastFramefirst, thenasset_getfor a mid-clip frame (a tool-model lane permodel_scenario-video-to-image-seq). A local extraction is not a substitute at any budget, because it yields no asset to file or audit and the gate stops being traceable. A change in any inventoried feature fails the clip, and so does legible generated type: ribbon boards and jumbotron glyphs creep in even against a no-text prompt, worst late in the clip. The retry starts from the same still, never from the drifted output.scenario-video-editing - Assemble on-platform with (a tool-model lane per
model_scenario-compose-video), layering the score strip and channel bug fromscenario-video-assemblyin the safe corners; a local editor is the wrong lane. Give every overlay layer an explicitscenario-text-overlayandwidth, since leaving them empty is documented as native size and does not hold, and pinheightto the clip's length, since an image layer otherwise stretches the composition past it. A succeeded compose job is not proof the layers drew: pull a frame from the composite (the freedurationMode: "custom") and confirm every layer is present and placed before delivering. Then cut 9:16 perfirstFrame, a resize rather than a reframe, whose video members outpaint a wider frame instead of cutting one. Itsscenario-formatsmode crops from the centre, so when the subject sits off-centre put the master on a 9:16 compositor canvas positioned to hold them instead.coverboth.asset_display
- 收集照片、运动/活动类型、场馆氛围、着装要求和预期反应。使用上传一次照片,后续复用返回的资源ID。
upload_asset - 在第一次生成前创建本次运行的集合(,目录写入通道,仅需填写
collection_create),每生成一张可用画面就用name添加进去;返回的collection_add_assets可作为操作凭证。itemCount - 调用,传入
recommend和用自然语言描述的合成需求;优先选择支持多张参考图的排序结果,并通过capability="img2img"查看输入参数要求(model_schema_get对应生成通道,scenario-image对应参考图一致性控制)。scenario-consistency - 编辑提示词:"参考图中的人物坐在泛光灯照明的足球场人群中间,16:9电视直播切镜,长焦人群压缩效果,画面中无文字、标识或图形"。确保底图无文字:叠加层后续再添加。
- 静态画面审核:调用展示画面供确认,并使用
asset_display的分析通道列出需要保持一致的人像特征(面部轮廓、发际线、肤色、着装);任何一项特征发生变化即判定为不通过。无人值守模式下,该特征清单可替代用户确认。scenario-asset-analysis - 调用,传入
recommend和用自然语言描述的反应需求,然后将推荐结果与capability="img2video"或scenario-kling比对。需求中的时长会过滤可用组件:scenario-video通常是固定枚举值,组件要么支持要么不支持,且支持该时长的不同层级价格差异很大,因此需要对每个候选调用duration,并结合model_schema_get的model_run结果对比。dry_run=true - 以审核通过的静态画面作为起始图运行生成,包含两个节拍:"她聊天,毫无察觉",然后"她发现自己出现在体育场大屏上,站起来欢呼",搭配一次缓慢的重新构图镜头移动,设置,超时后用
wait=false重新调用pending_job_ids,绝不要发起第二次jobs_wait。model_run - 基于平台生成的帧对比视频与审核通过的静态画面:首先通过获取免费的
asset_get和firstFrame,再用lastFrame提取视频中间帧(属于model_scenario-video-to-image-seq下的工具模型通道)。任何预算下都不能用本地抽帧替代,因为本地抽帧无法生成可归档或审计的资源,审核过程也会失去可追溯性。任何一项已登记的特征发生变化,或是出现清晰可辨的生成文字,都判定为视频不通过:即使提示词要求无文字,带状屏和巨型显示屏的字符也可能悄悄出现,越到视频后期越明显。重试时必须从原静态画面重新生成,绝不能从偏移的输出结果继续。scenario-video-editing - 使用在平台端合成(属于
model_scenario-compose-video下的工具模型通道),将scenario-video-assembly生成的计分条和频道台标叠加在安全角落;不要使用本地编辑器。给每个叠加图层明确设置scenario-text-overlay和width——因为留空时文档说明是使用原生尺寸,但实际效果并不稳定;同时设置height匹配视频时长,否则图片图层会拉长合成结果的时长。合成任务成功不代表图层已正确渲染:从合成结果中提取一帧(免费的durationMode: "custom"),确认所有图层都存在且位置正确后再交付。然后按照firstFrame的要求裁剪9:16版本,采用调整尺寸而非重新构图的方式,对应的视频组件会扩图生成更宽的画面而非直接裁剪。其scenario-formats模式会从中心裁剪,因此如果主体不在画面中心,需要将主画面放在9:16合成画布的合适位置以保证主体完整。最后用cover展示两个版本。asset_display
Common mistakes
常见错误
- Animating the uploaded photo directly: the mandatory stage is the broadcast still; skip it only when the user hands over an already approved 16:9 frame.
- Letting the image or video model render the scoreboard, channel bug, or jersey sponsor text: generated type drifts frame to frame; composite graphics in post on a text-free plate.
- Portrait staging: centered subject, flattering light, and empty seats around them break the documentary read; bury them in a reacting crowd.
- Judging likeness from one glance at the moving clip: drift hides between glances; run the frame-extract gate.
- Retrying from a drifted clip instead of the approved still: errors compound.
- Composing the master at 9:16: broadcast is 16:9; verticals are derivatives.
- A flat emotional state for the whole clip: without the notice-then-react turn, the result is a looping portrait, not a fan cam.
- Compound camera moves: one reframing drift; the crowd and the reaction supply the motion.
- 直接给上传的照片生成动态效果:必须的阶段是生成直播静态画面;仅当用户提供了已审核通过的16:9画面时才可跳过该阶段。
- 让图像或视频模型生成分牌、频道台标或球衣赞助商标文字:生成的文字会逐帧偏移;应该在无文字的底图上后期合成图形。
- 人像式构图:主体居中、光线柔和、周围座位空旷,会破坏纪实感;要把人物放在有反应的人群中间。
- 仅凭肉眼扫一遍动态视频判断相似度:偏移会藏在帧与帧之间;必须执行抽帧校验。
- 从偏移的视频而非审核通过的静态画面开始重试:错误会累积。
- 直接生成9:16的主版本:直播标准是16:9,竖版是衍生版本。
- 整个视频情绪单一:没有“注意到→做出反应”的转变,结果就是循环的人像视频,不是粉丝镜头。
- 复杂的镜头移动:一次重新构图就够了,人群和反应本身已经提供了动态感。