Skip to content

🎨ComfyUI standalone pack with 30+ custom nodes. | ComfyUI 大号整合包,预装大量自定义节点(不含SD模型)

License

Notifications You must be signed in to change notification settings

YanWenKun/ComfyUI-Windows-Portable

Repository files navigation

Portable package for ComfyUI on Windows

Just like ComfyUI official Standalone Portable, but preloaded with numerous custom nodes and Python packages, with all dependencies resolved.

Screenshot

The rest of README was translated by ChatGPT and edited by me (how lazy, how good😙).

Features

  • Pre-installed with 30+ custom nodes including:

    • ComfyUI-3D-Pack with dependencies that make my head spin (Now Comfy3D can be installed through Manager elegantly)

    • WAS Node Suite with fixed dependencies (prone to version chaos) and no longer actively developed (Now its versions are better numbered)

    • ReActor Node and Impact Pack that download model files on the first run (often causing freezing for users with bad Internet Connection)

  • Includes 240+ Python packages, versions compatible, including:

    • Packages like insightface and dlib which often throw "compiler not found" during installation

    • Packages like CLIP that require compilation from a git repository

    • ONNX Runtime, which often throws "CUDAExecutionProvider Not Available". The one in the package not only works, but also supports CUDA 12.x

    • xFormers. I know it’s not included in the ComfyUI official package for a good reason. See details in About xFormers.

  • Only a few functional models that might slow down the program startup are pre-installed; users please prepare SD models of your favorite.

How to Use

  1. Only NVIDIA graphics cards are supported, preferably with the latest drivers installed.

    • AMD graphics cards may possibly work with ZLUDA after installing the HIP SDK, and this requires modifying startup parameters, among other things.

  2. Download the package files from the release page:

  3. Place SD models in ComfyUI\models\checkpoints.

    • Subdirectories can be created for better organization.

  4. Run run_nvidia_gpu.bat to start ComfyUI.

  5. After starting, the program will automatically open a browser, or you can visit: http://localhost:8188/

    • If you don’t want the browser to open automatically, edit run_nvidia_gpu.bat and add the startup parameter --disable-auto-launch.

Tips for Usage

  1. Model Path: If model files are already saved in another location and you don’t want to move them, you can configure the program to load them:

    • Rename extra_model_paths.yaml.example in the ComfyUI directory to extra_model_paths.yaml.

    • Edit extra_model_paths.yaml according to the directory structure, removing corresponding comments.

    • Items other than base_path can be added or removed freely to map newly added subdirectories; the program will try load all of them.

  2. Proxy: If a network proxy is needed, edit run_nvidia_gpu.bat and add the following at the beginning:

    set HTTP_PROXY=http://localhost:1081
    set HTTPS_PROXY=http://localhost:1081
  3. Manager: Take advantage of the ComfyUI-Manager (the Manager button located at the bottom right corner of the ComfyUI page) to install additional custom nodes, update ComfyUI and nodes, or disable unnecessary nodes.

    • If you find that some unused nodes affect the startup time, you can disable them.

  4. Language: Click the gear (⚙) icon at the top right corner of the ComfyUI page to modify settings. Find AGLTranslation to change the language (default is English, options are {Chinese, Japanese, Korean}).

  5. 3D-Pack: Besides SD models, some custom nodes may require downloading more models, such as the TripoSR used in 3D workflows. However, including all of them would make the package too large, so they were not included. Moreover, you still need to install Visual Studio Build Tools 2022 with "Desktop development with C++" workload to fully utilize ComfyUI-3D-Pack (some JIT codes need to be compiled in runtime). If you need to use the corresponding nodes, please pay attention to the respective project pages.

  6. How to upgrade: ComfyUI-Manager can do most updates, but if you want a "fresh" upgrade, you can first delete the python_embeded directory, and then extract the same-named directory from the new version’s package to the original location. Additional "try fix" in ComfyUI-Manager may be needed.

Details

Pre-installed Custom Node List

