前面第 25 篇,我们分析了如何接入新的 LLM 模型供应商;第 26 篇分析了如何接入新的图像或视频生成 API;第 28 篇分析了如何把 Pixelle-Video 改造成批量短视频生成工具。

这一篇回到一个很多个人开发者最关心的问题:

Pixelle-Video 能不能完全本地跑?能不能零成本生成短视频?

如果从架构上看,Pixelle-Video 的确预留了一条“本地免费方案”:

LLM:
    Ollama 本地大模型

图片 / 视频生成:
    本地 ComfyUI selfhost workflow

TTS:
    local Edge-TTS 或本地 ComfyUI TTS workflow

模板渲染:
    本地 Playwright

视频合成:
    本地 ffmpeg

README 中也明确把“Ollama 本地 + ComfyUI 本地部署”描述为“完全免费方案”,但这里的“免费”更准确地说,是不调用付费云 API 的调用成本为 0,不是没有任何成本。你仍然需要电脑、硬盘、内存、显卡、电费、模型下载时间和本地环境维护成本。

这一篇我们就专门分析:

Pixelle-Video 的本地免费方案到底能不能跑通?哪些环节可以本地化?哪些环节会卡住?个人开发者应该怎么选配置?


一、先说结论:可以跑通,但不等于轻松

Pixelle-Video 的本地免费方案理论上可以跑通,但前提是你要接受几个现实:

1. Ollama 可以替代云端 LLM。
2. ComfyUI 可以替代 RunningHub / API 图片视频模型。
3. Edge-TTS 可以作为低成本 TTS 方案。
4. ffmpeg 和 Playwright 都可以在本地跑。
5. 但 AI 图片 / 视频生成对硬件要求最高。
6. 如果没有 GPU,最好先用 static 模板或轻量 image workflow。

也就是说,Pixelle-Video 的本地方案不是:

普通电脑随便点一下,就能快速生成高质量 AI 视频

而更像是:

用本地 LLM + 本地图像生成 + 本地合成工具
搭一条尽量不花 API 费用的视频生成流水线

从源码看,本地化最关键的两个配置是:

llm:
  base_url: "http://localhost:11434/v1"
  model: "llama3.2"

comfyui:
  comfyui_url: http://127.0.0.1:8188

config.example.yaml 中已经把 Ollama 写成 LLM 的本地 preset,并且把 ComfyUI URL 默认设置为 http://127.0.0.1:8188。


二、Pixelle-Video 的生成链路里,哪些东西会花钱?

一条 Pixelle-Video 短视频通常会经过这些阶段:

LLM 文案生成
LLM 标题生成
LLM 图片 / 视频 prompt 生成
TTS 语音生成
AI 图片 / 视频生成
HTML 模板渲染
ffmpeg 合成视频
BGM 混音

如果使用云服务,可能花钱的地方主要是:

LLM API:
    GPT、Qwen、DeepSeek、Claude 等

图片 / 视频 API:
    OpenAI image、DashScope、Kling、Seedance 等

RunningHub:
    云端执行 ComfyUI workflow

TTS:
    付费 TTS 或声音克隆服务

如果要尽量免费,就要把这些替换成本地组件:

云端 LLM
    ↓
Ollama

RunningHub / 图片视频 API
    ↓
本地 ComfyUI

付费 TTS
    ↓
Edge-TTS local 或本地 TTS workflow

云端视频合成
    ↓
本地 ffmpeg

Pixelle-Video 的配置和代码刚好支持这种替换:LLM 层支持 OpenAI-compatible API,Ollama 也提供 OpenAI-compatible 接口;媒体层支持 selfhost/... workflow;视频合成层基于本地 ffmpeg。


三、本地方案的整体架构

如果用本地免费方案,整体架构大概是这样:

Pixelle-Video WebUI
    ↓
LLMService
    ↓
Ollama
    ↓
生成 narration / title / image_prompt

Pixelle-Video MediaService
    ↓
ComfyUI selfhost workflow
    ↓
生成 image_path 或 video_path

Pixelle-Video TTSService
    ↓
local Edge-TTS 或 selfhost TTS workflow
    ↓
生成 audio_path

HTMLFrameGenerator
    ↓
Playwright
    ↓
渲染 composed_image_path

VideoService
    ↓
