mcpField
D
digital-twin

digital-twin

github.com/mengto创意与媒体7.4k64 次安装1 天前更新
代码仓库

关于 digital-twin

digital-twin 是用于制作本人风格静态图像、口播片段和语音台词的工作流 Skill,涵盖授权、参考素材、生成、审查与修正,并由本人判断身份相似度。

主要功能

  1. 01以授权为先的身份工作流
  2. 02参考帧筛选与测量
  3. 03身份提示词编写
  4. 04静态图像生成与修正
  5. 05语音和口播片段评估
  6. 06运行与额度记录

适用场景

  1. 01制作设于真实房间的静态图像
  2. 02检查生成图像中的身份偏差
  3. 03评估克隆语音和口播片段

安装

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

$npx skills add https://github.com/mengto/skills --skill digital-twin

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

包含的文件

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

agents/
openai.yaml
demo/
index.html
PROMPT.md
step-window.css
step-window.js
twin-demo.css
twin-demo.js
references/
audit.md
cinematic.md
consent.md
costs.md
fil-workflow.md
identity-template.md
judging.md
references.md
speaking.md
stills.md
video.md
voice.md
workspace.md
scripts/
crops.sh
extract_frames.sh
faces.swift
film_grade.py
fix_still.py
hf_seedream_batch.sh
landmarks.swift
lmjson.swift
make_round.py
measure_drafts.sh

详细介绍

数字分身

有三类内容应该能通过检验:你在自己房间里的静态图、你的说话片段,以及用你的声音说出的台词。标准是:认识你的人看到后,不假思索地说“这就是你”。**最终评判者是你自己。**盲测评审和评分工具会找出问题;由你来决定。曾有一次,盲测评审给一张照片的评分高于本人认可的照片,但本人是对的。

**来源。**内容取自一位创作者的数字分身,该分身于 2026 年 11 月 6 日至 8 日为课程介绍而制作。超过 160 张编号的 Seedream 静态图经过盲测评审、地标测量和本人挑选。Seedance V1–J2 草稿根据他真实的说话方式进行了测量;语音工作则让他的克隆音色在说话人相似度评分工具上的得分从 8.7 提升到 9.2/10。以下每条规则都来自他提出的修正意见或测得的失败案例。文中数字仅作为一个人的结果示例,并已明确标注。请测量你自己的结果。

先征得同意(references/consent.md)。只使用你自己的面孔和声音,或已为此用途提供书面同意的人士的面孔和声音。绝不能使用公众人物、客户或任何未同意的人。平台验证步骤(语音验证码、手机上的人脸验证)必须由本人完成。绝不要绕过平台的身份验证。

工作流程一览

阶段产出工具和价格(2026 年 11 月)关卡
0 · 准备同意、账号、项目文件夹、画布、账本Fil(以及用于制作你声音的 ElevenLabs)已获同意;每次消费前确认价格
1 · 参考素材从你自己的视频中截取的人脸图:精简集、角度集、留出的评审帧、房间照片免费(scripts/)绝不用自拍,绝不使用生成的人脸
2 · 身份特征根据盲测特征清单整理的 250–350 词身份描述免费评审对照留出的帧进行检查
3 · 静态图每次生成 3 张,在你的真实房间里,只改变镜头和时间Fil 上的 Seedream 5 Pro:12 点数($0.12)由你挑选;测量比例
4 · 审核并修正逐块检查每张挑选的图,然后修正一次 Seedream 编辑 + fix_still.py 粘贴回填删除错误的装备、头发、手部和多余物体
5 · 声音用你的声音说出的台词ElevenLabs 即时克隆,v4 + 音频标签7–10 秒台词在 score_voice.py 上得分 ≥ 9;由你亲耳判断
6 · 说话片段5 秒,每张静态图生成一个草稿Fil 上的 Seedance 2.5,480p:约 52 点数($0.52)英文准确无误;测量嘴部和头部
7 · 交付放在画布上并记录Fil 分区、账本、日志每笔消费都要记录;标注挑选结果

同一流程也提供现成的 Fil 工作流:https://fil.design/workflows/digital-twin(`references/fil-workflow.md`)。

