A CLI tool for installing and using ComfyUI.
Project description
comfy-cli
comfy-cli is a command line tool that helps users easily install and manage ComfyUI, a powerful open-source machine learning framework. With comfy-cli, you can quickly set up ComfyUI, install packages, and manage custom nodes, all from the convenience of your terminal.
Features
- 🚀 Easy installation of ComfyUI with a single command
- 📦 Seamless package management for ComfyUI extensions and dependencies
- 🔧 Custom node management for extending ComfyUI's functionality
- 🗄️ Download checkpoints and save model hash
- 💻 Cross-platform compatibility (Windows, macOS, Linux)
- 📖 Comprehensive documentation and examples
Installation
-
(Recommended, but not necessary) Enable virtual environment (venv/conda)
-
To install comfy-cli, make sure you have Python 3.9 or higher installed on your system. Then, run the following command:
pip install comfy-cli
Shell Autocomplete
To install autocompletion hints in your shell run:
comfy --install-completion
This enables you to type comfy [TAP]
to autocomplete commands and options
Usage
Installing ComfyUI
To install ComfyUI using comfy, simply run:
comfy install
This command will download and set up the latest version of ComfyUI and ComfyUI-Manager on your system. If you run in a ComfyUI repo that has already been setup. The command will simply update the comfy.yaml file to reflect the local setup
comfy install --skip-manager
: Install ComfyUI without ComfyUI-Manager.comfy --workspace=<path> install
: Install ComfyUI into<path>/ComfyUI
.- For
comfy install
, if no path specification like--workspace, --recent, or --here
is provided, it will be implicitly installed in<HOME>/comfy
.
Specifying execution path
-
You can specify the path of ComfyUI where the command will be applied through path indicators as follows:
comfy --workspace=<path>
: Run from the ComfyUI installed in the specified workspace.comfy --recent
: Run from the recently executed or installed ComfyUI.comfy --here
: Run from the ComfyUI located in the current directory.
-
--workspace, --recent, and --here options cannot be used simultaneously.
-
If there is no path indicator, the following priority applies:
- Run from the default ComfyUI at the path specified by
comfy set-default <path>
. - Run from the recently executed or installed ComfyUI.
- Run from the ComfyUI located in the current directory.
- Run from the default ComfyUI at the path specified by
-
Example 1: To run the recently executed ComfyUI:
comfy --recent launch
-
Example 2: To install a package on the ComfyUI in the current directory:
comfy --here node install ComfyUI-Impact-Pack
-
Example 3: To update the automatically selected path of ComfyUI and custom nodes based on priority:
comfy node update all
-
You can use the
comfy which
command to check the path of the target workspace.- e.g
comfy --recent which
,comfy --here which
,comfy which
, ...
- e.g
Default Setup
The default sets the option that will be executed by default when no specific workspace's ComfyUI has been set for the command.
comfy set-default <workspace path> ?[--launch-extras="<extra args>"]
--launch-extras
option specifies extra args that are applied only during launch by default. However, if extras are specified at the time of launch, this setting is ignored.
Launch ComfyUI
Comfy provides commands that allow you to easily run the installed ComfyUI.
comfy launch
-
To run with default ComfyUI options:
comfy launch -- <extra args...>
comfy launch -- --cpu --listen 0.0.0.0
- When you manually configure the extra options, the extras set by set-default will be overridden.
-
To run background
comfy launch --background
comfy --workspace=~/comfy launch --background -- --listen 10.0.0.10 --port 8000
- Instances launched with
--background
are displayed in the "Background ComfyUI" section ofcomfy env
, providing management functionalities for a single background instance only. - Since "Comfy Server Running" in
comfy env
only shows the default port 8188, it doesn't display ComfyUI running on a different port. - Background-running ComfyUI can be stopped with
comfy stop
.
- Instances launched with
Managing Custom Nodes
comfy provides a convenient way to manage custom nodes for extending ComfyUI's functionality. Here are some examples:
- Show custom nodes' information:
comfy node [show|simple-show] [installed|enabled|not-installed|disabled|all|snapshot|snapshot-list]
?[--channel <channel name>]
?[--mode [remote|local|cache]]
-
comfy node show all --channel recent
comfy node simple-show installed
comfy node update all
comfy node install ComfyUI-Impact-Pack
-
Managing snapshot:
comfy node save-snapshot
comfy node restore-snapshot <snapshot name>
-
Install dependencies:
comfy node install-deps --deps=<deps .json file>
comfy node install-deps --workflow=<workflow .json/.png file>
-
Generate deps:
comfy node deps-in-workflow --workflow=<workflow .json/.png file>
Managing Models
-
Model downloading
comfy model get
*Downloading models that have already been installed will
-
Model remove
comfy model enable-gui
-
Model list
comfy model list
Managing ComfyUI-Manager
-
disable GUI of ComfyUI-Manager (disable Manager menu and Server)
comfy manager disable-gui
-
enable GUI of ComfyUI-Manager
comfy manager enable-gui
-
Clear reserved startup action:
comfy manager clear
Beta Feature: format of comfy-lock.yaml (WIP)
basic:
models:
- model: [name of the model]
url: [url of the source, e.g. https://huggingface.co/...]
paths: [list of paths to the model]
- path: [path to the model]
- path: [path to the model]
hashes: [hashes for the model]
- hash: [hash]
type: [AutoV1, AutoV2, SHA256, CRC32, and Blake3]
type: [type of the model, e.g. diffuser, lora, etc.]
- model:
...
# compatible with ComfyUI-Manager's .yaml snapshot
custom_nodes:
comfyui: [commit hash]
file_custom_nodes:
- disabled: [bool]
filename: [.py filename]
...
git_custom_nodes:
[git-url]:
disabled: [bool]
hash: [commit hash]
...
Analytics
We track analytics using Mixpanel to help us understand usage patterns and know where to prioritize our efforts. When you first download the cli, it will ask you to give consent. If at any point you wish to opt out:
comfy tracking disable
Check out the usage here: Mixpanel Board
Contributing
We welcome contributions to comfy-cli! If you have any ideas, suggestions, or bug reports, please open an issue on our GitHub repository. If you'd like to contribute code, please fork the repository and submit a pull request.
Check out the Dev Guide for more details.
License
comfy is released under the GNU General Public License v3.0.
Support
If you encounter any issues or have questions about comfy-cli, please open an issue on our GitHub repository or contact us on Discord. We'll be happy to assist you!
Happy diffusing with ComfyUI and comfy-cli! 🎉
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file comfy_cli-0.0.22.tar.gz
.
File metadata
- Download URL: comfy_cli-0.0.22.tar.gz
- Upload date:
- Size: 67.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad989c381e5f0c635b437c8b575983278e407f8a91207adda706b5e53ae1b9d2 |
|
MD5 | dec4e93296eaa52aab1eb868afdba3d2 |
|
BLAKE2b-256 | 2d7c62e06a590d826bb4de3fe869f2be0d1976fbc6e6b690e535eb71417acade |
File details
Details for the file comfy_cli-0.0.22-py3-none-any.whl
.
File metadata
- Download URL: comfy_cli-0.0.22-py3-none-any.whl
- Upload date:
- Size: 59.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2833823bc93da0c3033798e94efcd58288466f402c40c667c73ff4d6d3240c8f |
|
MD5 | eb6f99b6d678bf74d1016b826c47b4ee |
|
BLAKE2b-256 | 25762a64d98f6508d2029e232363d6cd6360faca4c82e96bab7cd6c7fd985a10 |