Torch7 + ComfyUI ComfyUI+ uv uv+ Python Python + Python 3.12++ extra_model_paths.yaml+ Windows portable build

把 ComfyUI 可视化工作流一键导出为可执行的 Python 脚本,实现自动化与可重复生成。

ComfyUI 提供节点图运行时,本扩展负责导出转换,生成脚本复用 ComfyUI 运行时与参数解析器。

✓ UI 一键 Save As Script✓ 支持 --highvram 等内存参数直 ✕ 脚本不自动把输入转为命令行参数✕ 不支持跨调用提示词缓存

方案简介

ComfyUI-to-Python-Extension 是一个把 ComfyUI 可视化工作流转换为可执行 Python 脚本的扩展/工具。你在 ComfyUI 界面里搭建好节点图后,可以直接通过 File -> Save As Script 导出脚本,或用 CLI 把已保存的 API 格式工作流 JSON(workflow_api.)转换成独立可运行的 .py 文件。

它解决的问题很直接:节点图适合探索,但不适合自动化、批量实验和可重复的生成任务。这个项目让你"从节点图走向自动化、实验和可重复生成",无需手工重建整个流程。

适合两类使用者:

  • 想在 ComfyUI 界面内一键导出脚本的 ComfyUI 用户(安装为 Web UI 扩展);
  • 只想离线转换工作流 JSON 的自动化用户(仅需 CLI,仓库可放在任意位置)。

要求 Python 3.12 及以上,且需要一份可用的 ComfyUI 安装作为运行时。

亮点与能力

  • Web UI 一键导出:在 ComfyUI 菜单 File -> Save As Script 直接下载生成的 .py 文件;
  • CLI 批量转换:python -m comfyui_to_python 支持 --input_file--output_file--queue_size 参数;
  • 生成脚本可复用 ComfyUI 的内存参数,如 --highvram--normalvram--lowvram--novram--cpu--disable-smart-memory
  • UI 导出的脚本内嵌前端工作流元数据,生成的图片可直接拖回 ComfyUI 恢复原工作流;
  • queue_size 可控制脚本默认执行次数;
  • 结束时 best-effort 清理模型/缓存,支持 COMFYUI_TOPYTHON_UNLOAD_MODELS=1main(unload_models=True) 在重复调用宿主中主动卸载模型。

组成与分工

  • ComfyUI:提供节点图编辑界面与运行时;生成的脚本依赖 ComfyUI 代码库运行,通过 COMFYUI_PATH 或向上搜索父目录定位;
  • ComfyUI-to-Python-Extension:核心转换器,作为 custom_nodes 扩展提供 Save As Script,并作为 CLI 模块 comfyui_to_python 导出脚本;
  • uv:用于安装扩展依赖(uv pip install -e)及在 CLI 场景创建并运行扩展自身虚拟环境(uv sync);
  • torch:ComfyUI 的运行时依赖,生成脚本运行需要,CLI 环境缺失时会报 ModuleNotFoundError: No module named 'torch'
  • extra_model_paths.yaml:可将扩展所在目录加入 ComfyUI 的 custom_nodes 搜索路径;
  • Git:克隆仓库到本地。

前置要求

  • Python 3.12 或更新版本(运行扩展的环境);
  • 一份可运行的 ComfyUI 安装(源码 checkout 或 Windows portable 版);
  • Web UI 扩展方式需将仓库置于 ComfyUI 的 custom_nodes 可发现路径下。

Web UI 扩展安装(直接克隆进 custom_nodes):
bash
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/pydn/ComfyUI-to-Python-Extension.git

或克隆到别处后建立符号链接:
bash
git clone https://github.com/pydn/ComfyUI-to-Python-Extension.git
cd /path/to/ComfyUI/custom_nodes
ln -s /path/to/ComfyUI-to-Python-Extension ComfyUI-to-Python-Extension

源码 + uv 运行 ComfyUI 时,将依赖装进 ComfyUI 的运行环境:
bash
cd /path/to/ComfyUI
uv pip install -e ./custom_nodes/ComfyUI-to-Python-Extension
uv run python main.py