阶段 0 · 准备

  • **账号:**Fil,所有内容都在同一张画布上运行:Seedream 5 Pro 静态图和编辑、使用你自己声音(按其 ID 识别)的 ElevenLabs 音频节点,以及 Seedance 2.5 片段。ElevenLabs 用于制作你的声音克隆(Creator 计划包含 1 个 Professional 名额和 30 个即时克隆名额)。可选:使用 Higgsfield CLI higgsfield,在 Fil 外基于照片生成 Seedance 草稿。
  • 项目文件夹包含 refs/、room/、rounds/、voice/、video/、LOG.md 和账本 credits.txt。将每次运行都写入 LOG.md:模型、参考素材、确切提示词、文件、画布节点以及你自己的评判结果。
  • **先查价、再告知、后运行:**Fil 上设置 max_credits: 0 会返回价格(1 个 Fil 点数为 $0.01)。在 Higgsfield 上,higgsfield generate cost … 也可以查询价格(Plus 年付计划下 1 个点数约为 $0.039):请按美元比较,绝不要直接比较点数。
  • **本地工具:**ffmpeg、whisper-cli(large-v3-turbo 模型)、Swift(用于地标检测的 macOS Vision)、Python 3.12,以及 numpy、Pillow、speechbrain 和 torchaudio。

阶段 1 · 来自你自己的录制内容的参考图

