Back to skills
SKILL.md
bighead-collage
ASecurity大头剪贴人物短片:9:16 竖屏、15–60 秒,讲一个大人物的一件反常事或他的一生。主角是放大了头的真人照片剪纸,站在代表他处境的小舞台上;数字是他举着的牌子、黑板上敲出来的字,字是贴条、人身后升起的大字;场内每 0.4–0.6 秒一个画面事件,卡在配音的字上;镜头走大起伏的曲线,转场长在运动最快处,每次换场都带一样东西过去(同一个人、同一扇门、同一个世界翻过来);几乎每个事件一个短音效,慢的合成器垫底。先写导演表再做画面。学自 earn.edits 的两条片(巴菲特囤现金、西尔斯邮购目录),中文版做过《芒格的一生》。用户说"大头剪贴风""大头人物短片""像巴菲特囤现金那条""像西尔斯那条""做一个 XX 的一生短片 / XX 的故事(竖屏)"时使用。横屏、有真人口播出镜、纯数据图表片不用这个。
- 65 stars
- 0 votes
- 0 copies
- 0 views
- Added November 7, 2026
Works with
Security analysis
100/100Pro scans all 14 files and shows the line behind each finding
npx -y skills add HeyChengC/bighead-collage --agent claude-codeAre you the author of bighead-collage?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/heychengc-bighead-collage)---
name: bighead-collage
description: 大头剪贴人物短片:9:16 竖屏、15–60 秒,讲一个大人物的一件反常事或他的一生。主角是放大了头的真人照片剪纸,站在代表他处境的小舞台上;数字是他举着的牌子、黑板上敲出来的字,字是贴条、人身后升起的大字;场内每 0.4–0.6 秒一个画面事件,卡在配音的字上;镜头走大起伏的曲线,转场长在运动最快处,每次换场都带一样东西过去(同一个人、同一扇门、同一个世界翻过来);几乎每个事件一个短音效,慢的合成器垫底。先写导演表再做画面。学自 earn.edits 的两条片(巴菲特囤现金、西尔斯邮购目录),中文版做过《芒格的一生》。用户说"大头剪贴风""大头人物短片""像巴菲特囤现金那条""像西尔斯那条""做一个 XX 的一生短片 / XX 的故事(竖屏)"时使用。横屏、有真人口播出镜、纯数据图表片不用这个。
---
# 大头剪贴人物短片(bighead-collage)
**每个短语都是一件实物在小舞台上被摆弄:人是大头照片剪纸,数字是举着的牌子,字是贴条、黑板字、路面字,镜头和物件推着它们走——不是一句话配一张图、缓慢推进、字幕浮在画面上。**
**而且观众每一刻都看得懂:每次换场都有一样东西从上一镜带过来,换场的动作本身讲得通。**
这是判断,不是模板。没有可以照抄的场景顺序;每条片的舞台从它自己题目里的物件来。
## 先看四样东西
1. `anchors/taste_board.jpg`:好在哪(参考片 12 个时刻);`anchors/own_taste_board.jpg`:用这份 skill 做出来的 12 个时刻。
2. `anchors/gap_pairs.jpg`:不看这份 skill 时最容易做出来的(扁平矢量、放射光底、人缩成角落头像、整句字幕)vs 参考。
3. `examples/munger-life/near_misses.jpg`:我们自己做《芒格的一生》时差一点就对的几处(像 PPT 的运镜、没有理由的换场、整屏空一下、主角消失),每处一句差在哪。
4. `style-card.md`:全部判断,15 节,每条带参考片时间点。
## 开工前(每条片都先过这一步)
1. **环境**:`python scripts/doctor.py`。有 ✗ 的按它给的命令装好再往下;装不上的告诉用户卡在哪。
2. **配音和生图怎么来**:看 `python scripts/config.py`。
- **没有 `config.json`**(第一次用):问用户两个问题(有 AskUserQuestion 就用它,一次问完;没有就直接列选项问),答案用 `python scripts/config.py set …` 写进去,以后不再问:
- **配音**:① edge-tts(默认、免费、不用注册,音色 `zh-CN-YunxiNeural`)② 我有录好的整条配音(mp3/wav)③ 接我自己的 TTS(豆包、ElevenLabs、MiniMax、本地模型……,要给一条命令,示例在 `scripts/tts_examples/`)。
- **生图**:① codex(本机 codex CLI,走 ChatGPT 订阅额度)② OpenAI 图像接口或兼容服务(要 key,可填 base_url)③ 我自己的生图命令 ④ 手动(只出提示词,我自己拿去生成再放回来)。
- 对应写法:`voice.provider` = `edge` / `recording` / `command`;`image.provider` = `codex` / `openai` / `command` / `manual`。选了 command 要同时问到那条命令;选了 openai 问模型名和地址(官方就留空)。
- **已经有 `config.json`**:一句话告诉用户现在用的是什么("配音 edge-tts、生图 codex"),用户没说要换就照用。
- 选完再跑一次 `doctor.py`,确认这两项是 ✓。
3. **还缺什么就问什么**:选题和文案(用户只给选题时,按第 0 站写好文案给他确认)、主角的脸参考照(没有就去维基共享资源找 CC BY / 公有领域的,记进 `SOURCES.txt`)、画幅(默认 9:16)。
## 流程(每一站都有产物)
| 站 | 做什么 | 产物 |
|---|---|---|
| 0 文案 | 第三人称短句,第一句就是钩子(年份/数字 + 人);不寒暄、不总结。中文 4.5–5 字/秒,30 秒约 130 字;句间停 0.2s,**段落之间停 0.35–0.55s** | `script.json` |
| 1 配音 | `voice.provider` 是 edge / command:`python scripts/temp_voice.py script.json`,逐句配音 + 每个字的时刻(默认用语音识别对齐到真实发音)。是 recording(用户给了整条配音):`python scripts/voice_timeline.py 配音.mp3` | `timeline.json`、`voice/` |
| 2 导演表 | **先写导演表,再写画面**(用 video-director,没有就按 `examples/munger-life/director.md` 的列):每一镜屏上是什么 → 观众多懂了什么 → 读懂+停留 → 凭什么接上一镜。答不出"凭什么接"就不换场。然后每句拆成短语,写"屏上哪件实物、做什么动作"(`references/mapping.md`)。**再定每场的舞台分区**(主角位 / 账本位 / 小戏区 / 字位,mapping.md 十三)和**角色表**(文案里的人都上场,十四)。**最后写动作表**:每个事件从哪进、走什么路、多久、缓动、过冲、碰到什么、怎么离场(engine.md「动作语法」)。原创没有原片可量,这一步不写,动作就会落回"从零放大弹出来" | `director.md` |
| 3 素材 | 在 `gen/` 里用 `python scripts/gen_image.py "名字.png\|提示词\|参考图"`(按 `image.provider` 生成;manual 模式会写出 `PROMPTS.md` 等用户放图)。主角照片当参考 → 直接生成大头全身像(白底,一张图,不拼接)→ `cutout.py` 抠进 `img/`;底和道具也用生图(白底 → 抠)。要拆、拼、复杂处理才能得到的图,都先试直接生图 | `img/`、`SOURCES.txt` |
| 4 画面 | `scene.js`:一场一个 `scene()`;字用 `word()/row()`;相机用 `spline`;时间全用 `at(句, 词)`;中文竖屏片加一行 `captions()` 字幕轨(`references/engine.md`「字幕」);字幕和关键内容放进平台安全区(`references/production.md` 第 3 节) | 静帧 → 720 预览 |
| 5 声音 | `sfxlist.mjs` 从画面导出音效表 → `mix.py` | `mix_master.wav` |
| 6 样片前自查 | `references/production.md` 第 6 节的十项,全过了再给用户看(这就是回归,每条片都跑) | 自查记录 |
| 7 交片 | 合成、`verify.py`、`看这里/`、**用播放器直接打开给用户** | `final.mp4` |
工具、参数和坑:`references/production.md`(素材、配音、音效、渲染、自查)和 `references/engine.md`(`stage.js`)。
用户要"照着参考片整条复刻、看像不像"时(对临):配音用原片人声、时刻和版面按原片逐帧量,做法在 `references/production.md` 第 8 节。
## 写每一镜时问自己的八句
1. **观众这一镜要看懂什么?** 写成一句具体的话。写不出来,这一镜就是为了切换而切换。
2. **凭什么从上一镜到这一镜?** 带一样东西过去:同一个人走过去、推进同一扇门、同一个世界翻过来、同一块招牌又出现。"明信片放大 → 一张店的图"讲不通;"少年走进明信片里那扇门 → 镜头跟进去 → 门里就是店"讲得通。
3. **这个短语里的名词,屏上是哪件实物?** 数字 → 牌子/黑板/日历;人 → 大头剪纸;时间 → 一页页翻、一个个数;找不到实物,就把字做成贴条贴在一个实物上。
4. **这个短语里的动词,那件实物做了没有?** 卖 = 金币飞走;寄 = 目录飞进邮筒;离婚 = 婚戒滚走;走了 = 他起身走出画面。动词没发生,这一镜就是"配图"。
5. **这个动作落在哪个字上?** 换场、物件动作、镜头到位,都落在新画面要演的那个词上,常在一句话中间;不放在两句之间的停顿里("一句一页"是 PPT 的节奏)。卡的是字,不是配乐的拍子。
6. **镜头在做什么动作?** 一场 1–2 个宽而果断的推或拉,推完顺势拉,动作之间停一停;转场长在推得、拉得、摇得最快的那一刻。场内微微缓推、转场时突然来一下 = PPT。反过来也不行:讲事的段落里字落下来时镜头要停住,不做 1.0→1.1→1.02 的小抽动——全片的推拉幅度是开头和转场撑起来的。
7. **这一刻观众看哪?画面里每样东西凭什么还在?** 每场有固定分区:主角位、账本位(会积累的那一排)、小戏区、字位。上一件事的东西要么排进账本位,要么被戏里的人带走;说不出理由的不是删掉,是回去改调度。讲事的段落每 0.5 秒暂停一帧,说出眼睛落在哪:说出来的是"一个动作"而不是"这句话讲的那件事",就是特效盖住了内容。
8. **字属于谁?** 在人身后、在牌子上、在黑板上、是贴条——不浮在空中。出字方式要轮换,同一种连用三次就是模板。
## 度(AI 学会一个手法就会滥用)
- **换场的密度看观众**:参考片一场 1.2–3s(英文母语、熟悉巴菲特);中文、观众不熟这个人时,一场 2–6s,段落间停 0.35–0.55s。场内的事件密度(0.4–0.6s 一个)不变。
- **主角在场多少看题材**:讲一件事(囤现金、发明邮购)→ 人占 30–50% 的时间,另一半交给钞票、计数板、黑板、手;讲一个人的一生 → 人就是贯穿全片的那样东西,可以每场都在,但每场都要有他之外的东西在动(戒指滚走、招牌荡下、日历翻页)。
- 圆圈揭开 / 缩进白圈:段落交界各一次,不是每次换场都用。
- 换色(黑白 + 暗红):只在"处境变坏"那一处。
- 计数、打字、乱码解字、灯泡:一条片里各至多一次。白底贴条一条片 2–4 张。
- 三行堆字压在人身后:人名那一次必用;之后换别的出字方式。
- 大头只给主角(配角至多 1–2 人),姿势每 10 秒至多一个。
- 小舞台从这条片自己的题目里找;参考片的浮空小镇、红白漩涡纸是那两条片的答案,照搬会被一眼认出。
- 音效几乎每个事件一个,但永远比人声低 7 dB 以上。
- **动静按段落分**:开头钩子(约前 8 秒:一张脸 + 一个冲突 + 片名卡)可以满——满天飞的复印纸就是在演"全世界都在抄",那里的动静就是内容,不做减法。讲事的段落每一拍只有一个焦点,动作只做两件事:把东西带进来、把这句话的动词演出来;纸片雨、金币雨、扬尘、闪光、震屏不讲内容就不加,推拉不配"呼";繁忙的底(地图、纹理)压暗、降饱和、微糊,人要比纹理大。场内 0.4–0.6 秒一个事件,说的是讲这句话的动作,不是装饰。
- **字幕**:中文竖屏片固定一条(`captions()`):y≈1400、思源黑体 Bold 62px、白字粗黑描边、按短句换、不做动画,一条不超过 14 字(在语义处断);片名卡、逐词排出来的原话那几秒让位。关键词还是场景里的大字(900 粗体),两者一眼分得开。
完整的度表在 `style-card.md` 第 10 节。
## 拒绝
- 一张静止的图撑一句话(整图 + 缓推 > 1.5 秒);场内几乎不动、只在转场处来一下特效。
- 没有理由的换场:前后两镜没有共同的东西、换场动作讲不通。
- 扁平矢量图标、卡通画、放射光底、图表、坐标轴。
- 人缩成角落里的头肩贴纸。
- 字幕抢戏:字幕只能是固定位置、没有动画的一条;关键词仍然在场景里。
- 特效盖住内容:讲事的段落一拍好几样东西在动、字落下来时镜头还在晃、底比人响(用户原话"不是在看内容而是看特效去了")。但开头钩子不在此列。
- 关键内容落在平台界面下面:9:16 片的字幕、数字、主角的脸进了顶部标签栏、右侧按钮列、底部标题区(`scripts/ui_check.py` 查)。
- 画面里出现网址、水印、署名(参考片里 amazon.com 卡片是穿帮,不要学)。
- 道具"从零放大弹出来"、凭空消失;人物只换姿势图不演;文案里的人拿道具顶替。
- 屏上演出的事实没核过(芒格摘掉左眼后装的是义眼,不戴眼罩;画一块眼罩就是错的)。
## 作者定过的口味
`references/taste.md`:作者看样片时说过的话(表里的"用户"指作者)、对应的规则和适用范围(这个风格 / 所有风格)。新做一条片之前读一遍。你的用户看样片时说了新的,就往这张表里加一行,同一个问题不让他说第二次。
## 文件
| | |
|---|---|
| `style-card.md` | 15 节风格卡(判断 + 证据) |
| `references/mapping.md` | 每类话怎么变成实物在动:两两成对的例子、分镜表格式 |
| `references/engine.md` | `stage.js`:场、三层盒子、相机曲线、字、转场、上下顺序、音效登记;坑 |
| `references/production.md` | 素材、配音、音效、渲染、样片前自查、交片 |
| `references/taste.md` | 用户定过的口味规则(带范围) |
| `examples/munger-life/` | 《芒格的一生》:导演表、每个换场为什么这样接、成片接触表、近失对。是"怎么做过一次",不是可以抄的画面 |
| `examples/hardcases-01/` | 《商业狠人图鉴 01》(59s,用户整条配音):动作分镜(动作语法、8 个角色)、舞台调度导演表、注意力层级导演表(特效盖内容 → 一拍一个焦点;开头钩子不减;9:16 安全区;字幕)、第 1/2/3 版和第 3/4.1 版同一时刻的近失对 |
| `anchors/` | taste_board / gap_pairs / detail:参考片原帧(earn.edits,见 README「引用说明」);own_taste_board:用本 skill 做的片子 |
| `scripts/` | `stage.js`(含 `captions()` 字幕轨)`acts.js`(动作语法)`ui_check.py`(平台界面遮挡自查)`look.css` `new_film.py` `bighead.py` `cutout.py` `split_sheet.py`(一张图切几件道具)`gen_image.py`(生图,四种方式)`config.py`(配音 / 生图设置)`doctor.py`(环境自检)`temp_voice.py` `voice_timeline.py`(整条正式配音 → 时间线)`ref_timeline.py` `sfx.py` `sfxlist.mjs` `mix.py` `frames.mjs` `verify.py` `vsr.py`(量片子:换场、运镜曲线、平涂占比、帧条);`tts_examples/`(接豆包 / OpenAI TTS 的示例) |
Files in this skill
- SKILL.md
- package-lock.json
- package.json
- references/engine.md
- references/mapping.md
- references/production.md
- references/taste.md
- requirements.txt
- scripts/acts.js
- scripts/bighead.py
- scripts/config.py
- scripts/cutout.py
- scripts/doctor.py
- scripts/frames.mjs
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.