Communitygithub.com

DrFIRASS/无脸短视频创作

从参考视频分析到克隆语音、动态字幕和可点击封面,全自动生成原创9:16竖屏短视频(1-2分钟)。适用于创建、翻拍或参考无脸Reels、Shorts或TikTok。

无脸短视频创作 是什么?

该技能基于已验证的生产流水线,将原创无脸竖屏短视频(1080×1920,30fps,时长60-120秒)的创作完全自动化。它从分析一段参考视频开始,提取其结构、节奏和视觉元素,然后引导用户编写带有钩子、说明和行动号召的脚本,并附带一个指南页面和一个关键词。技能使用ElevenLabs的克隆语音,确保语音永不中断,仅对动画进行编辑。它还集成了可选的Atlas Cloud开场镜头,并利用Remotion生成包含虚拟角色和逐字字幕的单镜头动画。视频的封面始终是第一帧,并且具有点击吸引力;结尾统一包含订阅、点击简介中的链接和输入关键词三个步骤。技能还支持自主模式,可处理灵感文件夹中的内容,并提供完整的检查、渲染和发布流程,适用于Claude Code、Cursor等AI代理平台。

兼容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/DrFIRASS/faceless-reels-skill/tree/HEAD

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

无脸短视频

此技能复制了一条在真实短视频("这个声音不是我的",2026年11月发布)上验证过的生产流水线。目标:一个1080×1920、30fps、时长60至120秒的短视频,能始终吸引观众注意力,因为一切都在原地变换,与语音节奏同步。

设置

个人设置位于此技能根目录下的config.json中。如果该文件不存在,请将config.example.json复制为config.json,并让用户填写缺失的内容(至少包括elevenlabs_voice_id)。每次运行开始时读取该文件。下面的<skill>代表此技能的文件夹。

键用途
creator_name在报告中如何称呼用户
language短视频的默认语言(语音、字幕、屏幕文字)。其他语言的请求优先
elevenlabs_voice_id, elevenlabs_model克隆的声音
whisper_model用于检查的本地whisper.cpp模型
projects_root之前短视频项目所在的目录(用于复用node_modules)
cta三个结束动作的确切措辞,使用短视频语言
guides_page用户个人简介中链接的页面,指南所在位置
timezone, publish_hour, caps, telegram_env仅限自主模式

用户规则

  • 写作要直白、直接。屏幕上或消息中绝不使用破折号或填充词。
  • 屏幕上使用短视频语言的排版规则。对于法语:在: ? !前以及"5 réglages"内部使用不间断空格,使用« »引号。
  • 语音永不中断。 仅编辑动画。不改变时长,不删除静音。
  • 视频中无面部出现,封面除外,封面使用用户的照片。
  • 封面始终是视频的第一帧,并且也作为单独文件交付。
  • 结尾始终执行三个动作:订阅以获取指南、点击简介中的链接、输入关键词。在语音、字幕和屏幕上都要体现(SUBSCRIBED按钮、LINK IN BIO按钮、一个输入关键词的字段)。关键词直接与指南和主题相关,由Claude提出。说"link in bio",绝不说"link in the description":指南页面在用户的个人简介中。
  • 所有所述内容必须真实:无编造的数字、无来源的夸大、无伪造的截图。有亲身经历的证明胜过空头承诺。
  • 屏幕上不可出现任何令牌、密码或密钥。
  • 每个短视频的说明:最多5个标签,无链接,适用于所有平台。始终以展示如何获取指南结尾,例如:"五个提示在指南中,随时可以复制粘贴。要获取它:订阅,转到简介中的链接并输入关键词FIVE。"
  • 使用克隆语音的无脸短视频:发布时声明AI生成内容(例如使用Blotato:TikTok上设置isAiGenerated: true,YouTube上设置containsSyntheticMedia: true)。
  • 音乐音量设为0.05,低于语音,绝不更高。
  • 告知付费生成的成本。如果用户已在请求中授权Atlas Cloud或ElevenLabs,则告知并继续。否则等待用户同意。
  • 一气呵成,检查自己的工作,清楚说明已验证和未验证的内容。除非用户要求或处于自主模式,否则绝不发布。
  • 小内存机器(8 GB RAM):一次只生成一个Remotion包,在后台渲染,最后清理中间文件。

步骤

