English | 中文说明
Similar to the ComfyUI official standalone portable, but preloaded with numerous custom nodes and Python packages, with all dependencies resolved.
-
Pre-installed with 40+ commonly-used custom nodes. [Full List]
-
With all the model files that need to be downloaded on the first run (which may cause freezing for users with a poor Internet connection).
-
-
Includes 200+ mutually compatible Python packages, including:
-
insightface
,dlib
, etc., which require compilation during installation. -
xFormers, which is not included in the ComfyUI official package for an understandable reason. It may not be significant for text-to-image, but could be useful for video workflows.
-
-
Only a few functional models are pre-installed; users please prepare SD models of your favorite.
-
This repo uses the GitHub pipeline for packaging, making it easy for DIY. No need to configure CI/CD, simply fork the repository on GitHub to run the packaging script. See Creating Your Own All-In-One Package.
-
Only NVIDIA GPUs are supported, preferably with the latest driver installed.
-
Download the package files from the release page.
-
Or you can download them directly:
-
models.zip.001 (If you are upgrading from a previous release, you don’t need this file.)
-
Open the
.7z.001
and extract it to a convenient place. Open the.zip.001
and extract it to the same place. If you can’t open 7z files, install 7-zip or PeaZip first.
-
-
Place SD models in
ComfyUI\models\checkpoints
.-
Subdirectories can be created for better organization.
-
-
Run
RUN_Launcher.bat
to start.
-
After launching, the program will automatically open a browser. You can also manually access: http://localhost:8188/.
-
Close the window to exit the program.
-
The
ExtraScripts
folder contains command-line launch scripts, which are equivalent to the launcher. -
Take full advantage of ComfyUI-Manager (the Manager button in the top-right corner of the ComfyUI page) to manage custom nodes: install, update, disable, and uninstall.
-
Be cautious when using "Update All"; there’s no need to update unused nodes to avoid Python package conflicts.
-
-
For power users, consider using Sandboxie to limit cache files while isolating the environment.
-
For better I/O performance when using Sandboxie, it is recommended to configure the program’s main directory (
ComfyUI_Windows_portable
) as "Open Access" in "Sandbox Options" → "Resource Access".
-
If you place model files on different partitions or share a set of model files across multiple ComfyUI instances, you can configure ComfyUI to load external model directories:
-
Rename
extra_model_paths.yaml.example
in theComfyUI
directory, removing the.example
suffix. -
Edit
extra_model_paths.yaml
, where lines starting with#
are comments.
Reference file (click to expand)
comfyui: base_path: D:\models\ animatediff_models: animatediff_models animatediff_motion_lora: animatediff_motion_lora bert-base-uncased: bert-base-uncased checkpoints: checkpoints clip: clip clip_vision: clip_vision configs: configs controlnet: controlnet depthfm: depthfm diffusers: diffusers diffusion_models: | diffusion_models unet embeddings: embeddings facerestore_models: facerestore_models gligen: gligen grounding-dino: grounding-dino hypernetworks: hypernetworks insightface: insightface instantid: instantid ipadapter: ipadapter loras: loras mmdets: mmdets onnx: onnx photomaker: photomaker reactor: reactor rembg: rembg sams: sams style_models: style_models text_encoders: text_encoders ultralytics: ultralytics unet: unet upscale_models: upscale_models vae: vae vae_approx: vae_approx
ComfyUI has five common locations for saving model files:
-
The built-in
ComfyUI\models
directory. -
External model directories configured via
extra_model_paths.yaml
. -
Model files downloaded via HuggingFace Hub (HF official downloader).
-
Model files downloaded via PyTorch.
-
Files downloaded in-place by nodes in
ComfyUI\custom_nodes
.
Among these:
-
HF Hub defaults to downloading files to
C:\Users\UserName\.cache\huggingface\hub
. -
PyTorch defaults to downloading files to
C:\Users\UserName\.cache\torch\hub
.
This package modifies the launch script to redirect these to the program’s root directory, under HuggingFaceHub
and TorchHome
folders, respectively, for easier management. If needed, you can edit the launch script to change these paths.
This method does not use ComfyUI-Manager for updates but directly replaces the package with a new version. If the process goes smoothly, it avoids installing or upgrading Python packages, thus preventing dependency conflicts.
-
Extract the new package.
-
Delete the
ComfyUI
,HuggingFaceHub
, andTorchHome
folders in the new package. -
Copy (or move) these three folders from the old package to the new one.
-
Run
RUN_Force_Updater.bat
in the new package’s root directory. -
If any nodes fail to load, use ComfyUI-Manager to "try fix."
If compatibility issues arise, you can try disabling conflicting nodes in ComfyUI-Manager.
This repository utilizes a pipeline to build the package, and the codebase doesn’t contain specific configurations or require additional access permissions. Hence, you can directly fork this repository to start executing the GitHub Workflow.
-
After forking, go to Actions on the page.
-
Locate Build & Upload Package.
-
For example, the page in my repository looks like this.
-
-
Click Run Workflow.
-
Wait about 20~40 minutes until the workflow run complete.
-
Go to the releases page of your repository, where you will find the newly generated draft, ready for download or editing.
Originally, the code was copied from ComfyUI’s GitHub workflow, but I found it difficult to debug, so I rewrote the script.
However, the packaging concept is similar: providing a self-contained, portable, and fully equipped environment with a pre-installed Python Embedded.
The difference is that I didn’t download wheels first and then install them in bulk like Comfy did. Because dependency relationships are too tricky, I went straight to pip install
for dependency solving.
As a note, a common issue with Python Embedded in such pre-installed packages is that most of the executables in the Scripts
directory cannot run properly. This is because these executables are often Python command wrappers that invoke python.exe
through an absolute path. Once the directory changes (or is relocated), they naturally fail to execute. Fortunately, this does not affect the current project significantly.
Thanks to the ComfyUI GitHub workflow, from which I drew inspiration.