mcpField
L
layer-talking-characters

layer-talking-characters

github.com/layerai其他70 次安装今天更新
代码仓库

关于 layer-talking-characters

用于制作会说话角色视频的技能,先生成语音,再让静态图像或现有视频匹配语音。内容涵盖语音准备、口型同步输入及如实呈现合成人物的指导。

主要功能

  1. 01先生成语音再制作动画
  2. 02准备口型同步用图像和视频
  3. 03核对模型输入槽位
  4. 04保持角色语音一致
  5. 05估算口型同步任务

适用场景

  1. 01让已批准的静态图像匹配对白
  2. 02为现有视频同步新语音
  3. 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 风格广告:主持人说:‘我没想到一款益智游戏会让我这么上头。玩了三百关,还是停不下来。’”

  1. 指出诚信问题:这句台词听起来像个人推荐语。询问用户是否要将其处理为主持人代表品牌发言,并根据用户的答复继续。
  2. 使用 list_base_models,设置 filter.use_case: "text_to_speech";再用 get_base_model 查询支持的语言和表达方式字段。将台词整理为干净的文本:“我没想到一款益智游戏会让我这么上头。玩了三百关……还是停不下来。”在支持该字段时,设置 style_instructions:“随意、带点惊讶,开头语速快,最后三个词放慢。”
  3. 主持人仍是同一个人(来自获批运行的 file_id):中近景,面向镜头,嘴部清晰可见。
  4. 使用 list_base_models,设置 filter.use_case: "image_to_video_lipsync";再用 get_base_model 查询其输入槽位和最长片段时长。这句台词大约 6 秒,因此可以放在一个片段中。
  5. 估算语音生成运行的费用,并确认是否继续。唇形同步所需的音频尚不存在,因此告知用户将作为第二步估算。运行语音生成,并按 poll_interval_seconds 轮询。
  6. 在 get_base_model 指定的输入槽位中附上静态图片和实际音频的 file_id,估算唇形同步费用;超过 20 CUs 时须先征得用户同意,然后执行并轮询。
  7. 将片段交给 layer-video-timeline 添加字幕、徽标和片尾卡。

常见错误

  • 先生成片段,再删改台词以适配片段。
  • 不从 get_base_model 读取音频槽位,而是自行猜测。
  • 对远景、侧脸,或嘴部被手或道具遮挡的画面进行唇形同步。
  • 同一个角色的每句台词都换一个声音。
  • voice_applied 不存在时,却声称已应用声音参考集。
  • 台词超过模型支持的最长片段时长,却通过加速语速来硬塞。
  • 将生成的主持人编写成真实客户的推荐人。

评论

支持 Markdown