Skip to main content

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
  • 💻 Cross-platform compatibility (Windows, macOS, Linux)
  • 📖 Comprehensive documentation and examples

Installation

To install comfy-cli, make sure you have Python 3.7 or higher installed on your system. Then, run the following command:

pip install comfy-cli

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.
  • 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, ...

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

  • 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 of comfy 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.

Managing Packages [WIP]

comfy allows you to easily install, update, and remove packages for ComfyUI. Here are some examples:

  • Install a package:

    comfy package install package-name

  • Update a package:

    comfy package update package-name

  • Remove a package:

    comfy package remove package-name

  • List installed packages:

    comfy package list

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>

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

Format of comfy.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]
    hash: [md5hash for the model]
    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]
    ...

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.

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. We'll be happy to assist you!

Happy diffusing with ComfyUI and comfy-cli! 🎉

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

comfy_cli-0.0.10.tar.gz (58.3 kB view details)

Uploaded Source

Built Distribution

comfy_cli-0.0.10-py3-none-any.whl (49.2 kB view details)

Uploaded Python 3

File details

Details for the file comfy_cli-0.0.10.tar.gz.

File metadata

  • Download URL: comfy_cli-0.0.10.tar.gz
  • Upload date:
  • Size: 58.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for comfy_cli-0.0.10.tar.gz
Algorithm Hash digest
SHA256 b229c113bcc9bc6b1d2891ed00ef3e0049c5ef89c1f3f79fdc06770a6558592c
MD5 e3081ff2ada5661173e7523cf6a2d576
BLAKE2b-256 a1fa9fb8e4e7d120942b9fb8e7575c1388b33dc4b01fe650d7dda85f05d2c407

See more details on using hashes here.

File details

Details for the file comfy_cli-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: comfy_cli-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 49.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for comfy_cli-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 2268aa50f9c01e18383735f54f86962f013cb0adaa191b39adb9268deb295db5
MD5 c91d4677a371fc68906ed8620b948cb3
BLAKE2b-256 c94256ce8bfac8efb5ed6eaef331336da0fb4ca59f704a4f9e7e6d0528cc3eac

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page