Peyton DeNiro 5d70efdc88 Align Cluster 2 compatibility boundaries
Declare Python 3.12 support, replace the hidden pip bootstrap with explicit uv sync guidance, and remove prompt() from the Web UI save flow. Add focused contract coverage for the metadata and frontend defaults.
2026-03-29 17:34:30 -05:00
2026-03-28 13:08:34 -05:00
2023-08-06 21:14:47 -05:00
2024-03-07 03:45:37 -06:00
2026-03-29 15:31:45 -05:00

ComfyUI-to-Python-Extension

banner

Build a workflow in ComfyUI, then walk away with runnable Python.

ComfyUI-to-Python-Extension turns visual workflows into executable scripts so you can move from node graphs to automation, experiments, and repeatable generation without rebuilding everything by hand.

This project supports:

  • exporting from the ComfyUI UI with Save As Script
  • converting saved API-format workflows with the CLI

Install

Choose the setup that matches how you want to use the project.

Web UI extension (File -> Save As Script)

For ComfyUI to recognize this project as an extension, the repo must be discoverable through ComfyUI's custom_nodes search paths.

Use one of these setups:

  1. Clone directly into ComfyUI/custom_nodes
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/pydn/ComfyUI-to-Python-Extension.git
cd ComfyUI-to-Python-Extension
uv sync
  1. Keep the repo elsewhere, then either:
  • symlink it into ComfyUI/custom_nodes
  • add its parent directory to ComfyUI's custom_nodes search paths via extra_model_paths.yaml

Example symlink setup:

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
cd /path/to/ComfyUI-to-Python-Extension
uv sync

After installation, restart ComfyUI.

CLI exporter / generated scripts

You can keep the repo anywhere for CLI usage and generated-script execution.

git clone https://github.com/pydn/ComfyUI-to-Python-Extension.git
cd ComfyUI-to-Python-Extension
uv sync
export COMFYUI_PATH=/path/to/ComfyUI

COMFYUI_PATH helps the exporter and generated scripts find the ComfyUI codebase. It does not, by itself, register this repo as a ComfyUI extension for the Web UI.

COMFYUI_PATH is checked first. If it is not set, the exporter falls back to searching parent directories for a folder named ComfyUI.

Web UI Export

In current ComfyUI builds, Save As Script is typically available under:

File -> Save As Script

The command downloads a generated .py file.

Save As Script

Notes:

  • menu placement can differ between frontend versions
  • ComfyUI Desktop may fail on the current filename prompt flow; use the CLI flow below if that happens

CLI Export

  1. In ComfyUI, enable dev mode options if needed.
  2. Save the workflow in API format: File -> Export (API).
  3. Run the exporter:
uv run python -m comfyui_to_python

Options:

uv run python -m comfyui_to_python \
  --input_file workflow_api.json \
  --output_file workflow_api.py \
  --queue_size 10

The legacy wrapper still works if you prefer it:

uv run python comfyui_to_python.py

Flags:

  • --input_file: input workflow JSON, default workflow_api.json
  • --output_file: output Python file, default workflow_api.py
  • --queue_size: default execution count in the generated script, default 10

Dev Mode Options

Generated Scripts

Generated scripts depend on a working ComfyUI runtime.

If the repo is not inside ComfyUI, set:

export COMFYUI_PATH=/path/to/ComfyUI

The generated script is a workflow export. It does not automatically turn workflow inputs into command-line arguments.

Scripts exported directly from File -> Save As Script in the ComfyUI UI already include the frontend workflow metadata needed for drag-and-drop reimport. Images saved by those scripts can be dropped back into ComfyUI and reopen with the original workflow metadata.

Troubleshooting

  • Save As Script not visible: check your current ComfyUI menu/frontend version and look under File
  • Save As Script not visible after restart: make sure this repo is discoverable by ComfyUI through custom_nodes by cloning it into ComfyUI/custom_nodes, symlinking it there, or adding an external custom_nodes path in extra_model_paths.yaml
  • Desktop says prompt() is unsupported: use the CLI export flow instead
  • ComfyUI cannot be found: set COMFYUI_PATH
  • models or paths are missing at runtime: verify the target ComfyUI install and its extra_model_paths.yaml
S
Description
No description provided
Readme MIT
2.2 MiB
Languages
Python 98.4%
JavaScript 1.6%