ffmpeg
    ↓
合成 segment / 拼接 final.mp4 / 添加 BGM

这条链路中,Pixelle-Video 本身更像调度器。

它负责把文本、图片、语音、模板、视频合成串起来。真正吃算力的地方主要是:

Ollama:
    吃 CPU / GPU / 内存

ComfyUI:
    吃 GPU / 显存 / 硬盘

ffmpeg:
    吃 CPU,部分场景可用 GPU 编码

Playwright:
    吃少量 CPU / 内存

所以“零成本”能不能跑通,核心不是 Pixelle-Video 代码支不支持,而是你的本地环境能不能承担 Ollama 和 ComfyUI。


四、LLM:Ollama 为什么能接入 Pixelle-Video?

Pixelle-Video 的 LLM 层是基于 OpenAI SDK 的统一实现。

LLMService 源码注释写得很明确:它支持 OpenAI SDK compatible providers,其中包括 Ollama,并且 _create_client() 会创建 AsyncOpenAI 客户端。调用时使用的是 client.chat.completions.create()。

Ollama 这边也提供 OpenAI-compatible API。Ollama 官方文档说明,可以通过 http://localhost:11434/v1/ 作为 base URL,使用 OpenAI Chat Completions 风格接口连接本地 Ollama。

所以 Pixelle-Video 接 Ollama 不需要写新 provider。

配置成这样即可:

llm:
  api_key: "ollama"
  base_url: "http://localhost:11434/v1"
  model: "llama3.2"

llm_presets.py 里也内置了 Ollama preset:base_url 是 http://localhost:11434/v1,model 是 llama3.2,并且提供 default_api_key: "ollama",注释说明这个 key 是 OpenAI SDK 需要但 Ollama 会忽略的字段。


五、Ollama 在 Pixelle-Video 中负责哪些内容?

接入 Ollama 后,它主要负责:

1. 根据主题生成旁白 narrations
2. 根据主题或文案生成标题 title
3. 根据旁白生成 image prompts
4. 根据旁白生成 video prompts
5. 把用户风格描述扩展成更完整的 prompt

也就是说,Ollama 决定的是“文本脑力劳动”。

它不会生成图片,也不会生成视频。

在本地免费方案中,Ollama 的质量直接影响:

文案自然不自然
分镜拆得好不好
图片提示词是否具体
JSON 输出是否稳定
中文表达是否适合短视频

这里有一个实际问题:很多本地小模型可以生成普通文本,但未必能稳定输出 Pixelle-Video 需要的结构化 JSON。LLMService 虽然会通过 JSON schema 指令要求模型输出合法 JSON,并且会尝试解析直接 JSON、markdown JSON 代码块和文本中的 JSON 对象,但如果模型完全不按格式输出,仍然会失败。

所以本地方案里,LLM 模型不能只看能不能聊天,还要看:

中文能力
JSON 稳定性
长文本能力
是否容易啰嗦
是否容易输出额外解释
是否能遵守 “只输出 JSON”

六、本地 LLM 模型怎么选?

如果只是测试 Pixelle-Video 本地链路,可以先用较轻模型:

llama3.2
qwen2.5:7b
mistral
gemma

如果你做中文短视频,我更建议优先测试 Qwen 系列本地模型。

原因是:

中文表达更自然
中文标题和短视频口播更好调
生成 image_prompt 时中英混合更可控

不过模型越大,对硬件要求越高。

可以粗略理解为:

7B 级别:
    普通本地机器更容易跑,质量够测试。

14B 级别:
    质量更好,但更吃内存和显存。

32B 以上:
    更适合高配机器,不适合轻量部署。

Pixelle-Video 本身不会限制你用哪个 Ollama 模型,因为它只把 model 名称传给 OpenAI-compatible client。真正能不能跑,取决于 Ollama 本地是否已经 pull 了这个模型。


七、媒体生成:ComfyUI selfhost 是本地方案的关键

LLM 本地化以后,最大成本点就是图片和视频生成。

Pixelle-Video 的媒体层支持三类来源:

selfhost:
    本地 ComfyUI

runninghub:
    云端 RunningHub workflow

api:
    直连图像 / 视频模型 API

MediaService 中,如果 workflow 以 api/ 开头,就转给 direct API media service;否则走 ComfyKit workflow,也就是 selfhost 或 RunningHub workflow。

