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):
Install ComfyDock:
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 dependenciesuv.lock— locked Python dependency versionsworkflows/— 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¶
-
See ComfyDock in action with practical examples
-
Understand workspaces, environments, and the .cec directory
-
Master all commands and options
-
Share environments with your team
Key features¶
-
Add nodes from registry, GitHub, or local development
-
Content-addressable model index with CivitAI integration
-
:material-workflow: Workflow Resolution
Automatically detect and install workflow dependencies
-
Commit, rollback, and collaborate via Git
Community & support¶
- Documentation: You're here! Browse the guides
- Issues: Report bugs on GitHub Issues
- Discussions: Ask questions on GitHub Discussions