关于 layer-talking-characters
用于制作会说话角色视频的技能,先生成语音,再让静态图像或现有视频匹配语音。内容涵盖语音准备、口型同步输入及如实呈现合成人物的指导。
主要功能
- 01先生成语音再制作动画
- 02准备口型同步用图像和视频
- 03核对模型输入槽位
- 04保持角色语音一致
- 05估算口型同步任务
适用场景
- 01让已批准的静态图像匹配对白
- 02为现有视频同步新语音
- 03根据脚本制作主持人视频
MCP 相关
指导使用 `list_base_models`、`get_base_model`、`text_to_speech` 等 MCP 工具及口型同步生成流程。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ layerai/ skills --skill layer-talking-characters安装后在 Claude Code 中输入/layer-talking-characters确认已加载。
详细介绍
图层会说话的角色
概述
一段说话视频由两个必须相互匹配的素材组成:声音和面孔。先制作声音。台词的长度、节奏和重音随后决定视频片段,而面孔要配合音频,而不是把音频硬塞进剪得过短的片段中。大多数失败的说话视频,都是面孔不错,但台词根本不适合。
语音创作(脚本、节奏、虚构名称)属于 layer-audio;让静态图动起来属于 layer-video;用字幕和片尾卡组装镜头属于 layer-video-timeline。循环流程和支出门槛在 layer 技能中。
如果这里提到的同级技能不在你可用的技能中,请让用户安装(npx skills add layerai/skills --skill <name>);若需无人值守地继续操作,则依据工具 schema 继续,并说明这一缺失。
快速参考
| 起点 | 路径 |
|---|---|
| 有脚本,尚无音频 | 先使用 use_case: "text_to_speech" |
| 已批准的静态图和台词 | use_case: "image_to_video_lipsync" |
| 已有素材和新台词 | use_case: "video_lipsync" |
| 与画面同时生成的语音 | 使用 capabilities: {generate_audio: true} 的 image_to_video 或 text_to_video |
| 任意唇形同步模型 | 使用 filter.capabilities: {lipsync: true} 缩小筛选范围 |
| 对话下方的音乐或环境音 | 使用 layer-audio,然后在 layer-video-timeline 中混音 |
声音
筛选 list_base_models,使用 use_case: "text_to_speech"。要说出的台词放在 prompt 中,因此语音价格按提示词长度计算。查看 get_base_model,了解模型接受哪些参数:
speech_language:只要名称或短句可能会被读成错误的语言,就使用其speech_languages代码之一。style_instructions:对于支持此参数的模型,用它描述表达方式(“温暖、从容,声音里带着微笑”);它是与朗读台词分开的自由文本。- 对于列出的参数,使用
stability、similarity_boost、speed和style_exaggeration。
整个项目中,每个角色都应保持使用同一个声音。如果工作区将训练好的声音保存为参考集,请通过 reference_sets 附加,并检查 reference_set_contributions 是否报告 voice_applied;如果没有,说明台词由默认声音朗读。切勿声称降级的参考集已应用。
台词要适合朗读:句子简短,用规范标点标出停顿,数字和名称按读法拼写。主持人的台词按正常语速朗读,因此生成前,请对照唇形同步模型接受的片段时长检查台词(get_base_model)。台词长于最长片段时,应拆成两个镜头,而不是加快语速。
面孔
唇形同步取决于模型能看到什么。取景时请注意:
- 面部清晰可见且接近正面,嘴部无遮挡:手、麦克风、口罩或头发都不能挡住嘴部。
- 拍摄头肩像或中近景。全身远景会让嘴部只剩几个像素高。
- 源静态图中的嘴部应自然微张,避免模型需要对抗固定的笑容。
- 面部光线均匀。嘴部上的硬阴影会造成抖动感。
对于 image_to_video_lipsync,请先用 layer-image 生成或批准静态图。对于 video_lipsync,应选择说话者在整个需要同步的片段中都面向镜头的素材。
串联运行流程
唇形同步模型读取输入的位置各不相同。架构不会规定音频应放在
reference_audio 还是 init_audio,也不会规定图片应放在 first_frame、init_image 还是 init_video。
请从 get_base_model 中读取输入槽位,并严格按其要求使用,作为包含 {file_id, type} 的
guidance_files 条目。若只想保留接受指定组合的模型,请使用
filter.guidance_file_types 进行筛选,例如 ["init_video", "reference_audio"]。
语音生成运行的输出已有 file_id,直接传入即可。只有本地音频或视频素材才需要使用
request_file_upload_url 上传。
forge 指南按素材时长为唇形同步定价,因此请附上实际音频和图片进行估算。一批台词按每种不同的时长分别估算后求和;总价超过 20 CUs 时,须在首次运行前询问用户。
广告中的诚信
生成的主持人不是真实客户。不要将其编写成真实用户的推荐语,不要赋予其虚构资历,也不要为其配上评论式字幕。UGC 风格是一种形式(手持拍摄、直面镜头、随意自然),不代表说话者真实存在。生成前,应指出要求编造推荐语的简报,并遵循用户对合成人物的披露政策。
示例
“一个 10 秒的 UGC 风格广告:主持人说:‘我没想到一款益智游戏会让我这么上头。玩了三百关,还是停不下来。’”
- 指出诚信问题:这句台词听起来像个人推荐语。询问用户是否要将其处理为主持人代表品牌发言,并根据用户的答复继续。
- 使用
list_base_models,设置filter.use_case: "text_to_speech";再用get_base_model查询支持的语言和表达方式字段。将台词整理为干净的文本:“我没想到一款益智游戏会让我这么上头。玩了三百关……还是停不下来。”在支持该字段时,设置style_instructions:“随意、带点惊讶,开头语速快,最后三个词放慢。” - 主持人仍是同一个人(来自获批运行的
file_id):中近景,面向镜头,嘴部清晰可见。 - 使用
list_base_models,设置filter.use_case: "image_to_video_lipsync";再用get_base_model查询其输入槽位和最长片段时长。这句台词大约 6 秒,因此可以放在一个片段中。 - 估算语音生成运行的费用,并确认是否继续。唇形同步所需的音频尚不存在,因此告知用户将作为第二步估算。运行语音生成,并按
poll_interval_seconds轮询。 - 在
get_base_model指定的输入槽位中附上静态图片和实际音频的file_id,估算唇形同步费用;超过 20 CUs 时须先征得用户同意,然后执行并轮询。 - 将片段交给
layer-video-timeline添加字幕、徽标和片尾卡。
常见错误
- 先生成片段,再删改台词以适配片段。
- 不从
get_base_model读取音频槽位,而是自行猜测。 - 对远景、侧脸,或嘴部被手或道具遮挡的画面进行唇形同步。
- 同一个角色的每句台词都换一个声音。
voice_applied不存在时,却声称已应用声音参考集。- 台词超过模型支持的最长片段时长,却通过加速语速来硬塞。
- 将生成的主持人编写成真实客户的推荐人。