节点类型
TongFlow 的节点分六组。Add 和 Modality 节点承载画布上的素材,其余节点对素材做操作。
权威清单在 tongflow 仓库的 config/tongflow.abi.json 里,本页反映当前状态。
Add 节点(7 个)
Add 节点往画布上落一个新素材。在 Create Mode 下从智能岛的 Add 工具栏选取:
| 节点 | 图标 | 用途 |
|---|---|---|
addTextNode | Type | 直接在节点里输入文本 |
addImageNode | Image | 选本地文件、摄像头拍照或画板手绘——输出一张图 |
addAudioNode | Music | 选音频文件或麦克风录音 |
addVideoNode | Video | 选视频文件或摄像头录制 |
addFileNode | FileText | 上传文档(PDF / DOCX / TXT / MD) |
addLinkNode | Link | 粘贴一个 URL——抓取页面内容转成文本 |
addModelNode | Box | 上传 3D 模型文件(GLB / GLTF) |
Add 类型一共 7 种,不是 11 种。 老文档把”上传图片”和”摄像头拍照”算成两个节点,其实它们是同一个 addImageNode 里的不同模式。
Transform 转换
每个转换吃一种模态、产出另一种,背后接后端模型或外部 LLM。
文本转换
| 节点 slot | 描述 | 后端 |
|---|---|---|
gen-text | 根据提示词生成或改写文本 | OpenRouter / Gemini / OpenAI / DeepSeek(可配置) |
combine-text | 合并多个文本输入 | 本地 |
split-text | 长文本拆分成块 | 本地 |
图像转换
| 节点 slot | 描述 | 后端模型 |
|---|---|---|
image-gen-text | 文 → 图 | Z-Image |
image-gen | 图 → 图(整帧编辑) | Z-Image |
image-gen-model | 以模型为条件的图像生成 | 可配置 |
image-edit | 局部修复 / 指令编辑 | FLUX.2 Klein 9B |
image-fusion | 多图融合 | FLUX.2 Klein 9B |
image-describe | 图 → 文(描述 / 视觉问答) | Gemma 4(多模态) |
image-upscale | 图像放大 | SeedVR2 |
视频转换
| 节点 slot | 描述 | 后端 |
|---|---|---|
gen-video、text-gen-video | 文 → 视频 | LTX-2 |
image-gen-video | 图 → 视频 | LTX-2 |
image-image-gen-video | 首尾帧 → 视频(插值) | LTX-2 |
video-image-gen-video-mix、wan-animate-mix | 图 + 视频 → 视频(角色替换 / 场景混合) | WAN Animate |
video-image-gen-video-move、video-image-move-animal | 动作迁移(主体取自一方,动作取自另一方) | WAN Animate(move 变体) |
audio-image-gen-video | 音频 + 图 → 视频(数字人 / 说话头像) | LTX-2 / WAN |
video-describe、video-gen-text | 视频 → 文 | Gemma 4 |
video-upscale | 视频放大 | SeedVR2 |
get-first-frame、get-last-frame | 抽帧 | 本地(FFmpeg) |
subtitle_remove | 去字幕 | 后端 |
remove_watermark | 去水印 | 后端 |
音频转换
| 节点 slot | 描述 | 后端 |
|---|---|---|
gen-music | 文 → 音乐 | ACE-Step |
text-gen-speech-preset | 预设音色 TTS | Qwen3 |
text-gen-speech-clone | 参考音色克隆 TTS | Qwen3 |
text-gen-speech-instruct | 指令驱动 TTS | Qwen3 |
text-audio-gen-speech | 文本 + 参考音频 TTS | Qwen3 |
transcribe、transcribe-timestamp | 音/视频 → 文本(可带时间戳) | Qwen3 |
denoise_audio | 降噪 | 后端 |
separate_speaker | 说话人分离 | 后端 |
separate_audio_track、separate-video-audio | 从视频解出音频 | 本地(FFmpeg) |
convert_voice | 声音 / 音色替换 | Qwen3 |
跨模态桥接
| 节点 slot | 描述 |
|---|---|
parse-document | 文档 → 文本 |
link | URL → 文本 |
| 图 → 3D(开发中) | 图像 → 3D 模型 |
Combine 组合
Combine 节点吃多个输入、产出一个结果。
| 节点 slot | 输入 | 输出 |
|---|---|---|
image-fusion | N 张图 | 一张融合图 |
audio-video-lip-sync | 音频 + 视频 | 音频驱动对口型(InfiniteTalk) |
speech-video-gen-video | 视频 + 文本(目标台词) | 文本驱动配音对口型(LTX LipDub) |
| 其他口型相关 | 音频+图 / 音频+文本 / 音频+图+视频 | 生视频或合成(非纯对口型) |
speech-image-video-gen-video | 语音 + 图 + 视频 | 合成视频 |
speech-text-gen-video | 语音 + 文本 | 视频 |
convert_voice(组合形式) | 文本 + 参考音频 → 语音 | 克隆声音 |
combine-text | N 个文本节点 → 一个 |
Helpers 辅助节点
| 节点 slot | 描述 |
|---|---|
concat-videos | 多个片段首尾拼接 |
merge-video-audio | 音视频合成一个文件 |
split-video | 按镜头边界切分(场景检测) |
separate-video-audio | 解成独立音视频轨 |
extract-audio | 从视频提取音轨 |
split-text | 长文本切块 |
combine-text | 文本段合并 |
drop-video | 按规则丢弃片段 |
arrange-group | 把片段/文本分组排列,供下游批处理 |
类型怎么校验
连线校验由 ABI 驱动。从输出 handle 拖到输入 handle 时,系统检查模态和形状是否匹配——把视频往只收文本的输入上拖,线是连不上的。src/generated/abi/index.ts 里生成的 TypeScript 类型在编译期保证画布和工作流导出器口径一致。
加自己的节点
清单里没有你要的转换?可以自己接一个。参考 tongflow 仓库的 docs/feature-registry.md 和 docs/plugins.md。流程:
- 在
config/tongflow.abi.json里加 slot 定义 - 重新生成类型:
pnpm gen:abi - 在
plugins/下实现插件,用@node_slot装饰器配上对应的 Pydantic 模型 - 升 Python SDK 版本号并发布,然后重新部署到 Modal
