楼主
3 小时前
本文基于实际部署、跑通多条流水线后的实战感受,不是官方介绍。环境为 Ubuntu 22.04 + 本地 ComfyUI。
项目来源:Pixelle-Video GitHub
一、项目是什么
Pixelle-Video 是一个开源短视频自动化生成框架:你给一句主题 / 一段文案 / 一张图,它能编排「LLM 写文案 + AI 生图/生视频 + TTS 配音 + 模板渲染 + ffmpeg 合成」整条流水线,输出一个完整 mp4。
技术栈关键词:Python 3.11 + Streamlit 前端 + FastAPI + ComfyUI(本地)/ RunningHub(云)/ 商业视频 API 三种后端可选 + Playwright 渲染 HTML 模板帧 + moviepy/ffmpeg 合成。
二、安装体验
- 官方推荐用 uv 管理环境(项目根目录有
uv.lock、启动脚本里就是uv run streamlit run web/app.py),不必用 conda。uv 一句uv run自动建.venv、装依赖、按pyproject.toml选 Python 版本,多项目隔离比 conda 更自然。 - 系统依赖只有两件:ffmpeg(moviepy 用)和 Playwright 的 Chromium(渲染 HTML 模板帧用)。后者首次跑会报浏览器不存在,执行
uv run playwright install chromium即可。install-deps这步在 Ubuntu 已装库的环境里常因系统包版本冲突报 100,可直接跳过,不要去apt --fix-broken install动 systemd/libcups。 - Python 版本:
pyproject.toml写死>=3.11,用 3.11 最稳。
总体安装难度:不高,但坑点零碎。
三、核心架构与工作流
3.1 流水线 (Pipelines)
内置 5 条,对应不同生产场景:
| Pipeline | 输入 | 用途 |
|---|---|---|
| 标准流水线 (standard) | 一句主题 | 全自动短视频 |
| 自定义素材 (asset_based) | 自己的图/视频/音频 | 用 AI 给你的素材配文案+配音 |
| 数字人口播 (digital_human) | 人物图+音频 | 固定人物口播,唯一能锁定人物角色的本地友好方案 |
| 图生视频 (i2v) | 一张图 | 让图动起来 |
| 动作迁移 (action_transfer) | 视频+图 | 把动作迁到图上 |
3.2 ComfyUI 工作流(selfhost)
按"原子能力"组织:
- **image_***:文生图配图
image_flux(FLUX,20 步,画质高,默认)image_qwen(Qwen-Image + Lightning LoRA,4 步,速度快+中文友好)
- **video_*:文生视频(仅 T2V,不带图片参考**)
video_wan2.1_fusionx:WAN 2.1 FusionX 加速版,10 步、16fps、512x288、81 帧 ≈ 5 秒
- **analyse_***:VLM 图像/视频反推(Qwen3-VL-8B)
- **tts_***:
tts_edge:微软 Edge 在线 TTS,免费、预设音色,无显存压力tts_index2:本地 IndexTTS2,支持参考音频克隆任意音色,吃显存
⚠️ 重要认知:仓库里的 *.json 都是 ComfyUI API 格式(无 nodes/links),拖进画布只显示一个节点是正常现象,不是版本问题、不是损坏。项目通过 API 提交执行,画布显示不全完全不影响。需要调试时可以转 UI 格式手动构建。
四、优势
- 流水线设计抽象得很好:把"文案 / 配图 / 配音 / 合成"拆成独立模块,每个模块都可替换为本地 ComfyUI / 云端 RunningHub / 商业 API。这是它最有价值的一点——不是死绑某个模型,谁好用替换谁。
- HTML 模板渲染思路新颖:每帧画面用 HTML/CSS 写好模板,靠 Playwright 截图。排版能力天花板比传统 PIL 画图高几个量级,会写 HTML 就能加新模板。
- 静态图+ffmpeg 这条线非常稳:跑通快、产出快、便宜,适合知识类/资讯类/语录类短视频量产。
- 开箱即用的 TTS:
tts_edge联网就能用,免费免显存;想克隆音色还有tts_index2。 - 批量任务 + 历史记录:内置任务列表、可重跑、有产物管理。
- 多语言 i18n:中英文界面完整。
- 代码组织清晰:
pipelines/、prompts/、services/、workflows/分层清楚,二次开发上手快。
五、缺点 / 短板
- 生产级服务能力弱:Streamlit 前端是单用户交互式,Playwright 单机起 Chromium 截图扩展性差,没有成熟的分布式任务队列、限流、计费、重试。直接拿来对外做高并发服务不合适。
- AI 写历史/史实文案容易胡编:年代、人物、地理位置一本正经地错,必须人工审稿。这是 LLM 通病,但做历史地理类内容时这点要特别注意。
- 本地视频能力弱:
- selfhost 目录只有 T2V(
video_wan2.1_fusionx),没有 I2V - "素材动画服务"功能写死了只显示 API 选项(asset_based.py L364-366),即使你做了本地 I2V 工作流也显示不出来,要改源码
video_wan2.1_fusionx默认参数(512×288/10步/16fps)是为"跑通演示"调的,直出的画质对成品而言偏弱,画面里有人物会变形/糊
- selfhost 目录只有 T2V(
- LLM 中文输出偶发英文:提示词里英文示例多,有些较弱的 LLM 会被带偏,需要在
prompts/topic_narration.py强化中文输出要求或换更强模型(Qwen-Plus / DeepSeek 推荐)。 - 本地视频模型门槛高:WAN/FLUX 一套模型几十 GB,对显存和磁盘有要求。没有 24G+ 显卡,本地走视频路线很痛苦。
- API 工作流的可调试性差:仓库里都是 API 格式 JSON,新手在 ComfyUI 拖进去只显示一个节点会一脸懵,缺少明显的引导文档(弹窗提示也容易被误解)。
- 地理可视化基本没有:地图、路线、区域标注这种历史地理常用元素,本身不擅长,要外部工具准备好素材再喂进来。
- 依赖较重:Playwright + Chromium + 多个 AI 后端,环境一旦坏一个环节就有得查。
六、适合 / 不适合的场景
✅ 非常适合
- 模板化短视频量产:知识科普、语录、书摘、资讯播报、营销号图文视频(最甜点)
- 内部内容团队提效工具:运营批量出片 → 人工筛选发布
- 二次开发底座:在它的 pipeline / prompt / 工作流框架上改造自己的产线
- 历史/地理类口播视频(半自动):AI 出文案初稿 + 人工核实史实 + 静态配图(真实地图/文物用素材,氛围图用 AI)+ TTS 配音
🤔 勉强能做但有坑
- 固定人物角色视频:靠
digital_humanpipeline,但本地工作流缺,得用 RunningHub 云端 - 本地纯 AI 动态视频:能跑,但
video_wan2.1_fusionx默认效果不到"作品级",要么调参/换原版模型、要么换商业 API
❌ 不适合直接做
- 高并发对外 SaaS 服务:架构不支持,需要重做任务调度+前端
- 要求史实精确且全自动的历史教学视频:LLM 编内容这关绕不过去
- 强地理可视化(地图动画、路线演示):项目不擅长
- 追求"作品级画质"的纯 AI 视频:默认本地参数不够,要么换商业 API 要么深度调优
七、生产化落地建议
如果你想用它做较正式的服务,参考这个架构:
[用户/上游] → 自建网关(鉴权/计费/限流) → 任务队列(Celery/RabbitMQ)
↓
Pixelle FastAPI workers (多实例)
↓
[LLM API] + [商业视频 API: Kling/Seedance/Wan-I2V]
↓
Playwright 渲染 + ffmpeg 合成
↓
对象存储(OSS) + CDN 分发
要点:
- 丢掉 Streamlit,只保留
api/这层 FastAPI - 视频生成优先用商业 API(Kling/Seedance/DashScope Wan),别自建 GPU 集群,除非量大到划算
- Playwright 这层是单机瓶颈,多 worker 启就行,单 worker 串行渲染
- 加任务队列 + 重试 + 限流,原项目没有这些
八、技术亮点摘录(值得借鉴)
如果你不打算直接用,光看看也有收获:
- HTML+Playwright 做视频帧:彻底告别 PIL 苦逼画图,排版/字体/特效全交给 CSS,二开模板成本极低。
- 能力抽象表(
api_media.py里那些ability_types):把视频模型按"首帧 I2V / 首尾帧 / 音频驱动 / 视频续写"等能力分类,调度器据此匹配。这种"模型即能力"的抽象很值得学。 - 提示词集中化(
pixelle_video/prompts/):每类生成任务一个文件、一个常量、一个 builder 函数,改起来一目了然。 - 多后端可插拔:同一个能力(如生图、生视频)抽象出统一接口,本地 ComfyUI / 云端 RunningHub / 商业 API 三套实现,配置即可切换。
九、总评
- 思路上:把短视频生产抽象成可编排的"原子能力 + pipeline"框架,配合 HTML 模板渲染,这套架构想法很好。
- 工程上:当前更像一个"高度可配置的 demo / 单人工具",距离"开箱即用的生产服务"还有一段距离。适合作为框架/底座做二次开发,不太适合直接交付给运营当全自动 SaaS 用。
最大价值:让你免于从零拼"LLM + 生图 + TTS + 合成"这一整套基础设施,能省至少 80% 重复造轮子的工作量。剩下 20% 是产品化/工程化,需要你自己补。
十、踩坑
| # | 坑 | 解法 |
|---|---|---|
| 1 | uv 找不到、提示装 snap | 用官方 curl -LsSf https://astral.sh/uv/install.sh \| sh,别用 snap |
| 2 | playwright 报浏览器不存在 | uv run playwright install chromium(不用 sudo) |
| 3 | install-deps 报 exit code 100 | 库基本都齐了,跳过即可,别动 apt --fix-broken |
| 4 | ComfyUI 画布拖入工作流只显示一个节点 | API 格式正常现象,不是 bug;要全节点请转 UI 格式或菜单导入 |
| 5 | 生成视频报缺字体/中文方块 | sudo apt install fonts-noto-cjk |
| 6 | LLM 输出英文 | 在 prompts/topic_narration.py 强化中文输出要求,或换 Qwen-Plus/DeepSeek |
| 7 | "素材动画"只能选 API | 当前代码限制(asset_based.py L364-366),要改源码才能用本地 I2V |