凤希AI 技能操作手册
33 个技能,怎么用
这不是一份功能介绍。这是一份「你该说什么话、它会给你什么产物、它不干什么」的对照表。 每张卡片都按同一个格式写:一句话是什么、你张口怎么说、想手动跑时打哪条命令、产出什么、边界在哪。
00怎么用这本手册
别从头读到尾。按你此刻手里有什么来查。
这 33 个技能不是按「技术模块」分的,是按最终产出什么分的。所以查法也只有三种:
| 你现在的状态 | 怎么查 | 去哪一节 |
|---|---|---|
| 知道要什么产物 "我要一张封面" |
直接翻对应的那一摊。图 → 第三摊,片 → 第四摊,字 → 第一摊。 | 二~六节 |
| 知道要做什么事 "我要发一篇公众号" |
翻「四条端到端流水线」,那里是按业务串好的顺序,不用自己拼技能。 | 第七条 |
| 知道技能名 "fxai-poster 怎么跑" |
翻附录速查表,一行一个,带入口命令。 | 附录 A |
01开工前的四条前提
这四条不满足,后面所有技能都会以一种很奇怪的方式失败。
1 · 一份全局配置,所有技能共用
路径固定在 ~/.workbuddy/fxai_global.json。技能不各自存配置,全部读这一份:
| 字段 | 管什么 | 本机当前值 |
|---|---|---|
comfy_url | ComfyUI 地址,生图/出片/写歌全走它 | 127.0.0.1:8188 |
whisper.* | 转写服务,本机 8185 / 云端两档 | prefer_local: true |
tts.engines | 两套 TTS:qwen3tts 8086 / cosyvoice 8182 | default_engine: qwen3tts |
tts.speakers | 音色表,含参考音频与参考文本 | 2 个音色 |
weixin_gzh | 公众号凭据 + 账号清单 | 凤希AI伴侣 |
face.profiles | 换脸服务,一台机器一档 | 仙宫云 · FaceFusion |
2 · ComfyUI 是「服务端模式」——这条最容易踩
所有要 GPU 的技能(生图、四视图、场景图、MV、短剧、写歌)都不自己启服务,只按地址发 HTTP。
- 本机优先:先探
127.0.0.1:8188,通了走本机(不计费),探不通才走云(按秒计费)。 - 本机探不通 ≠ 我来启动。服务由「凤希本地AI控制台」或启动器管,技能只负责报错让你去启。
- 资源在不在只认服务端。你在本机
ls看到有,不代表服务器上有;反过来也一样。 - 产物是「下载」语义。本机部署从
output\复制进项目,远端走下载接口拉。
3 · 一个选题一个目录
目录结构是固定契约,好几条流水线会按名字找文件:
目录本身就是备份。不用另建归档,一个选题一个文件夹,做完不删。
4 · 两条硬规矩,违反会静默失败
image/ 里不要放中文名图片。
封面.png、封面.jpg 会被安全策略直接拒掉(复制、保存、重命名全被拦)。
一律用 ASCII 名:cover.png、fig1.png、scene_01.png。
② 正文 HTML 里的图片 src 要写绝对路径。 上传公众号的脚本不解析相对路径,是直接拼当前目录找文件的,写
image/fig1.png 会找不到。
02全景:六摊分工
按「最终产出什么」分,刚好六摊。前三摊是原料,第四摊是组装,后两摊是地基和体检。
| # | 这一摊 | 数量 | 干的事 |
|---|---|---|---|
| 一 | 写作与脚本 | 6 | 把想法变成能直接进下一道工序的文本:口播稿、分镜、小说、公众号、战斗设计、视频提示词 |
| 二 | 声音 | 4 | 写歌、配音、转写、人声分离。四个首尾相接,能自己成小闭环 |
| 三 | 图像 | 7 | 文生图、场景图、角色四视图、海报、角色库、换脸、转 JPEG |
| 四 | 视频 | 9 | 四条成片产线(数字人 / 幻灯片 / MV / 短剧)+ 三个叠字工具 + 一个自动剪辑 |
| 五 | 基础设施 | 5 | ComfyUI 客户端、进度监听、两个云平台部署、自动更新、技能打包 |
| 六 | 规范与复盘 | 2 | 底层公共件、规范体检、内容复盘入库 |
这一摊的产出有一个共同点:全是「能喂给下一个技能的格式」。口播稿的段落天然适合 TTS,分镜天然适合出图,提示词天然适合视频生成。不是巧合,是写完就在互相喂。
把一段原文或一个想法,变成带情感语气标签的口播稿——念出来像人说话,不是念稿。
口播文案_标签.md——每段带「用…的语气说」标签,下一道工序直接吃写一集短剧,或把已有剧本拆成逐镜可拍的分镜脚本,顺手导出每镜的提示词。
短篇到长篇,带章节管理、标点规范化、段落重排和签约验收。
签约验收报告.md从选题到草稿箱的整条链路:写稿、排版、画封面、导正文图、建草稿。本摊唯一会对外发东西的技能。
quality=95 + subsample=0正文.html,用 news.html打斗戏专门件:从剧情卡到动作方案、招式术语取词、空间调度、分镜表。写打斗卡词的时候靠它。
MiniMax Hailuo H3 的提示词写作规范。MV、口播、短剧三条产线共用同一套——人物不一致、镜头乱动,先来查这一册。
全参考 Ref2VA + 音频参考(multiref 多参考)→ 六段式
只有 4 个,但这 4 个是首尾相接的:写歌出一首歌 → 人声分离拆出纯净人声 → 送给 TTS 改音色 → 改完的音频被 whisper 转写回文字。一个小闭环。
文本转语音。双引擎(qwen3tts / CosyVoice3),支持多音色、逐段换情绪、语速微调。
给一段风格描述 + 一段带分段标签的歌词,出一首能听的中文歌。
[Verse] [Chorus] [Bridge]本地离线 STT。录屏、会议、口播视频扔进去,拿回可编辑文本。用得最多的其实是它。
--words)KMP_DUPLICATE_LIB_OK=TRUE拆出纯净人声和伴奏。Mel-Band RoFormer 工作流,跑在服务端 ComfyUI。
这一摊有个隐藏的主角:角色库。生图、四视图、换脸都从角色库取参考图,所以出来的脸才是同一张。先有角色,才有稳定的图。
中文提示词直接生图,千问2.1 模板。生成的是角色库里的自有形象,避开他人肖像。
两种模式:空场景(只画环境,供 MV multiref 用)和含人物(把人画进场景,供 single/multi、短剧用)。
做「一致人物形象」的设定图。MV 多参考的人物绑定、短剧角色建档、动画角色设定,都从这一步开始。
三种模式,按「要不要 AI 出底图」来选。视频封面、短剧封面、MV 封面都走它。
make_cover.py,1152×512 固定规格),别用这个代替本机角色表 ai_digital_human 的增删改查。改完客户端「AI伙伴」和「多角色配音」立刻可见。
换脸、视频换脸、唇形同步、老照片修复上色、人脸增强、去背景。任务提交到云端人脸服务。
--source(头像);唇形同步必须给 --audio 且目标是视频。缺了服务端会拒把 PNG / 源图转成最高质量 JPEG,可按目标体积压。公众号发布版的固定规格就在这。
quality=95 + subsample=0 + optimize=True——这是公众号发布版的规格,别改这一摊分两类:四条成片产线(数字人 / 幻灯片 / MV / 短剧,各自从头到尾)和三个叠字工具 + 一个剪辑(能套在任何视频上,不假设项目结构)。
四条成片产线
口播音频 → 数字人出镜讲话的成片。走 multiref 多参考,吃 GPU,产线最重的一条。
image/ → S2 cards.json
→ S3 渲染+字幕 → S4 finalize.py → S5 check_delivery.py(全绿才算完)
成片_最终_{W}x{H}.mp4——画面 + 字幕 + 顶部标题卡 + 前 1.2s 静音写实封面。成片_{W}x{H}.mp4 只是中间产物口播文案配幻灯片式画面。纯 CPU,不占 GPU,出片快。同一段音频可以反复换画面。
音乐 → 图片 → MV 一条龙。强制分两段跑,中间停下来让人改写分镜——这是设计,不是缺陷。
一集短剧的自动化产线:分镜 → 出图 → 逐镜出片 → 合并 → 烧台词。最重、最贵的一条。
三个叠字工具 + 一个剪辑(能套任何视频)
这四个不假设项目结构,给个 mp4 就能用。做数字人、做 MV、做客户给的片子,都能直接调。
whisper 提时间戳 → 校正歌词文字 → 生成 SRT/ASS → 用带 libass 的 ffmpeg 烧录。全程本地,不上传。
画面顶部按时间段压上去的文字层。跟节拍走,不跟语音走。
--no-titles)半透明形状贴片:卡片、气泡、胶囊、便签、绶带。八套主题,本地画 PNG → 一次性 overlay,不逐帧编辑。
dark light brand tech neon fresh sunset mono——按视频调性挑,不要全用 dark长视频自动剪成精华合集并烧字幕。按内容重要性 / 音频能量 / 场景边界挑段,交叉溶解拼接。
公共件。一段音频 + 参考图 + 提示词,按 H3 三模式出视频。MV 和数字人口播都跑在它上面。
这一摊平时不直接叫,但前面四摊全踩在它上面。出问题时第一个要查的就是这里。
| 技能 | 干什么 | 什么时候直接用它 |
|---|---|---|
| fxai-workflow ComfyUI 客户端公共层 |
工作流 JSON + comfy_client.py。提交、下载、占位符注入、探活,全在这。 |
查服务端铁律、换服务器、改工作流节点 |
| fxai-comfyui-watcher 进度监听 |
订阅 fxai:progress / fxai:task_saved 事件,按 prompt_id 路由。取代反复 sleep 轮询。 |
提交任何 GPU 任务后等结果。命令:comfy_watch.py |
| fxai-xiangongyun-deploy 仙宫云部署 |
一键装机:探活、装节点、下模型、开机关机。换脸服务的机器就在这。 | 新开实例、环境装坏、要重装 |
| fxai-onethingai-deploy OneThingAI 部署 |
同上,另一个云平台。deploy.py plan / run / probe |
用 OneThingAI 的机器时 |
| fxai-auto-update 技能包更新 |
拉官网版本号 → 下整包 → 逐文件落盘。本地改过的文件不覆盖,进三方合并队列。 | update.py check / update / tasks / rollback |
probe 体检 → plan 看要装什么多大 → run 开装。
--no-models 只装节点,--no-nodes 只下模型,排障时分开跑最快。
这不是技能,是公共目录,没有可触发的能力。提供地址规范化、代理绕过、统一 HTTP 出口、口播文案校验。
对一条已发布或已写好的内容做诊断,结论按岗位领域结构化入库,下次能查到。
07四条端到端流水线
不想自己拼技能的时候,照这四条顺序走。每条都是「上一道的产物就是下一道的输入」。
A · 一篇公众号图文
- 选题 + 写稿 产出
正文.md。想不出写什么就先聊,别硬凑。 - 排版 把 md 排成
article/news.html。章节标题、正文、金句框、图注都有固定样式。别叫「正文.html」,会被安全策略锁读。 - 画封面
make_cover.py --title "A|B" --motif cloud→ 1152×512。先写到非 image 目录再用 ASCII 名 cp 过来。 - 导正文图
export_figures.py --dir image→ 宽 1152 的发布版 JPEG。HTML 里 src 写绝对路径。 - 建草稿
wx_api.py draft-add。到这一步就该打开手机预览了。 - 发布 只有你说了「发布」才走 publish。
B · 一条数字人口播视频
- 写口播稿
fxai-voiceover-script→口播文案_标签.md。人称用「我」。 - 配音
fxai-voiceover按标签逐段念,拿回分段 wav。 - 跑产线
dh_pipeline.py --project --script,走 S0→S3。 - 场景图拷回本地 S1.5 这步不能省,图只留在服务端缓存 = 没交付。
- 收尾
finalize.py叠标题卡 + 封面 →check_delivery.py全绿。 - 交付
成片_最终_{W}x{H}.mp4。
C · 一支 MV
- 写歌
fxai-yue2,风格 + 带[Verse]/[Chorus]标签的歌词。 - 第一段
produce_song.py --phase music:出歌 + 歌词对齐 + 分镜草稿。 - 人工改写分镜 这是故意留的口子。逐条改
分镜剧本.md,别直接进下一步。 - 第二段
--phase render:出图 + 出片 + 烧字幕。字幕复用,不重跑 whisper。
D · 一集短剧
- 剧本 + 分镜
fxai-short-drama-script,打斗镜先找fxai-combat-design取招式术语。 - 角色建档
fxai-fourview-gen出三视图,喂给多参考模式,脸才不飘。 - 自检
drama_pipeline.py --check,确认 ComfyUI 在线、模板在。 - 出片 逐镜出片 → 合并 →
--burn烧台词。 - 叠字 需要就加标题卡 / 信息贴片;不需要就跳过。
fxai-lyric-subtitle,不用从头走。B / C / D 三条出片后发现某一镜不对?别整片重跑,看下一节:只重做那一镜。
08某个镜头做坏了,只重做那一镜
数字人 / 短剧 / MV 走同一套返修机制;幻灯口播是本地渲染,单段整片都随便。
先分清手里这条视频是哪一类——两类出片方式不同,返修策略正好相反。
| 类别 | 产线 | 怎么出片 | 返修策略 |
|---|---|---|---|
| 服务端生成 | 数字人 / 短剧 / MV | H3 按 9.4 秒切段渲染,其余段命中服务端缓存 | 必须单镜返修 整片重跑约 7 倍时间 |
| 本地渲染 | 幻灯口播 | HTML 精确画图 + 配音 + 拼接,纯 CPU,几分钟 | 单段、整片都行,反正都快 |
A · 数字人 / 短剧 / MV:单镜返修是唯一正解
这三条是同一套机制,判据和定位都在 fxai-common/rework.py,别在某个技能里另写一套——两边判据迟早走岔。
| 产线 | 单镜入口 | 起点 | 产物 |
|---|---|---|---|
| 数字人 | refix.py --shot 7 |
1 起 | 服务端自动合并,直接是完整成片 |
| 短剧 | drama_pipeline.py --single-shot 7 |
1 起 | merged 通常是完整成片;被拆成独立段文件才需拼回 |
| MV | produce_song.py --mv-segment=6 |
0 起 | 只是那一段裸片,必须拼回 |
上表是简化写法。完整命令还要带项目 / 分镜表参数:
rework.shot_no_of(秒数) 让程序给号,别自己数。
先确定是第几镜
- 从秒数倒推 用户说「第 42 秒人物侧脸不对」,
rework.shot_no_of(42)直接给镜号。 - 看改动了哪几镜 改完分镜表不确定影响范围,
rework.changed_shots(项目, 分镜表)对比上次渲染签名,返回清单。 - 要命令,不要自己拼
rework.refix_command(项目, [7])返回该跑的那条命令,省得手抄参数。
多镜一起返修,一次提交
三段都有问题就一次交三段,别分三回手动跑:
模板里的 {shot} 是 1 起镜号,{seg} 是 0 起段号,{pos} 是本次第几个——按各技能的基准选,别混用。只看计划不跑加 --plan-only,只验命令拼得对不对加 --dry-run。
断了之后:从第 N 镜跑到结尾
跑到一半断了——超时、断网、关机、进程被掐——不用从头再来。给一个起始镜号,结束索引写 -1,后面所有段一次跑完。
先让程序告诉你断在哪,别自己数文件:
它会打「已生成 N 镜 / 缺失第 X 镜 / 下一镜 第 N 镜 / 续跑参数 start_index=N」。要机器读加 --json,拿 next_index(0 起索引)和 next_shot(1 起镜号)。
拿到起始索引后,按产线投一次区间任务(下面以「从第 7 镜跑到结尾」为例):
| 产线 | 区间续跑 | 说明 |
|---|---|---|
| 数字人 | --start-index 6 --end-index -1 |
CLI 直接支持,其余参数照原命令 |
| 短剧 | build_workflow(shots, start_index=6) |
CLI 只开了 --single-shot,区间走这个函数 |
| MV | gen_mv(..., start_index=6, end_index=-1) |
CLI 只开了 --mv-segment,区间走这个函数 |
(0, -1) 和 (N, -1) 是两件事。前者是整片重做,连角色四视图都重跑;后者是从第 N+1 段续跑,前面的段命中缓存不动。
is_rework() 的判据就是「不是 (0, -1) 就算返修」,所以起始写 6 才会真的只渲后半段——写成 0 就又变成整片重跑了。
区间提交还是逐镜串行?看缺的镜连不连续:
- 缺的是连续一段(从第 7 镜往后全没出)→ 用区间
--end-index -1,一次投完、只回一条成片,最省心。 - 缺的是零散几镜(只缺第 3、7、9 镜)→ 用
rework_batch.py --shots 3,7,9逐镜串行,断了只丢一镜。
幻灯口播没有这套机制:它是本地渲染,断了直接整片重录,几分钟的事,不用算索引。
三条铁律:违反任一条,成片里就有旧段
- 必须串行 服务端每渲完一段,都会拿其它段的缓存拼一条完整成片回来。并行提交 → 互相覆盖对方刚生成的段。
- 只认最后一段渲完那次 中途几次返回的成片都是半成品,别拿去发。
- 全部渲完才准收尾 字幕、封面、标题卡、交付自检都排在最后一段之后。提前做等于白做。
怎么确认「真在返修」,而不是被跳过
看日志。这两行出现才算数:
没有这两行,说明参数被「已有产物 → 跳过」吃掉了——命令跑完、退出码 0、成片一个字节没变。数字人真出过这事:10 镜里只有第 7 镜侧脸不对,本该只重渲 9.42 秒,结果整片 88 秒重跑了 70 分钟。
整片模式
(0, -1) 只留给「分镜整体重来」——换了角色、改了画风、全片重排这类。
两个容易踩的细节
- MV 的产物是裸片,不是成片 时间从 0 起,必须
rework.splice_segment(成片, 裸片, 段号)拼回原位,再烧字幕。忘了这步,交付的是缺段成片。 - 短剧单镜提交会阻塞等合并 6~10 分钟常超过命令默认超时,进程被掐、日志也丢。但此时 pid 已写进
ep{N}_pid_single_shot={N}.txt、任务已进队列,提交是成功的——先核对这两处再决定要不要重投,盲目重投会重复占 GPU。
B · 幻灯口播:不用纠结,单段整片都行
它不走服务端视频生成,是 HTML 精确画图 + 配音 + ffmpeg 拼接,纯 CPU、不吃 GPU、几分钟出片。所以这里没有「9.4 秒一段」的概念,「一段 = 一图 = 一音频」天然可拆。
- 只有一段不对 改
segments.json那一段 → 重渲该段的图 / 音 →splice_segment(成片, 新段, 段号)拼回,几十秒。 - 好几段都不对,或改了大结构 直接整片重录,也就十几分钟。比一段段拆拼更省心,也更不容易出错。
09视频里的四种字,别混
这四个东西看起来都是「往画面上加字」,但跟的东西不一样,做的人也不一样。
| 叫什么 | 在哪 | 跟什么走 | 谁做 |
|---|---|---|---|
| 字幕 | 底部 | 语音,逐句 | fxai-lyric-subtitle |
| 标题卡 | 顶部 | 节拍 / 时间段 | fxai-title-card |
| 信息贴片 | 画面任意位置 | 讲解节奏 | fxai-infocard |
| 封面 | 片头 1.2s 静态帧 | 不跟时间 | 各产线的封面步骤 |
最容易搞错的是「信息贴片」。它不是从口播里提炼关键词,而是另外写的配合内容——名词解释、操作提示、注意事项、补充说明。半透明形状,不抢主体。
而且它是一次性 overlay:本地画好透明 PNG,ffmpeg 一把叠上去,不逐帧编辑视频。所以改贴片不用重渲染整条片子。
--no-titles / --no-infocards。
1012 个真实的坑
全是踩过的,不是想象的。碰到奇怪失败先扫这一节。
| # | 现象 | 原因和解法 |
|---|---|---|
| 1 | 往 image/ 存 封面.png 被拒 | 中文名图片触发安全策略。用 ASCII 名:cover.png、fig1.png。封面先写到别处再 cp 过来 |
| 2 | 上传公众号时图片全丢 | HTML 里 src 写了相对路径。脚本直接拼 cwd,必须写绝对路径 |
| 3 | 上传脚本读不到正文 | 文件叫了 正文.html,被安全策略锁读。改名 news.html |
| 4 | TTS 报「缺参考文本」 | zero_shot 模式硬要求 prompt_text。用 whisper 转写参考音频拿原文,补到配置里 |
| 5 | whisper 跑完没输出 | 没设 KMP_DUPLICATE_LIB_OK=TRUE。faster-whisper 的 libiomp5md.dll 重复初始化 |
| 6 | ffmpeg 报 Invalid argument | fade=...:alpha=1 放错位置。必须在 scale 之前,链固定为 format → fade → scale → overlay |
| 7 | ffmpeg 编不完,一直转 | -loop 1 -i png 是无限流,必须配 -shortest |
| 8 | overlay 的 x/y 不生效 | 本机 ffmpeg 不支持嵌套 if()。缩放放 scale 里做,overlay 用自带的 overlay_w/overlay_h 居中 |
| 9 | PIL 文字上留白大、下挤压 | getbbox() 把抗锯齿边算进去了。要按 alpha>=220 的实心墨迹量中心 |
| 10 | PIL 文字上下移动方向反了 | Image.transform 是逆映射。要上移 dy,矩阵的 f 得写 -dy |
| 11 | 数字人交付了但少了标题卡 | dh_pipeline.py 产出的是中间片。必须再跑 finalize.py,交付物只有 成片_最终_*.mp4 |
| 12 | 场景图在服务端有、项目里没有 | 忘了 S1.5 拷回本地。只留在 fxai_cache 等于没交付 |
11附录 · 一页速查表
33 行,按六摊排。打印出来贴墙上也够用。
一 · 写作与脚本
| 技能 | 一句话 |
|---|---|
fxai-voiceover-script | 原文/想法 → 带情感标签的口播稿 |
fxai-short-drama-script | 短剧剧本、分镜拆解、逐镜提示词导出 |
fxai-novel-writing | 短篇到长篇 + 标点规范 + 签约验收 |
fxai-weixin-gzh-publisher | 公众号全链路:稿 → 封面 → 图 → 草稿 |
fxai-combat-design | 打斗剧情、动作设计、招式术语、空间调度 |
fxai-h3-video-prompt | H3 视频提示词规范(三段式 / 六段式) |
二 · 声音
| 技能 | 一句话 |
|---|---|
fxai-voiceover | 文本转语音,双引擎多音色,逐段换情绪 |
fxai-yue2 | 风格 + 歌词 → 一首中文歌 |
fxai-whisper-transcribe | 本地离线 STT,带时间戳 |
fxai-vocal-separate | 拆人声 / 伴奏,或只去噪 |
三 · 图像
| 技能 | 一句话 |
|---|---|
fxai-comfyui-image-gen | 中文提示词文生图,角色库自有形象 |
fxai-scene-gen | 空场景 / 含人物场景图 |
fxai-fourview-gen | 角色四视图 / 三视图,人物一致性起点 |
fxai-poster | 海报封面,web / image / hybrid 三模式 |
fxai-role-management | 角色库增删改查,客户端即时可见 |
fxai-face-edit | 换脸、唇形同步、老照片修复、去背景 |
fxai-image-to-jpeg | 转最高质量 JPEG,可按体积压 |
四 · 视频
| 技能 | 一句话 |
|---|---|
fxai-digital-human-video | 数字人口播成片,六步到 成片_最终 |
fxai-slide-video | 幻灯片口播视频,纯 CPU |
fxai-mv-pipeline | 音乐 → 图 → MV,强制分两段 |
fxai-short-drama | 短剧成片自动化,逐镜出片再合并 |
fxai-audio-video | 音频驱动视频公共件,三模式 |
fxai-lyric-subtitle | 字幕烧录,跟语音逐句 |
fxai-title-card | 顶部标题卡,跟节拍 |
fxai-infocard | 信息贴片,八套主题,一次性 overlay |
fxai-video-editing | 长视频自动剪精华 + 烧字幕 |
五 · 基础设施
| 技能 | 一句话 |
|---|---|
fxai-workflow | ComfyUI 客户端公共层,服务端铁律在这 |
fxai-comfyui-watcher | 进度广播监听,取代 sleep 轮询 |
fxai-xiangongyun-deploy | 仙宫云一键装机 |
fxai-onethingai-deploy | OneThingAI 一键装机 |
fxai-auto-update | 技能包更新,本地改动进三方合并 |
六 · 规范与复盘
| 技能 | 一句话 |
|---|---|
fxai-common | 底层公共件(不是技能),被六个技能自动 import |
fxai-content-review | 内容复盘诊断,结论按领域入库 |