本地免费方案应该尽量选择:

selfhost/image_xxx.json
selfhost/video_xxx.json

配置示例中也列出:图片 workflow 可以选择 selfhost/image_flux.json,视频 workflow 可以选择 selfhost/video_wan2.1_fusionx.json,但这些都需要本地 ComfyUI 支持。

也就是说,ComfyUI 是本地媒体生成的核心。


八、ComfyUI 本地方案真正难在哪里?

ComfyUI 本身可以本地运行,它是一个基于节点和工作流的生成系统。ComfyUI 官方仓库也说明,它支持本地运行、workflow templates、App Mode 和本地 API,用于把 workflow 集成到应用中。

但难点不在于“启动 ComfyUI 界面”。

难点在于:

1. 本地是否有 GPU。
2. 显存是否够跑对应模型。
3. workflow 里需要的自定义节点是否安装。
4. 模型文件是否下载到正确目录。
5. workflow JSON 是否和你的 ComfyUI 节点版本兼容。
6. Pixelle-Video 能否通过 http://127.0.0.1:8188 访问 ComfyUI。

如果你只是用 ComfyUI 生成静态图片,难度相对低。

如果你要生成 AI 视频,本地难度会明显上升:

视频模型更大
推理时间更长
显存要求更高
workflow 更复杂
失败率更高

所以对个人开发者,我建议本地方案先从 image 模板开始,不要一开始就上 video 模板。


九、最稳的本地路线:先跑 static,再跑 image,最后跑 video

如果你想验证本地方案,不要直接上:

Ollama + ComfyUI 视频工作流 + 声音克隆 + BGM + 批量生成

这样失败点太多。

建议分三步。

第一步:static 模板

Ollama
    ↓
Edge-TTS
    ↓
static 模板
    ↓
ffmpeg

这一步不需要 ComfyUI 生成图片或视频。

它只验证:

Ollama 文案是否可用
TTS 是否可用
Playwright 模板渲染是否可用
ffmpeg 是否可用

第二步:image 模板

Ollama
    ↓
ComfyUI selfhost image workflow
    ↓
Edge-TTS
    ↓
image 模板
    ↓
ffmpeg

这一步验证本地 ComfyUI 图片生成。

第三步:video 模板

Ollama
    ↓
ComfyUI selfhost video workflow
    ↓
TTS
    ↓
video overlay
    ↓
ffmpeg

这一步最复杂,最好等前两步稳定后再做。

这样排查问题会清楚很多。


十、TTS:Edge-TTS 算不算本地免费?

Pixelle-Video 的 TTS 有两条路线:

local:
    Edge-TTS

comfyui:
    ComfyUI TTS workflow,例如 Index-TTS

TTSService.__call__() 会根据 inference_mode 分流:local 模式走 _call_local_tts(),comfyui 模式走 workflow。

如果你追求简单、低成本,建议先用:

tts_inference_mode: local
voice: zh-CN-YunjianNeural
speed: 1.1

Edge-TTS 的优势是:

配置简单
不需要显卡
速度比较快
音色可接受
适合知识类和图文类短视频

但要注意一点:Edge-TTS 虽然在 Pixelle-Video 中属于 local 模式,但它并不是“完全离线本地模型”。它使用的是 Edge-TTS 的语音服务接口,不像 Ollama 那样完整跑在本地。因此如果你严格要求离线,本地 TTS 需要改用 ComfyUI TTS workflow 或其他真正离线 TTS。Pixelle-Video 的 comfyui TTS 分支本身支持把 TTS workflow 交给 ComfyUI 执行。

所以更准确地说:

Edge-TTS:
    免费、简单,但不是严格离线。

ComfyUI TTS:
    更接近本地化,但配置更复杂。

Index-TTS / 声音克隆:
    效果更可控,但需要本地 workflow、模型和算力。

十一、ffmpeg:本地方案必不可少

无论你用云 API 还是本地模型,Pixelle-Video 最终都离不开 ffmpeg。

VideoService 源码注释写明,它是基于 ffmpeg-python 的视频处理服务,负责视频拼接、音视频合并、添加 BGM、图片转视频,并且要求系统安装 FFmpeg。check_ffmpeg() 会检查系统中是否存在 ffmpeg 命令,找不到就抛出安装提示。

