下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/reexin--faceless-video-handdrawn.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @reexin/faceless-video-handdrawn。爆款短视频自动化生产线手绘简笔画版:输入一条文案,自动完成分段、配音、AI手绘插画、字幕与3:4竖屏成片输出。适用于读书、知识、思维、情感类不露脸短视频的批量生产。零配置可用 10+ 免费中文音色,可选克隆自己的声音。This skill produces a faceless vertical short video end-to-end (segmentation, voiceover, AI hand-drawn illustrations, final render) from a plain text script.
阅读全文 (展开查看完整说明)
概述
真人不出镜·手绘短视频生产线
本 skill 是「真人不出镜」自动化短视频手绘图片版。把一段纯文字文案,端到端变成 1080×1440(3:4)竖屏短视频:配音 + AI 手绘插画轮播 + 顶部标题/账号 + 底部字幕与标签。
交互规范(强制·不可违反)
- 只做视频的事:不问与视频制作无关的问题,不拓展话题
- 不擅自做主张:每一项都让客户明确选择,不自动选默认值、不替客户决定标题/配音/BGM/品牌信息
- 确认门逐项对话:一项一项问,像聊天一样自然,不用表格、不丢一堆参数说明给客户看
- 执行静默:跑脚本时不逐步汇报进度,只在出错时才说明
- 结果只给结论:成片输出只给路径 + 质检结论,不展开过程
- 禁止客套:不说"好的我来帮你"、"让我解释一下"等过渡语,直接做事
何时使用
- 用户要量产不露脸的抖音/视频号风短视频(知识、读书、成长、认知类)
- 用户给了文案,需要自动:分段断句 → 配音 → 配图 → 出片
- 用户要调整成片视觉风格(符合本 skill 固化标准)
适用:读书感悟 / 知识科普 / 思维认知 / 情感共鸣 / 个人成长不适用:真人出镜、实拍混剪、复杂特效/转场
首次使用引导(要点)
新用户第一次使用必须走引导。完整规范见 references/first_run.md,详细步骤见 docs/first_run_detailed.md。
核心规则(强制):
- 纯新用户视角:禁止假设用户有历史
- 配音方式必须弹问卡:免费预置音色(10+ 个可选)/ 克隆自己的声音,不得静默默认
- BGM 必须弹问卡:默认内置 BGM(首次自动下载)/ 自带 / 不加
- 品牌区先给样式示例再问:用示例 / 自定义 / 留空
- 开工前一次说清风险:生图耗积分、BGM须可商用、克隆声额度有限、凭证别泄露
仅当用户已熟悉流程、且各项输入齐备时,可跳过引导直接执行工作流。
开工确认门(弹问卡,逐项确认)
开始生产前,逐项弹问卡让客户选,一项一项来。不替客户选、不静默默认。 没全部确认前禁止执行任何脚本。详细引导规范见 docs/first_run_detailed.md。
按顺序逐项弹问卡:
- 文案:弹问卡「文案怎么来?」
- 客户粘贴/写(推荐)
- AI 按主题生成
- 用内置骨架模板
拿到文案后按规则自行分段,不用问客户。
- 主标题:弹问卡「标题怎么来?」
- AI 根据文章内容按规则提炼标题
- 客户提供标题
- 配音方式:弹问卡「用哪种配音?」
- 免费预置音色·云希(推荐新手)
- 其他公共音色(云扬/云浩/晓伊等)
- 腾讯云声音克隆
- 火山引擎声音克隆
- 我提供录音,你帮我复刻
选克隆声时,立刻输出对应配置步骤(见 docs/first_run_detailed.md 第七/八节)。
- BGM:弹问卡「BGM 怎么解决?」
- 用内置 BGM(默认,首次自动下载)
- 不加 BGM(纯人声)
- 用我自己的
- 去免费库找
- 品牌区:先给样式示例(输出文字示意图),再弹问卡「你的视频顶部/底部要怎么配品牌区?」
- 用参考示例(推荐)
- 填我自己的品牌信息
- 留空(默认)
- 配图数量:自动计算 N=ceil(时长/8),不用问客户。
全部确认 → 直接开跑,中间不弹窗、不停顿、不追问。跑完输出成片路径 + 质检报告。
生产线工作流(5 步)
1. 文案处理(AI 自行分段)
- 用户给整段文案,分段由 AI 完成,按语义断句成 6–10 句
- 写
input/articleN.txt(每句一行) - 从首句意提炼主标题(≤12 字)
- 标题不朗读:
--title仅视觉展示;需要朗读的内容写进--input
2. 生成插画素材
① 先算张数:跑 scripts/estimate_duration.py 拿配音总时长,N = ceil(时长 / 8)② 逐张顺序生成(不要并行,会时间戳碰撞):
- N 张黑白红手绘插画,输出
output/scene_1.png … scene_N.png - Prompt 模板:
Clean minimalist line illustration, pure white background, <简单物件>, simple black ink outline, friendly and calm, no human face, no scary elements, no text, no watermark, no signature, centered composition, generous white space, 16:9 - 生成后立即去水印(
scripts/clean_ai_image.py)+ 重命名
3. 配音
- 默认推荐:
--tts edge走微软公共音色,零凭证,10+ 中文音色可选- 男声:yunxi(云希,默认)/yunyang(云扬)/yunjian(云健)/yunxia(云夏)/yunhao(云浩)
- 女声:xiaoxiao(晓晓)/xiaoyi(晓伊)
- 方言:xiaobei(东北话)/xiaoni(陕西话)
- 腾讯云克隆声(按需):腾讯云一句话版(需用户自配凭证 +
clips/voice_id.txt) - 火山引擎克隆声(按需):火山引擎豆包语音大模型(需用户自配 API Key +
clips/voice_id.txt),支持语速/音调微调(--speech-rate/--pitch)- 用户选此方式时,读取
references/voice_clone_guide.md引导配置
- 用户选此方式时,读取
- 首次建克隆用
scripts/voice_clone.py(腾讯);火山用户在控制台完成训练
4. 合成成片
- 运行
scripts/make_video.py:TTS → 拼句 → 加载插画 → 逐帧合成 → ffmpeg 合成(可选叠BGM)→ 输出 mp4 --cover-frames 20:前 20 帧定格为封面帧(纯白底 + 金黄标题)
5. 抽封面帧(可选)
ffmpeg -y -i output/final_epNN.mp4 -vf "select=eq(n,0)" -frames:v 1 -q:v 2 output/cover_epNN.jpg
固化视觉标准(硬标准)
完整硬参数见 references/visual_standards.md,要点:
- 1080×1440(3:4),三段布局,封面帧前 20 帧
- 封面:纯白底 + #FFC31F 金黄粗体标题(110px,1.5倍行距)
- 顶部信息区整体下移 20px;16:9 素材区 y 430~1038
- 主标题黑色 90px,1.5 倍行距;账号/副标题/拼音可选,不传则留白
- 字幕区 y 1050~1370,44px,2 倍行距,最多 2 行,优先标点处断行
- 底部标签可选(y=1350),不传则留白
- BGM 音量固定 0.06,人声 volume=1.6 提亮
关键命令速查
# ① 测配音时长,算配图数 N = ceil(时长 / 8)
python scripts/estimate_duration.py --input input/articleN.txt --tts edge
# ② 出片(默认 --tts edge 走公共音色;不传品牌参数则留白)
python scripts/make_video.py
--input input/article.txt
--images output/scene_1.png output/scene_2.png ... output/scene_N.png
--out output/final_epNN.mp4
--cover-frames 20 --pic-dur 8
--title "把自己当艺术品"
# 启用品牌信息示例:
python scripts/make_video.py ...
--account "@周周读书随笔"
--subtitle "让读书成为人生最坚强的底气"
--pinyin "zhouzhou du shu sui bi"
--tags "思维认知|读书感悟|生活随笔|终身学习|好书推荐|人生成长"
# 走腾讯克隆主播声(需用户自配凭证 + clips/voice_id.txt)
python scripts/make_video.py ... --tts tencent --voice-id clips/voice_id.txt
# 走火山引擎克隆声(需 VOLC_API_KEY 环境变量 + clips/voice_id.txt 存音色ID)
python scripts/make_video.py ... --tts huoshan --voice-id clips/voice_id.txt --speech-rate 0 --pitch 0
# 不加 BGM(纯人声)
python scripts/make_video.py ... --bgm none
# 抽封面帧
ffmpeg -y -i output/final_ep02.mp4 -vf "select=eq(n,0)" -frames:v 1 -q:v 2 output/cover_ep02.jpgPillow 偶被沙盒回收:
python -m pip install Pillow --ignore-installed --no-deps --no-cache-dir pillow==12.3.0
脚本说明
| 脚本 | 作用 |
|---|---|
scripts/make_video.py | 主合成:TTS→拼句→图序列→逐帧合成→叠BGM→出 mp4 |
scripts/estimate_duration.py | 测文案配音总时长,算配图数 |
scripts/tc_api.py | 腾讯云 TC3-HMAC-SHA256 签名 TTS(纯标准库) |
scripts/huoshan_api.py | 火山引擎豆包语音 TTS(声音复刻,纯标准库) |
scripts/voice_clone.py | 腾讯一句话版声音复刻驱动(仅首次建克隆用) |
scripts/clean_ai_image.py | 去 AI 水印 + 纯白底处理 |
scripts/qa_check.py | 成片质量检测(封面/标题/字幕/标签/BGM) |
已知坑(高频)
完整明细见 references/known_pitfalls.md 和 docs/pitfalls_detailed.md。
- ImageGen 并行生成会覆盖 → 必须逐张顺序生成
- 生成图带 AI 水印 → 用
clean_ai_image.py处理 - Pillow 偶被回收 → 重装命令见上
- ffmpeg concat 中文路径乱码 → 用 Python wave 拼 WAV
- edge_tts 国内偶发无音频 → 自动 fallback,仍失败换腾讯克隆声
付费流程(X402 协议)
本 skill 为 Pay Skill,1 元/次计费(无论输出几条视频),通过微信 Agent Pay(X402 协议)完成支付。
前置检查
调用前检查:
- weixinpay 插件:已安装 → 继续;未安装 → 提示用户安装,终止流程
- 微信支付AI专属卡开通状态:调用
mcp__weixinpay__weixinpay_register检查。已开通 → 继续;未开通 → 引导用户按返回的绑定链接完成开通,终止流程
硬门校验(代码层强制)
make_video.py 启动时强制校验:
- 传
--paid-token <订单号>→ 向商户服务端验证,未付费直接退出(exit 2) - 不传 → 直接退出(exit 2)
工作流程
第一步:请求资源(首次请求)
POST https://skillpay.reexin.cn/demo/skill/invoke
Content-Type: application/json
{
"query": "短视频标题或短描述(≤30字,不传完整文案)"
}⚠️ query 只传短描述(如视频标题/主题),不传完整文案。商户端 description 约 127 字节限制,传整篇文案会下单失败。
第二步:处理 402 响应
商户返回 HTTP 402,提取并保存:
WeixinPay-Required— 支付凭据(paymentCode),禁止向用户展示原始值X-Out-Trade-No— 订单号(支付后重试必须携带)
第三步:弹出支付卡片(系统自动触发)
402 响应中包含 WeixinPay-Required,系统自动检测并触发工程化支付,弹出微信支付卡片。智能体无需也不应手动调用工具去重复发起支付。
兜底:如系统未自动弹出支付卡片,调用
mcp__weixinpay__weixinpay_retry_pay传入paymentCode触发:mcp__weixinpay__weixinpay_retry_pay({ paymentCode: "第二步保存的值" })
等待用户在支付卡片上完成支付。不主动轮询、不臆测、不编造支付状态,等待系统回传支付结果。
第四步:支付成功后立即出片(不等用户追问)
⚠️ 禁止单独查询订单状态:商户端不区分"查询"与"消费",任何验证请求都会消耗授权。支付成功后直接执行本步,不得用任何脚本独立查询/验证订单号。
支付成功后,立即携带 X-Out-Trade-No 重新请求商户服务端,body 与第一步一致:
POST https://skillpay.reexin.cn/demo/skill/invoke
Content-Type: application/json
X-Out-Trade-No: 第二步保存的订单号
{
"query": "短视频标题或短描述(与第一步完全一致)"
}收到 authorized: true 后,立即执行出片脚本:
python scripts/make_video.py
--input input/article.txt
--images output/scene_1.png output/scene_2.png ...
--out output/final.mp4
--title "标题"
--paid-token "第二步保存的订单号"异常处理
- 支付超时/取消:不自动重试,询问用户是否对同一订单重新支付。用户确认后,调用
mcp__weixinpay__weixinpay_retry_pay({ paymentCode: "第二步保存的值" })重新触发支付卡片 - 402 重复返回:说明查单未通过,提示重新发起
- 网络异常:提示重试,已生成的订单号有效期内可继续用
- 履约幂等:
already_fulfilled: true表示已履约过,正常返回不重复计费 - 支付反复失败:引导用户使用
weixinpay-feedback技能反馈问题
版权与免责声明
- BGM 默认内置:首次自动从服务器下载无版权 BGM(
bgmfaceless.mp3),音量固定 0.06。客户可--bgm覆盖或--bgm none禁用。 - 客户自带 BGM:版权由客户自行负责,本 skill 仅做技术合成,不对第三方音乐版权纠纷负责。
- 配音克隆声:克隆的是本人或已获授权的声音,用他人声音复刻须获得授权。
- 成片用途:本 skill 产出模板化短视频,最终发布内容的合规与版权由使用者承担。
免责声明
用户需确保用于声音复刻的音频素材已获得声音本人的明确授权。因用户未经授权使用他人声音所产生的一切法律责任,由用户自行承担,与本 skill 作者无关。