Windows portable 版:

cd C:\path\to\ComfyUI_windows_portable\ComfyUI\custom_nodes\ComfyUI-to-Python-Extension
..\..\..\python_embeded\python.exe -m pip install -e .

实施步骤

1. 选择使用方式

Web UI 扩展方式需按前置要求把仓库放进 custom_nodes 并安装依赖,然后重启 ComfyUI;纯 CLI 方式仓库可放在任意位置:
bash
git clone https://github.com/pydn/ComfyUI-to-Python-Extension.git
cd ComfyUI-to-Python-Extension
uv sync
export COMFYUI_PATH=/path/to/ComfyUI

2. 在 ComfyUI 中准备工作流

  1. 在 ComfyUI 中,如需要先启用 dev mode options。
  2. 以 API 格式保存工作流:File -> Export (API),得到 workflow_api.

3. 运行导出器

bash
uv run python -m comfyui_to_python

带参数版本:
bash
uv run python -m comfyui_to_python \
--input_file workflow_api. \
--output_file workflow_api.py \
--queue_size 10

旧版封装仍可用:
bash
uv run python comfyui_to_python.py

4. Web UI 方式导出

在较新的 ComfyUI 构建中,Save As Script 通常位于 File -> Save As Script,命令会下载生成的 .py 文件(默认文件名 workflow_api.py)。

使用与配置要点

  • 路径定位:COMFYUI_PATH 优先检查;未设置时导出器会向上搜索名为 ComfyUI 的父目录;
  • 生成脚本参数:--input_file(默认 workflow_api.)、--output_file(默认 workflow_api.py)、--queue_size(默认执行次数,默认 10);
  • 内存调优:生成脚本 bootstrap 时复用 ComfyUI 运行时参数解析器,可直接向导出的 .py--highvram--normalvram--lowvram--novram--cpu--disable-smart-memory
  • 模型卸载:如需每次运行后激进卸载模型(嵌入或重复调用宿主),设置 COMFYUI_TOPYTHON_UNLOAD_MODELS=1 或调用 main(unload_models=True)
  • 验证成功:UI 导出脚本生成的图片可直接拖回 ComfyUI 并恢复原工作流元数据。

注意事项与常见问题

  • Python 版本不支持:在运行扩展的环境用 Python 3.12+,并在该环境重装扩展依赖;
  • uv sync 后 Web UI 导入失败uv sync 把依赖装进扩展自己的 .venv,但 ComfyUI 用自己的 Python 解释器加载 custom nodes,需把扩展装进启动 ComfyUI 的解释器环境;
  • Windows portable 导入失败:使用随附的 python_embeded 解释器 ..\..\..\python_embeded\python.exe -m pip install -e .,然后重启 ComfyUI;
  • CLI 报 No module named 'torch':扩展 .venv 缺少 ComfyUI 运行时依赖,改用启动 ComfyUI 的环境运行 CLI,或把 COMFYUI_PATH 指向已安装的目标 ComfyUI;
  • 看不到 Save As Script:检查前端菜单版本并在 File 下找;重启后仍看不到则确认仓库可通过 custom_nodes、符号链接或 extra_model_paths.yaml 被 ComfyUI 发现;
  • 生成脚本依赖 ComfyUI 运行时:找不到 ComfyUI 时设置 COMFYUI_PATH;模型或路径缺失时检查目标 ComfyUI 安装及其 extra_model_paths.yaml

优缺点

  • ✓ UI 一键 Save As Script
  • ✓ 支持 --highvram 等内存参数直
  • ✕ 脚本不自动把输入转为命令行参数
  • ✕ 不支持跨调用提示词缓存

出处

本方案挖掘自开源项目 pydn/ComfyUI-to-Python-Extension,方案内容与实施命令均来自其 README 原文。

方案出处
pydn/ComfyUI-to-Python-Extension:A powerful tool that translates ComfyUI workflows into executable Python code.
2379 star A powerful tool that translates ComfyUI workflows into executable Python code.

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。