24 KiB
ComfyUI lets you design and execute advanced stable diffusion pipelines using a graph/nodes/flowchart based interface. Available on Windows, Linux, and macOS.
Get Started
Desktop Application
- The easiest way to get started.
- Available on Windows & macOS.
Windows Portable Package
- Get the latest commits and completely portable.
- Available on Windows.
Manual Install
Supports all operating systems and GPU types (NVIDIA, AMD, Intel, Apple Silicon, Ascend).
Examples
See what ComfyUI can do with the example workflows.
Features
- Nodes/graph/flowchart interface to experiment and create complex Stable Diffusion workflows without needing to code anything.
- Image Models
- SD1.x, SD2.x (unCLIP)
- SDXL, SDXL Turbo
- Stable Cascade
- SD3 and SD3.5
- Pixart Alpha and Sigma
- AuraFlow
- HunyuanDiT
- Flux
- Lumina Image 2.0
- HiDream
- Cosmos Predict2
- Qwen Image
- Image Editing Models
- Video Models
- Audio Models
- 3D Models
- Asynchronous Queue system
- Many optimizations: Only re-executes the parts of the workflow that changes between executions.
- Smart memory management: can automatically run large models on GPUs with as low as 1GB vram with smart offloading.
- Works even if you don't have a GPU with:
--cpu(slow) - Can load ckpt and safetensors: All in one checkpoints or standalone diffusion models, VAEs and CLIP models.
- Safe loading of ckpt, pt, pth, etc.. files.
- Embeddings/Textual inversion
- Loras (regular, locon and loha)
- Hypernetworks
- Loading full workflows (with seeds) from generated PNG, WebP and FLAC files.
- Saving/Loading workflows as Json files.
- Nodes interface can be used to create complex workflows like one for Hires fix or much more advanced ones.
- Area Composition
- Inpainting with both regular and inpainting models.
- ControlNet and T2I-Adapter
- Upscale Models (ESRGAN, ESRGAN variants, SwinIR, Swin2SR, etc...)
- GLIGEN
- Model Merging
- LCM models and Loras
- Latent previews with TAESD
- Works fully offline: core will never download anything unless you want to.
- Optional API nodes to use paid models from external providers through the online Comfy API.
- Config file to set the search paths for models.
Workflow examples can be found on the Examples page
Release Process
ComfyUI follows a weekly release cycle targeting Friday but this regularly changes because of model releases or large changes to the codebase. There are three interconnected repositories:
-
- Releases a new stable version (e.g., v0.7.0)
- Serves as the foundation for the desktop release
-
- Builds a new release using the latest stable core version
-
- Weekly frontend updates are merged into the core repository
- Features are frozen for the upcoming core release
- Development continues for the next release cycle
Shortcuts
| Keybind | Explanation |
|---|---|
Ctrl + Enter |
Queue up current graph for generation |
Ctrl + Shift + Enter |
Queue up current graph as first for generation |
Ctrl + Alt + Enter |
Cancel current generation |
Ctrl + Z/Ctrl + Y |
Undo/Redo |
Ctrl + S |
Save workflow |
Ctrl + O |
Load workflow |
Ctrl + A |
Select all nodes |
Alt + C |
Collapse/uncollapse selected nodes |
Ctrl + M |
Mute/unmute selected nodes |
Ctrl + B |
Bypass selected nodes (acts like the node was removed from the graph and the wires reconnected through) |
Delete/Backspace |
Delete selected nodes |
Ctrl + Backspace |
Delete the current graph |
Space |
Move the canvas around when held and moving the cursor |
Ctrl/Shift + Click |
Add clicked node to selection |
Ctrl + C/Ctrl + V |
Copy and paste selected nodes (without maintaining connections to outputs of unselected nodes) |
Ctrl + C/Ctrl + Shift + V |
Copy and paste selected nodes (maintaining connections from outputs of unselected nodes to inputs of pasted nodes) |
Shift + Drag |
Move multiple selected nodes at the same time |
Ctrl + D |
Load default graph |
Alt + + |
Canvas Zoom in |
Alt + - |
Canvas Zoom out |
Ctrl + Shift + LMB + Vertical drag |
Canvas Zoom in/out |
P |
Pin/Unpin selected nodes |
Ctrl + G |
Group selected nodes |
Q |
Toggle visibility of the queue |
H |
Toggle visibility of history |
R |
Refresh graph |
F |
Show/Hide menu |
. |
Fit view to selection (Whole graph when nothing is selected) |
| Double-Click LMB | Open node quick search palette |
Shift + Drag |
Move multiple wires at once |
Ctrl + Alt + LMB |
Disconnect all wires from clicked slot |
Ctrl can also be replaced with Cmd instead for macOS users
ComfyUI Installation Guide (Full Instructions)
ComfyUI is the most powerful and modular visual AI engine and application.
It lets you design and execute advanced Stable Diffusion pipelines using a graph/nodes/flowchart-based interface.
Which Installation Method Should I Use?
| Platform / Hardware | Easiest Method | Recommended For | Section |
|---|---|---|---|
| Windows – NVIDIA GPU | Portable Build | Beginners, no Python setup, plug-and-play | 1 |
| Windows – Any GPU / CPU | Manual Install | Custom nodes, latest updates, flexibility | 2 |
| Linux – NVIDIA GPU | Manual Install | Performance + customization | 2 |
| Linux – AMD ROCm GPU | Manual Install | Best AMD performance | 2 / 5 |
| Linux – Intel Arc GPU | Manual Install | Nightly PyTorch XPU builds | 2 |
| macOS (Apple Silicon) | macOS Install | M1 / M2 / M3 chips | 3 |
| Windows – AMD GPU | DirectML | Not recommended — only if no better option | 4 |
| Special Hardware (NPUs, MLUs) | Other Hardware Setups | Ascend, Cambricon, Iluvatar devices | 4 |
| Any OS – pip install | comfy-cli | Fast install via CLI | 6 |
1. Windows Portable Build – Easiest Method
Best for: NVIDIA GPU users or CPU-only usage.
No Python install required — works out of the box.
Steps
-
Download
-
Extract
- Use 7-Zip to extract the
.7zfile. - If extraction fails:
- Right-click file → Properties → check Unblock → Apply.
- Use 7-Zip to extract the
-
Add Models
- Place
.ckptor.safetensorsinto:ComfyUI/models/checkpoints - Place VAE files into:
ComfyUI/models/vae
- Place
-
Run ComfyUI
- Double-click
run_nvidia_gpu.bat(or CPU script if no GPU).
- Double-click
-
(Optional) Share Models
- Rename
extra_model_paths.yaml.example→extra_model_paths.yaml. - Edit with your model paths.
- Rename
2. Windows or Linux – Manual Install
Best for: Latest features, custom nodes, all GPU types, CPU fallback.
Requirements
- Python 3.12 (3.13 supported but may break custom nodes)
- Git installed
Steps
-
Clone Repo
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI -
Add Models
models/checkpoints → .ckpt / .safetensors models/vae → VAE files -
Install PyTorch (GPU-specific)
NVIDIA:
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu129(Nightly):
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129AMD (Linux ROCm):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.4(Nightly):
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.4Intel Arc (XPU – Nightly):
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpuIntel (IPEX – Conda):
conda install libuv pip install torch==2.3.1.post0+cxx11.abi torchvision==0.18.1.post0+cxx11.abi torchaudio==2.3.1.post0+cxx11.abi intel-extension-for-pytorch==2.3.110.post0+xpu --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/ --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/ -
Install Dependencies
pip install -r requirements.txt -
Run
python main.py
3. macOS – Apple Silicon (M1/M2/M3)
Steps
- Install PyTorch nightly with Metal (Apple’s Guide).
- Clone ComfyUI:
git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI - Add models (same as Manual Install).
- Install dependencies:
pip install -r requirements.txt - Run:
python main.py
4. Other Hardware Setups
AMD (Windows – DirectML)
pip install torch-directml
python main.py --directml
Ascend NPUs
- Install Linux kernel as per torch-npu guide
- Install Ascend Basekit
- Install PyTorch NPU packages (instructions)
- Install ComfyUI (Manual Install method)
Cambricon MLUs
Iluvatar Corex
- Install Iluvatar Toolkit
- Run
python main.py
5. AMD ROCm Tips
- Unsupported cards:
HSA_OVERRIDE_GFX_VERSION=10.3.0 python main.py # RDNA2 HSA_OVERRIDE_GFX_VERSION=11.0.0 python main.py # RDNA3 - Speed tweaks:
TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 python main.py --use-pytorch-cross-attention PYTORCH_TUNABLEOP_ENABLED=1 python main.py
6. comfy-cli Install (Any OS)
pip install comfy-cli
comfy install
After Installation
- Run:
python main.py - Open browser at the shown local address.
- Place additional LoRAs, embeddings, etc. in
models/subfolders.
Notes
Only parts of the graph that have an output with all the correct inputs will be executed.
Only parts of the graph that change from each execution to the next will be executed, if you submit the same graph twice only the first will be executed. If you change the last part of the graph only the part you changed and the part that depends on it will be executed.
Dragging a generated png on the webpage or loading one will give you the full workflow including seeds that were used to create it.
You can use () to change emphasis of a word or phrase like: (good code:1.2) or (bad code:0.8). The default emphasis for () is 1.1. To use () characters in your actual prompt escape them like \( or \).
You can use {day|night}, for wildcard/dynamic prompts. With this syntax "{wild|card|test}" will be randomly replaced by either "wild", "card" or "test" by the frontend every time you queue the prompt. To use {} characters in your actual prompt escape them like: \{ or \}.
Dynamic prompts also support C-style comments, like // comment or /* comment */.
To use a textual inversion concepts/embeddings in a text prompt put them in the models/embeddings directory and use them in the CLIPTextEncode node like this (you can omit the .pt extension):
embedding:embedding_filename.pt
How to show high-quality previews?
Use --preview-method auto to enable previews.
The default installation includes a fast latent preview method that's low-resolution. To enable higher-quality previews with TAESD, download the taesd_decoder.pth, taesdxl_decoder.pth, taesd3_decoder.pth and taef1_decoder.pth and place them in the models/vae_approx folder. Once they're installed, restart ComfyUI and launch it with --preview-method taesd to enable high-quality previews.
How to use TLS/SSL?
Generate a self-signed certificate (not appropriate for shared/production use) and key by running the command: openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=CommonNameOrHostname"
Use --tls-keyfile key.pem --tls-certfile cert.pem to enable TLS/SSL, the app will now be accessible with https://... instead of http://....
Note: Windows users can use alexisrolland/docker-openssl or one of the 3rd party binary distributions to run the command example above.
If you use a container, note that the volume mount-vcan be a relative path so... -v ".\:/openssl-certs" ...would create the key & cert files in the current directory of your command prompt or powershell terminal.
Support and dev channel
Discord: Try the #help or #feedback channels.
Matrix space: #comfyui_space:matrix.org (it's like discord but open source).
See also: https://www.comfy.org/
Frontend Development
As of August 15, 2024, we have transitioned to a new frontend, which is now hosted in a separate repository: ComfyUI Frontend. This repository now hosts the compiled JS (from TS/Vue) under the web/ directory.
Reporting Issues and Requesting Features
For any bugs, issues, or feature requests related to the frontend, please use the ComfyUI Frontend repository. This will help us manage and address frontend-specific concerns more efficiently.
Using the Latest Frontend
The new frontend is now the default for ComfyUI. However, please note:
- The frontend in the main ComfyUI repository is updated fortnightly.
- Daily releases are available in the separate frontend repository.
To use the most up-to-date frontend version:
-
For the latest daily release, launch ComfyUI with this command line argument:
--front-end-version Comfy-Org/ComfyUI_frontend@latest -
For a specific version, replace
latestwith the desired version number:--front-end-version Comfy-Org/ComfyUI_frontend@1.2.2
This approach allows you to easily switch between the stable fortnightly release and the cutting-edge daily updates, or even specific versions for testing purposes.
Accessing the Legacy Frontend
If you need to use the legacy frontend for any reason, you can access it using the following command line argument:
--front-end-version Comfy-Org/ComfyUI_legacy_frontend@latest
This will use a snapshot of the legacy frontend preserved in the ComfyUI Legacy Frontend repository.