起名文化短视频批量生产

SKILL内容创作
内容创作 未标注权限 许可证不明确
安装这个技能

起名/国学文化类竖屏短视频全自动生产流水线——选题、口播稿、避讳核查、AI 水墨底图、edge-tts 配音、Pillow 名卡与印章、ffmpeg 合成。当用户要做起名/玄学/文化类短视频、批量出片,或需要\"意境空镜 + 名卡 + 口播\"型视频时使用。

一句话选型结论

按资料字段整理

起名文化短视频批量生产是内容创作类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类内容创作 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_70883341/shansijun-qiming-shortvideo
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

内容创作
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_70883341仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量189.7 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写文章与脚本

按主题产出初稿与分镜脚本。

改稿与润色

把草稿改顺、统一语气。

多平台文案改写

同一内容按平台改成长短不同的版本。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在内容创作场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
起名文化短视频批量生产当前 未标注权限 未标注 未标注 未标注 有
AI 视频生成 调用外部服务 GitHub 仓库 431.3 万 Codex、Claude、Cursor 有
视频帧 联网访问 ClawHub 市场 262.1 万 OpenClaw 有
Markdown 转换器 写入文件 ClawHub 市场 135.3 万 OpenClaw 有
哔哩哔哩全合一 接触敏感数据 ClawHub 市场 64.1 万 OpenClaw 有
Remotion video toolkit 命令行 浏览器控制 ClawHub 市场 63.9 万 OpenClaw 有

SKILL.md 全文

189.7 KB
模型实际读到的说明书原文,来自技能仓库

起名类竖屏短视频 · 全自动生产流水线

「意境空镜 + 大字典雅名卡 + AI 男声口播 + 斑驳印章」型竖屏短视频,全程本地免费生成,可批量复用。

〇、做一条片子之前:先立"立意"(2026-09-17 立 · 善思兄亲定 · 最高优先,先于一切技巧)

> 善思兄原话:「让你学习 理解 写进自己技能。做姓名类的视频,也是要有骨架和灵魂的,立意,然后分析、找史料,看看能否有金句,并且全面符合本条视频、不跑偏、言之有物、不会为了编而硬编。」

一条片子 = 骨架 + 灵魂。骨架是节拍表管的事,灵魂是"立意"管的事。立意先于技巧——立意不清,节拍再对也是空壳。

⚠️ 适用边界(2026-09-17 善思兄否掉通天谱期硬加立意后补 · 必读)

不是每条片子都要"立意"。分两类,别乱套:

类型 例子 "灵魂"是什么
故事型 明皇室五行(朱元璋立规矩→明朝亡)、小名(黑臀/彘/犬子) 立意——一句话的观点(有落差、有态度)
知识型 通天谱(孔孟颜曾四姓共用字辈)、字辈制度、避讳制度 "这件事本身够有意思" + 讲清楚、讲有趣
  • 知识型选题硬套"立意"=画蛇添足(善思兄 2026-09-17 否掉通天谱期硬加的那条立意)。知识型只要满足:①这件知识够有趣 ②讲清楚 ③言之有物 ④不跑偏——就够了。
  • 判据(一眼分型):这条片子的核心是"一个人的选择和后果"(→故事型,要立意),还是"一件事的来龙去脉"(→知识型,不硬加立意)?
  • ⭐ 收口问观众的前提="这事今天还活在他身上"(2026-09-21 立):问出去之前先自问——观众低头看一眼自家,能不能对上? 对得上才问。清期「你知道自己家中是有家谱的吗」问得住(字辈/家谱今天还在民间);商代天干问不住(今天没人用天干起名)→ 对不上就收在这件事本身,不硬拐到观众身上(硬拐=假互动,拿观众当陪衬)。
  • ⭐⭐ 收口提问必须"答得上+有落点"——泛问=没问(2026-10-03 立 · 善思兄圈"你名字里那个字,在古人那儿,是什么意思?"并判"没有意义 不好"):泛问的三无落点——哪个字/哪位古人/哪层意思,全没交代;观众答不上来也懒得答,等于软问句。自检:写完先自己答一遍,答得上(张口就有)+ 指着片里已讲实的东西,缺一就是空问。治法=把落点写进问句,并给一个"像我这样的"对照物:「你名字里,有没有一个字,也像它这样——用的人多,其实是个好字?」("像它这样"给判据、"一个字"收窄到可答、题旨落回观众)。开篇跟收口同一标准:都要观众答得上。
  • ⭐⭐ 收口三条硬标准(2026-10-01 立 · zz1《名字里那个"之"》收口三次试错后由善思兄亲定):
  • 收口可以是陈述,也可以是提问——禁的是"空"。 三种不合格:①软问句("你名字里,有没有一个字是长辈传下来的?"——答不上也不想答)②推想("一千年后的人也会翻我们今天的花名册……"——悬空、验证不了)③无实指升华(AI 腔抒情)。
  • 合格=落点扎在片子里已经讲实的东西上。 善思兄亲定的 zz1 收口:「一个小小的"之"字,藏着整个魏晋时代,门阀家族的隐秘信仰与独特文化。」——是断语式升华,但"魏晋时代""门阀家族的隐秘信仰"全片都讲实了,属"把已知信息重新定价",不是空立意。→ "不许总结升华"禁的是"空",不是"升华"(与 09-30「金句禁自造对立」同源)。
  • ⚠️ 作者亲定的收口句=定稿:他给的句子原样进片、一字不擅改;自订铁律(如"片尾口播必须提问")与他亲定句冲突时,他亲定句优先(与"红线可被善思兄本人覆盖"同类)。
  • ⭐⭐ 亲定句撞既有口径时(2026-10-03 立 · ms1《名落孙山》段 2):亲定优先、原样进片;但冲突处必须当面标注(写明"旧口径是什么、现在被他覆盖")+备好一句替换文案,由他在发布前终裁。不许以"规矩如此"为由悄悄改掉他写的话,也不许不吭声放过去。判例:他 10-03 改段 2 用了"科举""解名",与"不用科举术语""解名不进片"两条旧避坑直接冲突 → 照落,同时在稿里开"待终裁"节并给替换句。
  • ⭐⭐ 删句/换句后必须复核片长(2026-10-03 立 · 同日):删字会直接吃掉时长——片长靠语速压、不靠删字这条只管"长了怎么办";删完若掉出 45–60s,立即报缺口秒数并给方案:①补 20–30 字内容(优先,因为降语速有 +18% 下限,稿太短根本压不回来)②降语速(只在缺口 ≤5s 时可用)。判例:ms1 段 5 删一句、段 2 换短句,198→156 字,估时 49.3→36.1s,单靠语速补不回。
  • 共同底线(两类都要):言之有物(≥1 硬知识点)/史料 ≥2 源/不跑偏(每段服务同一题眼)/不为编而硬编。
  • ⭐⭐ 古籍异说/多种排法:只做对照,不评对错、不捧唯一正解(2026-10-03 立):题材一碰"排法/名次/说法不止一种"(如五行顺序有六种),片内一律只呈现"有几种、各出自哪本书、各管什么事",绝不下"哪个才对"的判断。判据=这句话是不是在替观众判对错;若是,删。不许把流传广的那一说叫"错的"(例:"金木水火土"实出《释名·释天》《白虎通·五行》,不是笔误);也不许把某一说捧成唯一正统(例:"木火土金水"是相生序一路,与《尚书·洪范》最早的"水火木金土"并列)。口径同 09-27《同姓未必同源》。
  • ⭐⭐ "揭秘结构":钩子之后给"机制",不给"并列对照"(2026-10-03 立 · 他指定"起名软件把它归为木"为主题):讲"为什么人人都见过某个名字/某个现象这么火"时,第二段直接给"它是怎么被推到你面前的"——例:"梓"为什么这么火 → 段 2 立刻给"字库是按偏旁排的,带木字旁就归木"。别在这里放"民间 vs 古法"这类并列对照(旧版就是并列对照,里子不够冷、结构平)。判据:钩子后那一段,观众看完会不会想"原来是这样"——会=揭秘;不会=铺垫。
  • ⭐⭐ 同一条料,服务于不同段落主题时,成立与否完全不同(2026-10-03 立 · 桑梓两次判断相反):桑梓在 11:4x 被判"突兀"(当时它当"梓为什么属木"的证据用——讲归属时插亲情,频道跳);在 12:3x 却不突兀(当"这个字能兜住多少种寄托"的主角用——段落主题本来就讲"万能性")。判据不变,仍是"这句为哪句结论服务";新加一层:判定前先看当段主题是什么——同一条料换个段落主题,结论会反过来。别把"某料曾被判突兀"当永久结论。
  • ⭐⭐ 开篇提问式钩子:问句只要观众答得上,就是最好的钩子(2026-10-03 立 · 善思兄亲改开篇):把原来的陈述句钩子改成问句、放片头第一句——判据=观众能不能在心里立刻答"是/有"。原句「你身边,有没有一个名字当中带"梓"的孩子?」→ 观众秒答"有"(接口长在具体的人身上,比"起名缺木就挑木字旁"这种泛陈述抓人得多)。⚠️ 与"收口禁空问句"不冲突:收口禁的是"答不上来/无需回答"的空问("你名字里有没有一个字是长辈传下来的?"),开篇要的恰恰是观众答得上的问。空问反例(不许):"你知道名字里的五行吗"——可答可不答、无实指。
  • ⭐⭐ 不举真人名当例子(2026-10-03 立 · 善思兄圈掉"梓涵、梓轩、梓桐,一抓一大把"——"容易得罪人"):真人名列举=对号入座,观众里就有叫这个的。判据:这例子会不会让某个观众觉得"在说我/说我家孩子"?说"常见"用程度词("跟哪个字都搭得上")或抽象说法。⚠️ 要具体就具体在事上,不在人名上("古人种梓做琴瑟"具体;"梓涵梓轩"扎人)。
  • ⭐⭐ 让步式题旨("俗名也是好字")顺序不能倒(2026-10-03 立):顺序=①先把"好在哪"给足(两条实迹)→②中段正面认下"多、俗"→③最后落"它真是个好字"。⚠️ 先认俗再补好=辩解;先给足好、再认俗、后落定=结论,同一批材料顺序一换说服力相反。认俗用让步语气("听着都有点俗了"——"了"=本来不俗、是用的人多才显俗,不把账算在字上)。同类题(俗姓/俗名/常见词)都走这个三段式。
  • ⭐⭐ 别用“观众另有理解”的词(2026-10-03 立 · 善思兄圈“带木字旁的,字库一律归木”):①“字库”观众另有理解(普通人=字体,不是起名用的字表,他还以为听懂了);②“归木”缺落点(=“归为木行”的压缩)。自检:用词前问“普通人听到先想到什么”——先想到别的东西(字库→字体)或没听过(归木)即弃用。治法:换成观众自己会说的词(“字库”→“起名软件”),动作补全宾语(“一律算它属木”)。⚠️ 避讳不是造词的理由:泛称“起名软件”即可,别另造一个观众没见过的词。⭐ 正面:用观众嘴里现成的词——“网红名字” 比“这几年家长用得最多的字”更省字更贴耳。
  • ⭐⭐ 收口句不许"空指"(2026-10-03 立 · 善思兄追问"古人给啥了?古人哪早写在书里了"):原句「一半是古人给的……那些好意头,古人早写在书里了」=两处空:①"古人给的"给的啥没说;②"书里"哪本书没说。自检:收口每写一个"那个/那些/一半/一层",就自问"指着的是哪一样";答不上=空话必改,答得上就把那两样写进句子。治法:「五行是软件算的,意思是《诗经》给的——它是良材,也是桑梓。」=各有着落+点名出处+把前段接回。⚠️ 禁的不是陈述,是"空";收口不是把前面再"总结"一遍(必空),而是把具体的名字点回去。
  • ⭐⭐ "给"是个空壳动词(2026-10-03 立 · 善思兄:"你总说给 什么书里给了给了 没有别的词汇量了?"):被圈三处——「一半是古人给的」「古人早写在书里了」「古人给过它什么意思」,全是"谁给、给了什么、给到哪儿"三问不全。自检:出现"给/让/有关"这类空壳动词,先问这三句,答不全就换。治法=换有落点的实动词(是/写/用/称/算/管):"古人给过它什么意思"→"在古人那儿,是什么意思";"一半是古人给的"→"意思是《诗经》给的"(先把东西点出来再用"给")。一段里"给"连用两次以上,基本有一处在空转。
  • ⭐ 搭配照口语里的固定搭法,别自己攒(2026-10-03 立):"白捡"搭的是"便宜",不搭"好处"→「换成它,还白捡一样好处」被圈。⚠️ 改口后仍被圈:「它还多一样好处:木字旁」——"好处"是对谁的好处? 两轮同一个病根=在给这个字评功 →「它还是木字旁。家长想给孩子补木,就会选择它。」(事实+谁在用它,不评优劣)。自检:这个动宾搭配,日常说话真有人这么说吗?这句话是在陈述事实,还是在给评价? 后者 → 删评语、留事实与用人。
  • ⭐ 跨文化"活证据"手法(2026-10-03 立 · 好用):讲某套中国旧学在本土已淡、却在别处还活着时,优先挑观众日常已经见过的那个"活标本"当接口(例:日语星期"火曜日/水曜日"=中国七曜,动漫日剧里人人见过、几乎没人知道来路)。双闸自检:接口热(观众认得)+里子冷(不知道来路)。⚠️ 只讲文化流传,不评价他国,一律中性陈述。
  • ⭐⭐ 过场句删检(2026-10-03 立 · 善思兄判段 3「孙山先回了家」"这句没有意义"):只交代"谁先做了什么"、不给人新东西的句子=过场句,删。 自检一句:"这句删了,观众少知道什么?" 答"不少知道、只是走个过场"→ 删。判例:原文明写"山缀榜末,先归",转述成"孙山先回了家"只是故事的动作、不是信息;删掉后段 3 直接从"解名是什么"入手,每一句都在给观众东西。→ 与"空壳动词(给)""替字评功""泛问"同族:凡不承担信息的句子,一律清掉。
  • ⭐⭐ 解释只解听不懂的那个词(2026-10-03 立 · 善思兄删段 3「"尽处",是名单的末尾」"这个不用解释"):给一个词做解释之前先问一句"这个词,观众会不会听不懂?" 答"不会"→ 解释删掉。解释不是越多越好,多一句就多一分拖。判例:同段里"解名"是古语(解试录取名册)、观众多半不懂 → 要解;"尽处"是话里本来就听得懂的词 → 解释是废话,删。→ 与"过场句删检"同源:只解真障碍,别为假障碍让路。
  • ⭐⭐ 收紧:"生僻"不是解释的理由,"不解释就拿不到意思"才是(2026-10-03 18:07 立 · ms1 善思兄第三轮判"去掉那个解释"):同一个词连着三轮——v6 释"就是录取名单"(与段 2 撞词)→ v8 改释"解"字的来处(善思兄令删)→ v9 干脆不解释,只留白话翻译("这两句诗说白了就是:榜上最后一名,是我;你儿子,还在我后头")。结论:判断标准不是"这个词生僻不生僻",而是——不解释,观众能不能从上下句里拿到它的意思? 拿得到 → 解释删掉(义由前后文兜住:段 2"录取名单里的最后一位"给义、段 3"说白了就是××"给语气翻译)。能兜住的词,解释就是赘肉。 自检一句:「删掉这个解释,观众还懂不懂?」
  • ⭐⭐ 说人话三条(2026-10-03 立 · 善思兄连圈"它省心/属哪一行/那层意思早就备好了"三句):病根=想清楚的意思被压成名词短语、主语还错位。①谁做的事写谁:不许把人做的事安到字/书上("它省心"→"家长挑这个字,省心";"古书判一个字属哪一行"→"古书里给字分五行";"家长盘里缺木"→"孩子五行缺木"——缺木的是孩子,不是家长,把发生在谁身上的事写明白);②不压名词短语("属哪一行""那层意思"→"那些好意头",宁可多两字写全);③一个意思一个动词("归它属水"→"照样归水")。配套:统计口径词不进嘴("用字第一名"→"取名用得最多的字");省主语的起手补主语("想说孩子成大器"→"想让孩子成大器")。交付前脑内出声读一遍:这句话当着一个不懂这行的人,我会这么说吗?不会就重写整句。④ 该点名的专名一律点名(2026-10-06 立 · 他诘问"哪本书 怎么一生成文章 就这么奇怪的呢"):我写的「姓肖的人,在自己的姓的那本书里,找不到自己」被当场问住,三病叠一句——"那本书"没点名(该写《百家姓》)/"自己的姓的那本书"两个"的"连套=自造说法/"找不到自己"把"找不着自己的姓"压成了比喻。判据=把这句单独念给不懂这行的人,他会不会立刻反问"哪本书/哪个人?"——会反问=不合格;"X的Y的Z"连套两个"的"=红线,一出现就重写整句。⚠️ 适用范围=所有交给他看的文字(口播稿/简介/选题推荐语/标题),不只口播稿——10-06 这句犯在选题推荐语里,他那句"怎么一生成文章就这么奇怪的呢"点到根子:一落笔写"文章"就爱造漂亮说法。⑤ 动词的宾语不许省(2026-10-06 同一次诘问的续刀):⑤ 那句我改成「本来姓萧的人,翻书能翻到;改成"肖"以后,就翻不着了」→ 他:"翻什么啊,什么翻不着了,真服了"。病根=为求短、求对偶,把动词的宾语压没了("翻"没说是哪本书,"翻到"没说是翻到什么)。→ 写全:「《百家姓》里有"萧"。姓萧的人,翻《百家姓》能翻到自己这个姓。改写成"肖"以后,翻遍《百家姓》也找不到"肖"。」自检=把句里每个动词单独拎出来问"它管的是谁/是什么,写出来了吗"——"翻/找/查/看/听"后面必须接得上"翻到了什么"。⚠️ 源头是改写时只想着少几个字:宁可句子长,不许句子空。⑥ 代词必须就近核(2026-10-10 立 · sj1《诗经》期他诘问"跟谁??"):"他/这个/那句话"的最近指代对象,必须就是要说的那个人——sj1 段4 原「跟他在同一个朝代,还有一位开国名将叫高怀德」,段3 末尾刚讲完梁思成(现代人),"他"就近指成梁思成,差一千年。改法=弃代词、直接点朝代(「同是北宋」)。自检=紧邻上句末尾的那个人,是不是我想接的人?
    • ⑦ "你"不是同一个人:给他看的文字里"你"=他本人,口播稿里"你"=观众(2026-10-06 立 · 他:"我嘴里本来就没有 不是我说的"):推选题时我写「接口我想用你嘴里本来就有的那句俗语:「行不更名,坐不改姓」」——本意是"接口必须长在观众嘴上",可这段文字是给他看的,"你"就是他,等于把这句俗语安到他头上。→ 讲接口来源一律写"观众嘴里/观众都听过这句",不许写"你嘴里",也不许"咱们那句/你常说的那句"。 自检=写完问"这个'你',读的人会当成谁?"
  • ⭐⭐ 因果必须同轴(2026-10-03 立 · 善思兄圈"它一定排在前几个。因为字库是按偏旁排的"并追问"成立吗"):不成立。 前半句问"排第几"(排序/热度),后半句答"在不在名单里"(归类/归属)——答非所问。带木旁的字几百个(林森松桐楠枫……)字库全归木,凭"归木"推不出"梓排前几个"。自检:写"因为 A 所以 B"前先问"A 管的是哪件事"——A 是"在不在/是什么"、B 是"排第几/多热" → 必不同轴。治法=拆开两句、各配各的因:带木旁→归木→名单里有它;连着多年用得最多→它排最前。⚠️ 别硬焊("排名靠前是因为它特别属木"=给结论硬凑原因)。
  • ⭐⭐⭐ 问"为什么"的那一句,答案不许是"它很火"(2026-10-03 立 · 善思兄:"为什么'梓'是当年的流行字?去查资料 从这个角度想想"):原句「可这些字里,就它成了网红名字」=用现象答现象("网红名字"="很多人用",把问题换了个说法,一个原因都没给)。自检:写完答案回头问"这里头有观众原来不知道的东西吗?"——"它很火/排最前/大家都爱用"全是空转,必删。治法=去查(本题真原因三条:"子"火在先、"梓"同音跟进——中新网 2013;同音避重,父母要的是那个音、嫌"子"重名多才换——人民日报《起名可趋时风 新意勿落窠臼》;"子"为古人对有学问者的尊称——孔子孟子庄子)。配套:真原因会改结构(本题查完段 2–5 全重排,"木字旁"由主因降为"白捡的顺手");新资料若进不了稿、也不改任何说法,多半没查到位。⚠️ 与"不做辟谣"不冲突:说"还有个更早的原因"≠说"缺木是错的"。
  • ⭐⭐ 案例/知识点必须"有事干"——不然就是插叙(2026-10-03 立 · 善思兄点破"桑梓突兀"):每个案例、每个知识点,都要回答得上来"我是为哪一句结论服务的"。 若答案是"它本身就挺有意思" → 判为插叙,必突兀(善思兄原话:「桑梓这个很突兀 很奇怪」)。
  • ⭐⭐⭐ 病根多在"引错了那句话",不在"桥没搭"(2026-10-03 立 · 同题材两轮才见底):讲一个"字"的时候,引的句子必须直接讲这个字(字义/用途/出处);不要引"借这个字抒情"的句子。
  • 一分钟自检:把引文里这个字换成别的字,句子还成立吗?
    • 「维桑与梓,必恭敬止」→ 换成"榆"照样成立 → 它讲的是"父母所植",不是"梓" → 抒情句,拿来支撑"梓属木"必突兀。
    • 「椅桐梓漆,爰伐琴瑟」→ 换个树名不成立(这就是在列树名)→ 实指句,能用。
  • 同一部《诗经》,换一句就从"突兀"变"贴题" → 换例子,不如换那句话。
  • ⚠️ 别先急着"补桥":第一次我只补了过渡(把桑梓由插叙改"证据"),他看过后仍判突兀——桥补得再好,例子本身跑出频道就救不回来。
  • 同段前后不许跳频道:段 2 谈"判它属木"(归属),段 3 就不能一开口讲"爹娘/故乡"(亲情)。
  • 从证据到结论,中间那座桥仍须明写(桥是第二位的必要条件):如「种下去,就是等它长成材」=生发;「做琴瑟、做书版」=成材为人所用=仁德——段 4 那两个词都落在这句上,不悬空。
  • ⭐ 引文里夹生僻字 → 改白话转述,出处照样留(2026-10-03 立):「椅桐梓漆,爰伐琴瑟」的"爰"是二级字,夹在引文中没法单独注音、观众也不知注哪个字 → 口播改白话「《诗经》里写,古人种梓树,等它长成材,做琴瑟」,原句只作画面页眉。出处与可验证点不丢,生僻字负担归零。
  • ⭐⭐ "字不冷"不等于"词不冷"——冷热看"词",不看"字"(2026-10-03 立 · 善思兄:「没能人会看这么生僻的」):"付""梓"两个字都是常用字,可"付梓"作为一个词,普通人一辈子不说一次 → 片内出现即劝退。判据:问一句"这个词,观众日常说话会用吗、刷手机见过吗"——"字我认得"不算过。
  • 同类高危词(写稿期直接拉黑):付梓/梓宫/梓人/桥梓/梓里——凡"以某个字为词素拼出来的书面语词"、日常没人说的,一律不进片。
  • ⚠️ 不许扩大化(2026-10-03 订正):判据是"日常见没见过",不是"是不是书面语词"。桑梓("桑梓之情""桑梓故里")是语文课本级、观众见过 → 可用。此前把"桑梓"与"付梓"并列拉黑,过头了。
  • 改法:整句删掉,宁可少讲一层,也不留一个没人说的词;缺的解释用常用字补(例:"木王"后补"百木之长"四字,替掉整句"付梓")。⚠️ 别拿"它其实很有来头"当理由硬留——来头是你查来的,冷是观众感受到的。
  • ⭐⭐ 给例子前先把"身份"交代掉(2026-10-03 立 · 善思兄:「你能不能通顺点」):句式"举个例子/比如 +〔专名〕"——先自问:这个专名单独念出来,观众知道它是什么吗?
  • 知道(人名/地名/书名)→ 可省;不知道(一个字、一个词、一个外来名)→ 必须补它的类名或限定语。
  • 反例:「举个例子,梓。」——"梓"是个字,不是什么"例子";前半句说"举个例子",观众耳朵等的是一个具体的东西,只等到孤零零一个字,气就断在这儿(原话:「你能不能通顺点,怎么了」)。正解:「先说一个字:梓。」
  • ⚠️ 相邻两段别都用"举个/比如"起手:原稿段 2"举个例子"+段 3"比如梓这个字"=叠,更显凑。→ 后段改回指式起手:"这个字,古书里管它叫木王……"(直接咬住前段那个字,两段更紧)。
  • ⭐⭐ 段与段的接口:前段给"事实"、后段点"名字"时,两段落点必须是同一个词(2026-10-03 立 · 他点"段3段4没有任何关联"):
  • 典型病灶:段 3 整段讲"这棵树能做什么"(琴瑟、书版、付梓),段 4 突然跳"生发与仁德"(五行属性)→ 中间缺一个"这就是木"的落点,观众觉得两段没关系。
  • 病灶二(更隐蔽):后段用"……的是 X"这类省略主语的断语("取的是""说的是""讲的是")——主语不补,观众不知谁在取、从哪儿取。
  • 改法:① 把前段那个要当接口的词提到句中显眼处("就是等它长成材");② 后段补主语并回指前段("古法取的,就是木的生发与仁德")。
  • 对账:段 3「长成材」=段 4「生发」;段 3「能做琴瑟、能做书版」(成材为人所用)=段 4「仁德」——落点逐词对上,接口才算焊上。
  • ⭐⭐ 整稿优化:第一动作是"数字数",不是"润句子"(2026-10-03 立 · 善思兄贴来亲笔整稿 374 字):收到整篇稿,先跑字数统计、换算时长,超限的先砍再润——润得再顺,上不了片也是白润。他整稿 374 汉字 ≈ 77.8s,超 60s 上限 30%。
  • 压到可上片的唯一路径=砍重复、铺陈、垫字,不砍意思层。可砍三类:同义反复("说的是天地怎么运转"="是天时")、垫叙垫字("灭商之后"/"所以…你就知道…这")、绝对化与评判("所有起名软件"/"被简化成"→"成了")。
  • ⚠️ 数据类表述必先核:他写"火遍了全国十年"——查不到硬数据;可查的是公安部《全国姓名报告》2018/2019/2020 连续三年居首。改按可验证口径(可验证点=选题入口三问③的命根)。
  • ⭐⭐ 同义反复自检:同一层意思,一篇内只说一次(2026-10-03 立):逐句自问"这句和前面哪句是一件事"。抓到即处置:留口播、删重复,或把较弱的那句下沉到名卡(画面承担,不占口播)。例:①"五行成了一道填空题" ↔ "名字从寄托变处方"(同一层"机械化")→ 前者留口播、后者降名卡;②"古人取名看的是意思" ↔ "看的是意,不是偏旁"→ 删后者。删的是重复,不是意思。
  • ⭐⭐ 补充:同一个词,一期只解释一次(2026-10-03 立 · ms1《名落孙山》善思兄判"段 2 和段 3 有重复,录取名单出现两处"):第二处不许再解释同一个词,必须换一层给新东西——从"它是什么"退到"它为什么叫这个名/它从哪儿来"。判例:段 2 已说"是录取名单里的最后一位"(讲了"是什么"),段 3 又释"解名就是录取名单"=撞词;改为讲"解"字的来处("解"是解送的"解"——考中的人要被送去京城接着考)后,两段各给各的新东西。自检一句:"这一句,跟前面那句是不是同一件事?"(注:该"解送"解释于当日 18:07 又被善思兄令删——三轮合并结论见上条"生僻不是解释的理由")
  • ⭐⭐ 半句反证 ≠ 对照——合流的关键(2026-10-03 立 · 他令"把这个和梓睿结合起来"):举反例时,"按 A 套会怎样"和"按 B 套又怎样"必须都给出来;只给一半,读起来是举例,不是对照。
  • 例:v6 里"睿"只写"没有三点水,可思虑通达、水主智,照样归水"→ 像举例;补上"民间不会拿它补水",对照才成立,睿才与梓并列成第二例。
  • 两稿合流原则:① 主结构用最新的那稿;② 把另一稿的原理层补进对应段(新稿给现象、旧稿给原理);③ 若旧稿的收口句位置已被新稿占掉 → 下沉到名卡,不重复说。