本地免费方案中,ffmpeg 负责:

图片 + 音频 → 视频片段
AI 视频 + 字幕 overlay → 视频片段
多个片段 → 最终视频
人声 + BGM → 混音
视频裁剪 / 补长 / 转码

所以本地方案第一步就应该确认:

ffmpeg -version

如果 ffmpeg 没装,即使 Ollama 和 ComfyUI 都正常,最终也无法合成视频。


十二、Playwright:模板渲染也要本地依赖

Pixelle-Video 的 HTML 模板不是直接交给 ffmpeg。

它会先用 Playwright 打开 HTML 模板,替换 {{title}}、{{text}}、{{image}} 等变量,再截图生成 composed_image_path。

所以本地环境还需要:

Playwright
Chromium
字体依赖
中文字体

这部分在前面模板章节已经讲过。

本地方案常见问题是:

模板渲染失败
中文字体缺失
截图空白
video overlay 不透明

它们和 Ollama / ComfyUI 没关系,而是本地浏览器渲染环境问题。


十三、最小本地配置示例

如果只是先跑通静态模板,可以从这个配置开始:

llm:
  api_key: "ollama"
  base_url: "http://localhost:11434/v1"
  model: "llama3.2"

comfyui:
  comfyui_url: http://127.0.0.1:8188
  comfyui_api_key: ""

  tts:
    default_workflow: selfhost/tts_edge.json

  image:
    default_workflow: selfhost/image_flux.json
    prompt_prefix: "simple clean illustration, minimal style"

  video:
    default_workflow: selfhost/video_wan2.1_fusionx.json
    prompt_prefix: "simple clean motion, minimal style"

template:
  default_template: "1080x1920/static_simple.html"

这里虽然配置了 image 和 video workflow,但第一步建议先选择 static_simple.html 或其他 static 模板。

因为 static 模板不需要 AI 图片 / 视频,可以先验证:

Ollama 是否能生成文案
TTS 是否能生成音频
模板是否能渲染
ffmpeg 是否能合成

config.example.yaml 中也明确写了模板命名规范:static_*.html 是不需要 AI 生成媒体的静态模板,image_*.html 需要 AI 图片,video_*.html 需要 AI 视频。


十四、本地 image 模板配置

当 static 模板跑通后,再切到 image 模板。

示例:

comfyui:
  image:
    default_workflow: selfhost/image_flux.json
    prompt_prefix: "clean minimal illustration, simple composition, high contrast"

template:
  default_template: "1080x1920/image_default.html"

WebUI 中对应选择:

媒体来源:
    selfhost

图片工作流:
    selfhost/image_flux.json

模板类型:
    image

模板:
    1080x1920/image_default.html

这一步会走:

Ollama 生成 image_prompt
    ↓
ComfyUI selfhost 生成 image_path
    ↓
HTML 模板合成 composed_image_path
    ↓
ffmpeg 生成 segment

如果这一步失败,大概率是 ComfyUI workflow、模型文件、自定义节点或显存问题。


十五、本地 video 模板配置

video 模板是本地免费方案里最难的部分。

示例配置:

comfyui:
  video:
    default_workflow: selfhost/video_wan2.1_fusionx.json
    prompt_prefix: "simple clean cinematic motion, smooth camera movement"

template:
  default_template: "1080x1920/video_default.html"

对应链路:

Ollama 生成 video prompt
    ↓
ComfyUI selfhost 生成 video_path
    ↓
HTML 模板生成透明 overlay
    ↓
ffmpeg overlay_image_on_video()
    ↓
merge_audio_video()
    ↓
segment.mp4

VideoService.overlay_image_on_video() 会把透明 overlay 叠加到 AI 视频上,并根据 contain、cover、stretch 处理缩放;merge_audio_video() 会把 TTS 旁白合并或替换到视频里。

本地 video 模板最容易卡在:

ComfyUI 视频模型太大
显存不足
生成时间太长
workflow 节点缺失
视频时长和音频时长不匹配
overlay 尺寸不匹配
ffmpeg 重编码慢

所以除非你有比较好的 GPU,否则建议先用 image 模板批量生成,再逐步尝试 video 模板。


十六、什么叫“零成本”?要分三种

讨论“零成本”时,要分清三种成本。

