Comfy-Org / comfy-cli

Command Line Interface for Managing ComfyUI
https://docs.comfy.org/comfy-cli/getting-started
GNU General Public License v3.0
230 stars 36 forks source link
ai comfyui command-line stable-diffusion

Comfy-Cli: A Command Line Tool for ComfyUI

Test ComfyUI Example Workflows Test ComfyUI Windows with Default Workflow

codecov

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.

Demo

Comfy Command Demo

Features

Installation

  1. (Recommended, but not necessary) Enable virtual environment (venv/conda)

  2. 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

Specifying execution path

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 ComfyUI

Comfy provides commands that allow you to easily run the installed ComfyUI.

comfy launch

Managing Custom Nodes

comfy provides a convenient way to manage custom nodes for extending ComfyUI's functionality. Here are some examples:

comfy node [show|simple-show] [installed|enabled|not-installed|disabled|all|snapshot|snapshot-list]
                             ?[--channel <channel name>]
                             ?[--mode [remote|local|cache]]

Bisect custom nodes

If you encounter bugs only with custom nodes enabled, and want to find out which custom node(s) causes the bug, the bisect tool can help you pinpoint the custom node that causes the issue.

Managing Models

Managing ComfyUI-Manager

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! πŸŽ‰