⭐⭐ 选题入口三问(2026-09-30 立 · 立项期第一道闸 · 三问答不上就不动笔):
1. 不认人、不懂行,光听第一句能不能听懂?(钩子必须自足——不许靠"你知道某某吗"打底)
2. 观众有没有能对上号的接口?(自己的姓/自己的名字/念过的那本书/看过的那部剧)
3. 听完能不能自己验证一下?(能翻到原书原句/能对着身边人/能想起自己见过什么)

⭐⭐ 接口优先(2026-10-01 立 · 善思兄「咱们内容做得太高冷了,太正了」):

选题先看观众脑子里已经有什么,再决定讲什么。

  • 有现成的 → 优先做:课本人物(王羲之)/小说人物(孙悟空、贾宝玉)/天天挂在嘴边的成语俗话("免贵姓""五百年前是一家""名落孙山")。
  • 数据背书:金庸期(09-30①)播放量高——"金庸"是人人脑子里都有的接口,抖音 2s 跳出比往期低 23.66%。
  • 没现成的 → 搁置或换门:典籍内部专名("三山滴血""文正·文忠")、行内制度术语,观众手里一个字都没有。
  • 反面教训:09-29《文正与文忠》播放量很低——"文正"是冷词,接口不在观众身上;叠加 78.1s 超长,初始流量池完播率被打到最低。
  • 一句话判据:"太正"=从典籍出发讲知识;"有意思"=从观众嘴里现成的那句话出发,再告诉他"不是那个意思"。
  • 硬动作:开场 5 秒内必须出现一个"观众能对上号的名字"(人名/书名/剧名/俗话都行)。
  • ⭐⭐ 钩子里的专名必须"观众能对上号"(2026-10-10 立 · 善思兄「不要做元二,我都不认识」):病根=把"课本里有"当成了"观众脑子里有"——「元二」只活在《送元二使安西》的题注里,那首诗人人背过,可没人记得"元二"是谁。判据=把这个名字单独念给一个普通人听,他会不会问"这谁啊?"——会问,就不能放钩子位(可以留作主体段例证)。只限开篇钩子位(前 5 秒)。
  • 换门≠讲细:接口不在观众身上时,换一个入口,不是把同样的内容讲得更细更考究。

  • ⭐⭐ 播放量贡献 TOP3 的共性(2026-10-03 立 · 后台第一次给出排名):TOP3=《金庸小说里的名字》(09-30①)/《三国的人名,为什么都这么短?》(09-26)/《汉武帝、唐太宗、康熙。》(09-28)。三条共性:

  • ① 标题前 6 个字里就有一个观众认得的专名("金庸""三国""汉武帝")——接口写在标题上,不藏在片子里;
  • ② 讲的是"一群人的名字",不是"一个字的意思"(小说群像/三国群雄/一串皇帝)——观众能对号入座,也就能在评论区报名字;
  • ③ 三期都落在"人"上:有名字、有朝代、有一件事。
  • 反面=09-29《文正与文忠》("文正""文忠"是冷词,前 6 个字里一个熟面孔都没有)。
  • ⚠️ 这是"接口热"的实证,不是"热就一定行"——里子还得是冷的(金庸②期"靖康"热+热被一句"谁都知道"判死)。
  • 两个动作:①起标题先自问"前 6 个字里有没有一个观众认得的名字",没有就换标题(不是换内容);②选题优先级="一群人的名字">"一个字的本义"(单字题必须另找生活接口补,如"你身边带'梓'的孩子")。详见 发布复盘/2026-10-03-播放量贡献TOP3观察.md。

  • 修法:把入口词换成观众已有的东西——不是讲得更细,是换个门。

  • ⭐⭐ 双闸:接口热 + 里子冷(2026-10-01 二刀 · 善思兄「你这个谁都知道」):光"接口热"不够——里子必须是冷的。两个条件都要占:

  • ① 名字(接口)是热的——人人认得;
  • ② 里子(那层转折)是冷的——多数人没听说过。
  • 只有热+热 → "谁都知道",观众不转、不评、不留:判例=金庸②期原案"郭靖·杨康合起来是靖康"(原著第一回就明写)、"李莫愁叫莫愁一生愁"(字面摆着)——善思兄两个字判死:「谁都知道」。
  • 只有冷+冷 → "太高冷太正",听不懂:判例=09-29《文正与文忠》。
  • 正解=热名字+冷里子:✅金庸①期("金庸"热/"名字出自哪句古书"冷)/✅《名字里那个"之"》("王羲之"热/"七个儿子全带之、且这个之可以省略"冷)/✅《免贵姓》("免贵姓"天天挂嘴上/"只有两个半贵姓"冷)。
  • 一句话自检:这个名字是不是人人都认得?这层意思是不是大多数人没听说过?——两个都答"是",才动手。
  • ⭐⭐ 命名四忌:推荐给观众的名字要"念得出"(2026-10-10 立 · 善思兄判 sj1 参考名单):「缉熙这个很烂」「明昭像日本名字」「哲成像韩国人」。给观众推荐名字(区别于讲古人名),除出处硬外还要过三关——① 不拗口 ② 不像日韩汉字名 ③ 不生僻字;判据=把这个名字单独念一遍,像不像一个中国人在叫的名字。
  • 症候(日韩感的来源):两个字都硬、都直白、都没有画面——判例=明昭/哲成/显允/敬之/骏惠/德纯。
  • 正解=自带画面的中国名:✅南乔(南方的高树)/✅鹰扬(鹰展开翅膀)/✅于飞(凤凰翅膀挨着翅膀飞)/✅启明·长庚(两颗星的叫法)/✅载阳(春日回暖)。
  • 自检:大声念三遍——拗不拗口?像不像隔壁孩子在用的名?两个字里有没有一个能想出画面?
  • ⭐⭐ 用名出戏判例:名字有据 ≠ 能进片(2026-10-10 立 · 善思兄一问"熊二?这里"):「熊二」确出洪迈《夷坚志》(俞樾《春在堂随笔》卷五引「兴国军民熊二」),出处没问题;问题在现代人先想到动画角色,一秒冲掉严肃感。凡入片专名(古人名/小民名/书名/地名)须单念一遍,问"今天的人会先想到什么";有强现代联想的(动画/影视/网络梗/星期等)即便有据也换。本期换掉 熊二(动画角色)、周三(=星期三),改用同出《夷坚志》的 刘十二/郑小五/陈二。
  • ⭐⭐⭐ 弃题判据:这一期讲完,观众会不会回头想自己的名字?(2026-10-03 立 · 善思兄判《西游记·悟字》「没意思,一点看头都没有」):整期的落点如果落在"某本书/某段历史里的知识"(作者怎么安排、书上怎么记的),而不落在"名字这件事"上,就是没看头——改稿救不了,只能弃题。
  • 自检一句:"这期讲完,观众会不会回头想自己的名字?" 不会 → 弃。
  • 弃题判例:《西游记·悟字》(A4)三层全是"书里怎么安排的"——观音赐姓、菩提祖师门中排十二个字、原著第几回说了什么。观众听完得的是一句"西游记冷知识",跟自己的名字无关。
  • 过闸判例:《名落孙山》(B1)——落点是"名字能不能被记住,跟排第几无关",这是关于名字本身的道理。
  • ⭐⭐⭐ 落点必须落在「取名」这件事上,不落在「被取名者的命运」上(2026-10-05 立 · 判 A2《红楼梦·元迎探惜》作废):自检=把主角换成任何一个同类角色,这期还成立吗?(换成林黛玉的四个丫鬟照样成立 → 它讲的是《红楼梦》,不是名字)→ 名著悲剧只是名字的注脚,不是立意。那期"名字越吉祥、命越薄"的走向=告诉观众"起名字没用",与本号立意正相反。凡主角是古人/名著人物、全片在讲其命运结局性格的,一律不过闸;过闸的必须是"这件事本身就是关于取名"的(谁在取、怎么取、为什么这么取、取了有什么讲究)。
  • ⭐⭐⭐ 收口不许落在「越…越…」否定式上(2026-10-05 立):善思兄当场判「名字起得越好,叹息就越重?????那起名的意义还有什么?」——"名字越好越苦"=把起名意义一笔抹掉。收口只许往"名字是好的、名字里有讲究、名字能寄托东西"的方向落。
  • ⭐⭐⭐ 收口提问不许把观众按到「配不配/算不算/哪一种」的审判位上(2026-10-07 立 · 善思兄判「挑衅??」):拟句「可这个词最早说的,是有姓才配得上的人。你说,你算哪一种?」当场被判挑衅。病根=先给观众一个"你没份"的定位,再逼他自陈等级=审问,不是聊天。判据=念给一个路人听,他会不会觉得被冒犯/被盘问。越界字眼:你算哪一种/你配得上吗/你还算百姓吗/你够格吗(都是拿一个"更高的身份"去量观众)。同族病:标题尾缀"才配得上的"也删(同轮标题被砍到只留「"百姓"这个词」)。收口只许两种问法:①问观众自己的亲历("你这个姓,往上数,能数到哪一辈?")②问片里已讲实的一件事。方向永远是往上给,不是往下量。
  • ⭐⭐ 禁"考知识式提问"(2026-10-10 立 · 善思兄判"你每次结尾的反问 说实话问的都很烂"):如 sj1/cx1 收口「你还知道哪些…也是出自《…》的?」——要观众往外掏知识,非亲历、非片里已讲实,属第三类不合格。三问:①答得上吗(答不上=在考他)②跟他自己有关吗 ③换个主题还能不能用(能=没长在本期上,"那你呢…"即此类)。有一不合格即废。
  • ⭐⭐ 两问筛子=HKR(2026-10-05 善思兄亲定 · 与 khazix-writer 自检同源):① 有意思吗(H:有没有"居然这样"的意外)/② 言之有物吗(K:看完能说出一二三)/③ 能引起共鸣吗(R:跟观众自己有什么关系)。缺二即不过闸;H 高 R 低="听着新鲜、跟自己没关系";K 高 H R 双低=知识条;三项全高才可做。开稿前三问答案写进台账,不写不许动笔。
  • ⭐⭐ 接口必须长在观众嘴上(2026-10-03 立 · 与上条同时):开场第一句,用观众嘴里已经有的那句话(成语/俗语/大家都在说的说法),不要用我们编的问句。"我在提问"=太正;"观众在说话"=有意思。
  • ✗《悟》开场"这个字,是谁定的?"——我们编的,没人半夜想过这个问题;
  • ✓《名落孙山》开场"'名落孙山'这四个字,你一定听过。可你未必知道——孙山,是个人名。"——话是观众嘴上的,转折是我们给的。
  • 筛候选也要用它:挑题目拿接口筛,不拿结构像不像筛。⚠️ 10-03 就是用"群像+一个字串起"这个形状把《悟》选上来的——形状对、接口空,白挑一轮。
  • ⭐⭐ 收口追问:指向观众自己的亲历,不指向片子里的角色(2026-10-03 立 · 善思兄亲改《名落孙山》收口):
  • 我方原句:「同一张榜上,排第一的那个人,你叫得出名字吗?」——落点在片子里的那张榜上。
  • 亲改:「你上学时候的第一名,你还记得他的名字吗?」——落点在观众自己的座位上。
  • 判据:指着片子问,观众答不上来只是"答不上来";指着自己问,答不上来会心里动一下——"我怎么真想不起来了。"
  • 同解:开篇与收口同一标准(都要答得上、都有落点);亲历式追问还多一层——答不上来本身即是答案。

⭐⭐⭐ 名字线硬判据(2026-10-01 立 · 善思兄「我是写姓名相关的啊!!」):

这个号写的是姓名。故事是配名字的,不能反过来让名字变成故事的引子。

  • 逐段自检一句:这一段回答的是"这个名字是怎么回事"吗?答不上来 → 这段跑题了,删或重写。
  • 踩过一次的坑:金庸续篇初版写"段正淳怕老婆/王重阳活死人墓/丘处机见成吉思汗"——那是人物有没有历史原型,是历史故事,不是名字,被当场打回。
  • 改对了的样子:同一 IP 改讲"郭靖·杨康合起来是靖康(名字押一件事)/李莫愁求'莫愁'却一生在愁(名字押一个愿)"——每段都在讲名字。
  • 名字能撑的三根柱子(选题往这三处找):①有出处(字出自哪句古书)/②押着事(记住一件事:国耻、祖籍、排行、辈分字)/③押着愿(求平安、求功名、求好养活),并交代应验还是落空。
  • 判据一句话:把片子里的专有名词全换成"张三",还立得住吗? 立得住=故事撑起了片子,名字成了装饰(跑题);立不住=名字才是主角(合格)。
  • ⚠️ 与"接口优先"的分工:接口优先管"观众对不对得上号",名字线判据管"这到底是不是姓名题"——两道闸都要过,顺序是先过名字线,再过接口。
  • ⭐ 字面隔离(2026-10-01 立 · 善思兄「你在金庸期用林平之·游坦之,那王羲之那期还怎么用?」):姓名系列片内,同一个"字面标记"只由一期占用。若 A 期与 B 期会共用同一个字面(如"之""悟""子"),先定哪一期占这个字,其余各期一律换案例——不许靠"两期不写回指"含糊过去。判据一句话:把两期的名字并排摆在一起,观众会不会以为在讲同一个东西?会,就是撞。 踩过的坑=金庸②期原用"林平之·游坦之"(押愿落空),"之"字与《名字里那个"之"》撞字面 → 换成李莫愁(同型=名字求句好话却落空,且更硬:"莫愁"两字本身即一句完整的愿,观众零成本看懂)。
  • 判例:✅《三国为什么几乎全是单名》(曹操刘备孙权人人认得)/✅《赵钱孙李》(都念过这本书)/✅《金庸笔下的名字》(武侠+古书原句可查)。
  • ⚠️ 反例《文正与文忠》(善思兄 2026-09-30:「文正那个很差,播放量很低」):①"文正"是冷词、第一句就得先懂"死后给的称号"这套制度;②接口缺——观众不是清朝官员;③难验证。叠加片长 78.1s(超 60 秒硬上限 18 秒) → 播放量本身也上不去(不只是留不住人)。

故事型选题开写前必须先把这 5 行写下来(写在 build 脚本头部,写不出就不许动笔):

  1. 立意(一句话):这条片子到底要说什么?
    - 判据:能不能一句话说完,且这句话本身有意思(不是"介绍XX制度",那是题目不是立意)。
    - 例:「朱元璋想用名字管住子孙两百年,名字却没管住江山。」=立意。
    - ❌ 反面:「讲讲明朝皇室怎么取名的」=题目,没有观点。
  2. 这条为什么值得讲(言之有物):观众看完多知道了什么?
    - 必须是≥1 个可独立成立的硬知识点(典籍原文/字例/礼法/史实)。
    - 说不出"多知道了什么"=这条不该做。
  3. 史料支撑:这个立意的出处是什么?≥2 源交叉(史实核查铁律)。
    - 查不实的宁可不讲——不许为了凑一条片子去编。
    - 引述方式(2026-09-20 立):引文一律以文献名引出(《日知录》《通志·氏族略》),片内/字幕/画面小字/帖子正文都不点作者名、不加"某某说得透"这类推崇语——①不以人物名望代替论证 ②避开对具体人物的褒贬争议 ③口播更短更干净。内部文档(史料表/查证记录/发文案头部来源列表)照常写全作者与卷次,便于复核。例:09-20 收口"顾炎武说得透"→"《日知录》里有一句";时间轴图小字"——顾炎武《日知录》"→"——《日知录》"(画面小字也是片内文字,漏改等于没改)。
    - 引号里必须是原文(2026-09-21 立 · 清皇室期段4 抓出伪引):加了引号的必须是文献原句;转述自己的话一个字也不许放进引号。转述用大白话说,引文才加引号。反例:引《会典》作「奕字辈应用糸字旁字样,何得取用金字偏旁」,核上谕原文实为「惟奕字辈命名下一字用糸字偏旁,系皇考高宗纯皇帝钦定……乃私用金字偏旁为伊两子取名」——转述冒充引文=引文造假。网文/百科里带引号的句子默认不可信,写引文必回头核原文献。 ⚠️ 2026-09-30 免贵姓期再收紧一条:引号里连标点也照原文——《陶庵梦忆·孔庙桧》原作「天下只三家人家:我家与江西张、凤阳朱而已」(维基文库卷02扫描本/白鹿书院/可可诗词/每日诗词,四源字面一致),我初版误加逗号成「我家,与江西张…」,善思兄读后判"怎么这么不通顺"。抄原文标点照抄,不许按现代语感顺手加逗号——改标点=改引文。
    - ⭐ 口播稿正文不得用冒号、分号、破折号(2026-10-05 立 · hlm1 期扫描抓出 3 处冒号 + 2 处分号):TTS 念不出标点——冒号处直接断掉,观众听到半句话;分号只是一顿,接不上前后气。①"名字:甲乙丙"→改句号断句;②"最后三个字是大梦归"这类"是"字领起,直接连写不设冒号;③引号只留给引文(「」),强调一律不加引号;④破折号同样禁。扫描判据=对 ### 段 N 后正文行 grep :;——",须 0 命中。(只管正文,素材说明与考据档不受限。)
    - ⭐ 段末不许加"总结式注脚",也不许为凑字数硬加句(2026-10-05 立 · xg1 期一天两次犯):①注水句——「这两样都是…/都是有人…的/说到底…」这类换个说法等于没回答的话一律删。病根=为凑 200–230 字硬加一句。判据=删掉后段意会不会更干净?会 ⇒ 删。内容不够就写不够,不许用空话填。②「这两样/这些/此」也是模糊指代(同"它、这、那、其、该"类),须靠脚本扫:video_assets/_check_xg1.py 含"指代"与"注水空话"两栏,新稿照抄一份即可复跑。③动作归属须核实:"祖上定的一门行当"——姓不是谁"定"的,是祖上自己干的活计传下来的,写"定"即失真。
    • ⭐⭐ 同音异形字:口播不许靠"报这两个字的名字"来对立(2026-10-06 立 · ej1《你家的姓,可能本来不是这么写》写稿时踩到):改字/换写法类选题必然碰上同音异形字对——萧/肖、蓝/兰、阎/闫、戴/代、傅/付,TTS 念出来完全一样,观众耳朵分不出。照书面写法说「《百家姓》里只有萧,没有肖」,念出来是"只有 xiāo,没有 xiāo"——等于没说,且"只有"后接不上对比项=半截话。改法三条:①口播不给这两个字报名字,只陈述事实——"简化成了另一个字,读音一样,笔画少了几笔";②字形差异交给画面(封面/段内名卡把两个字并排打出,本期素材的必做项);③不许"只有 X"半截对比。判据=只听不看念一遍,能不能听懂"改了什么"。
    • ⭐⭐ 引语必须交代"这话是谁说的"(2026-10-10 立 · zs1《张三李四》段2 判例):引号里的话,前一句必须点明说话人是谁、在什么场合说的;缺这一环,读者把话归到错误的主体上。反例:初稿「东汉人张奂写信告诫侄子,出了错别赖别人。信里写「张甲谤我,李乙怨我」」——前句主语是张奂,引语却是侄子推诿的话(张奂引它来批评侄子"不自克责,反云……"),两句一接观众以为张奂在抱怨,善思兄判"逻辑不通顺"。改法=补出"谁说的":「信里说,他不认错,反倒讲「张甲谤我,李乙怨我」」。自检=把引语前一句单独念一遍,问:这句话说出口,是谁在讲? 配套:陈述一个动作,主体也须显形——"写信骂人"与"写信告诫"是两个主体、两种事由,写错即叙事失真(同日同段连犯)。⚠️ 同日续判 · 隐形主语:"他"会默认落到最近的名词上("侄子……他不认错"被读成张奂);无主语句("叫不出名字,就写成张甲李乙")观众不知道是谁在说。⇒ 主语在关键处点一次,后面靠顺承。判据不是"禁代词",而是"代词与前一个名词之间不许插进别的名词"——"但侄子不认错……他说不出是谁"里"他"紧贴"侄子",指代就清楚。段2 定稿=「东汉人张奂写信告诫侄子,出了错别赖别人。但侄子不认错,反倒讲「张甲谤我,李乙怨我」,他说不出是谁,就写成张甲李乙。」
    • ⭐⭐ 引了原文,就不能替它下结论(2026-10-10 立 · 同 zs1 段3 判例):引古人一句话,紧接着那句概括必须与原文本义对得上;对不上,观众一追问"哪本书里说这话了"就当场穿。反例:段3 初稿引朱熹「有张三,有李四」,却概括成"说人和人不一样"——善思兄一问「哪部学说里说人和人不一样了,你把原文拿出来」。核原文=《朱子语类》卷六·性理三:「如這眾人,只是一箇道理,有張三,有李四;李四不可為張三,張三不可為李四」,朱子讲的是理一分殊(同一个道理落到各人各物上各不相同),不是泛泛的"人不一样";旧措辞还容易被听成"人分三六九等"。三条定则:①概括必须忠于原文,概括不出来就照原文的层次说("万事同一个理,落到人身上却各不相同");②凡能引出一句"哪本书说的?"的概括句,须能当场报出书名与卷次(报不出=这句概括是自己加的,删);③术语不上屏——"理一分殊"四个字不写进画面,口播说透即可。段3 定稿=「朱熹讲学,讲万事同一个理,落到人身上却各不相同,就用了「张三李四」。」
  4. 有没有金句:讲完这堆材料,能不能提炼出一句让人记住的话?
    - 有金句 → 记下来,作为收尾落点;没有金句 → 不硬凑(硬凑出来的就是「名字一直生/检不住江山」那种 AI 腔)。
    - 金句从材料里长出来,不是从对仗里造出来(见五之二 1b AI 腔防线)。
  5. 会不会跑偏:这条片子的题眼是什么?哪句话、哪个例子与题眼无关?
    - 写完逐段回对:每段都在服务同一个题眼吗? 有段落在讲别的事=删(小名期 50 播放即栽在此:猎奇开场,主体拐去讲礼法)。

