观象纪 · 视频生产 Pipeline
单一权威源。流程、工具栈、6 件套、缺口清单都在这里维护,CLAUDE.md 只做指针。
最后更新:2026-06-19
一、工具栈(本地优先 · 4090 24GB)
通用基础设施
| 用途 |
工具 |
凭据 / 路径 |
| 外挂盘根目录 |
exFAT 1TB |
/media/deano94/A65C09506151882F/ |
| ComfyUI 安装 |
节点共享 |
/media/deano94/A65C09506151882F/ai-storage/ComfyUI/ |
| ComfyUI venv |
nexus 共享 |
~/nexus/.venv-wan/bin/python |
| ComfyUI 启动 |
API 模式 |
cd <comfy_dir> && ~/nexus/.venv-wan/bin/python main.py --listen 127.0.0.1 --port 8188 |
| GPU 锁 |
与 lifelog/nexus 协调 |
/tmp/gpu-coord/nexus-wan.busy(跑前 touch、退出删;锁存在期间 lifelog 自动卸模型) |
生图:Z-Image-Turbo(深度调用规格)
模型配件路径
| 配件 |
路径 |
| 主模型 |
models/diffusion_models/z_image_turbo_bf16.safetensors(bf16, ~12GB) |
| 文本编码 |
models/text_encoders/qwen_3_4b.safetensors(Qwen3-4B, ~7GB) |
| VAE |
models/vae/ae.safetensors(Flux 同款 VAE) |
核心特性
- 6B 参数 / 16GB VRAM / Apache 2.0 商用许可
- 中英双语 prompt(Qwen3-4B 文本编码器)
- 强 instruction following(指令依从性 SOTA 级)
- 文本渲染顶级(海报字幕、中英文均清晰)
- distilled 模型:不需要 CFG / negative prompt
- 4090 24GB:1024×1536 / 9 步 ≈ 10-15 秒/张
官方推荐参数(必背)
| 参数 |
值 |
备注 |
| steps |
9(实际 8 次 DiT forward) |
不要降到 4(伤质量) |
| cfg / guidance_scale |
1.0 |
distilled,必须 1.0;diffusers 用 0.0 |
| sampler |
res_multistep(默认) |
备选:dpmpp_sde / euler_ancestral |
| scheduler |
simple(默认) |
备选:beta / ddim_uniform / sgm_uniform |
| ModelSamplingAuraFlow shift |
3 |
默认;提到 7 增加随机但可能伤质量 |
| CLIPLoader type |
lumina2 |
非显然但必填 |
| denoise |
1.0 |
文生图标准 |
| max_sequence_length |
1024(ComfyUI 自动) |
默认 512,长 prompt 需要 1024 |
推荐分辨率
| 用途 |
尺寸 |
备注 |
| 主轴横屏 |
1280 × 720 |
抖音 / B 站 横屏视频 |
| 主轴宽屏 |
1024 × 576 |
16:9 电影感 |
| 标准方图 |
1024 × 1024 |
思考、概念图 |
| 小红书竖屏 |
720 × 1280 |
多平台改造 |
| 海报 / 封面 |
1024 × 1536 |
抖音封面 / 小红书封面 |
| 极限上限 |
~4MP(2000 × 2000) |
超过会有 anomaly;2MP 是甜区 |
调用方式(ComfyUI API)
Runner 脚本:~/guanxiangji/scripts/zimage_comfy.py
# 启动 ComfyUI server(一次)
cd /media/deano94/A65C09506151882F/ai-storage/ComfyUI
~/nexus/.venv-wan/bin/python main.py --listen 127.0.0.1 --port 8188
# 跑一张图
python3 ~/guanxiangji/scripts/zimage_comfy.py \
--prompt "勒泰塔从巴黎黑暗街道升起,铁件覆盖薄霜" \
--width 1280 --height 720 \
--seed 42 --steps 9 \
--out ~/guanxiangji/topics/<slug>/images/scene_01.png
ComfyUI Workflow JSON 结构(10 节点,已 verified)
UNETLoader(z_image_turbo_bf16) → ModelSamplingAuraFlow(shift=3)
↓
CLIPLoader(qwen_3_4b, type=lumina2) → CLIPTextEncode(prompt) → ConditioningZeroOut (作 negative)
↓
EmptySD3LatentImage(w, h) ────────────→ KSampler(steps=9, cfg=1, res_multistep/simple, seed=N)
↓
VAELoader(ae) ──→ VAEDecode ──→ SaveImage
Prompt 写作指南(实测推荐)
- 中英文都行 — Qwen3-4B 双语理解强
- 长 prompt 友好 — 600-1000 字也 OK(约 800-1333 tokens,自动启用 max_sequence_length=1024)
- 图像中要出现的文字 用双引号
"" 包围,如 '招牌上写着 "观象纪"'
- 没有 negative prompt — distilled 模型不需要
- 风格描述:可以详细描述材质 / 光照 / 镜头 / 景深,模型理解能力很强
- 海报场景:可以指定字体大小排版
升级路径
- Z-Image-Base(完整版):50 steps + cfg,质量更高,未来发布
- Z-Image-Edit(图像编辑版):用于修图 / 局部重绘,未来发布
- 官方计划 ControlNet / LoRA 训练教程跟进
i2v:Wan 2.2 14B I2V(fp8 + Lightning 4-step LoRA)
| 配件 |
路径 |
| UNet 高噪声 |
models/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors |
| UNet 低噪声 |
models/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors |
| Lightning LoRA 高 |
models/loras/wan22_i2v_lightning_4step_high.safetensors |
| Lightning LoRA 低 |
models/loras/wan22_i2v_lightning_4step_low.safetensors |
| CLIP |
models/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors |
| VAE |
models/vae/wan_2.1_vae.safetensors |
- 14B fp8 + Lightning 4-step(极速)
- 横屏 1280×720(注意 16 的倍数)
- 16 fps 原生 → 后期 ffmpeg fps 滤镜上 30 fps
- B-roll 短插入:49 帧 = 3 秒
- 氛围长垫:81 帧 = 5 秒
- 渲染时间 5s 视频 ≈ 5-8 分钟(4090)
- 默认 seed 42(同 seed 表情/动作演化一致)
- 参考 runner:
~/nexus/assets/broll/i2v_comfy.py(横屏适配后即可用)
其他工具
| 用途 |
工具 |
路径 / 凭据 |
| TTS |
Fish Audio s2-pro + 克隆音 D |
cf8d02eeaf9e480c8ba11dfe7865e21b · key ~/.config/mayagi/fish_audio.env |
| ASR |
DashScope qwen3-asr-flash-filetrans |
key 在 ~/.agents/skills/douyin-creator-scan/.env (DASHSCOPE_API_KEY) |
| 选题对标 |
自建 scan_keyword.py |
~/guanxiangji/scripts/scan_keyword.py,token 在 ~/.claude/skills/video-to-subtitle-summary/.env |
| 调研 |
tavily(默认)/ searxng(备用) |
MCP 已配 |
| 抖音数据回写 |
TikHub API |
同上 token |
| 剪辑 |
ffmpeg |
系统 |
| 字幕生成 |
ASR words.json → ass / SRT |
自建脚本 |
| BGM |
待确定(自由选) |
候选:Suno / ACE Studio / 版权库 |
| SFX |
待确定 |
候选:Epidemic / freesound / 自建 |
| 封面 |
Z-Image-Turbo |
同生图 |
| Markdown→HTML→ECS |
scripts/md_to_ecs.py |
自建 |
二、四段流水线(21 步)
┌─ 内容层 (claude code · ~/guanxiangji) ──────────────────────┐
│ ① 选题 → ② 调研 → ③ 文稿 → ④ TTS → ⑤ ASR → ⑥ 交付包 │
└────────────────────────────────────────────────────────────┘
│
▼ handoff.md
┌─ 生产层 (本地 ComfyUI / 4090) ──────────────────────────────┐
│ ⑦ 分镜 → ⑧ 图片 → ⑨ i2v → ⑩ 光流 → ⑪ 合片 │
└────────────────────────────────────────────────────────────┘
│
▼ 主轨
┌─ 装饰层 (本地 ffmpeg) ──────────────────────────────────────┐
│ ⑫ 字幕 → ⑬ 关键词 hit → ⑭ 图片卡 → ⑮ BGM → ⑯ SFX → ⑰ 片头/片尾 │
└────────────────────────────────────────────────────────────┘
│
▼ 成片
┌─ 发布层 (人工) ─────────────────────────────────────────────┐
│ ⑱ 封面 → ⑲ 标题/描述/标签 → ⑳ 发布 → ㉑ 数据回写 │
└────────────────────────────────────────────────────────────┘
每步产出/工具详见第四节"每步规格"。
三、内容层"6 件套"铁律(写文稿 / 选题时必须满足)
不是 codex 老套路 — 我们重新设计的。每条视频都要全部覆盖:
1. 前 3 秒钩子
- 必用公式之一:反事实 / 极端尺度 / 未解 / 反常识 / 时间跨度 / 数字震撼 / 第一视角
- 没钩子 = 没完播率
2. Cold open(开头 5-10 秒密集闪屏)
- 整集最炸 5-8 张画面快速闪过 + 钩子句
- 用户在前 5 秒就看完"这一集值不值"
3. 留人锚 60-90 秒一次
- 中段每隔 60-90 秒插一句 "等下我们看 X" / "但你以为这就完了?"
- 防中段跳出
4. 章节小标题(中间字幕)
- 长视频每章打 2-4 字小标题("8 分 20 秒"、"-200°C"、"深海")
- 结构感 + 锚记忆点
5. Cutaway / B 卷镜头计划
- 每章主轨外另列 1-2 个 B 卷镜头(讲铁塔时插铆钉特写、讲热泉时插发光虾)
- 防视觉疲劳,提完播率
6. 系列钩子结尾
- 末世三部曲、未解之谜系列 等 — 结尾埋下一集,IP 化
- 用户主页关注转化关键
四、每步规格(产出 / 工具 / QC)
内容层(claude code · ~/guanxiangji/topics/<YYYYMMDD_slug>/)
| # |
步骤 |
产出(扁平命名,无 slug 后缀) |
工具 |
QC |
| ① |
选题 |
brief.md + benchmark.md(TikHub 扫描) |
guanxiangji-topic-ideation skill + scripts/scan_keyword.py |
视觉/钩子/红线/信息密度四维 ≥4⭐,预审 0/10 硬红线 |
| ② |
调研 |
research.md + forbidden.md |
tavily / searxng + 权威来源(NASA / Caltech / NOAA) |
每条数据点有来源 URL |
| ③ |
文稿 |
retention.md + emotion.md + script_v1.txt + title.md |
claude 写,6 件套全覆盖 |
1700-1850 字 ≈ 5.5-6 分钟 (speed 1.1) |
| ④ |
TTS |
audio/voice.mp3 + audio/tts_report.json |
Fish s2-pro + 克隆音 D + bracket |
试听无字音错、无机械感 |
| ⑤ |
ASR |
asr/words.json + asr/chars.json + asr/timeline.html |
DashScope qwen3-asr-flash-filetrans |
字级时间轴误差 < 50ms |
| ⑥ |
交付包 |
handoff.md + engagement.md |
claude 打包 |
包含一切下游所需 metadata |
生产层(本地 · ~/codex/guanxiangji_video_projects/<YYYYMMDD_slug>/)
| # |
步骤 |
工具 |
关键参数 |
产出 |
| ⑦ |
分镜 |
claude 推理 + 文稿 + ASR 时间轴 |
每镜头 = 1 主图 + 0-2 cutaway + 时长 + 转场 |
storyboard.csv |
| ⑧ |
图片 |
Z-Image-Turbo (ComfyUI API) |
1024×1536 横屏 / 9 步 / bf16 |
images/scene_<n>_<v>.png |
| ⑨ |
i2v |
Wan 2.2 14B I2V (ComfyUI API) |
1280×720 横屏 / 49 帧 (3s) 或 81 帧 (5s) / seed 42 / Lightning 4-step |
clips/scene_<n>.webm |
| ⑩ |
光流补帧 |
ffmpeg minterpolate 或 RIFE |
16 fps → 30 fps |
clips/scene_<n>_30fps.mp4 |
| ⑪ |
合片 |
ffmpeg 拼接 + 对齐 ASR |
主轨无字幕 |
cut_v1.mp4 |
装饰层
| # |
步骤 |
工具 |
输入 |
| ⑫ |
字幕 |
ffmpeg ass / SRT |
ASR words.json |
| ⑬ |
关键词 hit |
ffmpeg drawtext 动效 |
每 30-60s 一个 2-8 字爆炸标 |
| ⑭ |
图片卡 |
Z-Image-Turbo + ffmpeg overlay |
数据卡 / 引述卡 / 对比卡 |
| ⑮ |
BGM |
(待定 BGM 工具) |
主 + 高潮 + 转场三层 |
| ⑯ |
SFX |
自建 SFX 库 |
落锤点 / 转折 / 升华 |
| ⑰ |
片头/片尾 |
模板(统一视觉语言) |
3 秒品牌 + 系列卡 + 下集预告 |
发布层
| # |
步骤 |
工具 |
| ⑱ |
封面 |
Z-Image-Turbo + 修图 |
| ⑲ |
标题/描述/标签 |
见每集 title.md |
| ⑳ |
发布 |
抖音 PWA / APP(人工,必勾"AI 生成"声明) |
| ㉑ |
数据回写 |
TikHub 自己视频数据 → analytics/{24h,72h,7d}.md |
五、真实剩余缺口(5 项 · 这周补齐)
按 ROI 排序:
- ⬜ A/B 钩子测试(dou+ 小测)— 第 2 集开始
- ⬜ 数据回写自动化(TikHub 拉自己视频 24h/72h/7d)
- ⬜ 多平台版本改造(抖音→ B 站 8-15 分钟 / 小红书 90s 竖屏)
- ⬜ 评论区运营脚本(每集发布前出
engagement.md)
- ⬜ 系列封面统一模板(末世三部曲三集一次性出模板)
已做完的:
- ✅ TikHub 同选题对标扫描(scripts/scan_keyword.py)
- ✅ 限流/被禁红线表(rules/选题红线核查表.md)
- ✅ Fish 克隆音色沉淀(memory/reference_fish_audio_clone.md)
六、上下游边界
| 层 |
谁做 |
在哪 |
不做什么 |
| 内容层 |
claude code 主代理 |
~/guanxiangji/topics/<slug>/ |
不画分镜(等 ASR 时间轴)/ 不调 ComfyUI / 不剪辑 / 不发布 |
| 生产+装饰+发布 |
claude code 在 ~/codex/guanxiangji_video_projects/ |
子目录 + ComfyUI 本地 |
不改文稿 / 不选题 / 不写禁说清单 |
切换点:交付包 handoff.md 写完那一刻 → 进入生产层
七、目录约定
~/guanxiangji/topics/<YYYYMMDD_slug>/
├── brief.md 选题一句话/钩子
├── benchmark.md TikHub 同选题扫描
├── research.md 调研笔记 + 来源
├── forbidden.md 禁说清单
├── retention.md 留人锚(每 60-90 秒一锚)
├── emotion.md 情绪曲线(指导 BGM/SFX/画面)
├── script_v1.txt 文稿 v1
├── script_v2.txt 改稿定稿
├── title.md 标题候选
├── engagement.md 评论区运营
├── handoff.md 给下游的对接说明(最终产物)
├── audio/
│ ├── voice.mp3
│ └── tts_report.json
├── asr/
│ ├── words.json
│ ├── chars.json
│ └── timeline.html
└── analytics/
├── 24h.md
├── 72h.md
└── 7d.md
下游 ~/codex/guanxiangji_video_projects/<slug>/ 自由组织(默认 storyboard/images/clips/edit/delivery 五层)。
八、流水化目标
"下一集从立项到发布,不超过 5 个工作日"
| 日 |
内容 |
| Day 1 |
选题 + 调研 + benchmark(4h) |
| Day 2 |
文稿 v1 + v2 + 6 件套(4h) |
| Day 3 |
TTS + ASR + handoff(2h) |
| Day 4 |
分镜 + Z-Image 出图 + Wan i2v(8-12h,大头) |
| Day 5 |
合片 + 字幕 + BGM + SFX + 封面 + 发布(6-8h) |
第 1 集磨流程,第 2 集后压到 5 天。
九、第 1 集(太阳熄灭地标)当前状态
✅ ① 选题 / ② 调研 / ③ 文稿 v1(1574 字 / 5.5 分钟)
✅ 工具栈本地化(Z-Image + Wan 2.2 14B 路径 + runner 脚本 verified)
⬜ 你审稿 → v2 定稿 ← 当前阻塞点
⬜ ④ TTS(Fish 克隆音 D)
⬜ ⑤ ASR
⬜ ⑥ handoff.md(交付下游)
⬜ 补完 brief.md / benchmark.md / emotion.md / engagement.md / retention.md(v2 后并行)
⬜ ⑦-㉑ 进入生产层
阅读 URL:
- 文稿:https://files.beacon.xin/guanxiangji/topics/20260619_solar_blackout_landmarks/
- Pipeline(本文档):https://files.beacon.xin/guanxiangji/pipeline/
十、收工日志
| 日期 |
主要进展 |
| 2026-06-19 早 |
立项 / 公约红线 / 预审 + 生成 skill / EP01 选题确定 |
| 2026-06-19 晚 |
EP01 文稿 v1 / 工具栈本地化(4090 / Z-Image / Wan 14B) / Pipeline 重写 / CLAUDE 索引化 / 文件命名扁平化 / Z-Image 深度调用文档 |
观象纪 · PRODUCTION_PIPELINE.md