Skip to content

ComfyDock

A package and environment manager for ComfyUI that brings reproducibility and version control to AI image generation workflows.

Get started in 5 minutes

Prerequisites:

  • Python 3.10 or newer
  • Windows, Linux, or macOS

Install UV (package manager):

curl -LsSf https://astral.sh/uv/install.sh | sh
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Install ComfyDock:

uv tool install comfydock-cli

Start using ComfyDock:

# Initialize workspace
cfd init

# Create your first environment
cfd create my-project --use

# Run ComfyUI
cfd run

Your ComfyUI opens at http://localhost:8188 with an isolated, reproducible environment. Continue with Quickstart (5 mins) →

Tip

See installation guide for alternative install methods or troubleshooting if you hit issues.

Migrating from old ComfyDock (v0.x)?

The Docker-based ComfyDock is being deprecated. This is v1.0+, a complete rewrite with a new approach. See migration guide if you were using the old version.

What ComfyDock does for you

  • Multiple isolated environments — Test new nodes without breaking your production setup
  • Git-based version control — Commit changes, rollback when things break, collaborate via GitHub/GitLab
  • One-command sharing — Export/import complete working environments with all dependencies
  • Smart model management — Content-addressable index prevents duplicate storage, resolves models by hash instead of path
  • Standard tooling — Built on UV and pyproject.toml, works seamlessly with Python ecosystem

Why use ComfyDock?

If you've worked with ComfyUI, you've probably hit these problems:

  • Dependency hell — Installing a new custom node breaks your existing workflows
  • No reproducibility — "It worked last month" but you can't remember what changed
  • Sharing is painful — Sending someone your workflow means a wall of text about which models and nodes to install
  • Environment sprawl — Testing new nodes means risking your stable setup

ComfyDock solves these by treating your ComfyUI environments like code projects—isolated, versioned, and shareable.

Works in your terminal:

# Install a custom node
cfd node add comfyui-depthflow-nodes

# Commit your changes
cfd commit -m "Added depthflow nodes"

# Share with your team
cfd export my-workflow.tar.gz

Or via Git remotes:

# Push to GitHub
cfd remote add origin https://github.com/you/your-env.git
cfd push

# Pull on another machine
cfd import https://github.com/you/your-env.git --name team-env

How it works

ComfyDock uses a two-tier reproducibility model:

Local tier: Git-based versioning

Each environment has a .cec/ directory (a git repository) tracking:

  • pyproject.toml — custom nodes, model references, Python dependencies
  • uv.lock — locked Python dependency versions
  • workflows/ — tracked workflow files

When you run cfd commit, it snapshots this state. Rollback restores any previous commit.

Global tier: Export/import packages

Export bundles everything needed to recreate the environment:

  • Node metadata (registry IDs, git URLs + commits)
  • Model download sources (CivitAI URLs, HuggingFace, etc)
  • Python dependency lockfile
  • Development node source code

Import recreates the environment on any machine with compatible hardware.

Under the hood

  • UV for Python — Fast dependency resolution and virtual environments
  • Standard pyproject.toml — Each custom node gets its own dependency group to avoid conflicts
  • Content-addressable models — Models identified by hash, allowing path-independent resolution
  • Registry integration — Uses ComfyUI's official registry for node lookup

Next steps

Key features

Community & support