Table 1. Workspace

ComfyUI Manager

ComfyUI Translations

Crystools

Table 2. General

Comfyroll Studio

ComfyUI Essentials by cubiq

Derfuu Modded Nodes

Custom Scripts by pythongosssss

Efficiency Nodes by jags111

KJNodes

Mikey Nodes

rgthree Nodes

smZ(shiimizu) Nodes

Use Everywhere

WAS Node Suite

Table 3. Control

Advanced ControlNet

ControlNet Auxiliary Preprocessors

Impact Pack

Inspire Pack

InstantID by cubiq

IPAdapter plus

LayerDiffuse

Portrait Master

ReActor Node

SD Dynamic Thresholding

SDXL Prompt Styler

Segment Anything

Table 4. Video

AnimateAnyone Evolved

AnimateDiff Evolved

FizzNodes

Frame Interpolation (VFI)

MTB Nodes

Video Helper Suite

Table 5. More

3D Pack by MrForExample

Face Analysis by cubiq

Image Selector

Ultimate SD Upscale

WD 1.4 Tagger

Most of the popular custom nodes are denpendency-compatible. You can install more custom nodes through ComfyUI-Manager.

If compatibility issues arise, you can try disabling conflicting nodes in ComfyUI-Manager.

About xFormers

The cross-attention mechanism in PyTorch 2.2+ performs well on Windows and is more consistent (albeit subtly), so it’s understandable why the ComfyUI official package chose not to include xFormers.

Speed and memory usage of xFormers and Torch vary depending on the application scenario and require specific testing. You can add --use-pytorch-cross-attention to the ComfyUI startup parameters to disable xFormers.

Personally, I prefer to enable xFormers when generating videos.

Additionally, including xFormers satisfies the dependencies of some nodes like AnimateAnyone Evolved.

Creating Your Own AIO Package

This repository utilizes a pipeline to build the integration 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.

  1. After forking, go to Actions on the page.

  2. Locate Build & Upload Package.

    • For example, it looks like this on my repository page.

  3. Click Run Workflow.

  4. Wait about 20~40 minutes until the workflow run complete.

  5. Go to the releases page of your repository, where you’ll find the newly generated draft for download or publish.

Security

file diff

Files detected by Sandboxie as shown in the image; registry changes are not clear.

If you need to configure a sandbox, it is recommended to set the program directory (the parent directory of ComfyUI) to "Full Access" under "Resource Access."

Complaints

In my personal experience, I use a sandbox not so much for security considerations but mainly to avoid various Python packages downloading files haphazardly. Especially Huggingface Hub likes to download to %USERPROFILE%\.cache, and some rough and ready nodes directly call its downloader, downloading Git LFS blob files rather than individual model files, which are neither intuitive nor convenient for copying and reusing. Of course, despite the complaints, sandboxing is mainly for easy cleaning of temporary files.

Advertisement

Linux/WSL2 users may want to check out my ComfyUI-Docker, which is the exact opposite of the Windows integration package in terms of being large and comprehensive but difficult to update. I designed the Docker image with a meticulous eye, selecting a series of non-conflicting and latest version dependencies, and adhering to the KISS principle by only including ComfyUI-Manager, leaving the choice of custom nodes to the users. Not to mention the benefits of easy upgrades, easy cleanup, and secure isolation provided by container runtime itself.

Development idea

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 comfyanonymous did. Because dependency relationships are too tricky, I went straight to pip install for dependency solving.

ComfyUI considers the evolution of Python and CUDA versions and has multiple version releases. However, after installing a large number of Python packages and custom nodes, I found it difficult to move away from Python 3.11 + CUDA 12.1. Therefore, I only made this one version combination.

Thanks

Thanks to the ComfyUI GitHub workflow, from which I drew inspiration. The initial code was also copied from there.

About

🎨ComfyUI standalone pack with 30+ custom nodes. | ComfyUI 大号整合包,预装大量自定义节点(不含SD模型)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages