用途
fix-my-look 用于在用户提出“fix my look”或匹配相关示例需求时,改写视频中的任意视觉内容,包括背景、场景、光线、服装、天气等。它会在保留原始人物面部、动作与音频的前提下,把编辑后的外观传播到整段视频。
主要能力
- 使用 gpt-image-2 编辑源视频首个可用帧,按用户提示词生成改动后的画面。
- 使用 kling 参考视频能力把该外观传播到整段视频,并以原视频与音频作为参考,锁定原始面部、动作与音频。
- 支持短视频的单次归一化处理,也支持长视频按分段归一化后逐段生成并合并。
- 输出比例使用归一化片段的最近支持比例,技能本身不会对源视频重新取景。
- 提供成本估算、任务 ID 记录、异步任务轮询、音频替换与唇形同步修复等流程能力。
- 在生成前展示编辑后的帧并等待用户批准,避免未经确认就进行付费视频生成。
输入与交互
技能接受两个主要输入:<source> 表示带音频的视频文件路径或 URL;<change_prompt> 表示要修改的内容,例如“make it night with neon lights”“change my shirt to a leather jacket”“put me on a beach in Hawaii”。
当参数为空时,技能会显示菜单,询问源视频路径以及用户想要修改的内容。
使用方式
工作目录为 ~/Downloads/fix-my-look/<run-id>/。
流程大致分为以下步骤:
-
成本、计时与任务 ID:在知道源视频与修改提示后启动计时器;在付费生成前调用
estimate_cost估算计划中的generate_image_edit、generate_reference_video、多段合并以及可选音频/唇形修复调用。若宿主没有暴露成本,应报告“Cost not surfaced by this harness”,而不是猜测。任何工具返回task_id时,需原样记录并复用。 -
准备片段:本地文件先
upload_asset,HTTPS 媒体 URL 可直接使用。源视频不超过 15 秒时使用一个 14.8 秒窗口,更长则按顺序切分为 14.8 秒窗口。每个窗口调用一次normalize_video(video_url=<source>, start_s=<offset>, max_duration_s=14.8, extract_audio=true, extract_face_frame=true)。第一个窗口的face_frame_url用作编辑静帧;每个窗口的video_url作为该段动作与身份参考。多窗口视频还需调用extract_audio_from_video(video_url=<source>)以便最终合并输出恢复为连续源音频。每段时长计算为max(4, min(15, round(duration_s))),除非用户要求高分辨率,否则使用resolution="720p"。 -
用 gpt-image-2 编辑帧:调用
generate_image_edit,provider="gpt-image-2"、aspect_ratio=<aspect_ratio>、resolution="2K"、images=[<face_frame_url>]、quality="high",并按提示词模板改写参考照片。模板要求保持人物面部、身份、头发、身体和姿势完全一致,并保留所有手持或接触的物体。 -
展示编辑帧并等待批准:展示编辑后的帧并停止,询问“Approve for video generation, or tweak and re-render?”。未获批准前不得调用视频生成。
-
通过 Kling 参考视频传播:对每个归一化片段调用
generate_reference_video,provider="kling"、reference_videos=[<segment video_url>]、reference_images=[<edited_frame_url>]、aspect_ratio=<aspect_ratio>、duration=<segment duration>、sound=false、video_keep_sounds=[true],并按提示词模板把编辑帧的变化应用到参考视频,保持身份、动作与保留音轨。多段时调用edit_concat合并;合并后音频缺失、漂移或不连续时调用edit_audio_replace。 -
音频、时长与身份质量检查:验证时长不得被明显截断;如有语音,尾部音频需存在且口型不得提前冻结;已批准的帧修正需延续到视频中;对比开头、中间、分段边界与结尾的身份一致性。如语音音频缺失、不完整或漂移,可提供一次付费修复,使用
edit_audio_replace与edit_lipsync。 -
下载与返回:把结果下载到
~/Downloads/fix-my-look/<run-id>/result.mp4,并返回源、编辑帧 URL、最终视频 URL、provider、任务 ID、成本估算或未暴露说明、耗时、QA 备注与后续问题。
适用场景
适合需要在短视频中改变场景、背景、服装、灯光、天气等视觉内容,同时希望保留人物身份、表情、动作和原始音频的编辑需求。也可用于时尚、美妆类视频的外观改写,但需注意身份漂移风险。
限制
- 技能不会对源视频重新取景,输出比例只能是归一化片段最近的支持比例。
- 若
face_found为 false,说明未找到清晰人脸,face_frame_url会回退到 t=0 帧;可继续,但身份可能漂移,建议改用人物面向镜头的start_s重跑。 - 参考视频提供方可能拒绝过大的参考素材;若归一化结果或下游错误显示视频超出限制,可用
crf=28重试一次归一化,若仍过大则停止,并报告需要 worker 侧 1080 边缘或参考尺寸上限。 - 不得用本地 shell 媒体命令修补该问题。
- Kling 不接受带视频输入时的
sound=true,会返回error:1201 sound on is not supported with video input;应使用sound=false加video_keep_sounds=[true]。 - 只有用户明确要求,或 Kling 失败且第二次 provider 尝试有价值时,才尝试 Seedance。
- 若模型在结尾冻结口型,不应自动升级到 sync-3,唇形同步无法可靠恢复没有口型动作的面部轨道,应改为提供裁剪或重新生成。