一开始就规划好所有步骤。每个步骤都有其指南:到达该步骤时读取之。

  1. 定位。 视频文件夹、参考视频(文件或链接)、主题、用户的封面图片(视频文件夹中的cover.png,否则使用<skill>/assets/cover/cover-template.png并告知)、可用磁盘空间(df -h /)。阅读有用的references/和项目记忆。
  2. 分析参考视频(如果有):提取音频,使用Scribe进行转录,逐帧查看视频,编写_reel/reference/reel_analysis.md。参见references/script.md。
  3. 编写脚本和承诺的指南:_reel/script.md,确保每个声明的真实性。参见references/script.md。
  4. 创建项目:zsh <skill>/scripts/new_reel.sh "<视频文件夹>",然后填写remotion/reel.json。参见references/editing.md。
  5. 免费动态分镜:python3 <skill>/scripts/fake_words.py,然后python3 scripts/build_reel.py,该脚本检查reel.json,然后生成几张静态图。脚本适合屏幕显示吗?
  6. 语音:录制2段ElevenLabs音频,在选定音频上使用Scribe获取单词时间戳,处理时不进行剪切。参见references/voice.md。
  7. Atlas Cloud开场镜头(可选,推荐):起始图像、结束图像、Kling、根据语音重新调整时间。参见references/opening-shot.md。
  8. 场景:按节拍编写src/reel/BRIEF.md,然后每组场景由一个智能体并行处理,并由一个检查智能体把关。参见references/editing.md和references/scene-rules.md。
  9. 封面:具有点击吸引力的标题和标志。参见references/cover.md。
  10. 使用静态图检查,修复,然后渲染:在后台运行zsh scripts/render_final.sh(90秒视频约需10-15分钟)。
  11. 验证最终文件并编写exports/instagram.md。参见references/checks.md。
  12. 完成:项目README、项目记忆、删除中间文件、发送文件、总结(列出仍需听取或决定的内容)。

自主模式

如果请求来自计划任务,或者用户要求处理inspiration/文件夹,则遵循references/autonomous-mode.md:不提问、设置成本上限、提供指南、定时发布、发送通知。

短视频成功的关键

  • 钩子在3秒内出现,附有证明或承诺,从封面之后的第一帧即可阅读。
  • 可见的开放式循环:N个编号的空框,成为进度条。
  • N个相同形状的元素,难度和价值递增,最好的留到最后,由重钩子引出。
  • 单次拍摄:相同背景,相同窗口。永无硬切换。
  • 每次出现都与语词同步,屏幕变化间隔不超过1.5秒。
  • 快速回顾,然后是改变观众看法的点睛之笔。
  • 以手势结束,不仅要说出,还要展示:光标点击订阅、点击简介中的链接、然后输入关键词。
  • 循环:最后一句话引回第一句话,最后一帧再次成为第一帧。

指南

读取时机指南文件
分析参考视频、编写脚本、选择关键词和指南时references/script.md
生成语音、获取单词、处理音频(不剪切)时references/voice.md
生成开场镜头的提示词和重新调整时间、了解成本时references/opening-shot.md
了解项目布局、reel.json、智能体、检查静态图、渲染时references/editing.md
提供给编写场景的智能体的规则references/scene-rules.md
封面的标题、标志、格式、将其设为第一帧时references/cover.md
检查最终文件、字幕、仍需人工处理的事项时references/checks.md
单独处理inspiration/文件夹中的文件,从参考视频到定时发布时references/autonomous-mode.md

assets/reel-template/是Remotion项目。assets/example-this-voice/包含了整个已验证的短视频:脚本、分析、真实场景、简要说明。它是质量参考:在编写场景前,请先阅读其README.md,然后至少阅读Stakes.tsx和Setting2.tsx。assets/example-6-tools/提供了用于排名或分级列表的可复用场景。

已付的教训

  • 录了两段音频时,Scribe转录的是第二段:在结果中读取source.url,保留它实际转录的那段。
  • Scribe的words.json包含标签([softly])和作为单词的":":删除它们,并在scribe_words.json中保留{"words": [...]}格式。
  • "Subscribe"之前的句子导致窗口为空:CtaGuide.tsx现在在那段时间显示"Save"。
  • 提示音和闪光效果盖过了关键词和点睛之笔(关键词处语音为-1.9 dB):模板中已降低音量。但仍需关注最密集的段落。
  • Whisper会漂移并出错:时间戳来自Scribe,文本来自脚本(build_reel.py将两者对齐)。
  • 包含"Claude"的Whisper提示词导致它将"clone"读作"Claude"。无需提示词进行检查,并使用时间戳:-nt跳过句子。
  • 钩子关键词语音上的音效掩盖了语音:将其放置在该词结束后(至少7 dB的间隔,已测量)。
  • 场景在其段落结束时精确停止会切掉结束戳记:场景需要重叠(Reel.tsx中的STAGES),并且戳记从句子开头开始放置。
  • 在句子宣布列表时窗口为空看起来有缺陷:从句子开头放置占位点槽。
  • 用单词书写的数字会破坏字幕页面:build_reel.py将"5 settings"保持在一起。
  • GPU渲染导致元素每三帧消失一帧:始终使用GL=swangle CONCURRENCY=1(已在render_final.sh中)。
  • 视频上无3D变换,无mixBlendMode,使用唯一的React键。
  • chrome-headless-shell卡住:使用CHROME_MODE=chrome-for-testing(已在脚本中)。
  • 渲染后重做句子:保留已验证的语音,一次性生成结尾部分并在暂停处拼接(references/voice.md)。
  • 封面上,品牌标志简化为符号可能被误读:ElevenLabs的两条竖线看起来像暂停按钮,因此下方保留品牌名称。

相关技能