AI 能力

TongFlow 的转换只依赖一小组点名道姓的后端模型,不搞”上千模型任你挑”那套虚的。下面是实际清单:每个模型用在哪、访问怎么配。

后端模型(跑在 Modal 上)

这些模型在 Modal 的 Worker 容器里执行。配好 MODAL_TOKEN_IDMODAL_TOKEN_SECRET,运行时就会通过 Modal 调用它们:

模型用途节点
Z-Image文 → 图image-gen-textimage-gen
FLUX.2 Klein 9B多图融合、图像编辑image-fusionimage-edit
LTX-2文/图 → 视频、说话头像text-gen-videoimage-gen-videoimage-image-gen-videoaudio-image-gen-video
SeedVR2图像和视频超分辨率image-upscalevideo-upscale
Gemma 4多模态文本理解(图/视频)image-describevideo-describevideo-gen-text
Qwen3语音识别和 TTStranscribetranscribe-timestamptext-gen-speech-presettext-gen-speech-clonetext-gen-speech-instructconvert_voice
ACE-Step文 → 音乐gen-music

动画 / 角色替换 / 动作迁移(wan-animate-mixvideo-image-move-animalvideo-image-gen-video-mix)用的是 WAN-Animate 变体——具体 slot 接线见 ABI。

本地媒体管线

有些操作不需要模型,纯粹是媒体工具活。它们同样跑在 Modal Worker 上,但不调用任何训练出来的模型:

  • FFmpeg —— 转码、合成、解复用、抽帧(merge-video-audioseparate-video-audioextract-audioget-first-frameget-last-frame
  • 场景检测 —— 给 split-video 做镜头边界检测
  • 去字幕 / 去水印 —— 由专门的 Worker 处理(subtitle_removeremove_watermark

LLM 服务商(文本生成与路由)

文本生成(gen-textcombine-text 分组)从四家 LLM 服务商里走一家,用环境变量选择:

服务商环境变量备注
OpenRouterOPENROUTER_API_KEYgen-text 的默认选择。有免费路由层。可用 OPENROUTER_FREE_MODEL 钉住某条路由
Google GeminiGEMINI_API_KEYGOOGLE_API_KEY节点的 model slot 选 Gemini 变体时启用。也承担一部分多模态处理
OpenAIOPENAI_API_KEY节点的 model slot 选 OpenAI 时启用。默认 chat 模型是 gpt-4o-mini(可用 OPENAI_CHAT_MODEL 覆盖)
DeepSeekDEEPSEEK_API_KEY只在少数代码路径上使用(如批量文本分组),不在主 gen-text 下拉里

只配你打算用的那家就行,但至少要配一个——一个 LLM Key 都没有时,文本生成类转换会拒绝运行。

一次转换调用的全过程

image-gen-text(用 Z-Image 做文生图)节点为例:

  1. 画布把节点输入(上游文本节点的输出)交给工作流导出器
  2. 导出器调用 Next.js 任务 API:POST /api/task/create,参数 {feature: "image-gen-text", pluginId, prompt: {text}, nodeId}
  3. 服务端把发给 Z-Image Worker 的 Modal 调用入队,带上提示词
  4. Worker 生成图像并返回 base64;服务端把它后处理成文件引用(file_key),存进 data/uploads/
  5. 画布上的图像节点更新结果

所有转换调用都是这个套路,变的只是 slot 名和输入形状。

  • Modal 每月送 30 美元免费额度,够绝大部分 TongFlow 工作流用
  • 图像生成和 TTS 便宜;视频生成(尤其是长片段)和 4K 放大贵——在 Modal 用量面板里一眼就能看出来
  • 想要硬性上限,就去 Modal 设置里配消费限额

LLM 成本

  • 轻量的文本生成,OpenRouter 免费层就够
  • 用量大一些的话,OpenRouter 付费路由、Gemini、OpenAI Mini 通常一次调用也就几美分
  • DeepSeek 便宜但不是默认;确实需要时再启用

扩展模型清单

想接入新模型(自己的 LoRA、别的放大器、开源 TTS),见 tongflow 仓库的 docs/feature-registry.md。流程:

  1. config/tongflow.abi.json 定义新 slot,输入输出都带类型
  2. pnpm gen:abi 重新生成 TS 类型
  3. plugins/ 下用 Python SDK 实现 slot(@node_slot 装饰器 + Pydantic 模型)
  4. pnpm tongflow:publish 发布新 SDK 版本,再把插件部署到 Modal

相关