快速开始

TongFlow 既可以作为 Docker 容器跑在你自己机器上,也可以作为 Next.js 开发服务器跑(如果你装了 pnpm)。任选其一。没有 Node 环境的用户推荐用 Docker。

准备

  • Docker(含 Compose v2)
  • Modal 账号 + Token——去 modal.com 注册。每月 30 美元免费额度包含相当多的 H100 时间,覆盖 TongFlow 绝大部分 GPU 任务
  • 至少一个 LLM API Key——任选一家:OpenRouter、Gemini、OpenAI、DeepSeek。OpenRouter 有免费路由层;其他按调用计费

可选:一个 Discord 账号——有疑问到 #tongflow 找我们。

1. 克隆仓库

git clone https://github.com/tong-io/tongflow
cd tongflow

2. 配置环境变量

复制示例文件后编辑:

cp .env.example .env

必填变量:

变量用途
MODAL_TOKEN_IDModal Worker 鉴权
MODAL_TOKEN_SECRETModal Worker 鉴权
以下至少一个:OPENROUTER_API_KEY / GEMINI_API_KEY(或 GOOGLE_API_KEY)/ OPENAI_API_KEY / DEEPSEEK_API_KEY”Generate text” 节点和其他依赖 LLM 的转换

可选:

  • OPENROUTER_FREE_MODEL —— 钉一个特定的 OpenRouter 免费路由
  • OPENAI_CHAT_MODEL —— 不设时默认 gpt-4o-mini
  • NEXT_PUBLIC_FILE_BASE_URL —— 如果你前面挂了 CDN,文件服务的 base URL

3. 一次性授权 Modal

把 Token 写入 ~/.modal.toml,只在首次运行前执行:

pnpm modal:setup

如果你没有 pnpm,可以等第 4 步起容器后在容器内执行等价的 modal token set

4. 启动

方案 A —— Docker Compose(推荐)

docker compose up --build

访问 http://localhost:3000,自动落到 /workspace

数据持久化在 Docker volume:SQLite 在 data/tongflow.db,上传文件在 data/uploads/

方案 B —— 直接拉 GHCR 预构建镜像

CI 在每次 push 到 main 时发布 ghcr.io/tong-io/tongflow,发版打 tag(如 v0.1.0)。

docker pull ghcr.io/tong-io/tongflow:latest
docker run --rm -p 3000:3000 --env-file .env -v tongflow_data:/app/data ghcr.io/tong-io/tongflow:latest

私有仓库可能需要 docker login ghcr.io 配合带 read:packages 权限的 Token。

方案 C —— pnpm 本地开发

需要 Node.js 20+。

pnpm install
pnpm dev

地址不变:http://localhost:3000

5. 你的第一个工作流

/workspace 加载后:

  1. 默认进入 Create Mode(创作模式,Sparkles 图标——见 工作流模式)。
  2. 底部 智能岛(Smart Island) 显示 7 个添加图标:3D / 文档 / 图像 / 文本 / 视频 / 音频 / 链接。
  3. 文本Type 字母图标)放一个文本节点,输入提示词如 “图书馆里一只猫的水彩肖像”
  4. 从文本节点右侧的输出 handle 拖到空白画布 → 选 图像生成 → 一个图像节点自动连好线出现。
  5. 切到 Execute Mode(执行模式,把 Sparkles → Play 切换),点智能岛上的 Play 按钮。
  6. 任务通过你的 Modal 账号跑起来,结果出现在图像节点上。

整个循环就这些。接下来你可以再串一个转换(图→视频、图→3D、图像放大),或者分支到一个组合节点(如口型同步),或者保存工作流。

各种数据存在哪儿

  • 工作流 —— 保存在 data/tongflow.db。从左上角左侧栏第一个按钮(Workflow)打开。
  • 素材 / Portfolio —— 上传的文件在 Portfolio 对话框(左上角第三个按钮,FolderOpen 图标,不是智能岛)。
  • 任务历史 —— Task 面板(左上角第二个按钮,Zap 图标)。

下一步