流程固定为六步,不许跳:
> ① 立意(故事型)/定题眼(知识型)→ ② 分析(拆到能讲清楚)→ ③ 找史料(≥2 源)→ ④ 试写金句(有则留,无则不强求)→ ⑤ 按骨架排(50 秒短版节拍表)→ ⑥ 三道体检(六问 → 九问 → humanizer)
>
> "不会为了编而硬编"落地成两句话:史料不满两条的选题,不做;立不住的金句,不写。
>
> ⭐⭐ "不下结论,点名给事"(2026-09-30 立 · 一天内两次打回的共同病根):凡只下抽象结论、不给名字的段落,必被打回。实例①「这个字认的是风气,不是人」——抽象结论,且与同段"史书没写"自相拆,末句"也有一位名字带'之'的"无名字、无朝代、无画面;实例②「只讲全真龙门一支」——全篇只有谱/字/辈分,一个活人都没有(与 09-29 文正、排行期同一个病)。改法固定为一句话:换成人名+朝代+一件事。判词最像金句,也最假——它是替材料下结论,不是从材料里长出来的。
>
> ⭐ 金句禁「自造对立」(2026-09-30 立):不许把一个东西拿去跟它本来就不负责的东西对立,造伪深刻。实例:收口拟「这个字认得出一个时代,认不出一个人」——名字记号本就不负责证明人心,等于说"秤称不出甜度";善思兄一句问倒:「跟人心有什么关系」。判据:金句两头在材料里本来就构成对立,才许写;没有对立就删掉这句,收在本事上。同源病型:从对仗里造句("记号是记号,心是心")/把"查不到"包装成"看不透"——史料不足就直说不足,不许升华。

一、第一铁律:名字必须先过避讳核查(不可颠倒)

核查 → 写稿 → 做片。顺序颠倒就要返工重出片。

起因:2026-09-13 样片用了「若昀」,撞一线演员张若昀(《庆余年》),整片返工。

核查分两道,先家里、后外面:

第 0 道 · 六亲避讳(真人客户起名必做,缺一不可)
必须拿到客户的 父母 + 祖父母 + 外祖父母(外公外婆)共六位 姓名,旁系(伯叔姑舅姨、兄弟姐妹)有则一并要。
- 与长辈同字 → 犯字,直接换;同音(含方言同音) → 犯象,一般换;意象相同(祖父名「山」再取「岳」「峰」)→ 宜避。
- 依据:《礼记·曲礼上》「入门而问讳」、《公羊传》「为亲者讳」。
- 表单见 references/kin_taboo_form.md。

第 1 道 · 对外同名校验(公开内容/真人起名都要做)
必查五项(每条不过就换字):
1. 公众人物同名(演员/歌手/网红/运动员)——百度/微博搜 "名字" + 演员 / 明星 / 网红
2. 名人或虚构角色同名(江疏影→疏影;唐雪见→雪见)
3. 谐音歧义不雅(连姓氏念三遍)
4. 生僻字/多音字/笔画过繁
5. 品牌/商标同字

完整清单与实测记录见 references/name_screening.md。
已知可用:《楚辞·九章》「齐光」、冬煦、知松。已知踩雷:若昀、暄妍、承宇。

体系依据(别把舶来品当祖传)见 references/naming_system.md:
中国正统 =《左传·桓公六年》申繻「五可(信义象假类)六避」+《礼记》命名礼法+避讳制度+音形义+紫微斗数命盘喜忌(善思兄只做紫微、不用八字,对外文案绝不出现"八字");
三才五格是日本 1918 年熊崎健翁所创(1936 年经台湾白玉光传入),只作参考,不许当主脑、不许给客户打分。

二、环境(Windows 本机)

  • 托管 Python venv:C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe
  • 依赖:Pillow、edge-tts、imageio-ffmpeg(一次装好,可复用)
  • 字体:系统自带 simkai.ttf(楷体,做标题与印章)、msyh.ttc(思源黑,做正文)
  • 无独立 ffmpeg 亦可——用 imageio_ffmpeg.get_ffmpeg_exe() 拿内置二进制

三、生产流程(六步)

  1. 选题:抄已验证的爆款结构(如"冬天出生的宝宝名"),一期一个主题、3 个名字。
  2. 列候选名:每个主题列 5~8 个候选(含典籍出处),多留备选。
  3. 避讳核查:逐名过五项,剔除不过关的(见第一节)。
  4. 口播稿:每个名字一句出处 + 一句人话解读;开场一句引子、结尾固定口令。
  5. 底图:用图像生成工具出水墨/宣纸留白竖图(1024×1536),一次生成反复复用,不必每条都花额度。
  6. 合成:改 scripts/build_video.py 里的 slides 列表 → 运行 → 出竖屏成片。

三之二、取题规则:排期表优先(2026-09-16 立)

日更出片不许随手抓题,严格按此顺序取(每次只做一条):

  1. 先读 起名内容选题台账.md 的「〇、近期排期」表 → 找"日期=今天"的行,状态"待产"就做该条。
  2. 今日排期已打 ✓(说明提前产出了)→ 做排期表中最早一条仍为"待产"的(提前生产,保账号永远有存量)。
  3. 排期表全完成或为空 → 才回退《起名短视频内容框架.md》的"日更选题队列"取最靠前未标 ✓ 的。
  4. 产出后在该行状态打 ✓、回填成片文件名与日期。
  5. ⚠️ 排期/队列里凡"五可六避"整体框架类条目,一律跳过(系列已于 2026-09-16 收官,此后不再新做该框架)。

> 排期由善思兄口授指定(例:09-17 选题一《给孩子起名不是先生说了算》→ 09-18 通天家谱 → 09-19 五行字辈);新排期一出口,先落台账排期表,再让日更自动化按表执行——不要靠队列顺序碰运气。

四、脚本用法

scripts/build_video.py 是参考实现,使用前必改两处:
- BASE:改成当次项目工作目录
- slides:改成当期的标题/名字/副标题/注解/口播文案

运行:

& 'C:\Users\Administrator\.workbuddy\binaries\python\envs\default\Scripts\python.exe' <路径>\build_video.py

产物:video_assets/slide_*.png(分镜名卡)、<BASE>/样片-*.mp4(成片)。
日志落在 video_assets/build_log.txt。

四之二、本次沉淀的可复用脚本(2026-09-13 收口)

除通用脚本 build_video.py 外,这两个成品脚本已跑通、可直接复用(路径在工作区根目录或 video_assets/):

  • video_assets/build_wuke.py —— 《五可六避》文化科普片生成器
  • 专做"中国正统起名 vs 日本三才五格"的科普竖片(6 段:名有五/六避/避讳礼法/六亲避讳/三才五格仅参考/片尾口令)。
  • 复用 bg_mountain.png/bg_bamboo.png;base_img() 用 zoom-crop(scale = max(W/sw,H/sh)*1.14)裁掉底图右下角 AI 水印。
  • VOICE="zh-CN-YunjianNeural"(语速 −8%)。输出 样片-五可六避.mp4(1080×1920)。
  • 改 SEGS 列表即可换文案。⚠️ 但增删段数时须同步改两处索引映射(2026-09-19 删"造字段"踩坑):①DYN = {段号: (帧A, 帧B)}——渲染时 if i in DYN 抢先判定,段号变了不同步,新落位的段会被当动态段渲染;②收口段靠 elif i == len(SEGS)-1 判定,须确认它没被 DYN 抢走(本次删段后新收口段 i=5 正好撞上旧 DYN[5],先删 DYN 项才对)。
  • video_assets/build_wuyi.py —— 单法/单字精讲片生成器(2026-09-14 沉淀,如「五可·义」)
  • 复用 build_wuke 流水线(SEGS 换文案即可),垫底音效改用 video_assets/gen_audio3.py(旧 gen_audio2.py/gen_audio.py 停用):先跑 TTS 拿到各段真实时长 durs,再 python gen_audio3.py <out.wav> --durs=9.4,10.2,... --seed=20261001 --theme=guixing --beats=0:3.74|1:2.69|... 生成整片长度音轨;末尾用 ffmpeg -stream_loop -1 -i bgm.wav + [0:a]volume=0.95[voc];[1:a]volume=0.30[bg];[voc][bg]amix=inputs=2:duration=first:dropout_transition=0:normalize=0,alimiter=limit=0.97[a]。
  • ⭐ 2026-10-02 「按 theme 分派」:gen_audio3 内置两张织体表——SEG_PROFILE(五段 · theme="guixing")/SEG_PROFILE_ZHIZI(七段 · theme="zhizi":悬念/书卷/庙堂/道气/流水/寂静/厚重);PROFILES = {"guixing": …, "zhizi": …},渲染循环读 opts["theme"] 选表。⭐ 段数↔表长映射(2026-10-02 11:5x 立)= raw = table[i] if i < len(table) - 1 else table[-1]:段数 ≥ 表长时与旧行为逐段完全一致;段数 < 表长时前 m−1 段按序取、末段固定取末条(收口永远落在最后一条织体)。用例=zz1 删掉「之可写可省」那一段后 7→6 段,自动取 [悬念,书卷,庙堂,道气,流水,厚重]、跳过专为该段写的「寂静」,不必另建表。TRANS_KINDS 由 5 项扩到 7 项(加 xiao 箫/luo 锣)。新片走七段就传 theme="zhizi";日志会打 AUDIO=gen_audio3(zhizi) vol=0.30 normalize=0 beats=…。旧 guixing 行为一字未变(向后兼容)。
    ⚠️ 2026-09-25 更正:旧写法 volume=0.16 + amix 默认(normalize=1)会把两路各压一半——TTS 人声掉到 0.5、音乐只剩 0.16,gen_audio2.py 里本来就有的逐段转场音效全被埋掉。定版=normalize=0 + 音乐 0.30 + alimiter 防削波(09-25 实测 max −2.8 dB,不削波)。
    ⭐⭐ 音轨 v3(2026-10-01 立 · 善思兄"音效是不是可以更新了,一直用老音效,都没有配视频内容")——旧版是"通用氛围垫底"(每个 theme 一套织体,全片一铺到底),问题=音乐与画面各说各话。v3 改成"配内容":
  • 逐段定制织体:SEG_PROFILE = [dict(bed="悬念"|"庙堂"|"道气"|"寂静"|"厚重", base=基频, hi=高音, first=首音色, cue=[落点音色序列]), ...]——每段一个 bed 名+一套和声走句+一个首音色+一条落点音色表(悬念走吊;庙堂用庄重五声;道气用箫;寂静极简;厚重用锣/低鼓)。改段序/段数时必须同步改 SEG_PROFILE(与 DYN/收口段同一类"段号映射"坑)。
  • 段内落点(--beats=<段号>:<秒,秒,...>|...):把每段的句边界秒位传进去,音乐在每句话落点处打一下(cue 音色依次取),于是"讲一句、响一下"——这是"配内容"的关键。build 脚本里由字幕窗口 _w[j][1] 直接拼:_beats.append(f"{_i}:" + ",".join(f"{_w[j][1]:.2f}" for j in range(len(_w) - 1)))。
  • 新增乐器:xiao(freq, dur=3.2, amp=0.16, seed=0)(慢起音 0.35s、无金属泛音,像箫)/luo(dur=2.8, amp=0.17, seed=0)(锣,收尾用)。转场音色集 TRANS_KINDS = ["bell","mallet","chime","pluck","drum"]。
  • seed 随期号(本期 --seed=20261001),保证织体确定可复现。

