skill存档

在 Codex 里怎么用 aigc-topic-cover-factory

一条流水线跑完「产选题 → 采集背景 → 合成封面矩阵 → 拼审图大图」, 产出 N 条选题 × M 张背景的 960×600(16:10)B 站大字封面,供你 A/B 挑选。

作者机器上已跑通全链路(2026-09-10:真登录态实采 6 张素材 → 合成 3 张封面)。 第一次拿到这个包,先看第三节把依赖和登录态过一遍——那些前置条件不会自动出现在你机器上。


一、Codex 怎么找到它

%USERPROFILE%\.codex\skills\aigc-topic-cover-factory\SKILL.md

安装 = 把整个 aigc-topic-cover-factory 文件夹解压到 %USERPROFILE%\.codex\skills\ 下面,不用改任何配置——Codex 自动发现这个目录,config.toml 里不需要登记。装完新开一个 Codex 会话即可生效。

两个要知道的:


二、三种调用方式

① 自动触发(推荐,什么都不用做)

正常说话,命中 description 里的触发词就会自动加载。这些话都能触发:

给我出 20 个 AI 相关的爆款主题,然后做成封面
爬点小红书的图,批量做封面
按对标做一批大字封面
选题和封面一起搞,我要能挑的

② 显式点名(触发词没命中时)

用 aigc-topic-cover-factory 帮我做 15 个 AI 副业主题的封面

③ 兜底:直接让它读

读 %USERPROFILE%\.codex\skills\aigc-topic-cover-factory\SKILL.md,然后照着做

三、开工前确认一次

怎么查缺了怎么办
pillow numpy httpx playwrightpip list 里查pip install pillow numpy httpx playwright
Chromium(Playwright 用)首次 fetch 会报缺python -m playwright install chromium
中文粗黑体Win 一般自带 NotoSansSC-VF / msyhbd.ttc见「排错」
小红书登录态看有没有 %USERPROFILE%\.xhs_profilepython scripts/xhs_fetch.py login 扫码

登录态会过期。过期的表现是 fetch 报「登录态已失效」并停下,不会静默抓垃圾回来。


四、完整跑一遍

0. 先建工作目录,并把 skill 路径存成变量

脚本用的都是相对路径,所以先 cd 到你要放东西的地方;再把 skill 路径存起来,后面几步就不用反复写长路径:

:: cmd.exe
mkdir E:\封面项目\260910_AI副业 && cd /d E:\封面项目\260910_AI副业
set SK=%USERPROFILE%\.codex\skills\aigc-topic-cover-factory
# PowerShell(%VAR% 在 PS 里不展开,得用这个写法)
mkdir E:\封面项目\260910_AI副业; cd E:\封面项目\260910_AI副业
$SK = "$env:USERPROFILE\.codex\skills\aigc-topic-cover-factory"

1. 让 Codex 产选题

直接说:

给我出 20 个 AI 副业方向的爆款主题,写成 topics.json

它会读 references/选题钩子公式.md,按 10 个句式公式产出(会强制覆盖 ≥6 个不同公式, 否则一批封面在信息流里长得一样,A/B 测不出东西)。

这一步产出的选题列表它会先给你过目。 采集和合成都不贵,但选题错了后面全白做——所以卡在这里是故意的。

topics.json 长这样(完整字段见 scripts/topics.example.json):

{"topics":[{
  "id": "01",
  "lines": [{"text":"我劝所有程序员","role":"sub"},
            {"text":"尽早布局AI大模型","role":"hero"}],
  "style": "yellow",
  "keywords": ["程序员工位桌面","互联网大厂工位"]
}]}

2. 采集背景素材

python %SK%\scripts\xhs_fetch.py fetch --topics topics.json --out 01_素材 -n 12

实测输出:

[01_素材/01]
  搜索:程序员工位桌面
    + bfa17abd4e03.jpg  640x853
    + 7910210f4945.jpg  640x480
  小计 6 张

