AI 能力
TongFlow 的转换只依赖一小组点名道姓的后端模型,不搞”上千模型任你挑”那套虚的。下面是实际清单:每个模型用在哪、访问怎么配。
后端模型(跑在 Modal 上)
这些模型在 Modal 的 Worker 容器里执行。配好 MODAL_TOKEN_ID 和 MODAL_TOKEN_SECRET,运行时就会通过 Modal 调用它们:
| 模型 | 用途 | 节点 |
|---|---|---|
| Z-Image | 文 → 图 | image-gen-text、image-gen |
| FLUX.2 Klein 9B | 多图融合、图像编辑 | image-fusion、image-edit |
| LTX-2 | 文/图 → 视频、说话头像 | text-gen-video、image-gen-video、image-image-gen-video、audio-image-gen-video |
| SeedVR2 | 图像和视频超分辨率 | image-upscale、video-upscale |
| Gemma 4 | 多模态文本理解(图/视频) | image-describe、video-describe、video-gen-text |
| Qwen3 | 语音识别和 TTS | transcribe、transcribe-timestamp、text-gen-speech-preset、text-gen-speech-clone、text-gen-speech-instruct、convert_voice |
| ACE-Step | 文 → 音乐 | gen-music |
动画 / 角色替换 / 动作迁移(wan-animate-mix、video-image-move-animal、video-image-gen-video-mix)用的是 WAN-Animate 变体——具体 slot 接线见 ABI。
本地媒体管线
有些操作不需要模型,纯粹是媒体工具活。它们同样跑在 Modal Worker 上,但不调用任何训练出来的模型:
- FFmpeg —— 转码、合成、解复用、抽帧(
merge-video-audio、separate-video-audio、extract-audio、get-first-frame、get-last-frame) - 场景检测 —— 给
split-video做镜头边界检测 - 去字幕 / 去水印 —— 由专门的 Worker 处理(
subtitle_remove、remove_watermark)
LLM 服务商(文本生成与路由)
文本生成(gen-text、combine-text 分组)从四家 LLM 服务商里走一家,用环境变量选择:
| 服务商 | 环境变量 | 备注 |
|---|---|---|
| OpenRouter | OPENROUTER_API_KEY | gen-text 的默认选择。有免费路由层。可用 OPENROUTER_FREE_MODEL 钉住某条路由 |
| Google Gemini | GEMINI_API_KEY 或 GOOGLE_API_KEY | 节点的 model slot 选 Gemini 变体时启用。也承担一部分多模态处理 |
| OpenAI | OPENAI_API_KEY | 节点的 model slot 选 OpenAI 时启用。默认 chat 模型是 gpt-4o-mini(可用 OPENAI_CHAT_MODEL 覆盖) |
| DeepSeek | DEEPSEEK_API_KEY | 只在少数代码路径上使用(如批量文本分组),不在主 gen-text 下拉里 |
只配你打算用的那家就行,但至少要配一个——一个 LLM Key 都没有时,文本生成类转换会拒绝运行。
一次转换调用的全过程
以 image-gen-text(用 Z-Image 做文生图)节点为例:
- 画布把节点输入(上游文本节点的输出)交给工作流导出器
- 导出器调用 Next.js 任务 API:
POST /api/task/create,参数{feature: "image-gen-text", pluginId, prompt: {text}, nodeId} - 服务端把发给 Z-Image Worker 的 Modal 调用入队,带上提示词
- Worker 生成图像并返回 base64;服务端把它后处理成文件引用(
file_key),存进data/uploads/ - 画布上的图像节点更新结果
所有转换调用都是这个套路,变的只是 slot 名和输入形状。
Modal 成本
- Modal 每月送 30 美元免费额度,够绝大部分 TongFlow 工作流用
- 图像生成和 TTS 便宜;视频生成(尤其是长片段)和 4K 放大贵——在 Modal 用量面板里一眼就能看出来
- 想要硬性上限,就去 Modal 设置里配消费限额
LLM 成本
- 轻量的文本生成,OpenRouter 免费层就够
- 用量大一些的话,OpenRouter 付费路由、Gemini、OpenAI Mini 通常一次调用也就几美分
- DeepSeek 便宜但不是默认;确实需要时再启用
扩展模型清单
想接入新模型(自己的 LoRA、别的放大器、开源 TTS),见 tongflow 仓库的 docs/feature-registry.md。流程:
- 在
config/tongflow.abi.json定义新 slot,输入输出都带类型 pnpm gen:abi重新生成 TS 类型- 在
plugins/下用 Python SDK 实现 slot(@node_slot装饰器 + Pydantic 模型) pnpm tongflow:publish发布新 SDK 版本,再把插件部署到 Modal