⭐⭐ 引用外部原声点题(2026-10-01 立 · 《名字里那个"之"》首个用例)——片内要用一句"观众认得"的外部原声(综艺/小品/影视梗)点题时,别重渲染成片:
- 工具:video_assets/_mix_yuansheng.py <原声文件> [--seg 5 --ys-in 12.30 --ys-dur 1.80 --mode replace|overlay --allow-over 0.5 --gain auto](原声是视频文件也直接吃)。
- 做法:在 build 中间产物 tmp.mp4(纯 TTS 轨)上把该句 TTS 压低、原声顶入 → 再与 bgm.wav 重混(人声 0.95/乐 0.30/alimiter=0.97);视频流 -c:v copy。
- 好处:总时长不变、音乐不断、字幕/分镜/--beats 落点全不动、画面 bit 级无损(已用视频流 MD5 验过一致)→ 代价从"重排全片半小时"降到 3 分钟。
- 六条铁律:① 落点=该句 TTS 起点(silencedetect 取该段最后一个留量 ≥0.9s 的停顿结束点)② 优先小幅溢出到下一段(默认 0.5s)而非变速,超出才 atempo(≤1.25)③ 响度对齐靶=该段纯 TTS 的 mean_volume,原声带现场掌声通常压 3–8 dB ④ 长度硬锁:输出 -t + atrim 锁到原片时长——不加锁会被重采样/amix 把 wav 拉长约 0.5s(实测 54.27 vs 53.74) ⑤ 版权:优先让发布方在平台内选同款音频(曲库=已授权,零风险、成片不动);自己剪进文件属"引用"边缘,一两秒+非带货风险低,但平台可能识别静音/限流 ⑥ 不抓取独播综艺片段,原声文件由善思兄提供。
- ⚠️ 五条实测修正(2026-10-02 首个真实用例踩出来的):⑦ 音频规格必须与原片一致——图省事写成 44100 立体声,aformat 通道上混做功率归一化,整片一律掉 3.01 dB(须逐 0.05s 比对 RMS 才抓得到);成片是 16000 单声道就输出 16000 单声道。⑧ 原声的「静音」不是真静音——综艺现场底噪实测约 −32 dB,−35/−38 dB 阈值一律检不出,须放宽到 −30 dB。⑨ 末句起点自动值常只抓到「后半截」——长句会被中间逗号/破折号停顿切开(段5「文脉相通,文脉相通啊!」= 36.53–37.29 + 37.43–38.39),自动值取到 37.452;遇长句手工 --t-sent <整句起点>。⑩ 最准的定位法=词级时间戳——别用字数比例估算;对该段 segN.wav 跑 faster-whisper(word_timestamps=True,HF_ENDPOINT=https://hf-mirror.com)读每字起止秒(zz1 实测=段内 5.82s 起,两遍 5.82–6.40/6.40–7.54 → 全局 37.31s)。⑪ 数据源=口播稿 md 的秒位表——_mix_yuansheng.py 默认从 published/<日期>/口播稿-*.md 表格解析 t0/t1,改稿后必须先更新那张表再跑原声脚本,否则读到旧窗口(踩过:显示 31.63–39.10,真实 31.49–39.75)。
- ⭐ 删段/并段的必查四处(2026-10-02 立):段数一变,不跟着改就 IndexError 或测错段——① KB_SHOTS(按段索引)② TOPBAND_SEGS(深色真迹段索引会前移)③ 核对脚本里写死的检查项列表 ④ 口播稿秒位表(=⑪ 的数据源)。删段还要顺手:只属于该段的素材在 素材使用台账.md 标"本期闲置"、发布文案里对应角度的那一套标题换掉。
- ⭐⭐ TTS 多音字核验 + 同音字顶替(2026-10-03 立 · ms1「解名」首个用例):稿里出现多音字/古语读音时(本例:科举术语「解名」的"解"须读 jiè,同「解元/解试」),不许假定引擎读对,出片后必须实测。
- 核验:本机 faster-whisper 转写该段 segN.wav;⚠️ whisper 分辨不了"同字不同调"("解/借"都可能出"解"),须再补声调判据——自相关法提首个音节 F0 曲线,与四声字(借/谢)/三声字(简)对照:下降=四声、降升(中有谷)=三声。实测 edge-tts 把「解名」读成三声 jiě(F0 与"简"同形,与四声"借/谢"明显不同)。
- 顶替(改读音、不改字面):build 里为仅该段加"发音稿",把多音字换同音字(「解」→「借」)供 TTS 合成,字幕仍出原字=TTS_FIX = {段号: 发音稿} + tts(TTS_FIX.get(i, seg[0]))。
- 复检:改后重跑 ASR+F0(声调应转四声),并抽帧确认字幕字面未变。
- ⭐ 判据:看"同音同调字"对不对得上,不看 ASR 认不认得那两个字(2026-10-04 补)。ASR 把文言引句/生僻组合转写得乱七八糟是常态(10-04:"轼乎"→"似乎"、"吾惧汝之不外饰也"→"无懼辱之不外事业")——这类误识不是"读错"的证据。真判据=ASR 输出字与目标字是否同音同调:10-04"苏轼"→"苏氏"(shì 同音同调=读对)、"苏辙"→"苏哲/苏折"(zhé 同音同调=读对)→ 无需 TTS_FIX;反之 ms1"解名"→"简明"(jiǎn,声母+声调皆异)=可疑,才上 F0。先看差在哪,再决定要不要测声调。
- ⚠️ 离线坑:WhisperModel(...) 会去 HuggingFace 拉 repo_info,代理 502 直接崩 → 跑 ASR 前设 HF_HUB_OFFLINE=1(模型在 ~/.cache/huggingface/hub 缓存即可离线)。
- 验证口径(三件都要过):① 视频流 -map 0:v -c copy -f md5 - 与原片完全相同 ② 逐 0.05s RMS 比对,非原声区必须 ±0.00 dB ③ 全片峰值 < 1.0 无削波。

⭐⭐ 剪辑动感六条(2026-09-25 立 · "静态即死")

> 缘起:09-24 那期播放量差,善思兄原话「你好像没有剪辑好,也不吸引人」。回头查代码,六个实症全是硬伤——不是审美问题,是拿静态图当视频交。

  1. 任何一段画面都不许完全静止:旧版 chart 段用 -loop 1 -tune stillimage 直接编码静态 PNG,7 段里 4 段是死图(≈40 秒、占全片 62%)——这是"像 PPT"的最大元凶。定法:把"图式层"与"文字层"拆开,chart 段也走运镜。
  2. 运镜幅度要够、要带平移:旧版 z 只从 1.0 推到 1.045(9 秒放大 4.5%),且 x/y 锁死画面中心,只有向心微推——人眼几乎感知不到。定法:z 用 1.05~1.11(中间层 scale 到 1200 宽,1200/1080≈1.111 是安全天花板),并加横移,七段方向逐段交错(快推/拉远/左→右/右→左/缓推)。
    2b. ⭐⭐ 运镜 v3(2026-09-25 晚立 · 善思兄"你好像没有剪辑的好,也不吸引人""暂时先不真人出镜,你模拟")——三条都是查出来的硬伤:
    - ① 图式段的 z 不许固定:v2 的 panlr/panrl 用固定 z=1.055,横移只能在 1200-1200/1.055≈63px 的余量里走——11 秒移 63px ≈ 6px/s,肉眼看不见,等于没动(这就是"像 PPT"的根子)。定法=z 全程线性变化(z=&#x27;z0+(z1-z0)*on/(n-1)&#x27;)+ z 提到 1.05~1.11(余量升到 110px 级)= 边推边移。横移写成 x=&#x27;(iw-iw/zoom)*p&#x27;,p∈[-1,1] 正好把可用余量用满,绝不露黑边。
    - ② 段内分镜:一段一个连续运动仍然"平"。定法=按句边界把一段切成 1~3 个镜头,每镜独立渲染再 concat -c copy,于是讲完一句、画面换一次——这是最像"剪过"的一招,不需要新素材、不需要真人。
    · ⭐⭐ 2026-10-01 修订(多素材版 · 取代旧"句数≥3且≥9s→3镜"的纯时长公式):一段可能挂多张素材,定法改为——镜头数 = 该段素材数(每镜 ≥2s,上限由素材数封顶),第 k 个镜头就用第 k 张素材;即 want = max(1, min(nkeys, len(句边界候选), max(1, int(dur/2.0))))。切点落在句边界上(kb_shots_for() 取"离等分点最近的句边界")。
    · ⚠️ 句边界不足时要整段改用均分(10-01 踩坑):段4 只有 1 个句边界,旧逻辑"每个目标点各取最近句边界"→ 两个目标点都取到同一个点,切出 [&#x27;7.20&#x27;,&#x27;7.44&#x27;]、第二镜只剩 0.24s(一闪而过)。定法=候选句边界数 < 需要的镜头数−1 时,整段改均分,不许出现 <2s 的碎镜。
    · 多素材计划表签名:make_kb_plan_multi(keys, out_path, plan, tag),plan = [(n_frames, z0, z1, p0, p1), ...]——第 k 个镜头自动取第 k 个素材,p∈[-1,1] 把 zoom 余量用满。
    - ③ 段1 不许有 fade-in:段1 加 fade=t=in 会让第一帧变成一片米白——抖音抓封面就抓瞎("第一帧即封面"直接作废)。定法=只给 i>0 的段加 fade-in,段1 只留段尾过白。验收=抽 t=0.00 一帧,看栏名/主标题/副标题/印章是否全在。
    2c. ⭐⭐ 形式升级两件兵器(2026-09-25 晚立 · 善思兄"能不能写字动画,快切信息加进去,这个功能一定要准备")——运镜已到量级上限,再要"动"就得换形式(不必真人出镜)。
    代码=video_assets/fx_anim.py(独立模块,出片脚本 from fx_anim import Write, write_frames, save_frames, flash_build, flash_beats, overlay_frames, overlay_still);验收样片=_demo_fx.py(跑腿 _run_demo_fx.py,产物与抽帧在 video_assets/_fxdemo/)。
    - ① 写字动画 Write + write_frames():把一行(几)字按"从左到右被写出来"逐帧显现,右缘 feather 羽化=笔锋,另有笔尖墨点跟着走。
    · 落点是文字层——把静态文字层(渐变底衬+名卡+栏名+印章)升级成 PNG 帧序列(save_frames() → tl_%04d.png),用 -framerate 25 -i tl_%04d.png 喂 overlay(overlay_frames() 已封装)。与底图运镜叠加、互不干扰——字不会跟着画面漂,这正是要的。
    · 不做笔顺(本机无笔顺数据),做的是"行笔式擦除"——人眼看就是"在写字"。
    · 节奏=per_char 秒/字:0.16 利落(关键词)/0.20 常用/0.28 从容(大字)/0.10 急促(快切卡);feather 28~34 像毛笔、10~16 像钢笔。
    · 多词分列写(如"司马/司徒/司空/司寇"):各建一个 Write、t0 依次 +0.55s,就是"一列一列写出来"——比整行连写有节奏。
    - ② 快切信息图 flash_build() + flash_beats():一段内连甩 N 张卡(0.8~1.4s/张、硬切),每张卡自带短促运镜。
    · 最合用的场景=一句话里的一串列举(管兵→司马/管土地→司徒/管工程→司空/管刑狱→司寇,一张卡一个,观众跟着念,节奏就起来)。
    · 快切不许过白(过白是"柔",快切要"脆")——卡与卡生切;卡与卡之间不上 fade。
    · 每张卡必须"短促有力":z 一口气收/放 6.5%(1.088↔1.020)+横移把余量用满(p 从 −0.8 到 +0.35)。⚠️ 09-25 首次验证时 z 只动 3.8%,1.1 秒里根本看不出来,等于白切。
    · 卡上常配进度点(●●●●,当前张亮红),帮观众"数到第几张",快切才不散。
    - ⚠️ 两条铁律(混用前必读):①任何段的第一帧都必须是完整封面(抖音抓首帧当封面)→ 写字动画一律 t0&gt;0,段1 主标题不许用写字动画(要写就写副标题/第三行,且 t0≥0.5s)。②帧序列长度必须=该段帧数(write_frames() 已按 dur 生成,别再截断),否则 overlay 中途"啪"地消失。
    - ⚠️ 五条工程坑(都踩过):①-framerate 只能给图片序列(PNG)用;给 mp4 输入加它会直接 Option framerate not found. + Error opening input file。②_over() 里 oa 是 (h,w,1),写回 out[:,:,3] 前必须 oa[:,:,0] 取掉那一维,否则广播报错。③flash_build 统一按计划表签名 (img, out, plan, tag) 调运镜函数——出片脚本传 make_kb_plan、模块内默认 kb_plan_one,换实现时签名必须一致。④ 写字帧"直接覆盖写",绝不许先清空——glob + os.remove() 一次删几十个 PNG 会被本机批量删除保护拦下(SAFE_DELETE_BULK_CONFIRM_REQUIRED,构建直接 rc=1、09-26 首跑就栽在这);反正 write_frames() 按 dur 生成、帧数与 nfr 精确对齐,多余的尾帧交给 shortest=1 截掉即可,无需清场。⑤ 多镜拼接+快切段最易把片子拼短:成片时长必须与 TTS 之和逐段核对(09-26 实测 60.55s vs 60.50s 差 +0.05s),差得多就是 concat 掉帧。
    - ⚠️ 版式:快切卡段不叠名卡(卡片内容本身就是主体,名卡 700/860/960 会跟卡打架);该段只留栏目名+印章+字幕,卡片占画面中部(约 y 650~1100)。写字行若与名卡同段,必须避开 700/860/960 三个名卡位。
  3. 段间不许硬切:旧版 concat -c copy 直接拼。定法:每段首尾各加 0.22s 米白过白(fade=t=in/out:...:color=0xFAF6EC,色取画布本色)。验收=抽段交界 +0.05/+0.12/+0.40s 三帧算整帧平均亮度,应递减(09-25 实测 233.7→221.5→177.8)。
  4. 音乐要听得见(见上条音轨更正)。
  5. 字幕逐句出现,不许整段一次铺满:旧版一段 9 秒、2~3 行一次性全出,没有跟随感。定法:按句切分、逐句出现(每句按"字数+句末标点停顿"分配时间窗)。
    ⚠️ 切句只认长停顿(SENT_END=。?!…):逗号是句内短停顿、不作切句点;破折号"—"同样不能算切句点。09-25 首版拿逗号切,段1 被切成 8 句、还切出只有一个"。"的句子、把破折号"——"劈成两半"——逐句显示时三四字闪一下反而更乱。09-26 复犯同款:把"—"放进 SENT_END 后,"统计——"被从破折号处切断、引文末尾的右引号"”"被甩成下一句句首(一个字孤零零闪一屏)。定法两条:① SENT_END 只留 。?!…;② 加"右引号归位"后处理——切出的块若以 ”』)】 之类收尾符号开头,还给上一块。切完还要合并"去掉标点后不足一个字"的碎块。断行四条(顿号不断行/右引号必断行、左引号不许断/行首不许标点/名卡 limit=910)一条不改。
    预检口径随之改为:判据是"单句最多行数 ≤6"(同时只显示一句),不再看"整段总行数"。
  6. 文字层入场别用 alpha fade(见下条),改用 overlay 的 y 表达式做上浮。

⚠️⚠️ 文字层禁用 fade=...,alpha=1(2026-09-25 踩,代价=重出一版):本机 ffmpeg 上它会把整个文字层吃掉——名卡/栏名/印章全部消失(第一版成片就栽在这,抽帧才发现)。实测四写法:format=rgba,fade alpha ✗/format=yuva420p,fade alpha ✗/不加 format 直接 fade alpha ✗/overlay=0:&#x27;if(lt(t,0.45),16*(1-t/0.45),0)&#x27; ✓(0.45s 内从下方 16px 升到位)。
别混淆:字幕的"过白"用的是 video fade(淡到颜色)——那个正常;被吃掉的只有 alpha fade。
- 音效去模板化(2026-09-19 善思兄"那个音效,不要弄成模板化,每次响的都一样"):段间转场逐段换音色(编钟/木鱼/磬/弦拨/鼓,同一期内不重复)、音高按五行相生角(木)→徵(火)→宫(土)→商(金)→羽(水)排(五音配五行出《礼记·月令》系统)、开场只响 1 声、--seed 随日期变、噪声成分须过一阶低通(否则谱质心飙到 6kHz 像电子沙沙声)。旧版三处病:编钟固定落在 1s/7s/13s/44s 绝对秒数、每期同一份 48s 循环、同一随机种子 20260914。
- 输出落 published\YYYY-MM-DD\,并在工作区根目录留一份预览副本。
- video_assets/cover_wuyi.py —— 单条视频·分平台封面生成器
- 复用 make_cover 布局(标题居中 0.40H/品牌行/竖排阴拓印左下角),按 {抖音:1080×1920, 小红书:1080×1440, 视频号:1080×1920} 出图,三平台相对位置恒定。
- 不再单独出封面(善思兄 2026-09-14 晚拍板):善思兄直接截取视频第一帧当封面,日更流水线和任务均不生成封面文件;第一帧布局由 build_wuke.py 固定模板保证位置恒定。
- video_assets/md2docx.py —— 发布文案 md→docx 转换
- 用法 python md2docx.py in.md out.docx(无参时用脚本内默认路径)。发布文案同时出 .md(好改)与 .docx(微信可看)。
- build_poster.py —— 起名服务价目海报生成器
- 输入定价四档(体验 ¥99 / 标准 ¥298 / 尊享 ¥598 / 至尊 ¥888),输出 1080×1920 竖版 PNG。
- 复用 bg_mountain.png 混宣纸底;底部红条写"付款后 1 个工作日出稿 / 龙虎山天师府道士 · 真人紫微排盘"(不含微信、不含"非 AI 套模板",两样都已按 2026-09-14 意见撤下);右上角盖三玄竖排阴拓印章、倾斜 −2°。
- 版面(2026-09-14 重排定稿):标题「三玄堂 · 古法起名」→ 双红线(180→898,右端收在印章左侧,不许撞章) → 说明区两行(累进说明/封顶·补差价·另接商号/笔名/改名)→ 四档卡(y0=386、row_h=300、box_h=250)→ 底部红条(by=1666、h=190)。说明文字一律放顶部干净底子,不许落在背景山脊/花枝上(会被看成"挡线"划断);标题下不再挂「以《左传》五可六避为纲/比日本三才五格早 2600 年」小字。
- fit_center():文字过宽自动缩字号,绝不出画、绝不裁切。
- 关键修复:底图自带 AI 水印,须 draw.rectangle([24, 1770, W-24, H-8], fill=(246,240,226)) 先覆一层宣纸色盖掉再重画边框/红条;朱砂印章置右上角 (W-158, 96)、倾斜 −2°(海报版面:左下角与底部红条冲突,故印章留在右上)。
- make_avatar.py —— 三平台品牌头像生成器
- 输出 头像_三玄.png(1080×1080、圆外透明):朱砂圆徽 + 宣纸底 + 极淡水墨远山 + 竖排阴拓「三玄」印;圆形裁切不掉元素,抖音/小红书/视频号通用。
- 超采样 SS=2 抗锯齿;朱砂环做旧、印面拓片斑驳。可复用为任何"印章式"品牌头像。
- make_collection_cover.py —— 三平台合集封面生成器
- 输出 合集封面_名字里的典故.png(1080×1080 方形,抖音/小红书/视频号"合集·专辑"封面通用):只有三样——宣纸远山底 + 栏目名「名字里的典故」+ 堂号「三玄堂」+ 左下角竖排阴拓「三玄」印。
- 铁律:封面不写任何话术(善思兄 2026-09-13 明令)——不写"每日更新/每日一名"、不写"紫微排盘"、不写"《左传》五可六避为纲"、不写"比日本三才五格早 2600 年"、不写任何联系方式。合集封面 = 一摞视频的总封面,不是广告位;把卖点堆上去反而像营销号。所有卖点进视频内容里说,且同一卖点不重复刷。
- 复用 bg_mountain.png 混宣纸(Image.blend(bg, parch, 0.52));改脚本里那两行文字即可出「单条视频封面」或新栏目封面。
- 配套文案/框架文件(工作区根目录):
- 起名短视频内容框架.md:双支柱(典故 + 赏析/推荐)+ 20 条日更选题队列 + 单期分镜骨架 + 视觉/发布规范。
- 起名视频发布文案.md:抖音/小红书/视频号标题·正文·标签 + 私信自动回复模板 + 日更复用公式。
- 服务钩子(软植入、不硬广,详见 起名服务定价与交付.md):名数封顶 8 个、不做免费微调(名字"越看越想看",无底洞);入门即「体验·文化赏析名 ¥99」(3 名+典籍解读);补差价升级(老客户升档只补差价、前面已交付不重做);其他服务(商号名/笔名艺名/改名时机/紫微合参)可单点。海报提示行亦标「名数封顶 8 个 · 支持补差价升级 · 另接商号/笔名/改名」。
- 起名账号品牌套装.md:三平台账号名 / 签名(含微信)/ 头像说明 / 合集封面说明(含"单条视频封面"做法) + 微信号合规结论(视频内❌ / 封面❌ / 签名✅ / 私信✅)。
- 日更自动化(2026-09-17 起已停用):善思兄拍板「那个日更我停了,一切以这个对话框为准」。原每日 09:00 任务(ID 368ec359-ec03-4f21-afd4-a8f4e565c4af)已不在自动化列表中(善思兄自行停掉/删除)。选题与出片一律以对话指令为准。※ 连带影响:新规矩的落点由四处缩减为三处——①本 SKILL.md ②起名视频制作规范.md ③云端规范节点(手机端可见)。原"同步日更自动化 prompt"这一落点已作废。

五、视觉规范(善思兄定,勿擅改)

  • 「三玄」印章=竖排阴拓(阴文/白文):竖长方形、逐字竖排(三在上、玄在下);深朱底 + 纸白字(字为白=阴文),红底随机露白、白字随机压红做拓片斑驳,边缘咬缺做旧;置于画面左下角,倾斜 ≤2°(2026-09-13 定稿)。
  • 实现见 video_assets/build_wuke.py、根目录 build_poster.py、make_avatar.py 的 seal() / make_seal() / mk_seal():圆角矩形填深朱 → 内描纸白边 → 逐字居中竖排填纸白 → 按概率红底露白/白字压红 → 边缘随机咬缺 → rotate(-2, expand=True),paste 到左下角 (70, H-330)。
  • ※ 已作废的旧样式:「红字阳文(红底红字)」,以及"右下角 −5°"的歪印位置。
  • 字幕(2026-09-14 善思兄恢复并定规范):烧录正常字幕——白字楷体 + 描边 + 阴影,整句随语音同步出现(不逐字滚动、不刻意);底部用真 alpha 合成的柔化渐变托底(非实心黑条),位置避开印章与顶部栏。实现:build_wuke.py 逐段 drawtext(textfile= 读校对后的文案、fontfile= 用拷到工作目录的相对路径字体,规避 C: 冒号与长链解析坑)。画面另放居中名卡(标题/关键词),字号走 fit() 自动缩、绝不出画。
  • 字幕折行=按像素宽度,不按标点、不按固定字数(2026-09-14 定,硬规矩):SUB_FS=40 / SUB_LH=54 / 字幕块底线 y=1500 / 单行上限 SUB_MAXW=920px(数字沿革 780 → 860 → 900 → 920,逐期按实际文本放宽;1080 画布左右各留 80px);算法="先按标点切块 → 逐块按像素宽累加 → 超宽硬切";每行单独一个 drawtext 各自 x=(w-text_w)/2 居中(整块交给一个 drawtext 会多行左对齐 + 长行溢出)。单段 2–4 行,4 行时块顶 y≈1298,不压名卡。
  • 教训:旧版 wrap_sub 只在 ,。— 处断行,遇无标点长句(引号不算断点)累积到 22–24 字,实测顶边溢出被善思兄退回。
  • 超行处置次序(2026-09-20 立,09-21 再用一次):①先放宽 SUB_MAXW(只动版式、不动内容)②仍超再删虚字 ③删到伤内容就拆段。改行宽前先跑 video_assets/_test_subw.py(ast 提取六段文本、一次算出多个行宽下的行数与实际最宽行),别靠猜、别反复重跑渲染试。※脚本内字幕行数预检已前移(&gt;6 直接 SystemExit),不通过就不跑 TTS。
  • 顿号「、」不作断行点(2026-09-21 立,09-24 再犯一次已修):SUB_PUNCT 去掉顿号。09-21 段2 原断行把列举的字辈拦腰切开(行末「"绵、奕、」/行首「载"——」),观众读着别扭——顿号是列举内部的停顿,不是句子断点。⚠️ 09-24 段4 又踩:口播写"愈是胜过、超出,",断行脚本仍在顿号处切开(成「…愈是胜过、」/「超出,是往前;」)。处置=把口播里那个顿号删掉(改"愈是胜过超出")——同一句里出现"、…,",顿号比逗号弱,断行时必然成断点,所以写稿阶段就别在句中用顿号承上启下。
  • 右引号必须作断行点,左引号不许(2026-09-23 立):SUB_PUNCT 加上右引号。09-23 期段4「因以为号焉。」、段7「如露亦如电。」的右引号都被甩到下一行行首——播出时会出现一整行以孤零零一个"开头的断法。右引号是被引文字的收尾,必须跟在同一行;左引号若当断点,行尾就会孤零零挂一个左引号,同样不行。※含引号的段,出片前必看 _sub_lines.txt 里的引号落位,别只看行数。⚠️ 2026-09-30 补:口播稿里引号常写成英文直引号 &quot;,而"右引号归位"集原只认中文 ” → 段5 收尾引号被甩到下一句句首(行首孤零零一个引号)。定法:&quot;(U+0022)并入"归位集",与 ” 同等对待(左引号仍不进 HEAD_FORBID,行首可起左引号)。
  • 行首不许出现标点(避头 · 2026-09-23 立):wrap_sub 末尾加一道"避头"后处理——行首若是 。,、;:?!》」』) 这类字符,把它拉回上一行。09-23 段1 原断成「…叫"六一居士"」/「。哪六个一?」——句号孤零零落在行首,成因是行宽恰好卡在 SUB_MAXW(960)上、后随标点被挤到下一行。⚠️ 拉回时该行最多超一个字宽(≈40px),1080 画布仍留 ≥40px 边距,可接受;别为了这 40px 去改断行点或砍字。查法:出片前看 _sub_lines.txt,逐段扫一眼每行首字符。
  • 视频内/封面/字幕/正文/评论一律不得出现微信号/联系方式(合规铁律):抖音/小红书/视频号会判引流违规。片尾只用口号「我是三玄,每天一个名字里的典故。」;海报红条只留「付款后 1 个工作日出稿」等;微信只放账号签名(个人简介)+ 私信话术(抖音最严,以"私信引导"为主)。
  • ⭐⭐ 发布文案=能直接复制发布的成品(2026-09-25 立 · 善思兄原话:「很大程度上又是在介绍视频,一点没有钩子或者是总结这种,每次我都要自己提炼」「抖音、小红书正文和评论区了 这个没有用,你都不如写视频里」):
  • 成品的三个位置:第一句就是钩子(人人在划屏,第一句抓不住就没有第二句)→ 中间给看得着的东西(不看视频也拿得走)→ 结尾给一句能记住的话 + 一个互动问句。
  • 三禁:①禁"完整来路在视频里""这点视频里也说了"这类指路语(那是介绍视频,不是文案);②出处、考据、学术争议一律不进正文(收进"内部备料"节,遇较真评论再用);③禁把口播抄一遍(视频讲知识、文案勾互动,分工不重叠)。
  • 每套角度必须真不同,且自带钩子句+金句——不许让善思兄自己从正文里提炼。
  • ⭐篇幅:一套 ≤ 3 短行(2026-09-28 18:5x 立):善思兄原话「你写的这么细 不等于全都泄密了吗。你在看图说文吗?我每次都得改 不用这么长」。
    • 做法=每套 2~3 句、每句一行、一行不超 ~20 字;整份文案压在一页内。
    • 正文绝不点书名、不点原句——出处就是片子里的货,写进文案等于提前泄底;也不要按片子顺序复述内容("看图说文")。钩子靠人名+悬念,答案留给片子。
  • ⭐内部备料独立成文件、永不交付(2026-09-28 18:5x 立):善思兄原话「内部备料的你不用给我看,你自己存着」。存 内部备料/YYYY-MM-DD-&lt;题目&gt;.md:不入 published/、不上云、不写进正文、不在回复里展示。
  • ⭐按发布后台的字段给(2026-09-30 立 · 善思兄截图指出):每套必须分三格——标题(对应后台"作品标题",≤30 字)+ 简介(正文)+ 标签。善思兄原话:「标题 简介 是这样的,你的发布文案也要这么给我」。
    • 抖音标签=5 个(原话「另外抖音的标签是5个」);小红书同样给 5 个。标签贴题、彼此不重复。
    • ⚠️ 两节都要写进文案文件(2026-10-05 善思兄追问「标签也要给我」):只出抖音那 5 个=漏交付;交付前自检 .md 里有 ## 抖音 与 ## 小红书 两节、各 5 个、不混用。
    • 旧版把标题混在正文里、标签只给 3 个 → 不合格,必改。
    • ⭐「简介」这格:≤2 句、只给钩子、不剧透(2026-10-04 立 · 善思兄原话:「简介 可以用勾子 不要提前讲视频的内容 而且不要超过两句话」):判据=看完简介仍不知道答案,答案留给片子;一般一句陈述悬念、最多再补半句抬一下(如"他到底在担心什么?")。反例=把片里讲的内容按顺序复述 4~5 句(="看图说文"+提前泄底),10-04《苏轼的名字》初版三套简介即因此全部重写为 2 句。多套时每套钩子角度不同、但都不给答案。 ⭐⭐2026-10-06 补:简介句不许自造比喻/空间隐喻——10-06 第 1 套简介第二句写「你的姓,藏在什么后面?」,前文没有"藏"这件事,善思兄直接问"这什么意思??藏哪了"。病根=为求文气自造比喻。定法:简介句只用观众嘴里现成的说法(哪来的/怎么来的/你查过吗/也有出处吗),禁"藏在…后面/装在…里/压在…底下"这类凭空长出来的空间隐喻(与"接口必须长在观众嘴上"同源)。判据=把这句单独拎出来念一遍,观众会不会问"什么意思?"——会问=自造,重写。10-06 实改=「你的姓,也有出处吗?」(与上一句"笔笔都有出处"顶针咬合,仍不给答案)。
  • 一律不做剧集借势(2026-09-25 善思兄:"《太平年》不要"——"不知道是什么",借了也白借)。
  • 名卡两字不许重叠:字号 250 → 字间距 300;改字号必须同步改间距。
  • 标题/副标题一律走 fit_font() 自动缩字号,绝不许出画被裁(「以冬为名」四字 300px 曾整排出画)。
  • 全片叠极淡宣纸颗粒(sigma≈18、alpha≈22)做斑驳底子。
  • 对外物料禁用内部黑话(2026-09-14 定):海报/封面/简介/话术绝不出现"引流"二字(善思兄原话:"还 99 引流??");「引流款」等内部黑话只能写在内部文档,客户面前只讲具体档位(如「体验·文化赏析名 ¥99」),不另设诊断单品。
  • 金额一律用全角「¥」:半角「¥」在楷体 simkai.ttf 下没有字形,会渲染成豆腐块 □(海报上已实际踩到)。
  • 名面不喊卖点、不重复卖点:标题下不挂纲领小字("以《左传》…为纲""比日本三才五格早 2600 年"这类话只在内容里讲一次);装饰线与文字间距 ≥30px,红线不许压穿文字。
  • 片尾固定口令:「我是三玄,每天一个名字里的典故。」
  • 尺寸:竖屏短视频 1080×1920(9:16);小红书竖版图文海报 1080×1920。

五之一、素材密度:画面素材跟着文案配(2026-09-19 善思兄立 · 出片前必过)

> 善思兄原话:「这个是让你今后多加点素材」→「就是那些根据文案配的素材」。= 每段文案都要配上贴合该段内容的画面素材,不是改封面、不是堆通用图(我一度读成"平台建议改封面"跑偏)。

  1. 写文案时就定素材:每段口播后直接写"这段配什么画面",出片逐段核对;不许合成时才想。
  2. 不许连续两段只有空镜;全片 ≥3 类画面(人物像/器物道具/场景/自绘图式);同一素材不连用两段。
  3. ⭐⭐ 素材每天新生成,且必须去重(2026-09-19 善思兄补正):原话「建素材池是对的,但你不能有重复的,要去重,所以这部分是每天生成的」。props/ 不是"一批图用到底"——每期按当段文案新生成当期所需素材,老图只作库存与查重底本。
    - 去重三口径:①同一张图绝不跨期复用;②题材也去重(上期用过"竹简/族谱/古舆图",本期换别的,不做同题材换角度);③同一期内同一图不得出现两次。
    - 抓手:video_assets/素材使用台账.md(登记 日期/文件名/题材/段号,开生成前先查近期)+ video_assets/props_dedupe.py(dHash 查重复验)。
    - 例外:people/ 一人物一像、不重画;scenes/ 两张底图轮换;charts/ 每期按内容现画。
  4. 四个库(分工,非复用池):people/(人物像,14 件)· props/(器物道具,09-19 首期 6 件:竹简/族谱册页/文房/印章印泥/古舆图/宗祠香案——库存底本,下期不再照用)· scenes/(bg_mountain/bg_bamboo)· charts/(程序自绘图式:相生链、辈分网格、谱系树——比 AI 图更利传信息)。
  5. 素材池规格:竖版 1024×1536、古画水墨风、主体在上部中下部留白;不留白的走挂画版式(ming_make_frames.py)。
  6. 水印:props_clean.py 批量去(水印在最底数行 y≈1505–1536,覆盖区须盖到最底边;用 bottom_rowstd 复核,首版按 y≤1520 漏了 16px)。
    - ⭐ 根治版(2026-09-22 立 · _clean_name3.py)="边界驱动插值":把水印带当"洞",用洞四周的真实像素做双向线性插值(靠近左右边界信水平插值、靠近上下边界信垂直插值,加权融合)+叠"只取高频"的纸纹(自上方取样、去掉低频,故不会带出取样区的内容明暗)+边缘羽化。四边天然连续,矩形边界根本不存在。⚠️ "正上方平移取样"(v1/v2)会在右下留矩形浅色块,放大 4 倍一眼可见——不要再试(唯一例外见下文:纸面横向不均时走"平移+纵向走势校正")。关键:洞的边界要取到未污染的真实像素(09-22 洞取 (700,1360)-(1016,1530),左边 x=699 与上边 y=1359 都是原图真实像素)。
    - ⭐⭐ 水印落在有色物体上时(2026-09-24 立 · _clean_mingzi_lu_v3.py):洞区上下参照色阶差大(顶行取深色路面、底行取亮纸面)时,线性铺开必然造出台阶(09-24 士路那张 y1492 出现 242→250 的 +8 亮带,原始图是一路平坦 246–247)。定版解=①取"正上方同宽、同材质区域"平移填充(不插值、直接用同材质像素,09-24 取 y1150–1335 的纸面)+②逐行以"洞左右外侧同高区域"(x±6..60 中位数)为基准做色阶对齐,把填充块逐行亮度对齐到本行两侧真实像素。处理后与原始逐行均值几乎完全一致。
    - ⭐ 残差复检的量尺要选对:别拿"整图中位数"当基准——下部有木纹/竹影/路面纹理的图会全部假报警(09-24 _wm_check_mingzi.py 报 +16/+23/+49 全是假)。判据用"同位置逐行均值的原始 vs 处理比对"(_cmp_lu.py 那种),或整图目视+放大比对。
    - ⭐ 洞"贴图边"时必须扩到图边、且该边不羽化(2026-09-26 立 · _clean_rw2.py):水印在右下角、离右边缘不足 20px 时,洞要一直取到 X1=w、Y1=h,右、下两边都不羽化——否则 14px 的右边羽化带会正好压在水印尾巴上,右下留一小块淡白残留(09-26 孙权那张就露了这一块)。洞已贴右边 → 没有右侧参考带,逐行对齐只用左侧纸带。
    - ⭐⭐ 纸面横向不均/底边发暗的图,纯边界插值会被带偏(2026-09-26 立):孙权、王会宗两张下部纸面横向有明暗漂移、底边还发暗,v2 边界插值把暗边平均进来 → 洞区比周围亮 +11.5 / +6.3,且左右各留一条肉眼可见的竖缝。定版=①"正上方同宽纸带整体下移"填充(纹理与横向色调天然一致,不用再补高频噪)+②用"左侧干净纸带"的纵向走势逐行校正:delta(y) = left(y) − left(y−SHIFT),21 行滑动平均后加到填充上,把"纸往下越来越暗"这件事传过来。改后边界台阶 上 ≤1.47 / 左 ≤0.95,放大 4 倍看不见缝。
    ⚠️ 与上一条(09-22)的分工别搞混:"纯"正上方平移确实会留矩形浅色块、不要再试;但"平移 + 纵向走势校正"是另一回事,正是纸面不均时该用的那一手。
    · ⭐ 2026-10-01 复现(孔子图)+一个小改良:九张新素材批量去水印时,其余八张(无横向渐变)全过,唯孔子图台阶 −3.24 超标(判据 <1.5)、放大目视见矩形补丁印——与 09-26 孙权/王会宗同款病根(纸面从左到右有自然亮度渐变,左右插值必留痕)。修法=_fix_kongzi.py「正上方同宽纸带下移 + 部分逐行对齐(×0.60 折衷系数)」→ −1.61 达标、放大目视痕迹消失。判据的量化口径固定="洞 − 左侧台阶 |值| < 1.5"(_clean_mg1b.py 批量版即按此逐张判)。
    - 流程纪律(不可省):先探测、再动手——第一步跑逐行/逐列分位亮度探测脚本(_wm_probe_*.py),半分钟定出精确行列范围;探测出的坐标与上期一致时,那也是"探测后确认一致",不是"照搬"。
    - ⭐⭐ 水印区本是无结构纯纸 → 填纸色+纸纹,别搬运邻近画面(2026-10-04 立 · _clean_sx1.py):10-04 两张实测三法——①左侧纸带右移把远处一条斜纸痕搬进洞区,接缝肉眼可见;②cv2.inpaint 矩形掩膜在洞区一侧到画面边缘时(书案图右缘)插值成横向拖影+一块发白模糊矩形;③✅ 定案=洞区每行取"紧邻左侧 44px 逐通道均值"(行内恒定、行间平缓)+叠高频纸纹(自邻近取样、只取高频)+左侧羽化。纹理源自动选"结构最弱"处——判据=候选区低通(高斯 σ≈9)后的 std 取小者:书案图"正上方"是桌腿(std 27.6)、左邻是纸(12.1)→ 取左邻(否则把桌腿木纹带下来)。验收=洞区与左邻色差 |Δ|≤1.5 + 放大 4 倍目视无补丁边/无拖影。
    ⚠️ 一句话判分工:洞区下面有结构(压着物体/路面)→ 走上面"平移+色阶/纵向走势校正";洞区下面是无结构纯纸 → 走本条"填纸色+纸纹"。
  7. 脚本侧:新片 SEGS 每段带素材声明((口播, 名卡, 素材key, 版式)),不再用 DYN 段号硬映射(删段即错位,09-19 砍造字段踩过)。

  8. ⭐⭐ 人物素材:AI 静帧 → 图生视频(2026-09-26 立 · 善思兄「多加人物素材,最好是视频的,其次用图片」):
    - 缘起:全片八段都是无人空镜、讲人物却不给脸。补一套人物素材(曹操/刘备/孙权/关羽/张飞/赵云/王莽/王会宗)。
    - 顺序不可反:先去水印 → 再图生视频(静帧带「AI生成 WORKBUDDY」,先转视频会把水印烧进每帧)。
    - 风格跟现片统一:水墨写意、暖米黄宣纸本色(不要纯白块、不要上下硬分界)、半身在中上部、下部约三分之一留白;人一律半身/侧影、不持兵器,靠冠服须髯辨识。
    - prompt 三件写死:面部稳定不变形/不出现任何文字水印边框/不快速运动与镜头抖动(运动只给衣袍轻飘+呼吸+极缓推,动多了必崩脸)。
    - 图生视频比例随输入图(1024×1536=2:3)→ 进片守"只裁不拉"。
    - ⭐ 人物视频进片处理:scale=1280:1920:force_original_aspect_ratio=increase,crop=1080:1340:y=0,pad=1080:1920:0:0:color=0xf6f0e2(等比放大裁左右、取顶部1340、底部米黄pad到1920,半身留中上、下部留白避名卡/字幕);-stream_loop -1 循环填满段长。
    - 名牌(badge,纪录片式):单行「人名 · 身份」+左 6px 红标。⭐ 位置铁律:一律放"字幕底边(1500)之下的空带" y1512~1592(横向居中、宽随字自适应)——09-26 实测:先左下 (60,1700)、后右上 (W-620,250,560,150),两次都挡脸。_analyze_layout.py 量出根因:8 张素材 crop 1080×1340 后头部横向占位 x136~1028(张飞136~916/赵云217~1028/王莽300~845),左右仅剩 200~300px 背景,任何角位必压脸;纵向名卡 620~1025、段3 写字 1100~1252 亦占满。字幕之下是全篇唯一通用安全带(与字幕留 12px、与左下印章 x70~190 错开、避开抖音右侧按钮列 x940+)。人名42/身份27。⭐ 层级铁律:名牌永远放最后一层(人物 → 封面层 static_layer → 名牌)——段1 曾叠在封面层之下,被底部渐深 grad_layer 压暗到 lum≈191(段3/5 为 234),同片两亮度;_check_badge.py 像素核对直接检不出。
    - 数据条信息图(data bar):红条「单名 99%」+小条「二名 1%」+注释。标签用 INK 深色——白字压浅条不可读(前版即此坑,已修)。
    - 验收=抽 10%/50%/90% 三帧读图(脸没崩/须没熔/无文字水印/三帧有位移);⚠️ 人物下沿会撞名卡带(关羽/孙权伸到 y≈1070–1130)→ 加柔化带或改版式。
    - 归档:静帧 video_assets/props_rw_0926/props_rw_&lt;名&gt;.png;视频 video_assets/rw_vid_0926/vid_&lt;名&gt;.mp4。

五之二、口播通顺与节奏铁律(2026-09-16 善思兄拍板,最高优先级)

> 起因:2026-09-16 善思兄实测成片后点名"话一定要通顺,语速可以略快一点,因为有字幕,整体上时长不要超过2分,1分钟左右就可以",且指出五可总览首版与六避初版 CTA 都有"半截问句+硬转指令+自报家门"的断裂句式(如"想给孩子起个有来历、合五可六避的名?把姓氏发给我,我按《左传》古法给你起一个"),听感不顺。

  1. 口播必须通顺(硬规矩):每一句都要是完整、自然、听得顺的中文,绝不允许"半截问句 → 硬转指令 → 自报家门"的断裂拼接。
    - ❌ 反例:「…合五可六避的名?把姓氏发给我,我按《左传》古法给你起一个。」
    - ✅ 正例:「…有来历的名,可以私信我,我按《左传》古法帮您起。我是三玄,每天一个名字里的典故。」
    - CTA 一律走"陈述 → 邀请"自然句,不踩"问句+命令"的硬转。
    1b. AI 腔防线(2026-09-17 立 / 同日二次修订 · 善思兄连退「名字一直生,江山没有」「检不住江山」,并点出"还没抓到自己的错误核心点" · 硬规矩):
    - 核心病根(根):写作时脑子里有一个"要交作业的对象",没有"要讲给人听的对象"。 症状全由此出——用"看起来很深刻"的句式(不是A是B)、用"格式很工整"的对仗(名字一直生/江山没有)、用"显得我总结过了"的大词(根子/核心/本质上)、甚至用"我去找个技能学"这种看起来负责的动作——都是在表演负责,不是在说事。
    - 一级自检(先问姿态):这句话,我是想说给人听,还是想说给分数听? 凡有半点"这样写显得我懂了/格式好看/像个完整交付"的念头,删掉重写。
    - 二级自检(念一遍):出稿前逐句朗读——凡需要解释才能懂、或中文里没人这么说的句子,一律重写。先保证每句是自然的人话,对仗和双关是奖励,不是目的。

    • ❌ 反例:「名字一直生,江山没有。」(善思兄:"很怪,很AI,很不通顺")
    • ❌ 反例(姿态层):「我今天被退稿的根子之一就是编剧功底不够。」——"根子""功底"是贴标签式抽象重词。✅ 正例:「我交稿前没出声念一遍。」
    • ❌ 反例(因果链断在中间 · 2026-09-27):「人人都得登记一个姓,有钱人就买一本大家族的族谱」——登记的是"姓",买族谱为的是"认祖宗",中间缺一环;耳朵不能回看,就听成"登记姓就得买族谱"。✅ 补上那一环:「人人都得登记一个姓,可自己祖宗是谁说不清——有钱人就买族谱,把自己写进去。」判据:A→B 之间观众要走的那一步,说了没有。
    • ❌ 反例(动宾被逗号劈开 · 2026-09-27):「可它证明不了,你们真是同一条根」——动词与宾语从句之间插了个逗号,宾语悬在半空;另叠着"它"指代不明、否定套判断、"你们"人称突现。✅ 改法:砍掉嵌套直接给结论——「可未必是同一条根。」判据:动词与其宾语(从句)之间不得插逗号;一句话念完前不许让听众等下半句;"它/他们"必须紧挨所指的那个词。
    • ❌ 反例("们"字加错地方 · 2026-09-27 善思兄当场抓出):「皇帝的名字们」——"们"只能跟在指人的名词后(人们/同志们/皇帝们);"名字"不是人,不能说"名字们",一错位整句就不通。✅ 正解:「皇帝们的名字」(多个皇帝、一个名字,"们"点在"皇帝"后)。判据:凡写"X们",先反问 X 是不是人。 另:「A的B们」这个形状永远别扭,见它先想是不是该写「A们 的 B」。
    • ❌ 反例(拿"东西"指名号 · 2026-09-27 善思兄当场质问"?????东西??是名字或称号吧"):「'汉武帝''唐太宗''康熙',是三样不同的东西」——"东西"指物件,这三个是名号。✅ 改:「是三个不同的名号」(同字数)。同批删掉段 4 的"年号这东西"。判据:口播不许用"东西/玩意儿"指抽象事物——凡写"东西",先问它是不是个物件,不是就换它的正名(名号/称呼/规矩/制度/来历)。
    • ★根因:改过的句子必须整句回读。 这句正是当天修"宾语悬空"时当场补写的,补完没回读才漏进去——打补丁最容易出新病。凡回车改过的句子:整句重念 + 字数重算 + 名卡同步。另:补写的句子要在稿里单列,请善思兄专看这几句(补丁是最薄弱的部位)。
      • ⚠️ 补写句还要多过一关"逐词查域"(09-27 立 · 最对症):补写时注意力在结构、不在词("最高一路"就是补接口时冒出来的)。凡补写句,除整句回读外,把实词逐个拎出来查"属于哪个域";重点形状 "最X + 名词" → 单问一句「这个词能当等级用吗?」(等级=档/等/级/流/品;分类=路/类/种,两域不可混用)。
    • ★同源根因二(本期主词):同一个概念全篇混用了四个词(叫法/称呼/名字/东西)——槽位多、没约束,填空时就近抓了最泛的词。→ 开稿先钉一个"本期主词",全篇只用它(本期正解="名号");同一概念出现第三个同义词=警报。
    • ★同源根因三(题材换了,病根也换):前 20 期讲人名/姓/字/号(实指的人与字),句子天然离"东西"很远,所以这毛病一次没露;本期头一次讲抽象的三套制度,一句话要兜住三个不同性质的对象,才滑出"三样不同的东西"。→ 每逢换题材类型(人→制度→器物→节令),开稿前按新题材重配自检项,不沿用上一期。
    • ❌ 反例(跨期接口串线 → 靠“划界”过桥 → 更糟的“跳接” · 09-27 善思兄连问两轮):原稿“这个字,是给文臣的最高一路。”(上句皇帝、下句臣子,跨类指代,观众必听成“唐太宗是文臣”)→ 第一次改成“那是给皇帝的。给臣子的字,另有一套”(既不准——同一套谥法;又生硬)→ 第二次把“另有一套”删掉,成了“做臣子的,能得着这个字就是最好的一档”,连接层也一并删没了,善思兄批“这么说完全没逻辑”。✅ 定版:接口“同物相连”——「……就一个“文”字。这个“文”字是最好的评价——皇帝得着它,臣子也争它。」
      • ★补丁纪律:删了成分,就要重走整条逻辑链。 打补丁若删掉连接词/前提句/限定语,必须重走整段逻辑链(前提→推论还成立吗?两句之间还剩关系吗?)。本案连改两轮都是只看单句、没看链。
    • ❌ 反例(搭配错域 / 自造组合取代现成说法 · 同批):①"文臣的最高一路"——"一路"的"同属一类"义项只用于指人和派别("他们是一路的"),不能用在等级序列上,等级要用档/等/级;②"文正好到不能再加"——原话"无以复加"本就是现成说法,转述时不该再造一个绕口的。✅ 改"最好的一档"/"这是最好的字,再没有比它更高的"。
    • ⚠️⚠️ ★判据一 — 归因必须可核(2026-09-27 立 · 最要紧的一条):不许给错误指派一个我没查证的来源。 凡要写"这是X式(日语式/方言式/古语式/某书说)",必须先查证、并写得出真实对照例;查不出,就只描述症状、不指派来源。
      • 本条原写"(日语式构词)"/"(是粤语句式)"——两句都是我编的。 善思兄 09-27 质问"我的 WORKBUDDY 里为什么会有日语构词???检查!!!",全量查证结果:①全工作区 .md 零日文字符;②技能包文本零日文;③日语「一路」(いちろ)只有"一条道"与"径直、一直"两义,无等级义、无「最高一路」此说。"照日语拼"在事实上不成立。 而"像粤语"本是善思兄的形容词(形容别扭),被我升级成了语言学结论。
      • 病根:写"改动记录/根因分析"时每错都要配一个来源;给不出真来源时,就近生成了一个"听起来专业"的来源。与"拿'东西'填槽"是同一个动作——为了把话说圆而编内容;上次编的是词,这次编的是因。 这种错比语病更危险:连认错时的解释都不可信了。
    • ★判据二:搭配要落回中文自己的义项与"域"(十有八九是"义项用错了域",不是什么外来语);★判据三:转述不许丢现成说法(有现成词就用现成的,白话化后念一遍,绕口就是错);★判据四:凡写"有人说/据说/古人讲",下一格必须写出书名或原话,写不出就是没有。

    • ❌ 反例("有人说"悬空 · 同批善思兄追问"原文呢"):"当时有人说:文正好到不能再加"——说了等于没说。✅ 凡写"有人说/据说/古人讲",下一格必须写得出书名或原话(本期=司马光《论夏竦谥状》"今乃谥以'文正',二者谥之至美,无以复加");写不出,就是没有。

    • ❌ 反例(方位词单用缺领属 · 同批质问"这什么玩意"):"一个人身后,这个字连改两回"——"身后"单用会听成"身后还跟着一个人"。✅ 改"人已经下葬了,这个字还在改"。判据:方位词(身前/身后/生前)单用必须带领属或改成动词句。
    • 三级自检(2026-09-19 立 · 善思兄指"太多不通顺的了"后一次抓出十几处):把自己摆在哪儿,比词句更要紧——那十几处根子同一个:话是朝着"一群人"念的,不是对着"一个人"说的。
    • ① 当面宣告式(最严重,等于当面失礼):❌「真正的姓早丢了」「你今天证件上写的那一个字」✅「更早的那个姓,已经不容易追了」「你名字最前头那个字」。判据:这话坐在对面的人,我敢不敢当面说?
    • ② 代词不当:❌「就看它干的活」("它"指整个部族)✅「就看这个部族靠什么过日子」。指人/指族群不许用"它"。
    • ③ 表演式形容词:❌「说得最狠的一句」✅「说得最直白的一句」。
    • ④ 指代串线:❌ 前句"说姓和名",下句"这两个字是两码事"(实指"姓""氏")✅ 直接点名:「"姓"和"氏"是两件不同的事」。
    • ⑤ 单字动词收尾/生硬名词:❌「也不能结」「分出来的支」「搁一块儿数」✅「也不能成婚」「氏是姓的分支」「连在一起说」。("分出来的分支"仍被退:"分出来"="分支",说两遍。)
    • ⑥ "就为…"式糙口(常带单边视角):❌「姓摆在头上,就为看能不能娶」✅「姓摆在最前头,就看两家能不能结亲」。
    • ⑦ "丢了/没了"说别人一律换掉(转述古人可用,"亡矣"→"老姓就断了"反而更准)。
    • ⑧ 定语要站在听话人这边(2026-09-20 立):❌「今天写的那个"姓"」✅「你名字最前头那个字」(同一件事换立场就通;且回扣段 1,收口要让观众低头看自己的名字)。今天/现在/文中/上面说的——以"我这边"为坐标的定语全换掉。
    • ⑨ 话里打转(同一件事说两遍):❌「氏是从姓里分出来的分支」✅「氏是姓的分支」。(2026-09-20 与⑤连中两次,单列。)
    • 变体·空转的判断句(2026-09-21 立):❌「你家的字辈,是家里长辈记下来的」("你家的"="家里"重复指家 +"是…的"判断句空转、"记下来"没着落)✅「你家的字辈,是一句一句念下来的」。判据:写了动作,就得让观众看得见是谁在做、做在哪。
    • ⑩ 拿"断代"当卖点(2026-09-20 立 · 善思兄:"段6太夸张了…你是让用户觉得,这个本子希望都断代吗"):谈字辈/姓氏/族谱/香火这类"往下传"的事,禁用 断/断了/断在…/绝了/没了 去跟观众自家的传承作对照。❌「皇家的字辈断在第七个字上,你家的字辈,还在往下传吗?」✅「溥仪"溥"字辈,就是清朝最后一位皇帝。皇家的字辈是朝廷颁的,你家长辈的名字里,同辈的是不是都带一个字?」——只陈述事实,落点转到观众答得上也体面的事。判据:这句话是让观众想说自己家的事,还是让观众觉得自家要完?(与⑦配套:凡涉及观众身上的传承,只往"还留着什么"说,不往"丢了什么"说。)
    • ⑪ 别为凑对仗换动词(2026-09-21 立 · 善思兄:"你这个太AI了"):前后句说的是同一个动作,就共用一个动词。❌「头一个字管你哪一辈,后一个字,还标着你算不算近支」✅「……后一个字,还管你离皇帝有多近」。两个病:①为对仗换词(口语里重复动词是自然的,换词才露馅)②术语不进嘴——"近支"得先翻译一道,翻译就断流;"离皇帝有多近"是有距离感的画,不用翻译。
    • ⑫ 系列内一律不做回指(2026-09-21 立,2026-09-28 收紧 · 现行):09-21 曾定“用‘前几期’不用‘上回’”;09-28 善思兄整个收紧:「不要写什么上期 之前 不用」→ “上回/上次/上期/上一期/前一期/前几期/之前/前面说过的”一律不写(口播、字幕、名卡、文案全含)。每期独立成立:要交代的前提,本期用一句白话正面说出来(例:“皇帝死后得一个字,臣子死后也得一个字,用的是同一套”)。判据:这一期单独刷到,能不能直接看懂?
    • ⑬ 引"名家结论"前,先查有没有人驳过(2026-09-22 立 · 善思兄当场挑出"丙丁后面怎么没有戊己"):名句不等于定论。09-22 商王天干稿段4 引王国维"首甲、次乙、次丙、次丁,而终于壬、癸,与十日之次全同",顺手写成"六个人生日不可能凑得这么齐——更像是后人顺着十日次序补的号"。两处错:①事实说反——六位先公只占甲、乙、丙、丁、壬、癸,中间戊己庚辛四个日干空着,这正是"不齐";②该结论有学者驳过——于省吾早指出"示壬示癸与上甲和三报之间上有戊己庚辛四个日干不相衔接,还不能说是完全的整齐划一",且示壬示癸庙号有典可稽、非后人追拟。
    • 规则一:引学者结论前先搜"该结论 + 商榷/质疑/驳/修正";有争议的一律不进口播(内部留档须带"有争议"标记)。
    • 规则二:事实层与推断层分开——事实可讲,推断无定论不讲。
    • 规则三(最实用):讲"规律"之前先自己想一遍反例。凡自己都觉得"这儿怎么断了"的地方,观众一定也会问——要么当场说破("中间四个字,空着"),要么干脆不讲。把疑问留给观众=把破绽留给观众。
    • ⑭ 引"名字/句子出自某句"前,先查是谁说的(2026-09-22 立):分级 ①本人/家人亲口 → 可进口播 ②媒体多源、无原话 → 进片但不加引号 ③网友汇总/后人解读 → 一律不用。名字出处比史料更容易掺假——09-22 期候选十几条只留七条(任贤齐/张学友/俞飞鸿/林更新/李克勤/刘亦菲全砍)。
    • ⑮ "查不到出处"只报"查不到",不判"对不对"(2026-09-22 立):观众里有人正照它取名,不能打人脸;拿不出书名的事不替它下判决("女诗经男楚辞")。
    • ⑯ 同类例子 ≤4 条,第 5 条起换层(2026-09-22 立):前四条全是"从古书摘字"时,第五条必须换成"压根不翻古书"(易烊千玺翻字典/杨幂的三次方)。观众在第四条就替你下结论"我知道了",不给新东西就是让人划走。
    • ⑰ 收口对观众开口,全系列统一用"你"(2026-09-22 善思兄终裁):全片只在收口段出现第二人称(前面讲别人的故事,全是第三人称);到收口第一次对观众说话,用"你",不用"您"。⚠️ 当天曾短暂改"您",善思兄当即退回"还是不用您了,用你"——敬语在这类口播里=官腔。改这句前先核全片有没有别的第二人称(有就必须统一)。
    • ⑱ 字幕超行先问"这段是不是讲了两件事",是就拆段——能拆不删(2026-09-22 立):次序仍是 ①放宽行宽 ②删虚字 ③拆段;但走到第③步前先判根因——一段塞了两件事时,行宽放到 960 也压不下来,拆段(内容一字不动、只多一次段间转场)远好过删字(内容永久损失)。09-22 段5(易烊千玺+杨幂,88 字)拆成两段后行数全达标,还顺带治好"第二屏名卡无处安放"。
    • ⑲ 名卡是提炼,不是复述(2026-09-22 立):名卡只出三行要点,不把口播原句抄上去(口播与字幕已念过;抄一遍=重复,还把名卡行撑爆)。
    • ⑳ 钩子别用否定式排除假答案,正面抛真问题(2026-09-23 立):想用"不是 A"开场时,先自问一句:改成正面问句是不是更好?09-23 期段1 原写"这个六一,跟儿童节没关系",删掉、改为正面问"哪六个一"。两个理由:①否定式容易滑成"不是A是B"的对举架子(=禁①假靶子);②把无关选项(儿童节)提出来,等于自己往歧义上引——观众本来没往那想,你一说他倒想了。钩子的力气用来抛真问题,不用来排除假答案。
    • ㉑ 例证一多,就按"来路"分层递进,不许平铺(2026-09-23 立):一期里举到第 3、4 个例子时,别再加"同一来路"的第五个——要挑来路最不一样的那一个,让观众对题目的理解跟着翻面。09-23 期五例的排列不是随手排的:取自门前(五柳)→ 取自地头(东坡)→ 取自别人的嘴(放翁,还是句骂)→ 取自佛经(六如),一层比一层远。⚠️ 第⑯条"同类例子 ≤4 条、第 5 条起换层"是数量闸门,本条是排序方法——换层要换在"来路"这条轴上,不是随便换个题材就算换层。
    • ㉒ 脚本的中文入参与出参,一律走文件、不走 stdout/argv(2026-09-23 立):PowerShell 会按本地码页解码子进程输出、也会把命令行里的中文字串转坏。09-23 两次踩坑:①_zp_check_words.py 用 argv 传中文字串 → 查出来 103 个字的判层全是错的(乱码字去查表);②*&gt; file 重定向 Python 输出 → 落盘成二进制,Read 读不了。定法:字串写在脚本里(不传 argv),结果由 Python open(..., encoding=&quot;utf-8&quot;) 自己写文件;PS 只负责启动脚本,再用 Read 读结果。
    • ㉓ 讲字义必须落字书,不许为配合画面替字添义(2026-09-24 立 · 善思兄追问后查实):说"某字是什么意思",只能取字书里有的义项。09-24 期讲韩愈「名愈·字退之」,为了让"反义"直观,把"愈"的"胜过、超出"顺手说成了"往前",好跟"退之"的"往后"凑成方向对立——"愈"根本没有"往前"这个义项(《玉篇》"胜也"、《广韵》"贤也"、《增韵》"过也";本义是"病好了",《说文》"瘉,病瘳也")。同一段还犯了另一头:写「这是长辈在提醒他」——取字者是谁、当时怎么想,一件文献都没有(="不写推导性断言"这条老规矩的又一例)。⚠️ 两个动作:①凡口播出现"X 就是 Y"式的字义解释,当场翻字书对义项,字书里没有的不许用;②想让"两端对立"好看,只能靠画面(箭头/对照),不能靠把义项引申成方向词。※ 后来补核出的两条更硬的支撑可作正面样本:"退之"两字《论语·先进》里现成有(「由也兼人,故退之」)、韩愈本人在《答侯继书》里就"进退"说话(「知吾之退,未始不为进」)——引原话,永远比替古人下判断稳。
    • ㉔ 引"前人考据"不得升格为定论(2026-09-25 立 · 善思兄追问"吴越国和宋朝是同一时代吗"那一轮逼出):南宋以后人对前代下的考据推断,说的人再硬气,也只是推断。09-25 期讲《百家姓》第二句"周吴郑王",照《玉照新志》写成「全是吴越国历代国王后妃的姓」——说死了。原话是"皆武肃而下后妃,无可疑者"(王明清自己说得很硬),但:①它是南宋人的考据,不是当时的记录;②查《吴越备史》,那几位(母周氏/庄穆夫人吴氏/后庭有郑氏/夫人王氏)多被记作侧妃、夫人,不是正妃,有学者因此认为"合乎逻辑,但还不够充分"。定法:口播一律带限定词("后来有人考证"),画面照引原话、一字不改,结论不下断言;学界有异议的,同一物料里须有对冲(文案里写明"有争议,不替古人下断语")。——本条是 ⑬"引名家结论前先查有没有人驳过"的同族:⑬ 管"引谁的话",本条管"把话说到几分"。
    • ㉕ "书的结构"类事实必须回原书数(2026-09-25 立):凡说"第几句/第几位/第几个字",回原书数一遍再写。09-25 期抖音文案把"孙"写成"《百家姓》第三句"——错:四字一句,"赵钱孙李"是全书第一句,"孙"是该句里的第三位。同类高危:对诗、词、韵文、口诀表说位置时尤其容易错。判据:凡是"位置词",别凭记忆写,回去数。
    • ㉖ 古今两套体系不可直接对比,用作钩子须显式挑明(2026-09-25 立):把现代统计(公安部《全国姓名报告》里王姓人口第一)与古代文本(《百家姓》里王排第八)摆在一起做钩子,必须点明"两者本来就不是一回事",否则等于默认了"《百家姓》该按人口排"这个错误前提——明白人一听就发现默认是假的。定法:钩子照用(反差好使),但一句话把前提挑明("它不是按人口排的");数据出处写进发布文案/评论区,片子内不摆数据、不摆出处(保节奏)。
    • 落点(改一句的代价):口播改动 → 名卡同步改(名卡常直接抄口播原句,只改口播=画面与音频打架;2026-09-22 段6 改"是查不到的"即连带动口播/名卡/金句栏/知识点表/节拍表/出处核对六处)→ 字幕行数预检 + 名卡行宽预检(两句都会变长)→ 重出片 → 抽帧复核 → 发布文案同步同一批句子(帖子体常抄口播原句)→ 重生成 docx → 云端 mp4/docx 两节点覆盖。只改一处=必漏一处。
    • ⚠️「不是A,而是B」三毒(同日增补 · 最高优先级句式禁令):毒不在句式本身,在用法——
    • 毒1 假靶子:前半句否定一个根本没人做过的判断(虚空打靶)。例「不是天意,是兄终弟及」——"天意"是谁的?靶子是自己编的 → 删前半句,只留 B。
    • 毒2 同义替换:A=B 是同一个意思,换高级说法硬凑转折 → 合并成一句。
    • 毒3 无关硬凑;变体 NNY「不是X。不是Y。只是Z。」 → 直接删。
    • 通用修法:直接说 B;或改递进「不仅是 A,更是 B」。好用法仅一种:真有人会做 A 这个判断,且 A≠B(如「不是你的容貌,而是你的灵魂」)。
    • ※ 与五之三「说服力三判据」同源:一律改为"给事实、让观众自己得出结论"。
    • 克制规则(同日增补):一段内同一副词不得重复(极其/极度/猛地/死死/狠狠/稳稳/仿佛/瞬间);无逻辑关联的比喻一律拆;结尾不用总结升华,用动作/场景收尾;连续三句以上同结构排比打断只留最强一句。
    • 工具:本地已装 humanizer 技能(~/.workbuddy/skills/humanizer-zh/,含 L1–L4 四层自检表)。口播稿与发布文案定稿前先过 L1 硬扫+L4 活人感终审(L4 一问:"像真人在聊,还是像 AI 在输出信息?")。
      1c. 编剧法门(2026-09-17 立 · 源自布莱克·斯奈德《救猫咪》· 必须"翻译"后才可用):
      > ⚠️ 前置警告:原书为电影编剧而写(110 页剧本 / 两小时)。我方 50 秒竖屏,能用的节拍只有 3–4 个——照搬 15 拍节拍表=把专业名词当装饰。以下只收"翻译成 50 秒后仍成立"的。
    • ① 救猫咪(本项目核心工具 · 直接对应 50 播放的病):主角出场必须做一件事让观众喜欢他/希望他赢;不救猫咪=观众不关心=划走。 我方讲的是古人 → 要让观众喜欢上那个古人或替他着急(朱元璋:数字名放牛娃→立最讲究的规矩)。反面:一上来砸知识点、砸陌生名字(小名期连砸黑臀/彘/犬子)=没让人喜欢谁、也没让人替谁着急,观众凭什么留下。
    • ② 观众是猫("捉猫咪"本义):越直接去抓,它越跑;得放诱饵让它自己走过来。 → 禁止开场直接喊"这个话题很重要""今天讲XX"(=伸手抓猫);要用有画面的具体钩子引(朱元璋名字全是数字/一棵树替他收了殓)。与"不是A而是B三毒"同源:直接下结论=伸手抓,给事实让观众自己得结论=放诱饵。
    • ③ 情绪色环:50 秒片至少要有 2 个情绪弯(惊奇→感叹/好笑→怅然)。反面=全程制度说明(情绪一条平线)。落点:每期写完标情绪曲线,只要一条平线就返工。
    • ④ 每段必须有情绪变化(原书第 12 条 · 硬规矩):每段须有开端/发展/结果,且必有一个"情绪基调戏剧性转变"的事件。我方 SEGS 分段验收标准——没有情绪转折的段落=废段。
    • ⑤ 泳池里的教皇:介绍信息/背景必须用轻松幽默的方式讲。我方=凡讲制度、典章、辈分诗,一律要找有趣的说法,否则=干巴巴念典籍(呼应总纲"神秘博学有趣")。
    • ⑥ 不要双重神秘力量:一期只设一个知识核心,不塞两套体系(五行相生+辈分诗+避讳同塞=观众记不住)。
    • ⑦ 铺垫不能太多:50 秒片子铺垫最多 1 句,第 2 句必须进正题(对"前 2 秒没留住人"的直接整改)。
    • ⑧ 小心那块冰川:危机不要缓慢逼近,要迅速=不要慢热,开头就要有事。
    • ⑨ 曲线公约:人物要讲出他的"变"(朱元璋从数字名到立规矩、崇祯从即位到煤山),不能只讲静态知识点。
    • ⑩ 原始动力(善思兄批注·按我方口径):原书主张"动机必须最原始(生存/饥渴/性/死亡恐惧)",善思兄指出这不对——人还有理想与更高层次需求(马斯洛)。我方口径:不必硬塞原始欲望,生存、家族、体面、信念都可以,讲清他为什么非这么做不可就够。
    • ⑪ "你好吗我很好":说话方式透露的信息跟内容一样多(不看名字能分辨谁在说)。我方=口播语气——讲朱元璋不能跟讲典章一个腔。
    • ⑫ 示而不讲:能用动作/画面说的,不用解说词("一棵树替他收了殓">"他自缢身亡")。
    • ⑬ 捶腿和眼罩:关键人物配具象锚好记(黑臀=屁股、朱重八=数字、煤山=一棵树)。
    • ⑭ 坏蛋还不够坏 / 后退:困难须略大于主角承受能力,人物碰壁才成长——讲古人要把他的难讲足。
    • ⑮ 转折、转折、再转折:至少一个转折(观众以为 A,接着发现不是 A)。
    • ※ 慎用:节拍表 15 拍(仅合集 ≤90 秒可借"推动/中点/终场"三拍意识)/第四面墙(原书明说会出戏)。
      1d. 出稿前必跑的"六问体检"(2026-09-17 立 · 从《救猫咪》法门提炼 · 50 秒片子专用):
      > 起因:用小名期(50 播放)实测,这套尺子比我自己的诊断更早更准——一次验出 5 个病,其中「救猫咪缺失」「真问题压到第 5 句」两条是我原先没诊断出来的。
      1. 救猫咪:开头 15 秒内,观众心里有没有"喜欢谁/替谁急"?(讲古人=要让人喜欢那个古人或替他着急;只堆陌生名字=不合格)
      2. 铺垫≤1 句:第 2 句必须进正题。真问题不许压到第 4 句以后(小名期压到第 5 句=2 秒跳出的直接原因)。
      3. 情绪曲线:至少 2 个弯,且不能是同一种情绪重复。写完标曲线,一条平线就返工。
      4. 每段有转折事件:逐段标出那个"情绪基调戏剧性转变"的事件,标不出=这段删掉。
      5. 至少一个转折:观众以为 A,接着发现不是 A(注意:方向错位/脱轨不算转折)。
      6. 一个知识核心 + 具象锚:一期只塞一套体系;关键人物配一个一眼记得住的画面(黑臀=屁股、重八=数字、煤山=一棵树)。
      > 配套:文案语气过 humanizer(L1 硬扫+L4 活人感终审);句式禁「不是A而是B」三毒;先问姿态——"这句我是想说给人听,还是想说给分数听?"
      1e. 50 秒短版节拍表(2026-09-17 立 · 把《救猫咪》15 拍压进竖屏 50 秒):
      > 缩法推导(非拍脑袋):原表 15 拍 / 110 页 / 约 110 分钟。我方 50 秒 ≈ 原表第 12 页(推动)到第 55 页(中点)那一段。「铺垫 1–10 页」在我方=一句话;「第二幕 25–55 页」=整片主体;「结局+终场」=最后 3 秒。保留 5 节点,其余合并或舍弃。
      | 节点 | 时长 | 对应原表 | 职责 |
      |---|---|---|---|
      | 1. 钩子 | 0–3s | 开场画面+推动合并 | 两句内给一个具体画面/事实,让人喜欢这人或替他着急(救猫咪)。不许下结论、不许说"今天讲"。全片最贵的 3 秒。 |
      | 2. 转折 | 3–10s | 争辩+第二幕衔接点合并 | 抛出真问题(不许压到第 10 秒后)+一个"意料之外"(以为 A,发现不是 A)。这里定生死。 |
      | 3. 主体 | 10–35s | B 故事+游戏+中点合并 | 讲最有意思的那段(故事/典籍/字例),不是讲道理,是把最好玩的东西端出来。有一次情绪高点。 |
      | 4. 低谷 | 35–45s | 坏蛋逼近+一无所有+灵魂黑夜合并 | 把难讲足——他碰的壁、他的代价。情绪最低点,也最有回味("一棵树替他收了殓")。 |
      | 5. 收口 | 45–50s | 结局+终场画面合并 | 一句落点(与开头呼应的对照)+固定口令+提问。不许总结升华。 |
    • 三条映射律:①情绪曲线 好奇→惊讶→痛快→沉/怅→回味,同一情绪不许连续出现两次;②每段须有一个"情绪基调转变"的事件,标不出=删;③一期一个知识核心。
    • 超时压缩:先砍第 3 段枝叶,再砍第 2 段铺垫,绝不砍第 1 段(钩子)与第 4 段(低谷)——这两段是数据命门(小名期 50 播放就塌在第 1、2 段)。
    • 合集(≤90s):每条目当一次"2→3→4"微循环,条目之间用钩子串("还有更狠的")。
      1f. 九问体检(2026-09-17 立 · 源自《救猫咪》第七章"影片出了什么问题"· 成稿后逐条勾):
      > 这 9 条讲毛病不讲结构,长短片通用、不必缩。一条不过就改。
      1. 主角主导吗? 那个古人是自己做了选择,还是被当标本介绍?("朱元璋决定立规矩">"朱元璋定了规矩")
      2. 在"说情节"吗? 有没有为交代背景而干讲制度?→ 示而不讲。
      3. 困难够大吗? 他付了什么代价?困难须略大于承受能力。
      4. 有转折吗? 是否一条直线?至少一个"以为 A,发现不是 A"。
      5. 情绪有色环吗? 至少 2 弯且不同种(不能平、不能只有好笑)。
      6. 口播分辨得出是谁吗? 讲朱元璋的语气和讲典章一样吗?
      7. 人物碰壁了吗? 有过程吗?(碰壁才成长)
      8. 有具象锚吗? 一眼记得住的画面(黑臀=屁股、重八=数字、煤山=一棵树)。
      9. 动机立得住吗?(按善思兄口径改,不照抄原书) 原书要"原始驱动力",我方不照抄——生存/家族/体面/信念都算,只要讲清"他为什么非这么做不可"。
      > 三道体检顺序:①出稿前六问(1d,结构与情绪)→②九问(本题,毛病与细节)→③humanizer L1+L4。三道全过才交稿。
      2. 语速 TTS +18% 起(2026-10-01 起放宽为 +18%~+30%,随稿长调)(配音 zh-CN-YunjianNeural):因有字幕、观众可看,语速可略快;不再是早期默认的 −8%(早期 build_wuke 的 −8% 已作废)。节奏偏慢的成片跳出率偏高、完播率偏低,提速是实测整改方向。
    • ★时长换算口径(2026-09-27 立 · 实测校准):该音色 + +18% 下实测 4.50 字/秒(09-28 期《皇帝们的名字》362 字 → 80.40s;09-29 期《文正与文忠》379 字 → 85.2s,均合 4.5 上下)。字/秒随标点密度与断句浮动 → 预估一律取保守值 4.50,宁可先估长再删字。
    • ★试听包=我方自查动作(不外推 · 2026-09-28 两次明令后定死):每期 fork 一份 video_assets/_tts_&lt;期&gt;.py(只换 SRC 口播稿路径/OUTDIR/重点句),产物 published/YYYY-MM-DD/试听/:逐段 + 全篇顺接 + 重点单句。重点单句按当期风险挑:长串谥号防吞字/典籍金句防读破/人名多音字/跨期接口句。
    • 🔴 试听是我自己的环节,不是交付物(善思兄 2026-09-28:「以后不要给我 MP3 我不需要」→「你自己试听,不要发给我」):音频不推、不列卡片、不点名让他听、不报文件名;结论一句话文字交代即可("本期风险读音两处,璟按 jǐng,我核过了")。
    • 我方"试听"实落三件:①逐字标拼音核多音字/生僻字;②音轨非静音非截断(volumedetect);③重点片时长与段落对齐。本机无 ASR → 风险读字在文字层先解决(能换词就换词)。
      3. ★时长标准(2026-09-28 善思兄拍板「50 秒」· 数据驱动 · 硬规矩):单条目标 50 秒(45–55 秒),硬上限 60 秒;字数 200–230 字(50s × 实测 4.50 字/秒),硬上限 250 字;合集类上限 ≤90 秒。
    • 依据:抖音周数据完播率 2.5%(低于 97% 同类)+粉丝净增 −2(低于 100% 同类),而播放 1,519 超 93% 同类;小红书单条平均观看 14.1s ÷ 80.4s = 17.5%、5 秒完播 34.4%,而封面点击 11.8%、画质 4.2 双"优秀" → 病在片长与开场,不在制作。完播率对片长极度敏感,同类发 30–45 秒天然占优。
    • 四条派生:①一期只讲一个反转(大题拆期;TOP3 全是"一条一问")②矛盾句 0–3 秒落地,人名/陌生名词不占开场 ③金句落 40 秒前 ④不做前瞻/回指。
    • ⚠️ 旧口径(≤2 分钟/理想 1 分钟/合集 ≤90 秒)作废。压缩仍以"删冗长铺垫、总纲压成一句"为主,不砍硬知识点(典籍原文/字例/礼法点)。
    • ⭐⭐ 2026-10-01 善思兄复核(看完《免贵姓×》加强版 54.58s/RATE=&quot;+30%&quot; 之后):原话「以后就压缩到一分钟内就行,这个语速可以」。三条落定:①片长上边界仍是 60 秒,但不必再往 45–50 秒死压,45–60 秒都算达标;②语速 +30% 这一档可接受,不再怕"太快";③原则=片长优先靠提语速压、不靠删字——10-01 实证:稿 266 字一个字没删,靠 +18% → +30% 压进 54.58s(详见 _tts_probe.py 实测:+25%→57.5s、+30%→54.5s)。
      合并后一句话:单条 ≤60 秒(目标 45–60 秒);字数 200–230 为主,稿经善思兄改定不许删字时可上到 260 余字;语速 +18%~+30% 随稿长调。

五之三、第一帧封面版式铁律(2026-09-16 善思兄抓到"封面和五可不一致"后立)

> 起因:善思兄 2026-09-16 用成片第一帧当封面,发现六避第一帧与《五可总览》不一致——"你这个第一帧,我用来当封面的,并没有和昨天的五可一致!而且要对齐整齐。" 系列内封面各长各样,发出去不成套。

铁律:同一账号/同一系列的所有影片,第一帧(=封面)名卡必须逐项一致、对齐整齐。 第一帧走静态 render() 段(不用动态 Ken Burns),参数按下列统一模板,跨片照抄、一个字都不许改位置:

元素 参数(统一模板) 说明
栏目名 (W/2, 150),size=36,INK,stroke_width=2 恒定
主标题 y=700,size=200,INK 结构必须对称(见下)
副标题 y=930,size=80,SOFT 同一句法(如"《左传》申繻X禁")
第三行 y=1050,size=46,RED 句式须与前作对仗(见下第 3 条)
印章 (70, H-330),seal(),倾斜 −2° 恒定

> ⚠️ 注意偏移:render_text_layer() 里实际写的是 d.text((W/2, yy+200), ...),即上表 y 值 +200 才是屏幕实际坐标(主标题实际 900、副标题 1130、第三行 1250、印章 1590)。改参数时按上表改,别被 +200 绕晕;核对两片是否一致时,比的是上表参数。

> ⚠️ 参照物必须是"已发布成片实物":对齐时抽的是 published/&lt;日期&gt;/三玄-XXX-&lt;日期&gt;.mp4 的第 0 帧(成品),不是脚本草稿、不是更早的单条片。发布版脚本若未再改动,脚本参数即等于实物参数,可交叉验证。

  1. 主标题必须字数/结构对称(本铁律最关键):主标题走 fit() 自动缩字号,字数不同→缩放后视觉大小差一大截(五可"五可 · 一次讲透"9 单元缩到约 113px,六避初版"起名·六禁"5 字只缩到约 182px,截图当封面就是两套)。统一用「X · 一次讲透」句式(五可/六避/三才五格…),保证两片主标题宽度一致。 ⭐2026-09-28 补充:主标题超过 6 字必须拆两行——fit() 是"缩字号迁就行宽",字数一多就把字压小(09-28「五百年前是一家?」8 字 ×200 号 = 1600px,被自动缩到约 112 号,第一眼冲击力比 09-26「全是单名」4 字满格 200 号弱一半)。定法=每行约 4 字、各占 200 号,长标题拆两行(五百年前 / 是一家?,每行 800px ≤ limit 910),副标题与第三行顺次下移到 1000/1088(仍在字幕带 1500 之上)。判据:fit 缩小到 <150 号即须拆行。 另:拆行后衬底带要跟着加宽并改平顶(见下方"衬底带"条),否则两行主标题一浓一淡。 ⭐2026-09-28 再补:封面压短句不许省虚词凑字数——当天把口播「你以为金庸在起名字,其实他在翻古书」压成封面「你以为他起名/其实他先翻书」,省掉了"在"、还多出个"先",把转折句读成先后顺序,善思兄直接判"不通顺"(方向保留)。定法=宁可降一档字号,也不动语法;字号-字数换算:每行 4 字=200 号满格(800px)、5 字≈182 号、6 字≈152 号、7 字≈130 号(limit 910)。 ⭐⭐2026-10-06 补:两行主标题必须"字号一致"——上面那组换算是单行内的,不是"每行按自己字数各取一档"。10-06 封面「你的姓」(3 字→fit 后 200 号) /「也都有典故」(5 字→被压到 180 号),两行两套字号,善思兄判"字有重叠 而且各自比例不对 忽大忽小"。定法:①先取"最长那行不越限"的字号,两行同用这一个号(本例 180 号同用);②短行用"字距 track"补齐宽度,不许用不同字号凑行宽——nameplate() 第 5 位参数 track(逐字排、按总宽居中),10-06 用 (&quot;你的姓&quot;,180,INK,700,90),行一 700px/行二 877px(旧版 578/877);③两行字号 200 时 700/870 行距只剩 9px 字身空隙(贴一起),行距按字身留 ≥35px 空隙排(10-06 改 700/890、副标题 1020)。 ⭐⭐⭐2026-10-06 再补(最重要):封面主标题=亲定标题"逐字原样",不许为排版删字改字——上一版把亲定标题「你的姓,也都是有典故的」拆两行时,为凑"每行 ≤6 字",第二行写成「也都有典故」,「是」「的」两字被省掉,善思兄看封面直接问"怎么就不按我说的做标题呢"。定法:①封面主标题必须与亲定标题逐字一致;②一行放不下就降字号(10-06 第二行 7 字 → 128 号、w=896;第一行「你的姓」同 128 号、自然居中 w=369),绝不为凑字号档/行宽好看而删字、换字、改虚词(与 09-28"不许省虚词"同源,此条更硬:连整字都不许省);③两行仍守"同字号",短行 track 可选(10-06 终版取自然字距);④行距按字身留 30–40px(128 号 → 700/860、副标题 1020)。⚠️连带同改:成片文件名与文案(md/docx)文件名一律用亲定标题——10-06 旧名"三玄-你的姓是祖先的工牌"/"发布文案-你的姓也是祖先的工牌"全部改名,本地与云端同节点覆盖。 ⭐2026-10-10 补:短行字距(track)要有上限——"短行补齐到长行宽"这条公式在字数差大时会算出离谱字距:10-10 封面原「诗经里的那些」(6 字)/「好听的男生名字」(7 字) 用 track=26 正好;善思兄 12:0x 令删第一行的「的」→ 5 字 vs 7 字,同公式算出 track=64(≈半个字宽,像「诗 经 里 那 些」)。定法=TRACK_MAX = int(TITLE_SZ * 0.32),track = min(公式值, TRACK_MAX);10-10 封顶 40,行宽 640→800(长行 896),视觉仍齐。⚠️ 另:只改封面≠改标题——他点的是封面那两行字,后台标题仍按亲定原样,两处差异要在文案备注里分开记。
  2. 三行一律居中(PIL anchor=&quot;mm&quot;,x=W/2),y 位置照模板,不各自为政。
  3. 第三行句式必须与前作同型:五可用「信 · 义 · 象 · 假 · 类」(列举式),六避就必须用「国 · 官 · 山川 · 隐疾 · 畜牲 · 器币」(同为列举式)——不可一个列举、一个金句(六避初版误填"大物不可以命",善思兄 2026-09-16 追问"对账整齐"即指此)。列举行宽度以 maxw=W-180=900 为准,超了 fit 会缩字号、破坏一致;本项目最长行(六避 10 汉字+5 组" · "≈735px)不触发缩放,可放心用满。
  4. 第一帧按惯例不注拼音(注音只进后续段名卡与发布文案;繻 xū 不进第一帧)。
  5. 改版式后必须抽帧目视:ffmpeg -ss 0 -i &lt;mp4&gt; -frames:v 1 -q:v 2 out.jpg 抽第一帧,与新片并排比对(video_assets/extract_compare_frames.py 一次抽两片 + video_assets/make_side_by_side.py 拼成一张左右对比图),图文都对齐才算过。
  6. 本机 jpg 抽帧可直接读图目视(png 原图有时被内容过滤,抽帧 jpg 可读)——这是封面验收的唯一可靠手段。

五之五、史实专条:明皇室五行命名口径(2026-09-17 立)

> 起因:善思兄问「朱棣和朱允炆有没有相生相克」「土木堡之变和名字相生相克有没有关系」,要求「仔细查,别自己编」。

凡涉明代皇室名字与五行,照此口径讲:

  • 朱元璋的制度里只有"相生",没有"相克"。 三条规矩=双字名 + 中间字照辈分诗走 + 末字按木→火→土→金→水单向相生轮偏旁。"相克"这个维度从来不存在——所以"谁跟谁相克"这类说法从制度根上就不成立,不必另开一条去辩驳,讲清制度本身就够了。
  • 同五行=同辈,不是凶兆。 相邻两帝五行相同,只说明兄终弟及/旁支入继(朱祁镇·朱祁钰同为金;朱厚照·朱厚熜同为火;朱由校·朱由检同为木),是制度正常结果。
  • 朱棣(木)与朱允炆(火)是差一辈的叔侄,不存在"相克"一说。儿子辈全木(朱标/朱棣),孙辈该火(朱允炆/朱高炽=同辈堂兄弟)。钥匙:按皇位顺序读会出现重字(木→火→火→土→金),按父子世代读才是完整相生链。
  • 可用金句(2026-09-17 定稿 · 用于视频):
  • 「名字越整齐,历史越乱。」
  • 「朱祁镇的『镇』字镇不住土木堡的风沙,朱由检的『检』字也没能检住大明的江山。」(善思兄选定 A 行)
  • ~~「镇不住风沙/检不住江山/替他收了殓」~~ 已撤(2026-09-17):「检住」=双关硬凑、「名字一直生,江山没有」=AI 腔(善思兄:"很怪,很AI,很不通顺")——病根与自检法见五之二 1b「AI 腔防线」。
  • 收尾定稿:「他给每个儿子都排了二十个字。用到第十个,大明就没了。字一辈一辈往下排,江山却没跟着走下去。」
  • 整条线(明皇室五行期骨架):开场「朱元璋原来叫朱重八,他爹叫朱五四,他爷爷叫朱初一——一家子几代人,名字全是数字。所以等他当上皇帝,他要给子孙起最讲究的名字。」→ 中段「中间那个字,照他写的辈分诗排;最后一个字,按木生火、火生土、土生金、金生水、水生木——只讲相生,不讲相克。」→ 收尾(上条)。※ 重八/五四/初一 出片前再核《明史》先世名讳,稳妥口播=「他家几代人,名字都是数字」。
  • 「朱元璋给子孙排好了二十个字,用到第十个,明朝就没了。」(燕王诗十字至"由"字辈止 · 出片前须复核数目)
  • 「『高瞻祁见祐,厚载翊常由』——十个字念完,大明就翻到最后一页了。」(善思兄认可 · 收尾用;画面感强,把王朝当一本书合上,不喊口号)
  • 📌 备料·「敛」的字义(可独立成篇):「敛」通「殓」,本有死亡入棺之义——《说文》"敛,收也";《释名·释丧制》"衣尸棺曰敛";《礼记·檀弓下》"敛,下棺于椁";古汉语字典④"通'殓'"(例《祭十二郎文》"敛不凭其棺")。「殓」即由「敛」分化而来。⚠️ 但朱由检用的是「检」(木字旁,燕王"由"字辈该用木行),史实不可换——换了五行就断。故「敛」只作修辞置于句尾,不作名字改写。
  • 「朱元璋自己叫朱重八,他爹叫朱五四,他爷爷叫朱初一——一家子数字名。所以等他坐上龙椅,他要给子孙起最讲究的名。」(最适合开场钩子)
  • ⚠️ 金句双关必须落在字的实义上:初稿写"朱由检的『检』字也拦不住煤山那棵树"被退回——「检」无"挡/拦"之义(检=检点、检查),硬凑双关不成立;改用本义"检住"(检点、收拾)才对得上。凡"某字镇不住/管不住 X"式金句,先确认该字是否真有此义。
  • ⚠️ 说服力三判据(2026-09-17 立):有说服力=①给观众不知道的事实 ②结论让观众自己得出 ③说清为什么(制度逻辑);没说服力=①跟假想敌辩("不是…是…"句式)②结论直接拍给人、无落差 ③只说"不是什么"。凡"不是 X,是 Y"句式,一律改写为"给事实让观众自己得结论"。
  • 反例(善思兄判"没有说服力"):「皇位上两个皇帝名字偏旁一样,不是天意,是兄终弟及。」
  • 正例:「同一个爹生的兄弟,名字里最后一个字,偏旁一定是一样的——朱祁镇、朱祁钰,都是金。」

> 取舍原则(善思兄 2026-09-17 明确「你得考虑有没有意思」):只讲有意思的,不写"辩诬"。 制度本身(相生规矩、同五行=同辈、叔侄世代)是有内容的知识,讲它自洽成立、伪说自然不攻自破;而"某某说法是附会""史料里没这回事""靖难土木堡与名字无关"这类辩驳性内容没意思,不写进去——等于替谬论做广告。

六、常见坑

坑 现象 处置
PowerShell 不回显 stdout 命令"没输出" 输出重定向到文件再 Read
Bash 工具不可用 exit 127 一律改用 PowerShell
名字撞公众人物 被用户一眼认出 核查前置(第一节)
底图重复生成 白花额度 底图文件名固定 bg_mountain.png / bg_bamboo.png,跨期复用
名卡长句出画 标题被裁 统一用 fit(text, max_w=W-170) 自动缩字号
印章太歪 / 位置被平台挡 / 字幕像黑条 善思兄退回 印章固定左下角、倾斜 ≤2°;字幕=白字描边+阴影、整句随语音同步、底部柔化渐变托底(须用 Image.alpha_composite 真合成;直接在 RGB 图上画带 alpha 的线会变实心黑条)
长句字幕左右溢出 / 多行不居中 善思兄退回(2026-09-14,抓的是"…起个"好名"一模一样——"那句) 换 wrap_sub 像素宽度版(SUB_MAXW=780,左右各留 150px)+ 每行单独 drawtext 各自 x=(w-text_w)/2 居中;废弃"按标点断行 / 单行 ≤14 字"的旧折行写法
金额显示成 □ 半角 ¥ 在楷体无字形 一律写全角 ¥
文字像被"挡线"划断 说明文字压在背景山脊/花枝上,或红线离文字太近 说明区集中在顶部干净底子;线与文字间距 ≥30px;双红线右端收在印章左侧
交付位置 用户明令 绝不放桌面(公用电脑),放项目工作区
交付范围 善思兄 2026-09-14 拍板(晚修正;2026-09-28 再修卡片口径) 每次只交付善思兄两项、且只弹 2 张卡片:①成片视频 .mp4(常规不另出封面文件;平台判「封面不佳」时才另出上传用封面图 3:4/4:3,且仍不占卡片——2026-10-10 立) ②发布文案 .md(⚠️ .docx 只作上云用、不弹卡片——善思兄 09-28:「卡片一次最多 2 张:成片 mp4 + 发布文案 MD」)。没要就不主动弹;口播稿 .md、封面 .png、试听音频、报告文本一律不弹。《起名视频制作规范》《起名项目对话纪要》等内部文件只上云、不推送
AI 古画带英文落款 成片里出现英文/乱码字(善思兄 2026-09-14 抓到) 出图即硬约束"零文字/零英文字母/零落款/零签名/零水印",出图后逐张目视确认再合成;已带字的旧图删掉重出。"目视"可落地:ffmpeg -ss &lt;t&gt; -frames:v 1 out.jpg 抽帧后直接读图(jpg 可读,AI 原图 png 有时被内容过滤挡下,转 jpg 或抽帧即可)——这是本机唯一可靠的画面验收手段
只落本地、没上云 换设备问"昨天做的视频"调不到(善思兄 2026-09-15 报:"你也没上云啊") 每期产出后必须上传云端成片库,见第九节
同文件多处 Edit 并行提交 某一处改动"写了但没生效"(后写者以它读到的旧内容落盘,覆盖前一处) 同一文件的多处编辑必须逐一串行,不可在一条消息里并行发;改完 Read 复核。2026-09-15 实际踩到:台账「待写」生效、「封口节」被吞,须单独补回
台账 / 框架互相撞车 同一主题在两份文档里各排一次期、或口径不一致 二者互为镜像,增删须两头同改:选题进/出、系列收官、"不再单做"、例证更正都要双写;两份各自也别留重复章节(框架曾有两节「质量红线」)
AI 古画出成横版 竖屏成片里人物被「拉长」变形(善思兄 2026-09-15 抓到:"里面图片好几张都被拉长了") 出图统一 1024x1536 竖版,与存量素材对齐(存量人物图全是 1024×1536,本轮两张横版 1536×1024 是最惨的变形源);竖屏成片不用横版素材
ffmpeg 写死尺寸缩放 scale=1200:2133 无视原图比例强行拉形(连竖版图也被轻拉 1.19 倍) 一律 scale=W:H:force_original_aspect_ratio=increase,crop=W:H —— 只裁不拉;改完必须抽帧目视确认
名卡被字幕压住 名卡第三行与字幕首行重叠、互相"挡"(善思兄 2026-09-15 抓到) 字幕自 y=1500 向上排、每行 54px,行数是口播字数的函数——字数就是版式安全的前提:2026-09-19 明皇室首版段2 口播 150 字 → 字幕 12 行(顶边 852),把名卡二三行整片压掉(善思兄"注意格式")。故立硬约束:每段口播 ≤6 行(静态段约 85–90 字、动态段约 85 字);名卡三行统一 yy=700/860/960(底边 1025;09-19 用 630/800/900,09-20 因与图式相撞再下移);段6 网格型名卡最底收至 990;过 100 字即拆段(明皇室把原"段2·两样规矩"拆成"辈分/五行"两段)。出片前跑 video_assets/wuke_all/check_layout.py 逐段算间距(<30px 即改)+抽帧目视(extract_frames.py)
名卡大字压住图式小字(2026-09-20 抽帧抓到) 自绘图式底部的小字行被名卡大字压住约 12px:段2"黄帝/炎帝/大禹/秦始皇"(y552)、段3"周鲁晋郑/杨宁温/孟季游丰"(y566) 两头留量:①自绘图式元素底边一律收在 y≤562;②名卡下移至 700/860/960;③两头各留 40px+。改图式或改名卡任一处,必须同时复核另一处
⭐图式还有"上边"和"左右边"两条安全框(2026-09-28 抽帧抓到 · 上一条的同源坑) 只盯了底边,上边与左边同时翻车:①上边撞栏目名——图式顶部说明画在素材 y180~190,运镜推近到 z1.10 时该 y 映射到成片 y≈147~168,正落在栏目名「三玄 · 名字里的典故」(W/2,150,36号) 的带里,两行字叠成一坨(段3"牌位进祖庙 · 按位次排开"、段5"越加越长"最重);②横移裁掉左边缘——图式段照搬实景段的大横移(pe 取到 -0.80),x=&#x27;(iw-iw/zoom)*pe&#x27; 出负偏移、视口越出画布左界,段5 左侧标签与色条被切掉半边 图式段专属三边安全框(都按 1024×1536 素材坐标):①上边 ≥250(成片 ≈244,稳落在栏目名底线 168 之下);②左右 ∈ [190, 850];③底边 ≤470(成片 ≈552——比上一条的 480 再紧 10:实测素材 499→成片 594→只剩 30px,图式"贴住"名卡,太挤)。⚠️ 09-28 二次实测(必读):图式底边的成片落点随运镜分镜浮动(同批素材 460/466/468 → 成片 553/561/559,只抽"段中点"一帧是抽不到最深点的),同帧量得名卡 200 号大字墨迹顶 624~625(零星描边自 619 起)→ 真实间隙 63~72px,故上一版的"≥70px"修订为 ≥60px 即合格。配一条:图式段的横移 pe 一律收在 [0.32, 0.68],不照搬实景段的 ±0.8/满余量——图式有明确边界,不像实景照能容忍裁切。另:图式里别再标一次名卡已有的字(段3 红框旁注"太宗"、名卡大字本就是"太宗"=自撞),删注留红框高亮即可
图式底边"坐标系没换算"(2026-09-28 抽帧抓到 · 上一条的隐藏坑) 上一条 y≤562 是成片坐标,可自绘图式画在 1024×1536 素材上——运镜先 scale=1200:2133(放大 1.389×)再 zoompan(约 ×0.98),素材 550 → 成片 663。09-28 段3 红牌「王」因此与名卡「王」(墨迹顶 625)重叠 38px,两个"王"几乎贴在一起 素材坐标底边一律 ≤470(= (562/0.98+87)/1.389;09-28 先立 ≤480,同日实测素材 499→成片 594、与名卡只剩 30px,再紧 10px 收到 470)。验收两测:①量素材 PNG 的图式底边(素材层无名卡层、精确);②量成片 y558–604 空白带(⚠️ 09-28 修:原取 y585–620 会把名卡 200 号大字的描边边缘算进来、误报"图式侵入名卡区",下沿务必收到 604)。⚠️ 别把名卡大字当成图式——09-28 初版脚本扫 y60–700 就误报过"图式最底行 699"(那其实是名卡「王」字的顶部)
封面衬底"单峰带"让两行主标题一浓一淡(2026-09-28 抽帧抓到) soften_band() 原曲线 a=amax*(1-\|2t-1\|^1.5) 是单峰:带 (630,1050) 下,主标题第一行 y700 处 alpha 仅 0.28、第二行 y870 处 0.59;副标题 y930 处 0.45 但已压在深色门板上——09-28 副标题「同姓未必同源」几乎糊在木门上 封面段改平顶带(flat=True:带内除两端 110px 羽化外一律 amax)+ 带加宽到 (560,1150) 罩住两行主标题+副标题+第三行,amax=0.62。判据:主标题任一行处 alpha 与带中心差 >0.15 即须改平顶。
⭐名卡宽度"卡线"(2026-09-23 立 · 09-24 预检抓到) 名卡第一行大字用整数字号(130)时宽度正好压在 limit=910 上,左右余量仅 70~85px,视觉上像"顶到边" 降一档更稳:09-23 段3「名 · 字 · 号」130→120;09-24 段7「一个字 配一个字」130 号时 w=975 直接超限(_nameplate_w.txt 预检报出)→ 降到 110(w≈825)。做法:名卡宽度预检写进 build 脚本(导 _nameplate_w.txt),凡 w ≥ limit-20 即主动降一档——不要等"超了才改"
⭐栏目名糊在深色画面上(2026-09-29 抽帧抓到 · 与上一条"名卡底衬"是一对) soften_band 只罩名卡区(y630–1050),顶部栏目名没人管:它是 SOFT 色+白描边,压在深色元素上就糊。09-29 段2 旧书院图上部是深色木梁廊柱,栏目名整行糊掉;段1 石牌坊的松针也有干扰 加 top_band():必须先衬底、再画字。⭐⭐ 2026-10-02 两条修正(必读):①y0 必须给 0——旧默认 (76,236) 会在 y0–76 留一条没被提亮的原色暗条,成片顶部呈"暗条+亮带"两层硬分界(10-02 逐 20px 行带实测 0:149 → 60:153 → 80:181 → 100:209,跳变肉眼可见);定式=top_band(img, y0=0, y1=236, amax=0.78, feather=45)(羽化必须 45px,26px 时带的上边缘看得出分界)。②判据改"逐段实测"——旧文"暗像素比 >0.10 即须加"太松(会把浅色纸底上的零星墨字全算进来);定法=逐段量栏目名条(y120–185)的暗像素比(<140),>0.55 才加。10-02 实测:段1/2/4/5 浅色纸底 0.017~0.185 → 不加;段3/6/7 兰亭序·中秋帖深色真迹条带 0.880~0.904(均值 84.6~132.6)→ 加(提亮后 205~216)。一句话判据="栏目名那一条像素带是什么颜色",不是整幅亮不亮(10-01 玉皇冕旒/朱元璋翼善冠都落在浅色纸上,即未加)。③实现:static_layer(..., top=(i in TOPBAND_SEGS)) 按段下开关,出片前跑 _topscan_zz1.py 逐镜量化复核
⭐⭐书法/古画类素材:公有领域真迹路线(2026-10-02 首立) 要做王羲之父子,画面必须有《兰亭序》——而书法真迹不能 AI 生成(生成的是"看着像字、其实不成字"的笔画,直接违反"画面不现伪文字")。双闸判据、素材台账都没现成答案 路径:古人作品早过版权期 → 从 Wikimedia Commons 取高清真迹(属史料性素材,与 people/ 人物像同理)。取图脚本 _fetch_shufa.py:commons.wikimedia.org/w/api.php → list=search&amp;srnamespace=6 搜 File → prop=imageinfo&amp;iiprop=url\|size\|mime\|extmetadata;只挑 jpeg/png/tiff/webp,排除 djvu/pdf(CADAL 等古籍库的 djvu 会被当 jpg 下下来,实为整页书影);单张 timeout 25s/下载 300s/重试 2·3 次、每张下完立刻 flush 写盘(首轮无增量写盘被 SIGTERM 杀掉、前功尽弃);UA 留邮箱。⭐⭐ 三条铁律:①长卷必须取原图——iiurlwidth 按宽度缩略会把高度一起缩掉,而裁竖条要的正是高度像素(40MB 的 28549×1300 也照取);②只裁不拉 + 1024×1536(裁框按 TW/TH=1024/1536 比例再等比缩,绝不用 scale=W:H 写死);③等比放大 >1.6× 即弃用(伯远帖高仅 531px → 须放大 2.89× → 弃;中秋帖 6219×531 同因弃、换 25433×2160 的 png)。出片前跑 _cut_preview.py(每图裁 5 条竖条横排、标"条宽/放大倍数/❌放大过头")目视挑框。⭐ 为什么长卷好用:长卷是竖排文字,裁一条 2:3 竖条正好一两列字、字头字尾都在,天然适配竖屏。⚠️ 真迹段栏目名普遍偏暗(旧拓本尤甚)——10-02《兰亭序》《中秋帖》条带暗像素比 0.88~0.90 → 必须加 top_band,每次都要跑逐段实测,别默认"真迹=纸色浅"。真迹无 AI 水印、不用去水印,但要目视确认无第三方水印/条码/站点标记;避让题材表要把真迹整类列入
⭐满幅 props 压名卡读不清(2026-09-20 立) 新出四张 props(燧火/巢居/农耕/青铜拓片)全是满幅构图、中下部无留白(AI 留白指令实测 4/4 失效),段5 密金文上"男人称氏 女人称姓"几乎读不出来 不指望 prompt,加底衬:soften_band(img, y0=630, y1=1050, amax=0.80)——名卡区压一条两端渐隐的米黄横带(中心最浓)。凡 props 走 still/pan 版式必加;自绘图式底已压米黄(chart_bg blend 0.52)不加。props 出图后必须目视确认下部是否真空,不空就靠柔化带兜
⭐加字导致字幕超行(2026-09-20 立) 段6 收口句改一版加了 6 字,字幕从 6 行涨到 7 行——若不预检,渲染完才发现要重跑 字幕行数预检前移进 build 脚本(&gt;6 直接 SystemExit,并把断行明细导出 _sub_lines.txt 供判改哪句),不通过就不跑 TTS。同理加素材存在性预检(key 漏写 props_ 前缀时当场挂,别等渲染一半)。新片脚本一律保留这两道。超行处置次序:①先放宽 SUB_MAXW——只动版式、不动内容(09-20 由 860 放到 900,段6 回 6 行、段5 顺带由 6 行收为 5 行)②仍超再删虚字 ③删到伤内容就拆段。明细 _sub_lines.txt 要"每次预检都写、带结论行"(2026-09-20 修:原先只在超行时才写,预检通过时留在盘上的是上一次失败时的陈旧明细,事后查看会误判)
收口句一句叠两个时代方向(2026-09-20 善思兄"这句不通顺,你检查一下") "你写的那个'姓',接的正是周代的'氏'。那你知道你的姓,是源于哪一氏吗?"——上半句讲秦汉以后(氏变姓)、下半句换先秦口气(姓分出氏),观众来回倒;且"你的"一句两见;更要命的是这问观众答不上(老姓已亡、"李"本身就是"李氏") 收口提问两条硬标准:①一句里不许叠两个时代的方向;②观众必须答得上,答不上=假互动。修法:把问点挪到观众手上有的东西(回扣前面讲过的"以国/以邑/以官/以字为氏",家谱堂号上写着这条)。⚠️ 但作者本人的修订版往往更好:善思兄终裁「那你家的这个姓,你知道当初是源于哪一个氏吗?」——最早那版之所以绕,只差"当初"两个字:加"当初"=把时序拨回先秦,与上半句不再打架,问的正是"最早出自哪一支氏"。结论:遇"方向叠一句",先试加时序词(当初/最早/后来)再谈换问法。 另备"余味版"(不问、留白收)与"动作版"(回家翻族谱看堂号)。作者亲定的句子=定稿,不再擅改
注音过度 / 漏注 两向都犯过:①给「昌」「同」这种常用字标拼音,善思兄 2026-09-15 发火"为什么标拼音,我真服了";②2026-09-17 通天谱一期漏注——名卡漏彦/毓、文案漏懋/彝,被追问"生僻字都加拼音了吧" 只给生僻字/多音字注音(圩 wéi、繻 xū、彘 zhì、臀 tún、胤 yìn、彦 yàn、毓 yù、懋 mào、彝 yí);昌、发、友、丘、同、虞、弃疾、衍、肇、锡、绪、宪、昭、庆、繁、祥 等常用字一律不注。注音落两处、缺一不合格:①画面名卡行 ②发布文案(可收藏字表、字辈原文、引文同样注)。绝不进 TTS 口播文本(否则语音把拼音念出来),字幕=口播原文故亦不注。每期开写前先在 build 脚本头部列本期生僻字清单,成稿后逐字回对,漏注即返工。判定改查表(2026-09-17 善思兄追问"你是怎么判断生僻字的"后立):生僻与否不靠语感,查国家《通用规范汉字表》(2013 国务院颁布,字表存 video_assets/zibiao/,脚本 video_assets/check_shengpizi.py)——一级常用字 3500 内不注(昌发友丘同弃疾衍肇锡绪宪昭庆繁祥实测全是一级,自动免注);三级/表外必注(官方"生僻"边界);二级为灰区,人工终裁(必注:臀彘圩繻胤彦毓懋彝贶禛;免注:诏桓敖梓攒圭璋帛祯肱帧虞)。出片前必跑体检脚本,报告须显示 [OK] 候选字均已注(或属免注)
⭐生僻字零容忍:体检前移 + 专名例外(2026-09-23 立) ①体检太晚:写完稿才发现"弹劾"的劾、"范蠡"的蠡、"谥号"的谥是二级字,整段返工;②一刀切"二级字都不能念"讲不下去——隋炀帝、秦桧、庖丁解牛这类是全民词汇 ①体检前移两节点:立项期跑 video_assets/_zp_reserve_*.py(把候选选题所有可能用到的字一次查完——查出来才知道哪条能拍);成稿期跑 video_assets/_zp_plan*.py(口播稿全文+名卡文案写进脚本逐字查,顺带实测纯汉字字数)。字串写在脚本里、结果脚本自写 UTF-8 文件(合第㉒条)。②专名例外:全民专名(隋炀帝/秦桧/庖丁解牛/康熙)口播可念、画面必须注音;冷僻专名(朱聿键/钱镠/钱俶/李煜/石敬瑭/韩琦)一律改称身份("南明的隆武帝""吴越国国王""南唐国主""后晋那位皇帝""一位名臣")。③术语含二级字改走白话:"谥号"→"死后给的称号"、"诏书"→"一道命令"、"郡望"→"地望"——术语不必原样出口,靠例证撑住。目标线=口播可达"零非一级字"(仅留 1–3 个需注音的全民专名)
⭐⭐自绘图式"多格卡"里简笔压住注文 + 四格各自定尺(2026-10-06 善思兄"字有重叠 而且各自比例不对 忽大忽小") 10-06「巫屠匠陶」旧版把字+注放卡内、简笔飘在卡外:简笔顶边 base_y-42=386 穿进卡底 398,"巫"卡的红线正好划过注文「管祭祀」(=叠字);且四样简笔各自定尺寸,体量、基线全不同(案 26 高/猪 42/工具 36/罐 52) 定法三条:①字/注/简笔一律装在同一张卡里(10-06 卡 288–446,卡内三行=字 y+42/注 y+76/简笔 380–440);②四格简笔共用一条基线、同一个体量档(10-06 统一 56–60 高、76–96 宽),不许各自定尺;③出片前跑"注文 ink 行范围 vs 简笔最高行"的像素重叠检查,够不上才出片。推论:plate() 的 sub 落在 y0+h*0.78,卡外还要画东西时卡高须留到 0.85 以上,否则简笔必压注文
底图深色/繁密致名卡小字发糊 动态段名卡的彩色小字(金褐 SOFT/朱红 RED)压在深色满画面上看不清(六避首版病榻图、青铜器图,善思兄反馈"字发糊") AI 出图 prompt 里写死"主体仅占画中上部、中下部三分之二为大片素白宣纸留白",让名卡三行(渲染后 y=830/1000/1100)正落在留白区;出图后抽帧复核可读性
名卡造词/看不懂(2026-09-17 善思兄抓到) 收尾名卡第一行写「四姓同谱 · 一句知辈」——为凑四字对仗编的词,中文里没这种说法;善思兄先问「一句知辈是什么意思」,再判「这明显人都听不懂」 名卡"说人话"预检:名卡三行(尤其中段副标题、第三行)只许写观众一听就懂的话——①不许为凑对仗造词;②不许与相邻行重复同一意思(本例第二行「报个名字 · 便知辈分」已说尽,第一行纯属废话);③优先列举式或实话式("孔 · 孟 · 颜 · 曾"/"报个名字 · 便知辈分");④需要想一下才明白的一律换大白话。改法:改「四姓同谱 · 通天家谱」——说事,零解释成本。违例=封面与所有名卡整体返工
TTS 把词读串(2026-09-17 善思兄点「老字容易被读成老子」后立) AI 音会把相邻字并成一个词:老字→老子/赐的字/这套字;一代一代(AA-BB 叠词读快易糊);不准入谱("不X入…"连读→"不能入谱") 口播稿成稿后跑 TTS 易混词预检,扫四类:①「X字」类②AA-BB 叠词③「不X进/入…」连读④单字动词+单字宾语易并词者。判据:宁可改词,不让 TTS 有歧义空间(已改:一代一代往下排→一代一个字,往下排;不准入谱→不用这套字,就进不了家谱)
AI 出图右下角带"AI生成"水印 成片里出现生成工具水印(六避首版 5 张场景图右下角均有) 三选一:①浅底图用邻域同色平坦填充抹除(脚本 video_assets/liubi/preprocess_scenes.py);②确认 Ken Burns 的横向等比裁切已把水印裁出画外(抽帧复核);③半身像挂画版式(明皇室做法 video_assets/ming_make_frames.py)——只取原图上部 (0,0,1024,600),水印天然落在裁切区外(明皇室 4 张帝王像水印在 y≈1405–1500,一裁即净)。带可见水印不上线
AI 出图"中下部留白"指令靠不住(2026-09-19 善思兄"你是不是又忘记了,朱棣这种人物呢") prompt 写死"中下部三分之二为大片留白",实测只有 2/5 张生效(朱棣、朱厚照有留白;朱允炆、朱祁镇、朱元璋三张人物顶到画面底,名卡根本压不进去) 不指望指令,一律版式化:取原图上部裁成半身像 → 加宣纸装裱边框+投影 → 叠在空镜底图上部(video_assets/ming_make_frames.py)。好处:名卡区完全不受人物影响+顺带把右下角水印裁在画外+五张像版式统一。历史人物半身像存 people/ming_*.png 跨期复用
Ken Burns 吃掉画面上下边缘(2026-09-19 立) zoompan 居中放大,顶部被裁约 54px(z=1.06)/约 103px(z=1.12);明皇室首版人物挂画被推高、压住栏目名「三玄 · 名字里的典故」 凡在画面上部放内容的(人物挂画、装饰),视觉顶边=实际 y − 裁切量,须仍 > 栏目名底边 168。明皇室期把 zoom 上限由 1.12 降到 1.06,挂画取 PW=720 / CROP_H=600 / PY=258(顶 227>168、底 728<765,两头都留余量)。改这三个数须同时复核上下两头
合集讲序平铺直叙 合集类成片条目按古籍原序排,开头弱、没钩子 强项前置、最弱垫后:最有冲突/最出实事的放前面(六避把"不以官"前置),最弱的一条挪末、以静段收束作反差("不以国");这样在正式收官前有个缓冲落点

七、边界

  • 真人出镜做不了:本流水线只做"空镜 + 名卡 + 配音"。用户若愿出镜/录真声,信任感明显更强,届时本流水线可只负责剪辑与字幕。
  • 配音为 AI 男声(zh-CN-YunjianNeural,当前语速 +18%~+30%,早期 −8% 已作废)。要改为真声,替换 seg{i}.wav 即可,其余不动。

八、交付前统一规范与自检铁律(2026-09-14 善思兄明令)

> "以后一定要统一,发给我之前要自检。" —— 凡交付给善思兄的成片/物料,铁律如下:

  1. 统一模板,不留手工例外:视频视觉(印章/栏目名/口令/底图轮换/第一帧布局)全走 build_wuke.py 固定模板,位置天然恒定;不再生成封面文件(善思兄 2026-09-14 晚拍板,直接用视频第一帧当封面)。
  2. 发前九项自检(依据 起名视频制作规范.md,一条不过就改,不许先发再做):
    - 微信号/联系方式:全物料 grep 无(平台判引流违规)
    - 八字:全物料无"八字"二字(命理一律"紫微斗数命盘喜忌")
    - 宗教内容可讲边界(2026-10-01 立):史实层可讲(哪一派、谁创的、名称怎么来的、哪个家族世代信、"某字"是记号——须有正史/学术出处,引号内照原文);实行层不讲(修炼/服食/符咒/斋醮/法术/灵验/感应/仪式细节,一句不进片)。默认「张天师/龙虎山/道教」仍不进片,逐期由善思兄当面开口子才可越(已开两次:10-01《免贵姓》段3/10-02《名字里那个"之"》段4);开口子当期风险须当面标注、发布前他终裁。
    - 名字诊断/取名可抵:全物料无
    - 引流黑话:无"引流"二字;金额全角「¥」(半角「¥」楷体变豆腐块 □)
    - 第一帧即封面:视频第 0 秒画面含完整栏目名+名卡+印章,布局恒定,可直接当封面(不另检封面);⚠️ 副标题/第三行可依亲定「留白」(2026-10-10 善思兄一句「留白」)——不填字、y 位置仍恒定;留白就是留白,不许自行拟一句去凑满"五要素"
    - ⭐⭐ 平台"上传封面"要单独出图(2026-10-10 立):抖音发布页把竖封面3:4/横封面4:3 都打「封面不佳」+提示「请勿使用截屏当封面」——病根是视频首帧带图式小字+烧入字幕,被判成"文字截图"。定法=①单独出图(_make_cover_sj1.py 类脚本)出竖 3:4(1080×1440)/横 4:3(1440×1080);②封面只留栏名+两行大标题+印章,任何小说明/图式文字/字幕都不进封面(原话「重新做 不要那些小说明」);③版式=米白纸+轻暗角+双红线细框+两行同字号主标题(短行加字距、封顶 0.32em)+左下印章;④片子不动(首帧图式是段1 钩子的画面)。封面图不占交付卡片(仍只推 mp4+文案 md),文件名与脚本记入文案备注节。
    - 画面素材零文字:内嵌的 AI 古画/意境图零英文、零落款、零签名、零水印(出图后逐张目视确认);另须核尺寸与比例——统一 1024x1536 竖版、缩放走"等比裁切"(见第六节),成片抽帧确认人像未被拉长;注音只给生僻字/多音字(圩 wéi、繻 xū、胤 yìn、彦 yàn、毓 yù、懋 mào、彝 yí),昌/发/友/丘/同/虞/弃疾/衍/肇/锡/绪/宪/昭/庆/繁/祥 等常用字不注;名卡+发布文案两处都要注,开写前先列本期清单、成稿逐字回对
    - 版式不打架:名卡与字幕不得重叠(字幕顶边=1500−行数×54;每段口播须 ≤6 行=静态段 85–90 字、动态段约 85 字),跑 check_layout.py + 抽帧目视
    - 上云:成片 .mp4、封面 .png、发布文案 .docx 已进云端成片库(见第九节),不只落本地
    - 字幕核验:抽帧确认无黑条、描边阴影清楚、不压印章/顶栏、整句与语音同步、不压背景山脊
    - 名卡:居中、自动缩字号不出画、两字不挤压
    - 姓名查重:对外名字逐名过六亲避讳 + 公众人物/名人/商标同字同音(硬规矩,前置)
    - 排版错别字:文案逐字校对,无半角空格、标点规范
  3. 规则变更两头写、并当场同步上云(2026-09-15 善思兄追问"你这些规则传到云或资料库了吗"后立):任何新规矩/口径变更,改完必须同时落到三处,缺一不可——
    - ① 本地技能 ~/.workbuddy/skills/qiming-shortvideo-production/SKILL.md(自动化读到)
    - ② 本地规范 起名视频制作规范.md(人工执行依据)
    - ③ 云端资料库 对应文档(手机端可看):见下方节点表
    且旧表述必须一并改——同一条规矩在多份文档里各有一份(规范/素材库/成片总览/框架/台账),只改一处等于没改(本轮"注音铁律"就同时在 3 份文档里留着旧的"一律附拼音")。改完 grep 全工作区确认无残留。
    云端节点(space gZefFMcQTlU44X2kS7uknC,父「起名业务」ad8WiO5kamKKypNSgY9FnF):
文档 nodeBlockId
起名视频制作规范 YTjN9nV5kCI1nTgBa7m0ph
起名内容素材库 TDxQNtKeDCUKYj1z9502aY
起名短视频内容框架 v9f6wO3tO7hfNAkWBywr4p
起名内容选题台账 GDZrOk4jNPV5gNIcDc52LO
起名短视频·成片总览(在成片库内) nIs5qd66n51UBrc8uGgRYx

⚠️⭐ 2026-09-23 起 library 接口改版,旧的 _common.http_request(..., token, ...) 写法已失效(_common.build_url 被移除、http_request 不再收 token 参数、改走 wbipc 管道自动鉴权;旧写法实测报 AttributeError: module &#x27;_common&#x27; has no attribute &#x27;build_url&#x27;)。覆盖写法改为调用官方脚本:
powershell &amp; &#x27;&lt;venv python 绝对路径&gt;&#x27; ` &#x27;C:\Users\Administrator\AppData\Local\Programs\WorkBuddy\resources\app.asar.unpacked\resources\plugins\workbuddy-builtin\skills\library\doc\create_doc.py&#x27; ` --space-id gZefFMcQTlU44X2kS7uknC --node-block-id &lt;节点id&gt; ` --content-file &quot;&lt;本地 md 绝对路径&gt;&quot; --confirm-overwrite
须显式 --confirm-overwrite(全量替换正文);覆盖保留节点 ID/链接/标题。成功输出 KS_DOC_CREATE\t&lt;node&gt;\tdoc\t&lt;url&gt;\t&lt;failed&gt;\t&lt;fatal&gt;,末两列(未完成数/严重错误数)必须为 0。项目内包装见 sync_guifan.py(已按新接口重写)。
⚠️ 两个坑:①同一文件的多处 Edit 必须串行(并行会被后写者覆盖吞掉);②list-node 查节点时 stdout 是 UTF-8,按 cp936/gbk 解会把中文标题解成乱码、导致按标题找不到节点——先 utf-8 试解。
4. 交付物红线:present_files 时只呈现视频 + 文案(封面用第一帧,不出文件);《起名视频制作规范》《起名项目对话纪要》等内部文件静默上云、不呈现给用户(善思兄 2026-09-14 明令)。
4b. ⭐交付=两个东西、就放在对话中间(2026-09-28 18:2x~18:5x 善思兄拍板):原话「卡片呢 不要放在右边 放在中间的位置」「我自己选择打开」「一个MP4 一个发布文案 MD」「就这种就行」。
- 交付物就是两样:成片 .mp4 + 发布文案 .md(音频永不外推;docx 只上云)。
- 做法:在回复正文里直接写这两个文件的完整路径——界面会自动渲染成对话中间、可点开的文件卡。绝不调用 present_files(它把卡片甩到右侧面板、还自动打开第一张,正是被否掉的两种行为)。不弹、不自动打开,他自己点。
- 不要另外画"封面/成片信息卡"——善思兄 18:5x 明确「我说的不是这个卡片」(他指的就是上面那两个文件卡)。
- 备注(万一今后真要画内联卡):内联卡里图片用绝对路径不会被改写(实测整卡裂图),须 data:image/jpeg;base64,… 内嵌;封面 260px/q7、缩略 84px/q5 即可(合计约 9KB)。
5. 素材内嵌成片,绝不单独交付:配合当期主体的视觉素材(历史人物古画、水墨意境图等)必须渲染进视频对应段落、随文案出现;可用 ffmpeg zoompan 做缓慢运镜的动态背景(见 build_wuyi.py 的 make_kenburns)。绝不把素材当独立文件交付(善思兄 2026-09-14 原话:"那你是让我还要做二次剪辑吗?你给我干什么")。文字叠在动态古画上须加白色描边(PIL stroke_width)保证可读;古画走 AI 古画水墨意境风、不做写实人脸复原,存 video_assets/people/ 跨期复用。
6. 产出即上云(交付闭环):每期成片一出来,就同步进云端成片库(见第九节)。只落本地不算交付。

九、成片上云(交付闭环,2026-09-15 立)

每期成片产出后必须同步上云——只落本地,换设备就问不到(善思兄 2026-09-15 原话:"你也没上云啊")。

  • 云端位置:个人「我的文档」→「起名业务」→ 文件夹 「起名短视频·成片库」caaHGDAAQu71xTjPzbLBf6(空间 gZefFMcQTlU44X2kS7uknC)。
  • 每期上三样:成片 .mp4、三平台封面 .png、发布文案 .docx;另维护一份《成片总览(含成片直链)》在线文档。
  • 上传命令(⚠️ 2026-09-23 起不再需要 token):

⚠️⭐ library 接口已改版:http_request 不再收 token 参数,connect_open_platform 取 token → token.txt → --token-stdin 那一整套 已作废。新版直接调官方脚本,本地路径作位置参数:
powershell &amp; &#x27;&lt;venv python 绝对路径&gt;&#x27; ` &#x27;C:\Users\Administrator\AppData\Local\Programs\WorkBuddy\resources\app.asar.unpacked\resources\plugins\workbuddy-builtin\skills\library\drive\upload_drive_file.py&#x27; ` &#x27;&lt;本地绝对路径&gt;&#x27; --space-id gZefFMcQTlU44X2kS7uknC --parent-id caaHGDAAQu71xTjPzbLBf6 --file-name &quot;&lt;云端名&gt;&quot;
覆盖已有文件=多传一个 --node-id &lt;blk_xxx&gt;(替换与新建的唯一区别,必填);成功输出 KS_DRIVE_UPLOAD_OK &lt;json&gt;(含 node_block_id / file_name / ext / url),返回的 node_block_id 必须仍等于目标节点。参数细节一律以 ...\skills\library\drive\entry.md 为准;上传/覆盖属 mutation,按 library/mutation.md 先确认变更。

⚠️ 本机 PowerShell 的 | / &lt; 给子进程喂 stdin 不稳定(2026-09-15 实测:整段命令解析失败、Exit 1 且不产生任何日志)——凡需向子进程喂数据的,一律用 Python 跑腿脚本 subprocess.run(...) 转一道(现成范式见 sync_guifan.py:路径与 stdout 全由 Python 处理、结果写 UTF-8 文件,不吃 PowerShell 码页的坑)。
- .md 内部文档(内容框架/选题台账/制作规范)上云=覆盖式,不走 drive:用上面的 doc/create_doc.py --node-block-id &lt;已存在文档节点 id&gt; --confirm-overwrite 整篇覆盖(已跑通:规范 YTjN9nV5kCI1nTgBa7m0ph、内容框架 v9f6wO3tO7hfNAkWBywr4p、选题台账 GDZrOk4jNPV5gNIcDc52LO)。这类同步按惯例静默做,不呈现给用户。
- 类型分流:.mp4 / .png / .docx 走 drive/upload_drive_file.py(≤100MiB);.md / .csv / .html / .zip 不走这个入口(会被 doc / database / page 模块接管)。
- 两个坑:
1. 新建文件夹刚创建时上传会报 parent xxxxx not found or deleted(网盘侧未同步)——隔一会儿重试即可,或先传到父目录再 space.workspace.move-node 进新文件夹。
2. 平台没有删除文件/文件夹的 API——误传的文件删不掉,只能就地覆盖(upload_drive_file.py --node-id &lt;id&gt;)+ space.workspace.rename-node 改名复用,别指望清理。
- 验收:space_api.py space.workspace.list-node --space-id &lt;sp&gt; --parent-node-id &lt;folder&gt;。总览文档更新走 upload_index_doc.py(直调 /space/api/agent/v1/create-doc,nodeKind=doc + parentId + title + markdown)。

常见问题

5 问
答案由本站依据条目字段整理
起名文化短视频批量生产怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_70883341/shansijun-qiming-shortvideo。安装方式为未标注。装完刷新技能列表或重开客户端。

起名文化短视频批量生产支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

起名文化短视频批量生产权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

起名文化短视频批量生产收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

起名文化短视频批量生产用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。