搜不到合适的图时别在脚本上死磕,两条兜底:手动存图进 01_素材/<id>/, 或把直链攒成 urls.txtxhs_fetch.py from-urls urls.txt --out 01_素材/01

3. 合成封面矩阵

python %SK%\scripts\make_covers.py --topics topics.json --material 01_素材 --out 02_封面 --variants 5

产出 02_封面/<id>/<id>.<n>.jpg,即每条选题 × 5 张背景。

调文案时不用等整批,单图试排:

python %SK%\scripts\make_covers.py --topics topics.json --only 01 --bg 某张图.jpg --out 试排

4. 拼审图大图,你来挑

python %SK%\scripts\contact_sheet.py --covers 02_封面 --out 03_审图 --cols 5 --rows 4

产出带编号的大图。打开看,报编号就行——20 条 × 5 张 = 100 张,一张张点开不现实。


五、哪些事必须你做

Codex 做不了这三件,别等它:

  1. 扫码登录xhs_fetch.py login 会弹浏览器,只能本人扫)
  2. 选题过目(第 1 步之后)
  3. 挑最终封面(第 4 步,报编号)

六、跑完长这样

260910_AI副业/
├── topics.json          20 条选题
├── 01_素材/01/…20/      每条选题一个目录,各 ~12 张真实场景照
├── 02_封面/01/…20/      每条 5 张变体,共 100 张 960×600
└── 03_审图/审图_01.jpg…  每张 20 格,报编号用

七、参数速查

role(决定颜色,不决定字号) hero = 霓虹色,放结论 / 冲突 / 身份 | sub = 白色,放铺垫 / 限定 / 语气。搞反就没钩子。

style(配色,别自创第八种,否则一批封面不像一套)

适合
yellow#FAFF00万金油,占对标一半以上
green#00FF19出路 / 机会
cyan#1AFFEB科技 / 工具
magenta#FF00C0对立 / 扎心
red#FE0A09警告 / 否定
blue#30A0F5理性劝告

decoplain 只描边(对标绝大多数)| block 橙色底块衬 hero 行 | scrim 羽化暗带 | auto 背景过亮过花时自动上(默认)

pos:默认自动避开背景繁忙区;要指定用 top / center / bottom,或 "y": 0.35 指死


八、排错

症状真正的原因怎么办
字号偏小、缩略图糊单行超过 10 个汉字宽改文案。这是几何约束(字号 ≈ 目标宽 ÷ em 数),排版救不回来
字溢出画布 / 大小不一某行太长,或 role 全给了 hero拆行,或把铺垫行改 sub
字压在杂物上自动选位没找到干净带"pos": "top",或 "deco": "scrim"
一批封面长得都一样选题挤在同一个公式里回第 1 步,按公式覆盖度重出
fetch 报登录态失效profile 过期重跑 login
取到 0 张登录态刚失效,或关键词太抽象先重登;仍 0 就换词——搜「人工智能」只出概念插画,得搜「程序员工位」这种
报找不到粗黑体字体缺失make_covers.pyFONT_CANDIDATES 加路径

九、已知边界(先知道,别踩)


十、想改版式先读这个

references/对标版式解析.md —— 65 张对标图的逐像素量化结果,所有参数都是量出来的不是调出来的。 动手改之前至少看这三条,它们都跟直觉相反:

  1. 层级靠颜色和行长,不靠字号——对标三行文案墨迹高都是 75px,同一个字号。做成”主标题更大”立刻变 PPT 标题页。
  2. 多行共用字号时基准取 min 不取 max——取 max 会把短行算出的巨大字号套到长行上,直接冲出画布。
  3. 描边(≈0.075×字号)是命根子,不是装饰。砍它等于砍掉整套版式。

验证改动别用肉眼比:拿对标图当背景,复刻同一份文案,字压在原字上就说明参数对了。