1. API 调用成本

这是本地方案最能省的。

Ollama 替代 LLM API
ComfyUI 替代图片 / 视频 API
本地 ffmpeg 替代云端视频合成

这部分可以做到接近 0。

2. 运行成本

这部分不是 0。

电费
硬件折旧
显卡占用
硬盘空间
下载模型时间
环境维护时间

视频模型本地跑起来时,显卡功耗和等待时间都不低。

3. 时间成本

本地方案通常更慢,尤其是没有高端 GPU 时。

云 API:
    花钱,省时间。

本地模型:
    省 API 钱,花时间和硬件。

所以本地免费方案更适合:

个人开发者
技术测试
批量低成本内容
不急于实时生成
有本地 GPU 的用户
想控制数据和模型的人

不一定适合:

追求稳定商业交付
没有 GPU
不想折腾环境
需要高质量视频模型
要求快速批量出片

十七、没有 GPU 能不能跑?

可以跑一部分。

没有 GPU 的情况下,建议路线是:

Ollama 小模型:
    CPU 可以跑,但速度慢。

static 模板:
    不需要 AI 图片 / 视频。

Edge-TTS:
    不需要显卡。

ffmpeg:
    CPU 可以跑。

Playwright:
    CPU 可以跑。

也就是说,没有 GPU 也可以跑:

主题 → 文案 → TTS → static 模板 → 视频

这已经能生成纯文字类短视频,比如:

书摘
语录
知识点
观点类短视频
简单口播卡片

但没有 GPU 不建议跑:

本地 AI 图片
本地 AI 视频
本地声音克隆
本地高质量视频模型

当然,也可以用 CPU 跑极小的图片模型,但速度和体验通常都不理想。


十八、8GB 显存能不能跑?

8GB 显存可以尝试轻量图片生成,但不要期望太高。

比较现实的路线是:

Ollama 7B 量化模型
轻量 SD / Flux workflow
低分辨率图片
image 模板
短视频片段

不太现实的是:

高分辨率视频生成
大模型图生视频
长视频 workflow
多个 frame 并发
声音克隆 + 视频生成一起跑

如果显存较小,建议:

降低 media_width / media_height
减少 n_scenes
使用 image 模板而不是 video 模板
关闭并发
先生成 3 段测试

本地方案最容易因为显存爆掉而失败。


十九、16GB / 24GB 显存会舒服很多

如果有 16GB 或 24GB 显存,本地 ComfyUI 的可玩性会明显提高。

你可以尝试:

更好的图片模型
更高分辨率
图生视频工作流
短视频片段生成
更复杂的 ComfyUI 节点

但即便如此,本地视频生成仍然比图片生成复杂。

建议还是遵循:

先 image
再 i2v
最后 t2v / video template

不要一开始就把所有模块打开。


二十、Docker 场景下的本地访问问题

如果 Pixelle-Video 跑在 Docker 里,而 Ollama 和 ComfyUI 跑在宿主机上,localhost 会有问题。

因为容器里的:

localhost

指向的是容器自己,不是宿主机。

config.example.yaml 中也提醒 Docker 用户:ComfyUI URL 在 Mac / Windows 下可以用 host.docker.internal:8188,Linux 下通常要用宿主机 IP。

所以 Docker 场景应该写成类似:

llm:
  base_url: "http://host.docker.internal:11434/v1"

comfyui:
  comfyui_url: "http://host.docker.internal:8188"

Linux 服务器上可能要写:

llm:
  base_url: "http://192.168.1.100:11434/v1"

comfyui:
  comfyui_url: "http://192.168.1.100:8188"

这是本地部署里非常常见的坑。


二十一、如何判断是哪一环坏了?

本地方案最重要的是分段测试。

不要直接点“生成完整视频”后看报错。

建议按下面顺序检查。

1. 检查 Ollama

ollama list
ollama run llama3.2 "用一句话解释什么是短视频自动生成"

再检查 OpenAI-compatible endpoint:

curl http://localhost:11434/v1/models

Ollama 官方文档说明它支持 OpenAI-compatible /v1/chat/completions,Pixelle-Video 也正是通过 OpenAI SDK 访问。

2. 检查 ComfyUI

浏览器打开:

http://127.0.0.1:8188

