苏格拉没有底 · 视频工坊(综合技能)
1. 选择风格
| 漫画口播 | 像素卡点 | |
|---|---|---|
| 目录 | styles/comic-explainer/ | styles/pixel-beat-story/ |
| 适用场景 | 社科/时事/历史“讲清楚一件事”:新闻追问、制度、概念辨析 | 社会痛点“讲一个人的故事”:孤独症、阿尔茨海默、留守、独居… |
| 驱动 | 用户自录口播,逐字时间轴(faster-whisper + difflib) | 配乐,节拍/乐句网格(beats.py) |
| 画幅 | 竖屏 1080×1920 / 30fps | 横屏 4:3 1440×1080 / 30fps(可改) |
| 时长 | 跟随配音(样板10分钟,7章) | 3–4.5分钟 |
| 画面 | 暖米纸底、Q版彩色漫画角色(绿幕生图抠图)、章节卡、盖章、程序化图标 | 像素小屋夜景、精灵角色、会说话的小物件、HUD计数器、打字对白 |
| 声音 | 原声一字不剪 + 程序化钢琴配乐 + 音效 + ducking | 配乐(接长/断点/回来)+ 程序化雨雷环境声,最痛处音乐停 |
| 引擎 | node 22 + @napi-rs/canvas(render_example.js DSL) | Remotion(weilanx-claude-videos 工程,Ep54-example.tsx) |
| 样板 | 《数据已经这么多,为什么还要成立一家央企?》 | 《他不是不说》《他不是来自星星》 |
如果无法判断,请询问用户:“这期做漫画口播,还是像素卡点?”
选定后,读取完整的 STYLE.md 文件,按其中的流程操作。
2. 两种风格共用的账号规范(必须遵守)
- 封面作为首帧:每条视频都自制封面并压入成片开头(漫画口播:前0.4秒;像素卡点:第0帧)。另存一份封面图交付。
- 水印融入画面,不加角标:“苏格拉没有底”写入招牌、铭牌、App顶栏、窗口标题、片尾署名等;用户明确拒绝右下角角标。
- 先样片后全片:漫画口播制作开头到第一章(约80秒);像素卡点制作第一幕(60–70秒)。用户确认画风后再制作全片。
- 剧本先过审:用户自己写稿/录音;负责核对事实(通过web_fetch获取原始报道/研究原文)、指出多音字、逻辑跳跃、敏感表述,之后再动手制作。
- 音频底线:用户原声不剪不重排、不用TTS替换;配乐与音效必须原创/程序化或有授权,占位曲每次交付都提醒替换。拼接音频一律使用numpy等功率交叉淡化(ffmpeg acrossfade拆分同一输入会截断)。
- 响度:整片-15 LUFS,使用两遍loudnorm(
shared/loudnorm.sh),结尾淡出。 - 角色美观:干净、友好、精神;用户不接受丑陋的人物,配角也要顺眼;同一角色固定提示词骨架;绿幕/纯色底生图再抠图(漫画口播使用
key.py,像素卡点使用cutout.py)。 - 抽帧自查再渲染:拼接联系表后使用read_file检查——文字不超出画面、不压脸、首帧是封面、水印存在、关键台词/关键词与声音匹配。
- 渲染:双核沙箱分段并行(每段concurrency=1),先写入/tmp再拷贝到工作区(faststart写入网络盘会导致IO错误);只修改音频不重渲染画面,小修改只重渲染受影响帧段再覆盖。
- 内容伦理(像素卡点尤其):不声称AI能治愈任何疾病;不将弱势群体浪漫化或他者化;故事标注虚构,不使用真实儿童隐私;片尾数据注明出处与年份。
3. 目录
SKILL.md ← 本文件(选择风格 + 共用规范)
shared/loudnorm.sh 两遍 loudnorm
styles/comic-explainer/ 【漫画口播】
STYLE.md 风格规格、版式坐标、动画DSL、对齐与混音流程
templates/ lib.js render_example.js audio.py wh.py align2.py key.py mux.sh
examples/ 封面/抽帧示例、角色样例、文稿格式(以#开头 / #章节 标记)
styles/pixel-beat-story/ 【像素卡点】
STYLE.md 风格、剧本公式、卡点规则、配乐整形、版式、QA
references/ story.md layout.md
scripts/ beats.py music_tools.py sfx.sh cutout.py contact.sh stills.mjs render.sh mux.sh
template/ Ep54-example.tsx ep54-music-ops.json ep54-script-example.md assets/
4. 环境
- 通用:ffmpeg ≥6、python3 + numpy scipy pillow;中文字体。
- 漫画口播:node 22 +
@napi-rs/canvas;faster-whisper(传递numpy数组,不要传递文件路径);字体LXGW WenKai →fonts/wk.ttf。lib.js还需要工程目录中的assets/、map/、heads.json(头像裁切表{name:[cx,cy,size]}),新项目需自行创建。 - 像素卡点:Remotion工程(weilanx-claude-videos,MIT许可证;Remotion个人/≤3人公司免费);Noto Sans/Serif SC字体。在沙箱中每条node命令前执行
export NODE_OPTIONS=--max-old-space-size=4096,使用./node_modules/.bin/remotion而非npx。
5. 交付话术
一条消息说明:片长、两三个亮点(漫画口播:章节与关键画面;像素卡点:卡点设计)、音乐是否为占位曲、询问哪里需要调整。附带成片mp4 + 封面。