阅读:references/references.md。

  1. 提取画面帧,素材来自你平时使用的摄像头、麦克风和灯光: scripts/extract_frames.sh frames/ rec1.mp4 rec2.mp4 -- 10 → swift scripts/faces.swift frames/*.jpg > faces.txt → scripts/crops.sh faces.txt refs/all 1024(紧贴头部的裁剪图:不带领夹麦克风,也不要手)。
  2. 留出 5 帧作为裁判的真实参考(J1–J5),这些帧应来自不同的一天。绝不要将它们用作参考图。
  3. 挑选一组精简的 8 帧,大多表情自然,嘴巴闭合或微张,头部直立,兼有正面和 3/4 侧面。使用 scripts/lmjson.swift + scripts/measure.py 测量,并剔除下巴偏长或脸偏宽的帧(微笑和说到一半的帧)。Seedream 会照搬参考图的比例:一组包含微笑帧的图片会让每张生成图的下巴都长约 8–10%,脸宽约 7%;而精简组的测量结果与他留出的帧完全吻合。
  4. **角度组:**最正面的 6 帧(目光接触镜头的画面)、转头最多的 6 帧(侧面画面)、3 张全身帧(远景)。 根据 faces.swift 的 yaw 值为它们排序。如果只有 3/4 侧面的参考图,目光接触镜头和侧面画面都会失去你的特征。
  5. 房间照片:拍 3 张你真实房间的照片(整个房间、书桌、窗户一侧),并且始终把它们放在参考图列表的最后。
  6. **绝不要使用:**手机自拍(广角镜头会放大鼻子、缩窄下颌,模型还会把瑕疵变成痣);生成的图片作为参考图(错误会叠加);他人的截图作为图像参考(他们的脸会混入生成结果);留出的裁判帧。

阶段 2 · 身份描述段落

阅读:references/identity-template.md。

找一位全新的盲审裁判,让其根据留出的帧逐项描述你的脸部特征:发际线、头发、脸型、眼睛、眉毛、鼻子、嘴巴、耳朵、皮肤(含 Lab 值)、年龄和体型。根据描述写一段文字,以“A real photograph of exactly the person in the reference photos, the same person”开头,以“Use the reference photos only for who they are, not for their room, light, clothes or microphone”结尾。然后尽量精简:

  • 裁判要求修正的每一点,都用一个短语写进去。**描述越长,越容易矫枉过正。**一版包含所有裁判修正意见的描述,评分反而低了约 0.25:“短下巴”让下巴变长,“蓝黑色光泽”让头发变蓝。
  • 既要说明你是什么样子,也要说明你不是什么样子(“不是飞机头,也不是大背头”;“不是晒黑的肤色”;“不是面容消瘦”)。
  • 用词会变成具体特征:“灰色头皮”和“灰色胡茬”都生成了两侧的银发。写成“与肤色相同的头皮……任何地方都没有灰色、白色或银色的头发”。
  • 不要使用“皮肤纹理”或“毛孔细节”等增强词:它们会引入斑点和污点。
  • 在 Fil 上,四条提示词合计必须少于 4,000 个字符,因此请使用精简版(约 1,900 个字符)。

阶段 3 · 静帧:你的房间,每次三张

阅读:references/stills.md、references/workspace.md。

  • 你脸部的每张图像都用 Seedream 5 Pro,包括编辑。在盲测中,它在身份还原上胜过 Nano Banana(7.8 对 7.1),而 Nano Banana 总是凭空生成痘坑、斑点和梳理过的头发。Fil 的 edit_image 默认使用 Nano Banana,因此要传入 model: "seedream-5-pro"。
  • 4 部分提示词堆栈,每部分各用一个提示词节点,按顺序合并为一个 seedream-5-pro 节点(16:9,2k):
    1. 身份:你是谁;
    2. 工作空间(共享):每轮只描述一次你的真实房间,让该轮的每个镜头都在同一个房间里;
    3. 镜头:Time: + Camera:(镜头、机位高度、距离)、构图、姿势、视线,以及一两处小物件移动;
    4. 设备 + 成片效果(始终放在最后):准确写出你真实的桌面设备、服装、“no microphone on them”、镜头质感和调色、“no light stands, softboxes or tripods in frame”、“no text”。
  • 只改变相机和时段。 凭空编造的地点(阁楼、木屋、沙漠)看起来很假,也会破坏连贯性;在那个项目里,它们还会让下巴显得过长。一个可信的房间,多种机位,就像真正的摄制组拍摄访谈镜头。
  • 每次三张。 分散安排:一张 3/4 侧脸、视线越过镜头;一张与镜头对视(混入正面参考图);一张换个新机位或新时段。为每个镜头编号(“165 · 清晨日出 · 65mm”),这样挑选时只需看一行。
  • 让他看起来像本人的相机和灯光规则: 85 mm(中景用 50–65 mm),机位与眼睛齐平;头部朝真实录音中显示的那一侧转成四分之三侧脸,视线略过镜头,或正对镜头与观众对视;一侧用大型柔和主光(窗户、百叶窗),光线柔和渐弱;再用柔和的中性补光,让皮肤在暖色房间里仍保持真实色调。头部绝不倾斜。Seedream 无论镜头参数如何,都会取接近中景的构图:要拍广角镜头,就写“their face about a fifth of the frame width”。
  • 将每张脸与留出的帧逐一测量比较:下巴和脸宽比值 n(references/references.md)。相差约 ±0.05 时看起来像你;+0.08 时会显得脸长。挑选最接近你测量值的画面。

电影质感

阅读:references/cinematic.md。

  • 只用文字描述参考视频里的质感:构图(前景中的笔记本电脑、斜放的书桌、扶手椅)、实景灯具(蘑菇灯、弧形灯、吊灯)、主光和调色。
  • 在那个项目中效果出众的质感:透过百叶窗的金色时刻光影、穿过薄纱窗帘的日落光、耶稣光、黄昏时温暖的琥珀色实景灯、Blade Runner 2049 的橙色雾霾或霓虹、Dune Arrakis 的赭黄色调,以及橄榄土色光线下的白墙(“环境光和阴影带有柔和的橄榄绿土色……橄榄色阴影与暖色高光”)。
  • “绿色墙壁”说的是光线,不是墙漆。给房间上色之前,先问清楚颜色词指的是什么。
  • 绝不提灯光设备(“通过大型柔光箱”“八角柔光箱”):Seedream 会把支架画进画面。描述光线落在脸上的效果。

阶段 4 · 审核和修复

阅读:references/audit.md。

生成视频之前,由两位新审核者以原始分辨率的 3×3 网格检查每张候选图。常见问题:设备品牌或型号错误(即使写了“no iMac”,还是生成带下巴边框的 iMac)、两侧头发变灰、手部问题(手指、多出的虚影手指)、多余物件(第二台显示器或笔记本电脑、悬浮灯泡)、灯架、衬衫上的麦克风、室内沙尘或雾霾、笔记本电脑屏幕上盖损坏。用一次 Seedream 编辑修复该静帧的所有问题,然后只贴回被标记的矩形区域,并遮罩脸部: scripts/fix_still.py ORIG EDIT OUT 'x0,y0,x1,y1;…' --protect-face LM.json --match。如果编辑重构了画面,就拒绝这次编辑,并减少修改项后重做。

阶段 5 · 你的声音

阅读:references/voice.md。

  1. 先制作即时克隆:使用约 3 分钟最干净的独自讲话录音(scripts/voice/build_ref.py 会标记与他人一起录制的片段,make_ivc.py 会打包最佳片段)。一分钟内即可完成,无需验证。
  2. 使用 eleven_v4 生成语音并测量音高。如果音高偏高,就在前面加上音频标签:在那个项目中,[calm] 将 v4 的音高从 136–162 Hz 拉回到他的 106–131 Hz 范围,评分也从 7.7 提升到 9.2。稳定度完全没有影响音高。Whisper 确认该标签不会被读出来。scripts/voice/tts_line.sh VOICE_ID "Line." out.mp3。 **在 Fil 中:**在与静帧和剪辑相同的画布上添加一个 eleven-v4 音频节点,在其语音字段中填入克隆语音的 ID,并在提示词开头加上 [calm](每 10 秒约消耗 1 个点数)。
  3. 使用 scripts/voice/score_voice.py REF_DIR clip.mp3 评分:通过 ECAPA 计算说话人相似度,并进行校准,使你自己留出片段的评分为 10,其他人为 0;同时检查音高是否在你自己的 p10–p90 范围内。评分 = 0.7 × 相似度 + 0.3 × 音高。你自己降噪后的声音评分约为 9.3,因此9 分 ≈ 你的声音。评分时使用 7–10 秒的语句(一个 4 秒、声音正确的片段只得了 4.7 分)。不要用 Resemblyzer 评分:它对声道敏感,给他自己降噪后的声音只打了 3.8 分。然后用耳朵判断前后对比:真实语句 → 克隆语音。
  4. Professional Voice Clone 的陷阱:向正在使用的 PVC 添加样本会重置其验证状态,并导致它在所有模型上都无法使用,直到重新验证并完成重新训练(3–6 小时)。验证时需要你对着麦克风朗读一段文字:尝试 5 次后会锁定 24 小时。他在那里 5 次都没成功,尽管每个样本都通过了扫描。因此,在消耗尝试次数前,先用 30 秒的麦克风录音对照你的样本进行测试;保留即时克隆作为替代方案;若未计划好停机时间,切勿向正在使用的 PVC 添加样本。
  5. 也可以使用你的真实声音:从录音中剪出一段干净的 4–5 秒语句,作为 Seedance 的音频参考。Seedance 会重新配音,但保留你的真实音高(112 Hz,而他真实的音高为 113)。

阶段 6 · 说话片段

阅读:references/video.md、references/speaking.md。

  1. 从一张经过审核、选定的特写静帧开始。特写在 480p 下能让面部占约 190–235 px;中景只有 110–140 px。
  2. **在 Fil 上:**先将静帧添加到 Settings › Your face(进行一次性手机验证,然后几秒后就会显示“Ready for Seedance”)。Fil 的 Seedance 只有在那张确切的图片已加入你的已验证人脸库后,才会使用真实人脸;未加入的静帧会被拒绝,点数会退回。不要试图以其他方式绕过此检查。
  3. Seedance 2.5,5 s、480p,将静帧接入为 image 1,并把台词放在提示词的引号内(约 52 个 Fil 点数)。在 Fil 之外,Higgsfield CLI 会直接使用静帧:seedance_2_5 --mode omni_reference --start-image S --image-references S --audio-references LINE-5s.mp3 --duration 5 --resolution 480p --draft true(15 个点数),并将你 5 s 的语音台词作为音频参考。除非你想让头部动作大幅增加,否则不要使用视频参考:将你说话的片段作为视频参考,会让头部动作增加一倍,但也会漏出你的麦克风,让嘴部动作更加繁杂。
  4. 提示词:“他们说英语”,引号内为准确台词(有一次 Seedance 2.0 片段生成了中文),“锁定机位的平视特写”,“头部基本保持不动,只做轻微自然的点头”,轻柔嘴部动作的要求,“面部与起始图像完全一致:干净、平滑、清晰”,以及“他们的[装备]与起始图像完全一致”。眼神看向镜头或略微越过镜头,以匹配静帧。
  5. 使用 scripts/measure_drafts.sh DIR K… 进行测量:用 Whisper 转写台词,并将嘴部张开程度 p50 和头部转动 sd 与你自己的数值进行比较(用 speakstats 测量)。Seedance 的嘴部张开幅度比平静说话者大约大 50%。
  6. 每张静帧只生成一个草稿。 对付费者来说,测试近乎重复的版本像是在浪费钱;如果一对版本是用于测试,请事先说明。480p 草稿会保留静帧大约三分之一的面部细节。选定草稿后,提供由该草稿制作的 1080p 成片(同一条拍摄,恢复面部细节),并先说明价格:参见 references/video.md 中的“Making the final from a draft”。

阶段 7 · 交付

每批内容设置一个画布分区,每个节点附上备注(配方、测量结果、审核结果),将选定项标记为 ✓ 并移至 KEEP 分区,提供一张带编号的选择表,只问一个问题(“你是哪一个?”),并在汇报前更新账本和日志。

问题与有效修复

问题有效修复
脸宽或圆了 8–12 %;看起来年纪更大使用精简的参考集(不含微笑或说到一半的画面);“下半张脸要精瘦……柔和的 V 形……不要宽,也不要圆”;85 mm 镜头,与眼睛齐平;头部不要倾斜
下巴过长使用精简的参考集和正面画面;选取与实测下巴最接近的素材;提示词和只针对下巴的编辑只能改善不到 1 %
头发呈灰色、白色或银色从身份描述中彻底删掉“灰色”;“头上任何地方都没有白色、灰色或银色的头发”;“稀疏、浅淡的深色胡茬”
头发刺猬状、像打了发胶或成了飞机头“浓密、柔软的发束,发梢钝圆、柔和、圆润”;每次编辑脸部时,也列出不想要的发型
眼睛睁得很大、眉毛扬起以显得有眼神交流“眼皮沉重、放松……眉毛低垂、放松”;使用正面角度的参考图
皮肤有斑点、雀斑、痘坑,或显得晒黑、发橙仅使用 Seedream;“没有雀斑……没有晒黑”;“柔和的中性色补光可保持肤色 [tone],绝不发橙”
设备型号错误(带下巴的 iMac)精确描述真实型号(“没有下巴,纤薄的铝制支架”),检查、编辑,再把区域粘贴回去
虚构地点、房间前后不一致使用你的真实房间,最后放 3 张房间照片,使用共享工作空间提示词;只改变摄像机
画面中出现灯架和柔光箱不要提及任何灯光设备;“画面中没有灯架、柔光箱或三脚架”
参考图中的领夹麦克风穿帮使用紧凑的头部裁剪图;“他们身上没有麦克风”;不要使用能看到麦克风的视频参考
混入另一个人的脸视频参考只用文字描述,绝不把视频作为图像参考
视频中嘴巴张得太大加入柔和嘴型条款;使用特写静帧;测量 p50
视频中头部僵硬或动作太多不用视频参考 + “大部分时间保持静止,偶尔自然地点点头”(平静);若想让动作更丰富,可用你自己的视频作参考
视频说了另一种语言使用 Seedance 2.5,加入“说英语” + 准确台词
声音太高、太亮在 v4 上克隆即时声音 + 音频标签([calm]);或将你说的真实台词作为音频参考
添加样本后声音离线先发出警告;保留即时声音替代方案;在尝试验证前先测试一段麦克风录音

已交付的数值

某人的实测结果,2026 年 11 月。请自行测量。

项目数值
他的脸,真实画面下巴 0.80 n;鼻子处宽度 2.63 n,嘴部处宽度 2.24 n(n = 眼线 → 鼻底)
合格素材与上述数值相差不超过 ±0.05;3 张房间照片 + 正面参考图使大多数镜头的数值达到 0.78–0.83
静帧Seedream 5 Pro on Fil,16:9,2k,12 credits;编辑 9
批次3 张静帧;≤ 10 个参考(8 张脸部 + 房间照片);Fil 上提示词不超过 4,000 个字符
盲测平台期身份相似度 8.75;评审在不同轮次间会漂移 0.4–1.25,因此要配合锚点进行成对比较
他讲话时的嘴部张口 p50 0.092(Seedance 0.135),25 % 的画面中张口 > 0.15,每秒 2.1 个音节周期,每分钟眨眼 43 次
他讲话时的头部转头 sd 0.100,倾斜 sd 3.9°,前倾 sd 0.075(仅用 Seedance 时分别为 0.034、1.7°、0.029)
最佳草稿嘴部 p50 0.085–0.10,转头 sd 0.02–0.04(平静,是他选的)
他的声音F0 中位数 116 Hz,p10–p90 为 106–131 Hz;即时声音 + [calm] 得分 9.2/10,旧版 Pro 声音 8.7,Multilingual v2 约 8.1,v3 为 5–7
说话片段Fil 上的 Seedance 2.5,480p,5 s:约 52 credits($0.52);Fil 之外,Higgsfield 草稿需 15 credits(约 $0.59)

报告前进行验证

  • 已记录同意;只使用所有者的脸和声音。
  • 每张静帧均使用 Seedream 5 Pro、真实房间(房间照片放在最后)、真实设备、无灰发、暖光。
  • 已用留出的画面对脸部进行测量;数值记录在节点备注中。
  • 每个候选素材都已审核并在生成视频前修复,回贴时已遮罩脸部。
  • 语音台词均以 7–10 s 的句子评分(≥ 9)并试听;不会读出标签。
  • 每张静帧对应一份草稿,台词准确,嘴部和头部均已根据所有者自己的数值进行测量。
  • 运行前已核价;已更新台账和日志;已在画布上标记所选素材。

文件

  • references/consent.md:面部和声音的归属、平台检查,以及绝对不能做的事。
  • references/references.md:提取帧、精简集合、角度集合、留作评审的帧,以及比例测量。
  • references/identity-template.md:身份信息块的各个字段,以及一份完整结构示例。
  • references/stills.md:包含模板的提示词堆栈、参考图顺序、Fil 和 Higgsfield 命令、每批三个。
  • references/workspace.md:你的真实房间、可以改变的内容、效果不错的摄像机,以及如何规划一批内容。
  • references/cinematic.md:用文字描述参考视频、效果好和不好的视觉风格,以及镜头和光线规则。
  • references/audit.md:检查清单,以及编辑后粘贴回去的修复方法。
  • references/voice.md:数据集、即时克隆、标签、评分器、Professional Voice Clone 陷阱、API 调用。
  • references/speaking.md:测量你的说话方式;说话和轻抿嘴唇条款。
  • references/video.md:在 Fil(你的面部)上使用 Seedance 和 Higgsfield CLI、价格、命令、提示词、测量。
  • references/judging.md:静态图和声音的盲评流程,以及为什么最终由你的眼睛做决定。
  • references/costs.md:以积分和美元计价的所有价格(2026 年 11 月)。
  • references/fil-workflow.md:在 Fil 中逐节点完成 Digital twin 工作流,以及如何在那里运行一批内容。
  • scripts/:extract_frames.sh、faces.swift、crops.sh、lmjson.swift、landmarks.swift、measure.py、 make_round.py、hf_seedream_batch.sh、run_round.sh、numbered_sheet.py、fix_still.py、warp_face.py、 film_grade.py、 speakstats.swift、speaksummary.py、measure_drafts.sh。
  • scripts/voice/:el.sh(API 辅助脚本;密钥来自 .env,绝不会打印)、build_ref.py、scan_dataset.py、 make_dataset.py、make_ivc.py、tts_line.sh、score_voice.py、watch_train.sh。
  • demo/index.html:Mai 的一批示例内容,她是 Fil 示例演讲者之一:她的面部帧、三张静态图、固定好的 iMac、一段口播视频和她说的一句话。demo/PROMPT.md:使用并改编此技能的提示词。页面位于 fil.design/skills/digital-twin。

评论

支持 Markdown