确认 workflow 可以在 ComfyUI 里单独跑通。

3. 检查 ffmpeg

ffmpeg -version

Pixelle-Video 的 VideoService 会在首次使用时检查 ffmpeg 是否存在。

4. 检查模板渲染

先用 static 模板预览。

如果模板预览失败,问题不在 Ollama 或 ComfyUI,而在 Playwright / 字体 / HTML 模板。

5. 检查 TTS

先用 local TTS preview,确认能生成音频。

6. 检查 image workflow

只生成一张图片,不生成完整视频。

7. 最后再生成完整视频

这样排查最稳。


二十二、本地方案适合哪几种内容?

本地免费方案特别适合这些内容:

书摘语录
知识卡片
健康科普
财经常识
AI 工具介绍
历史冷知识
公众号文章转短视频
简单故事解说

这些内容的特点是:

对画面动态要求不高
可以用 image 模板
TTS 旁白是核心
模板统一即可形成风格
可以批量生成

不太适合:

高质量短剧
真人数字人口播
复杂电影感视频
强动作视频
需要高一致性角色的视频
商业广告级视频

后者通常需要更强的视频模型、更复杂的 workflow,或者付费 API。


二十三、本地方案的最佳实践:先把模板做好

很多人上来就纠结模型,其实本地方案最适合先做好模板。

因为模板决定:

画面风格
字幕可读性
账号识别度
不同素材质量下的兜底效果

本地图片模型不一定每张都很惊艳,但如果模板稳定、字幕清晰、颜色统一,最终视频仍然能看。

建议本地免费方案先做:

一个 static 模板
一个 image 模板
一个固定 TTS 音色
一个固定 prompt prefix
一个低音量 BGM

然后批量测试 20 个选题,从中筛选效果好的。


二十四、本地方案和批量生成的关系

第 28 篇我们讲过,Pixelle-Video 的 batch mode 是多个 topic 共享同一套配置,然后循环调用 generate_video()。

本地方案和 batch mode 很适合结合:

Ollama:
    批量生成文案和 prompt

ComfyUI:
    批量生成图片

Edge-TTS:
    批量生成语音

ffmpeg:
    批量合成视频

但也要小心:

本地批量生成会长时间占用机器
ComfyUI 可能显存泄漏或节点失败
Ollama 可能输出格式不稳定
ffmpeg 大量合成会占 CPU

所以本地批量生成建议:

一次先跑 3 条
稳定后跑 10 条
不要一上来跑 100 条
失败后先看 History 和日志

二十五、如果追求真正离线,需要替换 Edge-TTS

严格意义上的本地离线方案应该是:

Ollama:
    本地 LLM

ComfyUI:
    本地图片 / 视频

本地 TTS:
    本地语音模型

ffmpeg:
    本地合成

此时 TTS 不应该依赖 Edge-TTS。

Pixelle-Video 支持 ComfyUI TTS workflow:TTSService 在 comfyui 模式下会解析 TTS workflow,并把 text、voice、speed、ref_audio 等参数传给 workflow 执行。

所以真正离线可以考虑:

Index-TTS
CosyVoice
GPT-SoVITS
Fish Speech
F5-TTS

但这部分配置难度会明显高于 Edge-TTS。

因此建议分阶段:

第一阶段:
    Edge-TTS,先跑通视频生成

第二阶段:
    本地 TTS workflow,替换 Edge-TTS

第三阶段:
    声音克隆和固定账号音色

二十六、本地方案的常见错误

1. Ollama 连接失败

常见原因:

Ollama 没启动
base_url 写成了 /api/generate 而不是 /v1
Docker 里 localhost 指向容器自己
模型没有 pull
model 名称写错

Pixelle-Video 需要 OpenAI-compatible base URL,例如 http://localhost:11434/v1。

2. LLM 输出 JSON 失败

常见原因:

本地模型太小
模型不遵守只输出 JSON
temperature 偏高
中文 prompt 下模型输出解释文字

可以换更强模型,或者降低 temperature,或者专门测试结构化输出。

3. ComfyUI workflow not found

检查:

workflow 是否放在 workflows/selfhost/
配置是否写成 selfhost/xxx.json
ComfyUI 是否启动
workflow 依赖节点是否安装

4. ComfyUI 能在网页跑,但 Pixelle-Video 调不通

常见原因:

comfyui_url 写错
Docker 网络问题
ComfyUI 只监听 127.0.0.1
防火墙拦截
API endpoint 不可访问

5. ffmpeg not found

安装 ffmpeg,并确认命令行能运行:

ffmpeg -version

VideoService 找不到 ffmpeg 时会抛出明确安装提示。

6. video 模板生成很慢

这是正常的。

本地 AI 视频生成本来就慢。建议先改用 image 模板,或者降低分辨率和分镜数量。


二十七、本地免费方案的推荐路线

如果你是个人开发者,我建议按这个路线:

阶段 1:
    Ollama + static 模板 + Edge-TTS + ffmpeg

阶段 2:
    Ollama + image 模板 + ComfyUI image workflow + Edge-TTS

阶段 3:
    Ollama + image 模板 + 自定义账号模板 + batch mode

阶段 4:
    本地 TTS workflow 替换 Edge-TTS

阶段 5:
    尝试 ComfyUI video workflow

阶段 6:
    再考虑本地声音克隆、数字人、视频模板

不要一开始就追求“全本地 + 视频生成 + 声音克隆 + 批量”。

最稳的是先跑通:

文本视频
    ↓
图文视频
    ↓
批量图文视频
    ↓
动态视频

二十八、源码阅读建议

如果要阅读 Pixelle-Video 的本地免费方案相关源码,建议按这个顺序:

1. config.example.yaml
   看 Ollama、本地 ComfyUI、selfhost workflow、模板默认值。

2. pixelle_video/llm_presets.py
   看 Ollama preset 如何配置 base_url、model 和 default_api_key。

3. pixelle_video/services/llm_service.py
   看 LLMService 如何用 OpenAI SDK 调用 Ollama。

4. pixelle_video/services/media.py
   看 MediaService 如何区分 api workflow 和 ComfyUI / RunningHub workflow。

5. pixelle_video/services/tts_service.py
   看 local Edge-TTS 和 comfyui TTS workflow 两条路线。

6. pixelle_video/services/video.py
   看 ffmpeg 如何负责图片转视频、音视频合并、拼接和 BGM。

7. pixelle_video/services/frame_html.py
   看 HTML 模板如何用 Playwright 渲染成本地图片。

8. pixelle_video/pipelines/standard.py
   看 StandardPipeline 如何把 LLM、TTS、媒体、模板、ffmpeg 串起来。

9. web/components/settings.py
   看 WebUI 如何配置 LLM、ComfyUI、RunningHub 和 API Provider。

这样读下来,就能完整理解:

Ollama
    ↓
Pixelle LLMService
    ↓
ComfyUI selfhost workflow
    ↓
TTS
    ↓
HTML 模板
    ↓
ffmpeg
    ↓
final.mp4

二十九、总结

这一篇我们分析了 Pixelle-Video 的本地免费方案:Ollama + ComfyUI 能否零成本跑通。

结论是:

可以跑通,但要分阶段。

从源码和配置看,Pixelle-Video 已经具备本地化所需的关键入口:

LLM:
    支持 Ollama OpenAI-compatible API

媒体生成:
    支持 selfhost ComfyUI workflow

TTS:
    支持 local Edge-TTS 和 ComfyUI TTS workflow

模板:
    支持本地 HTML / CSS 渲染

视频合成:
    基于本地 ffmpeg

批量:
    可以用 batch mode 复用本地配置批量生成

但“零成本”不能理解成没有任何代价。

更准确的说法是:

不花云 API 调用费,
但要花本地硬件、显卡、电费、时间和维护成本。

推荐个人开发者的实践路线是:

先用 Ollama + static 模板跑通文本视频
再接 ComfyUI image workflow 跑通图文视频
然后做自定义模板和批量生成
最后再挑战本地视频 workflow、声音克隆和数字人口播

一句话总结:

Pixelle-Video 的本地免费方案,本质是把云端 LLM、云端媒体模型和云端 workflow 换成本地 Ollama 与本地 ComfyUI,再用 Edge-TTS / 本地 TTS、Playwright 和 ffmpeg 完成语音、画面和视频合成;它可以把 API 调用成本降到接近 0,但真正的门槛会转移到本地硬件、模型配置、ComfyUI workflow 兼容性和生成速度上。

更多推荐