diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml new file mode 100644 index 00000000..f96c027a --- /dev/null +++ b/.github/workflows/publish-to-pypi.yml @@ -0,0 +1,58 @@ +name: Publish to PyPI + +on: + workflow_dispatch: + push: + branches: + - draft-v4 + paths: + - "pyproject.toml" + +jobs: + build-and-publish: + runs-on: ubuntu-latest + if: ${{ github.repository_owner == 'ltdrdata' || github.repository_owner == 'Comfy-Org' }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.9' + + - name: Install build dependencies + run: | + python -m pip install --upgrade pip + python -m pip install build twine + + - name: Get current version + id: current_version + run: | + CURRENT_VERSION=$(grep -oP 'version = "\K[^"]+' pyproject.toml) + echo "version=$CURRENT_VERSION" >> $GITHUB_OUTPUT + echo "Current version: $CURRENT_VERSION" + + - name: Build package + run: python -m build + + - name: Create GitHub Release + id: create_release + uses: softprops/action-gh-release@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + files: dist/* + tag_name: v${{ steps.current_version.outputs.version }} + draft: false + prerelease: false + generate_release_notes: true + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_TOKEN }} + skip-existing: true + verbose: true \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..463ecca9 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,25 @@ +name: Publish to Comfy registry +on: + workflow_dispatch: + push: + branches: + - main-blocked + paths: + - "pyproject.toml" + +permissions: + issues: write + +jobs: + publish-node: + name: Publish Custom Node to registry + runs-on: ubuntu-latest + if: ${{ github.repository_owner == 'ltdrdata' }} + steps: + - name: Check out code + uses: actions/checkout@v4 + - name: Publish Custom Node + uses: Comfy-Org/publish-node-action@v1 + with: + ## Add your own personal access token to your Github Repository secrets and reference it here. + personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }} diff --git a/.github/workflows/ruff.yml b/.github/workflows/ruff.yml new file mode 100644 index 00000000..4c1a0259 --- /dev/null +++ b/.github/workflows/ruff.yml @@ -0,0 +1,23 @@ +name: Python Linting + +on: [push, pull_request] + +jobs: + ruff: + name: Run Ruff + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.x + + - name: Install Ruff + run: pip install ruff + + - name: Run Ruff + run: ruff check . diff --git a/.gitignore b/.gitignore index 94d789b6..33ee743b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ __pycache__/ .idea/ .vscode/ +.history/ +*.code-workspace .tmp .cache config.ini @@ -12,4 +14,7 @@ matrix_auth channels.list comfyworkflows_sharekey github-stats-cache.json -pip_overrides.json \ No newline at end of file +pip_overrides.json +*.json +check2.sh +/venv/ \ No newline at end of file diff --git a/README.md b/README.md index 37791381..cb010dbb 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,13 @@ **ComfyUI-Manager** is an extension designed to enhance the usability of [ComfyUI](https://github.com/comfyanonymous/ComfyUI). It offers management functions to **install, remove, disable, and enable** various custom nodes of ComfyUI. Furthermore, this extension provides a hub feature and convenience functions to access a wide range of information within ComfyUI. -![menu](misc/menu.jpg) +![menu](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/refs/heads/Main/ComfyUI-Manager/images/dialog.jpg) ## NOTICE -* V2.21 [cm-cli](docs/en/cm-cli.md) tool is added. -* V2.18 to V2.18.3 is not functioning due to a severe bug. Users on these versions are advised to promptly update to V2.18.4. Please navigate to the `ComfyUI/custom_nodes/ComfyUI-Manager` directory and execute `git pull` to update. +* V3.16: Support for `uv` has been added. Set `use_uv` in `config.ini`. +* V3.10: `double-click feature` is removed + * This feature has been moved to https://github.com/ltdrdata/comfyui-connection-helper +* V3.3.2: Overhauled. Officially supports [https://registry.comfy.org/](https://registry.comfy.org/). * You can see whole nodes info on [ComfyUI Nodes Info](https://ltdrdata.github.io/) page. ## Installation @@ -16,7 +18,7 @@ To install ComfyUI-Manager in addition to an existing installation of ComfyUI, you can follow the following steps: 1. goto `ComfyUI/custom_nodes` dir in terminal(cmd) -2. `git clone https://github.com/ltdrdata/ComfyUI-Manager.git` +2. `git clone https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager` 3. Restart ComfyUI @@ -26,31 +28,54 @@ To install ComfyUI-Manager in addition to an existing installation of ComfyUI, y - standalone version - select option: use windows default console window 2. Download [scripts/install-manager-for-portable-version.bat](https://github.com/ltdrdata/ComfyUI-Manager/raw/main/scripts/install-manager-for-portable-version.bat) into installed `"ComfyUI_windows_portable"` directory +- Don't click. Right click the link and use save as... 3. double click `install-manager-for-portable-version.bat` batch file -![portable-install](misc/portable-install.png) +![portable-install](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/portable-install.jpg) -### Installation[method3] (Installation for linux+venv: ComfyUI + ComfyUI-Manager) +### Installation[method3] (Installation through comfy-cli: install ComfyUI and ComfyUI-Manager at once.) +> RECOMMENDED: comfy-cli provides various features to manage ComfyUI from the CLI. + +* **prerequisite: python 3, git** + +Windows: +```commandline +python -m venv venv +venv\Scripts\activate +pip install comfy-cli +comfy install +``` + +Linux/OSX: +```commandline +python -m venv venv +. venv/bin/activate +pip install comfy-cli +comfy install +``` +* See also: https://github.com/Comfy-Org/comfy-cli + + +### Installation[method4] (Installation for linux+venv: ComfyUI + ComfyUI-Manager) To install ComfyUI with ComfyUI-Manager on Linux using a venv environment, you can follow these steps: -* **prerequisite: python-is-python3, python3-venv** +* **prerequisite: python-is-python3, python3-venv, git** 1. Download [scripts/install-comfyui-venv-linux.sh](https://github.com/ltdrdata/ComfyUI-Manager/raw/main/scripts/install-comfyui-venv-linux.sh) into empty install directory +- Don't click. Right click the link and use save as... - ComfyUI will be installed in the subdirectory of the specified directory, and the directory will contain the generated executable script. 2. `chmod +x install-comfyui-venv-linux.sh` 3. `./install-comfyui-venv-linux.sh` ### Installation Precautions -* **DO**: `ComfyUI-Manager` files must be accurately located in the path `ComfyUI/custom_nodes/ComfyUI-Manager` +* **DO**: `ComfyUI-Manager` files must be accurately located in the path `ComfyUI/custom_nodes/comfyui-manager` * Installing in a compressed file format is not recommended. * **DON'T**: Decompress directly into the `ComfyUI/custom_nodes` location, resulting in the Manager contents like `__init__.py` being placed directly in that directory. * You have to remove all ComfyUI-Manager files from `ComfyUI/custom_nodes` * **DON'T**: In a form where decompression occurs in a path such as `ComfyUI/custom_nodes/ComfyUI-Manager/ComfyUI-Manager`. - * You have to move `ComfyUI/custom_nodes/ComfyUI-Manager/ComfyUI-Manager` to `ComfyUI/custom_nodes/ComfyUI-Manager` * **DON'T**: In a form where decompression occurs in a path such as `ComfyUI/custom_nodes/ComfyUI-Manager-main`. - * In such cases, `ComfyUI-Manager` may operate, but it won't be recognized within `ComfyUI-Manager`, and updates cannot be performed. It also poses the risk of duplicate installations. - * You have to rename `ComfyUI/custom_nodes/ComfyUI-Manager-main` to `ComfyUI/custom_nodes/ComfyUI-Manager` + * In such cases, `ComfyUI-Manager` may operate, but it won't be recognized within `ComfyUI-Manager`, and updates cannot be performed. It also poses the risk of duplicate installations. Remove it and install properly via `git clone` method. You can execute ComfyUI by running either `./run_gpu.sh` or `./run_cpu.sh` depending on your system configuration. @@ -61,41 +86,17 @@ This repository provides Colab notebooks that allow you to install and use Comfy * Support for basic installation of ComfyUI-Manager * Support for automatically installing dependencies of custom nodes upon restarting Colab notebooks. -## Changes -* **2.21** [cm-cli](docs/en/cm-cli.md) tool is added. -* **2.4** Copy the connections of the nearest node by double-clicking. -* **2.2.3** Support Components System -* **0.29** Add `Update all` feature -* **0.25** support db channel - * You can directly modify the db channel settings in the `config.ini` file. - * If you want to maintain a new DB channel, please modify the `channels.list` and submit a PR. -* **0.23** support multiple selection -* **0.18.1** `skip update check` feature added. - * A feature that allows quickly opening windows in environments where update checks take a long time. -* **0.17.1** Bug fix for the issue where enable/disable of the web extension was not working. Compatibility patch for StableSwarmUI. - * Requires latest version of ComfyUI (Revision: 1240) -* **0.17** Support preview method setting feature. -* **0.14** Support robust update. -* **0.13** Support additional 'pip' section for install spec. -* **0.12** Better installation support for Windows. -* **0.9** Support keyword search in installer menu. -* **V0.7.1** Bug fix for the issue where updates were not being applied on Windows. - * **For those who have been using versions 0.6, please perform a manual git pull in the custom_nodes/ComfyUI-Manager directory.** -* **V0.7** To address the issue of a slow list refresh, separate the fetch update and update check processes. -* **V0.6** Support extension installation for missing nodes. -* **V0.5** Removed external git program dependencies. - ## How To Use 1. Click "Manager" button on main menu - ![mainmenu](misc/main.jpg) + ![mainmenu](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/topbar.jpg) 2. If you click on 'Install Custom Nodes' or 'Install Models', an installer dialog will open. - ![menu](misc/menu.jpg) + ![menu](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/refs/heads/Main/ComfyUI-Manager/images/dialog.jpg) * There are three DB modes: `DB: Channel (1day cache)`, `DB: Local`, and `DB: Channel (remote)`. * `Channel (1day cache)` utilizes Channel cache information with a validity period of one day to quickly display the list. @@ -111,9 +112,9 @@ This repository provides Colab notebooks that allow you to install and use Comfy 3. Click 'Install' or 'Try Install' button. - ![node-install-dialog](misc/custom-nodes.jpg) + ![node-install-dialog](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/custom-nodes.jpg) - ![model-install-dialog](misc/models.png) + ![model-install-dialog](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/models.jpg) * Installed: This item is already installed. * Install: Clicking this button will install the item. @@ -123,39 +124,56 @@ This repository provides Colab notebooks that allow you to install and use Comfy * Channel settings have a broad impact, affecting not only the node list but also all functions like "Update all." * Conflicted Nodes with a yellow background show a list of nodes conflicting with other extensions in the respective extension. This issue needs to be addressed by the developer, and users should be aware that due to these conflicts, some nodes may not function correctly and may need to be installed accordingly. -4. If you set the `Badge:` item in the menu as `Badge: Nickname`, `Badge: Nickname (hide built-in)`, `Badge: #ID Nickname`, `Badge: #ID Nickname (hide built-in)` the information badge will be displayed on the node. - * When selecting (hide built-in), it hides the 🦊 icon, which signifies built-in nodes. - * Nodes without any indication on the badge are custom nodes that Manager cannot recognize. - * `Badge: Nickname` displays the nickname of custom nodes, while `Badge: #ID Nickname` also includes the internal ID of the node. - - ![model-install-dialog](misc/nickname.jpg) - - -5. Share - ![menu](misc/main.jpg) ![share](misc/share.jpg) +4. Share + ![menu](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/topbar.jpg) ![share](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/share.jpg) * You can share the workflow by clicking the Share button at the bottom of the main menu or selecting Share Output from the Context Menu of the Image node. * Currently, it supports sharing via [https://comfyworkflows.com/](https://comfyworkflows.com/), [https://openart.ai](https://openart.ai/workflows/dev), [https://youml.com](https://youml.com) as well as through the Matrix channel. - ![menu](misc/share-setting.jpg) + ![menu](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/share-setting.jpg) - * Through the Share settings in the Manager menu, you can configure the behavior of the Share button in the Main menu or Share Ouput button on Context Menu. + * Through the Share settings in the Manager menu, you can configure the behavior of the Share button in the Main menu or Share Output button on Context Menu. * `None`: hide from Main menu * `All`: Show a dialog where the user can select a title for sharing. +## Paths +In `ComfyUI-Manager` V3.0 and later, configuration files and dynamically generated files are located under `/default/ComfyUI-Manager/`. + +* + * If executed without any options, the path defaults to ComfyUI/user. + * It can be set using --user-directory . + +* Basic config files: `/default/ComfyUI-Manager/config.ini` +* Configurable channel lists: `/default/ComfyUI-Manager/channels.ini` +* Configurable pip overrides: `/default/ComfyUI-Manager/pip_overrides.json` +* Configurable pip blacklist: `/default/ComfyUI-Manager/pip_blacklist.list` +* Configurable pip auto fix: `/default/ComfyUI-Manager/pip_auto_fix.list` +* Saved snapshot files: `/default/ComfyUI-Manager/snapshots` +* Startup script files: `/default/ComfyUI-Manager/startup-scripts` +* Component files: `/default/ComfyUI-Manager/components` + + +## `extra_model_paths.yaml` Configuration +The following settings are applied based on the section marked as `is_default`. + +* `custom_nodes`: Path for installing custom nodes + * Importing does not need to adhere to the path set as `is_default`, but this is the path where custom nodes are installed by the `ComfyUI Nodes Manager`. +* `download_model_base`: Path for downloading models + + ## Snapshot-Manager * When you press `Save snapshot` or use `Update All` on `Manager Menu`, the current installation status snapshot is saved. - * Snapshot file dir: `ComfyUI-Manager/snapshots` + * Snapshot file dir: `/default/ComfyUI-Manager/snapshots` * You can rename snapshot file. * Press the "Restore" button to revert to the installation status of the respective snapshot. * However, for custom nodes not managed by Git, snapshot support is incomplete. * When you press `Restore`, it will take effect on the next ComfyUI startup. - * The selected snapshot file is saved in `ComfyUI-Manager/startup-scripts/restore-snapshot.json`, and upon restarting ComfyUI, the snapshot is applied and then deleted. + * The selected snapshot file is saved in `/default/ComfyUI-Manager/startup-scripts/restore-snapshot.json`, and upon restarting ComfyUI, the snapshot is applied and then deleted. -![model-install-dialog](misc/snapshot.jpg) +![model-install-dialog](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/snapshot.jpg) ## cm-cli: command line tools for power user @@ -169,50 +187,21 @@ This repository provides Colab notebooks that allow you to install and use Comfy * NOTE: Before submitting the PR after making changes, please check `Use local DB` and ensure that the extension list loads without any issues in the `Install custom nodes` dialog. Occasionally, missing or extra commas can lead to JSON syntax errors. * The remaining JSON will be updated through scripts in the future, so you don't need to worry about it. + ## Custom node support guide -* Currently, the system operates by cloning the git repository and sequentially installing the dependencies listed in requirements.txt using pip, followed by invoking the install.py script. In the future, we plan to discuss and determine the specifications for supporting custom nodes. +* **NOTICE:** + - You should no longer assume that the GitHub repository name will match the subdirectory name under `custom_nodes`. The name of the subdirectory under `custom_nodes` will now use the normalized name from the `name` field in `pyproject.toml`. + - Avoid relying on directory names for imports whenever possible. -* Please submit a pull request to update either the custom-node-list.json or model-list.json file. +* https://docs.comfy.org/registry/overview +* https://github.com/Comfy-Org/rfcs -* The scanner currently provides a detection function for missing nodes, which is capable of detecting nodes described by the following two patterns. - * Or you can provide manually `node_list.json` file. - -``` -NODE_CLASS_MAPPINGS = { - "ExecutionSwitch": ExecutionSwitch, - "ExecutionBlocker": ExecutionBlocker, - ... -} - -NODE_CLASS_MAPPINGS.update({ - "UniFormer-SemSegPreprocessor": Uniformer_SemSegPreprocessor, - "SemSegPreprocessor": Uniformer_SemSegPreprocessor, -}) -``` - -* When you write a docstring in the header of the .py file for the Node as follows, it will be used for managing the database in the Manager. - * Currently, only the `nickname` is being used, but other parts will also be utilized in the future. - * The `nickname` will be the name displayed on the badge of the node. - * If there is no `nickname`, it will be truncated to 20 characters from the arbitrarily written title and used. -``` -""" -@author: Dr.Lt.Data -@title: Impact Pack -@nickname: Impact Pack -@description: This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler. -""" -``` - - -* **Special purpose files** (optional) +**Special purpose files** (optional) + * `pyproject.toml` - Spec file for comfyregistry. * `node_list.json` - When your custom nodes pattern of NODE_CLASS_MAPPINGS is not conventional, it is used to manually provide a list of nodes for reference. ([example](https://github.com/melMass/comfy_mtb/raw/main/node_list.json)) * `requirements.txt` - When installing, this pip requirements will be installed automatically * `install.py` - When installing, it is automatically called - * `uninstall.py` - When uninstalling, it is automatically called - * `disable.py` - When disabled, it is automatically called - * When installing a custom node setup `.js` file, it is recommended to write this script for disabling. - * `enable.py` - When enabled, it is automatically called * **All scripts are executed from the root path of the corresponding custom node.** @@ -231,12 +220,12 @@ NODE_CLASS_MAPPINGS.update({ } ``` * `` Ensure that the timestamp is always unique. - * "components" should have the same structure as the content of the file stored in ComfyUI-Manager/components. + * "components" should have the same structure as the content of the file stored in `/default/ComfyUI-Manager/components`. * ``: The name should be in the format `::`. * ``: In the nodedata of the group node. * ``: Only two formats are allowed: `major.minor.patch` or `major.minor`. (e.g. `1.0`, `2.2.1`) * ``: Saved time - * ``: If the packname is not empty, the category becomes packname/workflow, and it is saved in the .pack file in ComfyUI-Manager/components. + * ``: If the packname is not empty, the category becomes packname/workflow, and it is saved in the .pack file in `/default/ComfyUI-Manager/components`. * ``: If there is neither a category nor a packname, it is saved in the components category. ``` "version":"1.0", @@ -253,11 +242,37 @@ NODE_CLASS_MAPPINGS.update({ ## Support of missing nodes installation -![missing-menu](misc/missing-menu.png) +![missing-menu](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/missing-menu.jpg) * When you click on the ```Install Missing Custom Nodes``` button in the menu, it displays a list of extension nodes that contain nodes not currently present in the workflow. -![missing-list](misc/missing-list.png) +![missing-list](https://raw.githubusercontent.com/ltdrdata/ComfyUI-extension-tutorials/Main/ComfyUI-Manager/images/missing-list.jpg) + + +# Config +* You can modify the `config.ini` file to apply the settings for ComfyUI-Manager. + * The path to the `config.ini` used by ComfyUI-Manager is displayed in the startup log messages. + * See also: [https://github.com/ltdrdata/ComfyUI-Manager#paths] +* Configuration options: + ``` + [default] + git_exe = + use_uv = + default_cache_as_channel_url = + bypass_ssl = + file_logging = + windows_selector_event_loop_policy = + model_download_by_agent = + downgrade_blacklist = + security_level = strong|normal|normal-|weak> + always_lazy_install = + network_mode = public|private|offline> + ``` + + * network_mode: + - public: An environment that uses a typical public network. + - private: An environment that uses a closed network, where a private node DB is configured via `channel_url`. (Uses cache if available) + - offline: An environment that does not use any external connections when using an offline network. (Uses cache if available) ## Additional Feature @@ -288,7 +303,40 @@ NODE_CLASS_MAPPINGS.update({ * Custom pip mapping * When you create the `pip_overrides.json` file, it changes the installation of specific pip packages to installations defined by the user. * Please refer to the `pip_overrides.json.template` file. - + +* Prevent the installation of specific pip packages + * List the package names one per line in the `pip_blacklist.list` file. + +* Automatically Restoring pip Installation + * If you list pip spec requirements in `pip_auto_fix.list`, similar to `requirements.txt`, it will automatically restore the specified versions when starting ComfyUI or when versions get mismatched during various custom node installations. + * `--index-url` can be used. + +* Use `aria2` as downloader + * [howto](docs/en/use_aria2.md) + + +## Environment Variables + +The following features can be configured using environment variables: + +* **COMFYUI_PATH**: The installation path of ComfyUI +* **GITHUB_ENDPOINT**: Reverse proxy configuration for environments with limited access to GitHub +* **HF_ENDPOINT**: Reverse proxy configuration for environments with limited access to Hugging Face + + +### Example 1: +Redirecting `https://github.com/ltdrdata/ComfyUI-Impact-Pack` to `https://mirror.ghproxy.com/https://github.com/ltdrdata/ComfyUI-Impact-Pack` + +``` +GITHUB_ENDPOINT=https://mirror.ghproxy.com/https://github.com +``` + +#### Example 2: +Changing `https://huggingface.co/path/to/somewhere` to `https://some-hf-mirror.com/path/to/somewhere` + +``` +HF_ENDPOINT=https://some-hf-mirror.com +``` ## Scanner When you run the `scan.sh` script: @@ -306,41 +354,40 @@ When you run the `scan.sh` script: ## Troubleshooting -* If your `git.exe` is installed in a specific location other than system git, please install ComfyUI-Manager and run ComfyUI. Then, specify the path including the file name in `git_exe = ` in the ComfyUI-Manager/config.ini file that is generated. +* If your `git.exe` is installed in a specific location other than system git, please install ComfyUI-Manager and run ComfyUI. Then, specify the path including the file name in `git_exe = ` in the `/default/ComfyUI-Manager/config.ini` file that is generated. * If updating ComfyUI-Manager itself fails, please go to the **ComfyUI-Manager** directory and execute the command `git update-ref refs/remotes/origin/main a361cc1 && git fetch --all && git pull`. - * Alternatively, download the update-fix.py script from [update-fix.py](https://github.com/ltdrdata/ComfyUI-Manager/raw/main/scripts/update-fix.py) and place it in the ComfyUI-Manager directory. Then, run it using your Python command. - For the portable version, use `..\..\..\python_embeded\python.exe update-fix.py`. -* For cases where nodes like `PreviewTextNode` from `ComfyUI_Custom_Nodes_AlekPet` are only supported as front-end nodes, we currently do not provide missing nodes for them. -* Currently, `vid2vid` is not being updated, causing compatibility issues. * If you encounter the error message `Overlapped Object has pending operation at deallocation on Comfyui Manager load` under Windows * Edit `config.ini` file: add `windows_selector_event_loop_policy = True` +* if `SSL: CERTIFICATE_VERIFY_FAILED` error is occured. + * Edit `config.ini` file: add `bypass_ssl = True` -## TODO: Unconventional form of custom node list - -* https://github.com/diontimmer/Sample-Diffusion-ComfyUI-Extension -* https://github.com/senshilabs/NINJA-plugin -* https://github.com/MockbaTheBorg/Nodes -* https://github.com/StartHua/Comfyui_GPT_Story -* https://github.com/NielsGercama/comfyui_customsampling -* https://github.com/wrightdaniel2017/ComfyUI-VideoLipSync - - -## Roadmap - -- [x] System displaying information about failed custom nodes import. -- [x] Guide for missing nodes in ComfyUI vanilla nodes. -- [x] Collision checking system for nodes with the same ID across extensions. -- [x] Template sharing system. (-> Component system based on Group Nodes) -- [x] 3rd party API system. -- [ ] Auto migration for custom nodes with changed structures. -- [ ] Version control feature for nodes. -- [ ] List of currently used custom nodes. -- [ ] Download support multiple model download. -- [ ] Model download via url. -- [x] List sorting (custom nodes). -- [ ] List sorting (model). -- [ ] Provides description of node. +## Security policy + * Edit `config.ini` file: add `security_level = ` + * `strong` + * doesn't allow `high` and `middle` level risky feature + * `normal` + * doesn't allow `high` level risky feature + * `middle` level risky feature is available + * `normal-` + * doesn't allow `high` level risky feature if `--listen` is specified and not starts with `127.` + * `middle` level risky feature is available + * `weak` + * all feature is available + + * `high` level risky features + * `Install via git url`, `pip install` + * Installation of custom nodes registered not in the `default channel`. + * Fix custom nodes + + * `middle` level risky features + * Uninstall/Update + * Installation of custom nodes registered in the `default channel`. + * Restore/Remove Snapshot + * Restart + + * `low` level risky features + * Update ComfyUI # Disclaimer diff --git a/__init__.py b/__init__.py index ab85975c..65aae69c 100644 --- a/__init__.py +++ b/__init__.py @@ -1,12 +1,22 @@ +""" +This file is the entry point for the ComfyUI-Manager package, handling CLI-only mode and initial setup. +""" + import os +import sys cli_mode_flag = os.path.join(os.path.dirname(__file__), '.enable-cli-only-mode') if not os.path.exists(cli_mode_flag): - from .glob import manager_server - WEB_DIRECTORY = "js" + sys.path.append(os.path.join(os.path.dirname(__file__), "glob")) + import manager_server # noqa: F401 + import share_3rdparty # noqa: F401 + import cm_global + + if not cm_global.disable_front and not 'DISABLE_COMFYUI_MANAGER_FRONT' in os.environ: + WEB_DIRECTORY = "js" else: - print(f"\n[ComfyUI-Manager] !! cli-only-mode is enabled !!\n") + print("\n[ComfyUI-Manager] !! cli-only-mode is enabled !!\n") NODE_CLASS_MAPPINGS = {} __all__ = ['NODE_CLASS_MAPPINGS'] diff --git a/alter-list.json b/alter-list.json index 7822ffc0..33398277 100644 --- a/alter-list.json +++ b/alter-list.json @@ -28,7 +28,7 @@ { "id":"https://github.com/BadCafeCode/masquerade-nodes-comfyui", "tags":"ddetailer", - "description": "This extension provides a way to recognize and enhance masks for faces similar to Impact Pack." + "description": "This extension is a less feature-rich and well-maintained alternative to Impact Pack, but it has fewer dependencies and may be easier to install on abnormal configurations. The author recommends trying Impact Pack first." }, { "id":"https://github.com/BlenderNeko/ComfyUI_Cutoff", @@ -126,7 +126,7 @@ "description": "This is a ported version of ComfyUI for the sd-webui-roop-nsfw extension." }, { - "id":"https://github.com/laksjdjf/attention-couple-ComfyUI", + "id":"https://github.com/laksjdjf/cgem156-ComfyUI", "tags":"regional prompt, latent couple, prompt", "description": "This custom nodes provide a functionality similar to regional prompts, offering couple features at the attention level." }, @@ -204,6 +204,21 @@ "id":"https://github.com/blepping/ComfyUI-sonar", "tags":"sonar", "description": "This extension provides some alternative functionalities of the [a/stable-diffusion-webui-sonar](https://github.com/Kahsolt/stable-diffusion-webui-sonar) extension." + }, + { + "id":"https://github.com/AIFSH/ComfyUI-RVC", + "tags":"sonar", + "description": "a comfyui custom node for [a/Retrieval-based-Voice-Conversion-WebUI](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git), you can Voice-Conversion in comfyui now!" + }, + { + "id":"https://github.com/portu-sim/comfyui-bmab", + "tags":"bmab", + "description": "a comfyui custom node for [a/sd-webui-bmab](https://github.com/portu-sim/sd-webui-bmab)" + }, + { + "id":"https://github.com/ThereforeGames/ComfyUI-Unprompted", + "tags":"unprompted", + "description": "This extension is a port of [a/unprompted](https://github.com/ThereforeGames/unprompted)" } ] } \ No newline at end of file diff --git a/check.sh b/check.sh index c57178bc..ef5c873b 100755 --- a/check.sh +++ b/check.sh @@ -1,11 +1,15 @@ #!/bin/bash +echo +echo CHECK1 + files=( "custom-node-list.json" "model-list.json" "alter-list.json" "extension-node-map.json" "github-stats.json" + "extras.json" "node_db/new/custom-node-list.json" "node_db/new/model-list.json" "node_db/new/extension-node-map.json" @@ -26,3 +30,14 @@ files=( for file in "${files[@]}"; do python json-checker.py "$file" done + +echo +echo CHECK2 +find ~/.tmp/default -name "*.py" -print0 | xargs -0 grep -E "crypto|^_A=" + +echo +echo CHECK3 +find ~/.tmp/default -name "requirements.txt" | xargs grep "^\s*https\\?:" +find ~/.tmp/default -name "requirements.txt" | xargs grep "\.whl" + +echo diff --git a/cm-cli.py b/cm-cli.py index 7cb3f3e5..04043423 100644 --- a/cm-cli.py +++ b/cm-cli.py @@ -1,190 +1,88 @@ - import os import sys import traceback import json import asyncio -import subprocess -import shutil +import concurrent +import threading +from typing import Optional + +import typer +from rich import print +from typing_extensions import List, Annotated +import re +import git +import importlib + sys.path.append(os.path.dirname(__file__)) sys.path.append(os.path.join(os.path.dirname(__file__), "glob")) -import manager_core as core -import cm_global -import git +import manager_util -print(f"\n-= ComfyUI-Manager CLI ({core.version_str}) =-\n") - - -if not (len(sys.argv) == 2 and sys.argv[1] in ['save-snapshot', 'restore-dependencies', 'clear']) and len(sys.argv) < 3: - print(f"\npython cm-cli.py [OPTIONS]\n\n" - f"OPTIONS:\n" - f" [install|reinstall|uninstall|update|disable|enable|fix] node_name ... ?[--channel ] ?[--mode [remote|local|cache]]\n" - f" [update|disable|enable|fix] all ?[--channel ] ?[--mode [remote|local|cache]]\n" - f" [simple-show|show] [installed|enabled|not-installed|disabled|all|snapshot|snapshot-list] ?[--channel ] ?[--mode [remote|local|cache]]\n" - f" save-snapshot\n" - f" restore-snapshot \n" - f" cli-only-mode [enable|disable]\n" - f" restore-dependencies\n" - f" clear\n") - exit(-1) - - -comfyui_manager_path = os.path.dirname(__file__) +# read env vars +# COMFYUI_FOLDERS_BASE_PATH is not required in cm-cli.py +# `comfy_path` should be resolved before importing manager_core comfy_path = os.environ.get('COMFYUI_PATH') - if comfy_path is None: - print(f"WARN: The `COMFYUI_PATH` environment variable is not set. Assuming `custom_nodes/ComfyUI-Manager/../../` as the ComfyUI path.\n", file=sys.stderr) - comfy_path = os.path.abspath(os.path.join(comfyui_manager_path, '..', '..')) + try: + import folder_paths + comfy_path = os.path.join(os.path.dirname(folder_paths.__file__)) + except: + print("\n[bold yellow]WARN: The `COMFYUI_PATH` environment variable is not set. Assuming `custom_nodes/ComfyUI-Manager/../../` as the ComfyUI path.[/bold yellow]", file=sys.stderr) + comfy_path = os.path.abspath(os.path.join(manager_util.comfyui_manager_path, '..', '..')) -startup_script_path = os.path.join(comfyui_manager_path, "startup-scripts") -custom_nodes_path = os.path.join(comfy_path, 'custom_nodes') +# This should be placed here +sys.path.append(comfy_path) -script_path = os.path.join(startup_script_path, "install-scripts.txt") -restore_snapshot_path = os.path.join(startup_script_path, "restore-snapshot.json") -pip_overrides_path = os.path.join(comfyui_manager_path, "pip_overrides.json") -git_script_path = os.path.join(comfyui_manager_path, "git_helper.py") +import utils.extra_config +import cm_global +import manager_core as core +from manager_core import unified_manager +import cnr_utils + +comfyui_manager_path = os.path.abspath(os.path.dirname(__file__)) + +cm_global.pip_blacklist = {'torch', 'torchaudio', 'torchsde', 'torchvision'} +cm_global.pip_downgrade_blacklist = ['torch', 'torchaudio', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia'] -cm_global.pip_downgrade_blacklist = ['torch', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia'] cm_global.pip_overrides = {} -if os.path.exists(pip_overrides_path): - with open(pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file: + +if os.path.exists(os.path.join(manager_util.comfyui_manager_path, "pip_overrides.json")): + with open(os.path.join(manager_util.comfyui_manager_path, "pip_overrides.json"), 'r', encoding="UTF-8", errors="ignore") as json_file: cm_global.pip_overrides = json.load(json_file) -processed_install = set() - - -def post_install(url): - try: - repository_name = url.split("/")[-1].strip() - repo_path = os.path.join(custom_nodes_path, repository_name) - repo_path = os.path.abspath(repo_path) - - requirements_path = os.path.join(repo_path, 'requirements.txt') - install_script_path = os.path.join(repo_path, 'install.py') - - if os.path.exists(requirements_path): - with (open(requirements_path, 'r', encoding="UTF-8", errors="ignore") as file): - for line in file: - package_name = core.remap_pip_package(line.strip()) - if package_name and not core.is_installed(package_name): - install_cmd = [sys.executable, "-m", "pip", "install", package_name] - output = subprocess.check_output(install_cmd, cwd=repo_path, text=True) - for msg_line in output.split('\n'): - if 'Requirement already satisfied:' in msg_line: - print('.', end='') - else: - print(msg_line) - - if os.path.exists(install_script_path) and f'{repo_path}/install.py' not in processed_install: - processed_install.add(f'{repo_path}/install.py') - install_cmd = [sys.executable, install_script_path] - output = subprocess.check_output(install_cmd, cwd=repo_path, text=True) - for msg_line in output.split('\n'): - if 'Requirement already satisfied:' in msg_line: - print('.', end='') - else: - print(msg_line) - - except Exception: - print(f"ERROR: Restoring '{url}' is failed.") - - -def restore_dependencies(): - node_paths = [os.path.join(custom_nodes_path, name) for name in os.listdir(custom_nodes_path) - if os.path.isdir(os.path.join(custom_nodes_path, name)) and not name.endswith('.disabled')] - - total = len(node_paths) - i = 1 - for x in node_paths: - print(f"----------------------------------------------------------------------------------------------------") - print(f"Restoring [{i}/{total}]: {x}") - post_install(x) - i += 1 - - -def restore_snapshot(snapshot_name): - global processed_install - - snapshot_path = os.path.join(core.comfyui_manager_path, 'snapshots', snapshot_name) - if not os.path.exists(snapshot_path): - print(f"ERROR: `{snapshot_path}` is not exists.") - exit(-1) - - try: - cloned_repos = [] - checkout_repos = [] - skipped_repos = [] - enabled_repos = [] - disabled_repos = [] - is_failed = False - - def extract_infos(msg_lines): - nonlocal is_failed - - for x in msg_lines: - if x.startswith("CLONE: "): - cloned_repos.append(x[7:]) - elif x.startswith("CHECKOUT: "): - checkout_repos.append(x[10:]) - elif x.startswith("SKIPPED: "): - skipped_repos.append(x[9:]) - elif x.startswith("ENABLE: "): - enabled_repos.append(x[8:]) - elif x.startswith("DISABLE: "): - disabled_repos.append(x[9:]) - elif 'APPLY SNAPSHOT: False' in x: - is_failed = True - - print(f"Restore snapshot.") - cmd_str = [sys.executable, git_script_path, '--apply-snapshot', snapshot_path] - output = subprocess.check_output(cmd_str, cwd=custom_nodes_path, text=True) - msg_lines = output.split('\n') - extract_infos(msg_lines) - - for url in cloned_repos: - post_install(url) - - # print summary - for x in cloned_repos: - print(f"[ INSTALLED ] {x}") - for x in checkout_repos: - print(f"[ CHECKOUT ] {x}") - for x in enabled_repos: - print(f"[ ENABLED ] {x}") - for x in disabled_repos: - print(f"[ DISABLED ] {x}") - - if is_failed: - print("ERROR: Failed to restore snapshot.") - - except Exception: - print("ERROR: Failed to restore snapshot.") - traceback.print_exc() - exit(-1) +if os.path.exists(os.path.join(manager_util.comfyui_manager_path, "pip_blacklist.list")): + with open(os.path.join(manager_util.comfyui_manager_path, "pip_blacklist.list"), 'r', encoding="UTF-8", errors="ignore") as f: + for x in f.readlines(): + y = x.strip() + if y != '': + cm_global.pip_blacklist.add(y) def check_comfyui_hash(): - repo = git.Repo(comfy_path) - core.comfy_ui_revision = len(list(repo.iter_commits('HEAD'))) + try: + repo = git.Repo(comfy_path) + core.comfy_ui_revision = len(list(repo.iter_commits('HEAD'))) + core.comfy_ui_commit_datetime = repo.head.commit.committed_datetime + except: + print('[bold yellow]INFO: Frozen ComfyUI mode.[/bold yellow]') + core.comfy_ui_revision = 0 + core.comfy_ui_commit_datetime = 0 - comfy_ui_hash = repo.head.commit.hexsha cm_global.variables['comfyui.revision'] = core.comfy_ui_revision - core.comfy_ui_commit_datetime = repo.head.commit.committed_datetime - -check_comfyui_hash() +check_comfyui_hash() # This is a preparation step for manager_core +core.check_invalid_nodes() def read_downgrade_blacklist(): try: import configparser - config_path = os.path.join(os.path.dirname(__file__), "config.ini") - config = configparser.ConfigParser() - config.read(config_path) + config = configparser.ConfigParser(strict=False) + config.read(core.manager_config.path) default_conf = config['default'] if 'downgrade_blacklist' in default_conf: @@ -196,197 +94,435 @@ def read_downgrade_blacklist(): pass -read_downgrade_blacklist() - -channel = 'default' -mode = 'remote' -nodes = set() +read_downgrade_blacklist() # This is a preparation step for manager_core -def load_custom_nodes(): - channel_dict = core.get_channel_dict() - if channel not in channel_dict: - print(f"ERROR: Invalid channel is specified `--channel {channel}`", file=sys.stderr) - exit(-1) +class Ctx: + folder_paths = None + + def __init__(self): + self.channel = 'default' + self.no_deps = False + self.mode = 'cache' + self.user_directory = None + self.custom_nodes_paths = [os.path.join(core.comfy_base_path, 'custom_nodes')] + self.manager_files_directory = os.path.dirname(__file__) + + if Ctx.folder_paths is None: + try: + Ctx.folder_paths = importlib.import_module('folder_paths') + except ImportError: + print("Warning: Unable to import folder_paths module") - if mode not in ['remote', 'local', 'cache']: - print(f"ERROR: Invalid mode is specified `--mode {mode}`", file=sys.stderr) - exit(-1) + def set_channel_mode(self, channel, mode): + if mode is not None: + self.mode = mode - channel_url = channel_dict[channel] + valid_modes = ["remote", "local", "cache"] + if mode and mode.lower() not in valid_modes: + typer.echo( + f"Invalid mode: {mode}. Allowed modes are 'remote', 'local', 'cache'.", + err=True, + ) + exit(1) - res = {} - json_obj = asyncio.run(core.get_data_by_mode(mode, 'custom-node-list.json', channel_url=channel_url)) - for x in json_obj['custom_nodes']: - for y in x['files']: - if 'github.com' in y and not (y.endswith('.py') or y.endswith('.js')): - repo_name = y.split('/')[-1] - res[repo_name] = x + if channel is not None: + self.channel = channel - return res + asyncio.run(unified_manager.reload(cache_mode=self.mode, dont_wait=False)) + asyncio.run(unified_manager.load_nightly(self.channel, self.mode)) + + def set_no_deps(self, no_deps): + self.no_deps = no_deps + + def set_user_directory(self, user_directory): + if user_directory is None: + return + + extra_model_paths_yaml = os.path.join(user_directory, 'extra_model_paths.yaml') + if os.path.exists(extra_model_paths_yaml): + utils.extra_config.load_extra_path_config(extra_model_paths_yaml) + + core.update_user_directory(user_directory) + + if os.path.exists(core.manager_pip_overrides_path): + with open(core.manager_pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file: + cm_global.pip_overrides = json.load(json_file) + + if os.path.exists(core.manager_pip_blacklist_path): + with open(core.manager_pip_blacklist_path, 'r', encoding="UTF-8", errors="ignore") as f: + for x in f.readlines(): + y = x.strip() + if y != '': + cm_global.pip_blacklist.add(y) + + def update_custom_nodes_dir(self, target_dir): + import folder_paths + a, b = folder_paths.folder_names_and_paths['custom_nodes'] + folder_paths.folder_names_and_paths['custom_nodes'] = [os.path.abspath(target_dir)], set() + + @staticmethod + def get_startup_scripts_path(): + return os.path.join(core.manager_startup_script_path, "install-scripts.txt") + + @staticmethod + def get_restore_snapshot_path(): + return os.path.join(core.manager_startup_script_path, "restore-snapshot.json") + + @staticmethod + def get_snapshot_path(): + return core.manager_snapshot_path + + @staticmethod + def get_custom_nodes_paths(): + if Ctx.folder_paths is None: + print("Error: folder_paths module is not available") + return [] + return Ctx.folder_paths.get_folder_paths('custom_nodes') -def process_args(): - global channel - global mode +cmd_ctx = Ctx() - i = 2 - while i < len(sys.argv): - if sys.argv[i] == '--channel': - if i+1 < len(sys.argv): - channel = sys.argv[i+1] - i += 1 - elif sys.argv[i] == '--mode': - if i+1 < len(sys.argv): - mode = sys.argv[i+1] - i += 1 + +def install_node(node_spec_str, is_all=False, cnt_msg='', **kwargs): + exit_on_fail = kwargs.get('exit_on_fail', False) + print(f"install_node exit on fail:{exit_on_fail}...") + + if core.is_valid_url(node_spec_str): + # install via urls + res = asyncio.run(core.gitclone_install(node_spec_str, no_deps=cmd_ctx.no_deps)) + if not res.result: + print(res.msg) + print(f"[bold red]ERROR: An error occurred while installing '{node_spec_str}'.[/bold red]") + if exit_on_fail: + sys.exit(1) else: - nodes.add(sys.argv[i]) - - i += 1 - - -process_args() -custom_node_map = load_custom_nodes() - - -def lookup_node_path(node_name): - # Currently, the node_name is used directly as the node_path, but in the future, I plan to allow nicknames. - - if '..' in node_name: - print(f"ERROR: invalid node name '{node_name}'") - exit(-1) - - if node_name in custom_node_map: - node_path = os.path.join(custom_nodes_path, node_name) - return node_path, custom_node_map[node_name] - - print(f"ERROR: invalid node name '{node_name}'") - exit(-1) - - -def install_node(node_name, is_all=False, cnt_msg=''): - node_path, node_item = lookup_node_path(node_name) - - if os.path.exists(node_path): - if not is_all: - print(f"{cnt_msg} [ SKIPPED ] {node_name:50} => Already installed") - elif os.path.exists(node_path+'.disabled'): - enable_node(node_name) + print(f"{cnt_msg} [INSTALLED] {node_spec_str:50}") else: - res = core.gitclone_install(node_item['files'], instant_execution=True, msg_prefix=f"[{cnt_msg}] ") - if not res: - print(f"ERROR: An error occurred while installing '{node_name}'.") + node_spec = unified_manager.resolve_node_spec(node_spec_str) + + if node_spec is None: + return + + node_name, version_spec, is_specified = node_spec + + # NOTE: install node doesn't allow update if version is not specified + if not is_specified: + version_spec = None + + res = asyncio.run(unified_manager.install_by_id(node_name, version_spec, cmd_ctx.channel, cmd_ctx.mode, instant_execution=True, no_deps=cmd_ctx.no_deps)) + + if res.action == 'skip': + print(f"{cnt_msg} [ SKIP ] {node_name:50} => Already installed") + elif res.action == 'enable': + print(f"{cnt_msg} [ ENABLED ] {node_name:50}") + elif res.action == 'install-git' and res.target == 'nightly': + print(f"{cnt_msg} [INSTALLED] {node_name:50}[NIGHTLY]") + elif res.action == 'install-git' and res.target == 'unknown': + print(f"{cnt_msg} [INSTALLED] {node_name:50}[UNKNOWN]") + elif res.action == 'install-cnr' and res.result: + print(f"{cnt_msg} [INSTALLED] {node_name:50}[{res.target}]") + elif res.action == 'switch-cnr' and res.result: + print(f"{cnt_msg} [INSTALLED] {node_name:50}[{res.target}]") + elif (res.action == 'switch-cnr' or res.action == 'install-cnr') and not res.result and node_name in unified_manager.cnr_map: + print(f"\nAvailable version of '{node_name}'") + show_versions(node_name) + print("") else: - print(f"{cnt_msg} [INSTALLED] {node_name:50}") + print(f"[bold red]ERROR: An error occurred while installing '{node_name}'.\n{res.msg}[/bold red]") + if exit_on_fail: + sys.exit(1) -def reinstall_node(node_name, is_all=False, cnt_msg=''): - node_path, node_item = lookup_node_path(node_name) +def reinstall_node(node_spec_str, is_all=False, cnt_msg=''): + node_spec = unified_manager.resolve_node_spec(node_spec_str) - if os.path.exists(node_path): - shutil.rmtree(node_path) - if os.path.exists(node_path+'.disabled'): - shutil.rmtree(node_path+'.disabled') + node_name, version_spec, _ = node_spec + unified_manager.unified_uninstall(node_name, version_spec == 'unknown') install_node(node_name, is_all=is_all, cnt_msg=cnt_msg) -def fix_node(node_name, is_all=False, cnt_msg=''): - node_path, node_item = lookup_node_path(node_name) - if os.path.exists(node_path): - print(f"{cnt_msg} [ FIXING ]: {node_name:50} => Disabled") - res = core.gitclone_fix(node_item['files'], instant_execution=True) - if not res: - print(f"ERROR: An error occurred while fixing '{node_name}'.") - elif not is_all and os.path.exists(node_path+'.disabled'): - print(f"{cnt_msg} [ SKIPPED ]: {node_name:50} => Disabled") - elif not is_all: - print(f"{cnt_msg} [ SKIPPED ]: {node_name:50} => Not installed") +def fix_node(node_spec_str, is_all=False, cnt_msg=''): + node_spec = unified_manager.resolve_node_spec(node_spec_str, guess_mode='active') + + if node_spec is None: + if not is_all: + if unified_manager.resolve_node_spec(node_spec_str, guess_mode='inactive') is not None: + print(f"{cnt_msg} [ SKIPPED ]: {node_spec_str:50} => Disabled") + else: + print(f"{cnt_msg} [ SKIPPED ]: {node_spec_str:50} => Not installed") + + return + + node_name, version_spec, _ = node_spec + + print(f"{cnt_msg} [ FIXING ]: {node_name:50}[{version_spec}]") + res = unified_manager.unified_fix(node_name, version_spec, no_deps=cmd_ctx.no_deps) + + if not res.result: + print(f"[bold red]ERROR: f{res.msg}[/bold red]") -def uninstall_node(node_name, is_all=False, cnt_msg=''): - node_path, node_item = lookup_node_path(node_name) - if os.path.exists(node_path) or os.path.exists(node_path+'.disabled'): - res = core.gitclone_uninstall(node_item['files']) - if not res: - print(f"ERROR: An error occurred while uninstalling '{node_name}'.") - else: - print(f"{cnt_msg} [UNINSTALLED] {node_name:50}") +def uninstall_node(node_spec_str: str, is_all: bool = False, cnt_msg: str = ''): + spec = node_spec_str.split('@') + if len(spec) == 2 and spec[1] == 'unknown': + node_name = spec[0] + is_unknown = True else: + node_name = spec[0] + is_unknown = False + + res = unified_manager.unified_uninstall(node_name, is_unknown) + if len(spec) == 1 and res.action == 'skip' and not is_unknown: + res = unified_manager.unified_uninstall(node_name, True) + + if res.action == 'skip': print(f"{cnt_msg} [ SKIPPED ]: {node_name:50} => Not installed") - -def update_node(node_name, is_all=False, cnt_msg=''): - node_path, node_item = lookup_node_path(node_name) - res = core.gitclone_update(node_item['files'], skip_script=True, msg_prefix=f"[{cnt_msg}] ") - post_install(node_path) - if not res: + elif res.result: + print(f"{cnt_msg} [UNINSTALLED] {node_name:50}") + else: print(f"ERROR: An error occurred while uninstalling '{node_name}'.") -def enable_node(node_name, is_all=False, cnt_msg=''): - if node_name == 'ComfyUI-Manager': +def update_node(node_spec_str, is_all=False, cnt_msg=''): + node_spec = unified_manager.resolve_node_spec(node_spec_str, 'active') + + if node_spec is None: + if unified_manager.resolve_node_spec(node_spec_str, 'inactive'): + print(f"{cnt_msg} [ SKIPPED ]: {node_spec_str:50} => Disabled") + else: + print(f"{cnt_msg} [ SKIPPED ]: {node_spec_str:50} => Not installed") + return None + + node_name, version_spec, _ = node_spec + + res = unified_manager.unified_update(node_name, version_spec, no_deps=cmd_ctx.no_deps, return_postinstall=True) + + if not res.result: + print(f"ERROR: An error occurred while updating '{node_name}'.") + elif res.action == 'skip': + print(f"{cnt_msg} [ SKIPPED ]: {node_name:50} => {res.msg}") + else: + print(f"{cnt_msg} [ UPDATED ]: {node_name:50} => ({version_spec} -> {res.target})") + + return res.with_target(f'{node_name}@{res.target}') + + +def update_parallel(nodes): + is_all = False + if 'all' in nodes: + is_all = True + nodes = [] + for x in unified_manager.active_nodes.keys(): + nodes.append(x) + for x in unified_manager.unknown_active_nodes.keys(): + nodes.append(x+"@unknown") + else: + nodes = [x for x in nodes if x.lower() not in ['comfy', 'comfyui']] + + total = len(nodes) + + lock = threading.Lock() + processed = [] + + i = 0 + + def process_custom_node(x): + nonlocal i + nonlocal processed + + with lock: + i += 1 + + try: + res = update_node(x, is_all=is_all, cnt_msg=f'{i}/{total}') + with lock: + processed.append(res) + except Exception as e: + print(f"ERROR: {e}") + traceback.print_exc() + + with concurrent.futures.ThreadPoolExecutor(4) as executor: + for item in nodes: + executor.submit(process_custom_node, item) + + i = 1 + for res in processed: + if res is not None: + print(f"[{i}/{total}] Post update: {res.target}") + if res.postinstall is not None: + res.postinstall() + i += 1 + + +def update_comfyui(): + res = core.update_path(comfy_path, instant_execution=True) + if res == 'fail': + print("Updating ComfyUI has failed.") + elif res == 'updated': + print("ComfyUI is updated.") + else: + print("ComfyUI is already up to date.") + + +def enable_node(node_spec_str, is_all=False, cnt_msg=''): + if unified_manager.resolve_node_spec(node_spec_str, guess_mode='active') is not None: + print(f"{cnt_msg} [ SKIP ] {node_spec_str:50} => Already enabled") return - node_path, _ = lookup_node_path(node_name) + node_spec = unified_manager.resolve_node_spec(node_spec_str, guess_mode='inactive') - if os.path.exists(node_path+'.disabled'): - current_name = node_path+'.disabled' - os.rename(current_name, node_path) + if node_spec is None: + print(f"{cnt_msg} [ SKIP ] {node_spec_str:50} => Not found") + return + + node_name, version_spec, _ = node_spec + + res = unified_manager.unified_enable(node_name, version_spec) + + if res.action == 'skip': + print(f"{cnt_msg} [ SKIP ] {node_name:50} => {res.msg}") + elif res.result: print(f"{cnt_msg} [ENABLED] {node_name:50}") - elif os.path.exists(node_path): - print(f"{cnt_msg} [SKIPPED] {node_name:50} => Already enabled") - elif not is_all: - print(f"{cnt_msg} [SKIPPED] {node_name:50} => Not installed") + else: + print(f"{cnt_msg} [ FAIL ] {node_name:50} => {res.msg}") -def disable_node(node_name, is_all=False, cnt_msg=''): - if node_name == 'ComfyUI-Manager': +def disable_node(node_spec_str: str, is_all=False, cnt_msg=''): + if 'comfyui-manager' in node_spec_str.lower(): return - - node_path, _ = lookup_node_path(node_name) - if os.path.exists(node_path): - current_name = node_path - new_name = node_path+'.disabled' - os.rename(current_name, new_name) + node_spec = unified_manager.resolve_node_spec(node_spec_str, guess_mode='active') + + if node_spec is None: + if unified_manager.resolve_node_spec(node_spec_str, guess_mode='inactive') is not None: + print(f"{cnt_msg} [ SKIP ] {node_spec_str:50} => Already disabled") + else: + print(f"{cnt_msg} [ SKIP ] {node_spec_str:50} => Not found") + return + + node_name, version_spec, _ = node_spec + + res = unified_manager.unified_disable(node_name, version_spec == 'unknown') + + if res.action == 'skip': + print(f"{cnt_msg} [ SKIP ] {node_name:50} => {res.msg}") + elif res.result: print(f"{cnt_msg} [DISABLED] {node_name:50}") - elif os.path.exists(node_path+'.disabled'): - print(f"{cnt_msg} [ SKIPPED] {node_name:50} => Already disabled") - elif not is_all: - print(f"{cnt_msg} [ SKIPPED] {node_name:50} => Not installed") + else: + print(f"{cnt_msg} [ FAIL ] {node_name:50} => {res.msg}") def show_list(kind, simple=False): - for k, v in custom_node_map.items(): - node_path = os.path.join(custom_nodes_path, k) + custom_nodes = asyncio.run(unified_manager.get_custom_nodes(channel=cmd_ctx.channel, mode=cmd_ctx.mode)) - states = set() - if os.path.exists(node_path): - prefix = '[ ENABLED ] ' - states.add('installed') - states.add('enabled') - states.add('all') - elif os.path.exists(node_path+'.disabled'): - prefix = '[ DISABLED ] ' - states.add('installed') - states.add('disabled') - states.add('all') + # collect not-installed unknown nodes + not_installed_unknown_nodes = [] + repo_unknown = {} + + for k, v in custom_nodes.items(): + if 'cnr_latest' not in v: + if len(v['files']) == 1: + repo_url = v['files'][0] + node_name = repo_url.split('/')[-1] + if node_name not in unified_manager.unknown_inactive_nodes and node_name not in unified_manager.unknown_active_nodes: + not_installed_unknown_nodes.append(v) + else: + repo_unknown[node_name] = v + + processed = {} + unknown_processed = [] + + flag = kind in ['all', 'cnr', 'installed', 'enabled'] + for k, v in unified_manager.active_nodes.items(): + if flag: + cnr = unified_manager.cnr_map[k] + processed[k] = "[ ENABLED ] ", cnr['name'], k, cnr['publisher']['name'], v[0] else: - prefix = '[ NOT INSTALLED ] ' - states.add('not-installed') - states.add('all') + processed[k] = None - if kind in states: - if simple: - print(f"{k:50}") - else: - print(f"{prefix} {k:50}(author: {v['author']})") + if flag and kind != 'cnr': + for k, v in unified_manager.unknown_active_nodes.items(): + item = repo_unknown.get(k) + + if item is None: + continue + + log_item = "[ ENABLED ] ", item['title'], k, item['author'] + unknown_processed.append(log_item) + + flag = kind in ['all', 'cnr', 'installed', 'disabled'] + for k, v in unified_manager.cnr_inactive_nodes.items(): + if k in processed: + continue + + if flag: + cnr = unified_manager.cnr_map[k] + processed[k] = "[ DISABLED ] ", cnr['name'], k, cnr['publisher']['name'], ", ".join(list(v.keys())) + else: + processed[k] = None + + for k, v in unified_manager.nightly_inactive_nodes.items(): + if k in processed: + continue + + if flag: + cnr = unified_manager.cnr_map[k] + processed[k] = "[ DISABLED ] ", cnr['name'], k, cnr['publisher']['name'], 'nightly' + else: + processed[k] = None + + if flag and kind != 'cnr': + for k, v in unified_manager.unknown_inactive_nodes.items(): + item = repo_unknown.get(k) + + if item is None: + continue + + log_item = "[ DISABLED ] ", item['title'], k, item['author'] + unknown_processed.append(log_item) + + flag = kind in ['all', 'cnr', 'not-installed'] + for k, v in unified_manager.cnr_map.items(): + if k in processed: + continue + + if flag: + cnr = unified_manager.cnr_map[k] + ver_spec = v['latest_version']['version'] if 'latest_version' in v else '0.0.0' + processed[k] = "[ NOT INSTALLED ] ", cnr['name'], k, cnr['publisher']['name'], ver_spec + else: + processed[k] = None + + if flag and kind != 'cnr': + for x in not_installed_unknown_nodes: + if len(x['files']) == 1: + node_id = os.path.basename(x['files'][0]) + log_item = "[ NOT INSTALLED ] ", x['title'], node_id, x['author'] + unknown_processed.append(log_item) + + for x in processed.values(): + if x is None: + continue + + prefix, title, short_id, author, ver_spec = x + if simple: + print(title+'@'+ver_spec) + else: + print(f"{prefix} {title:50} {short_id:30} (author: {author:20}) \\[{ver_spec}]") + + for x in unknown_processed: + prefix, title, short_id, author = x + if simple: + print(title+'@unknown') + else: + print(f"{prefix} {title:50} {short_id:30} (author: {author:20}) [UNKNOWN]") -def show_snapshot(simple_mode=False): - json_obj = core.get_current_snapshot() +async def show_snapshot(simple_mode=False): + json_obj = await core.get_current_snapshot() if simple_mode: print(f"[{json_obj['comfyui']}] comfyui") @@ -401,107 +537,752 @@ def show_snapshot(simple_mode=False): def show_snapshot_list(simple_mode=False): - path = os.path.join(comfyui_manager_path, 'snapshots') + snapshot_path = cmd_ctx.get_snapshot_path() - files = os.listdir(path) + files = os.listdir(snapshot_path) json_files = [x for x in files if x.endswith('.json')] for x in sorted(json_files): print(x) def cancel(): - if os.path.exists(script_path): - os.remove(script_path) + if os.path.exists(cmd_ctx.get_startup_scripts_path()): + os.remove(cmd_ctx.get_startup_scripts_path()) - if os.path.exists(restore_snapshot_path): - os.remove(restore_snapshot_path) + if os.path.exists(cmd_ctx.get_restore_snapshot_path()): + os.remove(cmd_ctx.get_restore_snapshot_path()) -def for_each_nodes(act, allow_all=True): - global nodes +async def auto_save_snapshot(): + path = await core.save_snapshot_with_postfix('cli-autosave') + print(f"Current snapshot is saved as `{path}`") + +def get_all_installed_node_specs(): + res = [] + processed = set() + for k, v in unified_manager.active_nodes.items(): + node_spec_str = f"{k}@{v[0]}" + res.append(node_spec_str) + processed.add(k) + + for k in unified_manager.cnr_inactive_nodes.keys(): + if k in processed: + continue + + latest = unified_manager.get_from_cnr_inactive_nodes(k) + if latest is not None: + node_spec_str = f"{k}@{str(latest[0])}" + res.append(node_spec_str) + + for k in unified_manager.nightly_inactive_nodes.keys(): + if k in processed: + continue + + node_spec_str = f"{k}@nightly" + res.append(node_spec_str) + + for k in unified_manager.unknown_active_nodes.keys(): + node_spec_str = f"{k}@unknown" + res.append(node_spec_str) + + for k in unified_manager.unknown_inactive_nodes.keys(): + node_spec_str = f"{k}@unknown" + res.append(node_spec_str) + + return res + + +def for_each_nodes(nodes, act, allow_all=True, **kwargs): is_all = False if allow_all and 'all' in nodes: is_all = True - nodes = [x for x in custom_node_map.keys() if os.path.exists(os.path.join(custom_nodes_path, x)) or os.path.exists(os.path.join(custom_nodes_path, x)+'.disabled')] + nodes = get_all_installed_node_specs() + else: + nodes = [x for x in nodes if x.lower() not in ['comfy', 'comfyui', 'all']] total = len(nodes) i = 1 for x in nodes: try: - act(x, is_all=is_all, cnt_msg=f'{i}/{total}') + act(x, is_all=is_all, cnt_msg=f'{i}/{total}', **kwargs) except Exception as e: print(f"ERROR: {e}") traceback.print_exc() - i+=1 + i += 1 -op = sys.argv[1] +app = typer.Typer() -if op == 'install': - for_each_nodes(install_node) +@app.command(help="Display help for commands") +def help(ctx: typer.Context): + print(ctx.find_root().get_help()) + ctx.exit(0) -elif op == 'reinstall': - for_each_nodes(reinstall_node) -elif op == 'uninstall': - for_each_nodes(uninstall_node) +@app.command(help="Install custom nodes") +def install( + nodes: List[str] = typer.Argument( + ..., help="List of custom nodes to install" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + no_deps: Annotated[ + Optional[bool], + typer.Option( + "--no-deps", + show_default=False, + help="Skip installing any Python dependencies", + ), + ] = False, + user_directory: str = typer.Option( + None, + help="user directory" + ), + exit_on_fail: bool = typer.Option( + False, + help="Exit on failure" + ) +): + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + cmd_ctx.set_no_deps(no_deps) -elif op == 'update': - for_each_nodes(update_node, allow_all=True) + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path) + for_each_nodes(nodes, act=install_node, exit_on_fail=exit_on_fail) + pip_fixer.fix_broken() -elif op == 'disable': - for_each_nodes(disable_node, allow_all=True) -elif op == 'enable': - for_each_nodes(enable_node, allow_all=True) +@app.command(help="Reinstall custom nodes") +def reinstall( + nodes: List[str] = typer.Argument( + ..., help="List of custom nodes to reinstall" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + no_deps: Annotated[ + Optional[bool], + typer.Option( + "--no-deps", + show_default=False, + help="Skip installing any Python dependencies", + ), + ] = False, + user_directory: str = typer.Option( + None, + help="user directory" + ), +): + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + cmd_ctx.set_no_deps(no_deps) -elif op == 'fix': - for_each_nodes(fix_node, allow_all=True) + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path) + for_each_nodes(nodes, act=reinstall_node) + pip_fixer.fix_broken() -elif op == 'show': - if sys.argv[2] == 'snapshot': + +@app.command(help="Uninstall custom nodes") +def uninstall( + nodes: List[str] = typer.Argument( + ..., help="List of custom nodes to uninstall" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), +): + cmd_ctx.set_channel_mode(channel, mode) + for_each_nodes(nodes, act=uninstall_node) + + +@app.command(help="Update custom nodes") +def update( + nodes: List[str] = typer.Argument( + ..., + help="[all|List of custom nodes to update]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ), +): + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + + if 'all' in nodes: + asyncio.run(auto_save_snapshot()) + + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path) + + for x in nodes: + if x.lower() in ['comfyui', 'comfy', 'all']: + update_comfyui() + break + + update_parallel(nodes) + pip_fixer.fix_broken() + + +@app.command(help="Disable custom nodes") +def disable( + nodes: List[str] = typer.Argument( + ..., + help="[all|List of custom nodes to disable]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ), +): + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + + if 'all' in nodes: + asyncio.run(auto_save_snapshot()) + + for_each_nodes(nodes, disable_node, allow_all=True) + + +@app.command(help="Enable custom nodes") +def enable( + nodes: List[str] = typer.Argument( + ..., + help="[all|List of custom nodes to enable]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ), +): + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + + if 'all' in nodes: + asyncio.run(auto_save_snapshot()) + + for_each_nodes(nodes, enable_node, allow_all=True) + + +@app.command(help="Fix dependencies of custom nodes") +def fix( + nodes: List[str] = typer.Argument( + ..., + help="[all|List of custom nodes to fix]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ), +): + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + + if 'all' in nodes: + asyncio.run(auto_save_snapshot()) + + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path) + for_each_nodes(nodes, fix_node, allow_all=True) + pip_fixer.fix_broken() + + +@app.command("show-versions", help="Show all available versions of the node") +def show_versions(node_name: str): + versions = cnr_utils.all_versions_of_node(node_name) + if versions is None: + print(f"Node not found in Comfy Registry: {node_name}") + + for x in versions: + print(f"[{x['createdAt'][:10]}] {x['version']} -- {x['changelog']}") + + +@app.command("show", help="Show node list") +def show( + arg: str = typer.Argument( + help="[installed|enabled|not-installed|disabled|all|cnr|snapshot|snapshot-list]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ), +): + valid_commands = [ + "installed", + "enabled", + "not-installed", + "disabled", + "all", + "cnr", + "snapshot", + "snapshot-list", + ] + if arg not in valid_commands: + typer.echo(f"Invalid command: `show {arg}`", err=True) + exit(1) + + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + if arg == 'snapshot': show_snapshot() - elif sys.argv[2] == 'snapshot-list': + elif arg == 'snapshot-list': show_snapshot_list() else: - show_list(sys.argv[2]) + show_list(arg) -elif op == 'simple-show': - if sys.argv[2] == 'snapshot': + +@app.command("simple-show", help="Show node list (simple mode)") +def simple_show( + arg: str = typer.Argument( + help="[installed|enabled|not-installed|disabled|all|snapshot|snapshot-list]" + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ), +): + valid_commands = [ + "installed", + "enabled", + "not-installed", + "disabled", + "all", + "snapshot", + "snapshot-list", + ] + if arg not in valid_commands: + typer.echo(f"[bold red]Invalid command: `show {arg}`[/bold red]", err=True) + exit(1) + + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + + if arg == 'snapshot': show_snapshot(True) - elif sys.argv[2] == 'snapshot-list': + elif arg == 'snapshot-list': show_snapshot_list(True) else: - show_list(sys.argv[2], True) + show_list(arg, True) -elif op == 'cli-only-mode': - cli_mode_flag = os.path.join(os.path.dirname(__file__), '.enable-cli-only-mode') - if sys.argv[2] == 'enable': - with open(cli_mode_flag, 'w') as file: + +@app.command('cli-only-mode', help="Set whether to use ComfyUI-Manager in CLI-only mode.") +def cli_only_mode( + mode: str = typer.Argument( + ..., help="[enable|disable]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ) +): + cmd_ctx.set_user_directory(user_directory) + cli_mode_flag = os.path.join(cmd_ctx.manager_files_directory, '.enable-cli-only-mode') + + if mode.lower() == 'enable': + with open(cli_mode_flag, 'w'): pass - print(f"\ncli-only-mode: enabled\n") - elif sys.argv[2] == 'disable': - os.remove(cli_mode_flag) - print(f"\ncli-only-mode: disabled\n") + print("\nINFO: `cli-only-mode` is enabled\n") + elif mode.lower() == 'disable': + if os.path.exists(cli_mode_flag): + os.remove(cli_mode_flag) + print("\nINFO: `cli-only-mode` is disabled\n") else: - print(f"\ninvalid value for cli-only-mode: {sys.argv[2]}\n") + print(f"\n[bold red]Invalid value for cli-only-mode: {mode}[/bold red]\n") + exit(1) -elif op == 'save-snapshot': - path = core.save_snapshot_with_postfix('snapshot') + +@app.command( + "deps-in-workflow", help="Generate dependencies file from workflow (.json/.png)" +) +def deps_in_workflow( + workflow: Annotated[ + str, typer.Option(show_default=False, help="Workflow file (.json/.png)") + ], + output: Annotated[ + str, typer.Option(show_default=False, help="Output file (.json)") + ], + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ) +): + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + + input_path = workflow + output_path = output + + if not os.path.exists(input_path): + print(f"[bold red]File not found: {input_path}[/bold red]") + exit(1) + + used_exts, unknown_nodes = asyncio.run(core.extract_nodes_from_workflow(input_path, mode=cmd_ctx.mode, channel_url=cmd_ctx.channel)) + + custom_nodes = {} + for x in used_exts: + custom_nodes[x] = {'state': core.simple_check_custom_node(x), + 'hash': '-' + } + + res = { + 'custom_nodes': custom_nodes, + 'unknown_nodes': list(unknown_nodes) + } + + with open(output_path, "w", encoding='utf-8') as output_file: + json.dump(res, output_file, indent=4) + + print(f"Workflow dependencies are being saved into {output_path}.") + + +@app.command("save-snapshot", help="Save a snapshot of the current ComfyUI environment. If output path isn't provided. Save to ComfyUI-Manager/snapshots path.") +def save_snapshot( + output: Annotated[ + str, + typer.Option( + show_default=False, help="Specify the output file path. (.json/.yaml)" + ), + ] = None, + user_directory: str = typer.Option( + None, + help="user directory" + ), + full_snapshot: Annotated[ + bool, + typer.Option( + show_default=False, help="If the snapshot should include custom node, ComfyUI version and pip versions (default), or only custom node details" + ), + ] = True, +): + cmd_ctx.set_user_directory(user_directory) + + if output is not None: + if(not output.endswith('.json') and not output.endswith('.yaml')): + print("[bold red]ERROR: output path should be either '.json' or '.yaml' file.[/bold red]") + raise typer.Exit(code=1) + + dir_path = os.path.dirname(output) + + if(dir_path != '' and not os.path.exists(dir_path)): + print(f"[bold red]ERROR: {output} path not exists.[/bold red]") + raise typer.Exit(code=1) + + path = asyncio.run(core.save_snapshot_with_postfix('snapshot', output, not full_snapshot)) print(f"Current snapshot is saved as `{path}`") -elif op == 'restore-snapshot': - restore_snapshot(sys.argv[2]) -elif op == 'restore-dependencies': - restore_dependencies() +@app.command("restore-snapshot", help="Restore snapshot from snapshot file") +def restore_snapshot( + snapshot_name: str, + pip_non_url: Optional[bool] = typer.Option( + default=None, + show_default=False, + is_flag=True, + help="Restore for pip packages registered on PyPI.", + ), + pip_non_local_url: Optional[bool] = typer.Option( + default=None, + show_default=False, + is_flag=True, + help="Restore for pip packages registered at web URLs.", + ), + pip_local_url: Optional[bool] = typer.Option( + default=None, + show_default=False, + is_flag=True, + help="Restore for pip packages specified by local paths.", + ), + user_directory: str = typer.Option( + None, + help="user directory" + ), + restore_to: Optional[str] = typer.Option( + None, + help="Manually specify the installation path for the custom node. Ignore user directory." + ) +): + cmd_ctx.set_user_directory(user_directory) -elif op == 'clear': + if restore_to: + cmd_ctx.update_custom_nodes_dir(restore_to) + + extras = [] + if pip_non_url: + extras.append('--pip-non-url') + + if pip_non_local_url: + extras.append('--pip-non-local-url') + + if pip_local_url: + extras.append('--pip-local-url') + + print(f"PIPs restore mode: {extras}") + + if os.path.exists(snapshot_name): + snapshot_path = os.path.abspath(snapshot_name) + else: + snapshot_path = os.path.join(cmd_ctx.get_snapshot_path(), snapshot_name) + if not os.path.exists(snapshot_path): + print(f"[bold red]ERROR: `{snapshot_path}` is not exists.[/bold red]") + exit(1) + + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path) + try: + asyncio.run(core.restore_snapshot(snapshot_path, extras)) + except Exception: + print("[bold red]ERROR: Failed to restore snapshot.[/bold red]") + traceback.print_exc() + raise typer.Exit(code=1) + pip_fixer.fix_broken() + + +@app.command( + "restore-dependencies", help="Restore dependencies from whole installed custom nodes." +) +def restore_dependencies( + user_directory: str = typer.Option( + None, + help="user directory" + ) +): + cmd_ctx.set_user_directory(user_directory) + + node_paths = [] + + for base_path in cmd_ctx.get_custom_nodes_paths(): + for name in os.listdir(base_path): + target = os.path.join(base_path, name) + if os.path.isdir(target) and not name.endswith('.disabled'): + node_paths.append(target) + + total = len(node_paths) + i = 1 + + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path) + for x in node_paths: + print("----------------------------------------------------------------------------------------------------") + print(f"Restoring [{i}/{total}]: {x}") + unified_manager.execute_install_script('', x, instant_execution=True) + i += 1 + pip_fixer.fix_broken() + + +@app.command( + "post-install", help="Install dependencies and execute installation script" +) +def post_install( + path: str = typer.Argument( + help="path to custom node", + ) +): + path = os.path.expanduser(path) + + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path) + unified_manager.execute_install_script('', path, instant_execution=True) + pip_fixer.fix_broken() + + +@app.command( + "install-deps", + help="Install dependencies from dependencies file(.json) or workflow(.png/.json)", +) +def install_deps( + deps: str = typer.Argument( + help="Dependency spec file (.json)", + ), + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ), +): + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + asyncio.run(auto_save_snapshot()) + + if not os.path.exists(deps): + print(f"[bold red]File not found: {deps}[/bold red]") + exit(1) + else: + with open(deps, 'r', encoding="UTF-8", errors="ignore") as json_file: + try: + json_obj = json.load(json_file) + except: + print(f"[bold red]Invalid json file: {deps}[/bold red]") + exit(1) + + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path) + for k in json_obj['custom_nodes'].keys(): + state = core.simple_check_custom_node(k) + if state == 'installed': + continue + elif state == 'not-installed': + asyncio.run(core.gitclone_install(k, instant_execution=True)) + else: # disabled + core.gitclone_set_active([k], False) + pip_fixer.fix_broken() + + print("Dependency installation and activation complete.") + + +@app.command(help="Clear reserved startup action in ComfyUI-Manager") +def clear(): cancel() -else: - print(f"\nInvalid command `{op}`") -print(f"") +@app.command("export-custom-node-ids", help="Export custom node ids") +def export_custom_node_ids( + path: str, + channel: Annotated[ + str, + typer.Option( + show_default=False, + help="Specify the operation mode" + ), + ] = None, + mode: str = typer.Option( + None, + help="[remote|local|cache]" + ), + user_directory: str = typer.Option( + None, + help="user directory" + ), +): + cmd_ctx.set_user_directory(user_directory) + cmd_ctx.set_channel_mode(channel, mode) + + with open(path, "w", encoding='utf-8') as output_file: + for x in unified_manager.cnr_map.keys(): + print(x, file=output_file) + + custom_nodes = asyncio.run(unified_manager.get_custom_nodes(channel=cmd_ctx.channel, mode=cmd_ctx.mode)) + for x in custom_nodes.values(): + if 'cnr_latest' not in x: + if len(x['files']) == 1: + repo_url = x['files'][0] + node_id = repo_url.split('/')[-1] + print(f"{node_id}@unknown", file=output_file) + + if 'id' in x: + print(f"{x['id']}@unknown", file=output_file) + + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(app()) + + +print("") diff --git a/cm-cli.sh b/cm-cli.sh new file mode 100755 index 00000000..b1a21ca5 --- /dev/null +++ b/cm-cli.sh @@ -0,0 +1,2 @@ +#!/bin/bash +python cm-cli.py $* diff --git a/custom-node-list.json b/custom-node-list.json old mode 100644 new mode 100755 index 8870ab0e..eb49b2a9 --- a/custom-node-list.json +++ b/custom-node-list.json @@ -1,8 +1,9 @@ -{ +{ "custom_nodes": [ { "author": "Dr.Lt.Data", "title": "ComfyUI-Manager", + "id": "manager", "reference": "https://github.com/ltdrdata/ComfyUI-Manager", "files": [ "https://github.com/ltdrdata/ComfyUI-Manager" @@ -13,17 +14,30 @@ { "author": "Dr.Lt.Data", "title": "ComfyUI Impact Pack", + "id": "comfyui-impact-pack", "reference": "https://github.com/ltdrdata/ComfyUI-Impact-Pack", "files": [ "https://github.com/ltdrdata/ComfyUI-Impact-Pack" ], - "pip": ["ultralytics"], "install_type": "git-clone", - "description": "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler.\n[w/NOTE:'Segs & Mask' has been renamed to 'ImpactSegsAndMask.' Please replace the node with the new name.]" + "description": "This node pack offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler.\nNOTE: To use the UltralyticsDetectorProvider, you must install the 'ComfyUI Impact Subpack' separately.", + "preemptions":["SAMLoader"] + }, + { + "author": "Dr.Lt.Data", + "title": "ComfyUI Impact Subpack", + "id": "comfyui-impact-subpack", + "reference": "https://github.com/ltdrdata/ComfyUI-Impact-Subpack", + "files": [ + "https://github.com/ltdrdata/ComfyUI-Impact-Subpack" + ], + "install_type": "git-clone", + "description": "This node pack provides nodes that complement the Impact Pack, such as the UltralyticsDetectorProvider." }, { "author": "Dr.Lt.Data", "title": "ComfyUI Inspire Pack", + "id": "inspire", "reference": "https://github.com/ltdrdata/ComfyUI-Inspire-Pack", "nodename_pattern": "Inspire$", "files": [ @@ -32,19 +46,66 @@ "install_type": "git-clone", "description": "This extension provides various nodes to support Lora Block Weight and the Impact Pack. Provides many easily applicable regional features and applications for Variation Seed." }, + { + "author": "Dr.Lt.Data", + "title": "ComfyUI Connection Helper", + "id": "connection-helper", + "reference": "https://github.com/ltdrdata/comfyui-connection-helper", + "nodename_pattern": "Inspire$", + "files": [ + "https://github.com/ltdrdata/comfyui-connection-helper" + ], + "install_type": "git-clone", + "description": "This is a helper extension for ComfyUI that assists with node connections." + }, + { + "author": "Dr.Lt.Data", + "title": "WAS Node Suite (Revised)", + "id": "was-ns", + "reference": "https://github.com/ltdrdata/was-node-suite-comfyui", + "files": [ + "https://github.com/ltdrdata/was-node-suite-comfyui" + ], + "install_type": "git-clone", + "description": "A massive node pack consisting of over 200 nodes, including image processing, masking, text handling, and arithmetic operations.\nNOTE: A replacement node pack provided for existing users following the retirement of the original author of the widely used WAS Node Suite." + }, { "author": "comfyanonymous", "title": "ComfyUI_experiments", + "id": "comfy-exp", "reference": "https://github.com/comfyanonymous/ComfyUI_experiments", "files": [ "https://github.com/comfyanonymous/ComfyUI_experiments" ], "install_type": "git-clone", - "description": "Nodes: ModelSamplerTonemapNoiseTest, TonemapNoiseWithRescaleCFG, ReferenceOnlySimple, RescaleClassifierFreeGuidanceTest, ModelMergeBlockNumber, ModelMergeSDXL, ModelMergeSDXLTransformers, ModelMergeSDXLDetailedTransformers.[w/NOTE: This is a consolidation of the previously separate custom nodes. Please delete the sampler_tonemap.py, sampler_rescalecfg.py, advanced_model_merging.py, sdxl_model_merging.py, and reference_only.py files installed in custom_nodes before.]" + "description": "Nodes: ModelSamplerTonemapNoiseTest, TonemapNoiseWithRescaleCFG, ReferenceOnlySimple, RescaleClassifierFreeGuidanceTest, ModelMergeBlockNumber, ModelMergeSDXL, ModelMergeSDXLTransformers, ModelMergeSDXLDetailedTransformers." + }, + { + "author": "comfyanonymous", + "title": "TensorRT Node for ComfyUI", + "id": "tensorrt", + "reference": "https://github.com/comfyanonymous/ComfyUI_TensorRT", + "files": [ + "https://github.com/comfyanonymous/ComfyUI_TensorRT" + ], + "install_type": "git-clone", + "description": "This node enables the best performance on NVIDIA RTX™ Graphics Cards (GPUs) for Stable Diffusion by leveraging NVIDIA TensorRT." + }, + { + "author": "Comfy-Org", + "title": "NVIDIA FLUX NIM", + "id": "nimnodes", + "reference": "https://github.com/Comfy-Org/NIMnodes", + "files": [ + "https://github.com/Comfy-Org/NIMnodes" + ], + "install_type": "git-clone", + "description": "Provides nodes to utilise NVIDIA NIM, a set of accelerated inference microservices that allow you to run AI models on NVIDIA GPUs anywhere." }, { "author": "Stability-AI", "title": "Stability API nodes for ComfyUI", + "id": "sai-api", "reference": "https://github.com/Stability-AI/ComfyUI-SAI_API", "files": [ "https://github.com/Stability-AI/ComfyUI-SAI_API" @@ -55,6 +116,7 @@ { "author": "Stability-AI", "title": "stability-ComfyUI-nodes", + "id": "sai-nodes", "reference": "https://github.com/Stability-AI/stability-ComfyUI-nodes", "files": [ "https://github.com/Stability-AI/stability-ComfyUI-nodes" @@ -65,6 +127,7 @@ { "author": "Fannovel16", "title": "ComfyUI's ControlNet Auxiliary Preprocessors", + "id": "comfyui_controlnet_aux", "reference": "https://github.com/Fannovel16/comfyui_controlnet_aux", "files": [ "https://github.com/Fannovel16/comfyui_controlnet_aux" @@ -120,31 +183,23 @@ "Zoe-DepthMapPreprocessor", "Zoe_DepthAnythingPreprocessor"], "install_type": "git-clone", - "description": "This is a rework of comfyui_controlnet_preprocessors based on ControlNet auxiliary models by 🤗. I think the old repo isn't good enough to maintain. All old workflow will still be work with this repo but the version option won't do anything. Almost all v1 preprocessors are replaced by v1.1 except those doesn't appear in v1.1. [w/NOTE: Please refrain from using the controlnet preprocessor alongside this installation, as it may lead to conflicts and prevent proper recognition.]" + "description": "Plug-and-play ComfyUI node sets for making ControlNet hint images." }, { "author": "Fannovel16", "title": "ComfyUI Frame Interpolation", + "id": "frame-interpolation", "reference": "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation", "files": [ "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation" ], "install_type": "git-clone", - "description": "Nodes: KSampler Gradually Adding More Denoise (efficient)" - }, - { - "author": "Fannovel16", - "title": "ComfyUI Loopchain", - "reference": "https://github.com/Fannovel16/ComfyUI-Loopchain", - "files": [ - "https://github.com/Fannovel16/ComfyUI-Loopchain" - ], - "install_type": "git-clone", - "description": "A collection of nodes which can be useful for animation in ComfyUI. The main focus of this extension is implementing a mechanism called loopchain. A loopchain in this case is the chain of nodes only executed repeatly in the workflow. If a node chain contains a loop node from this extension, it will become a loop chain." + "description": "A custom node suite for Video Frame Interpolation in ComfyUI" }, { "author": "Fannovel16", "title": "ComfyUI MotionDiff", + "id": "motiondiff", "reference": "https://github.com/Fannovel16/ComfyUI-MotionDiff", "files": [ "https://github.com/Fannovel16/ComfyUI-MotionDiff" @@ -155,6 +210,7 @@ { "author": "Fannovel16", "title": "ComfyUI-Video-Matting", + "id": "video-matting", "reference": "https://github.com/Fannovel16/ComfyUI-Video-Matting", "files": [ "https://github.com/Fannovel16/ComfyUI-Video-Matting" @@ -163,18 +219,31 @@ "description": "A minimalistic implementation of [a/Robust Video Matting (RVM)](https://github.com/PeterL1n/RobustVideoMatting/) in ComfyUI" }, { - "author": "biegert", - "title": "CLIPSeg", - "reference": "https://github.com/biegert/ComfyUI-CLIPSeg", + "author": "Fannovel16", + "title": "ComfyUI-MagickWand", + "id": "magicwand", + "reference": "https://github.com/Fannovel16/ComfyUI-MagickWand", "files": [ - "https://github.com/biegert/ComfyUI-CLIPSeg/raw/main/custom_nodes/clipseg.py" + "https://github.com/Fannovel16/ComfyUI-MagickWand" + ], + "install_type": "git-clone", + "description": "Proper implementation of ImageMagick - the famous software suite for editing and manipulating digital images to ComfyUI using [a/wandpy](https://github.com/emcconville/wand).\nNOTE: You need to install ImageMagick, manually." + }, + { + "author": "time-river", + "title": "CLIPSeg", + "id": "clipseg", + "reference": "https://github.com/time-river/ComfyUI-CLIPSeg", + "files": [ + "https://raw.githubusercontent.com/time-river/ComfyUI-CLIPSeg/main/custom_nodes/clipseg.py" ], "install_type": "copy", - "description": "The CLIPSeg node generates a binary mask for a given input image and text prompt." + "description": "The CLIPSeg node generates a binary mask for a given input image and text prompt.\nNOTE:This custom node is a forked custom node with hotfixes applied from the [a/original repository](https://github.com/biegert/ComfyUI-CLIPSeg), which is no longer maintained." }, { "author": "BlenderNeko", "title": "ComfyUI Cutoff", + "id": "cutoff", "reference": "https://github.com/BlenderNeko/ComfyUI_Cutoff", "files": [ "https://github.com/BlenderNeko/ComfyUI_Cutoff" @@ -185,6 +254,7 @@ { "author": "BlenderNeko", "title": "Advanced CLIP Text Encode", + "id": "adv-encode", "reference": "https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb", "files": [ "https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb" @@ -195,6 +265,7 @@ { "author": "BlenderNeko", "title": "ComfyUI Noise", + "id": "comfy-noise", "reference": "https://github.com/BlenderNeko/ComfyUI_Noise", "files": [ "https://github.com/BlenderNeko/ComfyUI_Noise" @@ -205,6 +276,7 @@ { "author": "BlenderNeko", "title": "Tiled sampling for ComfyUI", + "id": "tiled-sampling", "reference": "https://github.com/BlenderNeko/ComfyUI_TiledKSampler", "files": [ "https://github.com/BlenderNeko/ComfyUI_TiledKSampler" @@ -215,6 +287,7 @@ { "author": "BlenderNeko", "title": "SeeCoder [WIP]", + "id": "seecoder", "reference": "https://github.com/BlenderNeko/ComfyUI_SeeCoder", "files": [ "https://github.com/BlenderNeko/ComfyUI_SeeCoder" @@ -225,6 +298,7 @@ { "author": "jags111", "title": "Efficiency Nodes for ComfyUI Version 2.0+", + "id": "eff-nodes", "reference": "https://github.com/jags111/efficiency-nodes-comfyui", "files": [ "https://github.com/jags111/efficiency-nodes-comfyui" @@ -235,6 +309,7 @@ { "author": "jags111", "title": "Jags_VectorMagic", + "id": "vectormagic", "reference": "https://github.com/jags111/ComfyUI_Jags_VectorMagic", "files": [ "https://github.com/jags111/ComfyUI_Jags_VectorMagic" @@ -245,6 +320,7 @@ { "author": "jags111", "title": "Jags_Audiotools", + "id": "audiotools", "reference": "https://github.com/jags111/ComfyUI_Jags_Audiotools", "files": [ "https://github.com/jags111/ComfyUI_Jags_Audiotools" @@ -255,7 +331,9 @@ { "author": "Derfuu", "title": "Derfuu_ComfyUI_ModdedNodes", + "id": "derfuu", "reference": "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes", + "nodename_pattern": "^DF_", "files": [ "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes" ], @@ -265,6 +343,7 @@ { "author": "paulo-coronado", "title": "comfy_clip_blip_node", + "id": "blip", "reference": "https://github.com/paulo-coronado/comfy_clip_blip_node", "files": [ "https://github.com/paulo-coronado/comfy_clip_blip_node" @@ -276,20 +355,10 @@ ], "description": "CLIPTextEncodeBLIP: This custom node provides a CLIP Encoder that is capable of receiving images as input." }, - { - "author": "WASasquatch", - "title": "WAS Node Suite", - "reference": "https://github.com/WASasquatch/was-node-suite-comfyui", - "pip": ["numba"], - "files": [ - "https://github.com/WASasquatch/was-node-suite-comfyui" - ], - "install_type": "git-clone", - "description": "A node suite for ComfyUI with many new nodes, such as image processing, text processing, and more." - }, { "author": "WASasquatch", "title": "ComfyUI Preset Merger", + "id": "preset-merger", "reference": "https://github.com/WASasquatch/ComfyUI_Preset_Merger", "files": [ "https://github.com/WASasquatch/ComfyUI_Preset_Merger" @@ -300,6 +369,7 @@ { "author": "WASasquatch", "title": "PPF_Noise_ComfyUI", + "id": "ppf", "reference": "https://github.com/WASasquatch/PPF_Noise_ComfyUI", "files": [ "https://github.com/WASasquatch/PPF_Noise_ComfyUI" @@ -310,6 +380,7 @@ { "author": "WASasquatch", "title": "Power Noise Suite for ComfyUI", + "id": "power-noise", "reference": "https://github.com/WASasquatch/PowerNoiseSuite", "files": [ "https://github.com/WASasquatch/PowerNoiseSuite" @@ -320,6 +391,7 @@ { "author": "WASasquatch", "title": "FreeU_Advanced", + "id": "freeu-adv", "reference": "https://github.com/WASasquatch/FreeU_Advanced", "files": [ "https://github.com/WASasquatch/FreeU_Advanced" @@ -327,19 +399,10 @@ "install_type": "git-clone", "description": "This custom node provides advanced settings for FreeU." }, - { - "author": "WASasquatch", - "title": "ASTERR", - "reference": "https://github.com/WASasquatch/ASTERR", - "files": [ - "https://github.com/WASasquatch/ASTERR" - ], - "install_type": "git-clone", - "description": "Abstract Syntax Trees Evaluated Restricted Run (ASTERR) is a Python Script executor for ComfyUI. [w/Warning:ASTERR runs Python Code from a Web Interface! It is highly recommended to run this in a closed-off environment, as it could have potential security risks.]" - }, { "author": "WASasquatch", "title": "WAS_Extras", + "id": "was-extras", "reference": "https://github.com/WASasquatch/WAS_Extras", "files": [ "https://github.com/WASasquatch/WAS_Extras" @@ -348,19 +411,19 @@ "description": "Nodes:Conditioning (Blend), Inpainting VAE Encode (WAS), VividSharpen. Experimental nodes, or other random extra helper nodes." }, { - "author": "SaltAI", - "title": "SaltAI-Open-Resources", - "reference": "https://github.com/get-salt-AI/SaltAI", - "pip": ["numba"], + "author": "WASasquatch", + "title": "FUSE Face Enhancer", + "reference": "https://github.com/WASasquatch/face-upscaling-and-seamless-embedding", "files": [ - "https://github.com/get-salt-AI/SaltAI" + "https://github.com/WASasquatch/face-upscaling-and-seamless-embedding" ], "install_type": "git-clone", - "description": "This repository is a collection of open-source nodes and workflows for ComfyUI, a dev tool that allows users to create node-based workflows often powered by various AI models to do pretty much anything.\nOur mission is to seamlessly connect people and organizations with the world’s foremost AI innovations, anywhere, anytime. Our vision is to foster a flourishing AI ecosystem where the world’s best developers can build and share their work, thereby redefining how software is made, pushing innovation forward, and ensuring as many people as possible can benefit from the positive promise of AI technologies.\nWe believe that ComfyUI is a powerful tool that can help us achieve our mission and vision, by enabling anyone to explore the possibilities and limitations of AI models in a visual and interactive way, without coding if desired.\nWe hope that by sharing our nodes and workflows, we can inspire and empower more people to create amazing AI-powered content with ComfyUI." + "description": "All-in-One Face Fix KSampler for ComfyUI with YOLO detection and SAM segmentation" }, { "author": "omar92", "title": "Quality of life Suit:V2", + "id": "qol", "reference": "https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92", "files": [ "https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92" @@ -371,6 +434,7 @@ { "author": "lilly1987", "title": "simple wildcard for ComfyUI", + "id": "simle-wildcard", "reference": "https://github.com/lilly1987/ComfyUI_node_Lilly", "files": [ "https://github.com/lilly1987/ComfyUI_node_Lilly" @@ -381,6 +445,7 @@ { "author": "sylym", "title": "Vid2vid", + "id": "vid2vid", "reference": "https://github.com/sylym/comfy_vid2vid", "files": [ "https://github.com/sylym/comfy_vid2vid" @@ -391,16 +456,18 @@ { "author": "EllangoK", "title": "ComfyUI-post-processing-nodes", + "id": "post-processing", "reference": "https://github.com/EllangoK/ComfyUI-post-processing-nodes", "files": [ "https://github.com/EllangoK/ComfyUI-post-processing-nodes" ], "install_type": "git-clone", - "description": "A collection of post processing nodes for ComfyUI, simply download this repo and drag." + "description": "A collection of post processing nodes for ComfyUI, which enable a variety of visually striking image effects." }, { "author": "LEv145", "title": "ImagesGrid", + "id": "imagesgrid", "reference": "https://github.com/LEv145/images-grid-comfy-plugin", "files": [ "https://github.com/LEv145/images-grid-comfy-plugin" @@ -411,6 +478,7 @@ { "author": "diontimmer", "title": "ComfyUI-Vextra-Nodes", + "id": "vextra", "reference": "https://github.com/diontimmer/ComfyUI-Vextra-Nodes", "files": [ "https://github.com/diontimmer/ComfyUI-Vextra-Nodes" @@ -421,6 +489,7 @@ { "author": "CYBERLOOM-INC", "title": "ComfyUI-nodes-hnmr", + "id": "hnmr", "reference": "https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr", "files": [ "https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr" @@ -431,26 +500,18 @@ { "author": "BadCafeCode", "title": "Masquerade Nodes", + "id": "masquerade", "reference": "https://github.com/BadCafeCode/masquerade-nodes-comfyui", "files": [ "https://github.com/BadCafeCode/masquerade-nodes-comfyui" ], "install_type": "git-clone", - "description": "This is a node pack for ComfyUI, primarily dealing with masks." - }, - { - "author": "guoyk93", - "title": "y.k.'s ComfyUI node suite", - "reference": "https://github.com/guoyk93/yk-node-suite-comfyui", - "files": [ - "https://github.com/guoyk93/yk-node-suite-comfyui" - ], - "install_type": "git-clone", - "description": "Nodes: YKImagePadForOutpaint, YKMaskToImage" + "description": "This is a low-dependency node pack primarily dealing with masks. The author recommends using Impact-Pack instead (unless you specifically have trouble installing dependencies)." }, { "author": "Jcd1230", "title": "Rembg Background Removal Node for ComfyUI", + "id": "rembg", "reference": "https://github.com/Jcd1230/rembg-comfyui-node", "files": [ "https://github.com/Jcd1230/rembg-comfyui-node" @@ -461,6 +522,7 @@ { "author": "YinBailiang", "title": "MergeBlockWeighted_fo_ComfyUI", + "id": "mergeblockweighted_fo_comfyui", "reference": "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI", "files": [ "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI" @@ -471,6 +533,7 @@ { "author": "trojblue", "title": "trNodes", + "id": "trnodes", "reference": "https://github.com/trojblue/trNodes", "files": [ "https://github.com/trojblue/trNodes" @@ -481,6 +544,7 @@ { "author": "szhublox", "title": "Auto-MBW", + "id": "auto-mbw", "reference": "https://github.com/szhublox/ambw_comfyui", "files": [ "https://github.com/szhublox/ambw_comfyui" @@ -491,6 +555,7 @@ { "author": "city96", "title": "ComfyUI_NetDist", + "id": "netdist", "reference": "https://github.com/city96/ComfyUI_NetDist", "files": [ "https://github.com/city96/ComfyUI_NetDist" @@ -501,6 +566,7 @@ { "author": "city96", "title": "Latent-Interposer", + "id": "latent-interposer", "reference": "https://github.com/city96/SD-Latent-Interposer", "files": [ "https://github.com/city96/SD-Latent-Interposer" @@ -508,19 +574,10 @@ "install_type": "git-clone", "description": "Custom node to convert the lantents between SDXL and SD v1.5 directly without the VAE decoding/encoding step." }, - { - "author": "city96", - "title": "SD-Advanced-Noise", - "reference": "https://github.com/city96/SD-Advanced-Noise", - "files": [ - "https://github.com/city96/SD-Advanced-Noise" - ], - "install_type": "git-clone", - "description": "Nodes: LatentGaussianNoise, MathEncode. An experimental custom node that generates latent noise directly by utilizing the linear characteristics of the latent space." - }, { "author": "city96", "title": "SD-Latent-Upscaler", + "id": "latent-upscaler", "reference": "https://github.com/city96/SD-Latent-Upscaler", "files": [ "https://github.com/city96/SD-Latent-Upscaler" @@ -532,6 +589,7 @@ { "author": "city96", "title": "ComfyUI_DiT [WIP]", + "id": "dit", "reference": "https://github.com/city96/ComfyUI_DiT", "files": [ "https://github.com/city96/ComfyUI_DiT" @@ -543,6 +601,7 @@ { "author": "city96", "title": "ComfyUI_ColorMod", + "id": "colormod", "reference": "https://github.com/city96/ComfyUI_ColorMod", "files": [ "https://github.com/city96/ComfyUI_ColorMod" @@ -553,6 +612,7 @@ { "author": "city96", "title": "Extra Models for ComfyUI", + "id": "extramodels", "reference": "https://github.com/city96/ComfyUI_ExtraModels", "files": [ "https://github.com/city96/ComfyUI_ExtraModels" @@ -561,18 +621,27 @@ "description": "This extension aims to add support for various random image diffusion models to ComfyUI." }, { - "author": "Kaharos94", - "title": "ComfyUI-Saveaswebp", - "reference": "https://github.com/Kaharos94/ComfyUI-Saveaswebp", + "author": "city96", + "title": "ComfyUI-GGUF", + "id": "comfyui-gguf", + "reference": "https://github.com/city96/ComfyUI-GGUF", "files": [ - "https://github.com/Kaharos94/ComfyUI-Saveaswebp" + "https://github.com/city96/ComfyUI-GGUF" + ], + "preemptions":[ + "CLIPLoaderGGUF", + "DualCLIPLoaderGGUF", + "TripleCLIPLoaderGGUF", + "UnetLoaderGGUF", + "UnetLoaderGGUFAdvanced" ], "install_type": "git-clone", - "description": "Save a picture as Webp file in Comfy + Workflow loading" + "description": "GGUF Quantization support for native ComfyUI models\nThis is currently very much WIP. These custom nodes provide support for model files stored in the GGUF format popularized by llama.cpp.\nWhile quantization wasn't feasible for regular UNET models (conv2d), transformer/DiT models such as flux seem less affected by quantization. This allows running it in much lower bits per weight variable bitrate quants on low-end GPUs." }, { "author": "SLAPaper", "title": "ComfyUI-Image-Selector", + "id": "image-selector", "reference": "https://github.com/SLAPaper/ComfyUI-Image-Selector", "files": [ "https://github.com/SLAPaper/ComfyUI-Image-Selector" @@ -582,13 +651,14 @@ }, { "author": "SLAPaper", - "title": "ComfyUI DPM++ 2M Alt Sampler", - "reference": "https://github.com/SLAPaper/ComfyUI-dpmpp_2m_alt-Sampler", + "title": "StableDiffusion-dpmpp_2m_alt-Sampler", + "id": "dpmpp2m-alt", + "reference": "https://github.com/SLAPaper/StableDiffusion-dpmpp_2m_alt-Sampler", "files": [ - "https://github.com/SLAPaper/ComfyUI-dpmpp_2m_alt-Sampler" + "https://github.com/SLAPaper/StableDiffusion-dpmpp_2m_alt-Sampler" ], "install_type": "git-clone", - "description": "the sampler introduced by [a/hallatore](https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/8457)\ncode extracted from [a/smZNodes](https://github.com/shiimizu/ComfyUI_smZNodes)" + "description": "the sampler introduced by [a/hallatore](https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/8457)\ncode extracted from [a/smZNodes](https://github.com/shiimizu/ComfyUI_smZNodes).[w/NOTE:ComfyUI-dpmpp_2m_alt-Sampler is renamed to StableDiffusion-dpmpp_2m_alt-Sampler. Please reinstall.]" }, { "author": "flyingshutter", @@ -610,20 +680,10 @@ "install_type": "git-clone", "description": "Nodes: DeepFloyd, Filter, Select, Save, Decode, Encode, Repeat, Noise, Noise" }, - { - "author": "Zuellni", - "title": "ComfyUI-ExLlama", - "reference": "https://github.com/Zuellni/ComfyUI-ExLlama", - "files": [ - "https://github.com/Zuellni/ComfyUI-ExLlama" - ], - "pip": ["sentencepiece", "https://github.com/jllllll/exllama/releases/download/0.0.17/exllama-0.0.17+cu118-cp310-cp310-win_amd64.whl"], - "install_type": "git-clone", - "description": "Nodes: ExLlama Loader, ExLlama Generator.\nUsed to load 4-bit GPTQ Llama/2 models. You can find a lot of them over at [a/https://huggingface.co/TheBloke](https://huggingface.co/TheBloke)[w/NOTE: You need to manually install a pip package that suits your system. For example. If your system is 'Python3.10 + Windows + CUDA 11.8' then you need to install 'exllama-0.0.17+cu118-cp310-cp310-win_amd64.whl'. Available package files are [a/here](https://github.com/jllllll/exllama/releases)]" - }, { "author": "Zuellni", "title": "ComfyUI ExLlamaV2 Nodes", + "id": "exllamav2", "reference": "https://github.com/Zuellni/ComfyUI-ExLlama-Nodes", "files": [ "https://github.com/Zuellni/ComfyUI-ExLlama-Nodes" @@ -634,6 +694,7 @@ { "author": "Zuellni", "title": "ComfyUI PickScore Nodes", + "id": "pickscore", "reference": "https://github.com/Zuellni/ComfyUI-PickScore-Nodes", "files": [ "https://github.com/Zuellni/ComfyUI-PickScore-Nodes" @@ -644,16 +705,18 @@ { "author": "AlekPet", "title": "AlekPet/ComfyUI_Custom_Nodes_AlekPet", + "id": "alekpet", "reference": "https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet", "files": [ "https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet" ], "install_type": "git-clone", - "description": "Nodes: PoseNode, PainterNode, TranslateTextNode, TranslateCLIPTextEncodeNode, DeepTranslatorTextNode, DeepTranslatorCLIPTextEncodeNode, ArgosTranslateTextNode, ArgosTranslateCLIPTextEncodeNode, PreviewTextNode.\n\nNOTE: Due to the dynamic nature of node name definitions, ComfyUI-Manager cannot recognize the node list from this extension. The Missing nodes and Badge features are not available for this extension." + "description": "Nodes: PoseNode, PainterNode, TranslateTextNode, TranslateCLIPTextEncodeNode, DeepTranslatorTextNode, DeepTranslatorCLIPTextEncodeNode, ArgosTranslateTextNode, ArgosTranslateCLIPTextEncodeNode, PreviewTextNode, HexToHueNode, ColorsCorrectNode, IDENode." }, { "author": "pythongosssss", "title": "ComfyUI WD 1.4 Tagger", + "id": "wd14", "reference": "https://github.com/pythongosssss/ComfyUI-WD14-Tagger", "files": [ "https://github.com/pythongosssss/ComfyUI-WD14-Tagger" @@ -663,39 +726,43 @@ }, { "author": "pythongosssss", - "title": "pythongosssss/ComfyUI-Custom-Scripts", + "title": "ComfyUI-Custom-Scripts", + "id": "comfyui-custom-scripts", "reference": "https://github.com/pythongosssss/ComfyUI-Custom-Scripts", "files": [ "https://github.com/pythongosssss/ComfyUI-Custom-Scripts" ], "install_type": "git-clone", - "description": "This extension provides: Auto Arrange Graph, Workflow SVG, Favicon Status, Image Feed, Latent Upscale By, Lock Nodes & Groups, Lora Subfolders, Preset Text, Show Text, Touch Support, Link Render Mode, Locking, Node Finder, Quick Nodes, Show Image On Menu, Show Text, Workflow Managements, Custom Widget Default Values" + "description": "Enhancements & experiments for ComfyUI, mostly focusing on UI features" }, { "author": "strimmlarn", "title": "ComfyUI_Strimmlarns_aesthetic_score", - "reference": "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score", + "id": "aesthetic-score", + "reference": "https://github.com/strimmlarn/ComfyUI-Strimmlarns-Aesthetic-Score", "js_path": "strimmlarn", "files": [ - "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score" + "https://github.com/strimmlarn/ComfyUI-Strimmlarns-Aesthetic-Score" ], "install_type": "git-clone", - "description": "Nodes: CalculateAestheticScore, LoadAesteticModel, AesthetlcScoreSorter, ScoreToNumber" + "description": "Nodes: CalculateAestheticScore, LoadAesteticModel, AesthetlcScoreSorter, ScoreToNumber.\nAesthetic score for ComfyUI" }, { - "author": "tinyterra", - "title": "tinyterraNodes", - "reference": "https://github.com/tinyterra/ComfyUI_tinyterraNodes", + "author": "TinyTerra", + "title": "ComfyUI_tinyterraNodes", + "id": "ttn", + "reference": "https://github.com/TinyTerra/ComfyUI_tinyterraNodes", "files": [ "https://github.com/TinyTerra/ComfyUI_tinyterraNodes" ], "install_type": "git-clone", "nodename_pattern": "^ttN ", - "description": "This extension offers various pipe nodes, fullscreen image viewer based on node history, dynamic widgets, interface customization, and more." + "description": "This extension offers various pipe nodes, extensive XYZ plotting, fullscreen image viewer based on node history, dynamic widgets, interface customization, and more." }, { "author": "Jordach", "title": "comfy-plasma", + "id": "plasma", "reference": "https://github.com/Jordach/comfy-plasma", "files": [ "https://github.com/Jordach/comfy-plasma" @@ -706,6 +773,7 @@ { "author": "bvhari", "title": "ImageProcessing", + "id": "imageprocessing", "reference": "https://github.com/bvhari/ComfyUI_ImageProcessing", "files": [ "https://github.com/bvhari/ComfyUI_ImageProcessing" @@ -713,19 +781,10 @@ "install_type": "git-clone", "description": "ComfyUI custom nodes to apply various image processing techniques." }, - { - "author": "bvhari", - "title": "LatentToRGB", - "reference": "https://github.com/bvhari/ComfyUI_LatentToRGB", - "files": [ - "https://github.com/bvhari/ComfyUI_LatentToRGB" - ], - "install_type": "git-clone", - "description": "ComfyUI custom node to convert latent to RGB." - }, { "author": "bvhari", "title": "ComfyUI_PerpWeight", + "id": "perpweight", "reference": "https://github.com/bvhari/ComfyUI_PerpWeight", "files": [ "https://github.com/bvhari/ComfyUI_PerpWeight" @@ -736,6 +795,7 @@ { "author": "bvhari", "title": "ComfyUI_SUNoise", + "id": "sunoise", "reference": "https://github.com/bvhari/ComfyUI_SUNoise", "files": [ "https://github.com/bvhari/ComfyUI_SUNoise" @@ -743,9 +803,30 @@ "install_type": "git-clone", "description": "Scaled Uniform Noise for Ancestral and Stochastic samplers" }, + { + "author": "bvhari", + "title": "ComfyUI_PerpCFG", + "reference": "https://github.com/bvhari/ComfyUI_PerpCFG", + "files": [ + "https://github.com/bvhari/ComfyUI_PerpCFG" + ], + "install_type": "git-clone", + "description": "Perpendicular CFG for reducing oversaturation issues with high guidance scale values." + }, + { + "author": "bvhari", + "title": "ComfyUI_CFGStar", + "reference": "https://github.com/bvhari/ComfyUI_CFGStar", + "files": [ + "https://github.com/bvhari/ComfyUI_CFGStar" + ], + "install_type": "git-clone", + "description": "A per channel implementation of the scaled CFG from this paper: [a/https://arxiv.org/abs/2503.18886](https://arxiv.org/abs/2503.18886)" + }, { "author": "ssitu", "title": "UltimateSDUpscale", + "id": "usdu", "reference": "https://github.com/ssitu/ComfyUI_UltimateSDUpscale", "files": [ "https://github.com/ssitu/ComfyUI_UltimateSDUpscale" @@ -756,6 +837,7 @@ { "author": "ssitu", "title": "Restart Sampling", + "id": "restart-sampling", "reference": "https://github.com/ssitu/ComfyUI_restart_sampling", "files": [ "https://github.com/ssitu/ComfyUI_restart_sampling" @@ -766,6 +848,7 @@ { "author": "ssitu", "title": "ComfyUI roop", + "id": "roop", "reference": "https://github.com/ssitu/ComfyUI_roop", "files": [ "https://github.com/ssitu/ComfyUI_roop" @@ -776,6 +859,7 @@ { "author": "ssitu", "title": "ComfyUI fabric", + "id": "fabric", "reference": "https://github.com/ssitu/ComfyUI_fabric", "files": [ "https://github.com/ssitu/ComfyUI_fabric" @@ -786,6 +870,7 @@ { "author": "space-nuko", "title": "Disco Diffusion", + "id": "disco", "reference": "https://github.com/space-nuko/ComfyUI-Disco-Diffusion", "files": [ "https://github.com/space-nuko/ComfyUI-Disco-Diffusion" @@ -796,6 +881,7 @@ { "author": "space-nuko", "title": "OpenPose Editor", + "id": "openpose-editor", "reference": "https://github.com/space-nuko/ComfyUI-OpenPose-Editor", "files": [ "https://github.com/space-nuko/ComfyUI-OpenPose-Editor" @@ -806,6 +892,7 @@ { "author": "space-nuko", "title": "nui suite", + "id": "nui", "reference": "https://github.com/space-nuko/nui-suite", "files": [ "https://github.com/space-nuko/nui-suite" @@ -816,16 +903,18 @@ { "author": "Nourepide", "title": "Allor Plugin", + "id": "allor", "reference": "https://github.com/Nourepide/ComfyUI-Allor", "files": [ "https://github.com/Nourepide/ComfyUI-Allor" ], "install_type": "git-clone", - "description": "Allor is a plugin for ComfyUI with an emphasis on transparency and performance.\n[w/NOTE: If you do not disable the default node override feature in the settings, the built-in nodes, namely ImageScale and ImageScaleBy nodes, will be disabled. (ref: [a/Configutation](https://github.com/Nourepide/ComfyUI-Allor#configuration))]" + "description": "Allor is a plugin for ComfyUI with an emphasis on transparency and performance." }, { "author": "melMass", "title": "MTB Nodes", + "id": "mtb", "reference": "https://github.com/melMass/comfy_mtb", "files": [ "https://github.com/melMass/comfy_mtb" @@ -834,19 +923,43 @@ "install_type": "git-clone", "description": "NODES: Face Swap, Film Interpolation, Latent Lerp, Int To Number, Bounding Box, Crop, Uncrop, ImageBlur, Denoise, ImageCompare, RGV to HSV, HSV to RGB, Color Correct, Modulo, Deglaze Image, Smart Step, ..." }, + { + "author": "melMass", + "title": "comfy-oiio", + "reference": "https://github.com/melMass/comfy_oiio", + "files": [ + "https://github.com/melMass/comfy_oiio" + ], + "install_type": "git-clone", + "description": "OpenImageIO plugin for ComfyUI" + }, { "author": "xXAdonesXx", "title": "NodeGPT", + "id": "nodegpt", "reference": "https://github.com/xXAdonesXx/NodeGPT", + "reference2": "https://github.com/antonym-git/NodeGPT", "files": [ "https://github.com/xXAdonesXx/NodeGPT" ], "install_type": "git-clone", "description": "Implementation of AutoGen inside ComfyUI. This repository is under development, and not everything is functioning correctly yet." }, + { + "author": "ciri", + "title": "ComfyUI Model Downloader", + "id": "model-downloader", + "reference": "https://github.com/ciri/comfyui-model-downloader", + "files": [ + "https://github.com/ciri/comfyui-model-downloader" + ], + "install_type": "git-clone", + "description": "This node allows downloading models directly within ComfyUI for easier use and integration." + }, { "author": "Suzie1", "title": "Comfyroll Studio", + "id": "comfyroll", "reference": "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes", "files": [ "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes" @@ -864,19 +977,10 @@ "install_type": "git-clone", "description": "ComfyUI extension that adds undo (and redo) functionality." }, - { - "author": "bmad4ever", - "title": "Bmad Nodes", - "reference": "https://github.com/bmad4ever/comfyui_bmad_nodes", - "files": [ - "https://github.com/bmad4ever/comfyui_bmad_nodes" - ], - "install_type": "git-clone", - "description": "This custom node offers the following functionalities: API support for setting up API requests, computer vision primarily for masking or collages, and general utility to streamline workflow setup or implement essential missing features." - }, { "author": "bmad4ever", "title": "comfyui_ab_sampler", + "id": "ab-sampler", "reference": "https://github.com/bmad4ever/comfyui_ab_samplercustom", "files": [ "https://github.com/bmad4ever/comfyui_ab_samplercustom" @@ -897,6 +1001,7 @@ { "author": "bmad4ever", "title": "comfyui_wfc_like", + "id": "wfc", "reference": "https://github.com/bmad4ever/comfyui_wfc_like", "files": [ "https://github.com/bmad4ever/comfyui_wfc_like" @@ -907,6 +1012,7 @@ { "author": "bmad4ever", "title": "comfyui_quilting", + "id": "quilting", "reference": "https://github.com/bmad4ever/comfyui_quilting", "files": [ "https://github.com/bmad4ever/comfyui_quilting" @@ -917,6 +1023,7 @@ { "author": "FizzleDorf", "title": "FizzNodes", + "id": "fizz", "reference": "https://github.com/FizzleDorf/ComfyUI_FizzNodes", "files": [ "https://github.com/FizzleDorf/ComfyUI_FizzNodes" @@ -927,6 +1034,7 @@ { "author": "FizzleDorf", "title": "ComfyUI-AIT", + "id": "ait", "reference": "https://github.com/FizzleDorf/ComfyUI-AIT", "files": [ "https://github.com/FizzleDorf/ComfyUI-AIT" @@ -937,6 +1045,7 @@ { "author": "filipemeneses", "title": "Pixelization", + "id": "pixelization", "reference": "https://github.com/filipemeneses/comfy_pixelization", "files": [ "https://github.com/filipemeneses/comfy_pixelization" @@ -947,16 +1056,18 @@ { "author": "shiimizu", "title": "smZNodes", + "id": "smz", "reference": "https://github.com/shiimizu/ComfyUI_smZNodes", "files": [ "https://github.com/shiimizu/ComfyUI_smZNodes" ], "install_type": "git-clone", - "description": "NODES: CLIP Text Encode++. Achieve identical embeddings from stable-diffusion-webui for ComfyUI." + "description": "Nodes such as CLIP Text Encode++ to achieve identical embeddings from stable-diffusion-webui for ComfyUI." }, { "author": "shiimizu", "title": "Tiled Diffusion & VAE for ComfyUI", + "id": "tiled-diffusion", "reference": "https://github.com/shiimizu/ComfyUI-TiledDiffusion", "files": [ "https://github.com/shiimizu/ComfyUI-TiledDiffusion" @@ -964,6 +1075,28 @@ "install_type": "git-clone", "description": "The extension enables large image drawing & upscaling with limited VRAM via the following techniques:\n1.Two SOTA diffusion tiling algorithms: [a/Mixture of Diffusers](https://github.com/albarji/mixture-of-diffusers) and [a/MultiDiffusion](https://github.com/omerbt/MultiDiffusion)\n2.pkuliyi2015's Tiled VAE algorithm." }, + { + "author": "shiimizu", + "title": "ComfyUI PhotoMaker Plus", + "id": "photomaker-plus", + "reference": "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus", + "files": [ + "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus" + ], + "install_type": "git-clone", + "description": "ComfyUI reference implementation for [a/PhotoMaker](https://github.com/TencentARC/PhotoMaker) models.\nNOTE: PhotoMaker V2 is supported." + }, + { + "author": "shiimizu", + "title": "Semantic-aware Guidance (S-CFG)", + "id": "s-cfg", + "reference": "https://github.com/shiimizu/ComfyUI-semantic-aware-guidance", + "files": [ + "https://github.com/shiimizu/ComfyUI-semantic-aware-guidance" + ], + "install_type": "git-clone", + "description": "ComfyUI node for Semantic-aware Guidance based on the [a/paper](https://arxiv.org/abs/2404.05384) 'Rethinking the Spatial Inconsistency in Classifier-Free Diffusion Guidance'" + }, { "author": "ZaneA", "title": "ImageReward", @@ -977,6 +1110,7 @@ { "author": "SeargeDP", "title": "SeargeSDXL", + "id": "searge", "reference": "https://github.com/SeargeDP/SeargeSDXL", "files": [ "https://github.com/SeargeDP/SeargeSDXL" @@ -985,22 +1119,61 @@ "description": "Custom nodes for easier use of SDXL in ComfyUI including an img2img workflow that utilizes both the base and refiner checkpoints." }, { - "author": "cubiq", - "title": "Simple Math", - "reference": "https://github.com/cubiq/ComfyUI_SimpleMath", + "author": "SeargeDP", + "title": "Searge-LLM for ComfyUI v1.0", + "reference": "https://github.com/SeargeDP/ComfyUI_Searge_LLM", "files": [ - "https://github.com/cubiq/ComfyUI_SimpleMath" + "https://github.com/SeargeDP/ComfyUI_Searge_LLM" ], "install_type": "git-clone", - "description": "custom node for ComfyUI to perform simple math operations" + "description": "A prompt-generator or prompt-improvement node for ComfyUI, utilizing the power of a language model to turn a provided text-to-image prompt into a more detailed and improved prompt." }, { "author": "cubiq", "title": "ComfyUI_IPAdapter_plus", + "id": "ipadapter", "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus", "files": [ "https://github.com/cubiq/ComfyUI_IPAdapter_plus" ], + "preemptions": [ + "IPAAdapterFaceIDBatch", + "IPAdapter", + "IPAdapterAdvanced", + "IPAdapterBatch", + "IPAdapterClipVisionEnhancer", + "IPAdapterClipVisionEnhancerBatch", + "IPAdapterCombineEmbeds", + "IPAdapterCombineParams", + "IPAdapterCombineWeights", + "IPAdapterEmbeds", + "IPAdapterEmbedsBatch", + "IPAdapterEncoder", + "IPAdapterFaceID", + "IPAdapterFromParams", + "IPAdapterInsightFaceLoader", + "IPAdapterLoadEmbeds", + "IPAdapterMS", + "IPAdapterModelLoader", + "IPAdapterNoise", + "IPAdapterPreciseComposition", + "IPAdapterPreciseCompositionBatch", + "IPAdapterPreciseStyleTransfer", + "IPAdapterPreciseStyleTransferBatch", + "IPAdapterPromptScheduleFromWeightsStrategy", + "IPAdapterRegionalConditioning", + "IPAdapterSaveEmbeds", + "IPAdapterStyleComposition", + "IPAdapterStyleCompositionBatch", + "IPAdapterTiled", + "IPAdapterTiledBatch", + "IPAdapterUnifiedLoader", + "IPAdapterUnifiedLoaderCommunity", + "IPAdapterUnifiedLoaderFaceID", + "IPAdapterWeights", + "IPAdapterWeightsFromStrategy", + "PrepImageForClipVision" + ], "pip": ["insightface"], "install_type": "git-clone", "description": "ComfyUI reference implementation for IPAdapter models. The code is mostly taken from the original IPAdapter repository and laksjdjf's implementation, all credit goes to them. I just made the extension closer to ComfyUI philosophy." @@ -1008,6 +1181,7 @@ { "author": "cubiq", "title": "ComfyUI InstantID (Native Support)", + "id": "instantid", "reference": "https://github.com/cubiq/ComfyUI_InstantID", "files": [ "https://github.com/cubiq/ComfyUI_InstantID" @@ -1018,6 +1192,7 @@ { "author": "cubiq", "title": "Face Analysis for ComfyUI", + "id": "faceanalysis", "reference": "https://github.com/cubiq/ComfyUI_FaceAnalysis", "files": [ "https://github.com/cubiq/ComfyUI_FaceAnalysis" @@ -1026,18 +1201,30 @@ "description": "This extension uses [a/DLib](http://dlib.net/) to calculate the Euclidean and Cosine distance between two faces.\nNOTE: Install the Shape Predictor, Face Recognition model from the Install models menu." }, { - "author": "shockz0rz", - "title": "InterpolateEverything", - "reference": "https://github.com/shockz0rz/ComfyUI_InterpolateEverything", + "author": "cubiq", + "title": "PuLID_ComfyUI", + "id": "pulid", + "reference": "https://github.com/cubiq/PuLID_ComfyUI", "files": [ - "https://github.com/shockz0rz/ComfyUI_InterpolateEverything" + "https://github.com/cubiq/PuLID_ComfyUI" ], "install_type": "git-clone", - "description": "Nodes: Interpolate Poses, Interpolate Lineart, ... Custom nodes for interpolating between, well, everything in the Stable Diffusion ComfyUI." + "description": "[a/PuLID](https://github.com/ToTheBeginning/PuLID) ComfyUI native implementation." + }, + { + "author": "cubiq", + "title": "Flux blocks patcher sampler", + "reference": "https://github.com/cubiq/Block_Patcher_ComfyUI", + "files": [ + "https://github.com/cubiq/Block_Patcher_ComfyUI" + ], + "install_type": "git-clone", + "description": "This is an (very) advanced and (very) experimental custom node for the ComfyUI. It allows you to iteratively change the blocks weights of Flux models and check the difference each value makes." }, { "author": "shockz0rz", "title": "comfy-easy-grids", + "id": "easy-grids", "reference": "https://github.com/shockz0rz/comfy-easy-grids", "files": [ "https://github.com/shockz0rz/comfy-easy-grids" @@ -1048,6 +1235,7 @@ { "author": "yolanother", "title": "Comfy UI Prompt Agent", + "id": "prompt-agent", "reference": "https://github.com/yolanother/DTAIComfyPromptAgent", "files": [ "https://github.com/yolanother/DTAIComfyPromptAgent" @@ -1058,6 +1246,7 @@ { "author": "yolanother", "title": "Image to Text Node", + "id": "dta-img2txt", "reference": "https://github.com/yolanother/DTAIImageToTextNode", "files": [ "https://github.com/yolanother/DTAIImageToTextNode" @@ -1068,6 +1257,7 @@ { "author": "yolanother", "title": "Comfy UI Online Loaders", + "id": "dta-loader", "reference": "https://github.com/yolanother/DTAIComfyLoaders", "files": [ "https://github.com/yolanother/DTAIComfyLoaders" @@ -1078,6 +1268,7 @@ { "author": "yolanother", "title": "Comfy AI DoubTech.ai Image Sumission Node", + "id": "dta-submit", "reference": "https://github.com/yolanother/DTAIComfyImageSubmit", "files": [ "https://github.com/yolanother/DTAIComfyImageSubmit" @@ -1088,6 +1279,7 @@ { "author": "yolanother", "title": "Comfy UI QR Codes", + "id": "dta-qr", "reference": "https://github.com/yolanother/DTAIComfyQRCodes", "files": [ "https://github.com/yolanother/DTAIComfyQRCodes" @@ -1098,6 +1290,7 @@ { "author": "yolanother", "title": "Variables for Comfy UI", + "id": "dta-var", "reference": "https://github.com/yolanother/DTAIComfyVariables", "files": [ "https://github.com/yolanother/DTAIComfyVariables" @@ -1105,19 +1298,31 @@ "install_type": "git-clone", "description": "Nodes: String, Int, Float, Short String, CLIP Text Encode (With Variables), String Format, Short String Format. This extension introduces quality of life improvements by providing variable nodes and shared global variables." }, + { + "author": "yolanother", + "title": "Save Uncompressed 16 Bit PNG", + "reference": "https://github.com/yolanother/ComfyUI-Save16bitPng", + "files": [ + "https://github.com/yolanother/ComfyUI-Save16bitPng" + ], + "install_type": "git-clone", + "description": "The SaveImageARGB16PNG node provides functionality for saving images as uncompressed PNG files with ARGB16 precision. This node is particularly useful for workflows that require high-quality image saving with metadata such as prompts and additional PNG info." + }, { "author": "sipherxyz", "title": "comfyui-art-venture", + "id": "artventure", "reference": "https://github.com/sipherxyz/comfyui-art-venture", "files": [ "https://github.com/sipherxyz/comfyui-art-venture" ], "install_type": "git-clone", - "description": "Nodes: ImagesConcat, LoadImageFromUrl, AV_UploadImage" + "description": "A comprehensive set of custom nodes for ComfyUI, focusing on utilities for image processing, JSON manipulation, model operations and working with object via URLs" }, { "author": "SOELexicon", "title": "LexMSDBNodes", + "id": "lexmsdb", "reference": "https://github.com/SOELexicon/ComfyUI-LexMSDBNodes", "files": [ "https://github.com/SOELexicon/ComfyUI-LexMSDBNodes" @@ -1138,6 +1343,7 @@ { "author": "evanspearman", "title": "ComfyMath", + "id": "comfymath", "reference": "https://github.com/evanspearman/ComfyMath", "files": [ "https://github.com/evanspearman/ComfyMath" @@ -1147,17 +1353,19 @@ }, { "author": "civitai", - "title": "comfy-nodes", - "reference": "https://github.com/civitai/comfy-nodes", + "title": "Civitai Comfy Nodes", + "id": "civitai", + "reference": "https://github.com/civitai/civitai_comfy_nodes", "files": [ - "https://github.com/civitai/comfy-nodes" + "https://github.com/civitai/civitai_comfy_nodes" ], "install_type": "git-clone", - "description": "Nodes: CivitAI_Loaders. Load Checkpoints, and LORA models directly from CivitAI API." + "description": "Tired of manually downloading and moving models, LoRAs, and more to the right places?\nSick of scouring Civitai for that one mystical LoRA someone was using to make that cool image?\nWant to be share a fully reproducable workflow?" }, { "author": "andersxa", "title": "CLIP Directional Prompt Attention", + "id": "prompt-attention", "reference": "https://github.com/andersxa/comfyui-PromptAttention", "files": [ "https://github.com/andersxa/comfyui-PromptAttention" @@ -1169,10 +1377,10 @@ { "author": "ArtVentureX", "title": "AnimateDiff", - "reference": "https://github.com/ArtVentureX/comfyui-animatediff", + "reference": "https://github.com/SipherAGI/comfyui-animatediff", "pip": ["flash_attn"], "files": [ - "https://github.com/ArtVentureX/comfyui-animatediff" + "https://github.com/SipherAGI/comfyui-animatediff" ], "install_type": "git-clone", "description": "AnimateDiff integration for ComfyUI, adapts from sd-webui-animatediff.\n[w/You only need to download one of [a/mm_sd_v14.ckpt](https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v14.ckpt) | [a/mm_sd_v15.ckpt](https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15.ckpt). Put the model weights under %%ComfyUI/custom_nodes/comfyui-animatediff/models%%. DO NOT change model filename.]" @@ -1180,6 +1388,7 @@ { "author": "twri", "title": "SDXL Prompt Styler", + "id": "twri-styler", "reference": "https://github.com/twri/sdxl_prompt_styler", "files": [ "https://github.com/twri/sdxl_prompt_styler" @@ -1190,6 +1399,7 @@ { "author": "wolfden", "title": "SDXL Prompt Styler (customized version by wolfden)", + "id": "wolfden-styler", "reference": "https://github.com/wolfden/ComfyUi_PromptStylers", "files": [ "https://github.com/wolfden/ComfyUi_PromptStylers" @@ -1200,6 +1410,7 @@ { "author": "wolfden", "title": "ComfyUi_String_Function_Tree", + "id": "str-func-tree", "reference": "https://github.com/wolfden/ComfyUi_String_Function_Tree", "files": [ "https://github.com/wolfden/ComfyUi_String_Function_Tree" @@ -1210,26 +1421,29 @@ { "author": "daxthin", "title": "DZ-FaceDetailer", - "reference": "https://github.com/daxthin/DZ-FaceDetailer", + "id": "dz-facedetailer", + "reference": "https://github.com/nicofdga/DZ-FaceDetailer", "files": [ - "https://github.com/daxthin/DZ-FaceDetailer" + "https://github.com/nicofdga/DZ-FaceDetailer" ], "install_type": "git-clone", "description": "Face Detailer is a custom node for the 'ComfyUI' framework inspired by !After Detailer extension from auto1111, it allows you to detect faces using Mediapipe and YOLOv8n to create masks for the detected faces." }, { "author": "asagi4", - "title": "ComfyUI prompt control", + "title": "ComfyUI Prompt Control", + "id": "prompt-control", "reference": "https://github.com/asagi4/comfyui-prompt-control", "files": [ "https://github.com/asagi4/comfyui-prompt-control" ], "install_type": "git-clone", - "description": "Nodes for convenient prompt editing. The aim is to make basic generations in ComfyUI completely prompt-controllable." + "description": "Nodes for convenient prompt editing, making many common operations prompt-controllable" }, { "author": "asagi4", "title": "ComfyUI-CADS", + "id": "cads", "reference": "https://github.com/asagi4/ComfyUI-CADS", "files": [ "https://github.com/asagi4/ComfyUI-CADS" @@ -1240,6 +1454,7 @@ { "author": "asagi4", "title": "asagi4/comfyui-utility-nodes", + "id": "asagi-nodes", "reference": "https://github.com/asagi4/comfyui-utility-nodes", "files": [ "https://github.com/asagi4/comfyui-utility-nodes" @@ -1247,9 +1462,32 @@ "install_type": "git-clone", "description": "Nodes:MUJinjaRender, MUSimpleWildcard" }, + { + "author": "asagi4", + "title": "Adaptive Guidance for ComfyUI", + "id": "comfyui-adaptive-guidance", + "reference": "https://github.com/asagi4/ComfyUI-Adaptive-Guidance", + "files": [ + "https://github.com/asagi4/ComfyUI-Adaptive-Guidance" + ], + "install_type": "git-clone", + "description": "An implementation of adaptive guidance for ComfyUI\nSee [a/https://bcv-uniandes.github.io/adaptiveguidance-wp](https://bcv-uniandes.github.io/adaptiveguidance-wp)" + }, + { + "author": "asagi4", + "title": "ComfyUI NPNet (Golden Noise)", + "id": "npnet", + "reference": "https://github.com/asagi4/ComfyUI-NPNet", + "files": [ + "https://github.com/asagi4/ComfyUI-NPNet" + ], + "install_type": "git-clone", + "description": "A very barebones mostly-copypaste implementation of [a/https://github.com/xie-lab-ml/Golden-Noise-for-Diffusion-Models](https://github.com/xie-lab-ml/Golden-Noise-for-Diffusion-Models)" + }, { "author": "jamesWalker55", "title": "ComfyUI - P2LDGAN Node", + "id": "p2ldgan", "reference": "https://github.com/jamesWalker55/comfyui-p2ldgan", "files": [ "https://github.com/jamesWalker55/comfyui-p2ldgan" @@ -1260,6 +1498,7 @@ { "author": "jamesWalker55", "title": "Various ComfyUI Nodes by Type", + "id": "jameswalker-nodes", "reference": "https://github.com/jamesWalker55/comfyui-various", "files": [ "https://github.com/jamesWalker55/comfyui-various" @@ -1271,6 +1510,7 @@ { "author": "adieyal", "title": "DynamicPrompts Custom Nodes", + "id": "dynamicprompt", "reference": "https://github.com/adieyal/comfyui-dynamicprompts", "files": [ "https://github.com/adieyal/comfyui-dynamicprompts" @@ -1281,6 +1521,7 @@ { "author": "mihaiiancu", "title": "mihaiiancu/Inpaint", + "id": "inpaint", "reference": "https://github.com/mihaiiancu/ComfyUI_Inpaint", "files": [ "https://github.com/mihaiiancu/ComfyUI_Inpaint" @@ -1291,6 +1532,7 @@ { "author": "kwaroran", "title": "abg-comfyui", + "id": "abg", "reference": "https://github.com/kwaroran/abg-comfyui", "files": [ "https://github.com/kwaroran/abg-comfyui" @@ -1301,6 +1543,7 @@ { "author": "bash-j", "title": "Mikey Nodes", + "id": "mikey", "reference": "https://github.com/bash-j/mikey_nodes", "files": [ "https://github.com/bash-j/mikey_nodes" @@ -1309,18 +1552,20 @@ "description": "Nodes: Prompt With Style, Prompt With SDXL, Resize Image for SDXL, Save Image With Prompt Data, HaldCLUT, Empty Latent Ratio Select/Custom SDXL" }, { - "author": "failfa.st", - "title": "failfast-comfyui-extensions", - "reference": "https://github.com/failfa-st/failfast-comfyui-extensions", + "author": "blib-la", + "title": "blibla-comfyui-extensions", + "id": "blibla-comfyui-extensions", + "reference": "https://github.com/blib-la/blibla-comfyui-extensions", "files": [ - "https://github.com/failfa-st/failfast-comfyui-extensions" + "https://github.com/blib-la/blibla-comfyui-extensions" ], "install_type": "git-clone", - "description": "node color customization, custom colors, dot reroutes, link rendering options, straight lines, group freezing, node pinning, automated arrangement of nodes, copy image" + "description": "node color customization, custom colors, dot reroutes, link rendering options, straight lines, group freezing, node pinning, automated arrangement of nodes, copy image\n[w/failfast-comfyui-extensions is renamed to blibla-comfyui-extensions. Please resintall to this.]" }, { "author": "Pfaeff", "title": "pfaeff-comfyui", + "id": "pfaeff", "reference": "https://github.com/Pfaeff/pfaeff-comfyui", "files": [ "https://github.com/Pfaeff/pfaeff-comfyui" @@ -1331,6 +1576,7 @@ { "author": "wallish77", "title": "wlsh_nodes", + "id": "wlsh", "reference": "https://github.com/wallish77/wlsh_nodes", "files": [ "https://github.com/wallish77/wlsh_nodes" @@ -1341,16 +1587,18 @@ { "author": "Kosinkadink", "title": "ComfyUI-Advanced-ControlNet", + "id": "adv-cnet", "reference": "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet", "files": [ "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet" ], "install_type": "git-clone", - "description": "Nodes: ControlNetLoaderAdvanced, DiffControlNetLoaderAdvanced, ScaledSoftControlNetWeights, SoftControlNetWeights, CustomControlNetWeights, SoftT2IAdapterWeights, CustomT2IAdapterWeights" + "description": "Nodes for scheduling ControlNet strength across timesteps and batched latents, as well as applying custom weights and attention masks." }, { "author": "Kosinkadink", "title": "AnimateDiff Evolved", + "id": "ad-evolved", "reference": "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved", "files": [ "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved" @@ -1361,26 +1609,39 @@ { "author": "Kosinkadink", "title": "ComfyUI-VideoHelperSuite", + "id": "vhs", "reference": "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite", "files": [ "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite" ], "install_type": "git-clone", - "description": "Nodes: VHS_VideoCombine. Nodes related to video workflows" + "description": "Nodes related to video workflows" }, { "author": "Gourieff", - "title": "ReActor Node for ComfyUI", - "reference": "https://github.com/Gourieff/comfyui-reactor-node", + "title": "ComfyUI-FutureWarningIgnore", + "id": "futureignore", + "reference": "https://github.com/Gourieff/ComfyUI-FutureWarningIgnore", "files": [ - "https://github.com/Gourieff/comfyui-reactor-node" + "https://raw.githubusercontent.com/Gourieff/ComfyUI-FutureWarningIgnore/main/0_FutureWarningIgnore.py" + ], + "install_type": "copy", + "description": "This extension collapses 'future warning' messages in your Console" + }, + { + "author": "Gourieff", + "title": "comfyui-reactor-node", + "reference": "https://github.com/Gourieff/ComfyUI-ReActor", + "files": [ + "https://github.com/Gourieff/ComfyUI-ReActor" ], "install_type": "git-clone", - "description": "The Fast and Simple 'roop-like' Face Swap Extension Node for ComfyUI, based on ReActor (ex Roop-GE) SD-WebUI Face Swap Extension" + "description": "The Fast and Simple Face Swap Extension Node for ComfyUI, based on ReActor SD-WebUI Face Swap Extension" }, { "author": "imb101", "title": "FaceSwap", + "id": "faceswap", "reference": "https://github.com/imb101/ComfyUI-FaceSwap", "files": [ "https://github.com/imb101/ComfyUI-FaceSwap" @@ -1391,6 +1652,7 @@ { "author": "Chaoses-Ib", "title": "ComfyUI_Ib_CustomNodes", + "id": "ib-nodes", "reference": "https://github.com/Chaoses-Ib/ComfyUI_Ib_CustomNodes", "files": [ "https://github.com/Chaoses-Ib/ComfyUI_Ib_CustomNodes" @@ -1401,6 +1663,7 @@ { "author": "AIrjen", "title": "One Button Prompt", + "id": "1button", "reference": "https://github.com/AIrjen/OneButtonPrompt", "files": [ "https://github.com/AIrjen/OneButtonPrompt" @@ -1411,6 +1674,7 @@ { "author": "coreyryanhanson", "title": "ComfyQR", + "id": "comfyqr", "reference": "https://github.com/coreyryanhanson/ComfyQR", "files": [ "https://github.com/coreyryanhanson/ComfyQR" @@ -1421,6 +1685,7 @@ { "author": "coreyryanhanson", "title": "ComfyQR-scanning-nodes", + "id": "comfyqr-scanning", "reference": "https://github.com/coreyryanhanson/ComfyQR-scanning-nodes", "files": [ "https://github.com/coreyryanhanson/ComfyQR-scanning-nodes" @@ -1431,6 +1696,7 @@ { "author": "dimtoneff", "title": "ComfyUI PixelArt Detector", + "id": "pixelart-detector", "reference": "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector", "files": [ "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector" @@ -1438,19 +1704,10 @@ "install_type": "git-clone", "description": "This node manipulates the pixel art image in ways that it should look pixel perfect (downscales, changes palette, upscales etc.)." }, - { - "author": "dimtoneff", - "title": "Eagle PNGInfo", - "reference": "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo", - "files": [ - "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo" - ], - "install_type": "git-clone", - "description": "Nodes: EagleImageNode" - }, { "author": "theUpsider", "title": "Styles CSV Loader Extension for ComfyUI", + "id": "styles-csv-loader", "reference": "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader", "files": [ "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader" @@ -1461,6 +1718,7 @@ { "author": "M1kep", "title": "Comfy_KepListStuff", + "id": "keplist", "reference": "https://github.com/M1kep/Comfy_KepListStuff", "files": [ "https://github.com/M1kep/Comfy_KepListStuff" @@ -1471,6 +1729,7 @@ { "author": "M1kep", "title": "ComfyLiterals", + "id": "comfyliterals", "reference": "https://github.com/M1kep/ComfyLiterals", "files": [ "https://github.com/M1kep/ComfyLiterals" @@ -1481,6 +1740,7 @@ { "author": "M1kep", "title": "KepPromptLang", + "id": "kepprompt", "reference": "https://github.com/M1kep/KepPromptLang", "files": [ "https://github.com/M1kep/KepPromptLang" @@ -1491,6 +1751,7 @@ { "author": "M1kep", "title": "Comfy_KepMatteAnything", + "id": "kepmatte", "reference": "https://github.com/M1kep/Comfy_KepMatteAnything", "files": [ "https://github.com/M1kep/Comfy_KepMatteAnything" @@ -1501,6 +1762,7 @@ { "author": "M1kep", "title": "Comfy_KepKitchenSink", + "id": "kepkitchen", "reference": "https://github.com/M1kep/Comfy_KepKitchenSink", "files": [ "https://github.com/M1kep/Comfy_KepKitchenSink" @@ -1511,6 +1773,7 @@ { "author": "M1kep", "title": "ComfyUI-OtherVAEs", + "id": "kep-othervae", "reference": "https://github.com/M1kep/ComfyUI-OtherVAEs", "files": [ "https://github.com/M1kep/ComfyUI-OtherVAEs" @@ -1521,6 +1784,7 @@ { "author": "M1kep", "title": "ComfyUI-KepOpenAI", + "id": "kep-openai", "reference": "https://github.com/M1kep/ComfyUI-KepOpenAI", "files": [ "https://github.com/M1kep/ComfyUI-KepOpenAI" @@ -1531,16 +1795,18 @@ { "author": "uarefans", "title": "ComfyUI-Fans", + "id": "fans", "reference": "https://github.com/uarefans/ComfyUI-Fans", "files": [ "https://github.com/uarefans/ComfyUI-Fans" ], "install_type": "git-clone", - "description": "Nodes: Fans Styler (Max 10 Style), Fans Text Concat (Until 10 text)." + "description": "Nodes: Fans Styler (Max 10 Style), Fans Text Concat (Until 10 text), Fans Prompt Styler Postive (Can replace {prompt} word in your csv files), Fans Prompt Styler Negative (With sentence structure)." }, { "author": "NicholasMcCarthy", "title": "ComfyUI_TravelSuite", + "id": "travel", "reference": "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite", "files": [ "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite" @@ -1551,6 +1817,7 @@ { "author": "ManglerFTW", "title": "ComfyI2I", + "id": "comfyi2i", "reference": "https://github.com/ManglerFTW/ComfyI2I", "files": [ "https://github.com/ManglerFTW/ComfyI2I" @@ -1559,38 +1826,19 @@ "description": "A set of custom nodes to perform image 2 image functions in ComfyUI." }, { - "author": "theUpsider", - "title": "ComfyUI-Logic", - "reference": "https://github.com/theUpsider/ComfyUI-Logic", - "files": [ - "https://github.com/theUpsider/ComfyUI-Logic" - ], - "install_type": "git-clone", - "description": "An extension to ComfyUI that introduces logic nodes and conditional rendering capabilities." - }, - { - "author": "mpiquero7164", - "title": "SaveImgPrompt", - "reference": "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt", - "files": [ - "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt" - ], - "install_type": "git-clone", - "description": "Save a png or jpeg and option to save prompt/workflow in a text or json file for each image in Comfy + Workflow loading." - }, - { - "author": "m-sokes", - "title": "ComfyUI Sokes Nodes", + "author": "Mike Sokol", + "title": "ComfyUI Sokes Nodes 🦬", "reference": "https://github.com/m-sokes/ComfyUI-Sokes-Nodes", "files": [ "https://github.com/m-sokes/ComfyUI-Sokes-Nodes" ], "install_type": "git-clone", - "description": "Nodes: Empty Latent Randomizer (9 Inputs)" - }, + "description": "A small node suite for ComfyUI" + }, { "author": "Extraltodeus", "title": "noise latent perlinpinpin", + "id": "perlipinpin", "reference": "https://github.com/Extraltodeus/noise_latent_perlinpinpin", "files": [ "https://github.com/Extraltodeus/noise_latent_perlinpinpin" @@ -1611,6 +1859,7 @@ { "author": "Extraltodeus", "title": "sigmas_tools_and_the_golden_scheduler", + "id": "sigmas-tools", "reference": "https://github.com/Extraltodeus/sigmas_tools_and_the_golden_scheduler", "files": [ "https://github.com/Extraltodeus/sigmas_tools_and_the_golden_scheduler" @@ -1621,6 +1870,7 @@ { "author": "Extraltodeus", "title": "ComfyUI-AutomaticCFG", + "id": "autocfg", "reference": "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG", "files": [ "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG" @@ -1631,6 +1881,7 @@ { "author": "Extraltodeus", "title": "Vector_Sculptor_ComfyUI", + "id": "vector-sculptor", "reference": "https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI", "files": [ "https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI" @@ -1638,9 +1889,75 @@ "install_type": "git-clone", "description": "The main node makes your conditioning go towards similar concepts so to enrich your composition or further away so to make it more precise. It gathers similar pre-cond vectors for as long as the cosine similarity score diminishes. If it climbs back it stops. This allows to set a relative direction to similar concepts.\nThere are examples at the end but [a/you can also check this imgur album](https://imgur.com/a/WvPd81Y) which demonstrates the capability of improving variety." }, + { + "author": "Extraltodeus", + "title": "Stable-Diffusion-temperature-settings", + "id": "sd-temperature", + "reference": "https://github.com/Extraltodeus/Stable-Diffusion-temperature-settings", + "files": [ + "https://github.com/Extraltodeus/Stable-Diffusion-temperature-settings" + ], + "install_type": "git-clone", + "description": "Provides the ability to set the temperature for both UNET and CLIP. For ComfyUI." + }, + { + "author": "Extraltodeus", + "title": "Uncond-Zero-for-ComfyUI", + "id": "uncond-zero", + "reference": "https://github.com/Extraltodeus/Uncond-Zero-for-ComfyUI", + "files": [ + "https://github.com/Extraltodeus/Uncond-Zero-for-ComfyUI" + ], + "install_type": "git-clone", + "description": "Allows to sample without generating any uncond with Stable Diffusion!" + }, + { + "author": "Extraltodeus", + "title": "pre_cfg_comfy_nodes_for_ComfyUI", + "id": "pre_cfg_comfy_nodes_for_comfyui", + "reference": "https://github.com/Extraltodeus/pre_cfg_comfy_nodes_for_ComfyUI", + "files": [ + "https://github.com/Extraltodeus/pre_cfg_comfy_nodes_for_ComfyUI" + ], + "install_type": "git-clone", + "description": "A set of nodes to prepare the noise predictions before the CFG function" + }, + { + "author": "Extraltodeus", + "title": "Skimmed_CFG", + "id": "skimmed-cfg", + "reference": "https://github.com/Extraltodeus/Skimmed_CFG", + "files": [ + "https://github.com/Extraltodeus/Skimmed_CFG" + ], + "install_type": "git-clone", + "description": "A powerful anti-burn allowing much higher CFG scales for latent diffusion models (for ComfyUI)" + }, + { + "author": "Extraltodeus", + "title": "DistanceSampler", + "id": "distancesampler", + "reference": "https://github.com/Extraltodeus/DistanceSampler", + "files": [ + "https://github.com/Extraltodeus/DistanceSampler" + ], + "install_type": "git-clone", + "description": "Heuristic modification of the Heun sampler using a custom function based on normalized distances. For ComfyUI." + }, + { + "author": "Extraltodeus", + "title": "Negative-attention-for-ComfyUI-", + "reference": "https://github.com/Extraltodeus/Negative-attention-for-ComfyUI-", + "files": [ + "https://github.com/Extraltodeus/Negative-attention-for-ComfyUI-" + ], + "install_type": "git-clone", + "description": "Takes the difference in between the positive and negative conditioning at the attention.\nNOTE: Will not work with Flux" + }, { "author": "JPS", "title": "JPS Custom Nodes for ComfyUI", + "id": "jps-nodes", "reference": "https://github.com/JPS-GER/ComfyUI_JPS-Nodes", "files": [ "https://github.com/JPS-GER/ComfyUI_JPS-Nodes" @@ -1651,6 +1968,7 @@ { "author": "hustille", "title": "hus' utils for ComfyUI", + "id": "husutil", "reference": "https://github.com/hustille/ComfyUI_hus_utils", "files": [ "https://github.com/hustille/ComfyUI_hus_utils" @@ -1661,6 +1979,7 @@ { "author": "hustille", "title": "ComfyUI_Fooocus_KSampler", + "id": "fooocus-ksampler", "reference": "https://github.com/hustille/ComfyUI_Fooocus_KSampler", "files": [ "https://github.com/hustille/ComfyUI_Fooocus_KSampler" @@ -1670,7 +1989,8 @@ }, { "author": "badjeff", - "title": "LoRA Tag Loader for ComfyUI", + "title": "badjeff/LoRA Tag Loader for ComfyUI", + "id": "lora-tag-loader", "reference": "https://github.com/badjeff/comfyui_lora_tag_loader", "files": [ "https://github.com/badjeff/comfyui_lora_tag_loader" @@ -1681,6 +2001,7 @@ { "author": "rgthree", "title": "rgthree's ComfyUI Nodes", + "id": "rgthree", "reference": "https://github.com/rgthree/rgthree-comfy", "files": [ "https://github.com/rgthree/rgthree-comfy" @@ -1692,6 +2013,7 @@ { "author": "AIGODLIKE", "title": "AIGODLIKE-COMFYUI-TRANSLATION", + "id": "translation", "reference": "https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION", "files": [ "https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION" @@ -1702,6 +2024,7 @@ { "author": "AIGODLIKE", "title": "AIGODLIKE-ComfyUI-Studio", + "id": "comfy-studio", "reference": "https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Studio", "files": [ "https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Studio" @@ -1712,6 +2035,7 @@ { "author": "AIGODLIKE", "title": "ComfyUI-CUP", + "id": "comfycup", "reference": "https://github.com/AIGODLIKE/ComfyUI-CUP", "files": [ "https://github.com/AIGODLIKE/ComfyUI-CUP" @@ -1719,19 +2043,32 @@ "install_type": "git-clone", "description": "Bridge between ComfyUI and blender's ComfyUI-BlenderAI-node addon." }, + { + "author": "AIGODLIKE", + "title": "ComfyUI-ToonCrafter", + "id": "tooncrafter", + "reference": "https://github.com/AIGODLIKE/ComfyUI-ToonCrafter", + "files": [ + "https://github.com/AIGODLIKE/ComfyUI-ToonCrafter" + ], + "install_type": "git-clone", + "description": "This project is used to enable [a/ToonCrafter](https://github.com/ToonCrafter/ToonCrafter) to be used in ComfyUI.\nYou can use it to achieve generative keyframe animation\nAnd use it in Blender for animation rendering and prediction" + }, { "author": "syllebra", "title": "BilboX's ComfyUI Custom Nodes", + "id": "bilbox", "reference": "https://github.com/syllebra/bilbox-comfyui", "files": [ "https://github.com/syllebra/bilbox-comfyui" ], "install_type": "git-clone", - "description": "Nodes: BilboX's PromptGeek Photo Prompt. This provides a convenient way to compose photorealistic prompts into ComfyUI." + "description": "Nodes: BilboX's PromptGeek Photo Prompt. This provides a convenient way to compose photorealistic prompts into ComfyUI. Post-Processing: adds various post processing effects. Bonus: Option to show a distant server shutdown menu." }, { "author": "Girish Gopaul", "title": "Save Image with Generation Metadata", + "id": "image-saver", "reference": "https://github.com/giriss/comfy-image-saver", "files": [ "https://github.com/giriss/comfy-image-saver" @@ -1739,29 +2076,10 @@ "install_type": "git-clone", "description": "All the tools you need to save images with their generation metadata on ComfyUI. Compatible with Civitai & Prompthero geninfo auto-detection. Works with png, jpeg and webp." }, - { - "author": "shingo1228", - "title": "ComfyUI-send-Eagle(slim)", - "reference": "https://github.com/shingo1228/ComfyUI-send-eagle-slim", - "files": [ - "https://github.com/shingo1228/ComfyUI-send-eagle-slim" - ], - "install_type": "git-clone", - "description": "Nodes:Send Webp Image to Eagle. This is an extension node for ComfyUI that allows you to send generated images in webp format to Eagle. This extension node is a re-implementation of the Eagle linkage functions of the previous ComfyUI-send-Eagle node, focusing on the functions required for this node." - }, - { - "author": "shingo1228", - "title": "ComfyUI-SDXL-EmptyLatentImage", - "reference": "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage", - "files": [ - "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage" - ], - "install_type": "git-clone", - "description": "Nodes:SDXL Empty Latent Image. An extension node for ComfyUI that allows you to select a resolution from the pre-defined json files and output a Latent Image." - }, { "author": "laksjdjf", "title": "pfg-ComfyUI", + "id": "pfg", "reference": "https://github.com/laksjdjf/pfg-ComfyUI", "files": [ "https://github.com/laksjdjf/pfg-ComfyUI" @@ -1771,17 +2089,19 @@ }, { "author": "laksjdjf", - "title": "attention-couple-ComfyUI", - "reference": "https://github.com/laksjdjf/attention-couple-ComfyUI", + "title": "cgem156-ComfyUI🍌", + "id": "cgem156", + "reference": "https://github.com/laksjdjf/cgem156-ComfyUI", "files": [ - "https://github.com/laksjdjf/attention-couple-ComfyUI" + "https://github.com/laksjdjf/cgem156-ComfyUI" ], "install_type": "git-clone", - "description": "Nodes:Attention couple. This is a custom node that manipulates region-specific prompts. While vanilla ComfyUI employs an area specification method based on latent couples, this node divides regions using attention layers within UNet." + "description": "The custom nodes of laksjdjf have been integrated into the node pack of cgem156🍌.\nNOTE:This includes the attention couple feature." }, { "author": "laksjdjf", "title": "cd-tuner_negpip-ComfyUI", + "id": "cdtuner", "reference": "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI", "files": [ "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI" @@ -1792,6 +2112,7 @@ { "author": "laksjdjf", "title": "LCMSampler-ComfyUI", + "id": "lcm-sampler", "reference": "https://github.com/laksjdjf/LCMSampler-ComfyUI", "files": [ "https://github.com/laksjdjf/LCMSampler-ComfyUI" @@ -1802,6 +2123,7 @@ { "author": "laksjdjf", "title": "LoRTnoC-ComfyUI", + "id": "lortnoc", "reference": "https://github.com/laksjdjf/LoRTnoC-ComfyUI", "files": [ "https://github.com/laksjdjf/LoRTnoC-ComfyUI" @@ -1812,6 +2134,7 @@ { "author": "laksjdjf", "title": "Batch-Condition-ComfyUI", + "id": "batch-condition", "reference": "https://github.com/laksjdjf/Batch-Condition-ComfyUI", "files": [ "https://github.com/laksjdjf/Batch-Condition-ComfyUI" @@ -1819,9 +2142,20 @@ "install_type": "git-clone", "description": "Nodes:CLIP Text Encode (Batch), String Input, Batch String" }, + { + "author": "laksjdjf", + "title": "ComfyUI-Imatrix", + "reference": "https://github.com/laksjdjf/ComfyUI-Imatrix", + "files": [ + "https://github.com/laksjdjf/ComfyUI-Imatrix" + ], + "install_type": "git-clone", + "description": "This is an experimental node for generating an *imatrix* file to reduce quantization errors in GGUF files used with ComfyUI-GGUF." + }, { "author": "alsritter", "title": "asymmetric-tiling-comfyui", + "id": "asymmetric", "reference": "https://github.com/alsritter/asymmetric-tiling-comfyui", "files": [ "https://github.com/alsritter/asymmetric-tiling-comfyui" @@ -1832,6 +2166,7 @@ { "author": "meap158", "title": "GPU temperature protection", + "id": "gputemp", "reference": "https://github.com/meap158/ComfyUI-GPU-temperature-protection", "files": [ "https://github.com/meap158/ComfyUI-GPU-temperature-protection" @@ -1842,6 +2177,7 @@ { "author": "meap158", "title": "ComfyUI-Prompt-Expansion", + "id": "promtp-expansion", "reference": "https://github.com/meap158/ComfyUI-Prompt-Expansion", "files": [ "https://github.com/meap158/ComfyUI-Prompt-Expansion" @@ -1852,6 +2188,7 @@ { "author": "meap158", "title": "ComfyUI-Background-Replacement", + "id": "bg-replacement", "reference": "https://github.com/meap158/ComfyUI-Background-Replacement", "files": [ "https://github.com/meap158/ComfyUI-Background-Replacement" @@ -1862,6 +2199,7 @@ { "author": "TeaCrab", "title": "ComfyUI-TeaNodes", + "id": "teanodes", "reference": "https://github.com/TeaCrab/ComfyUI-TeaNodes", "files": [ "https://github.com/TeaCrab/ComfyUI-TeaNodes" @@ -1879,19 +2217,31 @@ "install_type": "git-clone", "description": "Based off of: [a/Birch-san/diffusers-play/approx_vae](https://github.com/Birch-san/diffusers-play/tree/main/approx_vae). This ComfyUI node allows you to quickly preview SDXL 1.0 latents." }, + { + "author": "nagolinc", + "title": "comfyui_openai_node", + "reference": "https://github.com/nagolinc/comfyui_openai_node", + "files": [ + "https://github.com/nagolinc/comfyui_openai_node" + ], + "install_type": "git-clone", + "description": "This provides a single node openai > Open AI query node\nthat takes a system prompt and user message and sends them to chatGPT 3.5\nNote, you MUST have an OPEN AI API key stored in the environment variable OPENAI_API_KEY in order for this to work." + }, { "author": "bradsec", "title": "ResolutionSelector for ComfyUI", + "id": "resolution-selector", "reference": "https://github.com/bradsec/ComfyUI_ResolutionSelector", "files": [ "https://github.com/bradsec/ComfyUI_ResolutionSelector" ], "install_type": "git-clone", - "description": "Nodes:ResolutionSelector" + "description": "A custom node for Stable Diffusion ComfyUI to enable easy selection of image resolutions for SDXL SD15 SD21" }, { "author": "kohya-ss", "title": "ControlNet-LLLite-ComfyUI", + "id": "lllite", "reference": "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI", "files": [ "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI" @@ -1902,6 +2252,7 @@ { "author": "jjkramhoeft", "title": "ComfyUI-Jjk-Nodes", + "id": "jjk", "reference": "https://github.com/jjkramhoeft/ComfyUI-Jjk-Nodes", "files": [ "https://github.com/jjkramhoeft/ComfyUI-Jjk-Nodes" @@ -1912,6 +2263,7 @@ { "author": "dagthomas", "title": "SDXL Auto Prompter", + "id": "autoprompt", "reference": "https://github.com/dagthomas/comfyui_dagthomas", "files": [ "https://github.com/dagthomas/comfyui_dagthomas" @@ -1922,6 +2274,7 @@ { "author": "marhensa", "title": "Recommended Resolution Calculator", + "id": "resoultion-calc", "reference": "https://github.com/marhensa/sdxl-recommended-res-calc", "files": [ "https://github.com/marhensa/sdxl-recommended-res-calc" @@ -1932,6 +2285,7 @@ { "author": "Nuked", "title": "ComfyUI-N-Nodes", + "id": "nnodes", "reference": "https://github.com/Nuked88/ComfyUI-N-Nodes", "files": [ "https://github.com/Nuked88/ComfyUI-N-Nodes" @@ -1942,6 +2296,7 @@ { "author": "Nuked", "title": "ComfyUI-N-Sidebar", + "id": "nsidebar", "reference": "https://github.com/Nuked88/ComfyUI-N-Sidebar", "files": [ "https://github.com/Nuked88/ComfyUI-N-Sidebar" @@ -1952,6 +2307,7 @@ { "author": "richinsley", "title": "Comfy-LFO", + "id": "lfo", "reference": "https://github.com/richinsley/Comfy-LFO", "files": [ "https://github.com/richinsley/Comfy-LFO" @@ -1962,6 +2318,7 @@ { "author": "Beinsezii", "title": "bsz-cui-extras", + "id": "bsz", "reference": "https://github.com/Beinsezii/bsz-cui-extras", "files": [ "https://github.com/Beinsezii/bsz-cui-extras" @@ -1972,26 +2329,29 @@ { "author": "youyegit", "title": "tdxh_node_comfyui", + "id": "tdxh", "reference": "https://github.com/youyegit/tdxh_node_comfyui", "files": [ "https://github.com/youyegit/tdxh_node_comfyui" ], "install_type": "git-clone", - "description": "Nodes:TdxhImageToSize, TdxhImageToSizeAdvanced, TdxhLoraLoader, TdxhIntInput, TdxhFloatInput, TdxhStringInput. Some nodes for stable diffusion comfyui. Sometimes it helps conveniently to use less nodes for doing the same things." + "description": "Add Switch on nodes, Make nodes amount small! It helps conveniently to use less nodes for doing the same things." }, { "author": "Sxela", "title": "ComfyWarp", + "id": "comfywarp", "reference": "https://github.com/Sxela/ComfyWarp", "files": [ "https://github.com/Sxela/ComfyWarp" ], "install_type": "git-clone", - "description": "Nodes:LoadFrameSequence, LoadFrame" + "description": "WarpFusion workflow wrapper for ComfyUI" }, { "author": "skfoo", "title": "ComfyUI-Coziness", + "id": "coziness", "reference": "https://github.com/skfoo/ComfyUI-Coziness", "files": [ "https://github.com/skfoo/ComfyUI-Coziness" @@ -2002,6 +2362,7 @@ { "author": "YOUR-WORST-TACO", "title": "ComfyUI-TacoNodes", + "id": "taco", "reference": "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes", "files": [ "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes" @@ -2012,6 +2373,7 @@ { "author": "Lerc", "title": "Canvas Tab", + "id": "canvastab", "reference": "https://github.com/Lerc/canvas_tab", "files": [ "https://github.com/Lerc/canvas_tab" @@ -2022,6 +2384,7 @@ { "author": "Ttl", "title": "ComfyUI Neural Network Latent Upscale", + "id": "nnlatent", "reference": "https://github.com/Ttl/ComfyUi_NNLatentUpscale", "files": [ "https://github.com/Ttl/ComfyUi_NNLatentUpscale" @@ -2033,6 +2396,7 @@ { "author": "spro", "title": "Latent Mirror node for ComfyUI", + "id": "latentmirror", "reference": "https://github.com/spro/comfyui-mirror", "files": [ "https://github.com/spro/comfyui-mirror" @@ -2043,6 +2407,7 @@ { "author": "Tropfchen", "title": "Embedding Picker", + "id": "embedding-picker", "reference": "https://github.com/Tropfchen/ComfyUI-Embedding_Picker", "files": [ "https://github.com/Tropfchen/ComfyUI-Embedding_Picker" @@ -2053,26 +2418,29 @@ { "author": "Acly", "title": "ComfyUI Nodes for External Tooling", + "id": "external-tooling", "reference": "https://github.com/Acly/comfyui-tooling-nodes", "files": [ "https://github.com/Acly/comfyui-tooling-nodes" ], "install_type": "git-clone", - "description": "Nodes: Load Image (Base64), Load Mask (Base64), Send Image (WebSocket), Crop Image, Apply Mask to Image. Provides nodes geared towards using ComfyUI as a backend for external tools.\nNOTE: This extension is necessary when using an external tool like [comfyui-capture-inference](https://github.com/minux302/comfyui-capture-inference)." + "description": "Provides nodes and server API extensions geared towards using ComfyUI as a backend for external tools." }, { "author": "Acly", "title": "ComfyUI Inpaint Nodes", + "id": "inpaint-nodes", "reference": "https://github.com/Acly/comfyui-inpaint-nodes", "files": [ "https://github.com/Acly/comfyui-inpaint-nodes" ], "install_type": "git-clone", - "description": "Experimental nodes for better inpainting with ComfyUI. Adds two nodes which allow using [a/Fooocus](https://github.com/Acly/comfyui-inpaint-nodes) inpaint model. It's a small and flexible patch which can be applied to any SDXL checkpoint and will transform it into an inpaint model. This model can then be used like other inpaint models, and provides the same benefits. [a/Read more](https://github.com/lllyasviel/Fooocus/discussions/414)" + "description": "Nodes for better inpainting with ComfyUI. Adds various ways to pre-process inpaint areas. Supports the Fooocus inpaint model, a small and flexible patch which can be applied to any SDXL checkpoint and will improve consistency when generating masked areas." }, { "author": "picturesonpictures", "title": "comfy_PoP", + "id": "pop", "reference": "https://github.com/picturesonpictures/comfy_PoP", "files": ["https://github.com/picturesonpictures/comfy_PoP"], "install_type": "git-clone", @@ -2081,6 +2449,7 @@ { "author": "Dream Project", "title": "Dream Project Animation Nodes", + "id": "dream-anime", "reference": "https://github.com/alt-key-project/comfyui-dream-project", "files": [ "https://github.com/alt-key-project/comfyui-dream-project" @@ -2091,6 +2460,7 @@ { "author": "Dream Project", "title": "Dream Video Batches", + "id": "dream-video", "reference": "https://github.com/alt-key-project/comfyui-dream-video-batches", "files": [ "https://github.com/alt-key-project/comfyui-dream-video-batches" @@ -2101,6 +2471,7 @@ { "author": "seanlynch", "title": "ComfyUI Optical Flow", + "id": "optical-flow", "reference": "https://github.com/seanlynch/comfyui-optical-flow", "files": [ "https://github.com/seanlynch/comfyui-optical-flow" @@ -2111,9 +2482,10 @@ { "author": "ealkanat", "title": "ComfyUI Easy Padding", - "reference": "https://github.com/ealkanat/comfyui_easy_padding", + "id": "easy-padding", + "reference": "https://github.com/ealkanat/comfyui-easy-padding", "files": [ - "https://github.com/ealkanat/comfyui_easy_padding" + "https://github.com/ealkanat/comfyui-easy-padding" ], "install_type": "git-clone", "description": "ComfyUI Easy Padding is a simple custom ComfyUI node that helps you to add padding to images on ComfyUI." @@ -2121,6 +2493,7 @@ { "author": "ArtBot2023", "title": "Character Face Swap", + "id": "char-faceswap", "reference": "https://github.com/ArtBot2023/CharacterFaceSwap", "files": [ "https://github.com/ArtBot2023/CharacterFaceSwap" @@ -2131,6 +2504,7 @@ { "author": "mav-rik", "title": "Facerestore CF (Code Former)", + "id": "face-cf", "reference": "https://github.com/mav-rik/facerestore_cf", "files": [ "https://github.com/mav-rik/facerestore_cf" @@ -2141,6 +2515,7 @@ { "author": "braintacles", "title": "braintacles-nodes", + "id": "braintacles", "reference": "https://github.com/braintacles/braintacles-comfyui-nodes", "files": [ "https://github.com/braintacles/braintacles-comfyui-nodes" @@ -2151,6 +2526,7 @@ { "author": "hayden-fr", "title": "ComfyUI-Model-Manager", + "id": "modelmanager", "reference": "https://github.com/hayden-fr/ComfyUI-Model-Manager", "files": [ "https://github.com/hayden-fr/ComfyUI-Model-Manager" @@ -2158,19 +2534,10 @@ "install_type": "git-clone", "description": "Manage models: browsing, download and delete." }, - { - "author": "hayden-fr", - "title": "ComfyUI-Image-Browsing", - "reference": "https://github.com/hayden-fr/ComfyUI-Image-Browsing", - "files": [ - "https://github.com/hayden-fr/ComfyUI-Image-Browsing" - ], - "install_type": "git-clone", - "description": "Image Browsing: browsing, download and delete." - }, { "author": "ali1234", "title": "comfyui-job-iterator", + "id": "job-iterator", "reference": "https://github.com/ali1234/comfyui-job-iterator", "files": [ "https://github.com/ali1234/comfyui-job-iterator" @@ -2181,6 +2548,7 @@ { "author": "jmkl", "title": "ComfyUI Ricing", + "id": "ricing", "reference": "https://github.com/jmkl/ComfyUI-ricing", "files": [ "https://github.com/jmkl/ComfyUI-ricing" @@ -2191,6 +2559,7 @@ { "author": "budihartono", "title": "Otonx's Custom Nodes", + "id": "otonx", "reference": "https://github.com/budihartono/comfyui_otonx_nodes", "files": [ "https://github.com/budihartono/comfyui_otonx_nodes" @@ -2198,9 +2567,21 @@ "install_type": "git-clone", "description": "Nodes: OTX Multiple Values, OTX KSampler Feeder. This extension provides custom nodes for ComfyUI created for personal projects. Made available for reference. Nodes may be updated or changed intermittently or not at all. Review & test before use." }, + { + "author": "budihartono", + "title": "CAS Aspect Ratio Presets Node for ComfyUI", + "id": "comfyui-aspect-ratio-presets", + "reference": "https://github.com/budihartono/comfyui-aspect-ratio-presets", + "files": [ + "https://github.com/budihartono/comfyui-aspect-ratio-presets" + ], + "install_type": "git-clone", + "description": "Quickly create empty latents in common resolutions and aspect ratios for SD 1.5, SDXL, Flux, Chroma, and HiDream. Choose from curated presets or generate by axis and aspect ratio. Appears in the 'latent' node group." + }, { "author": "ramyma", "title": "A8R8 ComfyUI Nodes", + "id": "a8r8", "reference": "https://github.com/ramyma/A8R8_ComfyUI_nodes", "files": [ "https://github.com/ramyma/A8R8_ComfyUI_nodes" @@ -2211,6 +2592,7 @@ { "author": "spinagon", "title": "Seamless tiling Node for ComfyUI", + "id": "seamless", "reference": "https://github.com/spinagon/ComfyUI-seamless-tiling", "files": [ "https://github.com/spinagon/ComfyUI-seamless-tiling" @@ -2221,16 +2603,28 @@ { "author": "BiffMunky", "title": "Endless ️🌊✨ Nodes", + "id": "endless", "reference": "https://github.com/tusharbhutt/Endless-Nodes", "files": [ "https://github.com/tusharbhutt/Endless-Nodes" ], "install_type": "git-clone", - "description": "A small set of nodes I created for various numerical and text inputs. Features image saver with ability to have JSON saved to separate folder, parameter collection nodes, two aesthetic scoring models, switches for text and numbers, and conversion of string to numeric and vice versa." + "description": "A small set of nodes I created for myself. Features multiple simultaneous prompts in batches, an image saver with ability to have JSON saved to separate folder, image analysis nodes, switches for text and numbers, and more." + }, + { + "author": "BiffMunky", + "title": "Endless 🌊✨ Buttons", + "reference": "https://github.com/tusharbhutt/Endless-Buttons", + "files": [ + "https://github.com/tusharbhutt/Endless-Buttons" + ], + "install_type": "git-clone", + "description": "A small set of JavaScript files I created for myself. The scripts provide Quality of Life enhancements to the ComfyUI interface, such as changing fonts and font sizes." }, { "author": "spacepxl", "title": "ComfyUI-HQ-Image-Save", + "id": "hq-image-save", "reference": "https://github.com/spacepxl/ComfyUI-HQ-Image-Save", "files": [ "https://github.com/spacepxl/ComfyUI-HQ-Image-Save" @@ -2241,6 +2635,7 @@ { "author": "spacepxl", "title": "ComfyUI-Image-Filters", + "id": "image-fitlers", "reference": "https://github.com/spacepxl/ComfyUI-Image-Filters", "files": [ "https://github.com/spacepxl/ComfyUI-Image-Filters" @@ -2251,6 +2646,7 @@ { "author": "spacepxl", "title": "ComfyUI-RAVE", + "id": "rave", "reference": "https://github.com/spacepxl/ComfyUI-RAVE", "files": [ "https://github.com/spacepxl/ComfyUI-RAVE" @@ -2258,9 +2654,41 @@ "install_type": "git-clone", "description": "Unofficial ComfyUI implementation of [a/RAVE](https://rave-video.github.io/)" }, + { + "author": "spacepxl", + "title": "ComfyUI-StyleGan", + "id": "stylegan", + "reference": "https://github.com/spacepxl/ComfyUI-StyleGan", + "files": [ + "https://github.com/spacepxl/ComfyUI-StyleGan" + ], + "install_type": "git-clone", + "description": "Basic support for StyleGAN2 and StyleGAN3 models." + }, + { + "author": "spacepxl", + "title": "ComfyUI-Depth-Pro", + "reference": "https://github.com/spacepxl/ComfyUI-Depth-Pro", + "files": [ + "https://github.com/spacepxl/ComfyUI-Depth-Pro" + ], + "install_type": "git-clone", + "description": "Based on [a/https://github.com/apple/ml-depth-pro](https://github.com/apple/ml-depth-pro)" + }, + { + "author": "spacepxl", + "title": "ComfyUI-LossTesting", + "reference": "https://github.com/spacepxl/ComfyUI-LossTesting", + "files": [ + "https://github.com/spacepxl/ComfyUI-LossTesting" + ], + "install_type": "git-clone", + "description": "Basic utility for testing diffusion model loss across the timestep schedule. Should work with any native models that use ksampler. This could be used for comparing models, testing captions on an image, etc." + }, { "author": "PTA", "title": "auto nodes layout", + "id": "autolayout", "reference": "https://github.com/phineas-pta/comfyui-auto-nodes-layout", "files": [ "https://github.com/phineas-pta/comfyui-auto-nodes-layout" @@ -2271,26 +2699,18 @@ { "author": "receyuki", "title": "SD Prompt Reader", + "id": "sdpromptreader", "reference": "https://github.com/receyuki/comfyui-prompt-reader-node", "files": [ "https://github.com/receyuki/comfyui-prompt-reader-node" ], "install_type": "git-clone", - "description": "ComfyUI node version of the SD Prompt Reader." - }, - { - "author": "rklaffehn", - "title": "rk-comfy-nodes", - "reference": "https://github.com/rklaffehn/rk-comfy-nodes", - "files": [ - "https://github.com/rklaffehn/rk-comfy-nodes" - ], - "install_type": "git-clone", - "description": "Nodes: RK_CivitAIMetaChecker, RK_CivitAIAddHashes." + "description": "The ultimate solution for managing image metadata and multi-tool compatibility. ComfyUI node version of the SD Prompt Reader." }, { "author": "cubiq", "title": "ComfyUI Essentials", + "id": "essentials", "reference": "https://github.com/cubiq/ComfyUI_essentials", "files": [ "https://github.com/cubiq/ComfyUI_essentials" @@ -2301,6 +2721,7 @@ { "author": "Clybius", "title": "ComfyUI-Latent-Modifiers", + "id": "latent-modifier", "reference": "https://github.com/Clybius/ComfyUI-Latent-Modifiers", "files": [ "https://github.com/Clybius/ComfyUI-Latent-Modifiers" @@ -2311,6 +2732,7 @@ { "author": "Clybius", "title": "ComfyUI Extra Samplers", + "id": "extra-samplers", "reference": "https://github.com/Clybius/ComfyUI-Extra-Samplers", "files": [ "https://github.com/Clybius/ComfyUI-Extra-Samplers" @@ -2318,19 +2740,31 @@ "install_type": "git-clone", "description": "Nodes: SamplerCustomNoise, SamplerCustomNoiseDuo, SamplerCustomModelMixtureDuo, SamplerRES_Momentumized, SamplerDPMPP_DualSDE_Momentumized, SamplerCLYB_4M_SDE_Momentumized, SamplerTTM, SamplerLCMCustom\nThis extension provides various custom samplers not offered by the default nodes in ComfyUI." }, + { + "author": "Clybius", + "title": "ComfyUI-ClybsChromaNodes", + "reference": "https://github.com/Clybius/ComfyUI-ClybsChromaNodes", + "files": [ + "https://github.com/Clybius/ComfyUI-ClybsChromaNodes" + ], + "install_type": "git-clone", + "description": "A small collection of nodes intended for use with Lodestone Rock's Chroma model, for ComfyUI." + }, { "author": "mcmonkeyprojects", - "title": "Stable Diffusion Dynamic Thresholding (CFG Scale Fix)", + "title": "Dynamic Thresholding", + "id": "dynamic-thresholding", "reference": "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding", "files": [ "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding" ], "install_type": "git-clone", - "description": "Extension for StableSwarmUI, ComfyUI, and AUTOMATIC1111 Stable Diffusion WebUI that enables a way to use higher CFG Scales without color issues. This works by clamping latents between steps." + "description": "Adds nodes for Dynamic Thresholding, CFG scheduling, and related techniques." }, { "author": "Tropfchen", "title": "YARS: Yet Another Resolution Selector", + "id": "yars", "reference": "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector", "files": [ "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector" @@ -2340,27 +2774,30 @@ }, { "author": "chrisgoringe", - "title": "Variation seeds", - "reference": "https://github.com/chrisgoringe/cg-noise", + "title": "Noise variation and batch noise tools", + "id": "cg-noisetools", + "reference": "https://github.com/chrisgoringe/cg-noisetools", "files": [ - "https://github.com/chrisgoringe/cg-noise" + "https://github.com/chrisgoringe/cg-noisetools" ], "install_type": "git-clone", - "description": "Adds KSampler custom nodes with variation seed and variation strength." + "description": "Nodes to create small variations on noise, to shape noise, and to control noise in batches. Replaces the old 'variation-seed' nodes." }, { "author": "chrisgoringe", - "title": "Image chooser", - "reference": "https://github.com/chrisgoringe/cg-image-picker", + "title": "Image Filter", + "id": "image-filter", + "reference": "https://github.com/chrisgoringe/cg-image-filter", "files": [ - "https://github.com/chrisgoringe/cg-image-picker" + "https://github.com/chrisgoringe/cg-image-filter" ], "install_type": "git-clone", - "description": "A custom node that pauses the flow while you choose which image (or latent) to pass on to the rest of the workflow." + "description": "A set of custom nodes that pause the flow to allow you to pick images, edit parameters, set masks etc.." }, { "author": "chrisgoringe", "title": "Use Everywhere (UE Nodes)", + "id": "ue", "reference": "https://github.com/chrisgoringe/cg-use-everywhere", "files": [ "https://github.com/chrisgoringe/cg-use-everywhere" @@ -2372,6 +2809,7 @@ { "author": "chrisgoringe", "title": "Prompt Info", + "id": "promptinfo", "reference": "https://github.com/chrisgoringe/cg-prompt-info", "files": [ "https://github.com/chrisgoringe/cg-prompt-info" @@ -2380,18 +2818,20 @@ "description": "Prompt Info" }, { - "author": "TGu-97", - "title": "TGu Utilities", - "reference": "https://github.com/TGu-97/ComfyUI-TGu-utils", + "author": "chrisgoringe", + "title": "Comfy Controller", + "id": "cg-comfycontroller", + "reference": "https://github.com/chrisgoringe/cg-controller", "files": [ - "https://github.com/TGu-97/ComfyUI-TGu-utils" + "https://github.com/chrisgoringe/cg-controller" ], "install_type": "git-clone", - "description": "Nodes: MPN Switch, MPN Reroute, PN Switch. This is a set of custom nodes for ComfyUI. Mainly focus on control switches." + "description": "Quickly and easily build a GUI on top of your workflow. Gather just the nodes that you want to see, with no spaghetti, onto controller panels, leaving your workflow untouched in the background." }, { "author": "seanlynch", "title": "SRL's nodes", + "id": "srl", "reference": "https://github.com/seanlynch/srl-nodes", "files": [ "https://github.com/seanlynch/srl-nodes" @@ -2412,6 +2852,7 @@ { "author": "kijai", "title": "KJNodes for ComfyUI", + "id": "kjnodes", "reference": "https://github.com/kijai/ComfyUI-KJNodes", "files": [ "https://github.com/kijai/ComfyUI-KJNodes" @@ -2422,6 +2863,7 @@ { "author": "kijai", "title": "ComfyUI-CCSR", + "id": "ccsr", "reference": "https://github.com/kijai/ComfyUI-CCSR", "files": [ "https://github.com/kijai/ComfyUI-CCSR" @@ -2432,6 +2874,7 @@ { "author": "kijai", "title": "ComfyUI-SVD", + "id": "kijai-svd", "reference": "https://github.com/kijai/ComfyUI-SVD", "files": [ "https://github.com/kijai/ComfyUI-SVD" @@ -2442,6 +2885,7 @@ { "author": "kijai", "title": "Marigold depth estimation in ComfyUI", + "id": "marigold", "reference": "https://github.com/kijai/ComfyUI-Marigold", "files": [ "https://github.com/kijai/ComfyUI-Marigold" @@ -2452,6 +2896,7 @@ { "author": "kijai", "title": "Geowizard depth and normal estimation in ComfyUI", + "id": "geowizard", "reference": "https://github.com/kijai/ComfyUI-Geowizard", "files": [ "https://github.com/kijai/ComfyUI-Geowizard" @@ -2462,6 +2907,7 @@ { "author": "kijai", "title": "ComfyUI-depth-fm", + "id": "depth-fm", "reference": "https://github.com/kijai/ComfyUI-depth-fm", "files": [ "https://github.com/kijai/ComfyUI-depth-fm" @@ -2472,6 +2918,7 @@ { "author": "kijai", "title": "ComfyUI-DDColor", + "id": "ddcolor-kijai", "reference": "https://github.com/kijai/ComfyUI-DDColor", "files": [ "https://github.com/kijai/ComfyUI-DDColor" @@ -2480,18 +2927,20 @@ "description": "Node to use [a/DDColor](https://github.com/piddnad/DDColor) in ComfyUI." }, { - "author": "Kijai", + "author": "kijai", "title": "Animatediff MotionLoRA Trainer", + "id": "motionlora-trainer", "reference": "https://github.com/kijai/ComfyUI-ADMotionDirector", "files": [ "https://github.com/kijai/ComfyUI-ADMotionDirector" - ], + ], "install_type": "git-clone", - "description": "This is a trainer for AnimateDiff MotionLoRAs, based on the implementation of MotionDirector by ExponentialML." + "description": "This is a trainer for AnimateDiff MotionLoRAs, based on the implementation of MotionDirector by ExponentialML.\nNOTE:[a/ADMotionDirector](https://github.com/ExponentialML/AnimateDiff-MotionDirector)" }, { "author": "kijai", "title": "ComfyUI-moondream", + "id": "moondream", "reference": "https://github.com/kijai/ComfyUI-moondream", "files": [ "https://github.com/kijai/ComfyUI-moondream" @@ -2502,6 +2951,7 @@ { "author": "kijai", "title": "ComfyUI-SUPIR", + "id": "supir", "reference": "https://github.com/kijai/ComfyUI-SUPIR", "files": [ "https://github.com/kijai/ComfyUI-SUPIR" @@ -2512,16 +2962,18 @@ { "author": "kijai", "title": "ComfyUI-DynamiCrafterWrapper", + "id": "dynamicrafter-kijai", "reference": "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper", "files": [ "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper" ], "install_type": "git-clone", - "description": "Wrapper nodes to use DynamiCrafter image2video and frame interpolation models in ComfyUI" + "description": "Wrapper nodes to use DynamiCrafter image2video and frame interpolation models in ComfyUI\nAnd this extension supports ToonCrafter as well" }, { "author": "kijai", "title": "ComfyUI-APISR", + "id": "apisr", "reference": "https://github.com/kijai/ComfyUI-APISR-KJ", "files": [ "https://github.com/kijai/ComfyUI-APISR-KJ" @@ -2532,6 +2984,7 @@ { "author": "kijai", "title": "DiffusionLight implementation for ComfyUI", + "id": "diffusionlight", "reference": "https://github.com/kijai/ComfyUI-DiffusionLight", "files": [ "https://github.com/kijai/ComfyUI-DiffusionLight" @@ -2569,9 +3022,273 @@ "install_type": "git-clone", "description": "ComfyUI wrapper nodes to use the Diffusers implementation of BrushNet" }, + { + "author": "kijai", + "title": "ComfyUI-IC-Light", + "id": "ic-light-kijai", + "reference": "https://github.com/kijai/ComfyUI-IC-Light", + "files": [ + "https://github.com/kijai/ComfyUI-IC-Light" + ], + "install_type": "git-clone", + "description": "ComfyUI native nodes for IC-Light" + }, + { + "author": "kijai", + "title": "ComfyUI-DepthAnythingV2", + "id": "depth-anything-v2", + "reference": "https://github.com/kijai/ComfyUI-DepthAnythingV2", + "files": [ + "https://github.com/kijai/ComfyUI-DepthAnythingV2" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/DepthAnythingV2](https://depth-anything-v2.github.io/)\nNOTE:Models autodownload to ComfyUI/models/depthanything from [a/https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main](https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main)" + }, + { + "author": "kijai", + "title": "ComfyUI-Florence2", + "id": "florence2-kijai", + "reference": "https://github.com/kijai/ComfyUI-Florence2", + "files": [ + "https://github.com/kijai/ComfyUI-Florence2" + ], + "preemptions":[ + "DownloadAndLoadFlorence2Lora", + "DownloadAndLoadFlorence2Model", + "Florence2ModelLoader", + "Florence2Run" + ], + "install_type": "git-clone", + "description": "Nodes to use Florence2 VLM for image vision tasks: object detection, captioning, segmentation and ocr" + }, + { + "author": "kijai", + "title": "ComfyUI-LuminaWrapper", + "id": "lumina", + "reference": "https://github.com/kijai/ComfyUI-LuminaWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-LuminaWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for Lumina models" + }, + { + "author": "kijai", + "title": "ComfyUI-MimicMotionWrapper", + "id": "mimicmotion-kijai", + "reference": "https://github.com/kijai/ComfyUI-MimicMotionWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-MimicMotionWrapper" + ], + "install_type": "git-clone", + "description": "Optimized wrapper nodes for MimicMotion: [a/https://github.com/tencent/MimicMotion](https://github.com/tencent/MimicMotion)" + }, + { + "author": "kijai", + "title": "ComfyUI-OpenDiTWrapper", + "id": "opendit-kijai", + "reference": "https://github.com/kijai/ComfyUI-OpenDiTWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-OpenDiTWrapper" + ], + "install_type": "git-clone", + "description": "Wrapper nodes for OpenDiT: [a/OpenDiT](https://github.com/NUS-HPC-AI-Lab/OpenDiT/), supports Open-Sora t2i and i2i" + }, + { + "author": "kijai", + "title": "ComfyUI-LivePortraitKJ", + "id": "liveportrait-kijai", + "reference": "https://github.com/kijai/ComfyUI-LivePortraitKJ", + "files": [ + "https://github.com/kijai/ComfyUI-LivePortraitKJ" + ], + "install_type": "git-clone", + "description": "Nodes for [a/LivePortrait](https://github.com/KwaiVGI/LivePortrait)" + }, + { + "author": "kijai", + "title": "ComfyUI-KwaiKolorsWrapper", + "id": "kwaikolors", + "reference": "https://github.com/kijai/ComfyUI-KwaiKolorsWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-KwaiKolorsWrapper" + ], + "install_type": "git-clone", + "description": "Rudimentary wrapper that runs [a/Kwai-Kolors](https://huggingface.co/Kwai-Kolors/Kolors) text2image pipeline using diffusers." + }, + { + "author": "kijai", + "title": "ComfyUI-segment-anything-2", + "id": "segment-anything-2", + "reference": "https://github.com/kijai/ComfyUI-segment-anything-2", + "files": [ + "https://github.com/kijai/ComfyUI-segment-anything-2" + ], + "preemptions":[ + "DownloadAndLoadSAM2Model", + "Florence2toCoordinates", + "Sam2AutoSegmentation", + "Sam2Segmentation", + "Sam2VideoSegmentation", + "Sam2VideoSegmentationAddPoints" + ], + "install_type": "git-clone", + "description": "Nodes to use [a/segment-anything-2](https://github.com/facebookresearch/segment-anything-2) for image or video segmentation." + }, + { + "author": "kijai", + "title": "ComfyUI nodes for ControlNext-SVD v2", + "reference": "https://github.com/kijai/ComfyUI-ControlNeXt-SVD", + "files": [ + "https://github.com/kijai/ComfyUI-ControlNeXt-SVD" + ], + "install_type": "git-clone", + "description": "These nodes include my wrapper for the original diffusers pipeline, as well as work in progress native ComfyUI implementation.\nFor the diffusers wrapper models should be downloaded automatically, for the native version you can get the unet [a/here](https://huggingface.co/Kijai/ControlNeXt-SVD-V2-Comfy/blob/main/controlnext-svd_v2-unet-fp16_converted.safetensors)." + }, + { + "author": "kijai", + "title": "ComfyUI Flux Trainer", + "reference": "https://github.com/kijai/ComfyUI-FluxTrainer", + "files": [ + "https://github.com/kijai/ComfyUI-FluxTrainer" + ], + "install_type": "git-clone", + "description": "Currently supports LoRA training, and untested full finetune with code from kohya's scripts: [a/https://github.com/kohya-ss/sd-scripts](https://github.com/kohya-ss/sd-scripts)" + }, + { + "author": "kijai", + "title": "ComfyUI CogVideoX Wrapper", + "reference": "https://github.com/kijai/ComfyUI-CogVideoXWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-CogVideoXWrapper" + ], + "install_type": "git-clone", + "description": "Diffusers wrapper for CogVideoX -models: [a/https://github.com/THUDM/CogVideo](https://github.com/THUDM/CogVideo)" + }, + { + "author": "kijai", + "title": "ComfyUI PyramidFlow Wrapper", + "reference": "https://github.com/kijai/ComfyUI-PyramidFlowWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-PyramidFlowWrapper" + ], + "install_type": "git-clone", + "description": "Wrapper for PyramidFlow -models: [a/https://github.com/jy0205/Pyramid-Flow](https://github.com/jy0205/Pyramid-Flow)" + }, + { + "author": "kijai", + "title": "ComfyUI Llava-OneVision", + "reference": "https://github.com/kijai/ComfyUI-LLaVA-OneVision", + "files": [ + "https://github.com/kijai/ComfyUI-LLaVA-OneVision" + ], + "install_type": "git-clone", + "description": "Nodes to use the OneVision LLaVA models: [a/https://github.com/LLaVA-VL/LLaVA-NeXT](https://github.com/LLaVA-VL/LLaVA-NeXT)" + }, + { + "author": "kijai", + "title": "ComfyUI wrapper nodes for LVCD", + "reference": "https://github.com/kijai/ComfyUI-LVCDWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-LVCDWrapper" + ], + "install_type": "git-clone", + "description": "Original repo: [a/https://github.com/luckyhzt/LVCD](https://github.com/luckyhzt/LVCD)" + }, + { + "author": "kijai", + "title": "ComfyUI-Lotus", + "reference": "https://github.com/kijai/ComfyUI-Lotus", + "files": [ + "https://github.com/kijai/ComfyUI-Lotus" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use Lotus depth/normal prediction.\nNOTE:The necessary models can be downloaded from ComfyUI-Manager." + }, + { + "author": "kijai", + "title": "ComfyUI-MoGe", + "reference": "https://github.com/kijai/ComfyUI-MoGe", + "files": [ + "https://github.com/kijai/ComfyUI-MoGe" + ], + "install_type": "git-clone", + "description": "NODES:(Down)load MoGe Model, MoGe Process" + }, + { + "author": "kijai", + "title": "ComfyUI-GIMM-VFI", + "reference": "https://github.com/kijai/ComfyUI-GIMM-VFI", + "files": [ + "https://github.com/kijai/ComfyUI-GIMM-VFI" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use GIMM-VFI frame interpolation" + }, + { + "author": "kijai", + "title": "ComfyUI-HunyuanVideoWrapper", + "reference": "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI diffusers wrapper nodes for [a/HunyuanVideo](https://github.com/Tencent/HunyuanVideo)" + }, + { + "author": "kijai", + "title": "ComfyUI-StableXWrapper", + "reference": "https://github.com/kijai/ComfyUI-StableXWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-StableXWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper for [a/StableX normal](https://github.com/Stable-X/StableNormal)/[a/delight](https://github.com/Stable-X/StableDelight) models" + }, + { + "author": "kijai", + "title": "ComfyUI-HFRemoteVae", + "reference": "https://github.com/kijai/ComfyUI-HFRemoteVae", + "files": [ + "https://github.com/kijai/ComfyUI-HFRemoteVae" + ], + "install_type": "git-clone", + "description": "This node allows using Hugginface remote server for latent decoding. Currently supported models: SD, SDXL, Flux, HunyuanVideo" + }, + { + "author": "kijai", + "title": "ComfyUI-LBMWrapper", + "reference": "https://github.com/kijai/ComfyUI-LBMWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-LBMWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for [a/Latent Bridge Matching (LBM)](https://github.com/gojasper/LBM)" + }, + { + "author": "kijai", + "title": "ComfyUI-WanVideoWrapper", + "reference": "https://github.com/kijai/ComfyUI-WanVideoWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-WanVideoWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for [a/WanVideo](https://github.com/Wan-Video/Wan2.1) and related models." + }, + { + "author": "kijai", + "title": "ComfyUI-MelBandRoFormer", + "reference": "https://github.com/kijai/ComfyUI-MelBandRoFormer", + "files": [ + "https://github.com/kijai/ComfyUI-MelBandRoFormer" + ], + "install_type": "git-clone", + "description": "Mel-Band RoFormer for Music Source Separation" + }, { "author": "hhhzzyang", "title": "Comfyui-Lama", + "id": "lama", "reference": "https://github.com/hhhzzyang/Comfyui_Lama", "files": [ "https://github.com/hhhzzyang/Comfyui_Lama" @@ -2580,18 +3297,31 @@ "description": "Nodes: LamaaModelLoad, LamaApply, YamlConfigLoader. a costumer node is realized to remove anything/inpainting anything from a picture by mask inpainting.[w/WARN:This extension includes the entire model, which can result in a very long initial installation time, and there may be some compatibility issues with older dependencies and ComfyUI.]" }, { - "author": "thedyze", + "author": "audioscavenger", "title": "Save Image Extended for ComfyUI", - "reference": "https://github.com/thedyze/save-image-extended-comfyui", + "id": "save-image-extended", + "reference": "https://github.com/audioscavenger/save-image-extended-comfyui", "files": [ - "https://github.com/thedyze/save-image-extended-comfyui" + "https://github.com/audioscavenger/save-image-extended-comfyui" ], "install_type": "git-clone", - "description": "Customize the information saved in file- and folder names. Use the values of sampler parameters as part of file or folder names. Save your positive & negative prompt as entries in a JSON (text) file, in each folder." + "description": "Save as AVIF, WebP, JPEG, customize the folder, sub-folders, and filenames of your images!" + }, + { + "author": "audioscavenger", + "title": "ComfyUI-Thumbnails", + "id": "thumbnails", + "reference": "https://github.com/audioscavenger/ComfyUI-Thumbnails", + "files": [ + "https://github.com/audioscavenger/ComfyUI-Thumbnails" + ], + "install_type": "git-clone", + "description": "Load Image thumbnails, delete images, browse input subfolders." }, { "author": "SOELexicon", "title": "ComfyUI-LexTools", + "id": "lextools", "reference": "https://github.com/SOELexicon/ComfyUI-LexTools", "files": [ "https://github.com/SOELexicon/ComfyUI-LexTools" @@ -2602,6 +3332,7 @@ { "author": "mikkel", "title": "ComfyUI - Text Overlay Plugin", + "id": "textoverlay-mikkel", "reference": "https://github.com/mikkel/ComfyUI-text-overlay", "files": [ "https://github.com/mikkel/ComfyUI-text-overlay" @@ -2612,6 +3343,7 @@ { "author": "avatechai", "title": "Avatar Graph", + "id": "avatar-graph", "reference": "https://github.com/avatechai/avatar-graph-comfyui", "files": [ "https://github.com/avatechai/avatar-graph-comfyui" @@ -2622,6 +3354,7 @@ { "author": "TRI3D-LC", "title": "tri3d-comfyui-nodes", + "id": "tri3d", "reference": "https://github.com/TRI3D-LC/tri3d-comfyui-nodes", "files": [ "https://github.com/TRI3D-LC/tri3d-comfyui-nodes" @@ -2629,9 +3362,21 @@ "install_type": "git-clone", "description": "Nodes: tri3d-extract-hand, tri3d-fuzzification, tri3d-position-hands, tri3d-atr-parse." }, + { + "author": "TRI3D-LC", + "title": "ComfyUI-MiroBoard", + "id": "miroboard", + "reference": "https://github.com/TRI3D-LC/ComfyUI-MiroBoard", + "files": [ + "https://github.com/TRI3D-LC/ComfyUI-MiroBoard" + ], + "install_type": "git-clone", + "description": "Nodes: add-image-miro-board." + }, { "author": "storyicon", "title": "segment anything", + "id": "sam", "reference": "https://github.com/storyicon/comfyui_segment_anything", "files": [ "https://github.com/storyicon/comfyui_segment_anything" @@ -2639,9 +3384,21 @@ "install_type": "git-clone", "description": "Based on GroundingDino and SAM, use semantic strings to segment any element in an image. The comfyui version of sd-webui-segment-anything." }, + { + "author": "storyicon", + "title": "ComfyUI MuseV Evolved", + "id": "musev-evolved", + "reference": "https://github.com/storyicon/comfyui_musev_evolved", + "files": [ + "https://github.com/storyicon/comfyui_musev_evolved" + ], + "install_type": "git-clone", + "description": "Nodes:MuseVImg2Vid (comfyui_musev_evolved)\nNOTE: Download [a/MuseV](https://huggingface.co/TMElyralab/MuseV) to ComfyUI/models/diffusers" + }, { "author": "a1lazydog", "title": "ComfyUI-AudioScheduler", + "id": "audioscheduler", "reference": "https://github.com/a1lazydog/ComfyUI-AudioScheduler", "files": [ "https://github.com/a1lazydog/ComfyUI-AudioScheduler" @@ -2662,6 +3419,7 @@ { "author": "chrish-slingshot", "title": "CrasH Utils", + "id": "crash", "reference": "https://github.com/chrish-slingshot/CrasHUtils", "files": [ "https://github.com/chrish-slingshot/CrasHUtils" @@ -2672,6 +3430,7 @@ { "author": "spinagon", "title": "ComfyUI-seam-carving", + "id": "seamcarving", "reference": "https://github.com/spinagon/ComfyUI-seam-carving", "files": [ "https://github.com/spinagon/ComfyUI-seam-carving" @@ -2682,6 +3441,7 @@ { "author": "YMC", "title": "ymc-node-suite-comfyui", + "id": "ymc-suite", "reference": "https://github.com/YMC-GitHub/ymc-node-suite-comfyui", "files": [ "https://github.com/YMC-GitHub/ymc-node-suite-comfyui" @@ -2689,9 +3449,40 @@ "install_type": "git-clone", "description": "ymc 's nodes for comfyui. This extension is composed of nodes that provide various utility features such as text, region, and I/O." }, + { + "author": "YMC", + "title": "ymc_node_joy", + "reference": "https://github.com/YMC-GitHub/ymc_node_joy", + "files": [ + "https://github.com/YMC-GitHub/ymc_node_joy" + ], + "install_type": "git-clone", + "description": "comfyui custom nodes to caption image with joy" + }, + { + "author": "YMC", + "title": "ymc-node-as-x-type", + "reference": "https://github.com/YMC-GitHub/ymc-node-as-x-type", + "files": [ + "https://github.com/YMC-GitHub/ymc-node-as-x-type" + ], + "install_type": "git-clone", + "description": "some comfyui custom nodes to set it as known type" + }, + { + "author": "YMC", + "title": "comfyui_node_ymc_effect_shatter", + "reference": "https://github.com/YMC-GitHub/comfyui_node_ymc_effect_shatter", + "files": [ + "https://github.com/YMC-GitHub/comfyui_node_ymc_effect_shatter" + ], + "install_type": "git-clone", + "description": "some comfyui custom nodes to make effect shatter" + }, { "author": "chibiace", "title": "ComfyUI-Chibi-Nodes", + "id": "chibi", "reference": "https://github.com/chibiace/ComfyUI-Chibi-Nodes", "files": [ "https://github.com/chibiace/ComfyUI-Chibi-Nodes" @@ -2702,6 +3493,7 @@ { "author": "DigitalIO", "title": "ComfyUI-stable-wildcards", + "id": "stable-wildcards", "reference": "https://github.com/DigitalIO/ComfyUI-stable-wildcards", "files": [ "https://github.com/DigitalIO/ComfyUI-stable-wildcards" @@ -2712,6 +3504,7 @@ { "author": "THtianhao", "title": "ComfyUI-Portrait-Maker", + "id": "portrait-maker", "reference": "https://github.com/THtianhao/ComfyUI-Portrait-Maker", "files": [ "https://github.com/THtianhao/ComfyUI-Portrait-Maker" @@ -2722,6 +3515,7 @@ { "author": "THtianhao", "title": "ComfyUI-FaceChain", + "id": "facechain", "reference": "https://github.com/THtianhao/ComfyUI-FaceChain", "files": [ "https://github.com/THtianhao/ComfyUI-FaceChain" @@ -2732,6 +3526,7 @@ { "author": "zer0TF", "title": "Cute Comfy", + "id": "cutecomfy", "reference": "https://github.com/zer0TF/cute-comfy", "files": [ "https://github.com/zer0TF/cute-comfy" @@ -2742,6 +3537,7 @@ { "author": "chflame163", "title": "ComfyUI_MSSpeech_TTS", + "id": "msspeech", "reference": "https://github.com/chflame163/ComfyUI_MSSpeech_TTS", "files": [ "https://github.com/chflame163/ComfyUI_MSSpeech_TTS" @@ -2752,6 +3548,7 @@ { "author": "chflame163", "title": "ComfyUI_WordCloud", + "id": "wordcloud", "reference": "https://github.com/chflame163/ComfyUI_WordCloud", "files": [ "https://github.com/chflame163/ComfyUI_WordCloud" @@ -2762,6 +3559,7 @@ { "author": "chflame163", "title": "ComfyUI Layer Style", + "id": "layerstyle", "reference": "https://github.com/chflame163/ComfyUI_LayerStyle", "files": [ "https://github.com/chflame163/ComfyUI_LayerStyle" @@ -2769,9 +3567,21 @@ "install_type": "git-clone", "description": "A set of nodes for ComfyUI it generate image like Adobe Photoshop's Layer Style. the Drop Shadow is first completed node, and follow-up work is in progress." }, + { + "author": "chflame163", + "title": "ComfyUI_LayerStyle_Advance", + "id": "comfyui_layerstyle_advance", + "reference": "https://github.com/chflame163/ComfyUI_LayerStyle_Advance", + "files": [ + "https://github.com/chflame163/ComfyUI_LayerStyle_Advance" + ], + "install_type": "git-clone", + "description": "The nodes detached from ComfyUI Layer Style are mainly those with complex requirements for dependency packages." + }, { "author": "chflame163", "title": "ComfyUI Face Similarity", + "id": "face-similarity", "reference": "https://github.com/chflame163/ComfyUI_FaceSimilarity", "files": [ "https://github.com/chflame163/ComfyUI_FaceSimilarity" @@ -2779,6 +3589,47 @@ "install_type": "git-clone", "description": "A custom node for ComfyUI. It compare two images to rate facial similarity." }, + { + "author": "chflame163", + "title": "ComfyUI_CatVTON_Wrapper", + "id": "catvton-wrapper", + "reference": "https://github.com/chflame163/ComfyUI_CatVTON_Wrapper", + "files": [ + "https://github.com/chflame163/ComfyUI_CatVTON_Wrapper" + ], + "install_type": "git-clone", + "description": "[a/CatVTON](https://github.com/Zheng-Chong/CatVTON) warpper for ComfyUI" + }, + { + "author": "chflame163", + "title": "ComfyUI_OmniGen_Wrapper", + "reference": "https://github.com/chflame163/ComfyUI_OmniGen_Wrapper", + "files": [ + "https://github.com/chflame163/ComfyUI_OmniGen_Wrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node of OmniGen project." + }, + { + "author": "chflame163", + "title": "ComfyUI_Janus_Wrapper", + "reference": "https://github.com/chflame163/ComfyUI_Janus_Wrapper", + "files": [ + "https://github.com/chflame163/ComfyUI_Janus_Wrapper" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [a/deepseek-ai/Janus](https://github.com/deepseek-ai/Janus) in ComfyUI." + }, + { + "author": "chflame163", + "title": "ComfyUI_CogView4_Wrapper", + "reference": "https://github.com/chflame163/ComfyUI_CogView4_Wrapper", + "files": [ + "https://github.com/chflame163/ComfyUI_CogView4_Wrapper" + ], + "install_type": "git-clone", + "description": "The unofficial implementation of CogView4 project in ComfyUI." + }, { "author": "drustan-hawk", "title": "primitive-types", @@ -2787,12 +3638,14 @@ "https://github.com/drustan-hawk/primitive-types" ], "install_type": "git-clone", - "description": "This repository contains typed primitives for ComfyUI. The motivation for these primitives is that the standard primitive node cannot be routed." + "description": "Small collection of typed primitive nodes." }, { "author": "shadowcz007", "title": "comfyui-mixlab-nodes", + "id": "mixlab", "reference": "https://github.com/shadowcz007/comfyui-mixlab-nodes", + "reference2": "https://github.com/MixLabPro/comfyui-mixlab-nodes", "files": [ "https://github.com/shadowcz007/comfyui-mixlab-nodes" ], @@ -2802,6 +3655,7 @@ { "author": "shadowcz007", "title": "comfyui-ultralytics-yolo", + "id": "yolo", "reference": "https://github.com/shadowcz007/comfyui-ultralytics-yolo", "files": [ "https://github.com/shadowcz007/comfyui-ultralytics-yolo" @@ -2812,6 +3666,7 @@ { "author": "shadowcz007", "title": "Consistency Decoder", + "id": "consistency-decoder", "reference": "https://github.com/shadowcz007/comfyui-consistency-decoder", "files": [ "https://github.com/shadowcz007/comfyui-consistency-decoder" @@ -2829,9 +3684,56 @@ "install_type": "git-clone", "description": "[a/ImageReward](https://github.com/THUDM/ImageReward): Human preference learning in text-to-image generation. This is a [a/paper](https://arxiv.org/abs/2304.05977) from NeurIPS 2023" }, + { + "author": "shadowcz007", + "title": "comfyui-sound-lab", + "id": "soundlab", + "reference": "https://github.com/shadowcz007/comfyui-sound-lab", + "reference2": "https://github.com/MixLabPro/comfyui-sound-lab", + "files": [ + "https://github.com/shadowcz007/comfyui-sound-lab" + ], + "install_type": "git-clone", + "description": "Nodes:Music Gen, Audio Play, Stable Audio" + }, + { + "author": "shadowcz007", + "title": "comfyui-edit-mask", + "id": "edit-mask", + "reference": "https://github.com/shadowcz007/comfyui-edit-mask", + "files": [ + "https://github.com/shadowcz007/comfyui-edit-mask" + ], + "install_type": "git-clone", + "description": "Nodes:Edit Mask" + }, + { + "author": "shadowcz007", + "title": "comfyui-liveportrait", + "id": "liveportrait", + "reference": "https://github.com/shadowcz007/comfyui-liveportrait", + "reference2": "https://github.com/MixLabPro/comfyui-liveportrait", + "files": [ + "https://github.com/shadowcz007/comfyui-liveportrait" + ], + "install_type": "git-clone", + "description": "The ComfyUI version of [a/LivePortrait](https://github.com/KwaiVGI/LivePortrait)." + }, + { + "author": "shadowcz007", + "title": "comfyui-try-on", + "reference": "https://github.com/shadowcz007/comfyui-try-on", + "reference2": "https://github.com/MixLabPro/comfyui-try-on", + "files": [ + "https://github.com/shadowcz007/comfyui-try-on" + ], + "install_type": "git-clone", + "description": "Virtual try-on for creating a personal brand wardrobe collection." + }, { "author": "ostris", "title": "Ostris Nodes ComfyUI", + "id": "ostris", "reference": "https://github.com/ostris/ostris_nodes_comfyui", "files": [ "https://github.com/ostris/ostris_nodes_comfyui" @@ -2840,9 +3742,21 @@ "nodename_pattern": "- Ostris$", "description": "This is a collection of custom nodes for ComfyUI that I made for some QOL. I will be adding much more advanced ones in the future once I get more familiar with the API." }, + { + "author": "ostris", + "title": "Flex.1 tools", + "reference": "https://github.com/ostris/ComfyUI-FlexTools", + "files": [ + "https://github.com/ostris/ComfyUI-FlexTools" + ], + "install_type": "git-clone", + "nodename_pattern": "- Ostris$", + "description": "Some tools to help with [a/Flex.1-alpha](https://huggingface.co/ostris/Flex.1-alpha) inference on Comfy UI." + }, { "author": "0xbitches", "title": "Latent Consistency Model for ComfyUI", + "id": "lcm", "reference": "https://github.com/0xbitches/ComfyUI-LCM", "files": [ "https://github.com/0xbitches/ComfyUI-LCM" @@ -2853,6 +3767,7 @@ { "author": "aszc-dev", "title": "Core ML Suite for ComfyUI", + "id": "coreml", "reference": "https://github.com/aszc-dev/ComfyUI-CoreMLSuite", "files": [ "https://github.com/aszc-dev/ComfyUI-CoreMLSuite" @@ -2863,9 +3778,10 @@ { "author": "taabata", "title": "Syrian Falcon Nodes", + "id": "syrian", "reference": "https://github.com/taabata/Comfy_Syrian_Falcon_Nodes", "files": [ - "https://github.com/taabata/Comfy_Syrian_Falcon_Nodes/raw/main/SyrianFalconNodes.py" + "https://raw.githubusercontent.com/taabata/Comfy_Syrian_Falcon_Nodes/main/SyrianFalconNodes.py" ], "install_type": "copy", "description": "Nodes:Prompt editing, Word as Image" @@ -2873,16 +3789,38 @@ { "author": "taabata", "title": "LCM_Inpaint-Outpaint_Comfy", - "reference": "https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy", + "id": "lcm-inpaint-outpaint", + "reference": "https://github.com/taabata/LCM_Inpaint_Outpaint_Comfy", "files": [ - "https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy" + "https://github.com/taabata/LCM_Inpaint_Outpaint_Comfy" ], "install_type": "git-clone", "description": "ComfyUI custom nodes for inpainting/outpainting using the new latent consistency model (LCM)" }, + { + "author": "taabata", + "title": "ComfyCanvas", + "reference": "https://github.com/taabata/ComfyCanvas", + "files": [ + "https://github.com/taabata/ComfyCanvas" + ], + "install_type": "git-clone", + "description": "Canvas to use with ComfyUI" + }, + { + "author": "taabata", + "title": "SANA_LOWVRAM", + "reference": "https://github.com/taabata/SANA_LOWVRAM", + "files": [ + "https://github.com/taabata/SANA_LOWVRAM" + ], + "install_type": "git-clone", + "description": "ComfyUI Diffusers wrapper nodes to run SANA models on low vram devices. Works on 2GB VRAM 12GB RAM laptop." + }, { "author": "noxinias", "title": "ComfyUI_NoxinNodes", + "id": "noxin", "reference": "https://github.com/noxinias/ComfyUI_NoxinNodes", "files": [ "https://github.com/noxinias/ComfyUI_NoxinNodes" @@ -2890,19 +3828,10 @@ "install_type": "git-clone", "description": "Nodes: Noxin Complete Chime, Noxin Scaled Resolutions, Load from Noxin Prompt Library, Save to Noxin Prompt Library" }, - { - "author": "apesplat", - "title": "ezXY scripts and nodes", - "reference": "https://github.com/GMapeSplat/ComfyUI_ezXY", - "files": [ - "https://github.com/GMapeSplat/ComfyUI_ezXY" - ], - "install_type": "git-clone", - "description": "Extensions/Patches: Enables linking float and integer inputs and ouputs. Values are automatically cast to the correct type and clamped to the correct range. Works with both builtin and custom nodes.[w/NOTE: This repo patches ComfyUI's validate_inputs and map_node_over_list functions while running. May break depending on your version of ComfyUI. Can be deactivated in config.yaml.]Nodes: A collection of nodes for facilitating the generation of XY plots. Capable of plotting changes over most primitive values." - }, { "author": "kinfolk0117", "title": "SimpleTiles", + "id": "simpletiles", "reference": "https://github.com/kinfolk0117/ComfyUI_SimpleTiles", "files": [ "https://github.com/kinfolk0117/ComfyUI_SimpleTiles" @@ -2913,6 +3842,7 @@ { "author": "kinfolk0117", "title": "ComfyUI_GradientDeepShrink", + "id": "deepshrink", "reference": "https://github.com/kinfolk0117/ComfyUI_GradientDeepShrink", "files": [ "https://github.com/kinfolk0117/ComfyUI_GradientDeepShrink" @@ -2923,6 +3853,7 @@ { "author": "kinfolk0117", "title": "ComfyUI_Pilgram", + "id": "pilgram", "reference": "https://github.com/kinfolk0117/ComfyUI_Pilgram", "files": [ "https://github.com/kinfolk0117/ComfyUI_Pilgram" @@ -2930,29 +3861,42 @@ "install_type": "git-clone", "description": "Use [a/Pilgram2](https://github.com/mgineer85/pilgram2) filters in ComfyUI" }, + { + "author": "kinfolk0117", + "title": "Gridswapper", + "reference": "https://github.com/kinfolk0117/ComfyUI_GridSwapper", + "files": [ + "https://github.com/kinfolk0117/ComfyUI_GridSwapper" + ], + "install_type": "git-clone", + "description": "Gridswapper takes a batch of latents and spreads them over the necessary amount of grids. It then automatically shuffles the images in the grids for each step. So, a batch of 12 latents for a 2x2 grid will generate 3 grid images in each step. It will then shuffle around the images for the next step. This makes it possible for all images to influence the others during the denoising process. This approach works well for generating 2-4 grids." + }, { "author": "Fictiverse", "title": "ComfyUI Fictiverse Nodes", + "id": "fictverse", "reference": "https://github.com/Fictiverse/ComfyUI_Fictiverse", "files": [ "https://github.com/Fictiverse/ComfyUI_Fictiverse" ], "install_type": "git-clone", - "description": "Nodes:Color correction." + "description": "Nodes:Essential Params, Image Params, Video Params, Add Margin With Color, Resize to megapixels" }, { "author": "idrirap", "title": "ComfyUI-Lora-Auto-Trigger-Words", + "id": "lora-auto-trigger", "reference": "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words", "files": [ "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words" ], "install_type": "git-clone", - "description": "This project is a fork of [a/https://github.com/Extraltodeus/LoadLoraWithTags](https://github.com/Extraltodeus/LoadLoraWithTags) The aim of these custom nodes is to get an easy access to the tags used to trigger a lora." + "description": "The aim of these custom nodes is to get an easy access to the tags used to trigger a lora / lycoris. Extract the tags from civitai or from the safetensors metadatas when available." }, { "author": "aianimation55", "title": "Comfy UI FatLabels", + "id": "fatlab", "reference": "https://github.com/aianimation55/ComfyUI-FatLabels", "files": [ "https://github.com/aianimation55/ComfyUI-FatLabels" @@ -2963,6 +3907,7 @@ { "author": "noEmbryo", "title": "noEmbryo nodes", + "id": "noembryo", "reference": "https://github.com/noembryo/ComfyUI-noEmbryo", "files": [ "https://github.com/noembryo/ComfyUI-noEmbryo" @@ -2973,6 +3918,7 @@ { "author": "mikkel", "title": "ComfyUI - Mask Bounding Box", + "id": "mask-bbox", "reference": "https://github.com/mikkel/comfyui-mask-boundingbox", "files": [ "https://github.com/mikkel/comfyui-mask-boundingbox" @@ -2983,6 +3929,7 @@ { "author": "ParmanBabra", "title": "ComfyUI-Malefish-Custom-Scripts", + "id": "malefish", "reference": "https://github.com/ParmanBabra/ComfyUI-Malefish-Custom-Scripts", "files": [ "https://github.com/ParmanBabra/ComfyUI-Malefish-Custom-Scripts" @@ -2993,6 +3940,7 @@ { "author": "IAmMatan.com", "title": "ComfyUI Serving toolkit", + "id": "serving-toolkit", "reference": "https://github.com/matan1905/ComfyUI-Serving-Toolkit", "files": [ "https://github.com/matan1905/ComfyUI-Serving-Toolkit" @@ -3003,6 +3951,7 @@ { "author": "PCMonsterx", "title": "ComfyUI-CSV-Loader", + "id": "csv-loader", "reference": "https://github.com/PCMonsterx/ComfyUI-CSV-Loader", "files": [ "https://github.com/PCMonsterx/ComfyUI-CSV-Loader" @@ -3013,6 +3962,7 @@ { "author": "Trung0246", "title": "ComfyUI-0246", + "id": "0246", "reference": "https://github.com/Trung0246/ComfyUI-0246", "files": [ "https://github.com/Trung0246/ComfyUI-0246" @@ -3023,19 +3973,21 @@ { "author": "fexli", "title": "fexli-util-node-comfyui", + "id": "fexli-util-node-comfyui", "reference": "https://github.com/fexli/fexli-util-node-comfyui", "files": [ "https://github.com/fexli/fexli-util-node-comfyui" ], "install_type": "git-clone", - "description": "Nodes:FEImagePadForOutpaint, FEColorOut, FEColor2Image, FERandomizedColor2Image" + "description": "A set of Fe's Util nodes for ComfyUI" }, { - "author": "AbyssYuan0", + "author": "AbyssBadger0", "title": "ComfyUI_BadgerTools", - "reference": "https://github.com/AbyssYuan0/ComfyUI_BadgerTools", + "id": "badger", + "reference": "https://github.com/AbyssBadger0/ComfyUI_BadgerTools", "files": [ - "https://github.com/AbyssYuan0/ComfyUI_BadgerTools" + "https://github.com/AbyssBadger0/ComfyUI_BadgerTools" ], "install_type": "git-clone", "description": "Nodes:ImageOverlap-badger, FloatToInt-badger, IntToString-badger, FloatToString-badger, ImageNormalization-badger, ImageScaleToSide-badger, NovelToFizz-badger." @@ -3043,6 +3995,7 @@ { "author": "palant", "title": "Image Resize for ComfyUI", + "id": "image-resize", "reference": "https://github.com/palant/image-resize-comfyui", "files": [ "https://github.com/palant/image-resize-comfyui" @@ -3060,19 +4013,10 @@ "install_type": "git-clone", "description": "This tool will turn entire workflows or parts of them into single integrated nodes. In a way, it is similar to the Node Templates functionality but hides the inner structure. This is useful if all you want is to reuse and quickly configure a bunch of nodes without caring how they are interconnected." }, - { - "author": "palant", - "title": "Extended Save Image for ComfyUI", - "reference": "https://github.com/palant/extended-saveimage-comfyui", - "files": [ - "https://github.com/palant/extended-saveimage-comfyui" - ], - "install_type": "git-clone", - "description": "This custom node is largely identical to the usual Save Image but allows saving images also in JPEG and WEBP formats, the latter with both lossless and lossy compression. Metadata is embedded in the images as usual, and the resulting images can be used to load a workflow." - }, { "author": "whmc76", "title": "ComfyUI-Openpose-Editor-Plus", + "id": "openpose-editor-plus", "reference": "https://github.com/whmc76/ComfyUI-Openpose-Editor-Plus", "files": [ "https://github.com/whmc76/ComfyUI-Openpose-Editor-Plus" @@ -3080,6 +4024,26 @@ "install_type": "git-clone", "description": "Nodes:Openpose Editor Plus" }, + { + "author": "whmc76", + "title": "ComfyUI-RemoveBackgroundSuite", + "reference": "https://github.com/whmc76/ComfyUI-RemoveBackgroundSuite", + "files": [ + "https://github.com/whmc76/ComfyUI-RemoveBackgroundSuite" + ], + "install_type": "git-clone", + "description": "A matting toolkit based on ComfyUI, supporting multiple matting models and detail processing methods." + }, + { + "author": "whmc76", + "title": "ComfyUI-UniversalToolkit", + "reference": "https://github.com/whmc76/ComfyUI-UniversalToolkit", + "files": [ + "https://github.com/whmc76/ComfyUI-UniversalToolkit" + ], + "install_type": "git-clone", + "description": "This plugin provides general-purpose utility nodes for ComfyUI. Currently, it implements a 'Blank Cell Generator' node, which can batch-generate images, masks, and latents with specified resolution and color." + }, { "author": "martijnat", "title": "comfyui-previewlatent", @@ -3093,6 +4057,7 @@ { "author": "banodoco", "title": "Steerable Motion", + "id": "steerable-motion", "reference": "https://github.com/banodoco/steerable-motion", "files": [ "https://github.com/banodoco/steerable-motion" @@ -3103,6 +4068,7 @@ { "author": "gemell1", "title": "ComfyUI_GMIC", + "id": "gmic", "reference": "https://github.com/gemell1/ComfyUI_GMIC", "files": [ "https://github.com/gemell1/ComfyUI_GMIC" @@ -3113,6 +4079,7 @@ { "author": "LonicaMewinsky", "title": "ComfyBreakAnim", + "id": "breakanim", "reference": "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame", "files": [ "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame" @@ -3123,6 +4090,7 @@ { "author": "TheBarret", "title": "ZSuite", + "id": "zsuite", "reference": "https://github.com/TheBarret/ZSuite", "files": [ "https://github.com/TheBarret/ZSuite" @@ -3133,6 +4101,7 @@ { "author": "romeobuilderotti", "title": "ComfyUI PNG Metadata", + "id": "pngmeta", "reference": "https://github.com/romeobuilderotti/ComfyUI-PNG-Metadata", "files": [ "https://github.com/romeobuilderotti/ComfyUI-PNG-Metadata" @@ -3143,6 +4112,7 @@ { "author": "ka-puna", "title": "comfyui-yanc", + "id": "yanc", "reference": "https://github.com/ka-puna/comfyui-yanc", "files": [ "https://github.com/ka-puna/comfyui-yanc" @@ -3152,14 +4122,80 @@ }, { "author": "amorano", - "title": "Jovimetrix Composition Nodes", + "title": "Jovimetrix", + "id": "jovimetrix", "reference": "https://github.com/Amorano/Jovimetrix", "files": [ "https://github.com/Amorano/Jovimetrix" ], - "nodename_pattern": " \\(jov\\)$", "install_type": "git-clone", - "description": "Compose like Substance Designer. Webcams, Media Streams (in/out), Tick animation, Color correction, Geometry manipulation, Pixel shader, Polygonal shape generator, Remap images gometry and color, Heavily inspired by WAS and MTB Node Suites." + "description": "Webcam, MIDI, Spout, and GLSL support with animation via tick. Features wave-based parameter modulation, math operations, universal value conversion, shape masking, image channel ops, batch processing, dynamic bus routing, GIPHY and SPOUT integration. Load images/videos from URLs, save output anywhere, and apply transformations like flattening, cropping, and color adjustments. Includes tools for color blindness simulation, stereograms, and stereoscopic imaging—plus much more!" + }, + { + "author": "amorano", + "title": "Jovi_GLSL", + "id": "jovi_glsl", + "reference": "https://github.com/Amorano/Jovi_GLSL", + "files": [ + "https://github.com/Amorano/Jovi_GLSL" + ], + "install_type": "git-clone", + "description": "Integrates GLSL shader support." + }, + { + "author": "amorano", + "title": "Jovi_Spout", + "id": "jovi_spout", + "reference": "https://github.com/Amorano/Jovi_Spout", + "files": [ + "https://github.com/Amorano/Jovi_Spout" + ], + "install_type": "git-clone", + "description": "ComfyUI Nodes for using Spout streams." + }, + { + "author": "amorano", + "title": "Jovi_Measure", + "id": "jovi_measure", + "reference": "https://github.com/Amorano/Jovi_Measure", + "files": [ + "https://github.com/Amorano/Jovi_Measure" + ], + "install_type": "git-clone", + "description": "Image metrics nodes for ComfyUI" + }, + { + "author": "amorano", + "title": "Jovi_MIDI", + "id": "jovi_midi", + "reference": "https://github.com/Amorano/Jovi_MIDI", + "files": [ + "https://github.com/Amorano/Jovi_MIDI" + ], + "install_type": "git-clone", + "description": "Read and Process data from MIDI devices inside of ComfyUI." + }, + { + "author": "amorano", + "title": "Jovi_Capture", + "id": "jovi_capture", + "reference": "https://github.com/Amorano/Jovi_Capture", + "files": [ + "https://github.com/Amorano/Jovi_Capture" + ], + "install_type": "git-clone", + "description": "Capture Webcamera and URL media streams as ComfyUI images." + }, + { + "author": "amorano", + "title": "Jovi_Colorizer", + "id": "jovijovi_colorizer_capture", + "reference": "https://github.com/Amorano/Jovi_Colorizer", + "files": [ + "https://github.com/Amorano/Jovi_Colorizer" + ], + "install_type": "git-clone", + "description": "Colorize ComfyUI nodes with defaults per node, node category or via regex filtering." }, { "author": "Umikaze-job", @@ -3174,6 +4210,7 @@ { "author": "Niutonian", "title": "ComfyUi-NoodleWebcam", + "id": "noodle-webcam", "reference": "https://github.com/Niutonian/ComfyUi-NoodleWebcam", "files": [ "https://github.com/Niutonian/ComfyUi-NoodleWebcam" @@ -3184,6 +4221,7 @@ { "author": "Feidorian", "title": "feidorian-ComfyNodes", + "id": "feidorian", "reference": "https://github.com/Feidorian/feidorian-ComfyNodes", "nodename_pattern": "^Feidorian_", "files": [ @@ -3205,6 +4243,7 @@ { "author": "natto-maki", "title": "ComfyUI-NegiTools", + "id": "negitools", "reference": "https://github.com/natto-maki/ComfyUI-NegiTools", "files": [ "https://github.com/natto-maki/ComfyUI-NegiTools" @@ -3215,6 +4254,7 @@ { "author": "LonicaMewinsky", "title": "ComfyUI-RawSaver", + "id": "rawsaver", "reference": "https://github.com/LonicaMewinsky/ComfyUI-RawSaver", "files": [ "https://github.com/LonicaMewinsky/ComfyUI-RawSaver" @@ -3225,6 +4265,7 @@ { "author": "jojkaart", "title": "ComfyUI-sampler-lcm-alternative", + "id": "lmc-alt", "reference": "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative", "files": [ "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative" @@ -3235,6 +4276,7 @@ { "author": "GTSuya-Studio", "title": "ComfyUI-GTSuya-Nodes", + "id": "gtsuya", "reference": "https://github.com/GTSuya-Studio/ComfyUI-Gtsuya-Nodes", "files": [ "https://github.com/GTSuya-Studio/ComfyUI-Gtsuya-Nodes" @@ -3245,6 +4287,7 @@ { "author": "oyvindg", "title": "ComfyUI-TrollSuite", + "id": "troll", "reference": "https://github.com/oyvindg/ComfyUI-TrollSuite", "files": [ "https://github.com/oyvindg/ComfyUI-TrollSuite" @@ -3255,6 +4298,7 @@ { "author": "drago87", "title": "ComfyUI_Dragos_Nodes", + "id": "dragos", "reference": "https://github.com/drago87/ComfyUI_Dragos_Nodes", "files": [ "https://github.com/drago87/ComfyUI_Dragos_Nodes" @@ -3262,19 +4306,10 @@ "install_type": "git-clone", "description": "Nodes:File Padding, Image Info, VAE Loader With Name" }, - { - "author": "ansonkao", - "title": "comfyui-geometry", - "reference": "https://github.com/ansonkao/comfyui-geometry", - "files": [ - "https://github.com/ansonkao/comfyui-geometry" - ], - "install_type": "git-clone", - "description": "Nodes: Mask to Centroid, Mask to Eigenvector. A small collection of custom nodes for use with ComfyUI, for geometry calculations" - }, { "author": "bronkula", "title": "comfyui-fitsize", + "id": "fitsize", "reference": "https://github.com/bronkula/comfyui-fitsize", "files": [ "https://github.com/bronkula/comfyui-fitsize" @@ -3285,6 +4320,7 @@ { "author": "toyxyz", "title": "ComfyUI_toyxyz_test_nodes", + "id": "comfyui_toyxyz_test_nodes", "reference": "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes", "files": [ "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes" @@ -3292,6 +4328,16 @@ "install_type": "git-clone", "description": "This node was created to send a webcam to ComfyUI in real time. This node is recommended for use with LCM." }, + { + "author": "toyxyz", + "title": "ComfyUI_rgbx_Wrapper", + "reference": "https://github.com/toyxyz/ComfyUI_rgbx_Wrapper", + "files": [ + "https://github.com/toyxyz/ComfyUI_rgbx_Wrapper" + ], + "install_type": "git-clone", + "description": "This is the rgb2x wrapper node for ComfyUI. The required models are automatically downloaded on the first run.\noriginal project : [a/https://github.com/zheng95z/rgbx](original project : https://github.com/zheng95z/rgbx)" + }, { "author": "thecooltechguy", "title": "ComfyUI Stable Video Diffusion", @@ -3302,16 +4348,6 @@ "install_type": "git-clone", "description": "Easily use Stable Video Diffusion inside ComfyUI!" }, - { - "author": "thecooltechguy", - "title": "ComfyUI-ComfyRun", - "reference": "https://github.com/thecooltechguy/ComfyUI-ComfyRun", - "files": [ - "https://github.com/thecooltechguy/ComfyUI-ComfyRun" - ], - "install_type": "git-clone", - "description": "The easiest way to run & share any ComfyUI workflow [a/https://comfyrun.com](https://comfyrun.com)" - }, { "author": "thecooltechguy", "title": "ComfyUI-MagicAnimate", @@ -3344,13 +4380,13 @@ }, { "author": "42lux", - "title": "ComfyUI-safety-checker", - "reference": "https://github.com/42lux/ComfyUI-safety-checker", + "title": "ComfyUI-42lux", + "reference": "https://github.com/42lux/ComfyUI-42lux", "files": [ - "https://github.com/42lux/ComfyUI-safety-checker" + "https://github.com/42lux/ComfyUI-42lux" ], "install_type": "git-clone", - "description": "A NSFW/Safety Checker Node for ComfyUI." + "description": "A collection of custom nodes for ComfyUI focused on enhanced sampling, model optimization, and quality improvements." }, { "author": "sergekatzmann", @@ -3375,6 +4411,7 @@ { "author": "komojini", "title": "komojini-comfyui-nodes", + "id": "komojini-nodes", "reference": "https://github.com/komojini/komojini-comfyui-nodes", "files": [ "https://github.com/komojini/komojini-comfyui-nodes" @@ -3385,6 +4422,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "APISR IN COMFYUI", + "id": "apisr-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR" @@ -3395,6 +4433,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-Text_Image-Composite [WIP]", + "id": "txtimg-composite", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Text_Image-Composite", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Text_Image-Composite" @@ -3402,19 +4441,10 @@ "install_type": "git-clone", "description": "Nodes:Text_Image_Zho, Text_Image_Multiline_Zho, RGB_Image_Zho, AlphaChanelAddByMask, ImageComposite_Zho, ..." }, - { - "author": "ZHO-ZHO-ZHO", - "title": "ComfyUI-Gemini", - "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini", - "files": [ - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini" - ], - "install_type": "git-clone", - "description": "Using Gemini-pro & Gemini-pro-vision in ComfyUI." - }, { "author": "ZHO-ZHO-ZHO", "title": "comfyui-portrait-master-zh-cn", + "id": "portrait-master-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn", "files": [ "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn" @@ -3425,6 +4455,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-Q-Align", + "id": "qalign-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align" @@ -3435,6 +4466,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-InstantID", + "id": "instantid-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID" @@ -3445,6 +4477,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI PhotoMaker (ZHO)", + "id": "photomaker-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO" @@ -3455,6 +4488,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-Qwen-VL-API", + "id": "qwen-vl-api", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API" @@ -3465,6 +4499,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-SVD-ZHO (WIP)", + "id": "svd-zho", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO" @@ -3475,6 +4510,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI SegMoE", + "id": "segmoe", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SegMoE", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SegMoE" @@ -3485,16 +4521,18 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI YoloWorld-EfficientSAM", + "id": "yoloworld", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM" ], "install_type": "git-clone", - "description": "Unofficial implementation of [a/YOLO-World + EfficientSAM](https://huggingface.co/spaces/SkalskiP/YOLO-World) & [a/YOLO-World](https://github.com/AILab-CVC/YOLO-World) for ComfyUI\nNOTE: Install the efficient_sam model from the Install models menu.\n[w/When installing or updating this custom node, many installation packages may be downgraded due to the installation of requirements.]" + "description": "Unofficial implementation of [a/YOLO-World + EfficientSAM](https://huggingface.co/spaces/SkalskiP/YOLO-World) & [a/YOLO-World](https://github.com/AILab-CVC/YOLO-World) for ComfyUI\nNOTE: Install the efficient_sam model from the Install models menu.\n[w/When installing or updating this custom node, many installation packages may be downgraded due to the installation of requirements.\n!! python3.12 is incompatible.]" }, { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-PixArt-alpha-Diffusers", + "id": "pixart-alpha", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PixArt-alpha-Diffusers", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PixArt-alpha-Diffusers" @@ -3505,6 +4543,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "ComfyUI-BRIA_AI-RMBG", + "id": "bria-ai-rmbg", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG" @@ -3515,6 +4554,7 @@ { "author": "ZHO-ZHO-ZHO", "title": "DepthFM IN COMFYUI", + "id": "depthfm", "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM", "files": [ "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM" @@ -3524,13 +4564,56 @@ }, { "author": "ZHO-ZHO-ZHO", - "title": "ComfyUI-BiRefNet-ZHO", - "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO", + "title": "Phi-3-mini in ComfyUI", + "id": "phi3mini", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini", "files": [ - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO" + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini" ], "install_type": "git-clone", - "description": "Better version for [a/BiRefNet](https://github.com/zhengpeng7/birefnet) in ComfyUI | Both img and video" + "description": "Nodes:Phi3mini_4k_ModelLoader_Zho, Phi3mini_4k_Zho, Phi3mini_4k_Chat_Zho" + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-ArtGallery", + "id": "artgallery", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery" + ], + "install_type": "git-clone", + "description": "Prompt Visualization | Art Gallery\n[w/WARN: Installation requires 2GB of space, and it will involve a long download time.]" + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-Animated-optical-illusions", + "id": "animated-optical-illusion", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Animated-optical-illusions", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Animated-optical-illusions" + ], + "install_type": "git-clone", + "description": "Animated optical illusions in ComfyUI" + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-UltraEdit-ZHO", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-UltraEdit-ZHO", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-UltraEdit-ZHO" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [a/UltraEdit](https://github.com/HaozheZhao/UltraEdit) (Diffusers) for ComfyUI" + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-DeepSeek-JanusPro", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DeepSeek-JanusPro", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DeepSeek-JanusPro" + ], + "install_type": "git-clone", + "description": "ComfyUI-DeepSeek-JanusPro" }, { "author": "kenjiqq", @@ -3574,13 +4657,13 @@ }, { "author": "discopixel-studio", - "title": "ComfyUI Discopixel Nodes", + "title": "PhotoRoom Nodes by Discopixel", "reference": "https://github.com/discopixel-studio/comfyui-discopixel", "files": [ "https://github.com/discopixel-studio/comfyui-discopixel" ], "install_type": "git-clone", - "description": "Nodes:TransformTemplateOntoFaceMask, ... A small collection of custom nodes for use with ComfyUI, by Discopixel" + "description": "A small collection of custom nodes for use with ComfyUI, by [a/Discopixel](https://discopixel.studio)" }, { "author": "zcfrank1st", @@ -3622,6 +4705,26 @@ "install_type": "git-clone", "description": "Nodes: ComfyUI_ImageToText" }, + { + "author": "SoftMeng", + "title": "ComfyUI-DeepCache-Fix", + "reference": "https://github.com/SoftMeng/ComfyUI-DeepCache-Fix", + "files": [ + "https://github.com/SoftMeng/ComfyUI-DeepCache-Fix" + ], + "install_type": "git-clone", + "description": "Accelerate ComfyUI Nodes for Faster Image Generation, Ensuring Consistency Pre and Post-Acceleration, Ideal for Bulk Image Production." + }, + { + "author": "SoftMeng", + "title": "ComfyUI-PIL", + "reference": "https://github.com/SoftMeng/ComfyUI-PIL", + "files": [ + "https://github.com/SoftMeng/ComfyUI-PIL" + ], + "install_type": "git-clone", + "description": "ComfyUI is proud to present a new plugin designed to enhance user experience through seamless integration with Pillow, the powerful fork of Python Imaging Library (PIL). This plugin offers a suite of basic image manipulation tools that are easy to use and integrate directly into the ComfyUI framework." + }, { "author": "wmatson", "title": "easy-comfy-nodes", @@ -3630,7 +4733,7 @@ "https://github.com/wmatson/easy-comfy-nodes" ], "install_type": "git-clone", - "description": "Nodes: HTTP POST, Empty Dict, Assoc Str, Assoc Dict, Assoc Img, Load Img From URL (EZ), Load Img Batch From URLs (EZ), Video Combine + upload (EZ), ..." + "description": "A collection of utility nodes primarily for interacting with comfy via automated systems" }, { "author": "DrJKL", @@ -3669,67 +4772,97 @@ "https://github.com/Scholar01/ComfyUI-Keyframe" ], "install_type": "git-clone", - "description": "Nodes:Keyframe Part, Keyframe Interpolation Part, Keyframe Apply." + "description": "set denoise strength for keyframe" }, { "author": "Haoming02", - "title": "ComfyUI Diffusion Color Grading", + "title": "ComfyUI Old Photo Restoration", + "reference": "https://github.com/Haoming02/comfyui-old-photo-restoration", + "files": [ + "https://github.com/Haoming02/comfyui-old-photo-restoration" + ], + "install_type": "git-clone", + "description": "Perform Bringing-Old-Photos-Back-to-Life" + }, + { + "author": "Haoming02", + "title": "Diffusion CG", "reference": "https://github.com/Haoming02/comfyui-diffusion-cg", "files": [ "https://github.com/Haoming02/comfyui-diffusion-cg" ], "install_type": "git-clone", - "description": "This is the ComfyUI port of the joint research between me and TimothyAlexisVass. For more information, check out the original [a/Extension](https://github.com/Haoming02/sd-webui-diffusion-cg) for Automatic1111." + "description": "Color Grading for Stable Diffusion" }, { "author": "Haoming02", - "title": "comfyui-prompt-format", + "title": "Prompt Format", "reference": "https://github.com/Haoming02/comfyui-prompt-format", "files": [ "https://github.com/Haoming02/comfyui-prompt-format" ], "install_type": "git-clone", - "description": "This is an Extension for ComfyUI, which helps formatting texts." + "description": "Add a button that formats the prompts in textfields" }, { "author": "Haoming02", - "title": "ComfyUI Clear Screen", + "title": "Clear Screen", "reference": "https://github.com/Haoming02/comfyui-clear-screen", "files": [ "https://github.com/Haoming02/comfyui-clear-screen" ], "install_type": "git-clone", - "description": "This is an Extension for ComfyUI, which adds a button, CLS, to clear the console window." + "description": "Add a button that clears the console" }, { "author": "Haoming02", - "title": "ComfyUI Menu Anchor", + "title": "Menu Anchor", "reference": "https://github.com/Haoming02/comfyui-menu-anchor", "files": [ "https://github.com/Haoming02/comfyui-menu-anchor" ], "install_type": "git-clone", - "description": "This is an Extension for ComfyUI, which moves the menu to the specified corner on startup." + "description": "Snaps the menu to the corner automatically" }, { "author": "Haoming02", - "title": "ComfyUI Tab Handler", + "title": "Tab Handler", "reference": "https://github.com/Haoming02/comfyui-tab-handler", "files": [ "https://github.com/Haoming02/comfyui-tab-handler" ], "install_type": "git-clone", - "description": "This is an Extension for ComfyUI, which moves the menu to the specified corner on startup." + "description": "Use the Tab key to switch between textfields" }, { "author": "Haoming02", - "title": "ComfyUI Floodgate", + "title": "Floodgate", "reference": "https://github.com/Haoming02/comfyui-floodgate", "files": [ "https://github.com/Haoming02/comfyui-floodgate" ], "install_type": "git-clone", - "description": "This is an Extension for ComfyUI, which allows you to control the logic flow with just one click!" + "description": "A node that allows you to switch between execution flow" + }, + { + "author": "Haoming02", + "title": "Node Beautify", + "reference": "https://github.com/Haoming02/comfyui-node-beautify", + "files": [ + "https://github.com/Haoming02/comfyui-node-beautify" + ], + "install_type": "git-clone", + "description": "Add a button that formats the workflow graph" + }, + { + "author": "Haoming02", + "title": "ComfyUI ReSharpen", + "reference": "https://github.com/Haoming02/comfyui-resharpen", + "files": [ + "https://github.com/Haoming02/comfyui-resharpen" + ], + "install_type": "git-clone", + "description": "Manipulate the details of generations." }, { "author": "bedovyy", @@ -3770,7 +4903,7 @@ "https://github.com/subtleGradient/TinkerBot-tech-for-ComfyUI-Touchpad" ], "install_type": "git-clone", - "description": "Two-finger scrolling (vertical and horizontal) to pan the canvas. Two-finger pinch to zoom in and out. Command-scroll up and down to zoom in and out. Fixes [comfyanonymous/ComfyUI#2059](https://github.com/comfyanonymous/ComfyUI/issues/2059)." + "description": "Two-finger scrolling (vertical and horizontal) to pan the canvas. Two-finger pinch to zoom in and out. Command-scroll up and down to zoom in and out. Fixes [a/comfyanonymous/ComfyUI#2059](https://github.com/comfyanonymous/ComfyUI/issues/2059)." }, { "author": "zcfrank1st", @@ -3795,6 +4928,7 @@ { "author": "AustinMroz", "title": "SpliceTools", + "id": "splicetools", "reference": "https://github.com/AustinMroz/ComfyUI-SpliceTools", "files": [ "https://github.com/AustinMroz/ComfyUI-SpliceTools" @@ -3802,6 +4936,39 @@ "install_type": "git-clone", "description": "Experimental utility nodes with a focus on manipulation of noised latents" }, + { + "author": "AustinMroz", + "title": "DynamicOversampling", + "id": "dynamic-oversampling", + "reference": "https://github.com/AustinMroz/ComfyUI-DynamicOversampling", + "files": [ + "https://github.com/AustinMroz/ComfyUI-DynamicOversampling" + ], + "install_type": "git-clone", + "description": "Nodes:DynamicSampler, MeasuredSampler, ResolveMaskPromise" + }, + { + "author": "AustinMroz", + "title": "ComfyUI-WorkflowCheckpointing", + "id": "workflowcheckpointing", + "reference": "https://github.com/AustinMroz/ComfyUI-WorkflowCheckpointing", + "files": [ + "https://github.com/AustinMroz/ComfyUI-WorkflowCheckpointing" + ], + "install_type": "git-clone", + "description": "Automatically creates checkpoints during workflow execution. If If an workflow is canceled or ComfyUI crashes mid-execution, then these checkpoints are used when the workflow is re-queued to resume execution with minimal progress loss." + }, + { + "author": "AustinMroz", + "title": "ComfyUI-MinCache", + "id": "comfyui-mincache", + "reference": "https://github.com/AustinMroz/ComfyUI-MinCache", + "files": [ + "https://github.com/AustinMroz/ComfyUI-MinCache" + ], + "install_type": "git-clone", + "description": "Modifies execution to minimize RAM at the cost of performance" + }, { "author": "11cafe", "title": "ComfyUI Workspace Manager - Comfyspace", @@ -3833,6 +5000,27 @@ "install_type": "git-clone", "description": "A collection of nodes powering a tensor oracle on a home network with automation" }, + { + "author": "jtrue", + "title": "ComfyUI-WordEmbeddings", + "reference": "https://github.com/jtrue/ComfyUI-WordEmbeddings", + "files": [ + "https://github.com/jtrue/ComfyUI-WordEmbeddings" + ], + "nodename_pattern": "_jru$", + "install_type": "git-clone", + "description": "Word embedding utility nodes for ComfyUI. Load a pre-trained embedding model, explore neighbors, do analogies, and project any token/phrase onto 1D/2D/3D semantic axes with human‑readable summaries." + }, + { + "author": "jtrue", + "title": "ComfyUI-Rect", + "reference": "https://github.com/jtrue/ComfyUI-Rect", + "files": [ + "https://github.com/jtrue/ComfyUI-Rect" + ], + "install_type": "git-clone", + "description": "Interactive rectangle tools for ComfyUI: Select, Crop, Mask, Fill." + }, { "author": "filliptm", "title": "ComfyUI_Fill-Nodes", @@ -3841,7 +5029,27 @@ "https://github.com/filliptm/ComfyUI_Fill-Nodes" ], "install_type": "git-clone", - "description": "Nodes:FL Image Randomizer. The start of a pack that I will continue to build out to fill the gaps of nodes and functionality that I feel is missing in comfyUI" + "description": "Fill-Nodes is a versatile collection of custom nodes for ComfyUI that extends functionality across multiple domains. Features include advanced image processing (pixelation, slicing, masking), visual effects generation (glitch, halftone, pixel art), comprehensive file handling (PDF creation/extraction, Google Drive integration), AI model interfaces (GPT, DALL-E, Hugging Face), utility nodes for workflow enhancement, and specialized tools for video processing, captioning, and batch operations. The pack provides both practical workflow solutions and creative tools within a unified node collection." + }, + { + "author": "filliptm", + "title": "ComfyUI_FL-Trainer", + "reference": "https://github.com/filliptm/ComfyUI_FL-Trainer", + "files": [ + "https://github.com/filliptm/ComfyUI_FL-Trainer" + ], + "install_type": "git-clone", + "description": "Train Image Loras on both sd1.5 and SDXL. This repo git clones the pieces needed to train. It pops open a second terminal window do do the training. It will also display the inference samples in the node itself so you can track the results." + }, + { + "author": "filliptm", + "title": "ComfyUI_Fill-ChatterBox", + "reference": "https://github.com/filliptm/ComfyUI_Fill-ChatterBox", + "files": [ + "https://github.com/filliptm/ComfyUI_Fill-ChatterBox" + ], + "install_type": "git-clone", + "description": "Voice Clone and TTS model." }, { "author": "zfkun", @@ -3861,7 +5069,7 @@ "https://github.com/zcfrank1st/Comfyui-Toolbox" ], "install_type": "git-clone", - "description": "Nodes:Preview Json, Save Json, Test Json Preview, ... preview and save nodes" + "description": "A collection of utility nodes for ComfyUI, including audio/video processing, file uploads, and AI image generation." }, { "author": "talesofai", @@ -3895,7 +5103,7 @@ }, { "author": "mmaker", - "title": "Color Enhance", + "title": "mmaker/Color Enhance", "reference": "https://git.mmaker.moe/mmaker/sd-webui-color-enhance", "files": [ "https://git.mmaker.moe/mmaker/sd-webui-color-enhance" @@ -3921,17 +5129,27 @@ "https://github.com/aria1th/ComfyUI-LogicUtils" ], "install_type": "git-clone", - "description": "Nodes:UniformRandomFloat..., RandomShuffleInt, YieldableIterator..., LogicGate..., Add..., MergeString, MemoryNode, ..." + "description": "Logical Utils (compare, string, boolean operations) for ComfyUI" }, { "author": "MitoshiroPJ", - "title": "ComfyUI Slothful Attention", - "reference": "https://github.com/MitoshiroPJ/comfyui_slothful_attention", + "title": "ComfyUI Nearsighted Attention", + "reference": "https://github.com/MitoshiroPJ/comfyui_nearsighted_attention", "files": [ - "https://github.com/MitoshiroPJ/comfyui_slothful_attention" + "https://github.com/MitoshiroPJ/comfyui_nearsighted_attention" ], "install_type": "git-clone", - "description": "This custom node allow controlling output without training. The reducing method is similar to [a/Spatial-Reduction Attention](https://paperswithcode.com/method/spatial-reduction-attention), but generating speed may not be increased on typical image sizes due to overheads. (In some cases, slightly slower)" + "description": "This node splits its self-attention Q to focus on nearby samples." + }, + { + "author": "MitoshiroPJ", + "title": "ComfyUI SaveImage SDLI", + "reference": "https://github.com/MitoshiroPJ/ComfyUI_save_image_sdli", + "files": [ + "https://github.com/MitoshiroPJ/ComfyUI_save_image_sdli" + ], + "install_type": "git-clone", + "description": "SDLI (Stable Diffusion Latents in Imagefile) is file format, that contains latents and lossy (decoded) image. Detailed format is written at [a/SDLI Tools](https://github.com/MitoshiroPJ/sdli_tools)." }, { "author": "brianfitzgerald", @@ -3946,6 +5164,7 @@ { "author": "deroberon", "title": "demofusion-comfyui", + "id": "demofusion", "reference": "https://github.com/deroberon/demofusion-comfyui", "files": [ "https://github.com/deroberon/demofusion-comfyui" @@ -3966,12 +5185,13 @@ { "author": "glifxyz", "title": "ComfyUI-GlifNodes", + "id": "glif", "reference": "https://github.com/glifxyz/ComfyUI-GlifNodes", "files": [ "https://github.com/glifxyz/ComfyUI-GlifNodes" ], "install_type": "git-clone", - "description": "Nodes:Consistency VAE Decoder." + "description": "Custom set of nodes used by glif.app. With glif you can build mini apps that are powered by custom comfy workflows." }, { "author": "concarne000", @@ -3983,9 +5203,20 @@ "install_type": "git-clone", "description": "Nodes:Bing Image Grabber, Zephyr chat, Hermes Chat" }, + { + "author": "concarne000", + "title": "ComfyUI-Stacker", + "reference": "https://github.com/concarne000/ComfyUI-Stacker", + "files": [ + "https://github.com/concarne000/ComfyUI-Stacker" + ], + "install_type": "git-clone", + "description": "Simple stack push/pop style nodes for images, strings, integers and generic objects (image batches, latents, face models etc)" + }, { "author": "Aegis72", "title": "AegisFlow Utility Nodes", + "id": "aegis", "reference": "https://github.com/aegis72/aegisflow_utility_nodes", "files": [ "https://github.com/aegis72/aegisflow_utility_nodes" @@ -3996,6 +5227,7 @@ { "author": "Aegis72", "title": "ComfyUI-styles-all", + "id": "styles-all", "reference": "https://github.com/aegis72/comfyui-styles-all", "files": [ "https://github.com/aegis72/comfyui-styles-all" @@ -4006,12 +5238,13 @@ { "author": "glibsonoran", "title": "Plush-for-ComfyUI", + "id": "plush", "reference": "https://github.com/glibsonoran/Plush-for-ComfyUI", "files": [ "https://github.com/glibsonoran/Plush-for-ComfyUI" ], "install_type": "git-clone", - "description": "Nodes: Style Prompt, OAI Dall_e Image. Plush contains two OpenAI enabled nodes: Style Prompt: Takes your prompt and the art style you specify and generates a prompt from ChatGPT3 or 4 that Stable Diffusion can use to generate an image in that style. OAI Dall_e 3: Takes your prompt and parameters and produces a Dall_e3 image in ComfyUI." + "description": "A suite of nodes that includes: - Prompt enhancers/generators that employ remote AI services and local front-ends like: ChatGPT, Anthropic Claude, Groq, Gemini, LM Studio, Oobabooga, OpenRouter etc. - An Image Generator that uses Dall_e 3. - An image metadata extractor that extracts seed, prompt, cfg, size, denoise, etc from existing AI generated images and photo metadata (from exif data) from jpeg photographs. A tagger that appends text (tags) to the beginning, end and/or middle of a text block. Image and text multiplexer utilility. A text block remover that removes text between two named tags." }, { "author": "vienteck", @@ -4021,42 +5254,34 @@ "https://github.com/vienteck/ComfyUI-Chat-GPT-Integration" ], "install_type": "git-clone", - "description": "This extension is a reimagined version based on the [a/ComfyUI-QualityOfLifeSuit_Omar92](https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92) extension, and it supports integration with ChatGPT through the new OpenAI API.\nNOTE: See detailed installation instructions on the [a/repository](https://github.com/vienteck/ComfyUI-Chat-GPT-Integration)." }, { "author": "MNeMoNiCuZ", "title": "ComfyUI-mnemic-nodes", + "id": "comfyui-mnemic-nodes", "reference": "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes", "files": [ "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes" ], "install_type": "git-clone", - "description": "Nodes:Save Text File" + "description": "Added Lora Loader - Tag node, originally by badjeff" }, { "author": "AI2lab", - "title": "comfyUI-tool-2lab", - "reference": "https://github.com/AI2lab/comfyUI-tool-2lab", + "title": "comfyUI-siliconflow-api-2lab", + "id": "siliconflow", + "reference": "https://github.com/AI2lab/comfyUI-siliconflow-api-2lab", "files": [ - "https://github.com/AI2lab/comfyUI-tool-2lab" + "https://github.com/AI2lab/comfyUI-siliconflow-api-2lab" ], "install_type": "git-clone", - "description": "Integrate non-painting capabilities into comfyUI, including data, algorithms, video processing, large models, etc., to facilitate the construction of more powerful workflows." - }, - { - "author": "SpaceKendo", - "title": "Text to video for Stable Video Diffusion in ComfyUI", - "reference": "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid", - "files": [ - "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid" - ], - "install_type": "git-clone", - "description": "This is node replaces the init_image conditioning for the [a/Stable Video Diffusion](https://github.com/Stability-AI/generative-models) image to video model with text embeds, together with a conditioning frame. The conditioning frame is a set of latents." + "description": "Unofficial implementation of siliconflow API for ComfyUI\nHow to use:apply api key in :https://cloud.siliconflow.cn/\nadd api key in config.json" }, { "author": "NimaNzrii", "title": "comfyui-popup_preview", + "id": "popup-preview", "reference": "https://github.com/NimaNzrii/comfyui-popup_preview", "files": [ "https://github.com/NimaNzrii/comfyui-popup_preview" @@ -4067,16 +5292,18 @@ { "author": "NimaNzrii", "title": "comfyui-photoshop", + "id": "comfy-photoshop", "reference": "https://github.com/NimaNzrii/comfyui-photoshop", "files": [ "https://github.com/NimaNzrii/comfyui-photoshop" ], "install_type": "git-clone", - "description": "Photoshop node inside of ComfyUi, send and get data from Photoshop" + "description": "Powerfull bridge to Photoshop by NimaNzrii" }, { "author": "Rui", "title": "RUI-Nodes", + "id": "rui-nodes", "reference": "https://github.com/rui40000/RUI-Nodes", "files": [ "https://github.com/rui40000/RUI-Nodes" @@ -4087,6 +5314,7 @@ { "author": "dmarx", "title": "ComfyUI-Keyframed", + "id": "keyframed", "reference": "https://github.com/dmarx/ComfyUI-Keyframed", "files": [ "https://github.com/dmarx/ComfyUI-Keyframed" @@ -4097,6 +5325,7 @@ { "author": "dmarx", "title": "ComfyUI-AudioReactive", + "id": "audioreactive", "reference": "https://github.com/dmarx/ComfyUI-AudioReactive", "files": [ "https://github.com/dmarx/ComfyUI-AudioReactive" @@ -4107,6 +5336,7 @@ { "author": "TripleHeadedMonkey", "title": "ComfyUI_MileHighStyler", + "id": "milehighstyler", "reference": "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler", "files": [ "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler" @@ -4117,6 +5347,7 @@ { "author": "BennyKok", "title": "ComfyUI Deploy", + "id": "comfy-deploy", "reference": "https://github.com/BennyKok/comfyui-deploy", "files": [ "https://github.com/BennyKok/comfyui-deploy" @@ -4127,6 +5358,7 @@ { "author": "florestefano1975", "title": "comfyui-portrait-master", + "id": "portrait-master", "reference": "https://github.com/florestefano1975/comfyui-portrait-master", "files": [ "https://github.com/florestefano1975/comfyui-portrait-master" @@ -4137,6 +5369,7 @@ { "author": "florestefano1975", "title": "comfyui-prompt-composer", + "id": "prompt-composer", "reference": "https://github.com/florestefano1975/comfyui-prompt-composer", "files": [ "https://github.com/florestefano1975/comfyui-prompt-composer" @@ -4147,6 +5380,7 @@ { "author": "florestefano1975", "title": "ComfyUI StabilityAI Suite", + "id": "sai-suite", "reference": "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite", "files": [ "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite" @@ -4154,9 +5388,43 @@ "install_type": "git-clone", "description": "This fork of the official StabilityAI repository contains a number of enhancements and implementations." }, + { + "author": "florestefano1975", + "title": "ComfyUI HiDiffusion", + "id": "hidiffusion", + "reference": "https://github.com/florestefano1975/ComfyUI-HiDiffusion", + "files": [ + "https://github.com/florestefano1975/ComfyUI-HiDiffusion" + ], + "install_type": "git-clone", + "description": "Simple custom nodes for testing and use HiDiffusion technology: https://github.com/megvii-research/HiDiffusion/" + }, + { + "author": "florestefano1975", + "title": "Advanced Sequence Seed Generator", + "id": "adv-seq-seed-gen", + "reference": "https://github.com/florestefano1975/ComfyUI-Advanced-Sequence-Seed", + "files": [ + "https://github.com/florestefano1975/ComfyUI-Advanced-Sequence-Seed" + ], + "install_type": "git-clone", + "description": "A simple seed generator based on special number sequences: Fibonacci, Prime, Padovan, Triangular, Catalan, Pell, Lucas" + }, + { + "author": "florestefano1975", + "title": "ComfyUI-CogVideoX", + "id": "sf-cog-video-x", + "reference": "https://github.com/florestefano1975/ComfyUI-CogVideoX", + "files": [ + "https://github.com/florestefano1975/ComfyUI-CogVideoX" + ], + "install_type": "git-clone", + "description": "Experience the CogVideoX model on ComfyUI" + }, { "author": "mozman", "title": "ComfyUI_mozman_nodes", + "id": "mozman-nodes", "reference": "https://github.com/mozman/ComfyUI_mozman_nodes", "files": [ "https://github.com/mozman/ComfyUI_mozman_nodes" @@ -4167,6 +5435,7 @@ { "author": "rcsaquino", "title": "rcsaquino/comfyui-custom-nodes", + "id": "rcsaquino-nodes", "reference": "https://github.com/rcsaquino/comfyui-custom-nodes", "files": [ "https://github.com/rcsaquino/comfyui-custom-nodes" @@ -4177,6 +5446,7 @@ { "author": "rcfcu2000", "title": "zhihuige-nodes-comfyui", + "id": "zhihuige-nodes", "reference": "https://github.com/rcfcu2000/zhihuige-nodes-comfyui", "files": [ "https://github.com/rcfcu2000/zhihuige-nodes-comfyui" @@ -4187,6 +5457,7 @@ { "author": "IDGallagher", "title": "IG Interpolation Nodes", + "id": "ig-nodes", "reference": "https://github.com/IDGallagher/ComfyUI-IG-Nodes", "files": [ "https://github.com/IDGallagher/ComfyUI-IG-Nodes" @@ -4194,9 +5465,32 @@ "install_type": "git-clone", "description": "Custom nodes to aid in the exploration of Latent Space" }, + { + "author": "IDGallagher", + "title": "ComfyUI-IG-Motion-I2V", + "id": "comfyui-ig-motion-i2v", + "reference": "https://github.com/IDGallagher/ComfyUI-IG-Motion-I2V", + "files": [ + "https://github.com/IDGallagher/ComfyUI-IG-Motion-I2V" + ], + "install_type": "git-clone", + "description": "ComfyUI adaptation of https://github.com/G-U-N/Motion-I2V" + }, + { + "author": "IDGallagher", + "title": "IG-Motion-Search", + "id": "motion-video-search", + "reference": "https://github.com/IDGallagher/MotionVideoSearch", + "files": [ + "https://github.com/IDGallagher/MotionVideoSearch" + ], + "install_type": "git-clone", + "description": "Nodes for searching videos by motion" + }, { "author": "violet-chen", "title": "comfyui-psd2png", + "id": "psd2png", "reference": "https://github.com/violet-chen/comfyui-psd2png", "files": [ "https://github.com/violet-chen/comfyui-psd2png" @@ -4207,16 +5501,81 @@ { "author": "lldacing", "title": "comfyui-easyapi-nodes", + "id": "easyapi", "reference": "https://github.com/lldacing/comfyui-easyapi-nodes", "files": [ "https://github.com/lldacing/comfyui-easyapi-nodes" ], "install_type": "git-clone", - "description": "Nodes: Base64 To Image, Image To Base64, Load Image To Base64." + "description": "Provides some features and nodes related to API calls." + }, + { + "author": "lldacing", + "title": "ComfyUI_StableDelight_ll", + "id": "comfyui_stabledelight_ll", + "reference": "https://github.com/lldacing/ComfyUI_StableDelight_ll", + "files": [ + "https://github.com/lldacing/ComfyUI_StableDelight_ll" + ], + "install_type": "git-clone", + "description": "StableDelight: Revealing Hidden Textures by Removing Specular Reflections" + }, + { + "author": "lldacing", + "title": "ComfyUI_StableHair_ll", + "id": "comfyui_stablehair_ll", + "reference": "https://github.com/lldacing/ComfyUI_StableHair_ll", + "files": [ + "https://github.com/lldacing/ComfyUI_StableHair_ll" + ], + "install_type": "git-clone", + "description": "Hair transfer" + }, + { + "author": "lldacing", + "title": "ComfyUI_PuLID_Flux_ll", + "id": "comfyui_pulid_flux_ll", + "reference": "https://github.com/lldacing/ComfyUI_PuLID_Flux_ll", + "files": [ + "https://github.com/lldacing/ComfyUI_PuLID_Flux_ll" + ], + "install_type": "git-clone", + "description": "The implementation for PuLID-Flux, support TeaCache, no model pollution." + }, + { + "author": "lldacing", + "title": "ComfyUI_BiRefNet_ll", + "reference": "https://github.com/lldacing/ComfyUI_BiRefNet_ll", + "files": [ + "https://github.com/lldacing/ComfyUI_BiRefNet_ll" + ], + "install_type": "git-clone", + "description": "Sync with version of BiRefNet. NODES:AutoDownloadBiRefNetModel, LoadRembgByBiRefNetModel, RembgByBiRefNet." + }, + { + "author": "lldacing", + "title": "ComfyUI_Patches_ll", + "reference": "https://github.com/lldacing/ComfyUI_Patches_ll", + "files": [ + "https://github.com/lldacing/ComfyUI_Patches_ll" + ], + "install_type": "git-clone", + "description": "Some patches for Flux|HunYuanVideo|LTXVideo etc, support TeaCache, PuLID, First Block Cache." + }, + { + "author": "lldacing", + "title": "ComfyUI_BEN_ll", + "reference": "https://github.com/lldacing/ComfyUI_BEN_ll", + "files": [ + "https://github.com/lldacing/ComfyUI_BEN_ll" + ], + "install_type": "git-clone", + "description": "Background removal based on BEN. NODES:LoadRembgByBenModel, RembgByBen, GetMaskByBen, RembgByBenAdvanced, BlurFusionForegroundEstimation." }, { "author": "CosmicLaca", "title": "Primere nodes for ComfyUI", + "id": "primere", "reference": "https://github.com/CosmicLaca/ComfyUI_Primere_Nodes", "files": [ "https://github.com/CosmicLaca/ComfyUI_Primere_Nodes" @@ -4227,6 +5586,7 @@ { "author": "RenderRift", "title": "ComfyUI-RenderRiftNodes", + "id": "renderrift", "reference": "https://github.com/RenderRift/ComfyUI-RenderRiftNodes", "files": [ "https://github.com/RenderRift/ComfyUI-RenderRiftNodes" @@ -4237,6 +5597,7 @@ { "author": "OpenArt-AI", "title": "ComfyUI Assistant", + "id": "openart", "reference": "https://github.com/OpenArt-AI/ComfyUI-Assistant", "files": [ "https://github.com/OpenArt-AI/ComfyUI-Assistant" @@ -4247,16 +5608,18 @@ { "author": "ttulttul", "title": "ComfyUI Iterative Mixing Nodes", + "id": "itermix", "reference": "https://github.com/ttulttul/ComfyUI-Iterative-Mixer", "files": [ "https://github.com/ttulttul/ComfyUI-Iterative-Mixer" ], "install_type": "git-clone", - "description": "Nodes: Iterative Mixing KSampler, Batch Unsampler, Iterative Mixing KSampler Advanced" + "description": "Nodes to use Florence2 VLM for image vision tasks: object detection, captioning, segmentation and ocr" }, { "author": "ttulttul", "title": "ComfyUI-Tensor-Operations", + "id": "tensorop", "reference": "https://github.com/ttulttul/ComfyUI-Tensor-Operations", "files": [ "https://github.com/ttulttul/ComfyUI-Tensor-Operations" @@ -4267,6 +5630,7 @@ { "author": "jitcoder", "title": "LoraInfo", + "id": "lorainfo", "reference": "https://github.com/jitcoder/lora-info", "files": [ "https://github.com/jitcoder/lora-info" @@ -4277,6 +5641,7 @@ { "author": "ceruleandeep", "title": "ComfyUI LLaVA Captioner", + "id": "llava-captioner", "reference": "https://github.com/ceruleandeep/ComfyUI-LLaVA-Captioner", "files": [ "https://github.com/ceruleandeep/ComfyUI-LLaVA-Captioner" @@ -4287,6 +5652,7 @@ { "author": "styler00dollar", "title": "ComfyUI-sudo-latent-upscale", + "id": "sudo-latent-upscale", "reference": "https://github.com/styler00dollar/ComfyUI-sudo-latent-upscale", "files": [ "https://github.com/styler00dollar/ComfyUI-sudo-latent-upscale" @@ -4297,6 +5663,7 @@ { "author": "styler00dollar", "title": "ComfyUI-deepcache", + "id": "deepcache", "reference": "https://github.com/styler00dollar/ComfyUI-deepcache", "files": [ "https://github.com/styler00dollar/ComfyUI-deepcache" @@ -4307,6 +5674,7 @@ { "author": "HarroweD and quadmoon", "title": "Harrlogos Prompt Builder Node", + "id": "harrlogos-prompt-builder", "reference": "https://github.com/NotHarroweD/Harronode", "nodename_pattern": "Harronode", "files": [ @@ -4318,6 +5686,7 @@ { "author": "Limitex", "title": "ComfyUI-Calculation", + "id": "calc", "reference": "https://github.com/Limitex/ComfyUI-Calculation", "files": [ "https://github.com/Limitex/ComfyUI-Calculation" @@ -4328,26 +5697,40 @@ { "author": "Limitex", "title": "ComfyUI-Diffusers", + "id": "diffusers", "reference": "https://github.com/Limitex/ComfyUI-Diffusers", "files": [ "https://github.com/Limitex/ComfyUI-Diffusers" ], "install_type": "git-clone", - "description": "This extension enables the use of the diffuser pipeline in ComfyUI." + "description": "This extension enables the use of the diffuser pipeline in ComfyUI. It also includes nodes related to Stream Diffusion." }, { - "author": "edenartlab", - "title": "eden_comfy_pipelines", + "author": "aiXander", + "title": "Eden.art nodesuite", + "id": "eden", "reference": "https://github.com/edenartlab/eden_comfy_pipelines", "files": [ "https://github.com/edenartlab/eden_comfy_pipelines" ], "install_type": "git-clone", - "description": "Nodes:CLIP Interrogator, ..." + "description": "Maintained by Eden.art, this is a growing suite of custom nodes for building advanced pipelines." + }, + { + "author": "aiXander", + "title": "Eden.art LoRa Trainer", + "id": "eden-lora-trainer", + "reference": "https://github.com/edenartlab/sd-lora-trainer", + "files": [ + "https://github.com/edenartlab/sd-lora-trainer" + ], + "install_type": "git-clone", + "description": "Maintained by Eden.art, this is a very fast, well tuned trainer for SDXL and SD15" }, { "author": "pkpk", "title": "ComfyUI-SaveAVIF", + "id": "saveavif", "reference": "https://github.com/pkpkTech/ComfyUI-SaveAVIF", "files": [ "https://github.com/pkpkTech/ComfyUI-SaveAVIF" @@ -4358,6 +5741,7 @@ { "author": "pkpkTech", "title": "ComfyUI-ngrok", + "id": "ngrok", "reference": "https://github.com/pkpkTech/ComfyUI-ngrok", "files": [ "https://github.com/pkpkTech/ComfyUI-ngrok" @@ -4368,6 +5752,7 @@ { "author": "pkpk", "title": "ComfyUI-TemporaryLoader", + "id": "temploader", "reference": "https://github.com/pkpkTech/ComfyUI-TemporaryLoader", "files": [ "https://github.com/pkpkTech/ComfyUI-TemporaryLoader" @@ -4378,6 +5763,7 @@ { "author": "pkpkTech", "title": "ComfyUI-SaveQueues", + "id": "savequeues", "reference": "https://github.com/pkpkTech/ComfyUI-SaveQueues", "files": [ "https://github.com/pkpkTech/ComfyUI-SaveQueues" @@ -4388,6 +5774,7 @@ { "author": "Crystian", "title": "Crystools", + "id": "crytools", "reference": "https://github.com/crystian/ComfyUI-Crystools", "files": [ "https://github.com/crystian/ComfyUI-Crystools" @@ -4399,6 +5786,7 @@ { "author": "Crystian", "title": "Crystools-save", + "id": "crytools-save", "reference": "https://github.com/crystian/ComfyUI-Crystools-save", "files": [ "https://github.com/crystian/ComfyUI-Crystools-save" @@ -4409,6 +5797,7 @@ { "author": "Kangkang625", "title": "ComfyUI-Paint-by-Example", + "id": "paint-by-example", "reference": "https://github.com/Kangkang625/ComfyUI-paint-by-example", "pip": ["diffusers"], "files": [ @@ -4420,16 +5809,18 @@ { "author": "54rt1n", "title": "ComfyUI-DareMerge", + "id": "daremerge", "reference": "https://github.com/54rt1n/ComfyUI-DareMerge", "files": [ "https://github.com/54rt1n/ComfyUI-DareMerge" ], "install_type": "git-clone", - "description": "Merge two checkpoint models by dare ties [a/(https://github.com/yule-BUAA/MergeLM)](https://github.com/yule-BUAA/MergeLM), sort of." + "description": "ComfyUI powertools for SD1.5 and SDXL model merging." }, { "author": "an90ray", "title": "ComfyUI_RErouter_CustomNodes", + "id": "rerouter", "reference": "https://github.com/an90ray/ComfyUI_RErouter_CustomNodes", "files": [ "https://github.com/an90ray/ComfyUI_RErouter_CustomNodes" @@ -4440,6 +5831,7 @@ { "author": "jesenzhang", "title": "ComfyUI_StreamDiffusion", + "id": "streamdiffusion", "reference": "https://github.com/jesenzhang/ComfyUI_StreamDiffusion", "files": [ "https://github.com/jesenzhang/ComfyUI_StreamDiffusion" @@ -4449,7 +5841,8 @@ }, { "author": "ai-liam", - "title": "LiamUtil", + "title": "LiamUtil (single node)", + "id": "liam-util-single", "reference": "https://github.com/ai-liam/comfyui_liam_util", "files": [ "https://github.com/ai-liam/comfyui_liam_util" @@ -4457,9 +5850,21 @@ "install_type": "git-clone", "description": "Nodes: LiamLoadImage. This node provides the capability to load images from a URL." }, + { + "author": "ai-liam", + "title": "LiamUtil", + "id": "liam-util", + "reference": "https://github.com/ai-liam/comfyui-liam", + "files": [ + "https://github.com/ai-liam/comfyui-liam" + ], + "install_type": "git-clone", + "description": "Nodes: LiamLibLoadImage, LiamLibImageToGray, LiamLibSaveImg, LiamLibFillImage, PreviewReliefImage, GetBetterDepthImage, LiamLibSaveText" + }, { "author": "Ryuukeisyou", "title": "comfyui_face_parsing", + "id": "face-parsing", "reference": "https://github.com/Ryuukeisyou/comfyui_face_parsing", "files": [ "https://github.com/Ryuukeisyou/comfyui_face_parsing" @@ -4467,9 +5872,21 @@ "install_type": "git-clone", "description": "This is a set of custom nodes for ComfyUI. The nodes utilize the [a/face parsing model](https://huggingface.co/jonathandinu/face-parsing) to provide detailed segmantation of face. To improve face segmantation accuracy, [a/yolov8 face model](https://huggingface.co/Bingsu/adetailer/) is used to first extract face from an image. There are also auxiliary nodes for image and mask processing. A guided filter is also provided for skin smoothing." }, + { + "author": "Ryuukeisyou", + "title": "ComfyUI-SyncTalk", + "id": "synctalk", + "reference": "https://github.com/Ryuukeisyou/ComfyUI-SyncTalk", + "files": [ + "https://github.com/Ryuukeisyou/ComfyUI-SyncTalk" + ], + "install_type": "git-clone", + "description": "ComfyUI implemntation for [a/SyncTalk](https://github.com/ZiqiaoPeng/SyncTalk)" + }, { "author": "tocubed", "title": "ComfyUI-AudioReactor", + "id": "audioreactor", "reference": "https://github.com/tocubed/ComfyUI-AudioReactor", "files": [ "https://github.com/tocubed/ComfyUI-AudioReactor" @@ -4477,6 +5894,16 @@ "install_type": "git-clone", "description": "Nodes: Shadertoy, Load Audio (from Path), Audio Frame Transform (Shadertoy), Audio Frame Transform (Beats)" }, + { + "author": "tocubed", + "title": "ComfyUI-EvTexture", + "reference": "https://github.com/tocubed/ComfyUI-EvTexture", + "files": [ + "https://github.com/tocubed/ComfyUI-EvTexture" + ], + "install_type": "git-clone", + "description": "Wrapper for EvTexture Video Upscaler: [a/https://github.com/DachunKai/EvTexture](https://github.com/DachunKai/EvTexture)" + }, { "author": "ntc-ai", "title": "ComfyUI - Apply LoRA Stacker with DARE", @@ -4507,16 +5934,6 @@ "install_type": "git-clone", "description": "Nodes:Caching Image Loader." }, - { - "author": "Millyarde", - "title": "Pomfy - Photoshop and ComfyUI 2-way sync", - "reference": "https://github.com/Millyarde/Pomfy", - "files": [ - "https://github.com/Millyarde/Pomfy" - ], - "install_type": "git-clone", - "description": "Photoshop custom nodes inside of ComfyUi, send and get data via Photoshop UXP plugin for cross platform support" - }, { "author": "Ryuukeisyou", "title": "comfyui_io_helpers", @@ -4525,7 +5942,7 @@ "https://github.com/Ryuukeisyou/comfyui_io_helpers" ], "install_type": "git-clone", - "description": "Nodes:ImageLoadFromBase64, ImageLoadByPath, ImageLoadAsMaskByPath, ImageSaveToPath, ImageSaveAsBase64." + "description": "Nodes:ImageLoadFromBase64, ImageLoadByPath, ImageLoadAsMaskByPath, ImageSaveToPath, ImageSaveAsBase64, VHSFileNamesToStrings(IOHelpers)." }, { "author": "flowtyone", @@ -4570,6 +5987,7 @@ { "author": "SiliconFlow", "title": "OneDiff Nodes", + "id": "onddiff", "reference": "https://github.com/siliconflow/onediff_comfy_nodes", "files": [ "https://github.com/siliconflow/onediff_comfy_nodes" @@ -4577,19 +5995,10 @@ "install_type": "git-clone", "description": "[a/Onediff](https://github.com/siliconflow/onediff) ComfyUI Nodes." }, - { - "author": "ZHO-ZHO-ZHO", - "title": "ComfyUI-ArtGallery", - "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery", - "files": [ - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery" - ], - "install_type": "git-clone", - "description": "Prompt Visualization | Art Gallery\n[w/WARN: Installation requires 2GB of space, and it will involve a long download time.]" - }, { "author": "hinablue", "title": "ComfyUI 3D Pose Editor", + "id": "3d-pose-editor", "reference": "https://github.com/hinablue/ComfyUI_3dPoseEditor", "files": [ "https://github.com/hinablue/ComfyUI_3dPoseEditor" @@ -4600,6 +6009,7 @@ { "author": "chaojie", "title": "ComfyUI-CameraCtrl-Wrapper", + "id": "cameractrl-wrapper", "reference": "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper", "files": [ "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper" @@ -4610,6 +6020,7 @@ { "author": "chaojie", "title": "ComfyUI-EasyAnimate", + "id": "easyanimate", "reference": "https://github.com/chaojie/ComfyUI-EasyAnimate", "files": [ "https://github.com/chaojie/ComfyUI-EasyAnimate" @@ -4620,6 +6031,7 @@ { "author": "chaojie", "title": "ComfyUI_StreamingT2V", + "id": "streamingt2v", "reference": "https://github.com/chaojie/ComfyUI_StreamingT2V", "files": [ "https://github.com/chaojie/ComfyUI_StreamingT2V" @@ -4630,16 +6042,18 @@ { "author": "chaojie", "title": "ComfyUI-Open-Sora-Plan", + "id": "opensora-plan", "reference": "https://github.com/chaojie/ComfyUI-Open-Sora-Plan", "files": [ "https://github.com/chaojie/ComfyUI-Open-Sora-Plan" ], "install_type": "git-clone", - "description": "ComfyUI-Open-Sora-Plan" + "description": "ComfyUI node for [a/Open-Sora-Plan](https://github.com/PKU-YuanGroup/Open-Sora-Plan)" }, { "author": "chaojie", "title": "ComfyUI-MuseTalk", + "id": "musetalk-chaojie", "reference": "https://github.com/chaojie/ComfyUI-MuseTalk", "files": [ "https://github.com/chaojie/ComfyUI-MuseTalk" @@ -4650,6 +6064,7 @@ { "author": "chaojie", "title": "ComfyUI-MuseV", + "id": "musev", "reference": "https://github.com/chaojie/ComfyUI-MuseV", "files": [ "https://github.com/chaojie/ComfyUI-MuseV" @@ -4660,6 +6075,7 @@ { "author": "chaojie", "title": "ComfyUI-AniPortrait", + "id": "aniportrait", "reference": "https://github.com/chaojie/ComfyUI-AniPortrait", "files": [ "https://github.com/chaojie/ComfyUI-AniPortrait" @@ -4670,6 +6086,7 @@ { "author": "chaojie", "title": "ComfyUI-Img2Img-Turbo", + "id": "img2img-turbo", "reference": "https://github.com/chaojie/ComfyUI-Img2Img-Turbo", "files": [ "https://github.com/chaojie/ComfyUI-Img2Img-Turbo" @@ -4680,6 +6097,7 @@ { "author": "chaojie", "title": "ComfyUI-Champ", + "id": "champ", "reference": "https://github.com/chaojie/ComfyUI-Champ", "files": [ "https://github.com/chaojie/ComfyUI-Champ" @@ -4690,6 +6108,7 @@ { "author": "chaojie", "title": "ComfyUI-Open-Sora", + "id": "opensora", "reference": "https://github.com/chaojie/ComfyUI-Open-Sora", "files": [ "https://github.com/chaojie/ComfyUI-Open-Sora" @@ -4700,6 +6119,7 @@ { "author": "chaojie", "title": "ComfyUI-Trajectory", + "id": "trajectory", "reference": "https://github.com/chaojie/ComfyUI-Trajectory", "files": [ "https://github.com/chaojie/ComfyUI-Trajectory" @@ -4710,6 +6130,7 @@ { "author": "chaojie", "title": "ComfyUI-dust3r", + "id": "dust3r", "reference": "https://github.com/chaojie/ComfyUI-dust3r", "files": [ "https://github.com/chaojie/ComfyUI-dust3r" @@ -4720,6 +6141,7 @@ { "author": "chaojie", "title": "ComfyUI-Gemma", + "id": "gamma", "reference": "https://github.com/chaojie/ComfyUI-Gemma", "files": [ "https://github.com/chaojie/ComfyUI-Gemma" @@ -4730,6 +6152,7 @@ { "author": "chaojie", "title": "ComfyUI-DynamiCrafter", + "id": "dynamicrafter-chaojie", "reference": "https://github.com/chaojie/ComfyUI-DynamiCrafter", "files": [ "https://github.com/chaojie/ComfyUI-DynamiCrafter" @@ -4740,6 +6163,7 @@ { "author": "chaojie", "title": "ComfyUI-Panda3d", + "id": "panda3d", "reference": "https://github.com/chaojie/ComfyUI-Panda3d", "files": [ "https://github.com/chaojie/ComfyUI-Panda3d" @@ -4750,6 +6174,7 @@ { "author": "chaojie", "title": "ComfyUI-Pymunk", + "id": "pymunk", "reference": "https://github.com/chaojie/ComfyUI-Pymunk", "files": [ "https://github.com/chaojie/ComfyUI-Pymunk" @@ -4760,6 +6185,7 @@ { "author": "chaojie", "title": "ComfyUI-MotionCtrl", + "id": "motionctrl", "reference": "https://github.com/chaojie/ComfyUI-MotionCtrl", "files": [ "https://github.com/chaojie/ComfyUI-MotionCtrl" @@ -4770,6 +6196,7 @@ { "author": "chaojie", "title": "ComfyUI-Motion-Vector-Extractor", + "id": "motion-vector-extractor", "reference": "https://github.com/chaojie/ComfyUI-Motion-Vector-Extractor", "files": [ "https://github.com/chaojie/ComfyUI-Motion-Vector-Extractor" @@ -4780,6 +6207,7 @@ { "author": "chaojie", "title": "ComfyUI-MotionCtrl-SVD", + "id": "motionctrl-svd", "reference": "https://github.com/chaojie/ComfyUI-MotionCtrl-SVD", "files": [ "https://github.com/chaojie/ComfyUI-MotionCtrl-SVD" @@ -4790,6 +6218,7 @@ { "author": "chaojie", "title": "ComfyUI-DragAnything", + "id": "draganything", "reference": "https://github.com/chaojie/ComfyUI-DragAnything", "files": [ "https://github.com/chaojie/ComfyUI-DragAnything" @@ -4800,6 +6229,7 @@ { "author": "chaojie", "title": "ComfyUI-DragNUWA", + "id": "dragnuwa", "reference": "https://github.com/chaojie/ComfyUI-DragNUWA", "files": [ "https://github.com/chaojie/ComfyUI-DragNUWA" @@ -4810,6 +6240,7 @@ { "author": "chaojie", "title": "ComfyUI-Moore-AnimateAnyone", + "id": "moore-animateanyone", "reference": "https://github.com/chaojie/ComfyUI-Moore-AnimateAnyone", "files": [ "https://github.com/chaojie/ComfyUI-Moore-AnimateAnyone" @@ -4820,6 +6251,7 @@ { "author": "chaojie", "title": "ComfyUI-I2VGEN-XL", + "id": "i2vgen-xl", "reference": "https://github.com/chaojie/ComfyUI-I2VGEN-XL", "files": [ "https://github.com/chaojie/ComfyUI-I2VGEN-XL" @@ -4830,6 +6262,7 @@ { "author": "chaojie", "title": "ComfyUI-LightGlue", + "id": "lightglue", "reference": "https://github.com/chaojie/ComfyUI-LightGlue", "files": [ "https://github.com/chaojie/ComfyUI-LightGlue" @@ -4840,6 +6273,7 @@ { "author": "chaojie", "title": "ComfyUI-RAFT", + "id": "raft", "reference": "https://github.com/chaojie/ComfyUI-RAFT", "files": [ "https://github.com/chaojie/ComfyUI-RAFT" @@ -4847,9 +6281,43 @@ "install_type": "git-clone", "description": "This is an ComfyUI implementation of RAFT to generate motion brush" }, + { + "author": "chaojie", + "title": "ComfyUI-LaVIT", + "id": "lavit", + "reference": "https://github.com/chaojie/ComfyUI-LaVIT", + "files": [ + "https://github.com/chaojie/ComfyUI-LaVIT" + ], + "install_type": "git-clone", + "description": "Nodes:VideoLaVITLoader, VideoLaVITT2V, VideoLaVITI2V, VideoLaVITI2VLong, VideoLaVITT2VLong, VideoLaVITI2I" + }, + { + "author": "chaojie", + "title": "ComfyUI-SimDA", + "id": "simda", + "reference": "https://github.com/chaojie/ComfyUI-SimDA", + "files": [ + "https://github.com/chaojie/ComfyUI-SimDA" + ], + "install_type": "git-clone", + "description": "Nodes:SimDATrain, SimDALoader, SimDARun, VHS_FILENAMES_STRING_SimDA" + }, + { + "author": "chaojie", + "title": "ComfyUI-Video-Editing-X-Attention", + "id": "video-editing-x-attention", + "reference": "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention", + "files": [ + "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention" + ], + "install_type": "git-clone", + "description": "Investigating the Effectiveness of Cross Attention to Unlock Zero-Shot Editing of Text-to-Video Diffusion Models" + }, { "author": "alexopus", "title": "ComfyUI Image Saver", + "id": "comfyui-image-saver", "reference": "https://github.com/alexopus/ComfyUI-Image-Saver", "files": [ "https://github.com/alexopus/ComfyUI-Image-Saver" @@ -4857,9 +6325,20 @@ "install_type": "git-clone", "description": "Allows you to save images with their generation metadata compatible with Civitai. Works with png, jpeg and webp. Stores LoRAs, models and embeddings hashes for resource recognition." }, + { + "author": "alexopus", + "title": "ComfyUI Notes Sidebar", + "reference": "https://github.com/alexopus/ComfyUI-Notes-Sidebar", + "files": [ + "https://github.com/alexopus/ComfyUI-Notes-Sidebar" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that adds a notes sidebar for managing notes" + }, { "author": "kft334", "title": "Knodes", + "id": "knodes", "reference": "https://github.com/kft334/Knodes", "files": [ "https://github.com/kft334/Knodes" @@ -4870,17 +6349,19 @@ { "author": "MrForExample", "title": "ComfyUI-3D-Pack", + "id": "3dpack", "reference": "https://github.com/MrForExample/ComfyUI-3D-Pack", "files": [ "https://github.com/MrForExample/ComfyUI-3D-Pack" ], "nodename_pattern": "^\\[Comfy3D\\]", "install_type": "git-clone", - "description": "An extensive node suite that enables ComfyUI to process 3D inputs (Mesh & UV Texture, etc) using cutting edge algorithms (3DGS, NeRF, etc.)\nNOTE: Pre-built python wheels can be download from [a/https://github.com/remsky/ComfyUI3D-Assorted-Wheels](https://github.com/remsky/ComfyUI3D-Assorted-Wheels)" + "description": "Make 3D assets generation in ComfyUI good and convenient as it generates image/video!\nThis is an extensive node suite that enables ComfyUI to process 3D inputs (Mesh & UV Texture, etc.) using cutting edge algorithms (3DGS, NeRF, etc.) and models (InstantMesh, CRM, TripoSR, etc.)\nNOTE: Pre-built python wheels can manually download from [a/https://github.com/MrForExample/Comfy3D_Pre_Builds](https://github.com/MrForExample/Comfy3D_Pre_Builds) if automatic install failed" }, { "author": "Mr.ForExample", "title": "ComfyUI-AnimateAnyone-Evolved", + "id": "animateanyone-evolved", "reference": "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved", "files": [ "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved" @@ -4889,36 +6370,6 @@ "install_type": "git-clone", "description": "Improved AnimateAnyone implementation that allows you to use the opse image sequence and reference image to generate stylized video.\nThe current goal of this project is to achieve desired pose2video result with 1+FPS on GPUs that are equal to or better than RTX 3080!🚀\n[w/The torch environment may be compromised due to version issues as some torch-related packages are being reinstalled.]" }, - { - "author": "Hangover3832", - "title": "ComfyUI-Hangover-Nodes", - "reference": "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes", - "files": [ - "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes" - ], - "install_type": "git-clone", - "description": "Nodes: MS kosmos-2 Interrogator, Save Image w/o Metadata, Image Scale Bounding Box. An implementation of Microsoft [a/kosmos-2](https://huggingface.co/microsoft/kosmos-2-patch14-224) image to text transformer." - }, - { - "author": "Hangover3832", - "title": "ComfyUI-Hangover-Moondream", - "reference": "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream", - "files": [ - "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream" - ], - "install_type": "git-clone", - "description": "Moondream is a lightweight multimodal large language model.\n[w/WARN:Additional python code will be downloaded from huggingface and executed. You have to trust this creator if you want to use this node!]" - }, - { - "author": "Hangover3832", - "title": "Recognize Anything Model (RAM) for ComfyUI", - "reference": "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything", - "files": [ - "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything" - ], - "install_type": "git-clone", - "description": "This is an image recognition node for ComfyUI based on the RAM++ model from [a/xinyu1205](https://huggingface.co/xinyu1205).\nThis node outputs a string of tags with all the recognized objects and elements in the image in English or Chinese language.\nFor image tagging and captioning." - }, { "author": "tzwm", "title": "ComfyUI Profiler", @@ -4969,16 +6420,6 @@ "install_type": "git-clone", "description": "Nodes:SingleImageDataUrlLoader" }, - { - "author": "ginlov", - "title": "segment_to_mask_comfyui", - "reference": "https://github.com/ginlov/segment_to_mask_comfyui", - "files": [ - "https://github.com/ginlov/segment_to_mask_comfyui" - ], - "install_type": "git-clone", - "description": "Nodes:SegToMask" - }, { "author": "glowcone", "title": "Load Image From Base64 URI", @@ -4989,6 +6430,16 @@ "install_type": "git-clone", "description": "Nodes: LoadImageFromBase64. Loads an image and its transparency mask from a base64-encoded data URI for easy API connection." }, + { + "author": "glowcone", + "title": "String Converter", + "reference": "https://github.com/glowcone/comfyui-string-converter", + "files": [ + "https://github.com/glowcone/comfyui-string-converter" + ], + "install_type": "git-clone", + "description": "Nodes: Convert String To Int, Convert String To Float" + }, { "author": "AInseven", "title": "ComfyUI-fastblend", @@ -5069,6 +6520,26 @@ "install_type": "git-clone", "description": "Make it possible to edit the prompt using the Monaco Editor, an editor implementation used in VSCode.\nNOTE: This extension supports both ComfyUI and A1111 simultaneously." }, + { + "author": "Taremin", + "title": "comfyui-keep-multiple-tabs", + "reference": "https://github.com/Taremin/comfyui-keep-multiple-tabs", + "files": [ + "https://github.com/Taremin/comfyui-keep-multiple-tabs" + ], + "install_type": "git-clone", + "description": "This is an extension for ComfyUI. It retains multiple workflow tabs so that they are not lost when reloading or restarting." + }, + { + "author": "Taremin", + "title": "comfyui-prompt-config", + "reference": "https://github.com/Taremin/comfyui-prompt-config", + "files": [ + "https://github.com/Taremin/comfyui-prompt-config" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI.\nThe PromptGenerationConfig node allows users to configure settings such as image dimensions, step count, and CFGScale through prompts during image generation.\nThe PromptEdit node enables users to add text from the prompt to the negative prompt (or vice versa) and replace parts of the prompt using regular expressions." + }, { "author": "foxtrot-roger", "title": "RF Nodes", @@ -5142,6 +6613,7 @@ { "author": "nkchocoai", "title": "ComfyUI-Dart", + "id": "dart", "reference": "https://github.com/nkchocoai/ComfyUI-Dart", "files": [ "https://github.com/nkchocoai/ComfyUI-Dart" @@ -5149,19 +6621,31 @@ "install_type": "git-clone", "description": "Add nodes that generates danbooru tags by [a/Dart(Danbooru Tags Transformer)](https://huggingface.co/p1atdev/dart-v1-sft)." }, + { + "author": "nkchocoai", + "title": "ComfyUI-DanbooruPromptQuiz", + "reference": "https://github.com/nkchocoai/ComfyUI-DanbooruPromptQuiz", + "files": [ + "https://github.com/nkchocoai/ComfyUI-DanbooruPromptQuiz" + ], + "install_type": "git-clone", + "description": "This node is for playing the game of guessing prompts by looking at images generated from prompts output by TIPO, Tagger, etc.." + }, { "author": "JaredTherriault", "title": "ComfyUI-JNodes", + "id": "jnodes", "reference": "https://github.com/JaredTherriault/ComfyUI-JNodes", "files": [ "https://github.com/JaredTherriault/ComfyUI-JNodes" ], "install_type": "git-clone", - "description": "python and web UX improvements for ComfyUI.\n[w/'DynamicPrompts.js' and 'EditAttention.js' from the core, along with 'ImageFeed.js' and 'favicon.js' from the custom scripts of pythongosssss, are not compatible. Therefore, manual deletion of these files is required to use this web extension.]" + "description": "python and web UX improvements for ComfyUI: Lora/Embedding picker, web extension manager (enable/disable any extension without disabling python nodes), control any parameter with text prompts, image and video viewer, metadata viewer, token counter, comments in prompts, font control, and more! \n[w/'ImageFeed.js' from the custom scripts of pythongosssss is not compatible with this suite's ImageDrawer feature. Additionally, 'DynamicPrompts.js' and 'EditAttention.js' from the core, along with 'favicon.js' from the custom scripts of pythongosssss, are incompatible with advanced features of the suite. Please use the JNodes Extension Management setting in Settings > JNodes > Extension Management to disable these extensions by unchecking them to use the full functionality of the suite.]" }, { "author": "prozacgod", "title": "ComfyUI Multi-Workspace", + "id": "multi-workspace", "reference": "https://github.com/prozacgod/comfyui-pzc-multiworkspace", "files": [ "https://github.com/prozacgod/comfyui-pzc-multiworkspace" @@ -5172,16 +6656,18 @@ { "author": "Siberpone", "title": "Lazy Pony Prompter", + "id": "lazy-pony-prompter", "reference": "https://github.com/Siberpone/lazy-pony-prompter", "files": [ "https://github.com/Siberpone/lazy-pony-prompter" ], "install_type": "git-clone", - "description": "A pony prompt helper extension for AUTOMATIC1111's Stable Diffusion Web UI and ComfyUI that utilizes the full power of your favorite booru query syntax. Currently supports [a/Derpibooru](https://derpibooru/org) and [a/E621](https://e621.net/)." + "description": "A booru API powered prompt generator for A1111 and ComfyUI with flexible tag filtering system and customizable prompt templates." }, { "author": "dave-palt", "title": "comfyui_DSP_imagehelpers", + "id": "dsp-imagehelpers", "reference": "https://github.com/dave-palt/comfyui_DSP_imagehelpers", "files": [ "https://github.com/dave-palt/comfyui_DSP_imagehelpers" @@ -5192,6 +6678,7 @@ { "author": "Inzaniak", "title": "Ranbooru for ComfyUI", + "id": "ranbooru", "reference": "https://github.com/Inzaniak/comfyui-ranbooru", "files": [ "https://github.com/Inzaniak/comfyui-ranbooru" @@ -5202,6 +6689,7 @@ { "author": "miosp", "title": "ComfyUI-FBCNN", + "id": "fbcnn", "reference": "https://github.com/Miosp/ComfyUI-FBCNN", "files": [ "https://github.com/Miosp/ComfyUI-FBCNN" @@ -5212,6 +6700,7 @@ { "author": "JcandZero", "title": "ComfyUI_GLM4Node", + "id": "glm4node", "reference": "https://github.com/JcandZero/ComfyUI_GLM4Node", "files": [ "https://github.com/JcandZero/ComfyUI_GLM4Node" @@ -5222,6 +6711,7 @@ { "author": "darkpixel", "title": "DarkPrompts", + "id": "darkprompts", "reference": "https://github.com/darkpixel/darkprompts", "files": [ "https://github.com/darkpixel/darkprompts" @@ -5230,18 +6720,21 @@ "description": "Slightly better random prompt generation tools that allow combining and picking prompts from both file and text input sources." }, { - "author": "shiimizu", - "title": "ComfyUI PhotoMaker Plus", - "reference": "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus", + "author": "yytdfc", + "title": "Amazon Bedrock nodes for ComfyUI", + "id": "bedrock", + "reference": "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock", "files": [ - "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus" + "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock" ], + "pip": ["boto3"], "install_type": "git-clone", - "description": "ComfyUI reference implementation for [a/PhotoMaker](https://github.com/TencentARC/PhotoMaker) models. [w/WARN:The repository name has been changed. For those who have previously installed it, please delete custom_nodes/ComfyUI-PhotoMaker from disk and reinstall this.]" + "description": "Amazon Bedrock is a fully managed service that offers a choice of high-performing foundation models (FMs) from leading AI companies. This repo is the ComfyUI nodes for Bedrock service. You could invoke the foundation model in your ComfyUI pipeline." }, { "author": "Qais Malkawi", "title": "ComfyUI-Qais-Helper", + "id": "qais-helper", "reference": "https://github.com/QaisMalkawi/ComfyUI-QaisHelper", "files": [ "https://github.com/QaisMalkawi/ComfyUI-QaisHelper" @@ -5252,6 +6745,7 @@ { "author": "longgui0318", "title": "comfyui-mask-util", + "id": "mask-util", "reference": "https://github.com/longgui0318/comfyui-mask-util", "files": [ "https://github.com/longgui0318/comfyui-mask-util" @@ -5262,6 +6756,7 @@ { "author": "longgui0318", "title": "comfyui-llm-assistant", + "id": "llm-assistant", "reference": "https://github.com/longgui0318/comfyui-llm-assistant", "files": [ "https://github.com/longgui0318/comfyui-llm-assistant" @@ -5271,13 +6766,25 @@ }, { "author": "longgui0318", - "title": "comfyui-oms-diffusion", - "reference": "https://github.com/longgui0318/comfyui-oms-diffusion", + "title": "comfyui-magic-clothing", + "id": "magic-clothing", + "reference": "https://github.com/longgui0318/comfyui-magic-clothing", "files": [ - "https://github.com/longgui0318/comfyui-oms-diffusion" + "https://github.com/longgui0318/comfyui-magic-clothing" ], "install_type": "git-clone", - "description": "Nodes:Extract Features With Unet, Additional Features With Attention" + "description": "The comfyui supported version of the [a/Magic Clothing](https://github.com/ShineChen1024/MagicClothing) project, not the diffusers version, allows direct integration with modules such as ipadapter.[w/comfyui-oms-diffusion is renamed to comfyui-magic-clothing. You may need to reinstall this.]" + }, + { + "author": "longgui0318", + "title": "comfyui-common-util", + "id": "common-util", + "reference": "https://github.com/longgui0318/comfyui-common-util", + "files": [ + "https://github.com/longgui0318/comfyui-common-util" + ], + "install_type": "git-clone", + "description": "Nodes:Init Layer Info Array, Added Layer Info To Array, Layer Info Array Fuse, Layer Image Seleted, Layer Images IPAdapter Advanced, Enhanced Random Light Source" }, { "author": "DimaChaichan", @@ -5292,6 +6799,7 @@ { "author": "adriflex", "title": "ComfyUI_Blender_Texdiff", + "id": "blender-texdiff", "reference": "https://github.com/adriflex/ComfyUI_Blender_Texdiff", "files": [ "https://github.com/adriflex/ComfyUI_Blender_Texdiff" @@ -5302,6 +6810,7 @@ { "author": "Shraknard", "title": "ComfyUI-Remover", + "id": "remover", "reference": "https://github.com/Shraknard/ComfyUI-Remover", "files": [ "https://github.com/Shraknard/ComfyUI-Remover" @@ -5322,6 +6831,7 @@ { "author": "Nlar", "title": "ComfyUI_CartoonSegmentation", + "id": "cartoon-seg", "reference": "https://github.com/Nlar/ComfyUI_CartoonSegmentation", "files": [ "https://github.com/Nlar/ComfyUI_CartoonSegmentation" @@ -5332,6 +6842,7 @@ { "author": "godspede", "title": "ComfyUI Substring", + "id": "substring", "reference": "https://github.com/godspede/ComfyUI_Substring", "files": [ "https://github.com/godspede/ComfyUI_Substring" @@ -5342,6 +6853,7 @@ { "author": "gokayfem", "title": "VLM_nodes", + "id": "vlm", "reference": "https://github.com/gokayfem/ComfyUI_VLM_nodes", "files": [ "https://github.com/gokayfem/ComfyUI_VLM_nodes" @@ -5352,6 +6864,7 @@ { "author": "gokayfem", "title": "ComfyUI-Dream-Interpreter", + "id": "dream-interpreter", "reference": "https://github.com/gokayfem/ComfyUI-Dream-Interpreter", "files": [ "https://github.com/gokayfem/ComfyUI-Dream-Interpreter" @@ -5362,6 +6875,7 @@ { "author": "gokayfem", "title": "ComfyUI-Depth-Visualization", + "id": "delpth-visualization", "reference": "https://github.com/gokayfem/ComfyUI-Depth-Visualization", "files": [ "https://github.com/gokayfem/ComfyUI-Depth-Visualization" @@ -5372,6 +6886,7 @@ { "author": "gokayfem", "title": "ComfyUI-Texture-Simple", + "id": "texture-simple", "reference": "https://github.com/gokayfem/ComfyUI-Texture-Simple", "files": [ "https://github.com/gokayfem/ComfyUI-Texture-Simple" @@ -5379,9 +6894,20 @@ "install_type": "git-clone", "description": "Visualize your textures inside ComfyUI" }, + { + "author": "gokayfem", + "title": "ComfyUI-fal-API", + "reference": "https://github.com/gokayfem/ComfyUI-fal-API", + "files": [ + "https://github.com/gokayfem/ComfyUI-fal-API" + ], + "install_type": "git-clone", + "description": "Custom nodes for using fal API. Video generation with Kling, Runway, Luma. Image generation with Flux. LLMs and VLMs OpenAI, Claude, Llama and Gemini." + }, { "author": "Hiero207", "title": "Hiero-Nodes", + "id": "hiero", "reference": "https://github.com/Hiero207/ComfyUI-Hiero-Nodes", "files": [ "https://github.com/Hiero207/ComfyUI-Hiero-Nodes" @@ -5392,6 +6918,7 @@ { "author": "azure-dragon-ai", "title": "ComfyUI-ClipScore-Nodes", + "id": "clipscore", "reference": "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes", "files": [ "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes" @@ -5399,9 +6926,20 @@ "install_type": "git-clone", "description": "Nodes:ImageScore, Loader, Image Processor, Real Image Processor, Fake Image Processor, Text Processor. ComfyUI Nodes for ClipScore" }, + { + "author": "azure-dragon-ai", + "title": "ComfyUI-HPSv2-Nodes", + "reference": "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes", + "files": [ + "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI Nodes for HPSv2, Human Preference Score v2: A Solid Benchmark for Evaluating Human Preferences of Text-to-Image Synthesis" + }, { "author": "yuvraj108c", "title": "ComfyUI Whisper", + "id": "whisper", "reference": "https://github.com/yuvraj108c/ComfyUI-Whisper", "files": [ "https://github.com/yuvraj108c/ComfyUI-Whisper" @@ -5412,6 +6950,7 @@ { "author": "yuvraj108c", "title": "ComfyUI-Pronodes", + "id": "pronodes", "reference": "https://github.com/yuvraj108c/ComfyUI-Pronodes", "files": [ "https://github.com/yuvraj108c/ComfyUI-Pronodes" @@ -5422,6 +6961,7 @@ { "author": "yuvraj108c", "title": "ComfyUI-Vsgan", + "id": "vsgan", "reference": "https://github.com/yuvraj108c/ComfyUI-Vsgan", "files": [ "https://github.com/yuvraj108c/ComfyUI-Vsgan" @@ -5432,6 +6972,7 @@ { "author": "yuvraj108c", "title": "ComfyUI Depth Anything TensorRT", + "id": "depth-anything-tensorrt", "reference": "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt", "files": [ "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt" @@ -5442,6 +6983,7 @@ { "author": "yuvraj108c", "title": "ComfyUI PiperTTS", + "id": "pipertts", "reference": "https://github.com/yuvraj108c/ComfyUI-PiperTTS", "files": [ "https://github.com/yuvraj108c/ComfyUI-PiperTTS" @@ -5449,9 +6991,103 @@ "install_type": "git-clone", "description": "Convert Text-to-Speech inside ComfyUI using [a/Piper](https://github.com/rhasspy/piper)" }, + { + "author": "yuvraj108c", + "title": "ComfyUI Upscaler TensorRT", + "id": "upscaler-tensorrt", + "reference": "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt" + ], + "install_type": "git-clone", + "description": "This project provides a Tensorrt implementation for fast image upscaling inside ComfyUI (3-4x faster)" + }, + { + "author": "yuvraj108c", + "title": "ComfyUI YoloNasPose Tensorrt", + "id": "yolonaspose-tensorrt", + "reference": "https://github.com/yuvraj108c/ComfyUI-YoloNasPose-Tensorrt", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-YoloNasPose-Tensorrt" + ], + "install_type": "git-clone", + "description": "This repo provides a ComfyUI Custom Node implementation of [a/YOLO-NAS-POSE](https://github.com/Deci-AI/super-gradients), powered by TensorRT for ultra fast pose estimation. It has been adapted to work with openpose controlnet (experimental)" + }, + { + "author": "yuvraj108c", + "title": "ComfyUI Dwpose TensorRT", + "id": "dwpose-tensorrt", + "reference": "https://github.com/yuvraj108c/ComfyUI-Dwpose-Tensorrt", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-Dwpose-Tensorrt" + ], + "install_type": "git-clone", + "description": "This project provides a Tensorrt implementation of Dwpose for ultra fast pose estimation inside ComfyUI" + }, + { + "author": "yuvraj108c", + "title": "ComfyUI Facerestore TensorRT", + "reference": "https://github.com/yuvraj108c/ComfyUI-Facerestore-Tensorrt", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-Facerestore-Tensorrt" + ], + "install_type": "git-clone", + "description": "This project provides an experimental Tensorrt implementation for ultra fast face restoration inside ComfyUI.\nNote: This project doesn't do pre/post processing. It only works on cropped faces for now." + }, + { + "author": "yuvraj108c", + "title": "ComfyUI Rife TensorRT", + "reference": "https://github.com/yuvraj108c/ComfyUI-Rife-Tensorrt", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-Rife-Tensorrt" + ], + "install_type": "git-clone", + "description": "This project provides a TensorRT implementation of [a/RIFE](https://github.com/hzwer/ECCV2022-RIFE) for ultra fast frame interpolation inside ComfyUI" + }, + { + "author": "yuvraj108c", + "title": "ComfyUI Video Depth Anything", + "reference": "https://github.com/yuvraj108c/ComfyUI-Video-Depth-Anything", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-Video-Depth-Anything" + ], + "install_type": "git-clone", + "description": "This project is an unofficial ComfyUI implementation of [a/Video Depth Anything](https://github.com/DepthAnything/Video-Depth-Anything), for depth estimation on long videos without compromising quality, consistency, or generalization ability." + }, + { + "author": "yuvraj108c", + "title": "ComfyUI InvSR", + "reference": "https://github.com/yuvraj108c/ComfyUI_InvSR", + "files": [ + "https://github.com/yuvraj108c/ComfyUI_InvSR" + ], + "install_type": "git-clone", + "description": "This project is an unofficial ComfyUI implementation of [a/InvSR](https://github.com/zsyOAOA/InvSR) (Arbitrary-steps Image Super-resolution via Diffusion Inversion)" + }, + { + "author": "yuvraj108c", + "title": "ComfyUI Thera", + "reference": "https://github.com/yuvraj108c/ComfyUI-Thera", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-Thera" + ], + "install_type": "git-clone", + "description": "This project is an unofficial ComfyUI implementation of [a/Thera](https://github.com/prs-eth/thera) (Aliasing-Free Arbitrary-Scale Super-Resolution with Neural Heat Fields)" + }, + { + "author": "yuvraj108c", + "title": "ComfyUI FLOAT", + "reference": "https://github.com/yuvraj108c/ComfyUI-FLOAT", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-FLOAT" + ], + "install_type": "git-clone", + "description": "This project provides an unofficial ComfyUI implementation of [a/FLOAT](https://github.com/deepbrainai-research/float) for Generative Motion Latent Flow Matching for Audio-driven Talking Portrait" + }, { "author": "blepping", "title": "ComfyUI-bleh", + "id": "bleh", "reference": "https://github.com/blepping/ComfyUI-bleh", "files": [ "https://github.com/blepping/ComfyUI-bleh" @@ -5462,6 +7098,7 @@ { "author": "blepping", "title": "ComfyUI-sonar", + "id": "sonar", "reference": "https://github.com/blepping/ComfyUI-sonar", "files": [ "https://github.com/blepping/ComfyUI-sonar" @@ -5469,6 +7106,48 @@ "install_type": "git-clone", "description": "A janky implementation of Sonar sampling (momentum-based sampling) for ComfyUI." }, + { + "author": "blepping", + "title": "comfyui_jankhidiffusion", + "id": "jank-hidiffusion", + "reference": "https://github.com/blepping/comfyui_jankhidiffusion", + "files": [ + "https://github.com/blepping/comfyui_jankhidiffusion" + ], + "install_type": "git-clone", + "description": "Janky implementation of [a/HiDiffusion](https://github.com/megvii-research/HiDiffusion) for ComfyUI. Enables generating at resolutions higher than what the model was trained for. Only supports SD 1.x (maybe 2.x) and SDXL." + }, + { + "author": "blepping", + "title": "comfyui_jankdiffusehigh", + "id": "jank-diffusehigh", + "reference": "https://github.com/blepping/comfyui_jankdiffusehigh", + "files": [ + "https://github.com/blepping/comfyui_jankdiffusehigh" + ], + "install_type": "git-clone", + "description": "Janky implementation of [a/DiffuseHigh](https://github.com/yhyun225/DiffuseHigh/) for ComfyUI. Enables generating at resolutions higher than what the model was trained for without requiring model patches." + }, + { + "author": "blepping", + "title": "comfyui_overly_complicated_sampling", + "reference": "https://github.com/blepping/comfyui_overly_complicated_sampling", + "files": [ + "https://github.com/blepping/comfyui_overly_complicated_sampling" + ], + "install_type": "git-clone", + "description": "Experimental and mathematically unsound (but fun!) sampling for ComfyUI.\nFeel free create a question in Discussions for usage help: OCS Q&A Discussion[w/Status: In flux, may be useful but likely to change/break workflows frequently. Mainly for advanced users.]" + }, + { + "author": "blepping", + "title": "ComfyUI-ApplyResAdapterUnet", + "reference": "https://github.com/blepping/ComfyUI-ApplyResAdapterUnet", + "files": [ + "https://github.com/blepping/ComfyUI-ApplyResAdapterUnet" + ], + "install_type": "git-clone", + "description": "ComfyUI node to apply the ResAdapter Unet patch for SD1.5 models" + }, { "author": "JerryOrbachJr", "title": "Random Size", @@ -5492,6 +7171,7 @@ { "author": "mape", "title": "mape's helpers", + "id": "mape-helpers", "reference": "https://github.com/mape/ComfyUI-mape-Helpers", "files": [ "https://github.com/mape/ComfyUI-mape-Helpers" @@ -5499,29 +7179,21 @@ "install_type": "git-clone", "description": "Multi-monitor image preview, Variable Assigment/Wireless Nodes, Prompt Tweaking, Command Palette, Pinned favourite nodes, Node navigation, Fuzzy search, Node time tracking, Organizing and Error management. For more info visit: [a/https://comfyui.ma.pe/](https://comfyui.ma.pe/)" }, - { - "author": "zhongpei", - "title": "Comfyui_image2prompt", - "reference": "https://github.com/zhongpei/Comfyui_image2prompt", - "files": [ - "https://github.com/zhongpei/Comfyui_image2prompt" - ], - "install_type": "git-clone", - "description": "Nodes:Image to Text, Loader Image to Text Model." - }, { "author": "zhongpei", "title": "ComfyUI for InstructIR", + "id": "instructir", "reference": "https://github.com/zhongpei/ComfyUI-InstructIR", "files": [ "https://github.com/zhongpei/ComfyUI-InstructIR" ], "install_type": "git-clone", - "description": "Enhancing Image Restoration" + "description": "Enhancing Image Restoration. (ref:[a/InstructIR](https://github.com/mv-lab/InstructIR))" }, { "author": "Loewen-Hob", - "title": "Rembg Background Removal Node for ComfyUI", + "title": "Rembg Background Removal Node for ComfyUI (Better)", + "id": "rembg-better", "reference": "https://github.com/Loewen-Hob/rembg-comfyui-node-better", "files": [ "https://github.com/Loewen-Hob/rembg-comfyui-node-better" @@ -5532,6 +7204,7 @@ { "author": "HaydenReeve", "title": "ComfyUI Better Strings", + "id": "better-string", "reference": "https://github.com/HaydenReeve/ComfyUI-Better-Strings", "files": [ "https://github.com/HaydenReeve/ComfyUI-Better-Strings" @@ -5542,6 +7215,7 @@ { "author": "StartHua", "title": "ComfyUI_Seg_VITON", + "id": "seg-viton", "reference": "https://github.com/StartHua/ComfyUI_Seg_VITON", "files": [ "https://github.com/StartHua/ComfyUI_Seg_VITON" @@ -5552,6 +7226,7 @@ { "author": "StartHua", "title": "Comfyui_joytag", + "id": "joytag", "reference": "https://github.com/StartHua/Comfyui_joytag", "files": [ "https://github.com/StartHua/Comfyui_joytag" @@ -5562,6 +7237,7 @@ { "author": "StartHua", "title": "comfyui_segformer_b2_clothes", + "id": "segformer-b2-clothes", "reference": "https://github.com/StartHua/Comfyui_segformer_b2_clothes", "files": [ "https://github.com/StartHua/Comfyui_segformer_b2_clothes" @@ -5572,6 +7248,7 @@ { "author": "StartHua", "title": "ComfyUI_OOTDiffusion_CXH", + "id": "ootdiffusion-cxh", "reference": "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH", "files": [ "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH" @@ -5579,9 +7256,61 @@ "install_type": "git-clone", "description": "Nodes:Ood_hd_CXH, Ood_hd_CXH. [a/OOTDiffusion](https://github.com/levihsu/OOTDiffusion)" }, + { + "author": "StartHua", + "title": "ComfyUI_PCDMs", + "id": "pcdms", + "reference": "https://github.com/StartHua/ComfyUI_PCDMs", + "files": [ + "https://github.com/StartHua/ComfyUI_PCDMs" + ], + "install_type": "git-clone", + "description": "Original project: [a/link](https://github.com/tencent-ailab/PCDMs)\nBased on testing, the author's original images work very well, but using my own images generally requires some luck!" + }, + { + "author": "StartHua", + "title": "Comfyui_CXH_Phi_3.5", + "reference": "https://github.com/StartHua/Comfyui_CXH_Phi_3.5", + "files": [ + "https://github.com/StartHua/Comfyui_CXH_Phi_3.5" + ], + "install_type": "git-clone", + "description": "Phi-3.5-vision-instruct fast talk with image !\nFast , Fast ,Fast!\n1.Phi-3.5-vision-instruct" + }, + { + "author": "StartHua", + "title": "Comfyui_CXH_DeepLX", + "reference": "https://github.com/StartHua/Comfyui_CXH_DeepLX", + "files": [ + "https://github.com/StartHua/Comfyui_CXH_DeepLX" + ], + "install_type": "git-clone", + "description": "NODES:CXH_DeepLX_Free, CXH_DeepLX_translate" + }, + { + "author": "StartHua", + "title": "Comfyui_CXH_FluxLoraMerge", + "reference": "https://github.com/StartHua/Comfyui_CXH_FluxLoraMerge", + "files": [ + "https://github.com/StartHua/Comfyui_CXH_FluxLoraMerge" + ], + "install_type": "git-clone", + "description": "flux lora merge.\nadaptive Merge (uses tensor norms and weight), manual Merge (uses fixed weights you specify), additive Merge (uses 100% of the first and adds a percentage of the second)" + }, + { + "author": "StartHua", + "title": "Comfyui_Gemini2", + "reference": "https://github.com/StartHua/Comfyui_Gemini2", + "files": [ + "https://github.com/StartHua/Comfyui_Gemini2" + ], + "install_type": "git-clone", + "description": "NODES:CXH_Gemini2_TX, CXH_Gemini2_Vision, CXH_Local_Prompt" + }, { "author": "ricklove", "title": "comfyui-ricklove", + "id": "ricklove", "reference": "https://github.com/ricklove/comfyui-ricklove", "files": [ "https://github.com/ricklove/comfyui-ricklove" @@ -5591,23 +7320,25 @@ }, { "author": "nosiu", - "title": "ComfyUI InstantID Faceswapper", + "title": "comfyui-instantId-faceswap", + "id": "comfyui-instantid-faceswap", "reference": "https://github.com/nosiu/comfyui-instantId-faceswap", "files": [ "https://github.com/nosiu/comfyui-instantId-faceswap" ], "install_type": "git-clone", - "description": "Implementation of [a/faceswap](https://github.com/nosiu/InstantID-faceswap/tree/main) based on [a/InstantID](https://github.com/InstantID/InstantID) for ComfyUI. Allows usage of [a/LCM Lora](https://huggingface.co/latent-consistency/lcm-lora-sdxl) which can produce good results in only a few generation steps.\nNOTE:Works ONLY with SDXL checkpoints." + "description": "Implementation of [a/faceswap](https://github.com/nosiu/InstantID-faceswap/tree/main) based on [a/InstantID](https://github.com/InstantID/InstantID) for ComfyUI." }, { - "author": "zhongpei", - "title": "ComfyUI for InstructIR", - "reference": "https://github.com/zhongpei/ComfyUI-InstructIR", + "author": "nosiu", + "title": "comfyui-text-randomizer", + "id": "comfyui-text-randomizer", + "reference": "https://github.com/nosiu/comfyui-text-randomizer", "files": [ - "https://github.com/zhongpei/ComfyUI-InstructIR" + "https://github.com/nosiu/comfyui-text-randomizer" ], "install_type": "git-clone", - "description": "Enhancing Image Restoration. (ref:[a/InstructIR](https://github.com/mv-lab/InstructIR))" + "description": "A simple text randomizer for ComfyUI that can generate random and surprising results" }, { "author": "LyazS", @@ -5619,6 +7350,16 @@ "install_type": "git-clone", "description": "A Anime Character Segmentation node for comfyui, based on [this hf space](https://huggingface.co/spaces/skytnt/anime-remove-background)." }, + { + "author": "LyazS", + "title": "net tool node for comfyui", + "reference": "https://github.com/LyazS/comfyui-nettools", + "files": [ + "https://github.com/LyazS/comfyui-nettools" + ], + "install_type": "git-clone", + "description": "A net tool node for comfyui, rewrite from [comfyui-tooling-nodes](https://github.com/Acly/comfyui-tooling-nodes) but support more big data sending." + }, { "author": "Chan-0312", "title": "ComfyUI-IPAnimate", @@ -5660,14 +7401,15 @@ "description": "ComfyS3 seamlessly integrates with [a/Amazon S3](https://aws.amazon.com/en/s3/) in ComfyUI. This open-source project provides custom nodes for effortless loading and saving of images, videos, and checkpoint models directly from S3 buckets within the ComfyUI graph interface." }, { - "author": "davask", - "title": "🐰 MarasIT Nodes", - "reference": "https://github.com/davask/ComfyUI-MarasIT-Nodes", + "author": "MaraScott", + "title": "🐰 MaraScott Nodes", + "id": "marascott-nodes", + "reference": "https://github.com/MaraScott/ComfyUI_MaraScott_Nodes", "files": [ - "https://github.com/davask/ComfyUI-MarasIT-Nodes" + "https://github.com/MaraScott/ComfyUI_MaraScott_Nodes" ], "install_type": "git-clone", - "description": "AnyBus Node (AKA UniversalBus or UniBus) is an attempt to provide a Universal Bus Node (as some might say) which is based on AnyType Input/Output.\n[i/INFO:Inspired by :Was Node Suite from WASasquatch, Get/Set nodes from KJNodes, Highway node from Trung0246]" + "description": "A set of nodes including a universal bus, an Inpainting By Mask and a large Upscaler/Refiner\n[AnyBus,McInpainty,McBoaty]" }, { "author": "yffyhk", @@ -5681,17 +7423,18 @@ }, { "author": "dfl", - "title": "CLIP with BREAK syntax", + "title": "comfyui-clip-with-break", "reference": "https://github.com/dfl/comfyui-clip-with-break", "files": [ "https://github.com/dfl/comfyui-clip-with-break" ], "install_type": "git-clone", - "description": "Clip text encoder with BREAK formatting like A1111 (uses conditioning concat)" + "description": "CLIP text encoder with BREAK formatting like A1111 (uses chained ComfyUI conditioning concat)." }, { "author": "dfl", "title": "ComfyUI-TCD-scheduler", + "id": "dfl-tcd", "reference": "https://github.com/dfl/comfyui-tcd-scheduler", "files": [ "https://github.com/dfl/comfyui-tcd-scheduler" @@ -5722,6 +7465,7 @@ { "author": "kadirnar", "title": "ComfyUI-Transformers", + "id": "comfy-transformers", "reference": "https://github.com/kadirnar/ComfyUI-Transformers", "files": [ "https://github.com/kadirnar/ComfyUI-Transformers" @@ -5729,6 +7473,17 @@ "install_type": "git-clone", "description": "ComfyUI-Transformers is a cutting-edge project combining the power of computer vision and natural language processing to create intuitive and user-friendly interfaces. Our goal is to make technology more accessible and engaging." }, + { + "author": "kadirnar", + "title": "ComfyUI-YOLO", + "id": "comfy-yolo", + "reference": "https://github.com/kadirnar/ComfyUI-YOLO", + "files": [ + "https://github.com/kadirnar/ComfyUI-YOLO" + ], + "install_type": "git-clone", + "description": "Nodes:Load Ultralytics Model, Ultralytics Inference, Ultralytics Visualization, Convert to Dictionary, BBox to XYWH" + }, { "author": "digitaljohn", "title": "ComfyUI-ProPost", @@ -5739,16 +7494,6 @@ "install_type": "git-clone", "description": "A set of custom ComfyUI nodes for performing basic post-processing effects including Film Grain and Vignette. These effects can help to take the edge off AI imagery and make them feel more natural." }, - { - "author": "DonBaronFactory", - "title": "ComfyUI-Cre8it-Nodes", - "reference": "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes", - "files": [ - "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes" - ], - "install_type": "git-clone", - "description": "Nodes:CRE8IT Serial Prompter, CRE8IT Apply Serial Prompter, CRE8IT Image Sizer. A few simple nodes to facilitate working wiht ComfyUI Workflows" - }, { "author": "deforum", "title": "Deforum Nodes", @@ -5759,6 +7504,16 @@ "install_type": "git-clone", "description": "Official Deforum animation pipeline tools that provide a unique way to create frame-by-frame generative motion art." }, + { + "author": "XmYx", + "title": "ComfyUI-SmolLM3", + "reference": "https://github.com/XmYx/ComfyUI-SmolLM3", + "files": [ + "https://github.com/XmYx/ComfyUI-SmolLM3" + ], + "install_type": "git-clone", + "description": "Welcome to ComfyUI-SmolLM3, where we bring the magic of Hugging Face's SmolLM3 language models into your ComfyUI workflow! Whether you're crafting stories, generating ideas, or building AI-powered creativity tools, this node pack makes it delightfully simple." + }, { "author": "adbrasi", "title": "ComfyUI-TrashNodes-DownloadHuggingface", @@ -5799,6 +7554,26 @@ "install_type": "git-clone", "description": "A custom node for ComfyUI to create a prompt based on a list of keywords saved in CSV files." }, + { + "author": "Franck-Demongin", + "title": "NX_HuggingFace_Flux", + "reference": "https://github.com/Franck-Demongin/NX_HuggingFace_Flux", + "files": [ + "https://github.com/Franck-Demongin/NX_HuggingFace_Flux" + ], + "install_type": "git-clone", + "description": "Nodes:Hugging Face Flux" + }, + { + "author": "Franck-Demongin", + "title": "NX_Translator", + "reference": "https://github.com/Franck-Demongin/NX_Translator", + "files": [ + "https://github.com/Franck-Demongin/NX_Translator" + ], + "install_type": "git-clone", + "description": "A custom node for translating prompts with Google Translate or DeeplL directly in ComfyUI." + }, { "author": "xiaoxiaodesha", "title": "hd-nodes-comfyui", @@ -5812,6 +7587,7 @@ { "author": "ShmuelRonen", "title": "ComfyUI-SVDResizer", + "id": "svdresizer", "reference": "https://github.com/ShmuelRonen/ComfyUI-SVDResizer", "files": [ "https://github.com/ShmuelRonen/ComfyUI-SVDResizer" @@ -5819,9 +7595,394 @@ "install_type": "git-clone", "description": "SVDResizer is a helper for resizing the source image, according to the sizes enabled in Stable Video Diffusion. The rationale behind the possibility of changing the size of the image in steps between the ranges of 576 and 1024, is the use of the greatest common denominator of these two numbers which is 64. SVD is lenient with resizing that adheres to this rule, so the chance of coherent video that is not the standard size of 576X1024 is greater. It is advisable to keep the value 1024 constant and play with the second size to maintain the stability of the result." }, + { + "author": "ShmuelRonen", + "title": "Wav2Lip Node for ComfyUI", + "id": "wav2lip", + "reference": "https://github.com/ShmuelRonen/ComfyUI_wav2lip", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI_wav2lip" + ], + "install_type": "git-clone", + "description": "The Wav2Lip node is a custom node for ComfyUI that allows you to perform lip-syncing on videos using the Wav2Lip model. It takes an input video and an audio file and generates a lip-synced output video." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI_Gemini_Flash", + "id": "gemini-flash", + "reference": "https://github.com/ShmuelRonen/ComfyUI_Gemini_Flash", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI_Gemini_Flash" + ], + "install_type": "git-clone", + "description": "ComfyUI_Gemini_Flash is a custom node for ComfyUI, integrating the capabilities of the Gemini 1.5 Flash model. This node supports text and vision-based prompts, allowing users to analyze and adapt images to text prompts for text2image tasks." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI_pixtral_vision", + "reference": "https://github.com/ShmuelRonen/ComfyUI_pixtral_vision", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI_pixtral_vision" + ], + "install_type": "git-clone", + "description": "The ComfyUI_pixtral_vision is a powerful ComfyUI node designed to integrate seamlessly with the Mistral Pixtral API. It facilitates the analysis of images through deep learning models, interpreting and describing the visual content. Users can input an image directly and provide prompts for context, utilizing an API key for authentication." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-FreeMemory", + "reference": "https://github.com/ShmuelRonen/ComfyUI-FreeMemory", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-FreeMemory" + ], + "install_type": "git-clone", + "description": "ComfyUI-FreeMemory is a custom node extension for ComfyUI that provides advanced memory management capabilities within your image generation workflows. It aims to help prevent out-of-memory errors and optimize resource usage during complex operations." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI Flux 1.1 Ultra & Raw Node", + "reference": "https://github.com/ShmuelRonen/ComfyUI_Flux_1.1_RAW_API", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI_Flux_1.1_RAW_API" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for Black Forest Labs' FLUX 1.1 [pro] API, supporting both regular and Ultra modes with optional Raw mode." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-AstralAnimator", + "id": "astralanimator", + "reference": "https://github.com/ShmuelRonen/ComfyUI-AstralAnimator", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-AstralAnimator" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that enables smooth, keyframe-based animations for image generation. Create dynamic sequences with control over motion, zoom, rotation, and easing effects. Ideal for AI-assisted animation and video content creation." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-HiggsAudio_Wrapper", + "id": "higgs-audio-wrapper", + "reference": "https://github.com/ShmuelRonen/ComfyUI-HiggsAudio_Wrapper", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-HiggsAudio_Wrapper" + ], + "install_type": "git-clone", + "description": "A comprehensive ComfyUI wrapper for HiggsAudio v2, enabling high-quality text-to-speech generation with advanced voice cloning capabilities. Supports multiple voice presets and custom reference audio for voice cloning. Requires transformers==4.45.2 for compatibility." + }, + { + "author": "ShmuelRonen", + "title": "Apply Style Model Adjust for ComfyUI", + "reference": "https://github.com/ShmuelRonen/ComfyUI-Apply_Style_Model_Adjust", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-Apply_Style_Model_Adjust" + ], + "install_type": "git-clone", + "description": "A custom node that provides enhanced control over style transfer balance when using FLUX style models in ComfyUI. This node offers better control over the influence of text prompts versus style reference images." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI Pixtral Large Extension", + "reference": "https://github.com/ShmuelRonen/ComfyUI_pixtral_large", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI_pixtral_large" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that integrates Mistral AI's Pixtral Large vision model, enabling powerful multimodal AI capabilities within ComfyUI. Pixtral Large is a 124B parameter model (123B decoder + 1B visual encoder)" + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI Coherent Video Sampler Node", + "reference": "https://github.com/ShmuelRonen/ComfyUI-CohernetVideoSampler", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-CohernetVideoSampler" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that enables coherent video generation while maintaining efficient memory usage, specifically optimized for heavy models like Flux." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-Gemini_Flash_2.0_Exp", + "reference": "https://github.com/ShmuelRonen/ComfyUI-Gemini_Flash_2.0_Exp", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-Gemini_Flash_2.0_Exp" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that integrates Google's Gemini Flash 2.0 Experimental model, enabling multimodal analysis of text, images, video frames, and audio directly within ComfyUI workflows." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-ImageMotionGuider", + "reference": "https://github.com/ShmuelRonen/ComfyUI-ImageMotionGuider", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-ImageMotionGuider" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node designed to create seamless motion effects from single images by integrating with Hunyuan Video through latent space manipulation." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-EmptyHunyuanLatent", + "reference": "https://github.com/ShmuelRonen/ComfyUI-EmptyHunyuanLatent", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-EmptyHunyuanLatent" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI to generate empty latent space compatible with Hunyuan models for both image and video generation." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-HunyuanVideoStyler", + "reference": "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoStyler", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoStyler" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that adds cinematic and movie scene styles to video generation prompts. This node helps create more dynamic and professional-looking video outputs by incorporating iconic movie scene aesthetics." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-LatentSyncWrapper", + "reference": "https://github.com/ShmuelRonen/ComfyUI-LatentSyncWrapper", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-LatentSyncWrapper" + ], + "install_type": "git-clone", + "description": "This node provides lip-sync capabilities in ComfyUI using ByteDance's LatentSync model. It allows you to synchronize video lips with audio input." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-HunyuanVideoSamplerSave", + "reference": "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node implementation for optimized video generation and motion effects, designed to work with Hunyuan text-to-video models." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI DeepSeek_R1 Chat Node", + "reference": "https://github.com/ShmuelRonen/ComfyUI-DeepSeek_R1-Chat", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-DeepSeek_R1-Chat" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that integrates DeepSeek's powerful chat and instruction API, enabling seamless AI interactions within your ComfyUI workflows." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI Janus Pro Vision", + "reference": "https://github.com/ShmuelRonen/ComfyUI-Janus_pro_vision", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-Janus_pro_vision" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node extension that integrates the Janus-Pro-7B vision-language model from DeepSeek AI on your's local computer, enabling powerful image understanding and multi-turn conversation capabilities." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-JoyHallo_wrapper", + "reference": "https://github.com/ShmuelRonen/ComfyUI-JoyHallo_wrapper", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-JoyHallo_wrapper" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node wrapper for JoyHallo - One-Shot Audio-Driven Talking Head Generation." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-FreeVC_wrapper", + "reference": "https://github.com/ShmuelRonen/ComfyUI-FreeVC_wrapper", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-FreeVC_wrapper" + ], + "install_type": "git-clone", + "description": "A voice conversion extension node for ComfyUI based on [a/FreeVC](https://github.com/OlaWod/FreeVC), enabling high-quality voice conversion capabilities within the ComfyUI framework." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-WanVideoKsampler", + "reference": "https://github.com/ShmuelRonen/ComfyUI-WanVideoKsampler", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-WanVideoKsampler" + ], + "install_type": "git-clone", + "description": "An advanced custom node for ComfyUI that provides optimized access to Wan2.1, a state-of-the-art video foundation model suite. The WanVideoKsampler node features intelligent memory management to enable higher resolution outputs and longer video sequences, even on consumer-grade hardware." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-PixArt_XL", + "reference": "https://github.com/ShmuelRonen/ComfyUI-PixArt_XL", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-PixArt_XL" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that integrates PixArt-Alpha models directly into ComfyUI with advanced memory management." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-PS_Flatten_Image", + "reference": "https://github.com/ShmuelRonen/ComfyUI-PS_Flatten_Image", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-PS_Flatten_Image" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that simulates Photoshop's 'Flatten Image' functionality." + }, + { + "author": "ShmuelRonen", + "title": "Google Moogle", + "reference": "https://github.com/ShmuelRonen/google_moogle", + "files": [ + "https://github.com/ShmuelRonen/google_moogle" + ], + "install_type": "git-clone", + "description": "A Google Moogle is a Google Translator node for ComfyUI that provides easy-to-use text translation capabilities directly within your ComfyUI workflows." + }, + { + "author": "ShmuelRonen", + "title": "comfyui-openai_fm", + "reference": "https://github.com/ShmuelRonen/comfyui-openai_fm", + "files": [ + "https://github.com/ShmuelRonen/comfyui-openai_fm" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that integrates OpenAI last T2S capabilities for free" + }, + { + "author": "ShmuelRonen", + "title": "DJ_VideoAudioMixer", + "reference": "https://github.com/ShmuelRonen/DJ_VideoAudioMixer", + "files": [ + "https://github.com/ShmuelRonen/DJ_VideoAudioMixer" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI custom node for combining video clips with synchronized audio, background music, and advanced audio controls." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-Veo2-Experimental", + "reference": "https://github.com/ShmuelRonen/ComfyUI-Veo2-Experimental", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-Veo2-Experimental" + ], + "install_type": "git-clone", + "description": "A custom node extension for ComfyUI that integrates Google's Veo 2 text-to-video generation capabilities." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-VideoUpscale_WithModel", + "reference": "https://github.com/ShmuelRonen/ComfyUI-VideoUpscale_WithModel", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-VideoUpscale_WithModel" + ], + "install_type": "git-clone", + "description": "A memory-efficient implementation for upscaling videos in ComfyUI using non-diffusion upscaling models. This custom node is designed to handle large video frame sequences without memory bottlenecks." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-Orpheus-TTS", + "reference": "https://github.com/ShmuelRonen/ComfyUI-Orpheus-TTS", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-Orpheus-TTS" + ], + "install_type": "git-clone", + "description": "This project adds high-quality Text-to-Speech capabilities to ComfyUI using the Orpheus TTS model. Create natural-sounding voices with emotional expressions, multilingual support, and audio effects." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI Hedra Node", + "reference": "https://github.com/ShmuelRonen/ComfyUI_Hedra", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI_Hedra" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that integrates with [a/Hedra](https://www.hedra.com/)'s Character-3 API to generate talking avatar videos from images and audio." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-Audio_Quality_Enhancer", + "reference": "https://github.com/ShmuelRonen/ComfyUI-Audio_Quality_Enhancer", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-Audio_Quality_Enhancer" + ], + "install_type": "git-clone", + "description": "An extension that's adds advanced audio processing capabilities to ComfyUI with professional-grade audio effects and AI-powered audio enhancement." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-FramePackWrapper_Plus", + "reference": "https://github.com/ShmuelRonen/ComfyUI-FramePackWrapper_Plus", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-FramePackWrapper_Plus" + ], + "install_type": "git-clone", + "description": "An extension that's adds advanced audio processing capabilities to ComfyUI with professional-grade audio effects and AI-powered audio enhancement." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-Gemini_TTS", + "reference": "https://github.com/ShmuelRonen/ComfyUI-Gemini_TTS", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-Gemini_TTS" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI custom node that brings Google's Gemini TTS capabilities directly to your workflow. Generate high-quality speech with 30+ voices supporting both free and paid tiers." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI_ChatterBox_Voice", + "reference": "https://github.com/ShmuelRonen/ComfyUI_ChatterBox_Voice", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI_ChatterBox_Voice" + ], + "install_type": "git-clone", + "description": "An unofficial ComfyUI custom node integration for High-quality Text-to-Speech and Voice Conversion nodes for ComfyUI using ResembleAI's ChatterboxTTS with unlimited text length!!!." + }, + { + "author": "ShmuelRonen", + "title": "Flux Kontext Creator for ComfyUI", + "reference": "https://github.com/ShmuelRonen/FluxKontextCreator", + "files": [ + "https://github.com/ShmuelRonen/FluxKontextCreator" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI custom node for text-based image editing using Black Forest Labs' Flux Kontext API. Transform your images with simple text instructions while maintaining character consistency and quality." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-ThinkSound_Wrapper", + "reference": "https://github.com/ShmuelRonen/ComfyUI-ThinkSound_Wrapper", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-ThinkSound_Wrapper" + ], + "install_type": "git-clone", + "description": "A ComfyUI wrapper implementation of ThinkSound - an advanced AI model for generating high-quality audio from text descriptions and video content using Chain-of-Thought (CoT) reasoning." + }, + { + "author": "ShmuelRonen", + "title": "multi-lora-stack", + "reference": "https://github.com/ShmuelRonen/multi-lora-stack", + "files": [ + "https://github.com/ShmuelRonen/multi-lora-stack" + ], + "install_type": "git-clone", + "description": "A complete replacement for rgthree's Power Lora Loader with zero dependencies and two specialized versions to fit any workflow." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-NanoBanano", + "reference": "https://github.com/ShmuelRonen/ComfyUI-NanoBanano", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-NanoBanano" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for Google's Gemini 2.5 Flash Image (aka 'Nano Banana') model - the state-of-the-art image generation and editing AI." + }, { "author": "redhottensors", "title": "ComfyUI-Prediction", + "id": "prediction", "reference": "https://github.com/redhottensors/ComfyUI-Prediction", "files": [ "https://github.com/redhottensors/ComfyUI-Prediction" @@ -5832,6 +7993,7 @@ { "author": "Mamaaaamooooo", "title": "Batch Rembg for ComfyUI", + "id": "batch-rembg", "reference": "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes", "files": [ "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes" @@ -5842,6 +8004,7 @@ { "author": "jordoh", "title": "ComfyUI Deepface", + "id": "deepface", "reference": "https://github.com/jordoh/ComfyUI-Deepface", "files": [ "https://github.com/jordoh/ComfyUI-Deepface" @@ -5852,6 +8015,7 @@ { "author": "al-swaiti", "title": "ComfyUI-CascadeResolutions", + "id": "cascade-resolution", "reference": "https://github.com/al-swaiti/ComfyUI-CascadeResolutions", "files": [ "https://github.com/al-swaiti/ComfyUI-CascadeResolutions" @@ -5860,48 +8024,171 @@ "description": "Nodes:Cascade Resolutions" }, { - "author": "yytdfc", - "title": "Amazon Bedrock nodes for for ComfyUI", - "reference": "https://github.com/yytdfc/ComfyUI-Bedrock", + "author": "al-swaiti", + "title": "All-IN-ONE-style", + "id": "all-in-one-style", + "reference": "https://github.com/al-swaiti/All-IN-ONE-style", "files": [ - "https://github.com/yytdfc/ComfyUI-Bedrock" + "https://github.com/al-swaiti/All-IN-ONE-style" ], "install_type": "git-clone", - "description": "This extension provides fundation models nodes from Amazon Bedrock, including Claude (v1, v2.0, v2.1), SDXL." + "description": "all art styles" + }, + { + "author": "al-swaiti", + "title": "GeminiOllama ComfyUI Extension", + "reference": "https://github.com/al-swaiti/ComfyUI-OllamaGemini", + "files": [ + "https://github.com/al-swaiti/ComfyUI-OllamaGemini" + ], + "install_type": "git-clone", + "description": "ComfyUI extension for Ollama, Gemini, OpenAI, Claude, and Qwen with video and audio support" }, { "author": "mirabarukaso", "title": "ComfyUI_Mira", + "id": "mira", "reference": "https://github.com/mirabarukaso/ComfyUI_Mira", "files": [ "https://github.com/mirabarukaso/ComfyUI_Mira" ], "install_type": "git-clone", - "description": "Nodes:Integer Multiplier, Float Multiplier, Convert Numeral to String, Create Canvas Advanced, Create Canvas, Create PNG Mask, Color Mask to HEX String, Color Mask to INT RGB, Color Masks to List" + "description": "Slice regions of the canvas and convert them to masks for regional conditions widh PNG preview output. And a few support nodes." }, { "author": "1038lab", - "title": "ComfyUI-GPT2P", - "reference": "https://github.com/1038lab/ComfyUI-GPT2P", + "title": "ComfyUI-OmniGen", + "reference": "https://github.com/1038lab/ComfyUI-OmniGen", "files": [ - "https://github.com/1038lab/ComfyUI-GPT2P" + "https://github.com/1038lab/ComfyUI-OmniGen" ], "install_type": "git-clone", - "description": "ComfyUI Node - Hugging Face repositories GTP2 Prompt" + "description": "ComfyUI custom node implementation of OmniGen" }, { - "author": "LykosAI", - "title": "ComfyUI Nodes for Inference.Core", - "reference": "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes", + "author": "1038lab", + "title": "ComfyUI-RMBG", + "reference": "https://github.com/1038lab/ComfyUI-RMBG", "files": [ - "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes" + "https://github.com/1038lab/ComfyUI-RMBG" ], "install_type": "git-clone", - "description": "Primary Nodes for Inference.Core and Stability Matrix. With a focus on not impacting startup performance and using fully qualified Node names." + "description": "A sophisticated ComfyUI custom node engineered for advanced image background removal and precise segmentation of objects, faces, clothing, and fashion elements. This tool leverages a diverse array of models, including RMBG-2.0, INSPYRENET, BEN, BEN2, BiRefNet models, SAM, and GroundingDINO, while also incorporating a new feature for real-time background replacement and enhanced edge detection for improved accuracy." + }, + { + "author": "1038lab", + "title": "ComfyUI-WildPromptor", + "reference": "https://github.com/1038lab/ComfyUI-WildPromptor", + "files": [ + "https://github.com/1038lab/ComfyUI-WildPromptor" + ], + "install_type": "git-clone", + "description": "WildPromptor simplifies prompt creation, organization, and customization in ComfyUI, turning chaotic workflows into an efficient, intuitive process." + }, + { + "author": "1038lab", + "title": "ComfyUI-EdgeTTS", + "reference": "https://github.com/1038lab/ComfyUI-EdgeTTS", + "files": [ + "https://github.com/1038lab/ComfyUI-EdgeTTS" + ], + "install_type": "git-clone", + "description": "ComfyUI-EdgeTTS is a powerful text-to-speech node for ComfyUI, leveraging Microsoft's Edge TTS capabilities. It enables seamless conversion of text into natural-sounding speech, supporting multiple languages and voices. Ideal for enhancing user interactions, this node is easy to integrate and customize, making it perfect for various applications." + }, + { + "author": "1038lab", + "title": "ComfyUI-Pollinations", + "reference": "https://github.com/1038lab/ComfyUI-Pollinations", + "files": [ + "https://github.com/1038lab/ComfyUI-Pollinations" + ], + "install_type": "git-clone", + "description": "ComfyUI integration for Pollinations API - Generate images and text based on user prompts" + }, + { + "author": "1038lab", + "title": "Comfyui-Spark-TTS", + "reference": "https://github.com/1038lab/ComfyUI-SparkTTS", + "files": [ + "https://github.com/1038lab/ComfyUI-SparkTTS" + ], + "install_type": "git-clone", + "description": "ComfyUI-SparkTTS is a custom ComfyUI node implementation of SparkTTS, an advanced text-to-speech system that harnesses the power of large language models (LLMs) to generate highly accurate and natural-sounding speech." + }, + { + "author": "1038lab", + "title": "ComfyUI-MegaTTS", + "reference": "https://github.com/1038lab/ComfyUI-MegaTTS", + "files": [ + "https://github.com/1038lab/ComfyUI-MegaTTS" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node based on ByteDance MegaTTS3 MegaTTS3, enabling high-quality text-to-speech synthesis with voice cloning capabilities for both Chinese and English." + }, + { + "author": "1038lab", + "title": "ComfyUI-ReduxFineTune", + "reference": "https://github.com/1038lab/ComfyUI-ReduxFineTune", + "files": [ + "https://github.com/1038lab/ComfyUI-ReduxFineTune" + ], + "install_type": "git-clone", + "description": "ComfyUI-ReduxFineTune is a custom node for ComfyUI that enables advanced style fine-tuning using the Flux Redux approach. It offers multiple unified fusion modes for precise and consistent control over style transfer, allowing users to fine-tune image styles with high flexibility and detail." + }, + { + "author": "1038lab", + "title": "ComfyUI-LBM", + "reference": "https://github.com/1038lab/ComfyUI-LBM", + "files": [ + "https://github.com/1038lab/ComfyUI-LBM" + ], + "install_type": "git-clone", + "description": "A ComfyUI implementation of Latent Bridge Matching (LBM) for efficient image relighting. This node utilizes the LBM algorithm to perform single-step image-to-image translation specifically for relighting tasks." + }, + { + "author": "1038lab", + "title": "ComfyUI-JoyCaption", + "reference": "https://github.com/1038lab/ComfyUI-JoyCaption", + "files": [ + "https://github.com/1038lab/ComfyUI-JoyCaption" + ], + "install_type": "git-clone", + "description": "Joy Caption is a ComfyUI custom node powered by the LLaVA model for efficient, stylized image captioning. Caption Tools nodes handle batch image processing and automatic separation of caption text." + }, + { + "author": "1038lab", + "title": "ComfyUI-MiniMax-Remover", + "reference": "https://github.com/1038lab/ComfyUI-MiniMax-Remover", + "files": [ + "https://github.com/1038lab/ComfyUI-MiniMax-Remover" + ], + "install_type": "git-clone", + "description": "ComfyUI-MiniMax-Remover is a custom node for ComfyUI that enables fast and efficient object removal using minimax optimization. It works in two stages: first, it trains a remover with a simplified DiT model; then it distills a robust version using CFG guidance and fewer inference steps." + }, + { + "author": "1038lab", + "title": "ComfyUI-Mosaic", + "reference": "https://github.com/1038lab/ComfyUI-Mosaic", + "files": [ + "https://github.com/1038lab/ComfyUI-Mosaic" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for mosaic detection and creation." + }, + { + "author": "1038lab", + "title": "ComfyUI-MiniCPM", + "reference": "https://github.com/1038lab/ComfyUI-MiniCPM", + "files": [ + "https://github.com/1038lab/ComfyUI-MiniCPM" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for MiniCPM vision-language models, enabling high-quality image captioning and analysis." }, { "author": "Klinter", "title": "Klinter_nodes", + "id": "klinter", "reference": "https://github.com/klinter007/klinter_nodes", "files": [ "https://github.com/klinter007/klinter_nodes" @@ -5912,6 +8199,7 @@ { "author": "Ludobico", "title": "ComfyUI-ScenarioPrompt", + "id": "scenarioprompt", "reference": "https://github.com/Ludobico/ComfyUI-ScenarioPrompt", "files": [ "https://github.com/Ludobico/ComfyUI-ScenarioPrompt" @@ -5922,6 +8210,7 @@ { "author": "logtd", "title": "InstanceDiffusion Nodes", + "id": "instancediffusion", "reference": "https://github.com/logtd/ComfyUI-InstanceDiffusion", "files": [ "https://github.com/logtd/ComfyUI-InstanceDiffusion" @@ -5932,6 +8221,7 @@ { "author": "logtd", "title": "Tracking Nodes for Videos", + "id": "tracking", "reference": "https://github.com/logtd/ComfyUI-TrackingNodes", "files": [ "https://github.com/logtd/ComfyUI-TrackingNodes" @@ -5942,6 +8232,7 @@ { "author": "logtd", "title": "ComfyUI-InversedNoise", + "id": "inversed-noise", "reference": "https://github.com/logtd/ComfyUI-InversedNoise", "files": [ "https://github.com/logtd/ComfyUI-InversedNoise" @@ -5952,6 +8243,7 @@ { "author": "logtd", "title": "ComfyUI-RefSampling", + "id": "refsampling", "reference": "https://github.com/logtd/ComfyUI-RefSampling", "files": [ "https://github.com/logtd/ComfyUI-RefSampling" @@ -5962,6 +8254,7 @@ { "author": "logtd", "title": "ComfyUI-FLATTEN", + "id": "flatten", "reference": "https://github.com/logtd/ComfyUI-FLATTEN", "files": [ "https://github.com/logtd/ComfyUI-FLATTEN" @@ -5972,6 +8265,7 @@ { "author": "logtd", "title": "ComfyUI-RAVE Attention", + "id": "rave-attn", "reference": "https://github.com/logtd/ComfyUI-RAVE_ATTN", "files": [ "https://github.com/logtd/ComfyUI-RAVE_ATTN" @@ -5980,14 +8274,140 @@ "description": "ComfyUI nodes to use RAVE attention as a temporal attention mechanism.\nThis differs from other implementations in that it does not concatenate the images together, but within the UNet's Self-Attention mechanism performs the RAVE technique. By not altering the images/latents throughout the UNet, this method does not affect other temporal techniques, style mechanisms, or other UNet modifications.\nFor example, it can be combined with AnimateDiff, ModelScope/ZeroScope, or FLATTEN." }, { - "author": "Big Idea Technology", - "title": "ComfyUI-Book-Tools", + "author": "logtd", + "title": "ComfyUI-RefUNet", + "id": "refunet", + "reference": "https://github.com/logtd/ComfyUI-RefUNet", + "files": [ + "https://github.com/logtd/ComfyUI-RefUNet" + ], + "install_type": "git-clone", + "description": "A set of nodes to use Reference UNets" + }, + { + "author": "logtd", + "title": "ComfyUI-SEGAttention", + "id": "segattention", + "reference": "https://github.com/logtd/ComfyUI-SEGAttention", + "files": [ + "https://github.com/logtd/ComfyUI-SEGAttention" + ], + "install_type": "git-clone", + "description": "Nodes to use [a/Smoothed Energy Guidance](https://github.com/SusungHong/SEG-SDXL) for ComfyUI." + }, + { + "author": "logtd", + "title": "ComfyUI-SSREncoder", + "id": "ssrencoder", + "reference": "https://github.com/logtd/ComfyUI-SSREncoder", + "files": [ + "https://github.com/logtd/ComfyUI-SSREncoder" + ], + "install_type": "git-clone", + "description": "ComfyUI Nodes to use [a/SSR Encoder:Encoding Selective Subject Representation for Subject-Driven Generation](https://github.com/Xiaojiu-z/SSR_Encoder)." + }, + { + "author": "logtd", + "title": "ComfyUI-SeeCoder", + "id": "seecoder-logtd", + "reference": "https://github.com/logtd/ComfyUI-SeeCoder", + "files": [ + "https://github.com/logtd/ComfyUI-SeeCoder" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use the SeeCoder from [a/Prompt-Free-Diffusion](https://github.com/SHI-Labs/Prompt-Free-Diffusion)" + }, + { + "author": "logtd", + "title": "ComfyUI-4DHumans", + "id": "comfyui-4dhumans", + "reference": "https://github.com/logtd/ComfyUI-4DHumans", + "files": [ + "https://github.com/logtd/ComfyUI-4DHumans" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/4D-Humans](ComfyUI nodes to use 4D-Humans)" + }, + { + "author": "logtd", + "title": "ComfyUI-ReNoise", + "reference": "https://github.com/logtd/ComfyUI-ReNoise", + "files": [ + "https://github.com/logtd/ComfyUI-ReNoise" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use ReNoise" + }, + { + "author": "logtd", + "title": "ComfyUI-MotionThiefExperiment", + "reference": "https://github.com/logtd/ComfyUI-MotionThiefExperiment", + "files": [ + "https://github.com/logtd/ComfyUI-MotionThiefExperiment" + ], + "install_type": "git-clone", + "description": "experimental node pack to test using reference videos for their motion." + }, + { + "author": "logtd", + "title": "ComfyUI-DiLightNet", + "reference": "https://github.com/logtd/ComfyUI-DiLightNet", + "files": [ + "https://github.com/logtd/ComfyUI-DiLightNet" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/DiLightNet](https://github.com/iamNCJ/DiLightNet).\nThese nodes can run DiLightNet, but the Dust3r or BlenderPy implementations to create lighting are not included. Expect those to be added to seperate repos when time allows." + }, + { + "author": "logtd", + "title": "ComfyUI-ViewCrafter", + "reference": "https://github.com/logtd/ComfyUI-ViewCrafter", + "files": [ + "https://github.com/logtd/ComfyUI-ViewCrafter" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/ViewCrafter](https://github.com/Drexubery/ViewCrafter/tree/main) for novel view synthesis." + }, + { + "author": "logtd", + "title": "ComfyUI-APGScaling", + "reference": "https://github.com/logtd/ComfyUI-APGScaling", + "files": [ + "https://github.com/logtd/ComfyUI-APGScaling" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/APG scaling](https://huggingface.co/papers/2410.02416) for CFG, allowing for better image quality with higher CFG." + }, + { + "author": "logtd", + "title": "ComfyUI-Fluxtapoz", + "reference": "https://github.com/logtd/ComfyUI-Fluxtapoz", + "files": [ + "https://github.com/logtd/ComfyUI-Fluxtapoz" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for image editing with Flux, such as RF-Inversion and more" + }, + { + "author": "logtd", + "title": "ComfyUI-MochiEdit", + "reference": "https://github.com/logtd/ComfyUI-MochiEdit", + "files": [ + "https://github.com/logtd/ComfyUI-MochiEdit" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to edit videos using Genmo Mochi" + }, + { + "author": "Big-Idea-Technology", + "title": "ComfyUI-Book-Tools Nodes for ComfyUI", + "id": "booktool", "reference": "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools", "files": [ "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools" ], "install_type": "git-clone", - "description": "Image Text Overlay: Add customizable text overlays to images. Prompt Selection and Scheduling: Manage and format string prompts based on configurable parameters. Loop Constructs: Implement looping mechanisms which can reset based on conditions. Special Comparators: Utilize a unique string class for special comparison features." + "description": "ComfyUI-Book-Tools is a set o new nodes for ComfyUI that allows users to easily add text overlays to images within their ComfyUI projects. This Node leverages Python Imaging Library (PIL) and PyTorch to dynamically render text on images, supporting a wide range of customization options including font size, alignment, color, and padding. Loop with any parameters (*), prompt batch schedule with prompt selector, end queue for automatic ending current queue." }, { "author": "Big Idea Technology", @@ -6001,7 +8421,8 @@ }, { "author": "Guillaume-Fgt", - "title": "ComfyUI-ScenarioPrompt", + "title": "ComfyUI_StableCascadeLatentRatio", + "id": "cascade-latent-ratio", "reference": "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio", "files": [ "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio" @@ -6012,6 +8433,7 @@ { "author": "AuroBit", "title": "ComfyUI OOTDiffusion", + "id": "ootdiffusion", "reference": "https://github.com/AuroBit/ComfyUI-OOTDiffusion", "files": [ "https://github.com/AuroBit/ComfyUI-OOTDiffusion" @@ -6022,6 +8444,7 @@ { "author": "AuroBit", "title": "ComfyUI-AnimateAnyone-reproduction", + "id": "animateanyone-reproduction", "reference": "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction", "files": [ "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction" @@ -6032,6 +8455,7 @@ { "author": "czcz1024", "title": "Face Compare", + "id": "facecompare", "reference": "https://github.com/czcz1024/Comfyui-FaceCompare", "files": [ "https://github.com/czcz1024/Comfyui-FaceCompare" @@ -6049,6 +8473,16 @@ "install_type": "git-clone", "description": "This custom node allow upscaling an image by a factor using a model." }, + { + "author": "TheBill2001", + "title": "Save Images with Captions", + "reference": "https://github.com/TheBill2001/ComfyUI-Save-Image-Caption", + "files": [ + "https://github.com/TheBill2001/ComfyUI-Save-Image-Caption" + ], + "install_type": "git-clone", + "description": "Provide two custom nodes to load and save images with captions as separate files." + }, { "author": "leoleelxh", "title": "ComfyUI-LLMs", @@ -6093,6 +8527,7 @@ "author": "kuschanow", "title": "Advanced Latent Control", "reference": "https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control", + "reference2": "https://github.com/kuschanow/ComfyUI-Advanced-Latent-Control", "files": [ "https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control" ], @@ -6109,6 +8544,16 @@ "install_type": "git-clone", "description": "Nodes:Abracadabra Summary, Abracadabra" }, + { + "author": "guill", + "title": "ComfyUI Droopy Noodles", + "reference": "https://github.com/guill/comfyui-droopy-noodles", + "files": [ + "https://github.com/guill/comfyui-droopy-noodles" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that makes your node connections delightfully droopy. (Disclaimer: despite what it may look like, this extension will not make your monitor taste like spaghetti.)" + }, { "author": "cerspense", "title": "cspnodes", @@ -6117,7 +8562,7 @@ "https://github.com/cerspense/ComfyUI_cspnodes" ], "install_type": "git-clone", - "description": "Nodes:Image Dir Iterator, Modelscopet2v, Modelscopev2v." + "description": "Nodes:Image Dir Iterator, Modelscopet2v, Modelscopev2v, Vid Dir Iterator, Image Dir Iterator, Text File Line Iterator, Remap Range, Split Image Channels, Resize By Image, Increment Every N." }, { "author": "qwixiwp", @@ -6142,6 +8587,7 @@ { "author": "munkyfoot", "title": "ComfyUI-TextOverlay", + "id": "textoverlay-munkyfoot", "reference": "https://github.com/Munkyfoot/ComfyUI-TextOverlay", "files": [ "https://github.com/Munkyfoot/ComfyUI-TextOverlay" @@ -6149,26 +8595,6 @@ "install_type": "git-clone", "description": "This extension provides a node that allows you to overlay text on an image or a batch of images with support for custom fonts and styles." }, - { - "author": "holchan", - "title": "ComfyUI-ModelDownloader", - "reference": "https://github.com/holchan/ComfyUI-ModelDownloader", - "files": [ - "https://github.com/holchan/ComfyUI-ModelDownloader" - ], - "install_type": "git-clone", - "description": "A ComfyUI node to download models(Checkpoints and LoRA) from external links and act as an output standalone node." - }, - { - "author": "Alysondao", - "title": "Comfyui-Yolov8-JSON", - "reference": "https://github.com/Alysondao/Comfyui-Yolov8-JSON", - "files": [ - "https://github.com/Alysondao/Comfyui-Yolov8-JSON" - ], - "install_type": "git-clone", - "description": "This node is mainly based on the Yolov8 model for object detection, and it outputs related images, masks, and JSON information." - }, { "author": "CC-BryanOttho", "title": "ComfyUI_API_Manager", @@ -6202,6 +8628,7 @@ { "author": "uetuluk", "title": "comfyui-webcam-node", + "id": "webcam", "reference": "https://github.com/uetuluk/comfyui-webcam-node", "files": [ "https://github.com/uetuluk/comfyui-webcam-node" @@ -6212,16 +8639,18 @@ { "author": "huchenlei", "title": "ComfyUI-layerdiffuse (layerdiffusion)", + "id": "layerdiffuse", "reference": "https://github.com/huchenlei/ComfyUI-layerdiffuse", "files": [ "https://github.com/huchenlei/ComfyUI-layerdiffuse" ], "install_type": "git-clone", - "description": "ComfyUI implementation of [a/LayerDiffusion](https://github.com/layerdiffusion/LayerDiffusion)." + "description": "Transparent Image Layer Diffusion using Latent Transparency" }, { "author": "huchenlei", "title": "ComfyUI_DanTagGen", + "id": "dantangen", "reference": "https://github.com/huchenlei/ComfyUI_DanTagGen", "files": [ "https://github.com/huchenlei/ComfyUI_DanTagGen" @@ -6229,9 +8658,53 @@ "install_type": "git-clone", "description": "ComfyUI node of [a/Kohaku's DanTagGen Demo](https://huggingface.co/KBlueLeaf/DanTagGen?not-for-all-audiences=true)." }, + { + "author": "huchenlei", + "title": "ComfyUI-openpose-editor", + "reference": "https://github.com/huchenlei/ComfyUI-openpose-editor", + "files": [ + "https://github.com/huchenlei/ComfyUI-openpose-editor" + ], + "install_type": "git-clone", + "description": "Port of [a/https://github.com/huchenlei/sd-webui-openpose-editor](https://github.com/huchenlei/sd-webui-openpose-editor) in ComfyUI" + }, + { + "author": "huchenlei", + "title": "ComfyUI-IC-Light-Native", + "id": "ic-light-native", + "reference": "https://github.com/huchenlei/ComfyUI-IC-Light-Native", + "files": [ + "https://github.com/huchenlei/ComfyUI-IC-Light-Native" + ], + "install_type": "git-clone", + "description": "ComfyUI native implementation of [a/IC-Light](https://github.com/lllyasviel/IC-Light)." + }, + { + "author": "huchenlei", + "title": "ComfyUI DenseDiffusion", + "id": "densediffusion", + "reference": "https://github.com/huchenlei/ComfyUI_densediffusion", + "files": [ + "https://github.com/huchenlei/ComfyUI_densediffusion" + ], + "install_type": "git-clone", + "description": "[a/DenseDiffusion](https://github.com/naver-ai/DenseDiffusion) custom node for ComfyUI." + }, + { + "author": "huchenlei", + "title": "ComfyUI_omost", + "id": "omost", + "reference": "https://github.com/huchenlei/ComfyUI_omost", + "files": [ + "https://github.com/huchenlei/ComfyUI_omost" + ], + "install_type": "git-clone", + "description": "ComfyUI implementation of [a/Omost](https://github.com/lllyasviel/Omost), and everything about regional prompt.\nNOTE: You need to install ComfyUI_densediffusion to use this node." + }, { "author": "nathannlu", "title": "ComfyUI Pets", + "id": "pets", "reference": "https://github.com/nathannlu/ComfyUI-Pets", "files": [ "https://github.com/nathannlu/ComfyUI-Pets" @@ -6242,6 +8715,7 @@ { "author": "nathannlu", "title": "Comfy Cloud", + "id": "cloud", "reference": "https://github.com/nathannlu/ComfyUI-Cloud", "files": [ "https://github.com/nathannlu/ComfyUI-Cloud" @@ -6252,6 +8726,7 @@ { "author": "11dogzi", "title": "Comfyui-ergouzi-Nodes", + "id": "ergouzi-nodes", "reference": "https://github.com/11dogzi/Comfyui-ergouzi-Nodes", "files": [ "https://github.com/11dogzi/Comfyui-ergouzi-Nodes" @@ -6259,9 +8734,64 @@ "install_type": "git-clone", "description": "This is a node group kit that covers multiple nodes such as local refinement, tag management, random prompt words, text processing, image processing, mask processing, etc" }, + { + "author": "11dogzi", + "title": "Comfyui-ergouzi-samplers", + "id": "ergouzi-samplers", + "reference": "https://github.com/11dogzi/Comfyui-ergouzi-samplers", + "files": [ + "https://github.com/11dogzi/Comfyui-ergouzi-samplers" + ], + "install_type": "git-clone", + "description": "Partial redraw sampler and variant seed sampler" + }, + { + "author": "11dogzi", + "title": "Comfyui-ergouzi-kaiguan", + "id": "ergouzi-kaiguan", + "reference": "https://github.com/11dogzi/Comfyui-ergouzi-kaiguan", + "files": [ + "https://github.com/11dogzi/Comfyui-ergouzi-kaiguan" + ], + "install_type": "git-clone", + "description": "Group switching control, one click control to ignore and disable multiple groups, as well as wired switch combination nodes, allowing for arbitrary switching of annotation names" + }, + { + "author": "11dogzi", + "title": "CYBERPUNK-STYLE-DIY", + "id": "CYBERPUNK-STYLE-DIY", + "reference": "https://github.com/11dogzi/CYBERPUNK-STYLE-DIY", + "files": [ + "https://github.com/11dogzi/CYBERPUNK-STYLE-DIY" + ], + "install_type": "git-clone", + "description": "A comprehensive ComfyUI theme plugin with stunning cyberpunk aesthetics and powerful customization features" + }, + { + "author": "11dogzi", + "title": "ComfUI-EGAdapterMadAssistant", + "id": "madassistant", + "reference": "https://github.com/11dogzi/ComfUI-EGAdapterMadAssistant", + "files": [ + "https://github.com/11dogzi/ComfUI-EGAdapterMadAssistant" + ], + "install_type": "git-clone", + "description": "This is a hierarchical auxiliary project of the IPAdapter project, which uses a slider to quickly control the hierarchical weights and add fully random and semi random modes" + }, + { + "author": "11dogzi", + "title": "HYPIR ComfyUI Plugin", + "reference": "https://github.com/11dogzi/Comfyui-HYPIR", + "files": [ + "https://github.com/11dogzi/Comfyui-HYPIR" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI plugin for [a/HYPIR (Harnessing Diffusion-Yielded Score Priors for Image Restoration)](https://github.com/XPixelGroup/HYPIR), a state-of-the-art image restoration model based on Stable Diffusion 2.1." + }, { "author": "BXYMartin", - "title": "Comfyui-ergouzi-Nodes", + "title": "ComfyUI-InstantIDUtils", + "id": "instantid-utils", "reference": "https://github.com/BXYMartin/ComfyUI-InstantIDUtils", "files": [ "https://github.com/BXYMartin/ComfyUI-InstantIDUtils" @@ -6272,6 +8802,7 @@ { "author": "cdb-boop", "title": "comfyui-image-round", + "id": "image-round", "reference": "https://github.com/cdb-boop/comfyui-image-round", "files": [ "https://github.com/cdb-boop/comfyui-image-round" @@ -6292,6 +8823,7 @@ { "author": "atmaranto", "title": "SaveAsScript", + "id": "saveasscript", "reference": "https://github.com/atmaranto/ComfyUI-SaveAsScript", "files": [ "https://github.com/atmaranto/ComfyUI-SaveAsScript" @@ -6302,6 +8834,7 @@ { "author": "meshmesh-io", "title": "mm-comfyui-megamask", + "id": "megamask", "reference": "https://github.com/meshmesh-io/mm-comfyui-megamask", "files": [ "https://github.com/meshmesh-io/mm-comfyui-megamask" @@ -6312,6 +8845,7 @@ { "author": "meshmesh-io", "title": "mm-comfyui-loopback", + "id": "mm-loopback", "reference": "https://github.com/meshmesh-io/mm-comfyui-loopback", "files": [ "https://github.com/meshmesh-io/mm-comfyui-loopback" @@ -6322,6 +8856,7 @@ { "author": "meshmesh-io", "title": "ComfyUI-MeshMesh", + "id": "meshmesh", "reference": "https://github.com/meshmesh-io/ComfyUI-MeshMesh", "files": [ "https://github.com/meshmesh-io/ComfyUI-MeshMesh" @@ -6332,6 +8867,7 @@ { "author": "CozyMantis", "title": "Cozy Human Parser", + "id": "humanparser", "reference": "https://github.com/cozymantis/human-parser-comfyui-node", "files": [ "https://github.com/cozymantis/human-parser-comfyui-node" @@ -6342,6 +8878,7 @@ { "author": "CozyMantis", "title": "Cozy Reference Pose Generator", + "id": "posegen", "reference": "https://github.com/cozymantis/pose-generator-comfyui-node", "files": [ "https://github.com/cozymantis/pose-generator-comfyui-node" @@ -6352,6 +8889,7 @@ { "author": "CozyMantis", "title": "Cozy Utils", + "id": "cozy-utils", "reference": "https://github.com/cozymantis/cozy-utils-comfyui-nodes", "files": [ "https://github.com/cozymantis/cozy-utils-comfyui-nodes" @@ -6369,6 +8907,16 @@ "install_type": "git-clone", "description": "Nodes:Inspect, Any String, Model From URL" }, + { + "author": "vivax3794", + "title": "ComfyUI-Sub-Nodes", + "reference": "https://github.com/vivax3794/ComfyUI-Sub-Nodes", + "files": [ + "https://github.com/vivax3794/ComfyUI-Sub-Nodes" + ], + "install_type": "git-clone", + "description": "Creating subgraph and Calling subgraphs." + }, { "author": "victorchall", "title": "Comfyui Webcam capture node", @@ -6381,17 +8929,19 @@ }, { "author": "ljleb", - "title": "comfy-mecha", + "title": "Mecha Merge Node Pack", + "id": "mecha", "reference": "https://github.com/ljleb/comfy-mecha", "files": [ "https://github.com/ljleb/comfy-mecha" ], "install_type": "git-clone", - "description": "Nodes:Blocks Mecha Hyper, Mecha Merger, Model Mecha Recipe, Custom Code Mecha Recipe" + "description": "model merging nodes powered by sd-mecha, a memory efficient state dict recipe merger." }, { "author": "diSty", "title": "ComfyUI Frame Maker", + "id": "frame-maker", "reference": "https://github.com/diStyApps/ComfyUI_FrameMaker", "files": [ "https://github.com/diStyApps/ComfyUI_FrameMaker" @@ -6399,9 +8949,20 @@ "install_type": "git-clone", "description": "This node creates a sequence of frames by moving and scaling a subject image over a background image." }, + { + "author": "diSty", + "title": "Flow - Streamlined Way to ComfyUI", + "reference": "https://github.com/diStyApps/ComfyUI-disty-Flow", + "files": [ + "https://github.com/diStyApps/ComfyUI-disty-Flow" + ], + "install_type": "git-clone", + "description": "Flow is a custom node designed to provide a more user-friendly interface for ComfyUI by acting as an alternative user interface for running workflows. It is not a replacement for workflow creation.\nFlow is currently in the early stages of development, so expect bugs and ongoing feature enhancements. With your support and feedback, Flow will settle into a steady stream." + }, { "author": "hackkhai", "title": "ComfyUI-Image-Matting", + "id": "image-matting", "reference": "https://github.com/hackkhai/ComfyUI-Image-Matting", "files": [ "https://github.com/hackkhai/ComfyUI-Image-Matting" @@ -6409,19 +8970,10 @@ "install_type": "git-clone", "description": "This node improves the quality of the image mask. more suitable for image composite matting" }, - { - "author": "Pos13", - "title": "Cyclist", - "reference": "https://github.com/Pos13/comfyui-cyclist", - "files": [ - "https://github.com/Pos13/comfyui-cyclist" - ], - "install_type": "git-clone", - "description": "This extension provides tools to iterate generation results between runs. In general, it's for cycles." - }, { "author": "ExponentialML", "title": "ComfyUI_ModelScopeT2V", + "id": "modelscopet2v", "reference": "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V", "files": [ "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V" @@ -6432,6 +8984,7 @@ { "author": "ExponentialML", "title": "ComfyUI - Native DynamiCrafter", + "id": "dynamicrafter", "reference": "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter", "files": [ "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter" @@ -6442,6 +8995,7 @@ { "author": "ExponentialML", "title": "ComfyUI_VisualStylePrompting", + "id": "visual-style-prompting", "reference": "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting", "files": [ "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting" @@ -6449,16 +9003,6 @@ "install_type": "git-clone", "description": "ComfyUI Version of '[a/Visual Style Prompting with Swapping Self-Attention](https://github.com/naver-ai/Visual-Style-Prompting)'" }, - { - "author": "ExponentialML", - "title": "ComfyUI_ELLA", - "reference": "https://github.com/ExponentialML/ComfyUI_ELLA", - "files": [ - "https://github.com/ExponentialML/ComfyUI_ELLA" - ], - "install_type": "git-clone", - "description": "ComfyUI Implementaion of ELLA: Equip Diffusion Models with LLM for Enhanced Semantic Alignment" - }, { "author": "angeloshredder", "title": "StableCascadeResizer", @@ -6472,6 +9016,7 @@ { "author": "stavsap", "title": "ComfyUI Ollama", + "id": "ollama", "reference": "https://github.com/stavsap/comfyui-ollama", "files": [ "https://github.com/stavsap/comfyui-ollama" @@ -6479,9 +9024,40 @@ "install_type": "git-clone", "description": "Custom ComfyUI Nodes for interacting with [a/Ollama](https://ollama.com/) using the [a/ollama python client](https://github.com/ollama/ollama-python).\nIntegrate the power of LLMs into CompfyUI workflows easily." }, + { + "author": "stavsap", + "title": "comfyui-kokoro", + "reference": "https://github.com/stavsap/comfyui-kokoro", + "files": [ + "https://github.com/stavsap/comfyui-kokoro" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI Nodes for TTS with Kokoro, genenrate and merge speakers for new style generations." + }, + { + "author": "cluny85", + "title": "comfyui-downloader", + "reference": "https://github.com/stavsap/comfyui-downloader", + "files": [ + "https://github.com/stavsap/comfyui-downloader" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI Nodes for verifing needed files/models are present per workflow, can download if missing." + }, + { + "author": "dchatel", + "title": "comfyui_davcha", + "reference": "https://github.com/dchatel/comfyui_davcha", + "files": [ + "https://github.com/dchatel/comfyui_davcha" + ], + "install_type": "git-clone", + "description": "Nodes:SmartMask, ResizeCropFit, Percent Padding, SoftErosion, StringScheduleHelper, DStack, DavchaConditioningConcat, DavchaModelMergeSimple, DavchaCLIPMergeSimple, DavchaModelMergeSD1, DavchaModelMergeSDXL, ConditioningCompress... Some personal QoL and experimental nodes" + }, { "author": "dchatel", "title": "comfyui_facetools", + "id": "facetools", "reference": "https://github.com/dchatel/comfyui_facetools", "files": [ "https://github.com/dchatel/comfyui_facetools" @@ -6492,6 +9068,7 @@ { "author": "prodogape", "title": "Comfyui-Minio", + "id": "minio", "reference": "https://github.com/prodogape/ComfyUI-Minio", "files": [ "https://github.com/prodogape/ComfyUI-Minio" @@ -6499,9 +9076,42 @@ "install_type": "git-clone", "description": "This plugin is mainly based on Minio, implementing the ability to read images from Minio, save images, facilitating expansion and connection across multiple machines." }, + { + "author": "prodogape", + "title": "ComfyUI-EasyOCR", + "id": "easyocr", + "reference": "https://github.com/prodogape/ComfyUI-EasyOCR", + "files": [ + "https://github.com/prodogape/ComfyUI-EasyOCR" + ], + "install_type": "git-clone", + "description": "This node is primarily based on Easy-OCR to implement OCR text recognition functionality." + }, + { + "author": "prodogape", + "title": "ComfyUI-OmDet", + "id": "omdet", + "reference": "https://github.com/prodogape/ComfyUI-OmDet", + "files": [ + "https://github.com/prodogape/ComfyUI-OmDet" + ], + "install_type": "git-clone", + "description": "This node is mainly based on [a/OmDet](https://github.com/om-ai-lab/OmDet) for object detection, and it outputs related images, masks, and Labelme JSON information." + }, + { + "author": "prodogape", + "title": "Comfyui-Yolov8-JSON", + "reference": "https://github.com/prodogape/Comfyui-Yolov8-JSON", + "files": [ + "https://github.com/prodogape/Comfyui-Yolov8-JSON" + ], + "install_type": "git-clone", + "description": "This node is mainly based on the Yolov8 model for object detection, and it outputs related images, masks, and JSON information.[w/Repository url is changed. Please remove previous one and reinstall.]" + }, { "author": "kingzcheung", "title": "ComfyUI_kkTranslator_nodes", + "id": "kktranslator", "reference": "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes", "files": [ "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes" @@ -6512,6 +9122,7 @@ { "author": "vsevolod-oparin", "title": "Kandinsky 2.2 ComfyUI Plugin", + "id": "kandinsky", "reference": "https://github.com/vsevolod-oparin/comfyui-kandinsky22", "files": [ "https://github.com/vsevolod-oparin/comfyui-kandinsky22" @@ -6522,6 +9133,7 @@ { "author": "Xyem", "title": "Xycuno Oobabooga", + "id": "xycuno-oobabooga", "reference": "https://github.com/Xyem/Xycuno-Oobabooga", "files": [ "https://github.com/Xyem/Xycuno-Oobabooga" @@ -6532,6 +9144,7 @@ { "author": "shi3z", "title": "ComfyUI_Memeplex_DALLE", + "id": "memeplex-dalle", "reference": "https://github.com/shi3z/ComfyUI_Memeplex_DALLE", "files": [ "https://github.com/shi3z/ComfyUI_Memeplex_DALLE" @@ -6540,8 +9153,9 @@ "description": "You can use memeplex and DALL-E thru ComfyUI. You need API keys." }, { - "author": "if-ai", - "title": "ComfyUI-IF_AI_tools", + "author": "impactframes", + "title": "IF_AI_tools", + "id": "impactframes-tools", "reference": "https://github.com/if-ai/ComfyUI-IF_AI_tools", "files": [ "https://github.com/if-ai/ComfyUI-IF_AI_tools" @@ -6550,8 +9164,9 @@ "description": "Various AI tools to use in Comfy UI. Starting with VL and prompt making tools using Ollma as backend will evolve as I find time." }, { - "author": "if-ai", - "title": "ComfyUI-IF_AI_WishperSpeechNode", + "author": "impactframes", + "title": "IF_AI_WishperSpeechNode", + "id": "impactframes-whisper-speech", "reference": "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode", "files": [ "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode" @@ -6559,9 +9174,150 @@ "install_type": "git-clone", "description": "This repository hosts a Text-to-Speech (TTS) application that leverages Whisper Speech for voice synthesis, allowing users to train a voice model on-the-fly. It is built on ComfyUI and supports rapid training and inference processes." }, + { + "author": "impactframes", + "title": "IF_AI_HFDownloaderNode", + "id": "impactframes-hfdownloader", + "reference": "https://github.com/if-ai/ComfyUI-IF_AI_HFDownloaderNode", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_AI_HFDownloaderNode" + ], + "install_type": "git-clone", + "description": "Talking avatars Heads for the IF_AI tools integrates dreamtalk in ComfyUI" + }, + { + "author": "impactframes", + "title": "IF_MemoAvatar", + "id": "impactframes-memoavatar", + "reference": "https://github.com/if-ai/ComfyUI-IF_MemoAvatar", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_MemoAvatar" + ], + "install_type": "git-clone", + "description": "Talking avatars MemoAvatar Memory-Guided Diffusion for Expressive Talking Video Generation" + }, + { + "author": "impactframes", + "title": "IF_Trellis", + "id": "impactframes-trellis", + "reference": "https://github.com/if-ai/ComfyUI-IF_Trellis", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_Trellis" + ], + "install_type": "git-clone", + "description": "ComfyUI IF Trellis creates a 3d mesh from a single view or multi angle pictures" + }, + { + "author": "impactframes", + "title": "IF_DatasetMkr", + "id": "impactframes-datasetmkr", + "reference": "https://github.com/if-ai/ComfyUI-IF_DatasetMkr", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_DatasetMkr" + ], + "install_type": "git-clone", + "description": "Create Video datasets straight from YT or a video file path" + }, + { + "author": "impactframes", + "title": "IF_ParlerTTSNode", + "id": "impactframes-parlertts", + "reference": "https://github.com/if-ai/ComfyUI-IF_AI_ParlerTTSNode", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_AI_ParlerTTSNode" + ], + "install_type": "git-clone", + "description": "Parler TTS is a zeroshot voice synthesis with emotion and entonations, you can control the voice style via text prompt" + }, + { + "author": "impactframes", + "title": "IF_Dreamtalk", + "id": "impactframes-dreamtalk", + "reference": "https://github.com/if-ai/ComfyUI-IF_AI_Dreamtalk", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_AI_Dreamtalk" + ], + "install_type": "git-clone", + "description": "Talking avatars Heads for the IF_AI tools integrates dreamtalk in ComfyUI" + }, + { + "author": "impactframes", + "title": "IF_VideoPrompts", + "id": "impactframes-videoprompts", + "reference": "https://github.com/if-ai/ComfyUI-IF_VideoPrompts", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_VideoPrompts" + ], + "install_type": "git-clone", + "description": "ComfyUI extension for video-based prompting and processing with support for various models and video processing capabilities" + }, + { + "author": "impactframes", + "title": "IF_LLM", + "id": "impactframes-llm", + "reference": "https://github.com/if-ai/ComfyUI-IF_LLM", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_LLM" + ], + "install_type": "git-clone", + "description": "Run Local and API LLMs, Features Conditioning manipulation via Omost, supports Ollama, LlamaCPP LMstudio, Koboldcpp, TextGen, Transformers or via APIs Anthropic, Groq, OpenAI, Google Gemini, Mistral, xAI and create your own charcters assistants (SystemPrompts) with custom presets and muchmore" + }, + { + "author": "impactframes", + "title": "IF_AI_LoadImages", + "id": "impactframes-loadimages", + "reference": "https://github.com/if-ai/ComfyUI_IF_AI_LoadImages", + "files": [ + "https://github.com/if-ai/ComfyUI_IF_AI_LoadImages" + ], + "install_type": "git-clone", + "description": "It Load Images with subfolders form arbitrary folders previous on node outputs lists- convinient selection via file browser" + }, + { + "author": "impactframes", + "title": "IF_Gemini", + "id": "impactframes-gemini", + "reference": "https://github.com/if-ai/ComfyUI-IF_Gemini", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_Gemini" + ], + "install_type": "git-clone", + "description": "Enjoy the latest GEMINI V2 API for ComfyUI - generate images, analyze content, and use multimodal capabilities with Google's Gemini models" + }, + { + "author": "impactframes", + "title": "ComfyUI-WanResolutionSelector", + "reference": "https://github.com/if-ai/ComfyUI-WanResolutionSelector", + "files": [ + "https://github.com/if-ai/ComfyUI-WanResolutionSelector" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that automatically selects appropriate video resolution dimensions based on generation mode, aspect ratio, and quality settings. Designed to work seamlessly with video generation models and KJNodes image resize nodes." + }, + { + "author": "impactframes", + "title": "ComfyUI HunyuanVideo-Foley", + "reference": "https://github.com/if-ai/ComfyUI_HunyuanVideoFoley", + "files": [ + "https://github.com/if-ai/ComfyUI_HunyuanVideoFoley" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI custom node wrapper for the HunyuanVideo-Foley model, which generates realistic audio from video and text descriptions." + }, + { + "author": "impactframes", + "title": "ComfyUI-yt_dl", + "reference": "https://github.com/if-ai/ComfyUI-yt_dl", + "files": [ + "https://github.com/if-ai/ComfyUI-yt_dl" + ], + "install_type": "git-clone", + "description": "Download Youtube videos using ComfyUI" + }, { "author": "dmMaze", "title": "Sketch2Manga", + "id": "sketch2manga", "reference": "https://github.com/dmMaze/sketch2manga", "files": [ "https://github.com/dmMaze/sketch2manga" @@ -6572,16 +9328,29 @@ { "author": "olduvai-jp", "title": "ComfyUI-HfLoader", + "id": "hfloader", "reference": "https://github.com/olduvai-jp/ComfyUI-HfLoader", "files": [ "https://github.com/olduvai-jp/ComfyUI-HfLoader" ], "install_type": "git-clone", - "description": "Nodes:Lora Loader From HF" + "description": "A simple and easy to use Hugging Face model loader." + }, + { + "author": "olduvai-jp", + "title": "ComfyUI-CloudArchive", + "id": "comfyui-cloudarchive", + "reference": "https://github.com/olduvai-jp/ComfyUI-CloudArchive", + "files": [ + "https://github.com/olduvai-jp/ComfyUI-CloudArchive" + ], + "install_type": "git-clone", + "description": "Automatically archives generated files to Amazon S3 or S3-compatible storage services" }, { "author": "AiMiDi", "title": "ComfyUI-Aimidi-nodes", + "id": "aimidi-nodes", "reference": "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes", "files": [ "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes" @@ -6592,16 +9361,18 @@ { "author": "ForeignGods", "title": "ComfyUI-Mana-Nodes", + "id": "mana-nodes", "reference": "https://github.com/ForeignGods/ComfyUI-Mana-Nodes", "files": [ "https://github.com/ForeignGods/ComfyUI-Mana-Nodes" ], "install_type": "git-clone", - "description": "Font/Text Animation + Speech to Text Transcription\nNodes:font2img, speech2text, video2audio, audio2video, string2file" + "description": "Font Animation, Speech Recognition, Caption Generator, TTS" }, { "author": "Cornea Valentin", "title": "ControlNet Auxiliar", + "id": "controlnet-aux-valentin", "reference": "https://github.com/madtunebk/ComfyUI-ControlnetAux", "files": [ "https://github.com/madtunebk/ComfyUI-ControlnetAux" @@ -6611,17 +9382,18 @@ }, { "author": "MarkoCa1", - "title": "ComfyUI_Text", + "title": "ComfyUI-Text", "reference": "https://github.com/MarkoCa1/ComfyUI-Text", "files": [ "https://github.com/MarkoCa1/ComfyUI-Text" ], "install_type": "git-clone", - "description": "Text." + "description": "Why make this node? Because I only need simple text related operations and don't want to install anything extra." }, { "author": "MarkoCa1", "title": "ComfyUI_Segment_Mask", + "id": "seg-mask", "reference": "https://github.com/MarkoCa1/ComfyUI_Segment_Mask", "files": [ "https://github.com/MarkoCa1/ComfyUI_Segment_Mask" @@ -6632,6 +9404,7 @@ { "author": "Shadetail", "title": "Eagleshadow Custom Nodes", + "id": "eagleshadow", "reference": "https://github.com/Shadetail/ComfyUI_Eagleshadow", "files": [ "https://github.com/Shadetail/ComfyUI_Eagleshadow" @@ -6639,16 +9412,6 @@ "install_type": "git-clone", "description": "Custom nodes for ComfyUI by Eagleshadow." }, - { - "author": "ArdeniusAI", - "title": "CPlus_Ardenius ComfyUI Control Box", - "reference": "https://github.com/ArdeniusAI/CPlus_Ardenius", - "files": [ - "https://github.com/ArdeniusAI/CPlus_Ardenius" - ], - "install_type": "git-clone", - "description": "1 node to have control over your workflow." - }, { "author": "Jannchie", "title": "ComfyUI-J", @@ -6662,6 +9425,7 @@ { "author": "daxcay", "title": "ComfyUI-JDCN", + "id": "jdcn", "reference": "https://github.com/daxcay/ComfyUI-JDCN", "files": [ "https://github.com/daxcay/ComfyUI-JDCN" @@ -6670,28 +9434,90 @@ "description": "Jerry Davos Custom Nodes for Saving Latents in Directory (BatchLatentSave) , Importing Latent from directory (BatchLatentLoadFromDir) , List to string, string to list, get any file list from directory which give filepath, filename, move any files from any directory to any other directory, VHS Video combine file mover, rebatch list of strings, batch image load from any dir, load image batch from any directory and other custom nodes." }, { - "author": "Seedsa", - "title": "ComfyUI Fooocus Nodes", - "reference": "https://github.com/Seedsa/Fooocus_Nodes", + "author": "daxcay", + "title": "ComfyUI-DataSet", + "reference": "https://github.com/daxcay/ComfyUI-DataSet", "files": [ - "https://github.com/Seedsa/Fooocus_Nodes" + "https://github.com/daxcay/ComfyUI-DataSet" ], "install_type": "git-clone", - "description": "This extension provides image generation features based on Fooocus." + "description": "Data research, preparation, and manipulation nodes for model trainers and artists." + }, + { + "author": "daxcay", + "title": "ComfyUI-Nexus", + "reference": "https://github.com/daxcay/ComfyUI-Nexus", + "files": [ + "https://github.com/daxcay/ComfyUI-Nexus" + ], + "install_type": "git-clone", + "description": "Node to enable seamless multiuser workflow collaboration, run on local and remote comfy servers." + }, + { + "author": "daxcay", + "title": "ComfyUI-WA", + "reference": "https://github.com/daxcay/ComfyUI-WA", + "files": [ + "https://github.com/daxcay/ComfyUI-WA" + ], + "install_type": "git-clone", + "description": "Node to enable WhatsApp in ComfyUI." + }, + { + "author": "daxcay", + "title": "ComfyUI-TG", + "reference": "https://github.com/daxcay/ComfyUI-TG", + "files": [ + "https://github.com/daxcay/ComfyUI-TG" + ], + "install_type": "git-clone", + "description": "Node to enable Telegram in ComfyUI." + }, + { + "author": "daxcay", + "title": "ComfyUI-NODEJS", + "reference": "https://github.com/daxcay/ComfyUI-NODEJS", + "files": [ + "https://github.com/daxcay/ComfyUI-NODEJS" + ], + "install_type": "git-clone", + "description": "This node allows the execution of Node.js application within ComfyUI by leveraging the ComfyUI-NODEJS, which starts alongside ComfyUI and facilitates the installation of Node.js. The integration enables Python subprocesses to execute Node.js scripts." + }, + { + "author": "daxcay", + "title": "ComfyUI-YouTubeVideoPlayer", + "reference": "https://github.com/daxcay/ComfyUI-YouTubeVideoPlayer", + "files": [ + "https://github.com/daxcay/ComfyUI-YouTubeVideoPlayer" + ], + "install_type": "git-clone", + "description": "Plays youtube videos in comfy. Use this node to share tutorials or renders. Youtube Playlists mode is also in Future Development in which you can add multiple youtube links and form a playlist which would be ideal for chained tutorials or lisitening and sharing songs playlists with others." }, { "author": "zhangp365", - "title": "zhangp365/Some Utils for ComfyUI", + "title": "zhangp365/ComfyUI-utils-nodes", "reference": "https://github.com/zhangp365/ComfyUI-utils-nodes", "files": [ "https://github.com/zhangp365/ComfyUI-utils-nodes" ], "install_type": "git-clone", - "description": "Nodes:LoadImageWithSwitch, ImageBatchOneOrMore, ConcatText, ModifyTextGender" + "description": "Nodes:LoadImageWithSwitch, ImageBatchOneOrMore, ModifyTextGender, GenderControlOutput, ImageCompositeMaskedWithSwitch, ImageCompositeMaskedOneByOne, ColorCorrectOfUtils, SplitMask, MaskFastGrow, CheckpointLoaderSimpleWithSwitch, ImageResizeTo8x, MatchImageRatioToPreset, MaskFromFaceModel, MaskCoverFourCorners, DetectorForNSFW, DeepfaceAnalyzeFaceAttributes, VolcanoOutpainting, VolcanoImageEdit, etc." + }, + { + "author": "zhangp365", + "title": "ComfyUI_photomakerV2_native", + "id": "comfyui_photomakerV2_native", + "reference": "https://github.com/zhangp365/ComfyUI_photomakerV2_native", + "files": [ + "https://github.com/zhangp365/ComfyUI_photomakerV2_native" + ], + "install_type": "git-clone", + "description": "Nodes: PhotoMakerLoaderV2,PhotoMakerEncodeV2" }, { "author": "ratulrafsan", "title": "Comfyui-SAL-VTON", + "id": "sal-vton", "reference": "https://github.com/ratulrafsan/Comfyui-SAL-VTON", "files": [ "https://github.com/ratulrafsan/Comfyui-SAL-VTON" @@ -6702,6 +9528,7 @@ { "author": "Nevysha", "title": "ComfyUI-nevysha-top-menu", + "id": "nevysha-top-menu", "reference": "https://github.com/Nevysha/ComfyUI-nevysha-top-menu", "files": [ "https://github.com/Nevysha/ComfyUI-nevysha-top-menu" @@ -6711,17 +9538,19 @@ }, { "author": "alisson-anjos", - "title": "ComfyUI-LLaVA-Describer", - "reference": "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer", + "title": "ComfyUI-Ollama-Describer", + "id": "ollama-describer", + "reference": "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer", "files": [ - "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer" + "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer" ], "install_type": "git-clone", - "description": "This is an extension for ComfyUI to extract descriptions from your images using the multimodal model called LLaVa. The LLaVa model - Large Language and Vision Assistant, although trained on a relatively small dataset, demonstrates exceptional capabilities in understanding images and answering questions about them. This model shows behaviors similar to multimodal models like GPT-4, even when presented with unseen images and instructions." + "description": "This is an extension for ComfyUI that makes it possible to use some LLM models provided by Ollama, such as Gemma, Llava (multimodal), Llama2, Llama3 or Mistral. Speaking specifically of the LLaVa - Large Language and Vision Assistant model, although trained on a relatively small dataset, it demonstrates exceptional capabilities in understanding images and answering questions about them. This model presents similar behaviors to multimodal models such as GPT-4, even when presented with invisible images and instructions." }, { "author": "chaosaiart", "title": "Chaosaiart-Nodes", + "id": "chaosaiart", "reference": "https://github.com/chaosaiart/Chaosaiart-Nodes", "files": [ "https://github.com/chaosaiart/Chaosaiart-Nodes" @@ -6731,17 +9560,31 @@ }, { "author": "viperyl", - "title": "ComfyUI-BiRefNet", - "reference": "https://github.com/viperyl/ComfyUI-BiRefNet", + "title": "ComfyUI-BiRefNet-Fix utils", + "id": "comfyui-birefnet", + "reference": "https://github.com/hieuck/ComfyUI-BiRefNet", "files": [ - "https://github.com/viperyl/ComfyUI-BiRefNet" + "https://github.com/hieuck/ComfyUI-BiRefNet" ], "install_type": "git-clone", - "description": "Bilateral Reference Network achieves SOTA result in multi Salient Object Segmentation dataset, this repo pack BiRefNet as ComfyUI nodes, and make this SOTA model easier use for everyone." + "description": "Bilateral Reference Network achieves SOTA result in multi Salient Object Segmentation dataset, this repo pack BiRefNet as ComfyUI nodes, and make this SOTA model easier use for everyone.\nNOTE: The original node was replaced with a version maintained by hieuck because it is no longer maintained." + }, + { + "author": "viperyl", + "title": "ComfyUI-RGT", + "id": "rgt", + "reference": "https://github.com/viperyl/ComfyUI-RGT", + "pip": ["loguru"], + "files": [ + "https://github.com/viperyl/ComfyUI-RGT" + ], + "install_type": "git-clone", + "description": "This repo cast Recursive Generalization Transformer for Image Super-Resolution to ComfyUI, the original [a/paper link](https://arxiv.org/abs/2303.06373) and [a/github link](https://github.com/zhengchen1999/RGT)" }, { "author": "SuperBeastsAI", "title": "ComfyUI-SuperBeasts", + "id": "superbeasts", "reference": "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts", "files": [ "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts" @@ -6749,19 +9592,10 @@ "install_type": "git-clone", "description": "Nodes:HDR Effects (SuperBeasts.AI). This repository contains custom nodes for ComfyUI created and used by SuperBeasts.AI (@SuperBeasts.AI on Instagram)" }, - { - "author": "IKHOR", - "title": "ikhor-nodes", - "reference": "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes", - "files": [ - "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes" - ], - "install_type": "git-clone", - "description": "Nodes:LoadFromS3, LoadBatchFromS3, SaveToS3, SaveBatchToS3" - }, { "author": "hay86", "title": "ComfyUI Dreamtalk", + "id": "dreamtalk", "reference": "https://github.com/hay86/ComfyUI_Dreamtalk", "files": [ "https://github.com/hay86/ComfyUI_Dreamtalk" @@ -6769,9 +9603,21 @@ "install_type": "git-clone", "description": "Unofficial implementation of [a/dreamtalk](https://github.com/ali-vilab/dreamtalk) for ComfyUI" }, + { + "author": "hay86", + "title": "ComfyUI Hallo", + "id": "hallo-hay86", + "reference": "https://github.com/hay86/ComfyUI_Hallo", + "files": [ + "https://github.com/hay86/ComfyUI_Hallo" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [a/hallo](https://github.com/fudan-generative-vision/hallo) for ComfyUI" + }, { "author": "hay86", "title": "ComfyUI OpenVoice", + "id": "openvoice-hay86", "reference": "https://github.com/hay86/ComfyUI_OpenVoice", "files": [ "https://github.com/hay86/ComfyUI_OpenVoice" @@ -6782,6 +9628,7 @@ { "author": "hay86", "title": "ComfyUI DDColor", + "id": "ddcolor-hay86", "reference": "https://github.com/hay86/ComfyUI_DDColor", "files": [ "https://github.com/hay86/ComfyUI_DDColor" @@ -6792,6 +9639,7 @@ { "author": "hay86", "title": "ComfyUI MiniCPM-V", + "id": "minicpm-v", "reference": "https://github.com/hay86/ComfyUI_MiniCPM-V", "files": [ "https://github.com/hay86/ComfyUI_MiniCPM-V" @@ -6801,43 +9649,104 @@ }, { "author": "hay86", - "title": "ComfyUI AceNodes", - "reference": "https://github.com/hay86/ComfyUI_AceNodes", + "title": "ComfyUI LatentSync", + "id": "latentsync", + "reference": "https://github.com/hay86/ComfyUI_LatentSync", "files": [ - "https://github.com/hay86/ComfyUI_AceNodes" + "https://github.com/hay86/ComfyUI_LatentSync" ], "install_type": "git-clone", - "description": "Some useful custom nodes that are not included in ComfyUI core yet." + "description": "Unofficial implementation of [a/LatentSync](https://github.com/bytedance/LatentSync) for ComfyUI" }, { "author": "shinich39", - "title": "comfyui-load-image-39", - "reference": "https://github.com/shinich39/comfyui-load-image-39", + "title": "comfyui-get-meta", + "reference": "https://github.com/shinich39/comfyui-get-meta", "files": [ - "https://github.com/shinich39/comfyui-load-image-39" + "https://github.com/shinich39/comfyui-get-meta" ], "install_type": "git-clone", - "description": "This node is load png image sequentially with metadata. Only supported for PNG format that has been created by ComfyUI." + "description": "Get metadata from image." }, { "author": "shinich39", - "title": "comfyui-random-node-39", - "reference": "https://github.com/shinich39/comfyui-ramdom-node-39", + "title": "comfyui-civitai-workflow", + "reference": "https://github.com/shinich39/comfyui-civitai-workflow", "files": [ - "https://github.com/shinich39/comfyui-ramdom-node-39" + "https://github.com/shinich39/comfyui-civitai-workflow" ], "install_type": "git-clone", - "description": "Choose random node." + "description": "Load workflow from civitai image." }, { "author": "shinich39", - "title": "comfyui-text-pipe-39", - "reference": "https://github.com/shinich39/comfyui-text-pipe-39", + "title": "comfyui-prevent-sleep", + "reference": "https://github.com/shinich39/comfyui-prevent-sleep", "files": [ - "https://github.com/shinich39/comfyui-text-pipe-39" + "https://github.com/shinich39/comfyui-prevent-sleep" ], "install_type": "git-clone", - "description": "Modify text by condition." + "description": "Prevent sleep while running ComfyUI." + }, + { + "author": "shinich39", + "title": "comfyui-dynamic-routes", + "reference": "https://github.com/shinich39/comfyui-dynamic-routes", + "files": [ + "https://github.com/shinich39/comfyui-dynamic-routes" + ], + "install_type": "git-clone", + "description": "Shuffle nodes after queue execution." + }, + { + "author": "shinich39", + "title": "comfyui-innnnnpaint", + "reference": "https://github.com/shinich39/comfyui-innnnnpaint", + "files": [ + "https://github.com/shinich39/comfyui-innnnnpaint" + ], + "install_type": "git-clone", + "description": "Load new workflow after mask editing." + }, + { + "author": "shinich39", + "title": "comfyui-no-one-above-me", + "reference": "https://github.com/shinich39/comfyui-no-one-above-me", + "files": [ + "https://github.com/shinich39/comfyui-no-one-above-me" + ], + "install_type": "git-clone", + "description": "Fix node to top." + }, + { + "author": "shinich39", + "title": "comfyui-break-workflow", + "reference": "https://github.com/shinich39/comfyui-break-workflow", + "files": [ + "https://github.com/shinich39/comfyui-break-workflow" + ], + "install_type": "git-clone", + "description": "Break the execution, save the incompleted image then continue later." + }, + { + "author": "shinich39", + "title": "comfyui-global-prompts", + "reference": "https://github.com/shinich39/comfyui-global-prompts", + "files": [ + "https://github.com/shinich39/comfyui-global-prompts" + ], + "install_type": "git-clone", + "description": "Set global prompts using note node." + }, + { + "author": "shinich39", + "title": "comfyui-mtga", + "reference": "https://github.com/shinich39/comfyui-mtga", + "files": [ + "https://github.com/shinich39/comfyui-mtga" + ], + "install_type": "git-clone", + "description": "Make Textarea Great Again" }, { "author": "wei30172", @@ -6857,7 +9766,7 @@ "https://github.com/zombieyang/sd-ppp" ], "install_type": "git-clone", - "description": "!!Another custom node about Photoshop!! PPP means interoP with your PhotoshoP. You can get or send layers from/to your Photoshop. This custom node is easier to use." + "description": "Simplify ComfyUI to WebUI-liked interface and Connect with Photoshop." }, { "author": "KytraScript", @@ -6869,6 +9778,16 @@ "install_type": "git-clone", "description": "A ComfyUI node that utilizes Moviepy to convert and send your images or videos to a webhook endpoint directly from ComfyUI." }, + { + "author": "KytraScript", + "title": "ComfyUI_MatAnyone_Kytra", + "reference": "https://github.com/KytraScript/ComfyUI_MatAnyone_Kytra", + "files": [ + "https://github.com/KytraScript/ComfyUI_MatAnyone_Kytra" + ], + "install_type": "git-clone", + "description": "Kytra's MatAnyone (Video Matting) implementation for ComfyUI - Based on pq-yang/MatAnyone" + }, { "author": "1mckw", "title": "Comfyui-Gelbooru", @@ -6877,7 +9796,7 @@ "https://github.com/1mckw/Comfyui-Gelbooru" ], "install_type": "git-clone", - "description": "Get random images from gelbooru, support multiple tag searches, exclude tags, etc. user and api key are optional." + "description": "Get random images from gelbooru or rule34." }, { "author": "NeuralSamurAI", @@ -6889,6 +9808,36 @@ "install_type": "git-clone", "description": "The SuperPrompter node is a ComfyUI node that uses the SuperPrompt-v1 model from Hugging Face to generate text based on a given prompt. It provides various parameters to control the text generation process." }, + { + "author": "NeuralSamurAI", + "title": "Dimensional Latent Perlin for ComfyUI", + "reference": "https://github.com/NeuralSamurAI/ComfyUI-Dimensional-Latent-Perlin", + "files": [ + "https://github.com/NeuralSamurAI/ComfyUI-Dimensional-Latent-Perlin" + ], + "install_type": "git-clone", + "description": "Dimensional Latent Perlin is a custom node for ComfyUI that generates Perlin noise in the latent space. This node is designed to work seamlessly with various diffusion models and can be used as an alternative or complement to standard random noise generators in image generation pipelines." + }, + { + "author": "NeuralSamurAI", + "title": "PromptJSON Node for ComfyUI", + "reference": "https://github.com/NeuralSamurAI/ComfyUI-PromptJSON", + "files": [ + "https://github.com/NeuralSamurAI/ComfyUI-PromptJSON" + ], + "install_type": "git-clone", + "description": "PromptJSON is a custom node for ComfyUI that structures natural language prompts and generates prompts for external LLM nodes in image generation workflows. It aids in creating consistent, schema-based image descriptions." + }, + { + "author": "NeuralSamurAI", + "title": "FluxPseudoNegative", + "reference": "https://github.com/NeuralSamurAI/ComfyUI-FluxPseudoNegativePrompt", + "files": [ + "https://github.com/NeuralSamurAI/ComfyUI-FluxPseudoNegativePrompt" + ], + "install_type": "git-clone", + "description": "FluxPseudoNegative is an advanced custom node for ComfyUI that converts negative prompts into positive ones. It's designed to enhance prompt engineering for image generation models that don't natively support negative prompts or where using negative prompts significantly increases generation time. So instead of hacking CFG we simply invert your negative words and find their antonyms!" + }, { "author": "MokkaBoss1", "title": "Node Pack mostly for manipulating strings and integers", @@ -6982,6 +9931,7 @@ { "author": "BlakeOne", "title": "ComfyUI NodePresets", + "id": "nodepresets", "reference": "https://github.com/BlakeOne/ComfyUI-NodePresets", "files": [ "https://github.com/BlakeOne/ComfyUI-NodePresets" @@ -6991,17 +9941,19 @@ }, { "author": "BlakeOne", - "title": "ComfyUI NodeDefaults", - "reference": "https://github.com/BlakeOne/ComfyUI-NodeDefaults", + "title": "ComfyUI NodeReset", + "id": "nodereset", + "reference": "https://github.com/BlakeOne/ComfyUI-NodeReset", "files": [ - "https://github.com/BlakeOne/ComfyUI-NodeDefaults" + "https://github.com/BlakeOne/ComfyUI-NodeReset" ], "install_type": "git-clone", - "description": "An extension for ComyUI to allow resetting a node's inputs to their default values.\nNOTE:Right click any node and choose 'Restore default values' from the context menu." + "description": "An extension for ComyUI to allow resetting a node's inputs to their default values.\nNOTE:Right click any node and choose 'Reset' from the context menu." }, { "author": "kale4eat", "title": "ComfyUI_demucus", + "id": "demucus", "reference": "https://github.com/kale4eat/ComfyUI-path-util", "files": [ "https://github.com/kale4eat/ComfyUI-path-util" @@ -7049,6 +10001,16 @@ "install_type": "git-clone", "description": "A collection of nodes for detecting color in images, leveraging RGB and LAB color spaces. These nodes aim to distinguish colored images from black and white, including those with color tints." }, + { + "author": "DrMWeigand", + "title": "StereoVision Plugin for ComfyUI", + "reference": "https://github.com/DrMWeigand/ComfyUI-StereoVision", + "files": [ + "https://github.com/DrMWeigand/ComfyUI-StereoVision" + ], + "install_type": "git-clone", + "description": "A ComfyUI node for producing stereoscopic and autostereogram (magic eye) images and videos." + }, { "author": "bobmagicii", "title": "ComfyKit Custom Nodes", @@ -7069,29 +10031,30 @@ "install_type": "git-clone", "description": "Custom Node for comfyUI for virtual lighting based on normal map.\nYou can use normal maps to add virtual lighting effects to your images." }, - { - "author": "AppleBotzz", - "title": "ComfyUI_LLMVISION", - "reference": "https://github.com/AppleBotzz/ComfyUI_LLMVISION", - "files": [ - "https://github.com/AppleBotzz/ComfyUI_LLMVISION" - ], - "install_type": "git-clone", - "description": "This repository provides integration of GPT-4 and Claude 3 models into ComfyUI, allowing for both image and text-based interactions within the ComfyUI workflow." - }, { "author": "A4P7J1N7M05OT", - "title": "ComfyUI-PixelOE", - "reference": "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE", + "title": "ComfyUI-PixelOE-Wrapper", + "reference": "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE-Wrapper", "files": [ - "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE" + "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE-Wrapper" ], "install_type": "git-clone", "description": "A barebones ComfyUI wrapper for [a/PixelOE](https://github.com/KohakuBlueleaf/PixelOE).\nI cannot promise any support, if there is someone who wants to make a proper node, please do." }, + { + "author": "A4P7J1N7M05OT", + "title": "ComfyUI-AutoColorGimp", + "reference": "https://github.com/A4P7J1N7M05OT/ComfyUI-AutoColorGimp", + "files": [ + "https://github.com/A4P7J1N7M05OT/ComfyUI-AutoColorGimp" + ], + "install_type": "git-clone", + "description": "Shamelessly copied the code to auto color correct the image like in gimp from this answer: [a/https://stackoverflow.com/a/56365560/4561887](https://stackoverflow.com/a/56365560/4561887)" + }, { "author": "ronniebasak", "title": "ComfyUI-Tara-LLM-Integration", + "id": "tarallm", "reference": "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration", "files": [ "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration" @@ -7102,6 +10065,7 @@ { "author": "Sida Liu", "title": "ComfyUI-Debug", + "id": "debug", "reference": "https://github.com/liusida/ComfyUI-Debug", "files": [ "https://github.com/liusida/ComfyUI-Debug" @@ -7112,6 +10076,7 @@ { "author": "Sida Liu", "title": "ComfyUI-Login", + "id": "login", "reference": "https://github.com/liusida/ComfyUI-Login", "files": [ "https://github.com/liusida/ComfyUI-Login" @@ -7119,9 +10084,43 @@ "install_type": "git-clone", "description": "A simple password to protect ComfyUI." }, + { + "author": "Sida Liu", + "title": "ComfyUI-AutoCropFaces", + "id": "autocropfaces", + "reference": "https://github.com/liusida/ComfyUI-AutoCropFaces", + "files": [ + "https://github.com/liusida/ComfyUI-AutoCropFaces" + ], + "install_type": "git-clone", + "description": "Use RetinaFace to detect and automatically crop faces." + }, + { + "author": "Sida Liu", + "title": "ComfyUI-SD3-nodes", + "id": "sd3-nodes", + "reference": "https://github.com/liusida/ComfyUI-SD3-nodes", + "files": [ + "https://github.com/liusida/ComfyUI-SD3-nodes" + ], + "install_type": "git-clone", + "description": "Nodes that support Stable Diffusion 3 Medium better." + }, + { + "author": "Sida Liu", + "title": "ComfyUI-B-LoRA", + "id": "b-lora", + "reference": "https://github.com/liusida/ComfyUI-B-LoRA", + "files": [ + "https://github.com/liusida/ComfyUI-B-LoRA" + ], + "install_type": "git-clone", + "description": "Load and apply B-LoRA models, currently B-LoRA models only works with SDXL (sdxl_base_1.0)." + }, { "author": "jtydhr88", "title": "ComfyUI-Workflow-Encrypt", + "id": "workflow-encrypt", "reference": "https://github.com/jtydhr88/ComfyUI-Workflow-Encrypt", "files": [ "https://github.com/jtydhr88/ComfyUI-Workflow-Encrypt" @@ -7129,6 +10128,47 @@ "install_type": "git-clone", "description": "Encrypt your comfyui workflow, and share it with key" }, + { + "author": "jtydhr88", + "title": "ComfyUI LayerDivider", + "id": "comfyui-layerdivider", + "reference": "https://github.com/jtydhr88/ComfyUI-LayerDivider", + "files": [ + "https://github.com/jtydhr88/ComfyUI-LayerDivider" + ], + "install_type": "git-clone", + "description": "ComfyUI LayerDivider is custom nodes that generating layered psd files inside ComfyUI[w/Please follow readme and run install_windows_portable_win_py311_cu121 for ComfyUI embedded python.]" + }, + { + "author": "jtydhr88", + "title": "ComfyUI-Hunyuan3D-1-wrapper", + "reference": "https://github.com/jtydhr88/ComfyUI-Hunyuan3D-1-wrapper", + "files": [ + "https://github.com/jtydhr88/ComfyUI-Hunyuan3D-1-wrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI Hunyuan3D-1-wrapper is a custom node that allows you to run [a/Tencent/Hunyuan3D-1](https://github.com/Tencent/Hunyuan3D-1) in ComfyUI as a wrapper." + }, + { + "author": "jtydhr88", + "title": "ComfyUI-OpenCut", + "reference": "https://github.com/jtydhr88/ComfyUI-OpenCut", + "files": [ + "https://github.com/jtydhr88/ComfyUI-OpenCut" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI plugin that integrated OpenCut into ComfyUI, originally developed by [a/OpenCut](https://github.com/OpenCut-app/OpenCut)" + }, + { + "author": "jtydhr88", + "title": "ComfyUI-AudioMass", + "reference": "https://github.com/jtydhr88/ComfyUI-AudioMass", + "files": [ + "https://github.com/jtydhr88/ComfyUI-AudioMass" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI plugin that provides a user interface of AudioMass, originally developed by [a/AudioMass](https://github.com/pkalogiros/audiomass)" + }, { "author": "SeaArtLab", "title": "ComfyUI-Long-CLIP", @@ -7152,6 +10192,7 @@ { "author": "discus0434", "title": "ComfyUI Caching Embeddings", + "id": "caching-embeddings", "reference": "https://github.com/discus0434/comfyui-caching-embeddings", "files": [ "https://github.com/discus0434/comfyui-caching-embeddings" @@ -7159,9 +10200,64 @@ "install_type": "git-clone", "description": "This repository simply caches the CLIP embeddings and subtly accelerates the inference process by bypassing unnecessary computations." }, + { + "author": "discus0434", + "title": "ComfyUI Aesthetic Predictor V2.5", + "id": "aesthetic-predictor", + "reference": "https://github.com/discus0434/comfyui-aesthetic-predictor-v2-5", + "files": [ + "https://github.com/discus0434/comfyui-aesthetic-predictor-v2-5" + ], + "install_type": "git-clone", + "description": "Simple ComfyUI node that predicts the score of an aesthetic image with SigLIP-based predictor." + }, + { + "author": "discus0434", + "title": "ComfyUI Flux Accelerator", + "reference": "https://github.com/discus0434/comfyui-flux-accelerator", + "files": [ + "https://github.com/discus0434/comfyui-flux-accelerator" + ], + "install_type": "git-clone", + "description": "ComfyUI Flux Accelerator is a custom node for ComfyUI that accelerates Flux.1 image generation, just by using this node." + }, + { + "author": "AIFSH", + "title": "StyleShot-ComfyUI", + "id": "styleshot", + "reference": "https://github.com/AIFSH/StyleShot-ComfyUI", + "files": [ + "https://github.com/AIFSH/StyleShot-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/StyleShot](https://github.com/open-mmlab/StyleShot.git)" + }, + { + "author": "AIFSH", + "title": "VocalSeparation-ComfyUI", + "id": "vocalseparation", + "reference": "https://github.com/AIFSH/VocalSeparation-ComfyUI", + "files": [ + "https://github.com/AIFSH/VocalSeparation-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for separation vocals from music based on [a/ZFTurbo/Music-Source-Separation-Training](https://github.com/ZFTurbo/Music-Source-Separation-Training)" + }, + { + "author": "AIFSH", + "title": "DiffMorpher-ComfyUI", + "id": "diffmorpher", + "reference": "https://github.com/AIFSH/DiffMorpher-ComfyUI", + "files": [ + "https://github.com/AIFSH/DiffMorpher-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/DiffMorpher](https://github.com/Kevin-thu/DiffMorpher),you can find base workflow in [a/doc](https://github.com/AIFSH/DiffMorpher-ComfyUI/blob/main/doc)" + }, { "author": "AIFSH", "title": "ComfyUI-UVR5", + "id": "uvr5", "reference": "https://github.com/AIFSH/ComfyUI-UVR5", "files": [ "https://github.com/AIFSH/ComfyUI-UVR5" @@ -7172,6 +10268,7 @@ { "author": "AIFSH", "title": "ComfyUI-IP_LAP", + "id": "iplap", "reference": "https://github.com/AIFSH/ComfyUI-IP_LAP", "files": [ "https://github.com/AIFSH/ComfyUI-IP_LAP" @@ -7182,6 +10279,7 @@ { "author": "AIFSH", "title": "ComfyUI-GPT_SoVITS", + "id": "sovits", "reference": "https://github.com/AIFSH/ComfyUI-GPT_SoVITS", "files": [ "https://github.com/AIFSH/ComfyUI-GPT_SoVITS" @@ -7192,6 +10290,7 @@ { "author": "AIFSH", "title": "ComfyUI-MuseTalk_FSH", + "id": "musetalk-fsh", "reference": "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH", "files": [ "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH" @@ -7199,9 +10298,399 @@ "install_type": "git-clone", "description": "the comfyui custom node of [a/MuseTalk](https://github.com/TMElyralab/MuseTalk) to make audio driven videos!" }, + { + "author": "AIFSH", + "title": "ComfyUI-WhisperX", + "id": "whisperx", + "reference": "https://github.com/AIFSH/ComfyUI-WhisperX", + "files": [ + "https://github.com/AIFSH/ComfyUI-WhisperX" + ], + "install_type": "git-clone", + "description": "a comfyui cuatom node for audio subtitling based on [a/whisperX](https://github.com/m-bain/whisperX.git) and [a/translators](https://github.com/UlionTse/translators)" + }, + { + "author": "AIFSH", + "title": "ComfyUI-RVC", + "id": "aifsh-rvc", + "reference": "https://github.com/AIFSH/ComfyUI-RVC", + "files": [ + "https://github.com/AIFSH/ComfyUI-RVC" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/Retrieval-based-Voice-Conversion-WebUI](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git), you can Voice-Conversion in comfyui now!\nNOTE: make sure ffmpeg is worked in your commandline for Linux" + }, + { + "author": "AIFSH", + "title": "ComfyUI-XTTS", + "id": "xtts", + "reference": "https://github.com/AIFSH/ComfyUI-XTTS", + "files": [ + "https://github.com/AIFSH/ComfyUI-XTTS" + ], + "install_type": "git-clone", + "description": "a custom comfyui node for [a/coqui-ai/TTS](https://github.com/coqui-ai/TTS.git)'s xtts module! support 17 languages voice cloning and tts" + }, + { + "author": "AIFSH", + "title": "ComfyUI-Live2DViewer", + "id": "live2dviewer", + "reference": "https://github.com/AIFSH/ComfyUI-Live2DViewer", + "files": [ + "https://github.com/AIFSH/ComfyUI-Live2DViewer" + ], + "install_type": "git-clone", + "description": "a comfyui node for viewing Live2D model" + }, + { + "author": "AIFSH", + "title": "ComfyUI-FishSpeech", + "id": "fishspeech", + "reference": "https://github.com/AIFSH/ComfyUI-FishSpeech", + "files": [ + "https://github.com/AIFSH/ComfyUI-FishSpeech" + ], + "install_type": "git-clone", + "description": "a custom comfyui node for [a/fish-speech](https://github.com/fishaudio/fish-speech.git)" + }, + { + "author": "AIFSH", + "title": "ComfyUI_V-Express", + "id": "v-express-aifsh", + "reference": "https://github.com/AIFSH/ComfyUI_V-Express", + "files": [ + "https://github.com/AIFSH/ComfyUI_V-Express" + ], + "install_type": "git-clone", + "description": "the comfyui custom node of [a/V-Express](https://github.com/tencent-ailab/V-Express) to make audio driven videos!" + }, + { + "author": "AIFSH", + "title": "ComfyUI-MimicBrush", + "id": "mimicbrush", + "reference": "https://github.com/AIFSH/ComfyUI-MimicBrush", + "files": [ + "https://github.com/AIFSH/ComfyUI-MimicBrush" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/MimicBrush](https://github.com/ali-vilab/MimicBrush),then inpainting with reference image." + }, + { + "author": "AIFSH", + "title": "ComfyUI-Hallo", + "id": "hallo", + "reference": "https://github.com/AIFSH/ComfyUI-Hallo", + "files": [ + "https://github.com/AIFSH/ComfyUI-Hallo" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/hallo](https://github.com/fudan-generative-vision/hallo)" + }, + { + "author": "AIFSH", + "title": "ComfyUI-UniAnimate", + "id": "unianimate", + "reference": "https://github.com/AIFSH/ComfyUI-UniAnimate", + "files": [ + "https://github.com/AIFSH/ComfyUI-UniAnimate" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/UniAnimate](https://github.com/ali-vilab/UniAnimate)" + }, + { + "author": "AIFSH", + "title": "ComfyUI-3d-photo-inpainting", + "id": "3d-photo-inpainting", + "reference": "https://github.com/AIFSH/ComfyUI-3d-photo-inpainting", + "files": [ + "https://github.com/AIFSH/ComfyUI-3d-photo-inpainting" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/3d-photo-inpainting](https://github.com/vt-vl-lab/3d-photo-inpainting),then you can render one image to zoom-in/dolly zoom/swing motion/circle motion video" + }, + { + "author": "AIFSH", + "title": "AIFSH/ComfyUI-AuraSR", + "id": "aurasr-aifsh", + "reference": "https://github.com/AIFSH/ComfyUI-AuraSR", + "files": [ + "https://github.com/AIFSH/ComfyUI-AuraSR" + ], + "install_type": "git-clone", + "description": "a node for [a/AuraSR](https://github.com/fal-ai/aura-sr)" + }, + { + "author": "AIFSH", + "title": "ComfyUI-MARS5-TTS", + "id": "mars5-tts", + "reference": "https://github.com/AIFSH/ComfyUI-MARS5-TTS", + "files": [ + "https://github.com/AIFSH/ComfyUI-MARS5-TTS" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/MARS5-TTS](https://github.com/Camb-ai/MARS5-TTS)" + }, + { + "author": "AIFSH", + "title": "ComfyUI-I2V-Adapter", + "id": "i2v-adapter", + "reference": "https://github.com/AIFSH/ComfyUI-I2V-Adapter", + "files": [ + "https://github.com/AIFSH/ComfyUI-I2V-Adapter" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/I2V-Adapter](https://github.com/KwaiVGI/I2V-Adapter)" + }, + { + "author": "AIFSH", + "title": "ComfyUI-MimicMotion", + "id": "mimicmotion-aifsh", + "reference": "https://github.com/AIFSH/ComfyUI-MimicMotion", + "files": [ + "https://github.com/AIFSH/ComfyUI-MimicMotion" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/MimicMotion](https://github.com/Tencent/MimicMotion)" + }, + { + "author": "AIFSH", + "title": "ComfyUI-DiffSynth-Studio", + "id": "diffsynth-studio", + "reference": "https://github.com/AIFSH/ComfyUI-DiffSynth-Studio", + "files": [ + "https://github.com/AIFSH/ComfyUI-DiffSynth-Studio" + ], + "install_type": "git-clone", + "description": "make [a/DiffSynth-Studio](https://github.com/modelscope/DiffSynth-Studio) available in ComfyUI" + }, + { + "author": "AIFSH", + "title": "CosyVoice-ComfyUI", + "id": "cosyvoice", + "reference": "https://github.com/AIFSH/CosyVoice-ComfyUI", + "files": [ + "https://github.com/AIFSH/CosyVoice-ComfyUI" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/CosyVoice](https://github.com/FunAudioLLM/CosyVoice)" + }, + { + "author": "AIFSH", + "title": "AniTalker-ComfyUI", + "id": "anitalker", + "reference": "https://github.com/AIFSH/AniTalker-ComfyUI", + "files": [ + "https://github.com/AIFSH/AniTalker-ComfyUI" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/AniTalker](https://github.com/X-LANCE/AniTalker)" + }, + { + "author": "AIFSH", + "title": "DHLive-ComfyUI", + "id": "dhlive", + "reference": "https://github.com/AIFSH/DHLive-ComfyUI", + "files": [ + "https://github.com/AIFSH/DHLive-ComfyUI" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/DH_live](https://github.com/kleinlee/DH_live)" + }, + { + "author": "AIFSH", + "title": "GSTTS-ComfyUI", + "id": "gstts", + "reference": "https://github.com/AIFSH/GSTTS-ComfyUI", + "files": [ + "https://github.com/AIFSH/GSTTS-ComfyUI" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for [a/GPT-SoVITS](https://github.com/RVC-Boss/GPT-SoVITS)" + }, + { + "author": "AIFSH", + "title": "FancyVideo-ComfyUI", + "reference": "https://github.com/AIFSH/FancyVideo-ComfyUI", + "files": [ + "https://github.com/AIFSH/FancyVideo-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/FancyVideo](https://github.com/360CVGroup/FancyVideo)" + }, + { + "author": "AIFSH", + "title": "VideoSys-ComfyUI", + "reference": "https://github.com/AIFSH/VideoSys-ComfyUI", + "files": [ + "https://github.com/AIFSH/VideoSys-ComfyUI" + ], + "install_type": "git-clone", + "description": "NODES:TextNode, PreViewVideo, VideoSysNode." + }, + { + "author": "AIFSH", + "title": "HivisionIDPhotos-ComfyUI", + "reference": "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI", + "files": [ + "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/HivisionIDPhotos](https://github.com/Zeyi-Lin/HivisionIDPhotos)" + }, + { + "author": "AIFSH", + "title": "DiffSynth-ComfyUI", + "reference": "https://github.com/AIFSH/DiffSynth-ComfyUI", + "files": [ + "https://github.com/AIFSH/DiffSynth-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/DiffSynth-Studio](https://github.com/modelscope/DiffSynth-Studio)" + }, + { + "author": "AIFSH", + "title": "RealisDance-ComfyUI", + "reference": "https://github.com/AIFSH/RealisDance-ComfyUI", + "files": [ + "https://github.com/AIFSH/RealisDance-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/RealisDance](https://github.com/damo-cv/RealisDance)" + }, + { + "author": "AIFSH", + "title": "ViewCrafter-ComfyUI", + "reference": "https://github.com/AIFSH/ViewCrafter-ComfyUI", + "files": [ + "https://github.com/AIFSH/ViewCrafter-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/ViewCrafter](https://github.com/Drexubery/ViewCrafter)" + }, + { + "author": "AIFSH", + "title": "SenseVoice-ComfyUI", + "reference": "https://github.com/AIFSH/SenseVoice-ComfyUI", + "files": [ + "https://github.com/AIFSH/SenseVoice-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for SenseVoice" + }, + { + "author": "AIFSH", + "title": "EzAudio-ComfyUI", + "reference": "https://github.com/AIFSH/EzAudio-ComfyUI", + "files": [ + "https://github.com/AIFSH/EzAudio-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/EzAudio](https://github.com/haidog-yaqub/EzAudio)" + }, + { + "author": "AIFSH", + "title": "PyramidFlow-ComfyUI", + "reference": "https://github.com/AIFSH/PyramidFlow-ComfyUI", + "files": [ + "https://github.com/AIFSH/PyramidFlow-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/Pyramid-Flow](https://github.com/jy0205/Pyramid-Flow)" + }, + { + "author": "AIFSH", + "title": "JoyHallo-ComfyUI", + "reference": "https://github.com/AIFSH/JoyHallo-ComfyUI", + "files": [ + "https://github.com/AIFSH/JoyHallo-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/JoyHallo](https://github.com/jdh-algo/JoyHallo)" + }, + { + "author": "AIFSH", + "title": "F5-TTS-ComfyUI", + "reference": "https://github.com/AIFSH/F5-TTS-ComfyUI", + "files": [ + "https://github.com/AIFSH/F5-TTS-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/F5-TTS](https://github.com/SWivid/F5-TTS)" + }, + { + "author": "AIFSH", + "title": "FireRedTTS-ComfyUI", + "reference": "https://github.com/AIFSH/FireRedTTS-ComfyUI", + "files": [ + "https://github.com/AIFSH/FireRedTTS-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/FireRedTTS](https://github.com/FireRedTeam/FireRedTTS)" + }, + { + "author": "AIFSH", + "title": "IMAGDressing-ComfyUI", + "reference": "https://github.com/AIFSH/IMAGDressing-ComfyUI", + "files": [ + "https://github.com/AIFSH/IMAGDressing-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom nodde for [a/IMAGDressing](https://github.com/muzishen/IMAGDressing)" + }, + { + "author": "AIFSH", + "title": "OmniGen-ComfyUI", + "reference": "https://github.com/AIFSH/OmniGen-ComfyUI", + "files": [ + "https://github.com/AIFSH/OmniGen-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/OmniGen](https://github.com/VectorSpaceLab/OmniGen)" + }, + { + "author": "AIFSH", + "title": "MaskGCT-ComfyUI", + "reference": "https://github.com/AIFSH/MaskGCT-ComfyUI", + "files": [ + "https://github.com/AIFSH/MaskGCT-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/MaskGCT](https://github.com/open-mmlab/Amphion/blob/main/models/tts/maskgct/README.md) to Zero-Shot Text-to-Speech" + }, + { + "author": "AIFSH", + "title": "MiniMates-ComfyUI", + "reference": "https://github.com/AIFSH/MiniMates-ComfyUI", + "files": [ + "https://github.com/AIFSH/MiniMates-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/MiniMates](https://github.com/kleinlee/MiniMates)" + }, + { + "author": "AIFSH", + "title": "EchoMimicV2-ComfyUI", + "reference": "https://github.com/AIFSH/EchoMimicV2-ComfyUI", + "files": [ + "https://github.com/AIFSH/EchoMimicV2-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/echomimic_v2](https://github.com/antgroup/echomimic_v2)" + }, + { + "author": "AIFSH", + "title": "SemiChat-ComfyUI", + "reference": "https://github.com/AIFSH/SemiChat-ComfyUI", + "files": [ + "https://github.com/AIFSH/SemiChat-ComfyUI" + ], + "install_type": "git-clone", + "description": "A ComfyUI chat node based on SemiUI." + }, { "author": "Koishi-Star", "title": "Euler-Smea-Dyn-Sampler", + "id": "smea", "reference": "https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler", "files": [ "https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler" @@ -7209,9 +10698,21 @@ "install_type": "git-clone", "description": "СomfyUI version of [a/Euler Smea Dyn Sampler](https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler). It adds samplers directly to KSampler nodes." }, + { + "author": "Koishi-Star", + "title": "Pyramid_Noise_For_Inference", + "id": "Pyramid_Noise_For_Inference", + "reference": "https://github.com/Koishi-Star/Pyramid_Noise_For_Inference", + "files": [ + "https://github.com/Koishi-Star/Pyramid_Noise_For_Inference" + ], + "install_type": "git-clone", + "description": "Using pyramid_noise instead of original noise in inference" + }, { "author": "sdfxai", "title": "SDFXBridgeForComfyUI - ComfyUI Custom Node for SDFX Integration", + "id": "sdfx", "reference": "https://github.com/sdfxai/SDFXBridgeForComfyUI", "files": [ "https://github.com/sdfxai/SDFXBridgeForComfyUI" @@ -7220,28 +10721,532 @@ "description": "SDFXBridgeForComfyUI is a custom node designed for seamless integration between ComfyUI and SDFX. This custom node allows users to make ComfyUI compatible with SDFX when running the ComfyUI instance on their local machines." }, { - "author": "smthemex", - "title": "ComfyUI_ChatGLM_API", - "reference": "https://github.com/smthemex/ComfyUI_ChatGLM_API", - "files": [ - "https://github.com/smthemex/ComfyUI_ChatGLM_API" - ], - "install_type": "git-clone", - "description": "You can call Chatglm's API in comfyUI to translate and describe pictures, and the API similar to OpenAI." + "author": "smthemex", + "title": "ComfyUI_FoleyCrafter", + "id": "comfyui_foleycrafter", + "reference": "https://github.com/smthemex/ComfyUI_FoleyCrafter", + "files": [ + "https://github.com/smthemex/ComfyUI_FoleyCrafter" + ], + "install_type": "git-clone", + "description": "FoleyCrafter is a video-to-audio generation framework which can produce realistic sound effects semantically relevant and synchronized with videos." }, { - "author": "choey", - "title": "Comfy-Topaz", - "reference": "https://github.com/choey/Comfy-Topaz", - "files": [ - "https://github.com/choey/Comfy-Topaz" - ], - "install_type": "git-clone", - "description": "Comfy-Topaz is a custom node for ComfyUI, which integrates with Topaz Photo AI to enhance (upscale, sharpen, denoise, etc.) images, allowing this traditionally asynchronous step to become a part of ComfyUI workflows.\nNOTE:Licensed installation of Topaz Photo AI" + "author": "smthemex", + "title": "ComfyUI_Diffree", + "id": "comfyui_diffree", + "reference": "https://github.com/smthemex/ComfyUI_Diffree", + "files": [ + "https://github.com/smthemex/ComfyUI_Diffree" + ], + "install_type": "git-clone", + "description": "using diffree: Text-Guided Shape Free Object Inpainting with Diffusion Model" + }, + { + "author": "smthemex", + "title": "ComfyUI_Stable_Makeup", + "id": "Stable_Makeup", + "reference": "https://github.com/smthemex/ComfyUI_Stable_Makeup", + "files": [ + "https://github.com/smthemex/ComfyUI_Stable_Makeup" + ], + "install_type": "git-clone", + "description": "you can using stable makeup when use comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_FollowYourEmoji", + "id": "FollowYourEmoji", + "reference": "https://github.com/smthemex/ComfyUI_FollowYourEmoji", + "files": [ + "https://github.com/smthemex/ComfyUI_FollowYourEmoji" + ], + "install_type": "git-clone", + "description": "You can make emoji from a video and a image in comfyui" + }, + { + "author": "smthemex", + "title": "ComfyUI_EchoMimic", + "id": "EchoMimic", + "reference": "https://github.com/smthemex/ComfyUI_EchoMimic", + "files": [ + "https://github.com/smthemex/ComfyUI_EchoMimic" + ], + "install_type": "git-clone", + "description": "You can using EchoMimic in comfyui,please using pip install install miss module" + }, + { + "author": "smthemex", + "title": "ComfyUI_ChatGLM_API", + "id": "chatglm-api", + "reference": "https://github.com/smthemex/ComfyUI_ChatGLM_API", + "files": [ + "https://github.com/smthemex/ComfyUI_ChatGLM_API" + ], + "install_type": "git-clone", + "description": "You can call Chatglm's API in comfyUI to translate and describe pictures, and the API similar to OpenAI." + }, + { + "author": "smthemex", + "title": "ComfyUI_StableAudio_Open", + "id": "stable-audio-open-1.0", + "reference": "https://github.com/smthemex/ComfyUI_StableAudio_Open", + "files": [ + "https://github.com/smthemex/ComfyUI_StableAudio_Open" + ], + "install_type": "git-clone", + "description": "You can use stable-audio-open-1.0 in comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_AnyDoor", + "id": "ComfyUI_AnyDoor", + "reference": "https://github.com/smthemex/ComfyUI_AnyDoor", + "files": [ + "https://github.com/smthemex/ComfyUI_AnyDoor" + ], + "install_type": "git-clone", + "description": "you can using anydoor ,change clothes,object" + }, + { + "author": "smthemex", + "title": "ComfyUI_HiDiffusion_Pro", + "id": "hidiffusion-pro", + "reference": "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro", + "files": [ + "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro" + ], + "install_type": "git-clone", + "description": "A HiDiffusion node for ComfyUI." + }, + { + "author": "smthemex", + "title": "ComfyUI_StoryDiffusion", + "id": "StoryDiffusion", + "reference": "https://github.com/smthemex/ComfyUI_StoryDiffusion", + "files": [ + "https://github.com/smthemex/ComfyUI_StoryDiffusion" + ], + "install_type": "git-clone", + "description": "you can using sotry-diffusion in comfyui" + }, + { + "author": "smthemex", + "title": "ComfyUI_MS_Diffusion", + "id": "MS_Diffusion", + "reference": "https://github.com/smthemex/ComfyUI_MS_Diffusion", + "files": [ + "https://github.com/smthemex/ComfyUI_MS_Diffusion" + ], + "install_type": "git-clone", + "description": "you can make story in comfyUI using MS-diffusion" + }, + { + "author": "smthemex", + "title": "ComfyUI_Pic2Story", + "id": "pic2story", + "reference": "https://github.com/smthemex/ComfyUI_Pic2Story", + "files": [ + "https://github.com/smthemex/ComfyUI_Pic2Story" + ], + "install_type": "git-clone", + "description": "you can using pic2story in comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_Llama3_8B", + "id": "llama3-8b", + "reference": "https://github.com/smthemex/ComfyUI_Llama3_8B", + "files": [ + "https://github.com/smthemex/ComfyUI_Llama3_8B" + ], + "install_type": "git-clone", + "description": "Llama3_8B for comfyUI, using pipeline workflow." + }, + { + "author": "smthemex", + "title": "ComfyUI_ParlerTTS", + "id": "parlertts", + "reference": "https://github.com/smthemex/ComfyUI_ParlerTTS", + "files": [ + "https://github.com/smthemex/ComfyUI_ParlerTTS" + ], + "install_type": "git-clone", + "description": "Parler-TTS is a lightweight text-to-speech (TTS) model that can generate high-quality, natural sounding speech in the style of a given speaker (gender, pitch, speaking style, etc)" + }, + { + "author": "smthemex", + "title": "ComfyUI_Pipeline_Tool", + "id": "pipeline-tool", + "reference": "https://github.com/smthemex/ComfyUI_Pipeline_Tool", + "files": [ + "https://github.com/smthemex/ComfyUI_Pipeline_Tool" + ], + "install_type": "git-clone", + "description": "A tool for novice users in Chinese Mainland to call the huggingface hub and download the huggingface models." + }, + { + "author": "smthemex", + "title": "ComfyUI_ID_Animator", + "id": "id-animator", + "reference": "https://github.com/smthemex/ComfyUI_ID_Animator", + "files": [ + "https://github.com/smthemex/ComfyUI_ID_Animator" + ], + "install_type": "git-clone", + "description": "This node allows you to use ID_Animator, the zero shot video generation model" + }, + { + "author": "smthemex", + "title": "ComfyUI_CustomNet", + "id": "customnet", + "reference": "https://github.com/smthemex/ComfyUI_CustomNet", + "files": [ + "https://github.com/smthemex/ComfyUI_CustomNet" + ], + "install_type": "git-clone", + "description": "you can using customnet in comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_Pops", + "id": "pops", + "reference": "https://github.com/smthemex/ComfyUI_Pops", + "files": [ + "https://github.com/smthemex/ComfyUI_Pops" + ], + "install_type": "git-clone", + "description": "You can use [a/Popspaper](https://popspaper.github.io/pOps/) method in comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_Streamv2v_Plus", + "id": "streamv2v", + "reference": "https://github.com/smthemex/ComfyUI_Streamv2v_Plus", + "files": [ + "https://github.com/smthemex/ComfyUI_Streamv2v_Plus" + ], + "install_type": "git-clone", + "description": "using [a/StreamV2V](https://github.com/Jeff-LiangF/streamv2v) in ComfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_MooER", + "id": "comfyui_mooer", + "reference": "https://github.com/smthemex/ComfyUI_MooER", + "files": [ + "https://github.com/smthemex/ComfyUI_MooER" + ], + "install_type": "git-clone", + "description": "MooER is an LLM-based Speech Recognition and Translation Model from Moore Threads.You can use MooER when install ComfyUI_MooER node" + }, + { + "author": "smthemex", + "title": "ComfyUI_CSGO_Wrapper", + "id": "comfyui_csgo_wrapper", + "reference": "https://github.com/smthemex/ComfyUI_CSGO_Wrapper", + "files": [ + "https://github.com/smthemex/ComfyUI_CSGO_Wrapper" + ], + "install_type": "git-clone", + "description": "using InstantX's CSGO in comfyUI for style" + }, + { + "author": "smthemex", + "title": "ComfyUI_DeepFakeDefenders", + "id": "comfyui_deepfakedefenders", + "reference": "https://github.com/smthemex/ComfyUI_DeepFakeDefenders", + "files": [ + "https://github.com/smthemex/ComfyUI_DeepFakeDefenders" + ], + "install_type": "git-clone", + "description": "ou can using DeepFakeDefenders in comfyUI to Prediction image is a DeepFake img or not." + }, + { + "author": "smthemex", + "title": "ComfyUI_Sapiens", + "reference": "https://github.com/smthemex/ComfyUI_Sapiens", + "files": [ + "https://github.com/smthemex/ComfyUI_Sapiens" + ], + "install_type": "git-clone", + "description": "You can call Using Sapiens to get seg,normal,pose,depth,mask." + }, + { + "author": "smthemex", + "title": "ComfyUI_Hallo2", + "reference": "https://github.com/smthemex/ComfyUI_Hallo2", + "files": [ + "https://github.com/smthemex/ComfyUI_Hallo2" + ], + "install_type": "git-clone", + "description": "Long-Duration and High-Resolution Audio-driven Portrait Image Animation," + }, + { + "author": "smthemex", + "title": "ComfyUI_OmniParser", + "reference": "https://github.com/smthemex/ComfyUI_OmniParser", + "files": [ + "https://github.com/smthemex/ComfyUI_OmniParser" + ], + "install_type": "git-clone", + "description": "Try [a/OmniParser](https://github.com/microsoft/OmniParser) in ComfyUI which a simple screen parsing tool towards pure vision based GUI agent." + }, + { + "author": "smthemex", + "title": "ComfyUI_Demucs", + "reference": "https://github.com/smthemex/ComfyUI_Demucs", + "files": [ + "https://github.com/smthemex/ComfyUI_Demucs" + ], + "install_type": "git-clone", + "description": "Using Demucs in comfyUI, make Music Source Separation" + }, + { + "author": "smthemex", + "title": "ComfyUI_InstantIR_Wrapper", + "reference": "https://github.com/smthemex/ComfyUI_InstantIR_Wrapper", + "files": [ + "https://github.com/smthemex/ComfyUI_InstantIR_Wrapper" + ], + "install_type": "git-clone", + "description": "You can InstantIR to Fix blurry photos in ComfyUI ,[a/InstantIR](https://github.com/instantX-research/InstantIR):Blind Image Restoration with Instant Generative Reference" + }, + { + "author": "smthemex", + "title": "ComfyUI_Face_Anon_Simple", + "reference": "https://github.com/smthemex/ComfyUI_Face_Anon_Simple", + "files": [ + "https://github.com/smthemex/ComfyUI_Face_Anon_Simple" + ], + "install_type": "git-clone", + "description": "Face Anonymization make simple and easy." + }, + { + "author": "smthemex", + "title": "ComfyUI_PBR_Maker", + "reference": "https://github.com/smthemex/ComfyUI_PBR_Maker", + "files": [ + "https://github.com/smthemex/ComfyUI_PBR_Maker" + ], + "install_type": "git-clone", + "description": "you can make PBR in comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_TRELLIS", + "reference": "https://github.com/smthemex/ComfyUI_TRELLIS", + "files": [ + "https://github.com/smthemex/ComfyUI_TRELLIS" + ], + "install_type": "git-clone", + "description": "You can use TRELLIS in comfyUI\n[a/TRELLIS](https://github.com/microsoft/TRELLIS/tree/main), Structured 3D Latents for Scalable and Versatile 3D Generation" + }, + { + "author": "smthemex", + "title": "ComfyUI_SVFR", + "reference": "https://github.com/smthemex/ComfyUI_SVFR", + "files": [ + "https://github.com/smthemex/ComfyUI_SVFR" + ], + "install_type": "git-clone", + "description": "SVFR is a unified framework for face video restoration that supports tasks such as BFR, Colorization, Inpainting,you can use it in ComfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_MangaNinjia", + "reference": "https://github.com/smthemex/ComfyUI_MangaNinjia", + "files": [ + "https://github.com/smthemex/ComfyUI_MangaNinjia" + ], + "install_type": "git-clone", + "description": "ComfyUI_MangaNinjia is a ComfyUI node of MangaNinja which is a Line Art Colorization with Precise Reference Following method." + }, + { + "author": "smthemex", + "title": "ComfyUI_Sonic", + "reference": "https://github.com/smthemex/ComfyUI_Sonic", + "files": [ + "https://github.com/smthemex/ComfyUI_Sonic" + ], + "install_type": "git-clone", + "description": "Sonic is a method about ' Shifting Focus to Global Audio Perception in Portrait Animation',you can use it in comfyUI." + }, + { + "author": "smthemex", + "title": "ComfyUI_DiffuEraser", + "reference": "https://github.com/smthemex/ComfyUI_DiffuEraser", + "files": [ + "https://github.com/smthemex/ComfyUI_DiffuEraser" + ], + "install_type": "git-clone", + "description": "DiffuEraser is a diffusion model for video Inpainting, you can use it in ComfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_CSD_MT", + "reference": "https://github.com/smthemex/ComfyUI_CSD_MT", + "files": [ + "https://github.com/smthemex/ComfyUI_CSD_MT" + ], + "install_type": "git-clone", + "description": "[a/CSD_MT](https://github.com/Snowfallingplum/CSD-MT) is a method about 'Content-Style Decoupling for Unsupervised Makeup Transfer without Generating Pseudo Ground Truth', you can use it in comfyUI." + }, + { + "author": "smthemex", + "title": "ComfyUI_Light_A_Video", + "reference": "https://github.com/smthemex/ComfyUI_Light_A_Video", + "files": [ + "https://github.com/smthemex/ComfyUI_Light_A_Video" + ], + "install_type": "git-clone", + "description": "Light-A-Video: Training-free Video Relighting via Progressive Light Fusion,you can use it in comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_YuE", + "reference": "https://github.com/smthemex/ComfyUI_YuE", + "files": [ + "https://github.com/smthemex/ComfyUI_YuE" + ], + "install_type": "git-clone", + "description": "[a/YuE](https://github.com/multimodal-art-projection/YuE) is a groundbreaking series of open-source foundation models designed for music generation, specifically for transforming lyrics into full songs (lyrics2song). you can use it in comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_PhotoDoodle", + "reference": "https://github.com/smthemex/ComfyUI_PhotoDoodle", + "files": [ + "https://github.com/smthemex/ComfyUI_PhotoDoodle" + ], + "install_type": "git-clone", + "description": "PhotoDoodle: Learning Artistic Image Editing from Few-Shot Pairwise Data,you can use it in comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_KV_Edit", + "reference": "https://github.com/smthemex/ComfyUI_KV_Edit", + "files": [ + "https://github.com/smthemex/ComfyUI_KV_Edit" + ], + "install_type": "git-clone", + "description": "KV-Edit: Training-Free Image Editing for Precise Background Preservation,you can use it in comfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_Personalize_Anything", + "reference": "https://github.com/smthemex/ComfyUI_Personalize_Anything", + "files": [ + "https://github.com/smthemex/ComfyUI_Personalize_Anything" + ], + "install_type": "git-clone", + "description": "Personalize Anything for Free with Diffusion Transformer,use it in comfyUI with wrapper mode" + }, + { + "author": "smthemex", + "title": "ComfyUI_DICE_Talk", + "reference": "https://github.com/smthemex/ComfyUI_DICE_Talk", + "files": [ + "https://github.com/smthemex/ComfyUI_DICE_Talk" + ], + "install_type": "git-clone", + "description": "Use DICE-Talk in ComfyUI,which is a method about Correlation-Aware Emotional Talking Portrait Generation." + }, + { + "author": "smthemex", + "title": "ComfyUI_VisualCloze", + "reference": "https://github.com/smthemex/ComfyUI_VisualCloze", + "files": [ + "https://github.com/smthemex/ComfyUI_VisualCloze" + ], + "install_type": "git-clone", + "description": "VisualCloze: A Universal Image Generation Framework via Visual In-Context Learning,you can use it in ComfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_HunyuanAvatar_Sm", + "reference": "https://github.com/smthemex/ComfyUI_HunyuanAvatar_Sm", + "files": [ + "https://github.com/smthemex/ComfyUI_HunyuanAvatar_Sm" + ], + "install_type": "git-clone", + "description": "HunyuanVideo-Avatar: High-Fidelity Audio-Driven Human Animation for Multiple Characters,try it in comfyUI ,if your VRAM >24G." + }, + { + "author": "smthemex", + "title": "ComfyUI_PartPacker", + "reference": "https://github.com/smthemex/ComfyUI_PartPacker", + "files": [ + "https://github.com/smthemex/ComfyUI_PartPacker" + ], + "install_type": "git-clone", + "description": "This is the comfyui implementation of [a/PartPacker](https://github.com/NVlabs/PartPacker): Efficient Part-level 3D Object Generation via Dual Volume Packing.Max varm12G" + }, + { + "author": "smthemex", + "title": "ComfyUI_SongGeneration", + "reference": "https://github.com/smthemex/ComfyUI_SongGeneration", + "files": [ + "https://github.com/smthemex/ComfyUI_SongGeneration" + ], + "install_type": "git-clone", + "description": "[a/SongGeneration](https://github.com/tencent-ailab/SongGeneration):High-Quality Song Generation with Multi-Preference Alignment (SOTA),you can try VRAM>12G" + }, + { + "author": "smthemex", + "title": "ComfyUI_AniCrafter", + "reference": "https://github.com/smthemex/ComfyUI_AniCrafter", + "files": [ + "https://github.com/smthemex/ComfyUI_AniCrafter" + ], + "install_type": "git-clone", + "description": "[a/AniCrafter](https://github.com/MyNiuuu/AniCrafter): Customizing Realistic Human-Centric Animation via Avatar-Background Conditioning in Video Diffusion Models, you can try this methods when use ComfyUI." + }, + { + "author": "smthemex", + "title": "ComfyUI_ObjectClear", + "reference": "https://github.com/smthemex/ComfyUI_ObjectClear", + "files": [ + "https://github.com/smthemex/ComfyUI_ObjectClear" + ], + "install_type": "git-clone", + "description": "ObjectClear:Complete Object Removal via Object-Effect Attention,you can try it in ComfyUI" + }, + { + "author": "smthemex", + "title": "ComfyUI_OmniSVG", + "reference": "https://github.com/smthemex/ComfyUI_OmniSVG", + "files": [ + "https://github.com/smthemex/ComfyUI_OmniSVG" + ], + "install_type": "git-clone", + "description": "OmniSVG: A Unified Scalable Vector Graphics Generation Model,you can try it in ComfyUI." + }, + { + "author": "smthemex", + "title": "ComfyUI_StableAvatar", + "reference": "https://github.com/smthemex/ComfyUI_StableAvatar", + "files": [ + "https://github.com/smthemex/ComfyUI_StableAvatar" + ], + "install_type": "git-clone", + "description": "StableAvatar: Infinite-Length Audio-Driven Avatar Video Generation,you can try it in ComfyUI" + }, + { + "author": "choey", + "title": "Comfy-Topaz", + "id": "topaz", + "reference": "https://github.com/choey/Comfy-Topaz", + "files": [ + "https://github.com/choey/Comfy-Topaz" + ], + "install_type": "git-clone", + "description": "Comfy-Topaz is a custom node for ComfyUI, which integrates with Topaz Photo AI to enhance (upscale, sharpen, denoise, etc.) images, allowing this traditionally asynchronous step to become a part of ComfyUI workflows.\nNOTE:Licensed installation of Topaz Photo AI" }, { "author": "ALatentPlace", "title": "ComfyUI_yanc", + "id": "yanc-alatentplace", "reference": "https://github.com/ALatentPlace/ComfyUI_yanc", "files": [ "https://github.com/ALatentPlace/ComfyUI_yanc" @@ -7249,19 +11254,30 @@ "install_type": "git-clone", "description": "Yet Another Node Collection. Adds some useful nodes, check out the GitHub page for more details." }, + { + "author": "ALatentPlace", + "title": "YANC_LMStudio", + "reference": "https://github.com/ALatentPlace/YANC_LMStudio", + "files": [ + "https://github.com/ALatentPlace/YANC_LMStudio" + ], + "install_type": "git-clone", + "description": "A custom node for a LMStudio integration into ComfyUI." + }, { "author": "Wicloz", - "title": "ComfyUI-Simply-Nodes", + "title": "ComfyUI Simply Nodes", "reference": "https://github.com/Wicloz/ComfyUI-Simply-Nodes", "files": [ "https://github.com/Wicloz/ComfyUI-Simply-Nodes" ], "install_type": "git-clone", - "description": "Nodes:Conditional LoRA Loader, Multiline Text, Text Flow Controller, Select SDXL Resolution, Random Style Prompt." + "description": "Simple nodes to help clean up your workflow, mostly focussed on text operations." }, { "author": "wandbrandon", "title": "comfyui-pixel", + "id": "pixel", "reference": "https://github.com/wandbrandon/comfyui-pixel", "files": [ "https://github.com/wandbrandon/comfyui-pixel" @@ -7272,22 +11288,46 @@ { "author": "nullquant", "title": "BrushNet", + "id": "brushnet", "reference": "https://github.com/nullquant/ComfyUI-BrushNet", "files": [ "https://github.com/nullquant/ComfyUI-BrushNet" ], "install_type": "git-clone", - "description": "Custom nodes for ComfyUI allow to inpaint using Brushnet: '[a/BrushNet: A Plug-and-Play Image Inpainting Model with Decomposed Dual-Branch Diffusion](https://arxiv.org/abs/2403.06976)'." + "description": "These are custom nodes for ComfyUI native implementation of [a/BrushNet](https://arxiv.org/abs/2403.06976) (inpaint), PowerPaint (inpaint, object removal) and HiDiffusion (higher resolution for SD15 and SDXL)" }, { "author": "pamparamm", - "title": "Perturbed-Attention Guidance", + "title": "sd-perturbed-attention", + "id": "pag", "reference": "https://github.com/pamparamm/sd-perturbed-attention", "files": [ "https://github.com/pamparamm/sd-perturbed-attention" ], "install_type": "git-clone", - "description": "Perturbed-Attention Guidance node for ComfyUI." + "description": "Perturbed-Attention Guidance, Smoothed Energy Guidance and Sliding Window Guidance for ComfyUI and SD Forge/reForge. (PAG)" + }, + { + "author": "pamparamm", + "title": "ComfyUI Vectorscope CC", + "id": "vectorscope", + "reference": "https://github.com/pamparamm/ComfyUI-vectorscope-cc", + "files": [ + "https://github.com/pamparamm/ComfyUI-vectorscope-cc" + ], + "install_type": "git-clone", + "description": "ComfyUI port of Vectorscope CC and Diffusion Color Grading by Haoming02. Makes it possible to adjust Brightness/Contrast/Saturation/Hue during image generation." + }, + { + "author": "pamparamm", + "title": "ComfyUI-ppm", + "id": "comfyui-ppm", + "reference": "https://github.com/pamparamm/ComfyUI-ppm", + "files": [ + "https://github.com/pamparamm/ComfyUI-ppm" + ], + "install_type": "git-clone", + "description": "Fixed AttentionCouple, NegPip(negative weights in prompts) for SDXL and FLUX, more CFG++ and SMEA DY samplers, etc." }, { "author": "unwdef", @@ -7302,6 +11342,7 @@ { "author": "fevre27", "title": "Self-Guidance nodes", + "id": "self-guidance", "reference": "https://github.com/forever22777/comfyui-self-guidance", "files": [ "https://github.com/forever22777/comfyui-self-guidance" @@ -7309,25 +11350,27 @@ "install_type": "git-clone", "description": "Unofficial ComfyUI implementation of Self-Guidance." }, - { - "author": "smthemex", - "title": "ComfyUI_ParlerTTS", - "reference": "https://github.com/smthemex/ComfyUI_ParlerTTS", - "files": [ - "https://github.com/smthemex/ComfyUI_ParlerTTS" - ], - "install_type": "git-clone", - "description": "This is a simple ComfyUI custom TTS node based on [a/Parler_tts](https://huggingface.co/parler-tts)." - }, { "author": "aburahamu", - "title": "ComfyUI-RequestsPoster", + "title": "ComfyUI-RequestPoster", + "id": "request-poster", "reference": "https://github.com/aburahamu/ComfyUI-RequestsPoster", "files": [ "https://github.com/aburahamu/ComfyUI-RequestsPoster" ], "install_type": "git-clone", - "description": "This custom node is that simply posts HttpRequest from ComfyUI." + "description": "This extension can send HTTP Requests. You can request image generation to StableDiffusion3 and post images to X (Twitter) and Discord." + }, + { + "author": "aburahamu", + "title": "ComfyUI-IsNiceParts", + "id": "isniceparts", + "reference": "https://github.com/aburahamu/ComfyUI-IsNiceParts", + "files": [ + "https://github.com/aburahamu/ComfyUI-IsNiceParts" + ], + "install_type": "git-clone", + "description": "This custom node detects body parts (currently only hands) from the received image and outputs the image if the skeleton can be estimated." }, { "author": "Sorcerio", @@ -7349,6 +11392,26 @@ "install_type": "git-clone", "description": "These are just some nodes I wanted and couldn't find where anyone else had made them yet." }, + { + "author": "quadmoon", + "title": "ComfyUI-Riffusion", + "reference": "https://github.com/traugdor/ComfyUI-Riffusion", + "files": [ + "https://github.com/traugdor/ComfyUI-Riffusion" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension for Riffusion audio generation." + }, + { + "author": "quadmoon", + "title": "ComfyUI-UltimateSDUpscale-GGUF", + "reference": "https://github.com/traugdor/ComfyUI-UltimateSDUpscale-GGUF", + "files": [ + "https://github.com/traugdor/ComfyUI-UltimateSDUpscale-GGUF" + ], + "install_type": "git-clone", + "description": "GGUF implementation for the ComfyUI Ultimate SD Upscale node." + }, { "author": "quadme7macoon", "title": "ComfyUI-ShadertoyGL", @@ -7359,29 +11422,10 @@ "install_type": "git-clone", "description": "Nodes:Shadertoy, Shader, ColorChannelOffset." }, - { - "author": "turkyden", - "title": "ComfyUI-Sticker", - "reference": "https://github.com/turkyden/ComfyUI-Sticker", - "files": [ - "https://github.com/turkyden/ComfyUI-Sticker" - ], - "install_type": "git-clone", - "description": "image to sticker" - }, - { - "author": "turkyden", - "title": "ComfyUI-Comic", - "reference": "https://github.com/turkyden/ComfyUI-Comic", - "files": [ - "https://github.com/turkyden/ComfyUI-Comic" - ], - "install_type": "git-clone", - "description": "a comfyui plugin for image to comic" - }, { "author": "royceschultz", "title": "ComfyUI-TranscriptionTools", + "id": "transcription-tools", "reference": "https://github.com/royceschultz/ComfyUI-TranscriptionTools", "files": [ "https://github.com/royceschultz/ComfyUI-TranscriptionTools" @@ -7392,6 +11436,7 @@ { "author": "kunieone", "title": "ComfyUI_alkaid", + "id": "alkadi", "reference": "https://github.com/kunieone/ComfyUI_alkaid", "files": [ "https://github.com/kunieone/ComfyUI_alkaid" @@ -7399,19 +11444,10 @@ "install_type": "git-clone", "description": "Nodes:A_Face3DSwapper, A_FaceCrop, A_FacePaste, A_OpenPosePreprocessor, A_EmptyLatentImageLongside, A_GetImageSize, AlkaidLoader, AdapterFaceLoader, AdapterStyleLoader, ..." }, - { - "author": "jtydhr88", - "title": "ComfyUI-InstantMesh", - "reference": "https://github.com/jtydhr88/ComfyUI-InstantMesh", - "files": [ - "https://github.com/jtydhr88/ComfyUI-InstantMesh" - ], - "install_type": "git-clone", - "description": "ComfyUI InstantMesh is custom nodes that running TencentARC/InstantMesh into ComfyUI, this extension depends on ComfyUI-3D-Pack. Please refer to Readme carefully to install." - }, { "author": "txt2any", "title": "ComfyUI-PromptOrganizer", + "id": "prompt-organizer", "reference": "https://github.com/txt2any/ComfyUI-PromptOrganizer", "files": [ "https://github.com/txt2any/ComfyUI-PromptOrganizer" @@ -7422,6 +11458,7 @@ { "author": "kealiu", "title": "ComfyUI Load and Save file to S3", + "id": "savefile-to-s3", "reference": "https://github.com/kealiu/ComfyUI-S3-Tools", "files": [ "https://github.com/kealiu/ComfyUI-S3-Tools" @@ -7430,38 +11467,74 @@ "description": "Nodes:Load From S3, Save To S3." }, { - "author": "smthemex", - "title": "ComfyUI_Pic2Story", - "reference": "https://github.com/smthemex/ComfyUI_Pic2Story", + "author": "kealiu", + "title": "ComfyUI-ZeroShot-MTrans", + "id": "zeroshot-mtrans", + "reference": "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans", "files": [ - "https://github.com/smthemex/ComfyUI_Pic2Story" + "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans" ], "install_type": "git-clone", - "description": "ComfyUI simple node based on BLIP method, with the function of 'Image to Txt'." + "description": "An unofficial ComfyUI custom node for [a/Zero-Shot Material Transfer from a Single Image](https://ttchengab.github.io/zest), Given an input image (e.g., a photo of an apple) and a single material exemplar image (e.g., a golden bowl), ZeST can transfer the gold material from the exemplar onto the apple with accurate lighting cues while making everything else consistent." }, { - "author": "TashaSkyUp", + "author": "kealiu", + "title": "ComfyUI-Zero123-Porting", + "id": "zero123-porting", + "reference": "https://github.com/kealiu/ComfyUI-Zero123-Porting", + "files": [ + "https://github.com/kealiu/ComfyUI-Zero123-Porting" + ], + "install_type": "git-clone", + "description": "Zero-1-to-3: Zero-shot One Image to 3D Object, unofficial porting of original [Zero123](https://github.com/cvlab-columbia/zero123)" + }, + { + "author": "Hopping-Mad-Games", "title": "ComfyUI_LiteLLM", + "id": "litellm", "reference": "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM", "files": [ "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM" ], "install_type": "git-clone", - "description": "Nodes for interfacing with LiteLLM" + "description": "Nodes for calling LLMs, enabled by LiteLLM" + }, + { + "author": "TashaSkyUp", + "title": "EternalKernel PyTorch Nodes", + "reference": "https://github.com/TashaSkyUp/EternalKernelPytorchNodes", + "files": [ + "https://github.com/TashaSkyUp/EternalKernelPytorchNodes" + ], + "install_type": "git-clone", + "description": "Comprehensive PyTorch nodes for ComfyUI - Neural network training, inference, and ML workflows" }, { "author": "AonekoSS", "title": "ComfyUI-SimpleCounter", + "id": "simplecounter", "reference": "https://github.com/AonekoSS/ComfyUI-SimpleCounter", "files": [ "https://github.com/AonekoSS/ComfyUI-SimpleCounter" ], "install_type": "git-clone", - "description": "Nodes:Simple Counter" + "description": "Node: utils/Simple Counter\nThis node is a simple counter, when pressing 'Queue Prompt' resets the count." + }, + { + "author": "AonekoSS", + "title": "ComfyUI-LoRA-Tuner", + "id": "lora-tuner", + "reference": "https://github.com/AonekoSS/ComfyUI-LoRA-Tuner", + "files": [ + "https://github.com/AonekoSS/ComfyUI-LoRA-Tuner" + ], + "install_type": "git-clone", + "description": "Nodes: LoRA-Tuner. For using multiple LoRA easily." }, { "author": "heshengtao", "title": "comfyui_LLM_party", + "id": "llm-party", "reference": "https://github.com/heshengtao/comfyui_LLM_party", "files": [ "https://github.com/heshengtao/comfyui_LLM_party" @@ -7469,9 +11542,20 @@ "install_type": "git-clone", "description": "A set of block-based LLM agent node libraries designed for ComfyUI.This project aims to develop a complete set of nodes for LLM workflow construction based on comfyui. It allows users to quickly and conveniently build their own LLM workflows and easily integrate them into their existing SD workflows." }, + { + "author": "heshengtao", + "title": "comfyui_LLM_schools", + "reference": "https://github.com/heshengtao/comfyui_LLM_schools", + "files": [ + "https://github.com/heshengtao/comfyui_LLM_schools" + ], + "install_type": "git-clone", + "description": "ComfyUI node library for fine-tuning LLMs" + }, { "author": "VAST-AI-Research", "title": "Tripo for ComfyUI", + "id": "tripo", "reference": "https://github.com/VAST-AI-Research/ComfyUI-Tripo", "files": [ "https://github.com/VAST-AI-Research/ComfyUI-Tripo" @@ -7482,6 +11566,7 @@ { "author": "JettHu", "title": "ComfyUI_TGate", + "id": "tgate", "reference": "https://github.com/JettHu/ComfyUI_TGate", "files": [ "https://github.com/JettHu/ComfyUI_TGate" @@ -7489,16 +11574,49 @@ "install_type": "git-clone", "description": "ComfyUI reference implementation for [a/T-GATE](https://github.com/HaozheLiu-ST/T-GATE)." }, + { + "author": "JettHu", + "title": "ComfyUI-TCD", + "id": "jetthu-tcd", + "reference": "https://github.com/JettHu/ComfyUI-TCD", + "files": [ + "https://github.com/JettHu/ComfyUI-TCD" + ], + "install_type": "git-clone", + "description": "ComfyUI implementation for [a/TCD](https://github.com/jabir-zheng/TCD)." + }, { "author": "sugarkwork", "title": "comfyui_tag_filter", + "id": "tag-filter", "reference": "https://github.com/sugarkwork/comfyui_tag_fillter", + "reference2": "https://github.com/sugarkwork/comfyui_tag_filter", "files": [ "https://github.com/sugarkwork/comfyui_tag_fillter" ], "install_type": "git-clone", "description": "This is a custom node of ComfyUI that categorizes tags outputted by tools like WD14Tagger, filters them by each category, and returns the filtered results." }, + { + "author": "sugarkwork", + "title": "ComfyUI_AspectRatioToSize", + "reference": "https://github.com/sugarkwork/ComfyUI_AspectRatioToSize", + "files": [ + "https://github.com/sugarkwork/ComfyUI_AspectRatioToSize" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that calculates width and height while maintaining aspect ratio, making it easier to determine image resolutions with specified aspect ratios and longer side values." + }, + { + "author": "sugarkwork", + "title": "comfyui-trtupscaler", + "reference": "https://github.com/sugarkwork/comfyui-trtupscaler", + "files": [ + "https://github.com/sugarkwork/comfyui-trtupscaler" + ], + "install_type": "git-clone", + "description": "TensorRT Upscaler for ComfyUI" + }, { "author": "Intersection98", "title": "ComfyUI-MX-post-processing-nodes", @@ -7512,6 +11630,7 @@ { "author": "TencentQQGYLab", "title": "ComfyUI-ELLA", + "id": "ella", "reference": "https://github.com/TencentQQGYLab/ComfyUI-ELLA", "files": [ "https://github.com/TencentQQGYLab/ComfyUI-ELLA" @@ -7522,47 +11641,20618 @@ { "author": "DarKDinDoN", "title": "ComfyUI Checkpoint Automatic Config", - "reference": "https://github.com/DarKDinDoN/comfyui-checkpoint-automatic-config", + "id": "checkpoint-autoconfig", + "reference": "https://github.com/mech-tools/comfyui-checkpoint-automatic-config", "files": [ - "https://github.com/DarKDinDoN/comfyui-checkpoint-automatic-config" + "https://github.com/mech-tools/comfyui-checkpoint-automatic-config" ], "install_type": "git-clone", - "description": "This node was designed to help with checkpoint configuration." + "description": "This node was designed to help with checkpoint configuration. Fee free to add new checkpoint configurations!" }, { - "author": "aburahamu", - "title": "ComfyUI-RequestPoster", - "reference": "https://github.com/aburahamu/ComfyUI-RequestsPoster", + "author": "MinusZoneAI", + "title": "ComfyUI-Prompt-MZ", + "id": "prompt-mz", + "reference": "https://github.com/MinusZoneAI/ComfyUI-Prompt-MZ", "files": [ - "https://github.com/aburahamu/ComfyUI-RequestsPoster" + "https://github.com/MinusZoneAI/ComfyUI-Prompt-MZ" ], "install_type": "git-clone", - "description": "This extension can send HTTP Requests. You can request image generation to StableDiffusion3 and post images to X (Twitter) and Discord." + "description": "Use llama.cpp to help generate some nodes for prompt word related work" }, - - - - - - - - - - - - - - - - - - + { + "author": "MinusZoneAI", + "title": "ComfyUI-StylizePhoto-MZ", + "id": "stylizephoto", + "reference": "https://github.com/MinusZoneAI/ComfyUI-StylizePhoto-MZ", + "files": [ + "https://github.com/MinusZoneAI/ComfyUI-StylizePhoto-MZ" + ], + "install_type": "git-clone", + "description": "A stylized node with simple operation. The effect is achieved by I2I and lora. The clay style is currently implemented.Comes with watermark function." + }, + { + "author": "MinusZoneAI", + "title": "ComfyUI-TrainTools-MZ", + "id": "traintools", + "reference": "https://github.com/MinusZoneAI/ComfyUI-TrainTools-MZ", + "files": [ + "https://github.com/MinusZoneAI/ComfyUI-TrainTools-MZ" + ], + "install_type": "git-clone", + "description": "Nodes for fine-tuning lora in ComfyUI, dependent on training tools such as kohya-ss/sd-scripts" + }, + { + "author": "MinusZoneAI", + "title": "ComfyUI-Kolors-MZ", + "id": "kolors-mz", + "reference": "https://github.com/MinusZoneAI/ComfyUI-Kolors-MZ", + "files": [ + "https://github.com/MinusZoneAI/ComfyUI-Kolors-MZ" + ], + "install_type": "git-clone", + "description": "Implementation of Kolors on ComfyUI\nReference from [a/https://github.com/kijai/ComfyUI-KwaiKolorsWrapper](https://github.com/kijai/ComfyUI-KwaiKolorsWrapper)\nUsing ComfyUI Native Sampling" + }, + { + "author": "MinusZoneAI", + "title": "ComfyUI-Flux1Quantize-MZ", + "reference": "https://github.com/MinusZoneAI/ComfyUI-Flux1Quantize-MZ", + "files": [ + "https://github.com/MinusZoneAI/ComfyUI-Flux1Quantize-MZ" + ], + "pip": ["git+https://github.com/IST-DASLab/marlin"], + "install_type": "git-clone", + "description": "Quantization tools are from [a/https://github.com/casper-hansen/AutoAWQ](https://github.com/casper-hansen/AutoAWQ) and [a/https://github.com/IST-DASLab/marlin](https://github.com/IST-DASLab/marlin)\nOnly applicable to graphics cards with sm_80 and above (30 series and above)\nNeed to install marlin dependencies first" + }, + { + "author": "MinusZoneAI", + "title": "ComfyUI-FluxExt-MZ", + "reference": "https://github.com/MinusZoneAI/ComfyUI-FluxExt-MZ", + "files": [ + "https://github.com/MinusZoneAI/ComfyUI-FluxExt-MZ" + ], + "install_type": "git-clone", + "description": "Nodes:MZ_Flux1PartialLoad_Patch. Tool nodes related to flux1" + }, + { + "author": "MinusZoneAI", + "title": "ComfyUI-CogVideoX-MZ", + "reference": "https://github.com/MinusZoneAI/ComfyUI-CogVideoX-MZ", + "files": [ + "https://github.com/MinusZoneAI/ComfyUI-CogVideoX-MZ" + ], + "install_type": "git-clone", + "description": "Nodes:MZ_CogVideoXLoader" + }, + { + "author": "blueraincoatli", + "title": "comfyUI_SillyNodes", + "id": "silly", + "reference": "https://github.com/blueraincoatli/comfyUI_SillyNodes", + "files": [ + "https://github.com/blueraincoatli/comfyUI_SillyNodes" + ], + "install_type": "git-clone", + "description": "Using rgthree's fast_group_muter and bookmark nodes, introduce the pyautogui library to simulate clicks and hotkeys, and run groups in sequence. screen manipulation is involved" + }, + { + "author": "ty0x2333", + "title": "ComfyUI-Dev-Utils", + "id": "dev-utils", + "reference": "https://github.com/ty0x2333/ComfyUI-Dev-Utils", + "files": [ + "https://github.com/ty0x2333/ComfyUI-Dev-Utils" + ], + "install_type": "git-clone", + "description": "Execution Time Analysis, Reroute Enhancement, Node collection for developers." + }, + { + "author": "lquesada", + "title": "ComfyUI-Prompt-Combinator", + "id": "prompt-combinator", + "reference": "https://github.com/lquesada/ComfyUI-Prompt-Combinator", + "files": [ + "https://github.com/lquesada/ComfyUI-Prompt-Combinator" + ], + "install_type": "git-clone", + "description": "'🔢 Prompt Combinator' is a node that generates all possible combinations of prompts from several lists of strings.\n'🔢 Prompt Combinator Merger' is a node that enables merging the output of two different '🔢 Prompt Combinator' nodes." + }, + { + "author": "lquesada", + "title": "ComfyUI-Inpaint-CropAndStitch", + "id": "crop-and-stitch", + "reference": "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch", + "files": [ + "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch" + ], + "install_type": "git-clone", + "description": "'✂️ Inpaint Crop' is a node that crops an image before sampling. The context area can be specified via the mask, expand pixels and expand factor or via a separate (optional) mask.\n'✂️ Inpaint Stitch' is a node that stitches the inpainted image back into the original image without altering unmasked areas." + }, + { + "author": "lquesada", + "title": "ComfyUI-Interactive", + "id": "comfyui-interactive", + "reference": "https://github.com/lquesada/ComfyUI-Interactive", + "files": [ + "https://github.com/lquesada/ComfyUI-Interactive" + ], + "install_type": "git-clone", + "description": "Nodes that allow making the UI interactive, with selectors and switches, etc.. Enables selecting across multiple options with the click of a button to move a workflow forward." + }, + { + "author": "randjtw", + "title": "advance-aesthetic-score", + "reference": "https://github.com/randjtw/advance-aesthetic-score", + "files": [ + "https://github.com/randjtw/advance-aesthetic-score" + ], + "install_type": "git-clone", + "description": "Nodes:Advance Aesthetic Score" + }, + { + "author": "FredBill1", + "title": "comfyui-fb-utils", + "id": "fb-utils", + "reference": "https://github.com/FredBill1/comfyui-fb-utils", + "files": [ + "https://github.com/FredBill1/comfyui-fb-utils" + ], + "install_type": "git-clone", + "description": "Nodes:FBStringJoin, FBStringSplit, FBMultilineStringList, FBMultilineString" + }, + { + "author": "jeffy5", + "title": "Faceless Node for ComfyUI", + "id": "faceless", + "reference": "https://github.com/jeffy5/comfyui-faceless-node", + "files": [ + "https://github.com/jeffy5/comfyui-faceless-node" + ], + "install_type": "git-clone", + "description": "A facefusion custom node for ComfyUI. Swap or restore faces for image or video" + }, + { + "author": "TaiTair", + "title": "Simswap Node for ComfyUI", + "id": "simswap", + "reference": "https://github.com/TaiTair/comfyui-simswap", + "files": [ + "https://github.com/TaiTair/comfyui-simswap" + ], + "install_type": "git-clone", + "description": "A hacky implementation of Simswap based on [a/Comfyui ReActor Node 0.5.1](https://github.com/Gourieff/comfyui-reactor-node) and [a/Simswap](https://github.com/neuralchen/SimSwap)." + }, + { + "author": "fofr", + "title": "ComfyUI-HyperSDXL1StepUnetScheduler (ByteDance)", + "id": "hypersdxl", + "reference": "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler", + "files": [ + "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler" + ], + "install_type": "git-clone", + "description": "Original author is ByteDance.\nComfyUI sampler for HyperSDXL UNet\nPorted from: [a/https://huggingface.co/ByteDance/Hyper-SD](https://huggingface.co/ByteDance/Hyper-SD)" + }, + { + "author": "fofr", + "title": "ComfyUI-Prompter-fofrAI", + "id": "prompter-fofr", + "reference": "https://github.com/fofr/ComfyUI-Prompter-fofrAI", + "files": [ + "https://github.com/fofr/ComfyUI-Prompter-fofrAI" + ], + "install_type": "git-clone", + "description": "A prompt helper for ComfyUI, based on [a/prompter.fofr.ai](https://prompter.fofr.ai)" + }, + { + "author": "fofr", + "title": "comfyui-fofr-toolkit", + "id": "fofr-toolkit", + "reference": "https://github.com/fofr/comfyui-fofr-toolkit", + "files": [ + "https://github.com/fofr/comfyui-fofr-toolkit" + ], + "install_type": "git-clone", + "description": "Nodes:Incrementer, Width and height from aspect ratio, Width and height for scaling image to ideal resolutio. A simple set of tooling nodes." + }, + { + "author": "fofr", + "title": "ComfyUI-Replicate", + "reference": "https://github.com/replicate/comfyui-replicate", + "files": [ + "https://github.com/replicate/comfyui-replicate" + ], + "install_type": "git-clone", + "description": "Run [a/Replicate models](https://replicate.com/explore) in ComfyUI." + }, + { + "author": "fofr", + "title": "ComfyUI-Basic-Auth", + "reference": "https://github.com/fofr/comfyui-basic-auth", + "files": [ + "https://github.com/fofr/comfyui-basic-auth" + ], + "install_type": "git-clone", + "description": "A basic auth middleware for ComfyUI" + }, + { + "author": "cfreilich", + "title": "Virtuoso Nodes for ComfyUI", + "id": "virtuoso", + "reference": "https://github.com/chrisfreilich/virtuoso-nodes", + "files": [ + "https://github.com/chrisfreilich/virtuoso-nodes" + ], + "install_type": "git-clone", + "description": "Photoshop type functions and adjustment layers: 30 blend modes, Selective Color, Blend If, Color Balance, Solid Color Images, Black and White, Hue/Saturation, Levels, and RGB Splitting and Merging." + }, + { + "author": "da2el-ai", + "title": "D2 Nodes ComfyUI", + "id": "d2-nodes-comfyui", + "reference": "https://github.com/da2el-ai/D2-nodes-ComfyUI", + "files": [ + "https://github.com/da2el-ai/D2-nodes-ComfyUI" + ], + "install_type": "git-clone", + "description": "This is a collection of custom nodes that make ComfyUI slightly more convenient." + }, + { + "author": "da2el-ai", + "title": "D2 Steps", + "id": "d2steps", + "reference": "https://github.com/da2el-ai/ComfyUI-d2-steps", + "files": [ + "https://github.com/da2el-ai/ComfyUI-d2-steps" + ], + "install_type": "git-clone", + "description": "A handy custom node for using Refiner (switching to a different checkpoint midway) When you specify the end of the base checkpoint, you can extract refiner_start which is end + 1. The output is fixed as an INT, so it can be passed to the handy custom node, Anything Everywhere? Since it only outputs a numerical value, it can also be used for other purposes." + }, + { + "author": "da2el-ai", + "title": "D2 Size Selector", + "id": "size-selector", + "reference": "https://github.com/da2el-ai/ComfyUI-d2-size-selector", + "files": [ + "https://github.com/da2el-ai/ComfyUI-d2-size-selector" + ], + "install_type": "git-clone", + "description": "This is a custom node that allows you to easily call up and set image size presets. Settings can be made by editing the included config.yaml. It is almost identical to Comfyroll Studio's CR AspectRatio. I created it because I wanted to easily edit the presets." + }, + { + "author": "da2el-ai", + "title": "D2 Send Eagle", + "id": "d2-send-eagle", + "reference": "https://github.com/da2el-ai/ComfyUI-d2-send-eagle", + "files": [ + "https://github.com/da2el-ai/ComfyUI-d2-send-eagle" + ], + "install_type": "git-clone", + "description": "Send images generated by ComfyUI to Eagle image management software" + }, + { + "author": "da2el-ai", + "title": "D2 XYPlot Utils", + "reference": "https://github.com/da2el-ai/ComfyUI-d2-xyplot-utils", + "files": [ + "https://github.com/da2el-ai/ComfyUI-d2-xyplot-utils" + ], + "install_type": "git-clone", + "description": "Custom node for using Prompt S/R in XY Plot\nAlso includes nodes for listing generic parameters like seed and cfg\nEasy to manipulate as elements are separated by line breaks\nDesigned for use with the XY Plot custom node qq-nodes-comfyui, but may work with other custom nodes as well" + }, + { + "author": "da2el-ai", + "title": "D2-PromptSelector-comfyUI", + "reference": "https://github.com/da2el-ai/D2-PromptSelector-comfyUI", + "files": [ + "https://github.com/da2el-ai/D2-PromptSelector-comfyUI" + ], + "install_type": "git-clone", + "description": "This is a version of [a/sd-d2-prompt-selector](https://github.com/da2el-ai/sd-d2-prompt-selector) reworked for ComfyUI. It's just a prototype that I've put together for now. The random syntax of sd-d2-prompt-selector cannot be used; instead, the DynamicPrompt syntax is used" + }, + { + "author": "da2el-ai", + "title": "D2-SavePSD-ComfyUI", + "reference": "https://github.com/da2el-ai/D2-SavePSD-ComfyUI", + "files": [ + "https://github.com/da2el-ai/D2-SavePSD-ComfyUI" + ], + "install_type": "git-clone", + "description": "Saves the image in Photoshop format (PSD)" + }, + { + "author": "nat-chan", + "title": "ComfyUI-Transceiver📡", + "id": "transceiver", + "reference": "https://github.com/nat-chan/comfyui-transceiver", + "files": [ + "https://github.com/nat-chan/comfyui-transceiver" + ], + "install_type": "git-clone", + "description": "Transceiver is a python library that swiftly exchanges fundamental data structures, specifically numpy arrays, between processes, optimizing AI inference tasks that utilize ComfyUI." + }, + { + "author": "nat-chan", + "title": "ComfyUI-graphToPrompt", + "id": "graph2prompt", + "reference": "https://github.com/nat-chan/ComfyUI-graphToPrompt", + "files": [ + "https://github.com/nat-chan/ComfyUI-graphToPrompt" + ], + "install_type": "git-clone", + "description": "workflow.json -> workflow_api.json" + }, + { + "author": "web3nomad", + "title": "ComfyUI Invisible Watermark", + "id": "invisible-watermark", + "reference": "https://github.com/web3nomad/ComfyUI_Invisible_Watermark", + "files": [ + "https://github.com/web3nomad/ComfyUI_Invisible_Watermark" + ], + "install_type": "git-clone", + "description": "Nodes: InvisibleWatermarkEncode" + }, + { + "author": "GentlemanHu", + "title": "ComfyUI Suno API", + "id": "suno-api", + "reference": "https://github.com/GentlemanHu/ComfyUI-SunoAI", + "files": [ + "https://github.com/GentlemanHu/ComfyUI-SunoAI" + ], + "install_type": "git-clone", + "description": "An unofficial Python library for [a/Suno AI](https://www.suno.ai/) API" + }, + { + "author": "TemryL", + "title": "ComfyUI-IDM-VTON [WIP]", + "id": "idm-vton", + "reference": "https://github.com/TemryL/ComfyUI-IDM-VTON", + "files": [ + "https://github.com/TemryL/ComfyUI-IDM-VTON" + ], + "install_type": "git-clone", + "description": "ComfyUI adaptation of [a/IDM-VTON](https://github.com/yisol/IDM-VTON) for virtual try-on." + }, + { + "author": "NStor", + "title": "ComfyUI-RUS localization", + "reference": "https://github.com/Nestorchik/NStor-ComfyUI-Translation", + "files": [ + "https://github.com/Nestorchik/NStor-ComfyUI-Translation" + ], + "install_type": "git-clone", + "description": "Russian localization of ComfyUI, ComafyUI-Manager & more..." + }, + { + "author": "jax-explorer", + "title": "fast_video_comfyui", + "reference": "https://github.com/jax-explorer/fast_video_comfyui", + "files": [ + "https://github.com/jax-explorer/fast_video_comfyui" + ], + "install_type": "git-clone", + "description": "Nodes:FastImageListToImageBatch" + }, + { + "author": "jax-explorer", + "title": "comfyui-model-dynamic-loader", + "reference": "https://github.com/jax-explorer/comfyui-model-dynamic-loader", + "files": [ + "https://github.com/jax-explorer/comfyui-model-dynamic-loader" + ], + "install_type": "git-clone", + "description": "for comfyonline dynamic loader\ncomfyonline is comfyui cloud website" + }, + { + "author": "jax-explorer", + "title": "ComfyUI-easycontrol", + "reference": "https://github.com/jax-explorer/ComfyUI-easycontrol", + "files": [ + "https://github.com/jax-explorer/ComfyUI-easycontrol" + ], + "install_type": "git-clone", + "description": "ComfyUI EasyControl Nodes is a collection of nodes for ComfyUI that allows you to load and use EasyControl models." + }, + { + "author": "jax-explorer", + "title": "ComfyUI-VideoBasicLatentSync", + "reference": "https://github.com/jax-explorer/ComfyUI-VideoBasicLatentSync", + "files": [ + "https://github.com/jax-explorer/ComfyUI-VideoBasicLatentSync" + ], + "install_type": "git-clone", + "description": "Optimize OOM issues based on ComfyUI-LatentSyncWrapper. [a/ShmuelRonen/ComfyUI-LatentSyncWrapper](https://github.com/ShmuelRonen/ComfyUI-LatentSyncWrapper)\nVideBasic Optimize OOM Plan: [a/jax-explorer/ComfyUI-VideoBasic](https://github.com/jax-explorer/ComfyUI-VideoBasic)" + }, + { + "author": "jax-explorer", + "title": "ComfyUI-VideoBasic", + "reference": "https://github.com/jax-explorer/ComfyUI-VideoBasic", + "files": [ + "https://github.com/jax-explorer/ComfyUI-VideoBasic" + ], + "install_type": "git-clone", + "description": "Used to solve the OOM (Out Of Memory) issue caused by loading all frames of a video at once in ComfyUI. All nodes use streamingly, and no longer load all frames of the video into memory at once." + }, + { + "author": "jax-explorer", + "title": "ComfyUI-InstantCharacter", + "reference": "https://github.com/jax-explorer/ComfyUI-InstantCharacter", + "files": [ + "https://github.com/jax-explorer/ComfyUI-InstantCharacter" + ], + "install_type": "git-clone", + "description": "[a/InstantCharacter](https://github.com/Tencent/InstantCharacter) ComfyUI Warpper" + }, + { + "author": "sugarkwork", + "title": "comfyui_cohere", + "id": "cohere", + "reference": "https://github.com/sugarkwork/comfyui_cohere", + "files": [ + "https://github.com/sugarkwork/comfyui_cohere" + ], + "install_type": "git-clone", + "description": "This is a node for using cohere (Command R+) from ComfyUI. You need to edit the startup .bat file of ComfyUI and describe the API key obtained from Cohere as follows." + }, + { + "author": "alessandrozonta", + "title": "ComfyUI-CenterNode", + "id": "comfyui-centernode", + "reference": "https://github.com/alessandrozonta/ComfyUI-CenterNode", + "files": [ + "https://github.com/alessandrozonta/ComfyUI-CenterNode" + ], + "install_type": "git-clone", + "description": "This extension contains a custom node for ComfyUI. The node, called 'Bounding Box Crop', is designed to compute the top-left coordinates of a cropped bounding box based on input coordinates and dimensions of the final cropped image. It does so computing the center of the cropping area and then computing where the top-left coordinates would be." + }, + { + "author": "alessandrozonta", + "title": "Save Layers Node for ComfyUI", + "id": "layers", + "reference": "https://github.com/alessandrozonta/ComfyUI-Layers", + "files": [ + "https://github.com/alessandrozonta/ComfyUI-Layers" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows you to create layers of an image based on input masks and save them into a PSD file." + }, + { + "author": "alessandrozonta", + "title": "OpenPose Node", + "id": "openpose-alessandrozonta", + "reference": "https://github.com/alessandrozonta/ComfyUI-OpenPose", + "files": [ + "https://github.com/alessandrozonta/ComfyUI-OpenPose" + ], + "install_type": "git-clone", + "description": "This extension contains a custom node for ComfyUI. The node, called 'Bounding Box Crop', is designed to compute the top-left coordinates of a cropped bounding box based on input coordinates and dimensions of the final cropped image. It does so computing the center of the cropping area and then computing where the top-left coordinates would be." + }, + { + "author": "alessandrozonta", + "title": "Comfyui-LoopLoader", + "id": "Comfyui-LoopLoader", + "reference": "https://github.com/alessandrozonta/Comfyui-LoopLoader", + "files": [ + "https://github.com/alessandrozonta/Comfyui-LoopLoader" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for loading images sequentially from a directory. Loops back to the first image when reaching the end" + }, + { + "author": "alessandrozonta", + "title": "ComfyUI-PoseDirection", + "reference": "https://github.com/alessandrozonta/ComfyUI-PoseDirection", + "files": [ + "https://github.com/alessandrozonta/ComfyUI-PoseDirection" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI analyzes OpenPose keypoints to determine if a person in an image is facing forward, showing their left side, or their right side." + }, + { + "author": "curiousjp", + "title": "ComfyUI-MaskBatchPermutations", + "id": "maskbatch-permutations", + "reference": "https://github.com/curiousjp/ComfyUI-MaskBatchPermutations", + "files": [ + "https://github.com/curiousjp/ComfyUI-MaskBatchPermutations" + ], + "install_type": "git-clone", + "description": "Permutes a mask batch to present possible additive combinations. Passing a mask batch (e.g. out of [a/SEGS to Mask Batch](https://github.com/ltdrdata/ComfyUI-Impact-Pack)) will return a new mask batch representing all the possible combinations of the included masks. So, a mask batch with two mask sections, 'A' and 'B', will return a batch containing an empty mask, an empty mask & A, an empty mask & B, and an empty mask & A & B." + }, + { + "author": "BAIS1C", + "title": "ComfyUI_RSS_Feed_Reader", + "id": "rssfeed", + "reference": "https://github.com/BAIS1C/ComfyUI_RSS_Feed_Reader", + "files": [ + "https://github.com/BAIS1C/ComfyUI_RSS_Feed_Reader" + ], + "install_type": "git-clone", + "description": "A Simple Python RSS Feed Reader to create Prompts in Comfy UI" + }, + { + "author": "runtime44", + "title": "Runtime44 ComfyUI Nodes", + "reference": "https://github.com/runtime44/comfyui_r44_nodes", + "files": [ + "https://github.com/runtime44/comfyui_r44_nodes" + ], + "install_type": "git-clone", + "description": "Nodes: Runtime44Upscaler, Runtime44ColorMatch, Runtime44DynamicKSampler, Runtime44ImageOverlay, Runtime44ImageResizer, Runtime44ImageToNoise, Runtime44MaskSampler, Runtime44TiledMaskSampler, Runtime44IterativeUpscaleFactor, Runtime44ImageEnhance, Runtime44FilmGrain" + }, + { + "author": "osiworx", + "title": "ComfyUI_Prompt-Quill", + "reference": "https://github.com/osi1880vr/prompt_quill_comfyui", + "files": [ + "https://github.com/osi1880vr/prompt_quill_comfyui" + ], + "install_type": "git-clone", + "description": "Nodes for Comfyui to use Prompt Quill within complex workflows" + }, + { + "author": "philz1337x", + "title": "✨ Clarity AI - Creative Image Upscaler and Enhancer for ComfyUI", + "reference": "https://github.com/philz1337x/ComfyUI-ClarityAI", + "files": [ + "https://github.com/philz1337x/ComfyUI-ClarityAI" + ], + "install_type": "git-clone", + "description": "[a/Clarity AI](https://clarityai.cc) is a creative image enhancer and is able to upscale to high resolution. [w/NOTE: This is a Magnific AI alternative for ComfyUI.] \nCreate an API key on [a/ClarityAI.cc/api](https://clarityai.cc/api) and add to environment variable 'CAI_API_KEY'\nAlternatively you can write your API key to file 'cai_platform_key.txt'\nYou can also use and/or override the above by entering your API key in the 'api_key_override' field of the node." + }, + { + "author": "KoreTeknology", + "title": "ComfyUI Universal Styler", + "id": "universal-styler", + "reference": "https://github.com/KoreTeknology/ComfyUI-Universal-Styler", + "files": [ + "https://github.com/KoreTeknology/ComfyUI-Universal-Styler" + ], + "install_type": "git-clone", + "description": "A research Node based project on Artificial Intelligence using ComfyUI visual editor with Stable diffusion Local processing focus in mind. This custom node is intended to serve the purpose to offer a large palette of prompting scenrarios, based on Public Checkpoint Models OR/AND Private custom Models and LoRas. It includes an integrated learning machine process as well as a set of workflows." + }, + { + "author": "KoreTeknology", + "title": "ComfyUI Production Nodes Pack", + "reference": "https://github.com/KoreTeknology/ComfyUI-Nai-Production-Nodes-Pack", + "files": [ + "https://github.com/KoreTeknology/ComfyUI-Nai-Production-Nodes-Pack" + ], + "install_type": "git-clone", + "description": "This is set of custom nodes for your ComfyUI local installation. It offers the very basic nodes that are missing in the official 'Vanilla' package. It is a research Node based project on Artificial Intelligence using ComfyUI visual editor. This repository also includes a set of workflows to test the nodes.\nNOTE:Renamed from 'ComfyUI-Compositing-Nodes-Pack'" + }, + { + "author": "ZeDarkAdam", + "title": "ComfyUI-Embeddings-Tools", + "id": "embeddings-tools", + "reference": "https://github.com/ZeDarkAdam/ComfyUI-Embeddings-Tools", + "reference2": "https://github.com/ZDAVanO/ComfyUI-Embeddings-Tools", + "files": [ + "https://github.com/ZeDarkAdam/ComfyUI-Embeddings-Tools" + ], + "install_type": "git-clone", + "description": "EmbeddingsNameLoader, EmbendingList" + }, + { + "author": "chenpx976", + "title": "ComfyUI-RunRunRun", + "id": "runrunrun", + "reference": "https://github.com/chenpx976/ComfyUI-RunRunRun", + "files": [ + "https://github.com/chenpx976/ComfyUI-RunRunRun" + ], + "install_type": "git-clone", + "description": "add http api http://127.0.0.1:8188/comfyui-run/run use in other llm project." + }, + { + "author": "githubYiheng", + "title": "ComfyUI_GetFileNameFromURL", + "id": "getfilename-from-url", + "reference": "https://github.com/githubYiheng/ComfyUI_GetFileNameFromURL", + "files": [ + "https://github.com/githubYiheng/ComfyUI_GetFileNameFromURL" + ], + "install_type": "git-clone", + "description": "GetFileNameFromURL is a ComfyUI custom node that extracts the filename from a URL. It can handle various URLs and is capable of handling redirects." + }, + { + "author": "githubYiheng", + "title": "comfyui_kmeans_filter", + "id": "kmeans-filter", + "reference": "https://github.com/githubYiheng/comfyui_kmeans_filter", + "files": [ + "https://github.com/githubYiheng/comfyui_kmeans_filter" + ], + "install_type": "git-clone", + "description": "Nodes:Apply Kmeans Filter" + }, + { + "author": "githubYiheng", + "title": "ComfyUI_Change_IMAGE_BOREDER", + "id": "change-image-border", + "reference": "https://github.com/githubYiheng/ComfyUI_Change_IMAGE_BOREDER", + "files": [ + "https://github.com/githubYiheng/ComfyUI_Change_IMAGE_BOREDER" + ], + "install_type": "git-clone", + "description": "Nodes:Change Image Border" + }, + { + "author": "githubYiheng", + "title": "comfyui_meanshift_filter", + "id": "meanshift-filter", + "reference": "https://github.com/githubYiheng/comfyui_meanshift_filter", + "files": [ + "https://github.com/githubYiheng/comfyui_meanshift_filter" + ], + "install_type": "git-clone", + "description": "Nodes:Apply Meanshift Filter" + }, + { + "author": "githubYiheng", + "title": "comfyui_private_postprocessor", + "id": "githubyiheng-private-postprocessor", + "reference": "https://github.com/githubYiheng/comfyui_private_postprocessor", + "files": [ + "https://github.com/githubYiheng/comfyui_private_postprocessor" + ], + "install_type": "git-clone", + "description": "Nodes:Private ImageCPostprocessor" + }, + { + "author": "Fihade", + "title": "IC-Light-ComfyUI-Node", + "reference": "https://github.com/Fihade/IC-Light-ComfyUI-Node", + "files": [ + "https://github.com/Fihade/IC-Light-ComfyUI-Node" + ], + "install_type": "git-clone", + "description": "Original repo: [a/https://github.com/lllyasviel/IC-Light](https://github.com/lllyasviel/IC-Light)\nModels: [a/https://huggingface.co/lllyasviel/ic-light/tree/main](https://huggingface.co/lllyasviel/ic-light/tree/main), [a/https://huggingface.co/digiplay/Photon_v1/tree/main](https://huggingface.co/digiplay/Photon_v1/tree/main)\nmodels go into ComfyUI/models/unet" + }, + { + "author": "KewkLW", + "title": "ComfyUI-kewky_tools", + "id": "kewky-tools", + "reference": "https://github.com/KewkLW/ComfyUI-kewky_tools", + "files": [ + "https://github.com/KewkLW/ComfyUI-kewky_tools" + ], + "install_type": "git-clone", + "description": "text_append_node, vramdebugplus, tensordebugplus, animation_schedule_output" + }, + { + "author": "ITurchenko", + "title": "ComfyUI-SizeFromArray", + "id": "sizefromarray", + "reference": "https://github.com/ITurchenko/ComfyUI-SizeFromArray", + "files": [ + "https://github.com/ITurchenko/ComfyUI-SizeFromArray" + ], + "install_type": "git-clone", + "description": "Nodes:SizeFromArray" + }, + { + "author": "Suplex", + "title": "Suplex Misc ComfyUI Nodes", + "id": "suplex", + "reference": "https://github.com/saftle/uber_comfy_nodes", + "files": [ + "https://github.com/saftle/uber_comfy_nodes" + ], + "install_type": "git-clone", + "description": "Misc Nodes: ControlNet Selector Node, Load Optional ControlNet Model, Diffusers Selector, Save Image JPG No Meta, Multi Input Variable Rewrite" + }, + { + "author": "mephisto83", + "title": "petty-paint-comfyui-node", + "id": "petty-paint", + "reference": "https://github.com/mephisto83/petty-paint-comfyui-node", + "files": [ + "https://github.com/mephisto83/petty-paint-comfyui-node" + ], + "install_type": "git-clone", + "description": "An integration between comfy ui and petty paint" + }, + { + "author": "fsdymy1024", + "title": "ComfyUI_fsdymy", + "id": "fsdymy", + "reference": "https://github.com/fsdymy1024/ComfyUI_fsdymy", + "files": [ + "https://github.com/fsdymy1024/ComfyUI_fsdymy" + ], + "install_type": "git-clone", + "description": "Nodes:Save Image Without Metadata" + }, + { + "author": "ray", + "title": "Light Gradient for ComfyUI", + "id": "light-gradient", + "reference": "https://github.com/huagetai/ComfyUI_LightGradient", + "files": [ + "https://github.com/huagetai/ComfyUI_LightGradient" + ], + "install_type": "git-clone", + "description": "Nodes:Image Gradient,Mask Gradient" + }, + { + "author": "ray", + "title": "comfyui's gaffer(ComfyUI native implementation of IC-Light. )", + "id": "gaffer", + "reference": "https://github.com/huagetai/ComfyUI-Gaffer", + "files": [ + "https://github.com/huagetai/ComfyUI-Gaffer" + ], + "install_type": "git-clone", + "description": "Nodes:Load ICLight Model,Apply ICLight,Simple Light Source,Calculate Normal Map" + }, + { + "author": "YFG", + "title": "😸 YFG Comical Nodes", + "id": "comical", + "reference": "https://github.com/gonzalu/ComfyUI_YFG_Comical", + "files": [ + "https://github.com/gonzalu/ComfyUI_YFG_Comical" + ], + "install_type": "git-clone", + "description": "Utility custom nodes for special effects, image manipulation and quality of life tools." + }, + { + "author": "ruiqutech", + "title": "RuiquNodes for ComfyUI", + "id": "RuiquNodes", + "reference": "https://github.com/ruiqutech/ComfyUI-RuiquNodes", + "files": [ + "https://github.com/ruiqutech/ComfyUI-RuiquNodes" + ], + "install_type": "git-clone", + "description": "Nodes of EvaluateMultiple1, EvaluateMultiple3...\nSupport the execution of any fragment of Python code, generating multiple outputs from multiple inputs." + }, + { + "author": "teward", + "title": "ComfyUI-Helper-Nodes", + "id": "helper-nodes", + "reference": "https://github.com/teward/ComfyUI-Helper-Nodes", + "files": [ + "https://github.com/teward/ComfyUI-Helper-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes: HelperNodes_MultilineStringLiteral, HelperNodes_StringLiteral, HelperNodes_Steps, HelperNodes_CfgScale, HelperNodes_WidthHeight, HelperNodes_SchedulerSelector, HelperNodes_SamplerSelector, ..." + }, + { + "author": "fmatray", + "title": "ComfyUI_BattlemapGrid", + "id": "battlemap-grid", + "reference": "https://github.com/fmatray/ComfyUI_BattlemapGrid", + "files": [ + "https://github.com/fmatray/ComfyUI_BattlemapGrid" + ], + "install_type": "git-clone", + "description": "Nodes for ComfyUI in order to generate battelmaps" + }, + { + "author": "christian-byrne", + "title": "img2txt-comfyui-nodes", + "id": "img2txt-nodes", + "reference": "https://github.com/christian-byrne/img2txt-comfyui-nodes", + "files": [ + "https://github.com/christian-byrne/img2txt-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "Get general description or specify questions to ask about images (medium, art style, background, etc.). Supports Chinese 🇨🇳 questions via MiniCPM model." + }, + { + "author": "christian-byrne", + "title": "Img2color - Extract Colors from Image", + "id": "img2colors-comfyui-node", + "reference": "https://github.com/christian-byrne/img2colors-comfyui-node", + "files": [ + "https://github.com/christian-byrne/img2colors-comfyui-node" + ], + "install_type": "git-clone", + "description": "Extract the most common colors from an image, up to any number. Convert colors to plain English names using various color naming systems." + }, + { + "author": "christian-byrne", + "title": "Node - Size Matcher", + "id": "sizematcher", + "reference": "https://github.com/christian-byrne/size-match-compositing-nodes", + "files": [ + "https://github.com/christian-byrne/size-match-compositing-nodes" + ], + "install_type": "git-clone", + "description": "Match image/mask sizes" + }, + { + "author": "christian-byrne", + "title": "comfyui-search-navigation", + "reference": "https://github.com/christian-byrne/comfyui-search-navigation", + "files": [ + "https://github.com/christian-byrne/comfyui-search-navigation" + ], + "install_type": "git-clone", + "description": "Search navigation extension." + }, + { + "author": "christian-byrne", + "title": "audio-separation-nodes-comfyui", + "reference": "https://github.com/christian-byrne/audio-separation-nodes-comfyui", + "files": [ + "https://github.com/christian-byrne/audio-separation-nodes-comfyui" + ], + "install_type": "git-clone", + "description": "Separate audio track into stems (vocals, bass, drums, other). Along with tools to recombine, tempo match, slice/crop audio." + }, + { + "author": "christian-byrne", + "title": "comfyui-default-values-manager", + "reference": "https://github.com/christian-byrne/comfyui-default-values-manager", + "files": [ + "https://github.com/christian-byrne/comfyui-default-values-manager" + ], + "install_type": "git-clone", + "description": "comfyui-default-values-manager" + }, + { + "author": "christian-byrne", + "title": "youtube-dl-comfyui", + "reference": "https://github.com/christian-byrne/youtube-dl-comfyui", + "files": [ + "https://github.com/christian-byrne/youtube-dl-comfyui" + ], + "install_type": "git-clone", + "description": "Download youtube videos/playlists" + }, + { + "author": "christian-byrne", + "title": "Claude Code ComfyUI Nodes", + "reference": "https://github.com/christian-byrne/claude-code-comfyui-nodes", + "files": [ + "https://github.com/christian-byrne/claude-code-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for integrating Claude Code SDK - enables AI-powered code generation, analysis, and assistance within ComfyUI workflows" + }, + { + "author": "oztrkoguz", + "title": "ComfyUI StoryCreater", + "id": "storycreater", + "reference": "https://github.com/oztrkoguz/ComfyUI_StoryCreator", + "files": [ + "https://github.com/oztrkoguz/ComfyUI_StoryCreator" + ], + "install_type": "git-clone", + "description": "Nodes:story_sampler_simple, text2, kosmos2_sampler.\nI created a dataset for generating short stories [a/Short-Story](https://huggingface.co/datasets/oztrkoguz/Short-Story) and used it to fine-tune my own model using Phi-3." + }, + { + "author": "GraftingRayman", + "title": "GraftingRayman", + "id": "graftingrayman", + "reference": "https://github.com/GraftingRayman/ComfyUI_GraftingRayman", + "files": [ + "https://github.com/GraftingRayman/ComfyUI_GraftingRayman" + ], + "install_type": "git-clone", + "description": "Image Manipulation and Prompt Generation Nodes" + }, + { + "author": "GraftingRayman", + "title": "ComfyUI QueueTube", + "reference": "https://github.com/GraftingRayman/ComfyUI_QueueTube", + "files": [ + "https://github.com/GraftingRayman/ComfyUI_QueueTube" + ], + "install_type": "git-clone", + "description": "These nodes allow your YouTube LiveStream viewers to create on your local ComfyUI, you can make this a members only feature with a screen behind you displaying your members creations" + }, + { + "author": "GraftingRayman", + "title": "ComfyUI-PuLID-Flux-GR", + "reference": "https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR", + "files": [ + "https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR" + ], + "install_type": "git-clone", + "description": "This is a PuLID node that has been extended with new features." + }, + { + "author": "royceschultz", + "title": "ComfyUI-Notifications", + "reference": "https://github.com/royceschultz/ComfyUI-Notifications", + "files": [ + "https://github.com/royceschultz/ComfyUI-Notifications" + ], + "install_type": "git-clone", + "description": "Send notifications when a workflow completes." + }, + { + "author": "katalist-ai", + "title": "comfyUI-nsfw-detection", + "id": "nsfw-detection", + "reference": "https://github.com/katalist-ai/comfyUI-nsfw-detection", + "files": [ + "https://github.com/katalist-ai/comfyUI-nsfw-detection" + ], + "install_type": "git-clone", + "description": "Nodes: NudenetDetector" + }, + { + "author": "kaanyalova", + "title": "Extended Image Formats for ComfyUI", + "id": "extended-image-format", + "reference": "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats", + "files": [ + "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats" + ], + "install_type": "git-clone", + "description": "Adds a custom node for saving images in webp, jpeg, avif, jxl (no metadata) and supports loading workflows from saved images" + }, + { + "author": "badayvedat", + "title": "ComfyUI-fal-Connector", + "id": "fal", + "reference": "https://github.com/badayvedat/ComfyUI-fal-Connector", + "files": [ + "https://github.com/badayvedat/ComfyUI-fal-Connector" + ], + "install_type": "git-clone", + "description": "The ComfyUI-fal-Connector is a tool designed to provide an integration between ComfyUI and fal. This extension allows users to execute their ComfyUI workflows directly on [a/fal.ai](https://fal.ai/). This enables users to leverage the computational power and resources provided by fal.ai for running their ComfyUI workflows." + }, + { + "author": "TheMistoAI", + "title": "Anyline", + "id": "anyline", + "reference": "https://github.com/TheMistoAI/ComfyUI-Anyline", + "files": [ + "https://github.com/TheMistoAI/ComfyUI-Anyline" + ], + "install_type": "git-clone", + "description": "A Fast, Accurate, and Detailed Line Detection Preprocessor.\nAnyline is a ControlNet line preprocessor that accurately extracts object edges, image details, and textual content from most images. Users can input any type of image to quickly obtain line drawings with clear edges, sufficient detail preservation, and high fidelity text, which are then used as input for conditional generation in Stable Diffusion." + }, + { + "author": "mbrostami", + "title": "ComfyUI-TITrain", + "id": "titrain", + "reference": "https://github.com/mbrostami/ComfyUI-TITrain", + "files": [ + "https://github.com/mbrostami/ComfyUI-TITrain" + ], + "install_type": "git-clone", + "description": "Nodes:TextualInversionTrainingSDXL, TextualInversionTraining" + }, + { + "author": "ArcherFMY", + "title": "Diffusion360_ComfyUI", + "id": "diffusion360", + "reference": "https://github.com/ArcherFMY/Diffusion360_ComfyUI", + "files": [ + "https://github.com/ArcherFMY/Diffusion360_ComfyUI" + ], + "install_type": "git-clone", + "description": "Generating seamless 360 degree panoramic image through text or perspective image." + }, + { + "author": "Makeezi", + "title": "ComfyUI-promptLAB", + "id": "promptlab", + "reference": "https://github.com/Makeezi/ComfyUI-promptLAB", + "files": [ + "https://github.com/Makeezi/ComfyUI-promptLAB" + ], + "install_type": "git-clone", + "description": "connection nodes for api requests, fully supports promptLAB" + }, + { + "author": "portu-sim", + "title": "comfyui_bmab", + "id": "bmab", + "reference": "https://github.com/portu-sim/comfyui_bmab", + "files": [ + "https://github.com/portu-sim/comfyui_bmab" + ], + "install_type": "git-clone", + "description": "BMAB for ComfyUI. BMAB is an custom nodes of ComfyUI and has the function of post-processing the generated image according to settings. If necessary, you can find and redraw people, faces, and hands, or perform functions such as resize, resample, and add noise. You can composite two images or perform the Upscale function." + }, + { + "author": "griptape-ai", + "title": "ComfyUI Griptape Nodes", + "id": "griptape", + "reference": "https://github.com/griptape-ai/ComfyUI-Griptape", + "files": [ + "https://github.com/griptape-ai/ComfyUI-Griptape" + ], + "install_type": "git-clone", + "description": "This repo creates a series of nodes that enable you to utilize the [a/Griptape Python Framework](https://github.com/griptape-ai/griptape/) with ComfyUI, integrating AI into your workflow. This repo creates a series of nodes that enable you to utilize the Griptape Python Framework with ComfyUI, integrating AI into your workflow." + }, + { + "author": "cavinHuang", + "title": "comfyui-nodes-docs", + "id": "nodedocs", + "reference": "https://github.com/CavinHuang/comfyui-nodes-docs", + "files": [ + "https://github.com/CavinHuang/comfyui-nodes-docs" + ], + "install_type": "git-clone", + "description": "This is a plugin for displaying documentation for each comfyui node. " + }, + { + "author": "icesun963", + "title": "HFDownLoad Node for ComfyUI", + "id": "HFDownLoad-ic", + "reference": "https://github.com/icesun963/ComfyUI_HFDownLoad", + "files": [ + "https://github.com/icesun963/ComfyUI_HFDownLoad" + ], + "install_type": "git-clone", + "description": "Download the model from huggingface and put it in any directory." + }, + { + "author": "conquestace", + "title": "Image Uploader", + "id": "image-uploader", + "reference": "https://github.com/conquestace/ComfyUI-ImageUploader", + "files": [ + "https://github.com/conquestace/ComfyUI-ImageUploader" + ], + "install_type": "git-clone", + "description": "Upload images automatically to image hosting sites." + }, + { + "author": "chandlergis", + "title": "ComfyUI-IMG_Query", + "id": "img-query", + "reference": "https://github.com/chandlergis/ComfyUI-IMG_Query", + "files": [ + "https://github.com/chandlergis/ComfyUI-IMG_Query" + ], + "install_type": "git-clone", + "description": "Nodes:ImageRequestNode" + }, + { + "author": "Isaac Emesowum", + "title": "Isaac's Nodes", + "id": "isaac", + "reference": "https://github.com/iemesowum/ComfyUI_IsaacNodes", + "files": [ + "https://github.com/iemesowum/ComfyUI_IsaacNodes" + ], + "install_type": "git-clone", + "description": "This extension offers automatic drums extraction from audio files, as well as a few helper nodes to support my audio synchronization AnimateDiff workflows." + }, + { + "author": "fexploit", + "title": "ComfyUI-AutoTrimBG", + "id": "autotrimbg", + "reference": "https://github.com/fexploit/ComfyUI-AutoTrimBG", + "files": [ + "https://github.com/fexploit/ComfyUI-AutoTrimBG" + ], + "install_type": "git-clone", + "description": "ComfyUI-AutoCropBgTrim is a powerful tool designed to automatically clean up the background of your images. This tool trims unnecessary spaces and pixels, leaving only the main subject of the image. It generates both a mask and an image output, making it easy to focus on the essential elements. Perfect for enhancing your photos and preparing them for professional use." + }, + { + "author": "fexploit", + "title": "ComfyUI-AutoLabel", + "id": "autolabel", + "reference": "https://github.com/fexploit/ComfyUI-AutoLabel", + "files": [ + "https://github.com/fexploit/ComfyUI-AutoLabel" + ], + "install_type": "git-clone", + "description": "ComfyUI-AutoLabel is a custom node for ComfyUI that uses BLIP (Bootstrapping Language-Image Pre-training) to generate detailed descriptions of the main object in an image. This node leverages the power of BLIP to provide accurate and context-aware captions for images. by Fexploit." + }, + { + "author": "fexploit", + "title": "ComfyUI-Classifier", + "id": "classifier", + "reference": "https://github.com/fexploit/ComfyUI-Classifier", + "files": [ + "https://github.com/fexploit/ComfyUI-Classifier" + ], + "install_type": "git-clone", + "description": "ComfyUI-Classifier is a custom node for ComfyUI that uses a zero-shot classification model to classify text inputs based on a set of candidate labels. This node leverages the power of Hugging Face Transformers to provide accurate and flexible text classification." + }, + { + "author": "linshier", + "title": "comfyui-remote-tools", + "id": "remote-tools", + "reference": "https://github.com/linshier/comfyui-remote-tools", + "files": [ + "https://github.com/linshier/comfyui-remote-tools" + ], + "install_type": "git-clone", + "description": "Node:SendBase64ToRemote. To connect to another ComfyUI server." + }, + { + "author": "Fantaxico", + "title": "ComfyUI-GCP-Storage", + "id": "gcp-storage", + "reference": "https://github.com/Fantaxico/ComfyUI-GCP-Storage", + "files": [ + "https://github.com/Fantaxico/ComfyUI-GCP-Storage" + ], + "install_type": "git-clone", + "description": "Node:GCP Storage Node. Support google-cloud-storage." + }, + { + "author": "daniabib", + "title": "ComfyUI ProPainter Nodes", + "id": "propainter", + "reference": "https://github.com/daniabib/ComfyUI_ProPainter_Nodes", + "files": [ + "https://github.com/daniabib/ComfyUI_ProPainter_Nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node implementation of [a/ProPainter](https://github.com/sczhou/ProPainter) framework for video inpainting." + }, + { + "author": "iFREEGROUP", + "title": "comfyui-undistort", + "id": "undistort", + "reference": "https://github.com/iFREEGROUP/comfyui-undistort", + "files": [ + "https://github.com/iFREEGROUP/comfyui-undistort" + ], + "install_type": "git-clone", + "description": "Node:Load Checkerboard Images for Calibrate Camera, Matrix and distortion coefficient to text, Undistort" + }, + { + "author": "Auttasak-L", + "title": "ComfyUI-ImageCropper", + "id": "imagecropper", + "reference": "https://github.com/Auttasak-L/ComfyUI-ImageCropper", + "files": [ + "https://github.com/Auttasak-L/ComfyUI-ImageCropper" + ], + "install_type": "git-clone", + "description": "Nodes:Image cropping tool" + }, + { + "author": "muzi12888", + "title": "PoseKeypoint Mask", + "id": "posekeypoint-mask", + "reference": "https://github.com/muzi12888/ComfyUI-PoseKeypoint-Mask", + "files": [ + "https://github.com/muzi12888/ComfyUI-PoseKeypoint-Mask" + ], + "install_type": "git-clone", + "description": "Convert PoseKeypoint to mask, please refer to the example workflow for usage instructions." + }, + { + "author": "muzi12888", + "title": "m9-prompts-comfyui", + "id": "m9-prompts-comfyui", + "reference": "https://github.com/MarcusNyne/m9-prompts-comfyui", + "files": [ + "https://github.com/MarcusNyne/m9-prompts-comfyui" + ], + "install_type": "git-clone", + "description": "Nodes for modifying a prompt to create prompt variations.\nScramblePrompts [m9]: Reorder prompts, remove prompts, modify weights\nTweakWeights [m9]: Modify the weights of prompts matching keywords" + }, + { + "author": "xuhongming251", + "title": "ComfyUI-GPEN", + "id": "gpen", + "reference": "https://github.com/xuhongming251/ComfyUI-GPEN", + "files": [ + "https://github.com/xuhongming251/ComfyUI-GPEN" + ], + "install_type": "git-clone", + "description": "Nodes:FaceEnhancement. Based on modelscope pipeline." + }, + { + "author": "xuhongming251", + "title": "ComfyUI-MuseTalkUtils", + "id": "musetalk-utils", + "reference": "https://github.com/xuhongming251/ComfyUI-MuseTalkUtils", + "files": [ + "https://github.com/xuhongming251/ComfyUI-MuseTalkUtils" + ], + "install_type": "git-clone", + "description": "MuseTalk ComfyUI Preprocess and Postprocess Nodes" + }, + { + "author": "xuhongming251", + "title": "ComfyUI_Camera", + "reference": "https://github.com/xuhongming251/ComfyUI_Camera", + "files": [ + "https://github.com/xuhongming251/ComfyUI_Camera" + ], + "install_type": "git-clone", + "description": "ComfyUI processes local real-time camera feed and provides real-time preview of the result." + }, + { + "author": "Thomas Ward", + "title": "TW-CUI-Util", + "id": "tw-cui-util", + "reference": "https://github.com/TW-CUI/TW-CUI-Util", + "files": [ + "https://github.com/TW-CUI/TW-CUI-Util" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes to help with saving images, providing generation parameters, static literal nodes, and other useful nodes." + }, + { + "author": "lks-ai", + "title": "ComfyUI AnyNode: Any Node you ask for", + "id": "anynode", + "reference": "https://github.com/lks-ai/anynode", + "files": [ + "https://github.com/lks-ai/anynode" + ], + "install_type": "git-clone", + "description": "Nodes: AnyNode. Nodes that can be anything you ask. Auto-Generate functional nodes using LLMs. Create impossible workflows. API Compatibility: (OpenAI, LocalLLMs, Gemini)." + }, + { + "author": "lks-ai", + "title": "ComfyUI Stable Audio Open 1.0 Sampler", + "id": "stableaudiosampler", + "reference": "https://github.com/lks-ai/ComfyUI-StableAudioSampler", + "files": [ + "https://github.com/lks-ai/ComfyUI-StableAudioSampler" + ], + "install_type": "git-clone", + "description": "Nodes: StableAudioSampler. Wraps the new Stable Audio Open Model in the sampler that dropped Jun 5th. See Github for Features" + }, + { + "author": "SayanoAI", + "title": "Comfy-RVC", + "id": "sayano-rvc", + "reference": "https://github.com/SayanoAI/Comfy-RVC", + "files": [ + "https://github.com/SayanoAI/Comfy-RVC" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for RVC related inference and image generation" + }, + { + "author": "nirbhay-faaya", + "title": "ImgProcessing_ComfyUI", + "id": "imgprocessing", + "reference": "https://github.com/nirbhay-faaya/ImgProcessing_ComfyUI", + "files": [ + "https://github.com/nirbhay-faaya/ImgProcessing_ComfyUI" + ], + "install_type": "git-clone", + "description": "Custom Image processing ComfyUI Nodes" + }, + { + "author": "larsupb", + "title": "LoRA Power-Merger ComfyUI", + "id": "lora-powermerger", + "reference": "https://github.com/larsupb/LoRA-Merger-ComfyUI", + "files": [ + "https://github.com/larsupb/LoRA-Merger-ComfyUI" + ], + "install_type": "git-clone", + "description": "An extension for merging LoRAs. Offers a wide range of LoRA merge techniques (including dare) and XY plots. XY plots require efficiency nodes." + }, + { + "author": "Mason-McGough", + "title": "Mosaica", + "id": "mosaica", + "reference": "https://github.com/Mason-McGough/ComfyUI-Mosaica", + "files": [ + "https://github.com/Mason-McGough/ComfyUI-Mosaica" + ], + "install_type": "git-clone", + "description": "Create colorful mosaic images in ComfyUI by computing label images and applying lookup tables." + }, + { + "author": "cuongloveit", + "title": "comfy_http_request", + "reference": "https://github.com/cuongloveit/comfy_http_request", + "files": [ + "https://github.com/cuongloveit/comfy_http_request" + ], + "install_type": "git-clone", + "description": "Nodes:Send Http Request. You can use this node to save full size images through the websocket." + }, + { + "author": "Ron-Digital", + "title": "ComfyUI-SceneGenerator", + "id": "scenegenerator", + "reference": "https://github.com/Ron-Digital/ComfyUI-SceneGenerator", + "files": [ + "https://github.com/Ron-Digital/ComfyUI-SceneGenerator" + ], + "install_type": "git-clone", + "description": "ComfyUI-SceneGenerator is a ComfyUI plugin used to generate scene preview photos from JSON files. This plugin creates scenes based on the provided JSON configuration and produces two different image outputs: one containing only the products and the other containing both the products and the props." + }, + { + "author": "xliry", + "title": "ComfyUI_SendDiscord", + "id": "senddiscord", + "reference": "https://github.com/xliry/ComfyUI_SendDiscord", + "files": [ + "https://github.com/xliry/ComfyUI_SendDiscord" + ], + "install_type": "git-clone", + "description": "Nodes:Send Video to Discord" + }, + { + "author": "xliry", + "title": "color2rgb", + "reference": "https://github.com/vxinhao/color2rgb", + "files": [ + "https://raw.githubusercontent.com/vxinhao/color2rgb/main/color2rgb.py" + ], + "install_type": "copy", + "description": "Nodes:color2RGB" + }, + { + "author": "moyi7712", + "title": "ComfyUI_Seamless_Patten", + "id": "seamless-pattern", + "reference": "https://github.com/moyi7712/ComfyUI_Seamless_Patten", + "files": [ + "https://github.com/moyi7712/ComfyUI_Seamless_Patten" + ], + "install_type": "git-clone", + "description": "It make any text2image create seamless patten" + }, + { + "author": "nirex0", + "title": "ComfyUI_pytorch_openpose", + "id": "pytorch-openpose", + "reference": "https://github.com/nirex0/ComfyUI_pytorch_openpose", + "files": [ + "https://github.com/nirex0/ComfyUI_pytorch_openpose" + ], + "install_type": "git-clone", + "description": "All Credits go to the original Repo: [a/Hzzone/pytorch-openpose](https://github.com/Hzzone/pytorch-openpose)." + }, + { + "author": "AshMartian", + "title": "Dir Gir", + "id": "dir-gir", + "reference": "https://github.com/AshMartian/ComfyUI-DirGir", + "files": [ + "https://github.com/AshMartian/ComfyUI-DirGir" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI directory automation utility nodes. Directory Get-It-Right adds a GUI directory browser, and a smart directory loop/iteration node that supports regex + file extension filtering + sorting methods." + }, + { + "author": "SozeInc", + "title": "ComfyUI-Mobile", + "id": "comfyui-mobile", + "reference": "https://github.com/SozeInc/ComfyUI-Mobile", + "files": [ + "https://github.com/SozeInc/ComfyUI-Mobile" + ], + "install_type": "git-clone", + "description": "Nodes: Ultimate Concat (Mobile), Send Notification (Mobile), Settings Launcher (Mobile), Settings Launcher Outputs (Mobile)" + }, + { + "author": "goktug", + "title": "Save Image Plus for ComfyUI", + "id": "saveimage-plus", + "reference": "https://github.com/Goktug/comfyui-saveimage-plus", + "files": [ + "https://github.com/Goktug/comfyui-saveimage-plus" + ], + "install_type": "git-clone", + "description": "Save Image Plus is a custom node for ComfyUI that allows you to save images in JPEG and WEBP formats with optional metadata embedding." + }, + { + "author": "wujm424606", + "title": "ComfyUi-Ollama-YN", + "id": "ollama-YN", + "reference": "https://github.com/wujm424606/ComfyUi-Ollama-YN", + "files": [ + "https://github.com/wujm424606/ComfyUi-Ollama-YN" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI Nodes for interacting with [a/Ollama](https://ollama.com/) using the [a/ollama python client](https://github.com/ollama/ollama-python).\n Meanwhile it will provide better prompt descriptor for stable diffusion." + }, + { + "author": "tmagara", + "title": "ComfyUI-Prediction-Boost", + "id": "prediction-boost", + "reference": "https://github.com/tmagara/ComfyUI-Prediction-Boost", + "files": [ + "https://github.com/tmagara/ComfyUI-Prediction-Boost" + ], + "install_type": "git-clone", + "description": "prediction boost custom node for ComfyUI" + }, + { + "author": "chesnokovivan", + "title": "ComfyUI-Novakid", + "id": "novakid", + "reference": "https://github.com/chesnokovivan/ComfyUI-Novakid", + "files": [ + "https://github.com/chesnokovivan/ComfyUI-Novakid" + ], + "install_type": "git-clone", + "description": "ComfyUI: Novakid. A node." + }, + { + "author": "Jin Liu", + "title": "ComfyUI-Photopea", + "id": "photopea", + "reference": "https://github.com/coolzilj/ComfyUI-Photopea", + "files": [ + "https://github.com/coolzilj/ComfyUI-Photopea" + ], + "install_type": "git-clone", + "description": "Edit images in the Photopea editor directly within ComfyUI." + }, + { + "author": "bitaffinity", + "title": "ComfyUI_HF_Inference", + "id": "hf-inference", + "reference": "https://github.com/bitaffinity/ComfyUI_HF_Inference", + "files": [ + "https://github.com/bitaffinity/ComfyUI_HF_Inference" + ], + "install_type": "git-clone", + "description": "Unofficial support for Hugging Face's hosted inference." + }, + { + "author": "claussteinmassl", + "title": "CS Transform Node for ComfyUI", + "id": "cs-transform", + "reference": "https://github.com/claussteinmassl/ComfyUI-CS-CustomNodes", + "files": [ + "https://github.com/claussteinmassl/ComfyUI-CS-CustomNodes" + ], + "install_type": "git-clone", + "description": "The CS Transform node is a custom node for ComfyUI that applies a series of transformations to an input image and mask. The transformations include scaling, rotation, and translation, all centered around a specified pivot point. The node ensures that the transformed image is properly accommodated within a canvas, which can be expanded if needed." + }, + { + "author": "MariusKM", + "title": "ComfyUI-BadmanNodes", + "id": "badman", + "reference": "https://github.com/MariusKM/ComfyUI-BadmanNodes", + "files": [ + "https://github.com/MariusKM/ComfyUI-BadmanNodes" + ], + "install_type": "git-clone", + "description": "Nodes:Badman_Blend, Badman_HexGenerator, Badman_String, Badman_Concat_String, Badman_Print, BadmanIO, BadmanIntUtil" + }, + { + "author": "TMElyralab", + "title": "Comfyui-MusePose", + "id": "musepose", + "reference": "https://github.com/TMElyralab/Comfyui-MusePose", + "files": [ + "https://github.com/TMElyralab/Comfyui-MusePose" + ], + "install_type": "git-clone", + "description": "[a/MusePose](https://github.com/TMElyralab/MusePose) is an image-to-video generation framework for virtual human under control signal such as pose.\nNOTE: You need to download weigths manually from: [a/https://huggingface.co/TMElyralab/MusePose](https://huggingface.co/TMElyralab/MusePose).[w/The repository name has changed. If you are not receiving updates, please delete the existing node and reinstall it.]" + }, + { + "author": "PnthrLeo", + "title": "comfyUI-PL-data-tools", + "reference": "https://github.com/PnthrLeo/comfyUI-PL-data-tools", + "files": [ + "https://github.com/PnthrLeo/comfyUI-PL-data-tools" + ], + "install_type": "git-clone", + "description": "Image data check, filtering and augmentation tools for ComfyUI 🔬\nNOTE: Renamed from 'comfyUI-image-search'" + }, + { + "author": "l20richo", + "title": "ComfyUI-Azure-Blob-Storage", + "id": "azure-blob-storage", + "reference": "https://github.com/l20richo/ComfyUI-Azure-Blob-Storage", + "files": [ + "https://github.com/l20richo/ComfyUI-Azure-Blob-Storage" + ], + "install_type": "git-clone", + "description": "ComfyUI-Azure-Blob-Storage seamlessly integrates with [a/Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs/) in ComfyUI. This open-source project provides custom nodes for effortless loading and saving of images, videos, and checkpoint models directly from Azure blob containers within the ComfyUI graph interface." + }, + { + "author": "AARG-FAN", + "title": "Image-vector-for-ComfyUI", + "id": "image-vector", + "reference": "https://github.com/AARG-FAN/Image-Vector-for-ComfyUI", + "files": [ + "https://github.com/AARG-FAN/Image-Vector-for-ComfyUI" + ], + "install_type": "git-clone", + "description": "a wrap-up of ComfyUI nodes for converting pixels to raster, sent out to [a/Vtracer](https://github.com/visioncortex/vtracer)!" + }, + { + "author": "Smirnov75", + "title": "ComfyUI-mxToolkit", + "id": "mxtoolkit", + "reference": "https://github.com/Smirnov75/ComfyUI-mxToolkit", + "files": [ + "https://github.com/Smirnov75/ComfyUI-mxToolkit" + ], + "install_type": "git-clone", + "description": "A set of useful nodes for convenient use of ComfyUI, including: Seed randomization before the generation process starts, with saving of the last used values and the ability to automatically interrupt the current generation; A function to pause the generation process; Slider nodes for convenient control of input parameters; An alternative version of the standard Reroute node." + }, + { + "author": "humgate", + "title": "simplecomfy", + "reference": "https://github.com/humgate/simplecomfy", + "files": [ + "https://github.com/humgate/simplecomfy" + ], + "install_type": "git-clone", + "description": "Simple JS application based on ComfyUI which takes prompt and style picture from user and runs hardcoded workflow inference returning generated image to user." + }, + { + "author": "vanche1212", + "title": "ZMG PLUGIN", + "id": "zmg", + "reference": "https://github.com/vanche1212/ComfyUI-ZMG-Nodes", + "files": [ + "https://github.com/vanche1212/ComfyUI-ZMG-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:ApiRequestNode, LoadVideoNode, JsonParserNode, OllamaRequestNode, OldPhotoColorizationNode." + }, + { + "author": "hben35096", + "title": "ComfyUI-ReplenishNodes", + "reference": "https://github.com/hben35096/ComfyUI-ReplenishNodes", + "files": [ + "https://github.com/hben35096/ComfyUI-ReplenishNodes" + ], + "install_type": "git-clone", + "description": "NODES:Batch Image Blend, Mask Levels Adjust, Get Batch Count, Load Lora Name, Load Sampler Name, Load Scheduler Name, Load Ckpt Name....\nThe nodes in this repository are only used as secondary nodes." + }, + { + "author": "tiankuan93", + "title": "V-Express: Conditional Dropout for Progressive Training of Portrait Video Generation", + "id": "v-express", + "reference": "https://github.com/tiankuan93/ComfyUI-V-Express", + "files": [ + "https://github.com/tiankuan93/ComfyUI-V-Express" + ], + "install_type": "git-clone", + "description": "[Original] In the field of portrait video generation, the use of single images to generate portrait videos has become increasingly prevalent. A common approach involves leveraging generative models to enhance adapters for controlled generation. However, control signals can vary in strength, including text, audio, image reference, pose, depth map, etc. Among these, weaker conditions often struggle to be effective due to interference from stronger conditions, posing a challenge in balancing these conditions. In our work on portrait video generation, we identified audio signals as particularly weak, often overshadowed by stronger signals such as pose and original image. However, direct training with weak signals often leads to difficulties in convergence. To address this, we propose V-Express, a simple method that balances different control signals through a series of progressive drop operations. Our method gradually enables effective control by weak conditions, thereby achieving generation capabilities that simultaneously take into account pose, input image, and audio.\nNOTE: You need to downdload [a/model_ckpts](https://huggingface.co/tk93/V-Express/tree/main) manually." + }, + { + "author": "CMonk", + "title": "Stable Projectorz Bridge", + "id": "projectorz", + "reference": "https://github.com/tianlang0704/ComfyUI-StableProjectorzBridge", + "files": [ + "https://github.com/tianlang0704/ComfyUI-StableProjectorzBridge" + ], + "install_type": "git-clone", + "description": "This custom nodes enables Stable Projectorz to work with ComfyUI Directly." + }, + { + "author": "Scorpinaus", + "title": "ComfyUI-DiffusersLoader", + "id": "comfyui-diffusersloader", + "reference": "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader", + "files": [ + "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader" + ], + "install_type": "git-clone", + "description": "This node pack allows loading of SD checkpoints that uses diffusers format in comfyUI." + }, + { + "author": "chakib-belgaid", + "title": "ComfyUI Style Plugin", + "id": "style-plugin", + "reference": "https://github.com/chakib-belgaid/Comfyui_Prompt_styler", + "files": [ + "https://github.com/chakib-belgaid/Comfyui_Prompt_styler" + ], + "install_type": "git-clone", + "description": "This is a simple plugin for ComfyUI that allows you to import A1111 CSV styles into ComfyUI prompts." + }, + { + "author": "chakib-belgaid", + "title": "ComfyUI-autosize", + "id": "autosize", + "reference": "https://github.com/chakib-belgaid/ComfyUI-autosize", + "files": [ + "https://github.com/chakib-belgaid/ComfyUI-autosize" + ], + "install_type": "git-clone", + "description": "A ComfyUI utility plugin designed to optimize the latent space for generating high-quality results. It approximates the closest size model for better generation results." + }, + { + "author": "ThereforeGames", + "title": "ComfyUI-Unprompted", + "id": "unprompted", + "reference": "https://github.com/ThereforeGames/ComfyUI-Unprompted", + "files": [ + "https://github.com/ThereforeGames/ComfyUI-Unprompted" + ], + "install_type": "git-clone", + "description": "A node that processes input text with the [a/Unprompted templating language](https://github.com/ThereforeGames/unprompted)." + }, + { + "author": "Tool Of North america", + "title": "Easy automatic (square) image cropper using Yolo", + "id": "tooldigital", + "reference": "https://github.com/tooldigital/ComfyUI-Yolo-Cropper", + "files": [ + "https://github.com/tooldigital/ComfyUI-Yolo-Cropper" + ], + "install_type": "git-clone", + "description": "A very simple and easy to use node to automaticaaly create (square) image crops and masks using YoloV8. This can be very useful when using controlnet and ip adapters" + }, + { + "author": "luandev", + "title": "ComfyUI CrewAI", + "id": "crewai", + "reference": "https://github.com/luandev/ComfyUI-CrewAI", + "files": [ + "https://github.com/luandev/ComfyUI-CrewAI" + ], + "install_type": "git-clone", + "description": "ComfyUI-CrewAI aims to integrate Crew AI's multi-agent collaboration framework into the ComfyUI environment. By combining the strengths of Crew AI's role-based, collaborative AI agent system with ComfyUI's intuitive interface, we will create a robust platform for managing and executing complex AI tasks seamlessly" + }, + { + "author": "chandlergis", + "title": "ComfyUI_EmojiOverlay", + "id": "emoji-overlay", + "reference": "https://github.com/chandlergis/ComfyUI_EmojiOverlay", + "files": [ + "https://github.com/chandlergis/ComfyUI_EmojiOverlay" + ], + "install_type": "git-clone", + "description": "Nodes:Image Emoji Overlay" + }, + { + "author": "risunobushi", + "title": "comfyUI_FrequencySeparation_RGB-HSV", + "id": "freq-sep", + "reference": "https://github.com/risunobushi/comfyUI_FrequencySeparation_RGB-HSV", + "files": [ + "https://github.com/risunobushi/comfyUI_FrequencySeparation_RGB-HSV" + ], + "install_type": "git-clone", + "description": "A collection of simple nodes for Frequency Separation / Frequency Recombine with RGB and HSV methods" + }, + { + "author": "risunobushi", + "title": "ComfyUI-Similarity-Score", + "reference": "https://github.com/risunobushi/ComfyUI-Similarity-Score", + "files": [ + "https://github.com/risunobushi/ComfyUI-Similarity-Score" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that calculates CLIP and LPIPS similarity scores between two images." + }, + { + "author": "risunobushi", + "title": "ComfyUI_DisplacementMapTools", + "reference": "https://github.com/risunobushi/ComfyUI_DisplacementMapTools", + "files": [ + "https://github.com/risunobushi/ComfyUI_DisplacementMapTools" + ], + "install_type": "git-clone", + "description": "NODES: Extract Displacement Map Node, Displace Logo" + }, + { + "author": "risunobushi", + "title": "ComfyUI_sm4ll-Wrapper", + "reference": "https://github.com/risunobushi/ComfyUI_sm4ll-Wrapper", + "files": [ + "https://github.com/risunobushi/ComfyUI_sm4ll-Wrapper" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that integrates with the sm4ll-VTON API for virtual try-on functionality." + }, + { + "author": "zohac", + "title": "ComfyUI_ZC_DrawShape", + "id": "drawshape", + "reference": "https://github.com/zohac/ComfyUI_ZC_DrawShape", + "files": [ + "https://github.com/zohac/ComfyUI_ZC_DrawShape" + ], + "install_type": "git-clone", + "description": "Nodes:ZC DrawShape Node" + }, + { + "author": "DataCTE", + "title": "Prompt Injection Node for ComfyUI", + "id": "prompt-injection", + "reference": "https://github.com/DataCTE/prompt_injection", + "files": [ + "https://github.com/DataCTE/prompt_injection" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows you to inject specific prompts at specific blocks of the Stable Diffusion UNet, providing fine-grained control over the generated image. It is based on the concept that the content/subject understanding of the model is primarily contained within the MID0 and MID1 blocks, as demonstrated in the B-Lora (Content Style implicit separation) paper. Features.\nInject different prompts into specific UNet blocks Three different node variations for flexible workflow integration Customize the learning rate of specific blocks to focus on content, lighting, style, or other aspects Potential for developing a 'Mix of Experts' approach by swapping blocks on-the-fly based on prompt content" + }, + { + "author": "FrankChieng", + "title": "ComfyUI_llm_easyanimiate", + "id": "llm-easyanimate", + "nodename_pattern": "^FrankChiengEasyAnimate", + "reference": "https://github.com/frankchieng/ComfyUI_llm_easyanimiate", + "files": [ + "https://github.com/frankchieng/ComfyUI_llm_easyanimiate" + ], + "install_type": "git-clone", + "description": "implementation easyanimate with llama3-8b-6bit instruction LLM generation prompt help" + }, + { + "author": "nuanarchy", + "title": "ComfyUI-NuA-FlashFace", + "id": "nua-flashface", + "reference": "https://github.com/nuanarchy/ComfyUI-NuA-FlashFace", + "files": [ + "https://github.com/nuanarchy/ComfyUI-NuA-FlashFace" + ], + "install_type": "git-clone", + "description": "ComfyUI implementation of [a/FlashFace: Human Image Personalization with High-fidelity Identity Preservation](https://github.com/ali-vilab/FlashFace)\nNOTE: You need to downalod models manually." + }, + { + "author": "nuanarchy", + "title": "ComfyUI-NuA-BIRD", + "id": "nua-bird", + "reference": "https://github.com/nuanarchy/ComfyUI-NuA-BIRD", + "files": [ + "https://github.com/nuanarchy/ComfyUI-NuA-BIRD" + ], + "install_type": "git-clone", + "description": "ComfyUI implementation of '[a/Blind Image Restoration via Fast Diffusion Inversion](https://github.com/hamadichihaoui/BIRD)' Original [a/article](https://arxiv.org/abs/2405.19572)" + }, + { + "author": "denfrost", + "title": "Den_ComfyUI_Workflows", + "id": "den", + "reference": "https://github.com/denfrost/Den_ComfyUI_Workflow", + "files": [ + "https://github.com/denfrost/Den_ComfyUI_Workflow" + ], + "install_type": "git-clone", + "description": "Custom nodes make easy Advanced Workflows. Focus on Image/Video and ControlNet efficiency and performances. Manipulation of Latent Space, Automatic pipeline with a bit efforts." + }, + { + "author": "marduk191", + "title": "marduk191 workflow settings", + "id": "marnodes", + "reference": "https://github.com/marduk191/comfyui-marnodes", + "files": [ + "https://github.com/marduk191/comfyui-marnodes" + ], + "install_type": "git-clone", + "description": "A node to set workflow settings." + }, + { + "author": "marduk191", + "title": "Flux Prompt Enhance Node for ComfyUI", + "id": "fluxpromptenhancer", + "reference": "https://github.com/marduk191/ComfyUI-Fluxpromptenhancer", + "files": [ + "https://github.com/marduk191/ComfyUI-Fluxpromptenhancer" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI integrates the Flux-Prompt-Enhance model, allowing you to enhance your prompts directly within your ComfyUI workflows." + }, + { + "author": "haohaocreates", + "title": "ComfyUI-HH-Image-Selector", + "id": "hh-image-selector", + "reference": "https://github.com/haohaocreates/ComfyUI-HH-Image-Selector", + "files": [ + "https://github.com/haohaocreates/ComfyUI-HH-Image-Selector" + ], + "install_type": "git-clone", + "description": "comfy ui custom node that returns an image from a batch based on selected criteria such as RGB value, brightness, etc (credits to chris goringe's custom nodes tutorial )." + }, + { + "author": "exdysa", + "title": "comfyui-selector", + "reference": "https://github.com/exdysa/comfyui-selector", + "files": [ + "https://github.com/exdysa/comfyui-selector" + ], + "install_type": "git-clone", + "description": "Selector and Recourse. Presets & failsafes. Work flow. EXDYSA" + }, + { + "author": "Jin Liu", + "title": "ComfyUI-LJNodes", + "id": "ComfyUI-LJNodes", + "reference": "https://github.com/coolzilj/ComfyUI-LJNodes", + "files": [ + "https://github.com/coolzilj/ComfyUI-LJNodes" + ], + "install_type": "git-clone", + "description": "A variety of custom nodes to enhance ComfyUI for a buttery smooth experience." + }, + { + "author": "GavChap", + "title": "ComfyUI-SD3LatentSelectRes", + "id": "sd3latent-select-res", + "reference": "https://github.com/GavChap/ComfyUI-SD3LatentSelectRes", + "files": [ + "https://github.com/GavChap/ComfyUI-SD3LatentSelectRes" + ], + "install_type": "git-clone", + "description": "You'll get a new node called SD3 Latent Select Resolution, you can pick the x and y sizes from a list." + }, + { + "author": "BenNarum", + "title": "SigmaWaveFormNodes", + "id": "sigmawaveform", + "reference": "https://github.com/BenNarum/SigmaWaveFormNode", + "files": [ + "https://github.com/BenNarum/SigmaWaveFormNode" + ], + "install_type": "git-clone", + "description": "A set of tools for generating and altering sigmas in ComfyUI." + }, + { + "author": "shobhitic", + "title": "PlusMinusTextClip - Single node for Positive and Negative Prompts", + "id": "plusminustextclip", + "reference": "https://github.com/shobhitic/ComfyUI-PlusMinusTextClip", + "files": [ + "https://github.com/shobhitic/ComfyUI-PlusMinusTextClip" + ], + "install_type": "git-clone", + "description": "This adds a node that has both the positive and negative prompts as input in one node. You can just add one node and be done with both Positive and Negative prompts, in place of adding two different nodes for them." + }, + { + "author": "Late Night Labs", + "title": "LNL Frame Selector", + "id": "lnlframeselector", + "reference": "https://github.com/latenightlabs/ComfyUI-LNL", + "reference2": "https://github.com/asteriafilmco/ComfyUI-LNL", + "files": [ + "https://github.com/latenightlabs/ComfyUI-LNL" + ], + "install_type": "git-clone", + "description": "Frame Selector & Sequence Selection Node for ComfyUI." + }, + { + "author": "Michael Standen", + "title": "Ollama Prompt Encode", + "id": "ollamapromptencode", + "reference": "https://github.com/ScreamingHawk/comfyui-ollama-prompt-encode", + "files": [ + "https://github.com/ScreamingHawk/comfyui-ollama-prompt-encode" + ], + "install_type": "git-clone", + "description": "A prompt generator and CLIP encoder using AI provided by Ollama." + }, + { + "author": "NvidiaGameWorksAdmin", + "title": "ComfyUI-RTX-Remix", + "id": "comfyui-rtx-remix", + "reference": "https://github.com/NVIDIAGameWorks/ComfyUI-RTX-Remix", + "files": [ + "https://github.com/NVIDIAGameWorks/ComfyUI-RTX-Remix" + ], + "install_type": "git-clone", + "description": "Use ComfyUI with RTX Remix to remaster classic games [a/https://github.com/NVIDIAGameWorks/rtx-remix](https://github.com/NVIDIAGameWorks/rtx-remix)" + }, + { + "author": "toxicwind", + "title": "TTools for ComfyUI", + "id": "ttools", + "reference": "https://github.com/toxicwind/ComfyUI-TTools", + "files": [ + "https://github.com/toxicwind/ComfyUI-TTools" + ], + "install_type": "git-clone", + "description": "Text Randomization and Formatting, JSON Extraction and Processing, SD3 Resolution Solver" + }, + { + "author": "Yanick112", + "title": "ComfyUI-ToSVG", + "id": "tosvg", + "reference": "https://github.com/Yanick112/ComfyUI-ToSVG", + "files": [ + "https://github.com/Yanick112/ComfyUI-ToSVG" + ], + "install_type": "git-clone", + "description": "This project converts raster images into SVG format using the [a/VTracer](https://github.com/visioncortex/vtracer) library. It's a handy tool for designers and developers who need to work with vector graphics programmatically." + }, + { + "author": "dicksondickson", + "title": "ComfyUI-Dickson-Nodes", + "id": "dicksonnodes", + "reference": "https://github.com/dicksondickson/ComfyUI-Dickson-Nodes", + "files": [ + "https://github.com/dicksondickson/ComfyUI-Dickson-Nodes" + ], + "install_type": "git-clone", + "description": "A set of custom nodes that I've either written myself or adapted from other authors" + }, + { + "author": "juehackr", + "title": "comfyui_fk_server", + "id": "fk-server", + "reference": "https://github.com/juehackr/comfyui_fk_server", + "files": [ + "https://github.com/juehackr/comfyui_fk_server" + ], + "install_type": "git-clone", + "description": "🤗🤗🤗Comfyui Universal Translation Plugin (no longer requires adding various nodes, directly add translation function on the existing nodes), allowing Comfyui to support Chinese input and automatic translation for any long text input box, while adding error translation function (calling Baidu Translate), achieving translation freedom!" + }, + { + "author": "G-370", + "title": "ComfyUI-SD3-Powerlab", + "id": "sd3-powerlab", + "reference": "https://github.com/G-370/ComfyUI-SD3-Powerlab", + "files": [ + "https://github.com/G-370/ComfyUI-SD3-Powerlab" + ], + "install_type": "git-clone", + "description": "Nodes:Render SD3 Attention, SD3 Attention To Image, SD3 Image Into Attention." + }, + { + "author": "TylerZoro", + "title": "SD3-Scaling", + "id": "sd3-scaling", + "reference": "https://github.com/TylerZoro/SD3-Scaling", + "files": [ + "https://github.com/TylerZoro/SD3-Scaling" + ], + "install_type": "git-clone", + "description": "Tools for scaling images and latents appropriate to SD3 in ComfyUI." + }, + { + "author": "baicai99", + "title": "ComfyUI-FrameSkipping", + "id": "FrameSkipping", + "reference": "https://github.com/baicai99/ComfyUI-FrameSkipping", + "files": [ + "https://github.com/baicai99/ComfyUI-FrameSkipping" + ], + "install_type": "git-clone", + "description": "Used to process video redrawing, frame skipping, frame ending early, etc." + }, + { + "author": "SuperMasterBlasterLaser", + "title": "ComfyUI_YOLO_Classifiers", + "id": "yolo-classifier", + "reference": "https://github.com/SuperMasterBlasterLaser/ComfyUI_YOLO_Classifiers", + "files": [ + "https://github.com/SuperMasterBlasterLaser/ComfyUI_YOLO_Classifiers" + ], + "install_type": "git-clone", + "description": "Nodes:YOLO Classifier Model Loader, YOLO Classify." + }, + { + "author": "SamKhoze", + "title": "DeepFuze", + "id": "deepfuze", + "reference": "https://github.com/SamKhoze/ComfyUI-DeepFuze", + "files": [ + "https://github.com/SamKhoze/ComfyUI-DeepFuze" + ], + "install_type": "git-clone", + "description": "DeepFuze is a state-of-the-art deep learning tool that seamlessly integrates with ComfyUI to revolutionize facial transformations, lipsyncing, video generation, voice cloning, face swapping, and lipsync translation. Leveraging advanced algorithms, DeepFuze enables users to combine audio and video with unparalleled realism, ensuring perfectly synchronized facial movements. This innovative solution is ideal for content creators, animators, developers, and anyone seeking to elevate their video editing projects with sophisticated AI-driven features." + }, + { + "author": "superyoman", + "title": "comfyui_lumaAPI", + "id": "luma", + "reference": "https://github.com/superyoman/comfyui_lumaAPI", + "files": [ + "https://github.com/superyoman/comfyui_lumaAPI" + ], + "install_type": "git-clone", + "description": "Unofficial Luma API-ComfyUI version.[w/WARN: This project is for learning purpose only!]" + }, + { + "author": "chris-the-wiz", + "title": "EmbeddingsCurveEditor_ComfyUI", + "id": "embeddings-curve-editor", + "reference": "https://github.com/chris-the-wiz/EmbeddingsCurveEditor_ComfyUI", + "files": [ + "https://github.com/chris-the-wiz/EmbeddingsCurveEditor_ComfyUI" + ], + "install_type": "git-clone", + "description": "Edit embeddings with a curve. Actually should work on any 1D input tensor. Tested with IPAdapter-Plus." + }, + { + "author": "zhulu111", + "title": "ComfyUI_Bxb", + "id": "ComfyUI_Bxb", + "reference": "https://github.com/zhulu111/ComfyUI_Bxb", + "files": [ + "https://github.com/zhulu111/ComfyUI_Bxb" + ], + "install_type": "git-clone", + "description": "sdBxb, a tool that converts ComfyUI workflows into WeChat Mini Program, Douyin Mini Program, and H5 with one click, and supports payments." + }, + { + "author": "lordgasmic", + "title": "comfyui_wildcards", + "reference": "https://github.com/lordgasmic/comfyui_wildcards", + "files": [ + "https://github.com/lordgasmic/comfyui_wildcards" + ], + "install_type": "git-clone", + "description": "This is an attempt to recreate the wildcards plugin for Automatic1111 but for ComfyUI." + }, + { + "author": "lordgasmic", + "title": "comfyui_save_image_with_options", + "reference": "https://github.com/lordgasmic/comfyui_save_image_with_options", + "files": [ + "https://github.com/lordgasmic/comfyui_save_image_with_options" + ], + "install_type": "git-clone", + "description": "Nodes:Save Image with Options" + }, + { + "author": "opvelll", + "title": "Comfy UI Text List Product", + "id": "listproduct", + "reference": "https://github.com/opvelll/ComfyUI_TextListProduct", + "files": [ + "https://github.com/opvelll/ComfyUI_TextListProduct" + ], + "install_type": "git-clone", + "description": "This is a custom node for Comfy UI. It mainly wraps itertools.product and can be used to create patterns by combining prompts. It is recommended to install this custom node in combination with the nodes from the WAS Node Suite." + }, + { + "author": "jakechai", + "title": "ComfyUI-JakeUpgrade", + "id": "jkupgrade", + "reference": "https://github.com/jakechai/ComfyUI-JakeUpgrade", + "files": [ + "https://github.com/jakechai/ComfyUI-JakeUpgrade" + ], + "install_type": "git-clone", + "description": "A ComfyUI workflow customization by Jake." + }, + { + "author": "celsojr2013", + "title": "ComfyUI SimpleTools Suit", + "reference": "https://github.com/celsojr2013/comfyui_simpletools", + "files": [ + "https://github.com/celsojr2013/comfyui_simpletools" + ], + "install_type": "git-clone", + "description": "Nodes:Simple Google Translator, Simple Resolution Solver.\nThis is a small set of simple nodes that help your workflow on ComfyUI." + }, + { + "author": "celsojr2013", + "title": "comfyui_jamworks_client", + "reference": "https://github.com/celsojr2013/comfyui_jamworks_client", + "files": [ + "https://github.com/celsojr2013/comfyui_jamworks_client" + ], + "install_type": "git-clone", + "description": "Nodes:Jamworks_Login, Jamworks_Download, Shell_Command.\nA Simple Client for Jamworks Platform DAM Integration" + }, + { + "author": "MilitantHitchhiker", + "title": "MilitantHitchhiker-SwitchbladePack", + "id": "hitchhiker", + "reference": "https://github.com/MilitantHitchhiker/MilitantHitchhiker-SwitchbladePack", + "files": [ + "https://github.com/MilitantHitchhiker/MilitantHitchhiker-SwitchbladePack" + ], + "install_type": "git-clone", + "description": "Militant Hitchhiker's Switchblade Pack is a collection of custom nodes for ComfyUI that provide various multi-function capabilities." + }, + { + "author": "slyt", + "title": "comfyui-ollama-nodes", + "reference": "https://github.com/slyt/comfyui-ollama-nodes", + "files": [ + "https://github.com/slyt/comfyui-ollama-nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for working with [a/Ollama](https://github.com/ollama/ollama).\nNOTE:Assumes that an Ollama server is running at http://127.0.0.1:11434 and accessible by the ComfyUI backend." + }, + { + "author": "zwng", + "title": "ComfyUI_Zwng_Nodes", + "id": "zwng", + "reference": "https://github.com/za-wa-n-go/ComfyUI_Zwng_Nodes", + "files": [ + "https://github.com/za-wa-n-go/ComfyUI_Zwng_Nodes" + ], + "install_type": "git-clone", + "description": "Simple nodes for loading image files.Nodes that include a simple remote connection to Photoshop, a node that can overlay and preview an image with a mask, and a node that can load images directly from a file path." + }, + { + "author": "Shibiko-AI", + "title": "Shibiko AI ComfyUI Tools", + "id": "shibiko-ai-tools", + "reference": "https://github.com/Shibiko-AI/ShibikoAI-ComfyUI-Tools", + "files": [ + "https://github.com/Shibiko-AI/ShibikoAI-ComfyUI-Tools" + ], + "install_type": "git-clone", + "description": "This is a collection of tools that I use to make my life easier when developing ComfyUI applications. It is a collection of tools that I have created to help me with my development process. I have decided to share these tools with the community in the hopes that they will be useful to others as well. I use this tools to further develop features for [a/https://shibiko.ai](https://shibiko.ai)" + }, + { + "author": "SherryXieYuchen", + "title": "ComfyUI-Image-Inpainting", + "id": "image-inpainting", + "reference": "https://github.com/SherryXieYuchen/ComfyUI-Image-Inpainting", + "files": [ + "https://github.com/SherryXieYuchen/ComfyUI-Image-Inpainting" + ], + "install_type": "git-clone", + "description": "Nodes:VAE Encode Inpaint, VAE Decode Inpaint, ColorCorrection Inpaint, ImagePreprocess Inpaint, ImagePostprocess Inpaint, Load Model Inpaint, Inpainting (using Model)" + }, + { + "author": "zeroxoxo", + "title": "ComfyUI-Fast-Style-Transfer", + "id": "fast-style-transfer", + "reference": "https://github.com/zeroxoxo/ComfyUI-Fast-Style-Transfer", + "files": [ + "https://github.com/zeroxoxo/ComfyUI-Fast-Style-Transfer" + ], + "install_type": "git-clone", + "description": "ComfyUI node for fast neural style transfer. This is a simple conversion based on this: [a/https://github.com/rrmina/fast-neural-style-pytorch](https://github.com/rrmina/fast-neural-style-pytorch) Only basic inference functionality is ported for now." + }, + { + "author": "iwanders", + "title": "iwanders/ComfyUI_nodes", + "id": "iwanders-nodes", + "reference": "https://github.com/iwanders/ComfyUI_nodes", + "files": [ + "https://github.com/iwanders/ComfyUI_nodes" + ], + "install_type": "git-clone", + "description": "Nodes:IW SaveString, IW PrintString, IW ReplaceString, IW StringNode, IW StringConcat, IW TokenizerVocab, IW JsonPickItem." + }, + { + "author": "rhdunn", + "title": "comfyui-bus-plugin", + "id": "bus", + "reference": "https://github.com/rhdunn/comfyui-bus-plugin", + "files": [ + "https://github.com/rhdunn/comfyui-bus-plugin" + ], + "install_type": "git-clone", + "description": "A collection of nodes for rerouting multiple I/O lines together in a bus." + }, + { + "author": "rhdunn", + "title": "comfyui-audio-processing", + "reference": "https://github.com/rhdunn/comfyui-audio-processing", + "files": [ + "https://github.com/rhdunn/comfyui-audio-processing" + ], + "install_type": "git-clone", + "description": "This plugin is compatible with the ComfyUI audio nodes." + }, + { + "author": "hyunamy", + "title": "Comfy-UI on-complete-email-me", + "id": "hyunamy", + "reference": "https://github.com/hyunamy/comfy-ui-on-complete-email-me", + "files": [ + "https://github.com/hyunamy/comfy-ui-on-complete-email-me" + ], + "install_type": "git-clone", + "description": "A feature that sends an email via Gmail once image generation is completed in Comfy-ui." + }, + { + "author": "veighnsche", + "title": "comfyui_gr85", + "id": "gr85", + "reference": "https://github.com/veighnsche/comfyui_gr85", + "files": [ + "https://github.com/veighnsche/comfyui_gr85" + ], + "install_type": "git-clone", + "description": "Nodes:Image Dimension Resizer, Image Sizer, Random Ratio, Show Text, Random Title Character, Random Wildcard Tag Picker, Random Show Atm Loc Outfit, Contains Word, Elements Concatenator, ..." + }, + { + "author": "hwhaocool", + "title": "ComfyUI-Select-Any", + "id": "select-any", + "reference": "https://github.com/hwhaocool/ComfyUI-Select-Any", + "files": [ + "https://github.com/hwhaocool/ComfyUI-Select-Any" + ], + "install_type": "git-clone", + "description": "a comfyui custom node, which can select value from inputs" + }, + { + "author": "GreenLandisaLie", + "title": "AuraSR-ComfyUI", + "id": "aurasr-greenlandisalie", + "reference": "https://github.com/GreenLandisaLie/AuraSR-ComfyUI", + "files": [ + "https://github.com/GreenLandisaLie/AuraSR-ComfyUI" + ], + "install_type": "git-clone", + "description": "ComfyUI implementation of [a/Aura-SR](https://github.com/fal-ai/aura-sr)" + }, + { + "author": "licyk", + "title": "ComfyUI-Restart-Sampler", + "id": "restart-sampler-licyk", + "reference": "https://github.com/licyk/ComfyUI-Restart-Sampler", + "files": [ + "https://github.com/licyk/ComfyUI-Restart-Sampler" + ], + "install_type": "git-clone", + "description": "This extension is a node that directly expands the functionality of KSampler, rather than being in the form of a custom node. [w/Workflows created using this feature are not compatible with other users.]" + }, + { + "author": "licyk", + "title": "ComfyUI-HakuImg", + "id": "HakuImg", + "reference": "https://github.com/licyk/ComfyUI-HakuImg", + "files": [ + "https://github.com/licyk/ComfyUI-HakuImg" + ], + "install_type": "git-clone", + "description": "Image processing tool for ComfyUI" + }, + { + "author": "licyk", + "title": "ComfyUI-TCD-Sampler", + "id": "TCD-Sampler", + "reference": "https://github.com/licyk/ComfyUI-TCD-Sampler", + "files": [ + "https://github.com/licyk/ComfyUI-TCD-Sampler" + ], + "install_type": "git-clone", + "description": "Adding TCD sampling" + }, + { + "author": "my-opencode", + "title": "ComfyUI_IndustrialMagick", + "id": "industrialmagick", + "reference": "https://github.com/my-opencode/ComfyUI_IndustrialMagick", + "files": [ + "https://github.com/my-opencode/ComfyUI_IndustrialMagick" + ], + "install_type": "git-clone", + "description": "[a/ImageMagick](https://imagemagick.org/index.php) nodes for ComfyUI. Adds nodes to call ImageMagick subprocesses from ComfyUI.\nRequirements: [a/ImagMagick7](https://imagemagick.org/script/download.php), 'magick' command in your CLI environment." + }, + { + "author": "my-opencode", + "title": "ComfyUI_KSamplerTimer", + "id": "ksamplertimer", + "reference": "https://github.com/my-opencode/ComfyUI_KSamplerTimer", + "files": [ + "https://github.com/my-opencode/ComfyUI_KSamplerTimer" + ], + "install_type": "git-clone", + "description": "A custom node that returns the generation time of the KSampler. Intended for benchmarking or debugging." + }, + { + "author": "SEkINVR", + "title": "ComfyUI SaveAS", + "id": "saveas", + "reference": "https://github.com/SEkINVR/ComfyUI-SaveAs", + "reference2": "https://github.com/AnimationOverhual/ComfyUI-SaveAs", + "files": [ + "https://github.com/SEkINVR/ComfyUI-SaveAs" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows you to save images in multiple formats, including PNG, JPG, WebP, and ICO.\n[w/ComfyUI-Save-Multi-Format is renamed to SaveAs. Remove previous one and reinstall to this.]" + }, + { + "author": "MrSamSeen", + "title": "SideBySide_Stereoscope", + "id": "comfyui_ssstereoscope_bysamseen", + "reference": "https://github.com/MrSamSeen/ComfyUI_SSStereoscope", + "files": [ + "https://github.com/MrSamSeen/ComfyUI_SSStereoscope" + ], + "install_type": "git-clone", + "description": "Create immersive 3D stereoscopic images and videos! Transform your ComfyUI generations into stunning side-by-side 3D visuals for videos and image sequences. Powered by Depth-Anything-V2, no external depth maps needed. Perfect for VR, 3D displays, and cross-eyed viewing - no special glasses required!" + }, + { + "author": "MrSamSeen", + "title": "ComfyUI_SSBeforeAfterNode", + "id": "ComfyUI_SSBeforeAfterNode", + "reference": "https://github.com/MrSamSeen/ComfyUI_SSBeforeAfterNode", + "files": [ + "https://github.com/MrSamSeen/ComfyUI_SSBeforeAfterNode" + ], + "install_type": "git-clone", + "description": "Two powerful custom nodes for ComfyUI to create stunning before-and-after transition videos. These nodes are designed for visual comparisons, transformations, and creative effects, supporting both standard and depth map-based transitions." + }, + { + "author": "jroc22", + "title": "ComfyUI-CSV-prompt-builder", + "id": "csv-prompt-builder", + "reference": "https://github.com/jroc22/ComfyUI-CSV-prompt-builder", + "files": [ + "https://github.com/jroc22/ComfyUI-CSV-prompt-builder" + ], + "install_type": "git-clone", + "description": "This is a simple node for creating prompts using a .csv file. I created this node as an easy way to output different prompts each time a workflow is run." + }, + { + "author": "DeJoker", + "title": "Pipeline Parallel ComfyUI", + "reference": "https://github.com/DeJoker/pipeline-parallel-comfy", + "files": [ + "https://github.com/DeJoker/pipeline-parallel-comfy" + ], + "install_type": "git-clone", + "description": "provide extra api to run prompt request with parallel execution of independent node" + }, + { + "author": "yiwangsimple", + "title": "ComfyUI_DW_Chat", + "reference": "https://github.com/yiwangsimple/ComfyUI_DW_Chat", + "files": [ + "https://github.com/yiwangsimple/ComfyUI_DW_Chat" + ], + "install_type": "git-clone", + "description": "Content generation with open source models in comfyui via graq api implementation.\n[w/This repo is renamed from ComfyUI_GroqChat to ComfyUI_DW_CHAT. Please remove previous one and reinstall to this.]" + }, + { + "author": "yiwangsimple", + "title": "florence_dw", + "reference": "https://github.com/yiwangsimple/florence_dw", + "files": [ + "https://github.com/yiwangsimple/florence_dw" + ], + "install_type": "git-clone", + "description": "Based on the original repository [a/https://github.com/spacepxl/ComfyUI-Florence-2](https://github.com/spacepxl/ComfyUI-Florence-2), the model loading and storage methods have been improved, and sd3 has been newly added with enhanced speed and accuracy." + }, + { + "author": "Tritant", + "title": "ComfyUI-CreaPrompt", + "id": "creaprompt", + "reference": "https://github.com/tritant/ComfyUI_CreaPrompt", + "files": [ + "https://github.com/tritant/ComfyUI_CreaPrompt" + ], + "install_type": "git-clone", + "description": "Generate random prompts easily." + }, + { + "author": "tritant", + "title": "Flux LoRA Merger", + "reference": "https://github.com/tritant/ComfyUI_Flux_Lora_Merger", + "files": [ + "https://github.com/tritant/ComfyUI_Flux_Lora_Merger" + ], + "install_type": "git-clone", + "description": "Advanced LoRA merging node for ComfyUI (additive, average, sequential)" + }, + { + "author": "tritant", + "title": "Flux Block LoRA Merger", + "reference": "https://github.com/tritant/ComfyUI_Flux_Block_Lora_Merger", + "files": [ + "https://github.com/tritant/ComfyUI_Flux_Block_Lora_Merger" + ], + "install_type": "git-clone", + "description": "Advanced Block LoRA merging node for ComfyUI (allows selective LoRA block merging)" + }, + { + "author": "tritant", + "title": "Advanced Photo Grain", + "reference": "https://github.com/tritant/ComfyUI-Advanced-Photo-Grain", + "files": [ + "https://github.com/tritant/ComfyUI-Advanced-Photo-Grain" + ], + "install_type": "git-clone", + "description": "Adds realistic film grain, vignette and RGB aberration to photos" + }, + { + "author": "tritant", + "title": "Remove Banding Artifacts", + "reference": "https://github.com/tritant/ComfyUI_Remove_Banding_Artifacts", + "files": [ + "https://github.com/tritant/ComfyUI_Remove_Banding_Artifacts" + ], + "install_type": "git-clone", + "description": "Fix banding artifacts by re-sampling the latent with a low denoise strength." + }, + { + "author": "tritant", + "title": "Layers System", + "reference": "https://github.com/tritant/ComfyUI_Layers_Utility", + "files": [ + "https://github.com/tritant/ComfyUI_Layers_Utility" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI provides a powerful and flexible dynamic layering system, similar to what you would find in image editing software like Photoshop." + }, + { + "author": "tritant", + "title": "Advanced_Relight_Img", + "reference": "https://github.com/tritant/ComfyUI_Relight_Img", + "files": [ + "https://github.com/tritant/ComfyUI_Relight_Img" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that provides advanced 2D relighting capabilities." + }, + { + "author": "metncelik", + "title": "comfyui_met_suite", + "reference": "https://github.com/metncelik/comfyui_met_suite", + "files": [ + "https://github.com/metncelik/comfyui_met_suite" + ], + "install_type": "git-clone", + "description": "Nodes: Primitive BBOX, BBOX Padding, BBOX Resize, ImageResize KeepRatio." + }, + { + "author": "Smuzzies", + "title": "comfyui_meme_maker", + "reference": "https://github.com/Smuzzies/comfyui_meme_maker", + "files": [ + "https://github.com/Smuzzies/comfyui_meme_maker" + ], + "install_type": "git-clone", + "description": "Meme Maker Node for ComfyUI." + }, + { + "author": "bluevisor", + "title": "ComfyUI_PS_Blend_Node", + "reference": "https://github.com/bluevisor/ComfyUI_PS_Blend_Node", + "files": [ + "https://github.com/bluevisor/ComfyUI_PS_Blend_Node" + ], + "install_type": "git-clone", + "description": "This repository contains a simple custom node for ComfyUI that implements familiar PS-style blend modes using PyTorch. The PSBlendNode allows you to blend two images together using a variety of blend modes and an opacity parameter." + }, + { + "author": "wTechArtist", + "title": "ComfyUI-CustomNodes", + "reference": "https://github.com/wTechArtist/ComfyUI-CustomNodes", + "files": [ + "https://github.com/wTechArtist/ComfyUI-CustomNodes" + ], + "install_type": "git-clone", + "description": "Nodes:Image Blending Mode Mask, Load Image With Bool, IPAdapter Mad Scientist Weight_Type, IPAdapter FaceID With Bool" + }, + { + "author": "wTechArtist", + "title": "ComfyUI-StableDelight-weiweiliang", + "reference": "https://github.com/wTechArtist/ComfyUI-StableDelight-weiweiliang", + "reference2": "https://github.com/wTechArtist/ComfyUI-WWL-StableDelight", + "files": [ + "https://github.com/wTechArtist/ComfyUI-StableDelight-weiweiliang" + ], + "install_type": "git-clone", + "description": "NODES: WWL_StableDelight" + }, + { + "author": "wTechArtist", + "title": "ComfyUI VVL Video Camera Advanced", + "reference": "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera_Advanced", + "files": [ + "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera_Advanced" + ], + "install_type": "git-clone", + "description": "A professional video camera parameter estimation toolkit based on the VGGT model." + }, + { + "author": "mullakhmetov", + "title": "comfyui_dynamic_util_nodes", + "reference": "https://github.com/mullakhmetov/comfyui_dynamic_util_nodes", + "files": [ + "https://github.com/mullakhmetov/comfyui_dynamic_util_nodes" + ], + "install_type": "git-clone", + "description": "ComfyS3 helpful util nodes for dynamic workflows" + }, + { + "author": "HECer", + "title": "ComfyUI-FilePathCreator", + "reference": "https://github.com/HECer/ComfyUI-FilePathCreator", + "files": [ + "https://github.com/HECer/ComfyUI-FilePathCreator" + ], + "install_type": "git-clone", + "description": "The ComfyUI-FilePathCreator is a custom node extension for ComfyUI designed to generate dynamic filenames based on user-defined parameters. This node helps streamline the process of creating organized and timestamped filenames, ideal for saving output files in a structured manner." + }, + { + "author": "adigayung", + "title": "ComfyUI-Translator", + "reference": "https://github.com/adigayung/ComfyUI-Translator", + "files": [ + "https://github.com/adigayung/ComfyUI-Translator" + ], + "install_type": "git-clone", + "description": "Auto translate all languages ​​to english" + }, + { + "author": "ZZXYWQ", + "title": "ZZX Nodes", + "id": "ZZXYWQ", + "reference": "https://github.com/ZZXYWQ/ComfyUI-ZZXYWQ", + "files": [ + "https://github.com/ZZXYWQ/ComfyUI-ZZXYWQ" + ], + "install_type": "git-clone", + "description": "Nodes: StreamRecorder, VideoFormatConverter, ZZX_PaintsUndo" + }, + { + "author": "SiliconFlow", + "title": "☁️BizyAir Nodes", + "id": "bizyair", + "reference": "https://github.com/siliconflow/BizyAir", + "files": [ + "https://github.com/siliconflow/BizyAir" + ], + "install_type": "git-clone", + "description": "[a/BizyAir](https://github.com/siliconflow/BizyAir) Comfy Nodes that can run in any environment." + }, + { + "author": "BenNarum", + "title": "ComfyUI_CAS", + "reference": "https://github.com/BenNarum/ComfyUI_CAS", + "files": [ + "https://github.com/BenNarum/ComfyUI_CAS" + ], + "install_type": "git-clone", + "description": "This extension provides nodes that allow experimentation with various elements (samplers, latent, activators, attenuator, scheulders, ...) of Stable Diffusion." + }, + { + "author": "Indra's Mirror", + "title": "ComfyUI-Documents", + "reference": "https://github.com/Excidos/ComfyUI-Documents", + "files": [ + "https://github.com/Excidos/ComfyUI-Documents" + ], + "install_type": "git-clone", + "description": "ComfyUI-Documents is a powerful extension for ComfyUI that enhances workflows with advanced document processing capabilities. It includes nodes for loading and parsing various document types (PDF, TXT, DOC, DOCX), converting PDF pages to images, splitting PDFs into individual pages, and selecting specific images from batches. Features include text extraction, image conversion, and seamless integration with existing ComfyUI projects." + }, + { + "author": "Indra's Mirror", + "title": "ComfyUI-Lumina-Next-SFT-DiffusersWrapper", + "reference": "https://github.com/Excidos/ComfyUI-Lumina-Next-SFT-DiffusersWrapper", + "files": [ + "https://github.com/Excidos/ComfyUI-Lumina-Next-SFT-DiffusersWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI-Lumina-Next-SFT-DiffusersWrapper is a custom node for ComfyUI that integrates the advanced Lumina-Next-SFT model. It offers high-quality image generation with features like time-aware scaling, optional ODE sampling, and support for high-resolution outputs. This node brings the power of the Lumina text-to-image pipeline directly into ComfyUI workflows, allowing for flexible and powerful image generation capabilities." + }, + { + "author": "Expo", + "title": "LM Studio Image to Text Node for ComfyUI", + "id": "comfyui-lmstudio-image-to-text-node", + "reference": "https://github.com/mattjohnpowell/comfyui-lmstudio-image-to-text-node", + "files": [ + "https://github.com/mattjohnpowell/comfyui-lmstudio-image-to-text-node" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that integrates LM Studio's vision models to generate text descriptions of images. It provides a flexible and customizable way to add image-to-text capabilities to your ComfyUI workflows, working with LM Studio's local API." + }, + { + "author": "injet-zhou", + "title": "comfyui_extra_api", + "reference": "https://github.com/injet-zhou/comfyui_extra_api", + "files": [ + "https://github.com/injet-zhou/comfyui_extra_api" + ], + "install_type": "git-clone", + "description": "Add more endpoints to make easy for utilizing ComfyUI API." + }, + { + "author": "leestuartx", + "title": "ComfyUI-GG", + "reference": "https://github.com/leestuartx/ComfyUI-GG", + "files": [ + "https://github.com/leestuartx/ComfyUI-GG" + ], + "install_type": "git-clone", + "description": "ComfyUI-GG is a collection of ComfyUI nodes designed to enhance productivity in image processing workflows. This plugin provides a set of custom nodes that perform various image manipulations and metadata extractions to streamline your tasks." + }, + { + "author": "mgfxer", + "title": "ComfyUI-FrameFX", + "reference": "https://github.com/mgfxer/ComfyUI-FrameFX", + "files": [ + "https://github.com/mgfxer/ComfyUI-FrameFX" + ], + "install_type": "git-clone", + "description": "A set of custom nodes for frame interpolation and video processing in ComfyUI." + }, + { + "author": "Cyberschorsch", + "title": "ComfyUI Checkpoint Loader Config", + "reference": "https://github.com/Cyberschorsch/ComfyUI-checkpoint-config-loader", + "files": [ + "https://github.com/Cyberschorsch/ComfyUI-checkpoint-config-loader" + ], + "install_type": "git-clone", + "description": "Provides a custom node to load config for sampler nodes from a yaml file." + }, + { + "author": "fearnworks", + "title": "Fearnworks Nodes", + "id": "fearnworks", + "reference": "https://github.com/fearnworks/ComfyUI_FearnworksNodes", + "files": [ + "https://github.com/fearnworks/ComfyUI_FearnworksNodes" + ], + "install_type": "git-clone", + "description": "This extension provides various nodes to support multimodal workflows." + }, + { + "author": "807502278", + "title": "ComfyUI-3D-MeshTool", + "id": "3D-MeshTool", + "reference": "https://github.com/807502278/ComfyUI-3D-MeshTool", + "files": [ + "https://github.com/807502278/ComfyUI-3D-MeshTool" + ], + "install_type": "git-clone", + "description": "A simple 3D model processing tool within ComfyUI." + }, + { + "author": "807502278", + "title": "ComfyUI-WJNodes", + "reference": "https://github.com/807502278/ComfyUI-WJNodes", + "files": [ + "https://github.com/807502278/ComfyUI-WJNodes" + ], + "install_type": "git-clone", + "description": "Ready to use upon download. No need to install dependencies for the time being.\nIf there are new functions or suggestions, please provide feedback.\nAttention! The delfile node is not recommended for use on servers. I am not responsible for any losses incurred." + }, + { + "author": "807502278", + "title": "ComfyUI_MaskGCT", + "reference": "https://github.com/807502278/ComfyUI_MaskGCT", + "files": [ + "https://github.com/807502278/ComfyUI_MaskGCT" + ], + "install_type": "git-clone", + "description": "Suitable for Windows - MaskGCT ComfyUI Node Wrapping" + }, + { + "author": "JackEllie", + "title": "ComfyUI-AI-Assistant", + "id": "AI-Assistant", + "reference": "https://github.com/JackEllie/ComfyUI_AI_Assistant", + "files": [ + "https://github.com/JackEllie/ComfyUI_AI_Assistant" + ], + "install_type": "git-clone", + "description": "ComfyUI native implementation of [a/AI-Assistant](https://github.com/tori29umai0123/AI-Assistant)." + }, + { + "author": "APZmedia", + "title": "APZmedia Naming Tools", + "reference": "https://github.com/APZmedia/ComfyUI-APZmedia-cleanName-from-string", + "files": [ + "https://github.com/APZmedia/ComfyUI-APZmedia-cleanName-from-string" + ], + "install_type": "git-clone", + "description": "A comprehensive set of naming tools for ComfyUI to build, sanitize, and manage file names and paths." + }, + { + "author": "APZmedia", + "title": "APZmedia Fast Image Save Node", + "reference": "https://github.com/APZmedia/APZmedia-comfyui-fast-image-save", + "files": [ + "https://github.com/APZmedia/APZmedia-comfyui-fast-image-save" + ], + "install_type": "git-clone", + "description": "This node for ComfyUI allows saving images with an optional alpha channel (transparency). It supports saving images in formats like PNG, JPEG, and WebP." + }, + { + "author": "APZmedia", + "title": "APZmedia Together Image Generator for ComfyUI", + "reference": "https://github.com/APZmedia/APZmedia-comfy-together-lora", + "files": [ + "https://github.com/APZmedia/APZmedia-comfy-together-lora" + ], + "install_type": "git-clone", + "description": "A ComfyUI node to implement Together AI API image generation" + }, + { + "author": "N3rd00d", + "title": "ComfyUI-Paint3D-Nodes", + "id": "paint3d", + "reference": "https://github.com/N3rd00d/ComfyUI-Paint3D-Nodes", + "files": [ + "https://github.com/N3rd00d/ComfyUI-Paint3D-Nodes" + ], + "install_type": "git-clone", + "description": "Paint3D Nodes is a custom ComfyUI node for 3D model texture inpainting based on [a/Paint3D](https://arxiv.org/pdf/2312.13913)." + }, + { + "author": "sn0w12", + "title": "ComfyUI-Sn0w-Scripts", + "reference": "https://github.com/sn0w12/ComfyUI-Sn0w-Scripts", + "files": [ + "https://github.com/sn0w12/ComfyUI-Sn0w-Scripts" + ], + "install_type": "git-clone", + "description": "A collection of nodes and improvements created for general ease and lora management. These are just nodes I made and found useful, they should work with most other nodes. Most nodes that take in a prompt are made with booru tags in mind and might not work as expected with other prompts." + }, + { + "author": "sn0w12", + "title": "ComfyUI-Syntax-Highlighting", + "reference": "https://github.com/sn0w12/ComfyUI-Syntax-Highlighting", + "files": [ + "https://github.com/sn0w12/ComfyUI-Syntax-Highlighting" + ], + "install_type": "git-clone", + "description": "Syntax highlighting and other quality of life improvements for ComfyUI." + }, + { + "author": "MiaoshouAI", + "title": "ComfyUI-Miaoshouai-Tagger", + "id": "miaoshouai-tagger", + "reference": "https://github.com/miaoshouai/ComfyUI-Miaoshouai-Tagger", + "files": [ + "https://github.com/miaoshouai/ComfyUI-Miaoshouai-Tagger" + ], + "install_type": "git-clone", + "description": "Nodes to use Florence2 VLM for image tagging and captioning" + }, + { + "author": "MiaoshouAI", + "title": "ComfyUI Video Segmentation Node", + "reference": "https://github.com/miaoshouai/ComfyUI-Video-Segmentation", + "files": [ + "https://github.com/miaoshouai/ComfyUI-Video-Segmentation" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for automatic video scene segmentation using TransNetV2." + }, + { + "author": "Patricio Gonzalez Vivo", + "title": "GLSL Nodes", + "reference": "https://github.com/patriciogonzalezvivo/comfyui_glslnodes", + "files": [ + "https://github.com/patriciogonzalezvivo/comfyui_glslnodes" + ], + "install_type": "git-clone", + "description": "A collections of nodes to support GLSL shaders inside a workflow. Provides nodes: glslViewer, glslEditor, glslEditorPro, int, float, vec2, vec3 and vec4." + }, + { + "author": "2kpr", + "title": "ComfyUI-UltraPixel", + "id": "comfyui-ultrapixel", + "reference": "https://github.com/2kpr/ComfyUI-UltraPixel", + "files": [ + "https://github.com/2kpr/ComfyUI-UltraPixel" + ], + "install_type": "git-clone", + "description": "Implementation of UltraPixel on ComfyUI" + }, + { + "author": "LightSketch-ai", + "title": "ComfyUI-LivePortraitNode (Replicate API)", + "id": "lightsketchlp", + "reference": "https://github.com/LightSketch-ai/ComfyUI-LivePortraitNode", + "files": [ + "https://github.com/LightSketch-ai/ComfyUI-LivePortraitNode" + ], + "install_type": "git-clone", + "description": "Two simple to install nodes to get Live Portrait working in ComfyUI without the need for a fancy GPU (Replicate account needed)." + }, + { + "author": "aaronchm", + "title": "z-a1111-sd-webui-DanTagGen", + "id": "z-a1111-sd-webui-DanTagGen", + "reference": "https://github.com/Aaron-CHM/ComfyUI-z-a1111-sd-webui-DanTagGen", + "files": [ + "https://github.com/Aaron-CHM/ComfyUI-z-a1111-sd-webui-DanTagGen" + ], + "install_type": "git-clone", + "description": "Improved DanTagGen implementation that posesses all functionality of the A1111 webui extension." + }, + { + "author": "mikebilly", + "title": "Transparent-background-comfyUI", + "id": "transparent-background-comfyui", + "reference": "https://github.com/mikebilly/Transparent-background-comfyUI", + "files": [ + "https://github.com/mikebilly/Transparent-background-comfyUI" + ], + "install_type": "git-clone", + "description": "Removes background using Transparent Background" + }, + { + "author": "un-seen", + "title": "comfyui-tensorop", + "id": "comfyui-tensorop", + "reference": "https://github.com/un-seen/comfyui-tensorops", + "files": [ + "https://github.com/un-seen/comfyui-tensorops" + ], + "install_type": "git-clone", + "description": "Nodes to perform tensor operations in ComfyUI" + }, + { + "author": "un-seen", + "title": "ComfyUI Segment Anything", + "reference": "https://github.com/un-seen/comfyui_segment_anything_plus", + "files": [ + "https://github.com/un-seen/comfyui_segment_anything_plus" + ], + "install_type": "git-clone", + "description": "This project is a ComfyUI version of [a/sd-webui-segment-anything](https://github.com/continue-revolution/sd-webui-segment-anything). At present, only the most core functionalities have been implemented. I would like to express my gratitude to [a/continue-revolution](https://github.com/continue-revolution) for their preceding work on which this is based." + }, + { + "author": "john-mnz", + "title": "ComfyUI-Inspyrenet-Rembg", + "id": "inspyrenet", + "reference": "https://github.com/john-mnz/ComfyUI-Inspyrenet-Rembg", + "files": [ + "https://github.com/john-mnz/ComfyUI-Inspyrenet-Rembg" + ], + "install_type": "git-clone", + "description": "ComfyUI node for background removal, implementing [a/InSPyReNet](https://github.com/plemeri/InSPyReNet)" + }, + { + "author": "Koushakur", + "title": "ComfyUI-DenoiseChooser", + "id": "denoise-chooser", + "reference": "https://github.com/Koushakur/ComfyUI-DenoiseChooser", + "files": [ + "https://github.com/Koushakur/ComfyUI-DenoiseChooser" + ], + "install_type": "git-clone", + "description": "The latent gets passed straight through unaltered, if it's empty (i.e from a 'Empty Latent Image' node) FLOAT outputs the first value, otherwise it outputs the second value" + }, + { + "author": "ycchanau", + "title": "ComfyUI Preview Magnifier", + "id": "magnifier", + "reference": "https://github.com/ycchanau/ComfyUI_Preview_Magnifier", + "files": [ + "https://github.com/ycchanau/ComfyUI_Preview_Magnifier" + ], + "install_type": "git-clone", + "description": "Custom nodes that preview image with a magnifier." + }, + { + "author": "lrzjason", + "title": "Comfyui Kolors Utils", + "reference": "https://github.com/lrzjason/Comfyui-Kolors-Utils", + "files": [ + "https://github.com/lrzjason/Comfyui-Kolors-Utils" + ], + "install_type": "git-clone", + "description": "NODES: Save Weight As Kolors Unet, Save Kolors" + }, + { + "author": "lrzjason", + "title": "Comfyui-In-Context-Lora-Utils", + "reference": "https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils", + "files": [ + "https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils" + ], + "install_type": "git-clone", + "description": "NODES: Add Mask For IC Lora, Create Context Window, Concatenate Context Window, Auto Patch" + }, + { + "author": "lrzjason", + "title": "ComfyUIJasonNode", + "reference": "https://github.com/lrzjason/ComfyUIJasonNode", + "files": [ + "https://raw.githubusercontent.com/lrzjason/ComfyUIJasonNode/main/SDXLMixSampler.py", + "https://raw.githubusercontent.com/lrzjason/ComfyUIJasonNode/main/LatentByRatio.py" + ], + "install_type": "copy", + "description": "NODES: SDXLMixSampler, LatentByRatio" + }, + { + "author": "lrzjason", + "title": "Comfyui-ThinkRemover", + "reference": "https://github.com/lrzjason/Comfyui-ThinkRemover", + "files": [ + "https://github.com/lrzjason/Comfyui-ThinkRemover" + ], + "install_type": "git-clone", + "description": "Remove content inside 'think' tag from reasoning llm" + }, + { + "author": "lrzjason", + "title": "ComfyUI Watermark Detection Node", + "reference": "https://github.com/lrzjason/ComfyUI-Watermark-Detection", + "files": [ + "https://github.com/lrzjason/ComfyUI-Watermark-Detection" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI provides watermark detection capabilities using a YOLO model trained by [a/fancyfeast](https://huggingface.co/fancyfeast), the creator of JoyCaption. The model is originally hosted at [a/Hugging Face Space](https://huggingface.co/spaces/fancyfeast/joycaption-watermark-detection)." + }, + { + "author": "cozy_comm", + "title": "Cozy Communication", + "id": "cozy_comm", + "reference": "https://github.com/cozy-comfyui/cozy_comm", + "files": [ + "https://github.com/cozy-comfyui/cozy_comm" + ], + "nodename_pattern": " \\(cozy\\)", + "install_type": "git-clone", + "description": "Post images and video to Discord. Nodes to facilitate communication using REST." + }, + { + "author": "RhizoNymph", + "title": "ComfyUI-Latte", + "id": "latte", + "reference": "https://github.com/RhizoNymph/ComfyUI-Latte", + "files": [ + "https://github.com/RhizoNymph/ComfyUI-Latte" + ], + "install_type": "git-clone", + "description": "Nodes to use [a/latte](https://github.com/Vchitect/Latte) for text to video generation" + }, + { + "author": "RhizoNymph", + "title": "ComfyUI-CLIPSlider", + "id": "clipslider", + "reference": "https://github.com/RhizoNymph/ComfyUI-CLIPSlider", + "files": [ + "https://github.com/RhizoNymph/ComfyUI-CLIPSlider" + ], + "install_type": "git-clone", + "description": "A node to replicate [a/https://huggingface.co/spaces/latentexplorers/latentnavigation-flux](A node to replicate https://huggingface.co/spaces/latentexplorers/latentnavigation-flux)" + }, + { + "author": "RhizoNymph", + "title": "ComfyUI-ColorWheel", + "reference": "https://github.com/RhizoNymph/ComfyUI-ColorWheel", + "files": [ + "https://github.com/RhizoNymph/ComfyUI-ColorWheel" + ], + "install_type": "git-clone", + "description": "NODES:Color Wheel Generator" + }, + { + "author": "Marksusu", + "title": "ComfyUI_MTCLIPEncode", + "id": "mtclipencode", + "reference": "https://github.com/Marksusu/ComfyUI_MTCLIPEncode", + "files": [ + "https://github.com/Marksusu/ComfyUI_MTCLIPEncode" + ], + "install_type": "git-clone", + "description": "MTCLIPEncode: An extension for ComfyUI's CLIPTextEncode node, offering multilingual translation (using MarianMT) and prompt enhancement (using Ollama). Seamlessly translate your native language prompts into English and further optimize them for generating your desired images with Stable Diffusion. Supports Krita AI Diffusion." + }, + { + "author": "fssorc", + "title": "ComfyUI_FaceShaper", + "id": "facesharper", + "reference": "https://github.com/fssorc/ComfyUI_FaceShaper", + "files": [ + "https://github.com/fssorc/ComfyUI_FaceShaper" + ], + "install_type": "git-clone", + "description": "Match two faces' shape before using other face swap nodes\nFace-swapping tools typically only replace facial features during the swap, without altering the facial shape. When there is a significant difference in facial shape between the target person and the person in the original photo, the result of the face swap is less satisfactory.\nThis project is a small script that can first liquefy and stretch the face in the original photo according to the horizontal and vertical proportions of the target person's facial contour. The resulting image can be used as input for other face-swapping nodes." + }, + { + "author": "fssorc", + "title": "ComfyUI_pose_inter", + "reference": "https://github.com/fssorc/ComfyUI_pose_inter", + "files": [ + "https://github.com/fssorc/ComfyUI_pose_inter" + ], + "install_type": "git-clone", + "description": "Generate transition frames between two character posture images. The prerequisite for running is to have installed comfyui_controlnet_aux, using its Open Pose or DWPose preprocessor" + }, + { + "author": "fssorc", + "title": "ComfyUI_FFT", + "reference": "https://github.com/fssorc/ComfyUI_FFT", + "files": [ + "https://github.com/fssorc/ComfyUI_FFT" + ], + "install_type": "git-clone", + "description": "Perform a Fast Fourier Transform on the image, and then users can freely select the filtering range to filter the image. The main function is to remove the grid patterns on the image, and it can also perform high-pass filtering and low-pass filtering. The detailed workflow is shown in the figure below. The PNG file contains the ComfyUI workflow.The working principle is similar to the FFT filter in Photoshop." + }, + { + "author": "fssorc", + "title": "ComfyUI_RopeWrapper", + "reference": "https://github.com/fssorc/ComfyUI_RopeWrapper", + "files": [ + "https://github.com/fssorc/ComfyUI_RopeWrapper" + ], + "install_type": "git-clone", + "description": "Wrap Rope into ComfyUI, do a little change to use in ComfyUI. All credit goes to Hillobar and his ROPE [ㅁ/https://github.com/Hillobar/Rope](https://github.com/Hillobar/Rope)" + }, + { + "author": "BetaDoggo", + "title": "ComfyUI YetAnotherSafetyChecker", + "id": "yetanothersafetychecker", + "reference": "https://github.com/BetaDoggo/ComfyUI-YetAnotherSafetyChecker", + "files": [ + "https://github.com/BetaDoggo/ComfyUI-YetAnotherSafetyChecker" + ], + "install_type": "git-clone", + "description": "Just a simple node to filter out NSFW outputs. This node utilizes [a/AdamCodd/vit-base-nsfw-detector](https://huggingface.co/AdamCodd/vit-base-nsfw-detector) to score the outputs. I chose this model because it's small, fast, and performed very well in my testing. Nudity tends to be scored in the 0.95+ range, but I've set the default to 0.8 as a safe baseline." + }, + { + "author": "BetaDoggo", + "title": "neggles/ComfyUI-WDV-Nodes [gist-wrapper]", + "reference": "https://github.com/BetaDoggo/ComfyUI-WDV-Nodes", + "files": [ + "https://github.com/BetaDoggo/ComfyUI-WDV-Nodes" + ], + "install_type": "git-clone", + "description": "100% of code taken from [a/https://gist.github.com/neggles/ecb6327251a9e274428d07636c727eb9](https://gist.github.com/neggles/ecb6327251a9e274428d07636c727eb9)." + }, + { + "author": "BetaDoggo", + "title": "ComfyUI Video Player", + "id": "videoplayer", + "reference": "https://github.com/BetaDoggo/ComfyUI-VideoPlayer", + "files": [ + "https://github.com/BetaDoggo/ComfyUI-VideoPlayer" + ], + "install_type": "git-clone", + "description": "A silly POC Video Player for ComfyUI" + }, + { + "author": "BetaDoggo", + "title": "Gatcha Embeddings", + "reference": "https://github.com/BetaDoggo/ComfyUI-Gatcha-Embedding", + "files": [ + "https://github.com/BetaDoggo/ComfyUI-Gatcha-Embedding" + ], + "install_type": "git-clone", + "description": "A revolutionary technique for increasing output variety." + }, + { + "author": "BetaDoggo", + "title": "ComfyUI-FastSDCPU", + "reference": "https://github.com/BetaDoggo/ComfyUI-FastSDCPU", + "files": [ + "https://github.com/BetaDoggo/ComfyUI-FastSDCPU" + ], + "install_type": "git-clone", + "description": "A set of nodes for interfacing with the FastSDCPU webserver." + }, + { + "author": "BetaDoggo", + "title": "ComfyUI-Cloud-APIs", + "reference": "https://github.com/BetaDoggo/ComfyUI-Cloud-APIs", + "files": [ + "https://github.com/BetaDoggo/ComfyUI-Cloud-APIs" + ], + "install_type": "git-clone", + "description": "Nodes for using models from online providers. Flux, Auraflow, SoteDiffusion, etc." + }, + { + "author": "WX-NPS1598", + "title": "Auto Crop By NPS", + "id": "autocrop-nps", + "reference": "https://github.com/WX-NPS1598/ComfyUI-Auto_Crop_By_NPS", + "files": [ + "https://github.com/WX-NPS1598/ComfyUI-Auto_Crop_By_NPS" + ], + "install_type": "git-clone", + "description": "A very useful automatic cropping tool! It can realize cropping, expansion and rotation functions in the form of a slider. " + }, + { + "author": "googincheng", + "title": "ComfyUX", + "id": "comfyux", + "reference": "https://github.com/googincheng/ComfyUX", + "files": [ + "https://github.com/googincheng/ComfyUX" + ], + "install_type": "git-clone", + "description": "Better user experience plugin for ComfyUI." + }, + { + "author": "wootwootwootwoot", + "title": "ComfyUI-RK-Sampler", + "id": "rk_sampler", + "reference": "https://github.com/wootwootwootwoot/ComfyUI-RK-Sampler", + "reference2": "https://github.com/memmaptensor/ComfyUI-RK-Sampler", + "files": [ + "https://github.com/wootwootwootwoot/ComfyUI-RK-Sampler" + ], + "install_type": "git-clone", + "description": "Batched Runge-Kutta Samplers for ComfyUI" + }, + { + "author": "Fantasy AI Studio", + "title": "FAI-Node", + "id": "FAI-Node", + "reference": "https://github.com/alanhuang67/ComfyUI-FAI-Node", + "files": [ + "https://github.com/alanhuang67/ComfyUI-FAI-Node" + ], + "install_type": "git-clone", + "description": "Various custom nodes for ComfyUI" + }, + { + "author": "MuziekMagie", + "title": "ComfyUI-Matchering", + "id": "matchering", + "reference": "https://github.com/MuziekMagie/ComfyUI-Matchering", + "files": [ + "https://github.com/MuziekMagie/ComfyUI-Matchering" + ], + "install_type": "git-clone", + "description": "A [a/Matchering](https://github.com/sergree/matchering)-node for ComfyUI.\nNOTE: You take TWO audio files and feed them into Matchering" + }, + { + "author": "Mintbeer96", + "title": "ComfyUI-KerasOCR", + "reference": "https://github.com/Mintbeer96/ComfyUI-KerasOCR", + "files": [ + "https://github.com/Mintbeer96/ComfyUI-KerasOCR" + ], + "install_type": "git-clone", + "description": "An OCR node for detect text in image and returns covering mask." + }, + { + "author": "pikenrover", + "title": "ComfyUI_PRNodes", + "reference": "https://github.com/pikenrover/ComfyUI_PRNodes", + "files": [ + "https://github.com/pikenrover/ComfyUI_PRNodes" + ], + "install_type": "git-clone", + "description": "Nodes:RandomPrompt, RandomPromptMixed, ImageScaleTo, EmptyLatentImageScaleBy, LoraLoaderExtended, Save Image w/Metadata, CheckpointLoaderSimpleExtended" + }, + { + "author": "EnragedAntelope", + "title": "ComfyUI-Doubutsu-Describer", + "reference": "https://github.com/EnragedAntelope/ComfyUI-Doubutsu-Describer", + "files": [ + "https://github.com/EnragedAntelope/ComfyUI-Doubutsu-Describer" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows you to use the Doubutsu small VLM model to describe images. Credit and further information on Doubutsu: [a/https://huggingface.co/qresearch/doubutsu-2b-pt-756](https://huggingface.co/qresearch/doubutsu-2b-pt-756)" + }, + { + "author": "EnragedAntelope", + "title": "ComfyUI-ConstrainResolution", + "reference": "https://github.com/EnragedAntelope/ComfyUI-ConstrainResolution", + "files": [ + "https://github.com/EnragedAntelope/ComfyUI-ConstrainResolution" + ], + "install_type": "git-clone", + "description": "Given min/max resolution constraints, this automatically suggests optimal dimensions while preserving aspect ratio. Ideal for Image to Image (I2I) and Image to Video (I2V) workflows!" + }, + { + "author": "EnragedAntelope", + "title": "ComfyUI-EACloudNodes", + "reference": "https://github.com/EnragedAntelope/ComfyUI-EACloudNodes", + "files": [ + "https://github.com/EnragedAntelope/ComfyUI-EACloudNodes" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI custom nodes for interacting with various cloud services. These nodes are designed to work with any ComfyUI instance, including cloud-hosted environments (such as MimicPC) where users may have limited system access." + }, + { + "author": "EnragedAntelope", + "title": "ComfyUI-ReLight", + "reference": "https://github.com/EnragedAntelope/comfyui-relight", + "files": [ + "https://github.com/EnragedAntelope/comfyui-relight" + ], + "install_type": "git-clone", + "description": "Transform your images with cinematic lighting effects in a single click! ReLight is a powerful ComfyUI node that adds professional-grade lighting capabilities including multiple light sources, rim lighting, and 3D lighting simulation." + }, + { + "author": "jn-jairo", + "title": "JNComfy", + "reference": "https://github.com/jn-jairo/jn_comfyui", + "files": [ + "https://github.com/jn-jairo/jn_comfyui" + ], + "install_type": "git-clone", + "description": "ComfyUI extension with patches and nodes.\nPatches:Preview device, Extension device, Temperature, Memory estimation, Optimizations, Easy generic inputs, Easy multiple inputs.\nNODES: Image nodes, Image/Area nodes, Image/Blip nodes, Image/Face nodes, Sampling nodes, Patch nodes, Primitive nodes, Primitive/Conversion nodes, Primitive/Process nodes, Workflow nodes, etc..." + }, + { + "author": "akierson", + "title": "comfyui-colornodes", + "reference": "https://github.com/akierson/comfyui-colornodes", + "files": [ + "https://github.com/akierson/comfyui-colornodes" + ], + "install_type": "git-clone", + "description": "Basic Color Nodes for ComfyUI" + }, + { + "author": "akierson", + "title": "ComfyUI-textnodes", + "reference": "https://github.com/akierson/ComfyUI-textnodes", + "files": [ + "https://github.com/akierson/ComfyUI-textnodes" + ], + "install_type": "git-clone", + "description": "Misc Text Nodes for Comfy UI" + }, + { + "author": "ai-shizuka", + "title": "ComfyUI-tbox", + "reference": "https://github.com/ai-shizuka/ComfyUI-tbox", + "files": [ + "https://github.com/ai-shizuka/ComfyUI-tbox" + ], + "install_type": "git-clone", + "description": "Nodes:ImageLoader, ImageSaver, ImagesSaver, ImageResize, ImageSize, GFPGANNode, MaskAddNode, Video Load, ..." + }, + { + "author": "neverbiasu", + "title": "ComfyUI-Image-Captioner", + "id": "image-captioner", + "reference": "https://github.com/neverbiasu/ComfyUI-Image-Captioner", + "files": [ + "https://github.com/neverbiasu/ComfyUI-Image-Captioner" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension for generating captions for your images. Runs on your own system, no external services used, no filter.\nUses various VLMs with APIs to generate captions for images. You can give instructions or ask questions in natural language." + }, + { + "author": "neverbiasu", + "title": "ComfyUI SAM2(Segment Anything 2)", + "id": "sam2", + "reference": "https://github.com/neverbiasu/ComfyUI-SAM2", + "files": [ + "https://github.com/neverbiasu/ComfyUI-SAM2" + ], + "install_type": "git-clone", + "description": "This project adapts the SAM2 to incorporate functionalities from [a/comfyui_segment_anything](https://github.com/storyicon/comfyui_segment_anything). Many thanks to continue-revolution for their foundational work." + }, + { + "author": "neverbiasu", + "title": "ComfyUI-StyleShot", + "reference": "https://github.com/neverbiasu/ComfyUI-StyleShot", + "files": [ + "https://github.com/neverbiasu/ComfyUI-StyleShot" + ], + "install_type": "git-clone", + "description": "This project integrates [a/StyleShot](https://github.com/open-mmlab/StyleShot) functionality into ComfyUI, thanks to the foundational work by continue-revolution." + }, + { + "author": "neverbiasu", + "title": "ComfyUI-Dashscope", + "reference": "https://github.com/neverbiasu/ComfyUI-Dashscope", + "files": [ + "https://github.com/neverbiasu/ComfyUI-Dashscope" + ], + "install_type": "git-clone", + "description": "This project adapts the dashscope([a/aliyun-bailian](https://bailian.console.aliyun.com)) api into ComfyUI." + }, + { + "author": "neverbiasu", + "title": "ComfyUI-ChatTTS", + "reference": "https://github.com/neverbiasu/ComfyUI-ChatTTS", + "files": [ + "https://github.com/neverbiasu/ComfyUI-ChatTTS" + ], + "install_type": "git-clone", + "description": "A ComfyUI integration for [a/ChatTTS](https://github.com/2noise/ChatTTS), enabling high-quality, controllable text-to-speech generation directly in your ComfyUI workflows." + }, + { + "author": "neverbiasu", + "title": "ComfyUI-BAGEL", + "reference": "https://github.com/neverbiasu/ComfyUI-BAGEL", + "files": [ + "https://github.com/neverbiasu/ComfyUI-BAGEL" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node package based on the BAGEL-7B-MoT multimodal model." + }, + { + "author": "neverbiasu", + "title": "ComfyUI-Ovis-U1", + "reference": "https://github.com/neverbiasu/ComfyUI-Ovis-U1", + "files": [ + "https://github.com/neverbiasu/ComfyUI-Ovis-U1" + ], + "install_type": "git-clone", + "description": "This repository adds ComfyUI custom nodes that wrap the Ovis-U1 multimodal model, exposing three primary workflows inside the ComfyUI editor." + }, + { + "author": "var1ableX", + "title": "ComfyUI_Accessories", + "reference": "https://github.com/var1ableX/ComfyUI_Accessories", + "files": [ + "https://github.com/var1ableX/ComfyUI_Accessories" + ], + "install_type": "git-clone", + "description": "Get Mask Dimensions" + }, + { + "author": "Makki_Shizu", + "title": "comfyui_reimgsize", + "id": "reimgsize", + "reference": "https://github.com/MakkiShizu/comfyui_reimgsize", + "files": [ + "https://github.com/MakkiShizu/comfyui_reimgsize" + ], + "install_type": "git-clone", + "description": "a simple resize image node(s) in comfyui. This repository is not specific to the length and width values of an image, but focuses more on adjusting the total pixel count, side length specifications, and size ratios of the image." + }, + { + "author": "Makki_Shizu", + "title": "ComfyUI-Prompt-Wildcards", + "id": "Prompt-Wildcards", + "reference": "https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards", + "files": [ + "https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards" + ], + "install_type": "git-clone", + "description": "Optional wildcards in ComfyUI" + }, + { + "author": "Makki_Shizu", + "title": "ComfyUI-Qwen2_5-VL", + "id": "Qwen2_5-VL", + "reference": "https://github.com/MakkiShizu/ComfyUI-Qwen2_5-VL", + "files": [ + "https://github.com/MakkiShizu/ComfyUI-Qwen2_5-VL" + ], + "install_type": "git-clone", + "description": "Qwen2.5-VL in ComfyUI" + }, + { + "author": "Makki_Shizu", + "title": "ComfyUI-MakkiTools", + "id": "MakkiTools", + "reference": "https://github.com/MakkiShizu/ComfyUI-MakkiTools", + "files": [ + "https://github.com/MakkiShizu/ComfyUI-MakkiTools" + ], + "install_type": "git-clone", + "description": "Makki's self custom nodes for ComfyUI." + }, + { + "author": "JosefKuchar", + "title": "ComfyUI-AdvancedTiling", + "reference": "https://github.com/JosefKuchar/ComfyUI-AdvancedTiling", + "files": [ + "https://github.com/JosefKuchar/ComfyUI-AdvancedTiling" + ], + "install_type": "git-clone", + "description": "Advanced tiling of various shapes for ComfyUI" + }, + { + "author": "Parameshvadivel", + "title": "ComfyUI-SVGview", + "id": "svgview", + "reference": "https://github.com/Parameshvadivel/ComfyUI-SVGview", + "files": [ + "https://github.com/Parameshvadivel/ComfyUI-SVGview" + ], + "install_type": "git-clone", + "description": "Nodes:Preview SVG" + }, + { + "author": "Visionatrix", + "title": "ComfyUI-Visionatrix", + "id": "visionatrix", + "reference": "https://github.com/Visionatrix/ComfyUI-Visionatrix", + "files": [ + "https://github.com/Visionatrix/ComfyUI-Visionatrix" + ], + "install_type": "git-clone", + "description": "The ComfyUI-Visionatrix nodes are designed for convenient ComfyUI to [a/Visionatrix](https://github.com/Visionatrix/Visionatrix) workflow support migration, in particular to extract prompt input params (input, textarea, checkbox, select, range, file) to be used in simplified Visionatrix UI." + }, + { + "author": "Visionatrix", + "title": "ComfyUI-RemoteVAE", + "reference": "https://github.com/Visionatrix/ComfyUI-RemoteVAE", + "files": [ + "https://github.com/Visionatrix/ComfyUI-RemoteVAE" + ], + "install_type": "git-clone", + "description": "ComfyUI Nodes for Remote VAE Decoding." + }, + { + "author": "Visionatrix", + "title": "ComfyUI-Gemini", + "reference": "https://github.com/Visionatrix/ComfyUI-Gemini", + "files": [ + "https://github.com/Visionatrix/ComfyUI-Gemini" + ], + "install_type": "git-clone", + "description": "Nodes for Google Gemini API, focusing on backward compatibility and stability within ComfyUI." + }, + { + "author": "liangt", + "title": "comfyui-loadimagewithsubfolder", + "reference": "https://github.com/liangt/comfyui-loadimagewithsubfolder", + "files": [ + "https://github.com/liangt/comfyui-loadimagewithsubfolder" + ], + "install_type": "git-clone", + "description": "Extend LoadImage node with subfolder support" + }, + { + "author": "vault-developer", + "title": "ImageBlender", + "reference": "https://github.com/vault-developer/comfyui-image-blender", + "files": [ + "https://github.com/vault-developer/comfyui-image-blender" + ], + "install_type": "git-clone", + "description": "ComfyuiImageBlender is a custom node for ComfyUI. It may be used to blend two images together using a specified blending mode." + }, + { + "author": "gisu", + "title": "foxpack", + "id": "foxp", + "reference": "https://github.com/gisu/comfyui-foxpack", + "files": [ + "https://github.com/gisu/comfyui-foxpack" + ], + "install_type": "git-clone", + "description": "Collection of nodes for the automation of workflows" + }, + { + "author": "webfiltered", + "title": "WTF? - a debug node for ComfyUI", + "id": "debugnode", + "reference": "https://github.com/webfiltered/DebugNode-ComfyUI", + "files": [ + "https://github.com/webfiltered/DebugNode-ComfyUI" + ], + "install_type": "git-clone", + "description": "This node provides a simple way to view the output of many nodes, without leaving ComfyUI." + }, + { + "author": "pzc163", + "title": "Comfyui-CatVTON", + "id": "comfyui-catvton", + "reference": "https://github.com/pzc163/Comfyui-CatVTON", + "files": [ + "https://github.com/pzc163/Comfyui-CatVTON" + ], + "install_type": "git-clone", + "description": "Comfyui-CatVTON This repository is the modified official Comfyui node of CatVTON, which is a simple and efficient virtual try-on diffusion model with 1) Lightweight Network (899.06M parameters totally), 2) Parameter-Efficient Training (49.57M parameters trainable) 3) Simplified Inference (< 8G VRAM for 1024X768 resolution).\nThe original GitHub project is [a/https://github.com/Zheng-Chong/CatVTON](https://github.com/Zheng-Chong/CatVTON)" + }, + { + "author": "pzc163", + "title": "Comfyui_MiniCPMv2_6-prompt-generator", + "id": "Comfyui_MiniCPMv2_6-prompt-generator", + "reference": "https://github.com/pzc163/Comfyui_MiniCPMv2_6-prompt-generator", + "files": [ + "https://github.com/pzc163/Comfyui_MiniCPMv2_6-prompt-generator" + ], + "install_type": "git-clone", + "description": "This is an implementation of [MiniCPMv2_6-prompt-generator](https://huggingface.co/pzc163/MiniCPMv2_6-prompt-generator) by [ComfyUI](https://github.com/comfyanonymous/ComfyUI), including support for single-image caption, generate prompt by upload image and batch-images Prompt generation." + }, + { + "author": "aisabervisionlab", + "title": "ComfyUI_merge_ASVL", + "id": "merge-asvl", + "reference": "https://github.com/aisabervisionlab/ComfyUI_merge_ASVL", + "files": [ + "https://github.com/aisabervisionlab/ComfyUI_merge_ASVL" + ], + "install_type": "git-clone", + "description": "This is a simple node for connecting images. For pictures of the same size, users can choose to fill in vertical in the parameter to connect the pictures vertically or fill in horizontal to connect the pictures horizontally." + }, + { + "author": "akatz-ai", + "title": "Akatz Custom Nodes", + "id": "akatz-ai", + "reference": "https://github.com/akatz-ai/ComfyUI-AKatz-Nodes", + "files": [ + "https://github.com/akatz-ai/ComfyUI-AKatz-Nodes" + ], + "install_type": "git-clone", + "description": "Simple custom node pack for nodes I use in my workflows. Includes Dilate Mask Linear for animating masks." + }, + { + "author": "akatz-ai", + "title": "🌊 Depthflow Nodes", + "id": "depthflow-akatz-ai", + "reference": "https://github.com/akatz-ai/ComfyUI-Depthflow-Nodes", + "files": [ + "https://github.com/akatz-ai/ComfyUI-Depthflow-Nodes" + ], + "install_type": "git-clone", + "description": "Implementation of DepthFlow nodes for ComfyUI, adds a 2.5D parallax effect to images and videos. Compatible with Ryan's Flex system." + }, + { + "author": "akatz-ai", + "title": "DepthCrafter Nodes", + "id": "depthcrafter-akatz-ai", + "reference": "https://github.com/akatz-ai/ComfyUI-DepthCrafter-Nodes", + "files": [ + "https://github.com/akatz-ai/ComfyUI-DepthCrafter-Nodes" + ], + "install_type": "git-clone", + "description": "Implementation of DepthCrafter nodes for ComfyUI, create consistent depth maps for your videos." + }, + { + "author": "akatz-ai", + "title": "ComfyUI-X-Portrait-Nodes", + "id": "comfyui-x-portrait-nodes", + "reference": "https://github.com/akatz-ai/ComfyUI-X-Portrait-Nodes", + "files": [ + "https://github.com/akatz-ai/ComfyUI-X-Portrait-Nodes" + ], + "install_type": "git-clone", + "description": "Implementation of X-Portrait nodes for ComfyUI, animate portraits with an input video and a reference image." + }, + { + "author": "akatz-ai", + "title": "ComfyUI-Basic-Math", + "reference": "https://github.com/akatz-ai/ComfyUI-Basic-Math", + "files": [ + "https://github.com/akatz-ai/ComfyUI-Basic-Math" + ], + "install_type": "git-clone", + "description": "Custom nodes for performing basic math operations" + }, + { + "author": "teward", + "title": "Comfy-Sentry", + "reference": "https://github.com/teward/Comfy-Sentry", + "files": [ + "https://github.com/teward/Comfy-Sentry" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node that activates integration with a Sentry instance for loading. Has no actual nodes." + }, + { + "author": "Fuou Marinas", + "title": "FM_nodes", + "reference": "https://github.com/FuouM/FM_nodes", + "files": [ + "https://github.com/FuouM/FM_nodes" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI nodes. Including: WFEN, RealViFormer, ProPIH" + }, + { + "author": "Fuou Marinas", + "title": "ComfyUI-FirstOrderMM", + "id": "fomm", + "reference": "https://github.com/FuouM/ComfyUI-FirstOrderMM", + "files": [ + "https://github.com/FuouM/ComfyUI-FirstOrderMM" + ], + "install_type": "git-clone", + "description": "ComfyUI-native nodes to run First Order Motion Model for Image Animation and its non-diffusion-based successors. [a/https://github.com/AliaksandrSiarohin/first-order-model](https://github.com/AliaksandrSiarohin/first-order-model)" + }, + { + "author": "Fuou Marinas", + "title": "ComfyUI-StyleTransferPlus", + "id": "styletransferplus", + "reference": "https://github.com/FuouM/ComfyUI-StyleTransferPlus", + "files": [ + "https://github.com/FuouM/ComfyUI-StyleTransferPlus" + ], + "install_type": "git-clone", + "description": "Nodes:Neural Neighbor, CAST, EFDM, MicroAST, Coral Color Transfer." + }, + { + "author": "Fuou Marinas", + "title": "ComfyUI-EbSynth", + "id": "comfyEbsynth", + "reference": "https://github.com/FuouM/ComfyUI-EbSynth", + "files": [ + "https://github.com/FuouM/ComfyUI-EbSynth" + ], + "install_type": "git-clone", + "description": "Run EbSynth, Fast Example-based Image Synthesis and Style Transfer, in ComfyUI." + }, + { + "author": "Fuou Marinas", + "title": "ComfyUI-MatAnyone", + "id": "ComfyUI-MatAnyone", + "reference": "https://github.com/FuouM/ComfyUI-MatAnyone", + "files": [ + "https://github.com/FuouM/ComfyUI-MatAnyone" + ], + "install_type": "git-clone", + "description": "MatAnyone in ComfyUI (Remove background)" + }, + { + "author": "MiddleKD", + "title": "ComfyUI-mem-safe-wrapper", + "reference": "https://github.com/MiddleKD/ComfyUI-mem-safe-wrapper", + "files": [ + "https://github.com/MiddleKD/ComfyUI-mem-safe-wrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI's Smart Memory Management efficiently manages RAM, GPU memory, and garbage collection. This feature keeps frequently used models in memory to increase inference speed, and dynamically releases less important models when memory is low to optimize resources. However, not all ComfyUI custom node developers create nodes that are compatible with Smart memory management. This includes several impressive models. Mem-safe-wrapper is a custom node that wraps these model nodes to enable ComfyUI's Smart memory management capabilities." + }, + { + "author": "MiddleKD", + "title": "ComfyUI-productfix", + "reference": "https://github.com/MiddleKD/ComfyUI-productfix", + "files": [ + "https://github.com/MiddleKD/ComfyUI-productfix" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI custom node that helps generate images while preserving the text, logos, and details of e-commerce products." + }, + { + "author": "MiddleKD", + "title": "ComfyUI-denoise-mask-scheduler", + "reference": "https://github.com/MiddleKD/ComfyUI-denoise-mask-scheduler", + "files": [ + "https://github.com/MiddleKD/ComfyUI-denoise-mask-scheduler" + ], + "install_type": "git-clone", + "description": "ComfyUI-denoise-mask-scheduler experimental approach involves selectively applying a denoise mask at each step during the inpainting inference process in diffusion models." + }, + { + "author": "PowerHouseMan", + "title": "ComfyUI-AdvancedLivePortrait", + "id": "advancedliveportrait", + "reference": "https://github.com/PowerHouseMan/ComfyUI-AdvancedLivePortrait", + "files": [ + "https://github.com/PowerHouseMan/ComfyUI-AdvancedLivePortrait" + ], + "install_type": "git-clone", + "description": "AdvancedLivePortrait with Facial expression editor" + }, + { + "author": "cdxOo", + "title": "Text Node With Comments (@cdxoo)", + "reference": "https://github.com/cdxOo/comfyui-text-node-with-comments", + "files": [ + "https://github.com/cdxOo/comfyui-text-node-with-comments" + ], + "install_type": "git-clone", + "description": "multiline text node that strips c-style comments (i.e.'//' and '/* ... */') before passing output string downstream" + }, + { + "author": "emojiiii", + "title": "ComfyUI_Emojiiii_Custom_Nodes", + "reference": "https://github.com/emojiiii/ComfyUI_Emojiiii_Custom_Nodes", + "files": [ + "https://github.com/emojiiii/ComfyUI_Emojiiii_Custom_Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:MultiTextEncode, KolorsMultiTextEncode, Caption, BatchImageProcessor" + }, + { + "author": "aonekoss", + "title": "ComfyUI-Counter", + "reference": "https://github.com/oleksandr612/ComfyUI-Counter", + "files": [ + "https://github.com/oleksandr612/ComfyUI-Counter" + ], + "install_type": "git-clone", + "description": "A simple counter, when pressing 'Queue Prompt' resets the count." + }, + { + "author": "alpertunga-bile", + "title": "image-caption-comfyui", + "reference": "https://github.com/alpertunga-bile/image-caption-comfyui", + "files": [ + "https://github.com/alpertunga-bile/image-caption-comfyui" + ], + "install_type": "git-clone", + "description": "Using image caption models to extract prompts in ComfyUI" + }, + { + "author": "Anibaaal", + "title": "ComfyUI UX Nodes", + "reference": "https://github.com/Anibaaal/ComfyUI-UX-Nodes", + "files": [ + "https://github.com/Anibaaal/ComfyUI-UX-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes: Easy Resolution Picker, Save Diffusion Model, Load Checkpoint BNB On the fly, Load UNET BNB On the fly" + }, + { + "author": "NMWave", + "title": "Image Captioning and Tagging Assistor Nodes", + "id": "naderimagecaptionandtag", + "reference": "https://github.com/NMWave/ComfyUI-Nader-Tagging", + "files": [ + "https://github.com/NMWave/ComfyUI-Nader-Tagging" + ], + "install_type": "git-clone", + "description": "A small set of useful nodes which aid with the tagging process by splitting tags and strings, alternating tags from multiple sources and removing duplicates." + }, + { + "author": "caleboleary", + "title": "Arc2Face ComfyUI Node Library", + "reference": "https://github.com/caleboleary/ComfyUI-Arc2Face", + "files": [ + "https://github.com/caleboleary/ComfyUI-Arc2Face" + ], + "install_type": "git-clone", + "description": "This ComfyUI node library builds upon the work done to train the [a/Arc2Face](https://github.com/foivospar/Arc2Face) model by foivospar. It provides a set of nodes for ComfyUI that allow users to extract face embeddings, generate images based on these embeddings, and perform image-to-image transformations." + }, + { + "author": "GeekyGhost", + "title": "ComfyUI-GeekyRemB", + "reference": "https://github.com/GeekyGhost/ComfyUI-GeekyRemB", + "files": [ + "https://github.com/GeekyGhost/ComfyUI-GeekyRemB" + ], + "install_type": "git-clone", + "description": "GeekyRemB is a powerful suite of image processing nodes for ComfyUI, offering advanced background removal, animation, lighting effects, and keyframe-based positioning. Built on the rembg library with additional capabilities for chroma keying, mask refinement, realistic lighting, shadow generation, and dynamic animations." + }, + { + "author": "GeekyGhost", + "title": "ComfyUI-Geeky-Kokoro-TTS", + "reference": "https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS", + "files": [ + "https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS" + ], + "install_type": "git-clone", + "description": "A powerful and feature-rich custom node collection for ComfyUI that integrates the Kokoro TTS (Text-to-Speech) system with advanced voice modification capabilities. This package allows you to generate natural-sounding speech and apply various voice effects within ComfyUI workflows." + }, + { + "author": "GeekyGhost", + "title": "ComfyUI Geeky AudioMixer", + "reference": "https://github.com/GeekyGhost/ComfyUI_Geeky_AudioMixer", + "files": [ + "https://github.com/GeekyGhost/ComfyUI_Geeky_AudioMixer" + ], + "install_type": "git-clone", + "description": "Audio Mixing node for ComfyUI" + }, + { + "author": "GeekyGhost", + "title": "ComfyUI-Geeky-LatentSyncWrapper 1.5", + "reference": "https://github.com/GeekyGhost/ComfyUI-Geeky-LatentSyncWrapper", + "files": [ + "https://github.com/GeekyGhost/ComfyUI-Geeky-LatentSyncWrapper" + ], + "install_type": "git-clone", + "description": "Unofficial optimized and enhanced fork of [a/LatentSync 1.5](https://github.com/bytedance/LatentSync) implementation for ComfyUI on Windows and WSL 2.0." + }, + { + "author": "GeekyGhost", + "title": "ComfyUI-Image-Segmenting-Loader", + "reference": "https://github.com/GeekyGhost/ComfyUI-Image-Segmenting-Loader", + "files": [ + "https://github.com/GeekyGhost/ComfyUI-Image-Segmenting-Loader" + ], + "install_type": "git-clone", + "description": "Lets you send a section of an image to qwen edit or kontext to help isolate areas in need of change" + }, + { + "author": "Dobidop", + "title": "Dobidop ComfyStereo", + "id": "simple-stereoscopic", + "reference": "https://github.com/Dobidop/ComfyStereo", + "files": [ + "https://github.com/Dobidop/ComfyStereo" + ], + "install_type": "git-clone", + "description": "Two simple nodes for stereoscopic image generation. Nodes: Stereo Image Node - a basic port from the Automatic1111 stereo script in thygate/stable-diffusion-webui-depthmap-script, LazyStereo - a naïve stereo image generator" + }, + { + "author": "SeniorPioner", + "title": "SP-Nodes", + "id": "spnodes", + "reference": "https://github.com/bananasss00/ComfyUI-SP-Nodes", + "files": [ + "https://github.com/bananasss00/ComfyUI-SP-Nodes" + ], + "install_type": "git-clone", + "description": "Node Pack: PromptChecker for token toggling, KoboldCPP API, ModelMerging, Telegram-Bot-API, and more" + }, + { + "author": "leeguandong", + "title": "ComfyUI_M3Net", + "reference": "https://github.com/leeguandong/ComfyUI_M3Net", + "files": [ + "https://github.com/leeguandong/ComfyUI_M3Net" + ], + "install_type": "git-clone", + "description": "ComfyUI for [a/M3Net](https://github.com/I2-Multimedia-Lab/M3Net)" + }, + { + "author": "leeguandong", + "title": "ComfyUI_InternVL2", + "reference": "https://github.com/leeguandong/ComfyUI_InternVL2", + "files": [ + "https://github.com/leeguandong/ComfyUI_InternVL2" + ], + "install_type": "git-clone", + "description": "ComfyUI for [a/InternVL](https://github.com/OpenGVLab/InternVL)" + }, + { + "author": "leeguandong", + "title": "ComfyUI_LLaSM", + "reference": "https://github.com/leeguandong/ComfyUI_LLaSM", + "files": [ + "https://github.com/leeguandong/ComfyUI_LLaSM" + ], + "install_type": "git-clone", + "description": "ComfyUI for [a/LLaSM](https://huggingface.co/spaces/LinkSoul/LLaSM)" + }, + { + "author": "leeguandong", + "title": "ComfyUI nodes to use VideoEditing", + "reference": "https://github.com/leeguandong/ComfyUI_VideoEditing", + "files": [ + "https://github.com/leeguandong/ComfyUI_VideoEditing" + ], + "install_type": "git-clone", + "description": "Nodes:Load Video to Images, Image to Canny, ControlNet Model Loader, VEDit Model Loader, VEdit Sampler. [a/https://github.com/SingleZombie/DiffusersExample/tree/main/ReplaceAttn](https://github.com/SingleZombie/DiffusersExample/tree/main/ReplaceAttn)" + }, + { + "author": "leeguandong", + "title": "ComfyUI nodes to use CrossImageAttention", + "reference": "https://github.com/leeguandong/ComfyUI_CrossImageAttention", + "files": [ + "https://github.com/leeguandong/ComfyUI_CrossImageAttention" + ], + "install_type": "git-clone", + "description": "ComfyUI for [a/CrossImageAttention](https://github.com/garibida/cross-image-attention)" + }, + { + "author": "leeguandong", + "title": "ComfyUI nodes to use Style-Aligned", + "reference": "https://github.com/leeguandong/ComfyUI_Style_Aligned", + "files": [ + "https://github.com/leeguandong/ComfyUI_Style_Aligned" + ], + "install_type": "git-clone", + "description": "ComfyUI for [a/style-aligned](https://github.com/google/style-aligned)" + }, + { + "author": "leeguandong", + "title": "ComfyUI_VisualAttentionMap", + "reference": "https://github.com/leeguandong/ComfyUI_VisualAttentionMap", + "files": [ + "https://github.com/leeguandong/ComfyUI_VisualAttentionMap" + ], + "install_type": "git-clone", + "description": "NODES:HF ModelLoader, Show Images, Text2Image Inference, Decode Latent, Show CrossAttn Map, Show SelfAttn Map" + }, + { + "author": "leeguandong", + "title": "ComfyUI nodes to use MasaCtrl", + "reference": "https://github.com/leeguandong/ComfyUI_MasaCtrl", + "files": [ + "https://github.com/leeguandong/ComfyUI_MasaCtrl" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use MasaCtrl" + }, + { + "author": "leeguandong", + "title": "ComfyUI_CompareModelWeights", + "reference": "https://github.com/leeguandong/ComfyUI_CompareModelWeights", + "files": [ + "https://github.com/leeguandong/ComfyUI_CompareModelWeights" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use CompareModelWeights" + }, + { + "author": "leeguandong", + "title": "ComfyUI_FluxCustomId", + "reference": "https://github.com/leeguandong/ComfyUI_FluxCustomId", + "files": [ + "https://github.com/leeguandong/ComfyUI_FluxCustomId" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use FluxCustomId\nOriginal repo: [a/https://github.com/damo-cv/FLUX-customID](https://github.com/damo-cv/FLUX-customID)" + }, + { + "author": "leeguandong", + "title": "ComfyUI nodes to use FluxClipWeight", + "reference": "https://github.com/leeguandong/ComfyUI_FluxClipWeight", + "files": [ + "https://github.com/leeguandong/ComfyUI_FluxClipWeight" + ], + "install_type": "git-clone", + "description": "In Flux, the T5 and CLIP in the text branch are weighted separately to regulate the strength of text-side embeddings." + }, + { + "author": "leeguandong", + "title": "ComfyUI nodes to use AttentionMask", + "reference": "https://github.com/leeguandong/ComfyUI_FluxAttentionMask", + "files": [ + "https://github.com/leeguandong/ComfyUI_FluxAttentionMask" + ], + "install_type": "git-clone", + "description": "The attention mask in the T5 part of flux and SD3 utilizes the text-side attention mask to make the model focus more on text embeddings during image generation, thereby enhancing semantic alignment with the text." + }, + { + "author": "leeguandong", + "title": "ComfyUI_Cogview4", + "reference": "https://github.com/leeguandong/ComfyUI_Cogview4", + "files": [ + "https://github.com/leeguandong/ComfyUI_Cogview4" + ], + "install_type": "git-clone", + "description": "The latest DIT architecture-based image generation model from Zhipu that supports Chinese text generation." + }, + { + "author": "leeguandong", + "title": "ComfyUI_1Prompt1Story", + "reference": "https://github.com/leeguandong/ComfyUI_1Prompt1Story", + "files": [ + "https://github.com/leeguandong/ComfyUI_1Prompt1Story" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/1Prompt1Story](https://github.com/byliutao/1Prompt1Story)" + }, + { + "author": "leeguandong", + "title": "ComfyUI_ChatGen", + "reference": "https://github.com/leeguandong/ComfyUI_ChatGen", + "files": [ + "https://github.com/leeguandong/ComfyUI_ChatGen" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/ChatGen](https://github.com/chengyou-jia/ChatGen)" + }, + { + "author": "leeguandong", + "title": "ComfyUI_DeepSeekVL2", + "reference": "https://github.com/leeguandong/ComfyUI_DeepSeekVL2", + "files": [ + "https://github.com/leeguandong/ComfyUI_DeepSeekVL2" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/DeepSeek-VL2](https://github.com/deepseek-ai/DeepSeek-VL2)" + }, + { + "author": "leeguandong", + "title": "ComfyUI_FluxLayerDiffuse", + "reference": "https://github.com/leeguandong/ComfyUI_FluxLayerDiffuse", + "files": [ + "https://github.com/leeguandong/ComfyUI_FluxLayerDiffuse" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/Flux-version-LayerDiffuse](https://github.com/RedAIGC/Flux-version-LayerDiffuse)" + }, + { + "author": "leeguandong", + "title": "ComfyUI_Gemma3", + "reference": "https://github.com/leeguandong/ComfyUI_Gemma3", + "files": [ + "https://github.com/leeguandong/ComfyUI_Gemma3" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/gemma-3-27b-it](https://huggingface.co/google/gemma-3-27b-it)" + }, + { + "author": "leeguandong", + "title": "ComfyUI_QWQ32B", + "reference": "https://github.com/leeguandong/ComfyUI_QWQ32B", + "files": [ + "https://github.com/leeguandong/ComfyUI_QWQ32B" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/QwQ-32B](https://huggingface.co/Qwen/QwQ-32B)" + }, + { + "author": "lenskikh", + "title": "Propmt Worker", + "reference": "https://github.com/lenskikh/ComfyUI-Prompt-Worker", + "files": [ + "https://github.com/lenskikh/ComfyUI-Prompt-Worker" + ], + "install_type": "git-clone", + "description": "Node:Prompt Worker. A text manipulation node for postprocessing of prompt." + }, + { + "author": "kappa54", + "title": "ComfyUI Usability", + "id": "comfyui_usability", + "reference": "https://github.com/kappa54m/ComfyUI_Usability", + "files": [ + "https://github.com/kappa54m/ComfyUI_Usability" + ], + "install_type": "git-clone", + "description": "Custom nodes intended to improve usability." + }, + { + "author": "IuvenisSapiens", + "title": "ComfyUI_MiniCPM-V-4", + "id": "ComfyUI_MiniCPM-V-4", + "reference": "https://github.com/IuvenisSapiens/ComfyUI_MiniCPM-V-4", + "files": [ + "https://github.com/IuvenisSapiens/ComfyUI_MiniCPM-V-4" + ], + "install_type": "git-clone", + "description": "This is an implementation of [MiniCPM-V-4](https://github.com/OpenBMB/MiniCPM-V) by [ComfyUI](https://github.com/comfyanonymous/ComfyUI), including support for text-based queries, video queries, single-image queries, and multi-image queries to generate captions or responses." + }, + { + "author": "IuvenisSapiens", + "title": "ComfyUI_Qwen2-Audio-7B-Instruct-Int4", + "id": "qwen2-audio-7b-instruct-int4", + "reference": "https://github.com/IuvenisSapiens/ComfyUI_Qwen2-Audio-7B-Instruct-Int4", + "files": [ + "https://github.com/IuvenisSapiens/ComfyUI_Qwen2-Audio-7B-Instruct-Int4" + ], + "install_type": "git-clone", + "description": "This is an implementation of [a/Qwen2-Audio-7B-Instruct-Int4](https://github.com/QwenLM/Qwen2-Audio) by [a/ComfyUI](https://github.com/comfyanonymous/ComfyUI), including support for text-based queries and audio queries to generate captions or responses." + }, + { + "author": "IuvenisSapiens", + "title": "ComfyUI_Qwen2-VL-Instruct", + "id": "ComfyUI_Qwen2_5-VL-Instruct", + "reference": "https://github.com/IuvenisSapiens/ComfyUI_Qwen2_5-VL-Instruct", + "files": [ + "https://github.com/IuvenisSapiens/ComfyUI_Qwen2_5-VL-Instruct" + ], + "install_type": "git-clone", + "description": "This is an implementation of [a/Qwen2.5-VL-Instruct](https://github.com/QwenLM/Qwen2.5-VL) by [a/ComfyUI](https://github.com/comfyanonymous/ComfyUI), which includes, but is not limited to, support for text-based queries, video queries, single-image queries, and multi-image queries to generate captions or responses." + }, + { + "author": "mltask", + "title": "MLTask_ComfyUI", + "id": "mltask_comfyui", + "reference": "https://github.com/misterjoessef/MLTask_ComfyUI", + "files": [ + "https://github.com/misterjoessef/MLTask_ComfyUI" + ], + "install_type": "git-clone", + "description": "a set of nodes to help u run ai code using MLTask" + }, + { + "author": "smlbiobot", + "title": "ComfyUI-Flux-Replicate-API", + "id": "replicate-api", + "reference": "https://github.com/smlbiobot/ComfyUI-Flux-Replicate-API", + "files": [ + "https://github.com/smlbiobot/ComfyUI-Flux-Replicate-API" + ], + "install_type": "git-clone", + "description": "Flux Pro via Replicate API\nCreate API key at [a/https://replicate.com/account/api-tokens](https://replicate.com/account/api-tokens)\nCopy config.ini.example to config.ini and put the replicate key there." + }, + { + "author": "smlbiobot", + "title": "sml-comfyui-prompt-expansion", + "id": "sml-comfyui-prompt-expansion", + "reference": "https://github.com/smlbiobot/sml-comfyui-prompt-expansion", + "files": [ + "https://github.com/smlbiobot/sml-comfyui-prompt-expansion" + ], + "install_type": "git-clone", + "description": "Prompt Expansion for Stable Diffusion, using Deepseek API." + }, + { + "author": "Jjulianadv", + "title": "Wild Divide", + "reference": "https://github.com/Julian-adv/WildDivide", + "files": [ + "https://github.com/Julian-adv/WildDivide" + ], + "install_type": "git-clone", + "description": "This extension provides the ability to build prompts using wildcards for each region of a split image." + }, + { + "author": "goburiin", + "title": "nsfwrecog-comfyui", + "reference": "https://github.com/goburiin/nsfwrecog-comfyui", + "files": [ + "https://github.com/goburiin/nsfwrecog-comfyui" + ], + "install_type": "git-clone", + "description": "Nodes:NSFW Detector" + }, + { + "author": "eastoc", + "title": "Semantic-SAM", + "reference": "https://github.com/eastoc/ComfyUI_SemanticSAM", + "files": [ + "https://github.com/eastoc/ComfyUI_SemanticSAM" + ], + "install_type": "git-clone", + "description": "Segment and Recognize Anything at Any Granularity." + }, + { + "author": "LING-APE", + "title": "ComfyUI-PixelResolutionCalculator", + "id": "PixelCalulator", + "reference": "https://github.com/Ling-APE/ComfyUI-PixelResolutionCalculator", + "files": [ + "https://github.com/Ling-APE/ComfyUI-PixelResolutionCalculator" + ], + "install_type": "git-clone", + "description": "Simple resuluition calculator to convert pixel resolution and aspect ratio to laten friendlt pixel width and height size." + }, + { + "author": "Cyber-Blacat", + "title": "ComfyUI-Yuan", + "reference": "https://github.com/Cyber-BlackCat/ComfyUI-MoneyMaker", + "files": [ + "https://github.com/Cyber-BlackCat/ComfyUI-MoneyMaker" + ], + "install_type": "git-clone", + "description": "Some simple&practical ComfyUI image processing nodes." + }, + { + "author": "blackcodetavern", + "title": "ComfyUI-Benripack", + "reference": "https://github.com/blackcodetavern/ComfyUI-Benripack", + "files": [ + "https://github.com/blackcodetavern/ComfyUI-Benripack" + ], + "install_type": "git-clone", + "description": "ComfyUI-Benripack is an extension for ComfyUI that provides a CharacterPipe node. This node allows for managing various elements such as images, prompts, and models in a single structure, simplifying the workflow for character-based image generation." + }, + { + "author": "MohammadAboulEla", + "title": "ComfyUI-iTools", + "reference": "https://github.com/MohammadAboulEla/ComfyUI-iTools", + "files": [ + "https://github.com/MohammadAboulEla/ComfyUI-iTools" + ], + "install_type": "git-clone", + "description": "The iTools are some quality of life nodes, like read a possible prompt used to create an image, save a prompt to file as a new line, read prompts from a multiline file." + }, + { + "author": "Hellrunner2k", + "title": "Hellrunner's Magical Nodes", + "reference": "https://github.com/Hellrunner2k/ComfyUI-HellrunnersMagicalNodes", + "files": [ + "https://github.com/Hellrunner2k/ComfyUI-HellrunnersMagicalNodes" + ], + "install_type": "git-clone", + "description": "Magical nodes that are meant for integration and science of course. ^^ Foundational Helpers and smart Containers that use automated functionalities to make room for creative use. A magical pack-synergy is at hand that does not require much extra clutter to make advanced techniques pop beautifully. The idea was to create universal artist's precision tools that do not care what you throw at them." + }, + { + "author": "caleboleary", + "title": "Comfyui-calbenodes", + "reference": "https://github.com/caleboleary/Comfyui-calbenodes", + "files": [ + "https://github.com/caleboleary/Comfyui-calbenodes" + ], + "install_type": "git-clone", + "description": "Nodes:CharacterManagerNode, FilmGrain, FlipFlopperSameArch" + }, + { + "author": "Raapys", + "title": "LatentGC Aggressive", + "id": "latentgcaggressive", + "reference": "https://github.com/Raapys/ComfyUI-LatentGC_Aggressive", + "reference2": "https://github.com/0000111100001111/ComfyUI-LatentGC_Aggressive", + "files": [ + "https://github.com/Raapys/ComfyUI-LatentGC_Aggressive" + ], + "install_type": "git-clone", + "description": "Simple latent-passthrough node for running a full VRAM cleanup between workflow stages." + }, + { + "author": "Pheat-AI", + "title": "Remade_nodes", + "reference": "https://github.com/Pheat-AI/Remade_nodes", + "files": [ + "https://github.com/Pheat-AI/Remade_nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Batch Image Blend by Mask, Batch Enlarged Overlay, Batch Image Overlay, Remove Black Pixels to Transparent, Canny Shrink and Recenter, ..." + }, + { + "author": "OuticNZ", + "title": "ComfyUI-Simple-Of-Complex", + "reference": "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex", + "files": [ + "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex" + ], + "install_type": "git-clone", + "description": "Nodes:Text Switch 2 Way, Prompt Tidy, Text With Context." + }, + { + "author": "justUmen", + "title": "Bjornulf_custom_nodes", + "reference": "https://github.com/justUmen/Bjornulf_custom_nodes", + "files": [ + "https://github.com/justUmen/Bjornulf_custom_nodes" + ], + "install_type": "git-clone", + "description": "Nodes: Ollama, Green Screen to Transparency, Save image for Bjornulf LobeChat, Text with random Seed, Random line from input, Combine images (Background+Overlay alpha), Image to grayscale (black & white), Remove image Transparency (alpha), Resize Image, ..." + }, + { + "author": "jstit", + "title": "comfyui_custom_node_image", + "reference": "https://github.com/jstit/comfyui_custom_node_image", + "files": [ + "https://github.com/jstit/comfyui_custom_node_image" + ], + "install_type": "git-clone", + "description": "Nodes:ImageCropCircle." + }, + { + "author": "jstit", + "title": "ComfyUI-HeadshotPro", + "reference": "https://github.com/HeadshotPro/ComfyUI-HeadshotPro", + "files": [ + "https://github.com/HeadshotPro/ComfyUI-HeadshotPro" + ], + "install_type": "git-clone", + "description": "Nodes:Download Dreambooth Checkpoint, Get Random Value From List, Load Canny Pose Face, Transparent to White Background, Download Flux Lora." + }, + { + "author": "Isi-dev", + "title": "ComfyUI-UniAnimate-W", + "id": "comfyuiunianimatenodes", + "reference": "https://github.com/Isi-dev/ComfyUI-UniAnimate-W", + "files": [ + "https://github.com/Isi-dev/ComfyUI-UniAnimate-W" + ], + "install_type": "git-clone", + "description": "These are nodes to animate an image with a reference video using UniAnimate." + }, + { + "author": "Isi-dev", + "title": "ComfyUI-Animation_Nodes_and_Workflows", + "id": "ComfyUI-Animation_Nodes_and_Workflows", + "reference": "https://github.com/Isi-dev/ComfyUI-Animation_Nodes_and_Workflows", + "files": [ + "https://github.com/Isi-dev/ComfyUI-Animation_Nodes_and_Workflows" + ], + "install_type": "git-clone", + "description": "These are nodes and workflows that can facilitate the creation of animations and video compilations." + }, + { + "author": "Isi-dev", + "title": "ComfyUI-Img2DrawingAssistants", + "id": "Img2DrawingAssistants", + "reference": "https://github.com/Isi-dev/ComfyUI-Img2DrawingAssistants", + "files": [ + "https://github.com/Isi-dev/ComfyUI-Img2DrawingAssistants" + ], + "install_type": "git-clone", + "description": "These are ComfyUI nodes to assist in converting an image to sketches or lineArts." + }, + { + "author": "Isi-dev", + "title": "ComfyUI_DeleteModelPassthrough", + "reference": "https://github.com/Isi-dev/ComfyUI_DeleteModelPassthrough", + "files": [ + "https://github.com/Isi-dev/ComfyUI_DeleteModelPassthrough" + ], + "install_type": "git-clone", + "description": "This custom node provides a memory management utility for ComfyUI.\nIt allows you to delete a specific model (checkpoint, etc.) completely from VRAM and system RAM after use, while passing through any other input type unchanged (IMAGE, LATENT, CLIP, STRING, INT, CONDITIONING, VAE, etc.).\nThis is especially useful for low VRAM & low RAM environments, helping to reduce out-of-memory (OOM) errors in long workflows." + }, + { + "author": "XLabs-AI", + "title": "x-flux-comfyui", + "reference": "https://github.com/XLabs-AI/x-flux-comfyui", + "files": [ + "https://github.com/XLabs-AI/x-flux-comfyui" + ], + "install_type": "git-clone", + "description": "Nodes:Load Flux LoRA, Load Flux ControlNet, Apply Flux ControlNet, Xlabs Sampler" + }, + { + "author": "okgo4", + "title": "ComfyUI-Mosaic-Mask", + "reference": "https://github.com/okgo4/ComfyUI-Mosaic-Mask", + "files": [ + "https://github.com/okgo4/ComfyUI-Mosaic-Mask" + ], + "install_type": "git-clone", + "description": "ComfyUI-Mosaic-Mask is an automatic tool designed to detect and mask mosaic areas in input images." + }, + { + "author": "ChrisColeTech", + "title": "ComfyUI-Line-counter", + "reference": "https://github.com/ChrisColeTech/ComfyUI-Line-counter", + "files": [ + "https://github.com/ChrisColeTech/ComfyUI-Line-counter" + ], + "install_type": "git-clone", + "description": "This custom node package for ComfyUI is designed to streamline your workflow with powerful file-counting capabilities." + }, + { + "author": "ChrisColeTech", + "title": "ComfyUI-Elegant-Resource-Monitor", + "reference": "https://github.com/ChrisColeTech/ComfyUI-Elegant-Resource-Monitor", + "files": [ + "https://github.com/ChrisColeTech/ComfyUI-Elegant-Resource-Monitor" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI will add a simple and elegant resource monitor." + }, + { + "author": "dadoirie", + "title": "ComfyUI_Dados_Nodes", + "reference": "https://github.com/dadoirie/ComfyUI_Dados_Nodes", + "files": [ + "https://github.com/dadoirie/ComfyUI_Dados_Nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI_Dados_Nodes is a collection of custom nodes for ComfyUI, designed to enhance functionality and provide integration with various services, including Pinterest. This privacy policy explains how these nodes handle user data.\nNOTE: [a/privacy_policy](https://github.com/dadoirie/ComfyUI_Dados_Nodes/blob/master/privacy_policy.md)" + }, + { + "author": "fanfanfan", + "title": "chinese_clip_encode", + "id": "chinese_clip_encode", + "reference": "https://github.com/yuan199696/chinese_clip_encode", + "files": [ + "https://github.com/yuan199696/chinese_clip_encode" + ], + "install_type": "git-clone", + "description": "Support input of Chinese prompts." + }, + { + "author": "fanfanfan", + "title": "add_text_2_img", + "id": "add_text_2_img", + "reference": "https://github.com/yuan199696/add_text_2_img", + "files": [ + "https://github.com/yuan199696/add_text_2_img" + ], + "install_type": "git-clone", + "description": "Support adding custom text to the generated images." + }, + { + "author": "fairy-root", + "title": "Ollama and Llava Vision integration for ComfyUI", + "reference": "https://github.com/fairy-root/comfyui-ollama-llms", + "files": [ + "https://github.com/fairy-root/comfyui-ollama-llms" + ], + "install_type": "git-clone", + "description": "Ollama and Llava / vision integration for ComfyUI" + }, + { + "author": "fairy-root", + "title": "Flux Prompt Generator for ComfyUI", + "reference": "https://github.com/fairy-root/Flux-Prompt-Generator", + "files": [ + "https://github.com/fairy-root/Flux-Prompt-Generator" + ], + "install_type": "git-clone", + "description": "A flexible and customizable prompt generator for generating detailed and creative prompts for image generation models for ComfyUI" + }, + { + "author": "fairy-root", + "title": "ComfyUI-Show-Text", + "reference": "https://github.com/fairy-root/ComfyUI-Show-Text", + "files": [ + "https://github.com/fairy-root/ComfyUI-Show-Text" + ], + "install_type": "git-clone", + "description": "A simple but powerful node for ComfyUI that displays text input in a readable format. Perfect for viewing outputs from text generation nodes, prompt builders, interrogators, and more." + }, + { + "author": "fairy-root", + "title": "ComfyUI-OpenAI-FM", + "reference": "https://github.com/fairy-root/ComfyUI-OpenAI-FM", + "files": [ + "https://github.com/fairy-root/ComfyUI-OpenAI-FM" + ], + "install_type": "git-clone", + "description": "The OpenAI FM TTS node is a custom node for ComfyUI that seamlessly integrates the OpenAI FM Text-to-Speech service into your audio workflows. This node allows you to easily convert text to speech with a variety of voices and emotional styles directly within ComfyUI." + }, + { + "author": "ryanontheinside", + "title": "RyanOnTheInside", + "reference": "https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside", + "files": [ + "https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside" + ], + "install_type": "git-clone", + "description": "Custom nodes introducing particle simulations, optical flow, audio manipulation & reactivity, and temporal masks" + }, + { + "author": "RyanOnTheInside", + "title": "Nodes for use with real-time applications of ComfyUI", + "id": "comfyui_realtimenodes", + "reference": "https://github.com/ryanontheinside/ComfyUI_RealtimeNodes", + "files": [ + "https://github.com/ryanontheinside/ComfyUI_RealtimeNodes" + ], + "install_type": "git-clone", + "description": "These nodes are for real-time applications of ComfyUI." + }, + { + "author": "RyanOnTheInside", + "title": "ComfyUI-EfficientTAM", + "reference": "https://github.com/ryanontheinside/ComfyUI_EfficientTAM", + "files": [ + "https://github.com/ryanontheinside/ComfyUI_EfficientTAM" + ], + "install_type": "git-clone", + "description": "A ComfyUI implementation of [a/EfficientTAM](https://github.com/yformer/EfficientTAM)" + }, + { + "author": "ryanontheinside", + "title": "Doom", + "reference": "https://github.com/ryanontheinside/ComfyUI_Doom", + "files": [ + "https://github.com/ryanontheinside/ComfyUI_Doom" + ], + "install_type": "git-clone", + "description": "Play Doom in ComfyUI." + }, + { + "author": "ryanontheinside", + "title": "ComfyUI_ProfilerX", + "reference": "https://github.com/ryanontheinside/ComfyUI_ProfilerX", + "files": [ + "https://github.com/ryanontheinside/ComfyUI_ProfilerX" + ], + "install_type": "git-clone", + "description": "Node and workflow profiling. Find bottlenecks in your workflows. See trends over time." + }, + { + "author": "ryanontheinside", + "title": "ComfyUI_SuperResolution", + "reference": "https://github.com/ryanontheinside/ComfyUI_SuperResolution", + "files": [ + "https://github.com/ryanontheinside/ComfyUI_SuperResolution" + ], + "install_type": "git-clone", + "description": "A collection of high-performance neural network-based Super Resolution models for ComfyUI." + }, + { + "author": "ryanontheinside", + "title": "Control Freak for ComfyUI", + "reference": "https://github.com/ryanontheinside/ComfyUI_ControlFreak", + "files": [ + "https://github.com/ryanontheinside/ComfyUI_ControlFreak" + ], + "install_type": "git-clone", + "description": "Control Freak gives you physical control over your ComfyUI workflows by mapping MIDI controllers, gamepads, and other input devices to any node parameter or UI element. Transform your image generation experience with tactile, responsive control. Ever heard of 'flow state'?" + }, + { + "author": "ryanontheinside", + "title": "Deep Live Cam for ComfyUI", + "reference": "https://github.com/ryanontheinside/ComfyUI-DeepLiveCam", + "files": [ + "https://github.com/ryanontheinside/ComfyUI-DeepLiveCam" + ], + "install_type": "git-clone", + "description": "This node integrates the face-swapping capabilities from Deep Live Cam into ComfyUI, allowing you to perform real-time face swapping on images and video streams." + }, + { + "author": "ControlAltAI", + "title": "ControlAltAI Nodes", + "id": "controlaltai", + "reference": "https://github.com/gseth/ControlAltAI-Nodes", + "files": + [ + "https://github.com/gseth/ControlAltAI-Nodes" + ], + "install_type": "git-clone", + "description": "Quality of Life Nodes from ControlAltAI. Flux Resolution Calculator, Flux Sampler, Flux Union ControlNet Apply, Noise Plus Blend, Boolean Logic, and Flux Region Nodes." + }, + { + "author": "OliverCrosby", + "title": "ComfyUI Minimap", + "id": "minimap", + "reference": "https://github.com/OliverCrosby/Comfyui-Minimap", + "files": [ + "https://github.com/OliverCrosby/Comfyui-Minimap" + ], + "install_type": "git-clone", + "description": "A simple minimap in the bottom-right of the window showing the full workflow, left click to navigate" + }, + { + "author": "Sieyalixnet", + "title": "ComfyUI_Textarea_Loaders", + "reference": "https://github.com/Sieyalixnet/ComfyUI_Textarea_Loaders", + "files": [ + "https://github.com/Sieyalixnet/ComfyUI_Textarea_Loaders" + ], + "install_type": "git-clone", + "description": "An easy custom node that makes the some loaders' input as Text instead of file selector.\nFor example, there are many characters in different loras respectively. If you want to generate different characters' pictures, you have to select corresponding lora, and then edit the prompt. It may cost much time.\nTo solve this problem, You can use it with a chrome extension https://github.com/Sieyalixnet/ComfyUI-Prompt-Formatter-Extension that makes the queue prompt easier when you dealing with massive loras and prompt." + }, + { + "author": "markuryy", + "title": "ComfyUI Flux Prompt Saver", + "reference": "https://github.com/markuryy/ComfyUI-Flux-Prompt-Saver", + "files": [ + "https://github.com/markuryy/ComfyUI-Flux-Prompt-Saver" + ], + "install_type": "git-clone", + "description": "The Flux Prompt Saver is set of simple nodes for saving images generated with Flux with A1111-style metadata." + }, + { + "author": "markuryy", + "title": "Super Loader", + "reference": "https://github.com/markuryy/ComfyUI-SuperLoader", + "files": [ + "https://github.com/markuryy/ComfyUI-SuperLoader" + ], + "install_type": "git-clone", + "description": "Metadata for loaded models" + }, + { + "author": "markuryy", + "title": "Video XY Plot", + "reference": "https://github.com/markuryy/ComfyUI-Simple-Video-XY-Plot", + "files": [ + "https://github.com/markuryy/ComfyUI-Simple-Video-XY-Plot" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI" + }, + { + "author": "eesahe", + "title": "ComfyUI-eesahesNodes", + "reference": "https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes", + "files": [ + "https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes" + ], + "install_type": "git-clone", + "description": "InstantX's Flux union ControlNet loader and implementation" + }, + { + "author": "anhkhoatranle30", + "title": "Handy Node ComfyUI", + "id": "handynode", + "reference": "https://github.com/anhkhoatranle30/Handy-Nodes-ComfyUI", + "files": [ + "https://github.com/anhkhoatranle30/Handy-Nodes-ComfyUI" + ], + "install_type": "git-clone", + "description": "This is a pack with some handy nodes for ComfyUI." + }, + { + "author": "Artiprocher", + "title": "Dashscope FLUX API for ComfyUI", + "id": "dashscope_api", + "reference": "https://github.com/modelscope/comfyscope", + "files": [ + "https://github.com/modelscope/comfyscope" + ], + "install_type": "git-clone", + "description": "The FLUX model API from DashScope, developed by Black Forest Labs, offers superior image generation capabilities with optimized support for Chinese prompts, achieving a commendable tradeoff between performance and the quality of generated images compared to other open-source models." + }, + { + "author": "JPrevots", + "title": "ComfyUI-PhyCV", + "reference": "https://github.com/JPrevots/ComfyUI-PhyCV", + "files": [ + "https://github.com/JPrevots/ComfyUI-PhyCV" + ], + "install_type": "git-clone", + "description": "Nodes:PhyCV - Phase-Stretch Transform (PST), PhyCV - VEViD, PhyCV - Page." + }, + { + "author": "rnbwdsh", + "title": "Latent Walk", + "reference": "https://github.com/rnbwdsh/ComfyUI-LatentWalk", + "files": [ + "https://github.com/rnbwdsh/ComfyUI-LatentWalk" + ], + "install_type": "git-clone", + "description": "Latent space walks for latents, conditionals and noise" + }, + { + "author": "kudou-reira", + "title": "ComfyUI_StringToHex", + "reference": "https://github.com/kasukanra/ComfyUI_StringToHex", + "files": [ + "https://github.com/kasukanra/ComfyUI_StringToHex" + ], + "install_type": "git-clone", + "description": "This is a simple ComfyUI node that will take in a string of 'color' (i.e. 'blue') and output a hex color format." + }, + { + "author": "phyblas", + "title": "paint-by-example @ ComfyUI", + "id": "paintbyexample", + "reference": "https://github.com/phyblas/paint-by-example_comfyui", + "files": [ + "https://github.com/phyblas/paint-by-example_comfyui" + ], + "install_type": "git-clone", + "description": "Implementation of paint-by-example on ComfyUI" + }, + { + "author": "aidenli", + "title": "ComfyUI_NYJY", + "id": "NYJY", + "reference": "https://github.com/aidenli/ComfyUI_NYJY", + "files": [ + "https://github.com/aidenli/ComfyUI_NYJY" + ], + "install_type": "git-clone", + "description": "A comfyui node that provides translation and image reverse push functions(JoyTag & JoyCaption)." + }, + { + "author": "Pseudotools", + "title": "Pseudocomfy", + "id": "pseudocomfy", + "reference": "https://github.com/Pseudotools/Pseudocomfy", + "files": [ + "https://github.com/Pseudotools/Pseudocomfy" + ], + "install_type": "git-clone", + "description": "A package designed to enable multi-regional prompting for architectural rendering, integrated with the Rhino Pseudorandom plugin." + }, + { + "author": "TTPlanetPig", + "title": "Comfyui_TTP_Toolset", + "reference": "https://github.com/TTPlanetPig/Comfyui_TTP_Toolset", + "files": [ + "https://github.com/TTPlanetPig/Comfyui_TTP_Toolset" + ], + "install_type": "git-clone", + "description": "This is a workflow for my simple logic amazing upscale node for DIT model. it can be common use for Flux,Hunyuan,SD3 It can simple tile the initial image into pieces and then use image-interrogator to get each tile prompts for more accurate upscale process. The condition will be properly handled and the hallucination will be significantly eliminated." + }, + { + "author": "TTPlanetPig", + "title": "for comfyui image proprocessor", + "reference": "https://github.com/TTPlanetPig/Comfyui_TTP_CN_Preprocessor", + "files": [ + "https://github.com/TTPlanetPig/Comfyui_TTP_CN_Preprocessor" + ], + "install_type": "git-clone", + "description": "Adapt for Hunyuan now\nNOTE: The files in the repo are not organized, which may lead to update issues." + }, + { + "author": "TTPlanetPig", + "title": "Comfyui_JC2", + "reference": "https://github.com/TTPlanetPig/Comfyui_JC2", + "files": [ + "https://github.com/TTPlanetPig/Comfyui_JC2" + ], + "install_type": "git-clone", + "description": "Wrapped Joy Caption alpha 2 node for comfyui from [a/https://huggingface.co/spaces/fancyfeast/joy-caption-alpha-two](https://huggingface.co/spaces/fancyfeast/joy-caption-alpha-two) Easy use, for GPU with less 19G, please use nf4 for better balanced speed and result. This Node also took a reference from /chflame163/ComfyUI_LayerStyle and [a/https://huggingface.co/John6666/joy-caption-alpha-two-cli-mod](https://huggingface.co/John6666/joy-caption-alpha-two-cli-mod)" + }, + { + "author": "TTPlanetPig", + "title": "Comfyui_Hunyuan3D", + "reference": "https://github.com/TTPlanetPig/Comfyui_Hunyuan3D", + "files": [ + "https://github.com/TTPlanetPig/Comfyui_Hunyuan3D" + ], + "install_type": "git-clone", + "description": "NODES:TTP_Hunyuan3DNode, TTP_SquareImage, TTP_GIFViewer" + }, + { + "author": "TTPlanetPig", + "title": "Clothing Migration Kit", + "reference": "https://github.com/TTPlanetPig/Comfyui_Object_Migration", + "files": [ + "https://github.com/TTPlanetPig/Comfyui_Object_Migration" + ], + "install_type": "git-clone", + "description": "This is an experimental project focused on Stable Diffusion (SD) models. In a single generated image, the same object or character consistently maintains a very high level of consistency. I had already attempted to address this issue in the SDXL model." + }, + { + "author": "TTPlanetPig", + "title": "TTP_Comfyui_FramePack_SE", + "reference": "https://github.com/TTPlanetPig/TTP_Comfyui_FramePack_SE", + "files": [ + "https://github.com/TTPlanetPig/TTP_Comfyui_FramePack_SE" + ], + "install_type": "git-clone", + "description": "Provide ComfyUI support for FramePack start-and-end image reference" + }, + { + "author": "TTPlanetPig", + "title": "ComfyUI Qwen2.5-VL Object Detection Node", + "reference": "https://github.com/TTPlanetPig/Comfyui_Object_Detect_QWen_VL", + "files": [ + "https://github.com/TTPlanetPig/Comfyui_Object_Detect_QWen_VL" + ], + "install_type": "git-clone", + "description": "This repository provides a custom ComfyUI node for running object detection with the [a/Qwen 2.5 VL](https://github.com/QwenLM/Qwen2.5-VL) model. The node downloads the selected model on demand, runs a detection prompt and outputs bounding boxes that can be used with segmentation nodes such as [a/SAM2](https://github.com/kijai/ComfyUI-segment-anything-2)." + }, + { + "author": "camenduru", + "title": "ComfyUI-TostAI", + "reference": "https://github.com/camenduru/ComfyUI-TostAI", + "files": [ + "https://github.com/camenduru/ComfyUI-TostAI" + ], + "install_type": "git-clone", + "description": "NODES: SendToTostAI" + }, + { + "author": "xlinx", + "title": "ComfyUI-decadetw-auto-prompt-llm", + "reference": "https://github.com/xlinx/ComfyUI-decadetw-auto-prompt-llm", + "files": [ + "https://github.com/xlinx/ComfyUI-decadetw-auto-prompt-llm" + ], + "install_type": "git-clone", + "description": "NODES: Auto-LLM-Text-Vision, Auto-LLM-Text, Auto-LLM-Vision" + }, + { + "author": "xlinx", + "title": "ComfyUI-decadetw-auto-messaging-realtime", + "reference": "https://github.com/xlinx/ComfyUI-decadetw-auto-messaging-realtime", + "files": [ + "https://github.com/xlinx/ComfyUI-decadetw-auto-messaging-realtime" + ], + "install_type": "git-clone", + "description": "Auto messging sd-image and sd-info to mobile phone IM realtime. (LINE | Telegram | Discord)" + }, + { + "author": "xlinx", + "title": "ComfyUI-decadetw-spout-syphon-im-vj", + "reference": "https://github.com/xlinx/ComfyUI-decadetw-spout-syphon-im-vj", + "files": [ + "https://github.com/xlinx/ComfyUI-decadetw-spout-syphon-im-vj" + ], + "install_type": "git-clone", + "description": "I'm SD-VJ. (share SD-generating-process in realtime by gpu)" + }, + { + "author": "wmpmiles", + "title": "comfyui-some-image-processing-stuff", + "reference": "https://github.com/wmpmiles/comfyui-some-image-processing-stuff", + "files": [ + "https://github.com/wmpmiles/comfyui-some-image-processing-stuff" + ], + "install_type": "git-clone", + "description": "Some ComfyUI nodes that provide some image-processing functionality. Resampling, Color Grading, Inpainting, ..." + }, + { + "author": "nonnonstop", + "title": "comfyui-faster-loading", + "reference": "https://github.com/nonnonstop/comfyui-faster-loading", + "files": [ + "https://github.com/nonnonstop/comfyui-faster-loading" + ], + "install_type": "git-clone", + "description": "This extension applies a patch that limits the model loading speed when using an HDD in a Windows environment. See [a/comfyanonymous/ComfyUI#1992](https://github.com/comfyanonymous/ComfyUI/issues/1992). [w/As this patch is only useful in very limited environments, its installation is not recommended under normal circumstances. Memory usage may increase.]" + }, + { + "author": "Dr.Jusseaux", + "title": "Diffusers-in-ComfyUI", + "reference": "https://github.com/maepopi/Diffusers-in-ComfyUI", + "files": [ + "https://github.com/maepopi/Diffusers-in-ComfyUI" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI custom nodes that allow to use most Diffusers pipelines and components in Comfy(Txt2Img, Img2Img, Inpainting, LoRAS, B-LoRAS, ControlNet...)" + }, + { + "author": "niknah", + "title": "Quick Connections", + "id": "quick-connections", + "reference": "https://github.com/niknah/quick-connections", + "files": [ + "https://github.com/niknah/quick-connections" + ], + "install_type": "git-clone", + "description": "Quick connections, Circuit board connections" + }, + { + "author": "niknah", + "title": "ComfyUI F5-TTS", + "reference": "https://github.com/niknah/ComfyUI-F5-TTS", + "files": [ + "https://github.com/niknah/ComfyUI-F5-TTS" + ], + "install_type": "git-clone", + "description": "Text to speech with F5-TTS" + }, + { + "author": "niknah", + "title": "ComfyUI Hunyuan-3D-2", + "id": "comfyui-hunyuan-3d-2", + "reference": "https://github.com/niknah/ComfyUI-Hunyuan-3D-2", + "files": [ + "https://github.com/niknah/ComfyUI-Hunyuan-3D-2" + ], + "install_type": "git-clone", + "description": "Image to 3D using Hunyuan-3D-2" + }, + { + "author": "niknah", + "title": "ComfyUI-InfiniteYou", + "reference": "https://github.com/niknah/ComfyUI-InfiniteYou", + "files": [ + "https://github.com/niknah/ComfyUI-InfiniteYou" + ], + "install_type": "git-clone", + "description": "ComfyUI custom_node for ByteDance's InfiniteYou" + }, + { + "author": "niknah", + "title": "Audio General", + "reference": "https://github.com/niknah/audio-general-ComfyUI", + "files": [ + "https://github.com/niknah/audio-general-ComfyUI" + ], + "install_type": "git-clone", + "description": "General audio nodes. Mix, Bass/Treble, Concatenate, Pitch, Add/remove silence, Speed" + }, + { + "author": "daryltucker", + "title": "ComfyUI-LoadFiles", + "id": "LoadFiles", + "reference": "https://github.com/daryltucker/ComfyUI-LoadFiles", + "files": [ + "https://github.com/daryltucker/ComfyUI-LoadFiles" + ], + "install_type": "git-clone", + "description": "The primary goal of these nodes is to provide a way to access files generated by ComfyUI workflows, local to the machine running ComfyUI. These nodes should always return an updated list of files when triggered." + }, + { + "author": "X-T-E-R", + "title": "ComfyUI Easy Civitai (XTNodes)", + "reference": "https://github.com/X-T-E-R/ComfyUI-EasyCivitai-XTNodes", + "files": [ + "https://github.com/X-T-E-R/ComfyUI-EasyCivitai-XTNodes" + ], + "install_type": "git-clone", + "description": "Load your model with image previews, or directly download and import Civitai models via URL. This custom ComfyUI node supports Checkpoint, LoRA, and LoRA Stack models, offering features like bypass options." + }, + { + "author": "hyejinlee12", + "title": "ComfyUI-Fill-Image-for-Outpainting", + "id": "fill-image-for-outpainting", + "reference": "https://github.com/Lhyejin/ComfyUI-Fill-Image-for-Outpainting", + "files": [ + "https://github.com/Lhyejin/ComfyUI-Fill-Image-for-Outpainting" + ], + "install_type": "git-clone", + "description": "This node is to fill image for outpainting(inpainting)\nFill image using cv2 methods(cv2_ns, cv2_telea and edge_pad)" + }, + { + "author": "yhayano-ponotech", + "title": "ComfyUI-Fal-API-Flux", + "reference": "https://github.com/yhayano-ponotech/ComfyUI-Fal-API-Flux", + "files": [ + "https://github.com/yhayano-ponotech/ComfyUI-Fal-API-Flux" + ], + "install_type": "git-clone", + "description": "This repository contains custom nodes for ComfyUI that integrate the fal.ai FLUX.1 [dev] with LoRA API, specifically for text-to-image generation. These nodes allow you to use the FLUX.1 model directly within your ComfyUI workflows." + }, + { + "author": "yhayano-ponotech", + "title": "ComfyUI Local Save Node", + "reference": "https://github.com/yhayano-ponotech/comfyui-save-image-local", + "files": [ + "https://github.com/yhayano-ponotech/comfyui-save-image-local" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for directly downloading generated images to your local PC with customizable filenames and formats (PNG/JPEG)." + }, + { + "author": "erosDiffusion", + "title": "ComfyUI-enricos-nodes", + "reference": "https://github.com/erosDiffusion/ComfyUI-enricos-nodes", + "files": [ + "https://github.com/erosDiffusion/ComfyUI-enricos-nodes" + ], + "install_type": "git-clone", + "description": "pass up to 8 images and visually place, rotate and scale them to build the perfect composition. group move and group rescale. remember their position and scaling value across generations to easy swap images. use the buffer zone to to park an asset you don't want to use or easily reach transformations controls" + }, + { + "author": "Steudio", + "title": "ComfyUI Steudio", + "id": "Steudio", + "reference": "https://github.com/Steudio/ComfyUI_Steudio", + "files": [ + "https://github.com/Steudio/ComfyUI_Steudio" + ], + "install_type": "git-clone", + "description": "Divide and Conquer Node Suite: It calculates the optimal upscale resolution and seamlessly divides the image into tiles, ready for individual processing using your preferred workflow. After processing, the tiles are seamlessly merged into a larger image, offering sharper and more detailed visuals." + }, + { + "author": "Assistant", + "title": "ComfyUI-PromptList", + "reference": "https://github.com/NakamuraShippo/ComfyUI-NS-PromptList", + "files": [ + "https://github.com/NakamuraShippo/ComfyUI-NS-PromptList" + ], + "install_type": "git-clone", + "description": "Custom node to manage prompts in YAML format." + }, + { + "author": "Assistant", + "title": "ComfyUI-NS-ManySliders", + "reference": "https://github.com/NakamuraShippo/ComfyUI-NS-ManySliders", + "files": [ + "https://github.com/NakamuraShippo/ComfyUI-NS-ManySliders" + ], + "install_type": "git-clone", + "description": "ComfyUI-NS-ManySliders is a custom node developed for ComfyUI that allows you to manipulate values using multiple sliders. With this node, you can easily adjust numerous numerical parameters intuitively, making it useful for various purposes." + }, + { + "author": "Assistant", + "title": "ComfyUI-NS-Util", + "reference": "https://github.com/NakamuraShippo/ComfyUI-NS-Util", + "files": [ + "https://github.com/NakamuraShippo/ComfyUI-NS-Util" + ], + "install_type": "git-clone", + "description": "A collection of nodes for ComfyUI. ex:A node for batch managing int, float, and string parameters with presets" + }, + { + "author": "nux1111", + "title": "ComfyUI_NetDist_Plus", + "reference": "https://github.com/nux1111/ComfyUI_NetDist_Plus", + "files": [ + "https://github.com/nux1111/ComfyUI_NetDist_Plus" + ], + "install_type": "git-clone", + "description": "Run ComfyUI workflows on multiple local GPUs/networked machines with options to edit the json values within comfyui.\nOriginal repo: [a/city96/ComfyUI_NetDist](https://github.com/city96/ComfyUI_NetDist)" + }, + { + "author": "mittimi", + "title": "ComfyUI_mittimiLoadPreset2", + "id": "comfyui_mittimi_load_preset2", + "reference": "https://github.com/mittimi/ComfyUI_mittimiLoadPreset2", + "files": [ + "https://github.com/mittimi/ComfyUI_mittimiLoadPreset2" + ], + "install_type": "git-clone", + "description": "This node can easily switch between models and prompts by saving presets." + }, + { + "author": "mittimi", + "title": "ComfyUI_mittimiRecalculateSize", + "id": "comfyui_mittimi_recalculate_size", + "reference": "https://github.com/mittimi/ComfyUI_mittimiRecalculateSize", + "files": [ + "https://github.com/mittimi/ComfyUI_mittimiRecalculateSize" + ], + "install_type": "git-clone", + "description": "This is the node that performs the magnification calculation." + }, + { + "author": "mittimi", + "title": "ComfyUI_mittimiWidthHeight", + "id": "comfyui_mittimi_width_height", + "reference": "https://github.com/mittimi/ComfyUI_mittimiWidthHeight", + "files": [ + "https://github.com/mittimi/ComfyUI_mittimiWidthHeight" + ], + "install_type": "git-clone", + "description": "This node can easily switch between vertical and horizontal values with a single button." + }, + { + "author": "mittimi", + "title": "ComfyUI_mittimiDaisyChainText", + "reference": "https://github.com/mittimi/ComfyUI_mittimiDaisyChainText", + "files": [ + "https://github.com/mittimi/ComfyUI_mittimiDaisyChainText" + ], + "install_type": "git-clone", + "description": "It has the ability to concatenate text." + }, + { + "author": "RodrigoSKohl", + "title": "Panoramic Image Stitcher", + "reference": "https://github.com/RodrigoSKohl/ComfyUI-Panoramic-ImgStitcher", + "files": [ + "https://github.com/RodrigoSKohl/ComfyUI-Panoramic-ImgStitcher" + ], + "install_type": "git-clone", + "description": "Simple Node to make panoramic images" + }, + { + "author": "RodrigoSKohl", + "title": "Interior Design for Comfyui", + "reference": "https://github.com/RodrigoSKohl/InteriorDesign-for-ComfyUI", + "files": [ + "https://github.com/RodrigoSKohl/InteriorDesign-for-ComfyUI" + ], + "install_type": "git-clone", + "description": "This node is based on MykolaL/StableDesign" + }, + { + "author": "RodrigoSKohl", + "title": "TryOff Anyone", + "reference": "https://github.com/RodrigoSKohl/comfyui-tryoff-anyone", + "files": [ + "https://github.com/RodrigoSKohl/comfyui-tryoff-anyone" + ], + "install_type": "git-clone", + "description": "Node to tryoff clothes" + }, + { + "author": "nicehero", + "title": "comfyui-SegGPT", + "reference": "https://github.com/nicehero/comfyui-SegGPT", + "files": [ + "https://github.com/nicehero/comfyui-SegGPT" + ], + "install_type": "git-clone", + "description": "SegGPT model for comfyui,segmentation everything with mask prompt. Download (https://huggingface.co/BAAI/SegGPT/blob/main/seggpt_vit_large.pth) in this node path." + }, + { + "author": "sakura1bgx", + "title": "ComfyUI_FlipStreamViewer", + "reference": "https://github.com/sakura1bgx/ComfyUI_FlipStreamViewer", + "files": [ + "https://github.com/sakura1bgx/ComfyUI_FlipStreamViewer" + ], + "install_type": "git-clone", + "description": "ComfyUI_FlipStreamViewer is a tool that provides a customizable viewer interface for flipping images with frame interpolation." + }, + { + "author": "ducido", + "title": "ObjectFusion_ComfyUI_nodes", + "id": "objectfusion-nodes", + "reference": "https://github.com/ducido/ObjectFusion_ComfyUI_nodes", + "files": [ + "https://github.com/ducido/ObjectFusion_ComfyUI_nodes" + ], + "install_type": "git-clone", + "description": "This is a node to generate new image that combine 2 objects from different scene." + }, + { + "author": "DanielHabib", + "title": "ComfyUI-Voxels", + "reference": "https://github.com/DanielHabib/ComfyUI-Voxels", + "files": [ + "https://github.com/DanielHabib/ComfyUI-Voxels" + ], + "install_type": "git-clone", + "description": "NODES:Mesh To Voxel, Voxel Block Saver, Voxel Viewer, Voxel Block Loader, Voxel Video Viewer, Voxel Blocks Into Voxel Video, Voxel Video Preview, Voxelize Mesh, ..." + }, + { + "author": "jsonL", + "title": "ComfyUI-tagger", + "id": "comfyui-tagger", + "reference": "https://github.com/StarMagicAI/comfyui_tagger", + "files": [ + "https://github.com/StarMagicAI/comfyui_tagger" + ], + "install_type": "git-clone", + "description": "Nodes to use Florence2 VLM for image vision tasks: object detection, captioning, segmentation and ocr" + }, + { + "author": "boredofnames", + "title": "ComfyUI-ntfy", + "reference": "https://github.com/boredofnames/ComfyUI-ntfy", + "files": [ + "https://github.com/boredofnames/ComfyUI-ntfy" + ], + "install_type": "git-clone", + "description": "NODES:Save Image and ntfy" + }, + { + "author": "Xclbr7", + "title": "ComfyUI-Merlin: Magic Photo Prompter", + "reference": "https://github.com/Xclbr7/ComfyUI-Merlin", + "files": [ + "https://github.com/Xclbr7/ComfyUI-Merlin" + ], + "install_type": "git-clone", + "description": "ComfyUI-Merlin is a custom node extension for ComfyUI, introducing the Magic Photo Prompter. This powerful tool enhances your prompt engineering process by allowing users to easily construct detailed, high-quality prompts for photo-realistic image generation." + }, + { + "author": "microbote", + "title": "StyledCLIPTextEncode", + "reference": "https://github.com/microbote/ComfyUI-StyledCLIPTextEncode", + "files": [ + "https://github.com/microbote/ComfyUI-StyledCLIPTextEncode" + ], + "install_type": "git-clone", + "description": "StyledCLIPTextEncode is a node that enables you to build your prompts(both postive and negative) based on the selected style. It provides up-to 77 styles currently and has been tested on SDXL and SD1.5 checkpoints. It's ported from project [a/Style Selector for SDXL 1.0](https://github.com/ahgsql/StyleSelectorXL), which is only availabe on WebUI." + }, + { + "author": "tianguangliu", + "title": "comfyui-utools", + "id": "utools", + "reference": "https://github.com/tianguanggliu/Utools", + "files": [ + "https://github.com/tianguanggliu/Utools" + ], + "install_type": "git-clone", + "description": "Efficiency tools, Personalized style, Other Nodes, ..." + }, + { + "author": "celoron", + "title": "ComfyUI-VisualQueryTemplate", + "reference": "https://github.com/celoron/ComfyUI-VisualQueryTemplate", + "files": [ + "https://github.com/celoron/ComfyUI-VisualQueryTemplate" + ], + "install_type": "git-clone", + "description": "A ComfyUI node for transforming images into descriptive text using templated visual question answering. Leverages Hugging Face's VQA models with transformers" + }, + { + "author": "Alex Genovese", + "title": "Huggingface Api Serverless", + "reference": "https://github.com/alexgenovese/ComfyUI_HF_Servelress_Inference", + "files": [ + "https://github.com/alexgenovese/ComfyUI_HF_Servelress_Inference" + ], + "install_type": "git-clone", + "description": "Huggingface Api Serverless request" + }, + { + "author": "Alex Genovese", + "title": "ComfyUI UNO Nodes", + "reference": "https://github.com/alexgenovese/ComfyUI-UNO-Flux", + "files": [ + "https://github.com/alexgenovese/ComfyUI-UNO-Flux" + ], + "install_type": "git-clone", + "description": "ComfyUI UNO Nodes is a collection of nodes for ComfyUI that allows you to load and use UNO models." + }, + { + "author": "freelifehacker", + "title": "ComfyUI-ImgMask2PNG", + "reference": "https://github.com/freelifehacker/ComfyUI-ImgMask2PNG", + "files": [ + "https://github.com/freelifehacker/ComfyUI-ImgMask2PNG" + ], + "install_type": "git-clone", + "description": "NODES:ImageMask2PNG" + }, + { + "author": "souki202", + "title": "ComfyUI-LoadImage-Advanced", + "reference": "https://github.com/souki202/ComfyUI-LoadImage-Advanced", + "files": [ + "https://github.com/souki202/ComfyUI-LoadImage-Advanced" + ], + "install_type": "git-clone", + "description": "This is a node that simply integrates LoadImage, Vae Encode, Upscale, Resolution factor correction, and Color Adjustment." + }, + { + "author": "drmbt", + "title": "comfyui-dreambait-nodes", + "id": "drmbt", + "reference": "https://github.com/drmbt/comfyui-dreambait-nodes", + "files": [ + "https://github.com/drmbt/comfyui-dreambait-nodes" + ], + "install_type": "git-clone", + "description": "A collection of forks, QoL nodes and utilities for ComfyUI" + }, + { + "author": "InstaSD", + "title": "InstaSD nodes for ComfyUI", + "reference": "https://github.com/WaddingtonHoldings/ComfyUI-InstaSD", + "files": [ + "https://github.com/WaddingtonHoldings/ComfyUI-InstaSD" + ], + "install_type": "git-clone", + "description": "A collection of nodes for use with InstaSD. These nodes will be transformed into app inputs when you deploy your ComfyUI workflow on InstaSD." + }, + { + "author": "Shiba-2-shiba", + "title": "ComfyUI-color-ascii-art-node", + "id": "comfyui-color-ascii-art-node", + "reference": "https://github.com/Shiba-2-shiba/comfyui-color-ascii-art-node", + "files": [ + "https://github.com/Shiba-2-shiba/comfyui-color-ascii-art-node" + ], + "install_type": "git-clone", + "description": "This is a custom node to convert png images into color ASCII art. As noted below, multiple font sizes are used in the specification. The resolution of the generated file is set to be the same as the input image." + }, + { + "author": "Shiba-2-shiba", + "title": "ComfyUI_DiffusionModel_fp8_converter", + "id": "fp8-converter", + "reference": "https://github.com/Shiba-2-shiba/ComfyUI_DiffusionModel_fp8_converter", + "files": [ + "https://github.com/Shiba-2-shiba/ComfyUI_DiffusionModel_fp8_converter" + ], + "install_type": "git-clone", + "description": "This is a custom node to convert only the Diffusion model part or CLIP model part to fp8 in ComfyUI.\nVAE fp8 conversion is not supported.\nThe advantage of this node is that you do not need to separate unet/clip/vae in advance when converting to fp8, but can use the safetenros files that ComfyUI provides." + }, + { + "author": "Shiba-2-shiba", + "title": "ComfyUI_FreeU_V2_timestepadd", + "id": "ComfyUI_FreeU_V2_timestepadd", + "reference": "https://github.com/Shiba-2-shiba/ComfyUI_FreeU_V2_timestepadd", + "files": [ + "https://github.com/Shiba-2-shiba/ComfyUI_FreeU_V2_timestepadd" + ], + "install_type": "git-clone", + "description": "This is a custom node to add timestep for FreeU V2." + }, + { + "author": "Shiba-2-shiba", + "title": "ComfyUI-Magcache-for-SDXL", + "reference": "https://github.com/Shiba-2-shiba/ComfyUI-Magcache-for-SDXL", + "files": [ + "https://github.com/Shiba-2-shiba/ComfyUI-Magcache-for-SDXL" + ], + "install_type": "git-clone", + "description": "An experimental implementation of MagCache for SDXL" + }, + { + "author": "Bao Pham", + "title": "ComfyUI-LyraVSIH", + "id": "lyra-vsih", + "reference": "https://github.com/pbpbpb2705/ComfyUI-LyraVSIH", + "files": [ + "https://github.com/pbpbpb2705/ComfyUI-LyraVSIH" + ], + "install_type": "git-clone", + "description": "This extension provides a set of nodes that can be used to mask multiple object at once" + }, + { + "author": "AbyssBadger0", + "title": "Kolors Awesome Prompts", + "reference": "https://github.com/AbyssBadger0/ComfyUI_Kolors_awesome_prompts", + "files": [ + "https://github.com/AbyssBadger0/ComfyUI_Kolors_awesome_prompts" + ], + "install_type": "git-clone", + "description": "Nodes:KolorsAwesomePrompts" + }, + { + "author": "Hmily", + "title": "ComfyUI-Light-Tool", + "id": "comfyui-light-tool", + "reference": "https://github.com/ihmily/ComfyUI-Light-Tool", + "files": [ + "https://github.com/ihmily/ComfyUI-Light-Tool" + ], + "install_type": "git-clone", + "description": "An awesome light image processing tool nodes for ComfyUI." + }, + { + "author": "k-komarov", + "title": "comfyui-bunny-cdn-storage", + "reference": "https://github.com/k-komarov/comfyui-bunny-cdn-storage", + "files": [ + "https://github.com/k-komarov/comfyui-bunny-cdn-storage" + ], + "install_type": "git-clone", + "description": "Save Your Image to BunnyStorage" + }, + { + "author": "PabloGFX", + "title": "Head-Orientation-Node - by PabloGFX", + "id": "head-orientation-node", + "reference": "https://github.com/lazniak/Head-Orientation-Node-for-ComfyUI---by-PabloGFX", + "files": [ + "https://github.com/lazniak/Head-Orientation-Node-for-ComfyUI---by-PabloGFX" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that analyzes and sorts images based on head orientation using MediaPipe. It detects facial landmarks, calculates head pose, and intelligently sorts images for enhanced AI image processing workflows." + }, + { + "author": "PabloGFX", + "title": "Google Photos Loader - by PabloGFX", + "id": "google-photos-loader", + "reference": "https://github.com/lazniak/comfyui-google-photos-loader", + "files": [ + "https://github.com/lazniak/comfyui-google-photos-loader" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that integrates Google Photos into your workflows. List albums, load images from specific albums, and search photos directly within ComfyUI. Features customizable image loading options, sorting, and efficient caching for seamless integration of your Google Photos library into AI image processing pipelines." + }, + { + "author": "PabloGFX", + "title": "LiquidTime - by PabloGFX", + "id": "liquid-time-interpolation", + "reference": "https://github.com/lazniak/LiquidTime-Interpolation", + "files": [ + "https://github.com/lazniak/LiquidTime-Interpolation" + ], + "install_type": "git-clone", + "description": "LiquidTime is a simple yet powerful frame interpolation node for ComfyUI. Just input your sequence and desired frame count - the node handles all complex calculations and generates smooth in-between frames for you. A must-have tool for AI animation and video creation that lets you shape time like liquid." + }, + { + "author": "45uee", + "title": "ComfyUI-Color_Transfer", + "reference": "https://github.com/45uee/ComfyUI-Color_Transfer", + "files": [ + "https://github.com/45uee/ComfyUI-Color_Transfer" + ], + "install_type": "git-clone", + "description": "Implementation of color transfer using KMeans algorithm" + }, + { + "author": "Phando", + "title": "ComfyUI-PhandoNodes", + "reference": "https://github.com/Phando/ComfyUI-PhandoNodes", + "files": [ + "https://github.com/Phando/ComfyUI-PhandoNodes" + ], + "install_type": "git-clone", + "description": "A collection of nodes to help streamline your ComfyUI workflows" + }, + { + "author": "geocine", + "title": "geocine-comfyui", + "reference": "https://github.com/geocine/geocine-comfyui", + "files": [ + "https://github.com/geocine/geocine-comfyui" + ], + "install_type": "git-clone", + "description": "NODES:Image Selector (geocine), Image Scale (geocine)" + }, + { + "author": "SeanScripts", + "title": "ComfyUI-Unload-Model", + "reference": "https://github.com/SeanScripts/ComfyUI-Unload-Model", + "files": [ + "https://github.com/SeanScripts/ComfyUI-Unload-Model" + ], + "install_type": "git-clone", + "description": "For unloading a model or all models, using the memory management that is already present in ComfyUI. Copied from [a/https://github.com/willblaschko/ComfyUI-Unload-Models](https://github.com/willblaschko/ComfyUI-Unload-Models) but without the unnecessary extra stuff." + }, + { + "author": "SeanScripts", + "title": "ComfyUI-PixtralLlamaMolmoVision", + "reference": "https://github.com/SeanScripts/ComfyUI-PixtralLlamaMolmoVision", + "files": [ + "https://github.com/SeanScripts/ComfyUI-PixtralLlamaMolmoVision" + ], + "install_type": "git-clone", + "description": "For loading and running Pixtral, Llama 3.2 Vision, and Molmo models. Put models in the models/LLM folder." + }, + { + "author": "ExterminanzHS", + "title": "Gecco Discord Autosend", + "reference": "https://github.com/ExterminanzHS/Gecco-Discord-Autosend", + "files": [ + "https://github.com/ExterminanzHS/Gecco-Discord-Autosend" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI to automatically send generated images to Discord channels." + }, + { + "author": "Hugo", + "title": "ComfyUI-BiRefNet-Hugo", + "id": "BiRefNet", + "reference": "https://github.com/MoonHugo/ComfyUI-BiRefNet-Hugo", + "files": [ + "https://github.com/MoonHugo/ComfyUI-BiRefNet-Hugo" + ], + "install_type": "git-clone", + "description": "This repository wraps the latest BiRefNet model as ComfyUI nodes. Compared to the previous model, the latest model offers higher and better matting accuracy." + }, + { + "author": "MoonHugo", + "title": "ComfyUI-FFmpeg", + "id": "FFmpeg", + "reference": "https://github.com/MoonHugo/ComfyUI-FFmpeg", + "files": [ + "https://github.com/MoonHugo/ComfyUI-FFmpeg" + ], + "install_type": "git-clone", + "description": "Encapsulate the commonly used functions of FFmpeg into ComfyUI nodes, making it convenient for users to perform various video processing tasks within ComfyUI." + }, + { + "author": "MoonHugo", + "title": "ComfyUI-StableAudioOpen", + "id": "stable-audio-open", + "reference": "https://github.com/MoonHugo/ComfyUI-StableAudioOpen", + "files": [ + "https://github.com/MoonHugo/ComfyUI-StableAudioOpen" + ], + "install_type": "git-clone", + "description": "The implementation of the audio generation model stable-audio-open in ComfyUI enables ComfyUI to achieve text-to-audio functionality." + }, + { + "author": "MoonHugo", + "title": "ComfyUI-BAGEL-Hugo", + "reference": "https://github.com/MoonHugo/ComfyUI-BAGEL-Hugo", + "files": [ + "https://github.com/MoonHugo/ComfyUI-BAGEL-Hugo" + ], + "install_type": "git-clone", + "description": "This repository encapsulates the BAGEL model as ComfyUI nodes for use, including image editing and image inversion features, but it does not include text-to-image functionality." + }, + { + "author": "GrenKain", + "title": "PixelArt Processing Nodes", + "id": "gk_pixelart", + "reference": "https://github.com/GrenKain/PixelArt-Processing-Nodes-for-ComfyUI", + "files": [ + "https://github.com/GrenKain/PixelArt-Processing-Nodes-for-ComfyUI" + ], + "install_type": "git-clone", + "description": "This repository provides custom nodes for ComfyUI that enable pixel art style image processing, including downscaling, upscaling, color quantization, and resolution adjustments." + }, + { + "author": "Trgtuan10", + "title": "ComfyUI_YoloSegment_Mask", + "reference": "https://github.com/Trgtuan10/ComfyUI_YoloSegment_Mask", + "files": [ + "https://github.com/Trgtuan10/ComfyUI_YoloSegment_Mask" + ], + "install_type": "git-clone", + "description": "NODES:Object Mask.\nNOTE:push [a/yolov8x-seg.pt](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-seg.pt) in models/yolo" + }, + { + "author": "Tenney95", + "title": "ComfyUI-NodeAligner", + "reference": "https://github.com/Tenney95/ComfyUI-NodeAligner", + "files": [ + "https://github.com/Tenney95/ComfyUI-NodeAligner" + ], + "install_type": "git-clone", + "description": "ComfyUI-NodeAligner is a lightweight ComfyUI layout plugin that includes features such as node alignment, distribution, and resizing. This plugin is designed to simplify layout adjustments in visual node editors or custom UI components, making node arrangement more convenient and efficient." + }, + { + "author": "VykosX", + "title": "ControlFlowUtils", + "reference": "https://github.com/VykosX/ControlFlowUtils", + "files": [ + "https://github.com/VykosX/ControlFlowUtils" + ], + "install_type": "git-clone", + "description": "Custom nodes to improve flow control and logic + several utilities to enhance capabilities" + }, + { + "author": "tachyon-beep", + "title": "ComfyUI Simple Feed", + "id": "simplefeed", + "reference": "https://github.com/tachyon-beep/comfyui-simplefeed", + "files": [ + "https://github.com/tachyon-beep/comfyui-simplefeed" + ], + "install_type": "git-clone", + "description": "A lightweight image tray forked from Comfy-UI-CustomScripts with simple sorting, positioning and filtering options." + }, + { + "author": "alexisrolland", + "title": "ComfyUI-Phi", + "reference": "https://github.com/alexisrolland/ComfyUI-Phi", + "files": [ + "https://github.com/alexisrolland/ComfyUI-Phi" + ], + "install_type": "git-clone", + "description": "Custom nodes to run microsoft/Phi models." + }, + { + "author": "alexisrolland", + "title": "ComfyUI-Blender", + "reference": "https://github.com/alexisrolland/ComfyUI-Blender", + "files": [ + "https://github.com/alexisrolland/ComfyUI-Blender" + ], + "install_type": "git-clone", + "description": "Blender plugin to send requests to a ComfyUI server." + }, + { + "author": "LatentRat", + "title": "comfy_remote_run", + "reference": "https://github.com/LatentRat/comfy_remote_run", + "files": [ + "https://github.com/LatentRat/comfy_remote_run" + ], + "install_type": "git-clone", + "description": "Nodes to run nodes on remote ComfyUI instances." + }, + { + "author": "kinglord", + "title": "Prompt Gallery", + "id": "promptGallery", + "reference": "https://github.com/Kinglord/ComfyUI_Prompt_Gallery", + "files": [ + "https://github.com/Kinglord/ComfyUI_Prompt_Gallery" + ], + "install_type": "git-clone", + "description": "New UI on the sidebar that allows for quick and easy navigation of images to help build styles, characters, backgrounds, etc. or even entire random prompts." + }, + { + "author": "kinglord", + "title": "ComfyUI_LoRA_Sidebar", + "reference": "https://github.com/Kinglord/ComfyUI_LoRA_Sidebar", + "files": [ + "https://github.com/Kinglord/ComfyUI_LoRA_Sidebar" + ], + "install_type": "git-clone", + "description": "A custom front-end UX node that creates a visual library of all your LoRAs. It's designed to be fast, slim, and make using LoRAs in Comfy a lot more fun for visual users - especially if you have lots of LoRAs. Should make people used to A1111 and other UI heavy platforms feel more at home. If you've got lots of LoRAs, this sidebar could be your new best friend!" + }, + { + "author": "alexcong", + "title": "Qwen2-VL wrapper for ComfyUI", + "id": "comfyui-qwen2-vl", + "reference": "https://github.com/alexcong/ComfyUI_QwenVL", + "files": [ + "https://github.com/alexcong/ComfyUI_QwenVL" + ], + "install_type": "git-clone", + "description": "ComfyUI Qwen2-VL wrapper that supports text-based and single-image queries." + }, + { + "author": "Bin-sam", + "title": "DynamicPose-ComfyUI", + "reference": "https://github.com/Bin-sam/DynamicPose-ComfyUI", + "files": [ + "https://github.com/Bin-sam/DynamicPose-ComfyUI" + ], + "install_type": "git-clone", + "description": "NODES:pose_extraction, Load_reference_unet, Load_denoising_unet, Load_Pose_Guider, Pose_Guider_Encode, DynamicPose_Sampler, load_pose_model, align" + }, + { + "author": "Metal3d", + "title": "Human Parts Detector", + "id": "human-parts-detector", + "reference": "https://github.com/metal3d/ComfyUI_Human_Parts", + "files": [ + "https://github.com/metal3d/ComfyUI_Human_Parts" + ], + "install_type": "git-clone", + "description": "Detect human parts using the DeepLabV3+ ResNet50 model from Keras-io. You can extract hair, arms, legs, and other parts with ease and with small memory usage." + }, + { + "author": "Metal3d", + "title": "M3D photo effects", + "id": "ComfyUI_M3D_photo_effects", + "reference": "https://github.com/metal3d/ComfyUI_M3D_photo_effects", + "files": [ + "https://github.com/metal3d/ComfyUI_M3D_photo_effects" + ], + "install_type": "git-clone", + "description": "A set of photo effects for ComfyUI, for the moment, only Bleach Bypass effect is provided, but more to come!" + }, + { + "author": "Fuwuffy", + "title": "ComfyUI-VisualArea-Nodes", + "id": "comfyui-visualarea-nodes", + "reference": "https://github.com/Fuwuffyi/ComfyUI-VisualArea-Nodes", + "files": [ + "https://github.com/Fuwuffyi/ComfyUI-VisualArea-Nodes" + ], + "install_type": "git-clone", + "description": "This is a collection of nodes created to aid when managing area conditionings." + }, + { + "author": "Cyber-BlackCat", + "title": "ComfyUI_Auto_Caption", + "reference": "https://github.com/Cyber-BlackCat/ComfyUI_Auto_Caption", + "files": [ + "https://github.com/Cyber-BlackCat/ComfyUI_Auto_Caption" + ], + "install_type": "git-clone", + "description": "Using LLM and Joy tag pipeline to tag your image(s folder), it's suitable for train FLUX LoRA and also sdxl. Load images in order!" + }, + { + "author": "Cyber-BlackCat", + "title": "ComfyUI-Image-Vector", + "reference": "https://github.com/Cyber-BlackCat/ComfyUI-Image-Vector", + "files": [ + "https://github.com/Cyber-BlackCat/ComfyUI-Image-Vector" + ], + "install_type": "git-clone", + "description": "modify the original node instruction of image vector, add ‘imagemagick’ which is the key base Python library of ‘wand’ library." + }, + { + "author": "cr7Por", + "title": "ComfyUI_DepthFlow", + "reference": "https://github.com/cr7Por/ComfyUI_DepthFlow", + "files": [ + "https://github.com/cr7Por/ComfyUI_DepthFlow" + ], + "install_type": "git-clone", + "description": "comfyui custom node for depthflow\noriginal depthflow website: [a/https://github.com/BrokenSource/DepthFlow](https://github.com/BrokenSource/DepthFlow)\ncheck this for installation: [a/https://brokensrc.dev/get/](https://brokensrc.dev/get/)" + }, + { + "author": "aimerib", + "title": "ComfyUI-HigherBitDepthSaveImage", + "reference": "https://github.com/aimerib/ComfyUI_HigherBitDepthSaveImage", + "files": [ + "https://github.com/aimerib/ComfyUI_HigherBitDepthSaveImage" + ], + "install_type": "git-clone", + "description": "A comfyui node that provides save image with higher bit depth." + }, + { + "author": "nchenevey1", + "title": "comfyui-gimp-nodes", + "reference": "https://github.com/nchenevey1/comfyui-gimp-nodes", + "files": [ + "https://github.com/nchenevey1/comfyui-gimp-nodes" + ], + "install_type": "git-clone", + "description": "Provides nodes geared towards using GIMP as a frontend for ComfyUI." + }, + { + "author": "MetaGLM", + "title": "ComfyUI ZhipuAI Platform", + "id": "zhipuai-platform", + "reference": "https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform", + "files": [ + "https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform" + ], + "pip": ["zhipuai-platform-video"], + "install_type": "git-clone", + "description": "This platform extension provides ZhipuAI nodes, enabling you to configure a workflow for online video generation." + }, + { + "author": "zhiselfly", + "title": "ComfyUI-Alimama-ControlNet-compatible", + "reference": "https://github.com/zhiselfly/ComfyUI-Alimama-ControlNet-compatible", + "files": [ + "https://github.com/zhiselfly/ComfyUI-Alimama-ControlNet-compatible" + ], + "install_type": "git-clone", + "description": "Compatible with alimama's SD3-ControlNet Demo on ComfyUI." + }, + { + "author": "pydn", + "title": "ComfyUI to Python Extension", + "id": "comfyui-to-python-extension", + "reference": "https://github.com/pydn/ComfyUI-to-Python-Extension", + "files": [ + "https://github.com/pydn/ComfyUI-to-Python-Extension" + ], + "install_type": "git-clone", + "description": "This custom node allows you to generate pure python code from your ComfyUI workflow with the click of a button. Great for rapid experimentation or production deployment." + }, + { + "author": "Dayuppy", + "title": "Discord Webhook", + "id": "DiscordWebhook", + "reference": "https://github.com/Dayuppy/ComfyUI-DiscordWebhook", + "files": [ + "https://github.com/Dayuppy/ComfyUI-DiscordWebhook" + ], + "install_type": "git-clone", + "description": "A very simple Discord webhook integration node for ComfyUI that lets you post images and text." + }, + { + "author": "NyaamZ", + "title": "Efficiency Nodes ExtendeD", + "id": "efficiency-ed", + "reference": "https://github.com/NyaamZ/efficiency-nodes-ED", + "files": [ + "https://github.com/NyaamZ/efficiency-nodes-ED" + ], + "install_type": "git-clone", + "description": "Expansion of Efficiency Nodes for ComfyUI. Significant UX improvements.[w/NOTE: This node requires [a/efficiency-nodes-comfyui](https://github.com/jags111/efficiency-nodes-comfyui) and [a/ComfyUI-Custom-Scripts](https://github.com/pythongosssss/ComfyUI-Custom-Scripts); it also requires start.bat to run.]" + }, + { + "author": "NyaamZ", + "title": "ComfyUI ImageGallery ExtendeD", + "id": "image-gallery-ed", + "reference": "https://github.com/NyaamZ/ComfyUI-ImageGallery-ED", + "files": [ + "https://github.com/NyaamZ/ComfyUI-ImageGallery-ED" + ], + "install_type": "git-clone", + "description": "Custom javascript extensions for better UX for ComfyUI. Double click on image to open. It's convenient for checking images." + }, + { + "author": "chrissy0", + "title": "chris-comfyui-nodes", + "reference": "https://github.com/chrissy0/chris-comfyui-nodes", + "files": [ + "https://github.com/chrissy0/chris-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "This repository contains a custom node for ComfyUI that pads an image to be square, filling the new pixels black." + }, + { + "author": "revirevy", + "title": "Comfyui_saveimage_imgbb", + "id": "Comfyui_saveimage_imgbb", + "reference": "https://github.com/revirevy/Comfyui_saveimage_imgbb", + "files": [ + "https://github.com/revirevy/Comfyui_saveimage_imgbb" + ], + "install_type": "git-clone", + "description": "This custom node allow you to upload result images to imgbb." + }, + { + "author": "Kinglord", + "title": "ComfyUI_Slider_Sidebar", + "reference": "https://github.com/Kinglord/ComfyUI_Slider_Sidebar", + "files": [ + "https://github.com/Kinglord/ComfyUI_Slider_Sidebar" + ], + "install_type": "git-clone", + "description": "A custom node that adds a UI element to the sidebar allowing easy access, navigation, and use of a massive collection (100+) of LECO (Slider) LoRAs. LECOs are an amazing tool to generate variance in your output with a minimal impact to consistency, i.e. deviating form your prompt. They can also allow you access to control parts of your image without taking up CLIP space, saving your token weights for more valuable keywords. If you haven't used them, there's never been a better time to try!" + }, + { + "author": "Isi-dev", + "title": "Image to Painting and Inspyrenet Assistant Nodes", + "id": "ComfyUI-Img2PaintingAssistant", + "reference": "https://github.com/Isi-dev/ComfyUI-Img2PaintingAssistant", + "reference2": "https://github.com/Isi-dev/ComfyUI_Img2PaintingAssistant", + "files": [ + "https://github.com/Isi-dev/ComfyUI-Img2PaintingAssistant" + ], + "install_type": "git-clone", + "description": "These are ComfyUI nodes to assist in converting images to paintings and to assist the Inspyrenet Rembg node to totally remove, or replace with a color, the original background from images so that the background does not reappear in videos or in nodes that do not retain the alpha channel in rgba images." + }, + { + "author": "311-code", + "title": "ComfyUI MagicClip_Strength for SDXL", + "reference": "https://github.com/311-code/ComfyUI-MagicClip_Strength", + "files": [ + "https://github.com/311-code/ComfyUI-MagicClip_Strength" + ], + "install_type": "git-clone", + "description": "This project allows you to adjust SDXL's two text encoder's strengths individually for clip_g (ViT-bigG) and clip_l (CLIP-ViT-L) within ComfyUI. (And other adjustments)" + }, + { + "author": "godmt", + "title": "ComfyUI-List-Utils", + "reference": "https://github.com/godmt/ComfyUI-List-Utils", + "files": [ + "https://github.com/godmt/ComfyUI-List-Utils" + ], + "install_type": "git-clone", + "description": "LIST and BATCH utilities which support: create, convert, get or slice items" + }, + { + "author": "godmt", + "title": "ComfyUI-IP-Composer", + "reference": "https://github.com/godmt/ComfyUI-IP-Composer", + "files": [ + "https://github.com/godmt/ComfyUI-IP-Composer" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper of IP-Composer" + }, + { + "author": "pedrogengo", + "title": "ComfyUI-LumaAI-API", + "id": "lumaai-api", + "reference": "https://github.com/lumalabs/ComfyUI-LumaAI-API", + "files": [ + "https://github.com/lumalabs/ComfyUI-LumaAI-API" + ], + "install_type": "git-clone", + "description": "Luma Dream Machine API official ComfyUI custom node." + }, + { + "author": "mingsky", + "title": "ComfyUI-MingNodes", + "id": "ComfyUI_MingNodes_Mingsky", + "reference": "https://github.com/mingsky-ai/ComfyUI-MingNodes", + "files": [ + "https://github.com/mingsky-ai/ComfyUI-MingNodes" + ], + "install_type": "git-clone", + "description": "Nodes: ConvertGrayChannelNode, AdjustBrightnessContrastSaturationNode, BaiduTranslateNode." + }, + { + "author": "blob8", + "title": "ComfyUI_sloppy-comic", + "reference": "https://github.com/blob8/ComfyUI_sloppy-comic", + "files": [ + "https://github.com/blob8/ComfyUI_sloppy-comic" + ], + "install_type": "git-clone", + "description": "Using IPAdapter for style consistency, the node accepts a story structured as text {prompt} text {prompt} etc. and generates a comic, saving it to /output. It also adds LLM API Request node, providing an openai compatible LLM API for generating the stories." + }, + { + "author": "banqingyuan", + "title": "ComfyUI-text-replace", + "reference": "https://github.com/banqingyuan/ComfyUI-text-replace", + "files": [ + "https://github.com/banqingyuan/ComfyUI-text-replace" + ], + "install_type": "git-clone", + "description": "NODES: OCR Location Node, Image Erase Node, Chat Overlay Node, Extract JSON Node." + }, + { + "author": "edelvarden", + "title": "comfyui_image_metadata_extension", + "reference": "https://github.com/edelvarden/comfyui_image_metadata_extension", + "files": [ + "https://github.com/edelvarden/comfyui_image_metadata_extension" + ], + "install_type": "git-clone", + "description": "Custom node for ComfyUI. It adds additional metadata for saved images, ensuring compatibility with the Civitai website." + }, + { + "author": "edelvarden", + "title": "ComfyUI-Display-Value", + "reference": "https://github.com/edelvarden/ComfyUI-Display-Value", + "files": [ + "https://github.com/edelvarden/ComfyUI-Display-Value" + ], + "install_type": "git-clone", + "description": "Custom node for ComfyUI to show values of primitives (str, float, int, or bool)." + }, + { + "author": "dfghsdh", + "title": "ComfyUI_FluxPromptGen", + "reference": "https://github.com/dfghsdh/ComfyUI_FluxPromptGen", + "files": [ + "https://github.com/dfghsdh/ComfyUI_FluxPromptGen" + ], + "install_type": "git-clone", + "description": "Flux Prompt Generator is a custom node set for ComfyUI that enhances prompt generation and image captioning capabilities. It integrates advanced language models and image captioning techniques to provide versatile and powerful prompt manipulation tools for your AI image generation workflows.\nNOTE:PORT OF [a/https://huggingface.co/Aitrepreneur/FLUX-Prompt-Generator](https://huggingface.co/Aitrepreneur/FLUX-Prompt-Generator) for COMFYUI" + }, + { + "author": "liushuchun", + "title": "ComfyUI_Lora_List_With_Url_Loader", + "reference": "https://github.com/liushuchun/ComfyUI_Lora_List_With_Url_Loader", + "files": [ + "https://github.com/liushuchun/ComfyUI_Lora_List_With_Url_Loader" + ], + "install_type": "git-clone", + "description": "Nodes:ComfyUI_Lora_List_With_Url_Loader. Load loras from urls and auto fetch them on web if they are missing." + }, + { + "author": "silveroxides", + "title": "Model and Checkpoint Loaders for NF4 and FP4", + "reference": "https://github.com/silveroxides/ComfyUI_bnb_nf4_fp4_Loaders", + "files": [ + "https://github.com/silveroxides/ComfyUI_bnb_nf4_fp4_Loaders" + ], + "install_type": "git-clone", + "description": "Nodes for loading both Checkpoints and UNET/Diffussion models quantized to bitsandbytes NF4 or FP4 format.\nStill under development and some limitations such as using LoRA might apply still." + }, + { + "author": "silveroxides", + "title": "ComfyUI-RR-JointTagger", + "reference": "https://github.com/silveroxides/ComfyUI-RR-JointTagger", + "files": [ + "https://github.com/silveroxides/ComfyUI-RR-JointTagger" + ], + "install_type": "git-clone", + "description": "Tagger used to tag image of but not limited to furry art." + }, + { + "author": "silveroxides", + "title": "Model Utility Toolkit", + "id": "comfyui_modelutils", + "reference": "https://github.com/silveroxides/ComfyUI-ModelUtils", + "files": [ + "https://github.com/silveroxides/ComfyUI-ModelUtils" + ], + "install_type": "git-clone", + "description": "[WIP]Custom nodes for handling, inspecting, modifying and creating various model files." + }, + { + "author": "silveroxides", + "title": "ComfyUI Sigmoid Offset Scheduler", + "reference": "https://github.com/silveroxides/ComfyUI_SigmoidOffsetScheduler", + "files": [ + "https://github.com/silveroxides/ComfyUI_SigmoidOffsetScheduler" + ], + "install_type": "git-clone", + "description": "Scheduler for ComfyUI and an attempt at optimized scheduler for the Chroma architecture." + }, + { + "author": "silveroxides", + "title": "ComfyUI_EmbeddingToolkit", + "reference": "https://github.com/silveroxides/ComfyUI_EmbeddingToolkit", + "files": [ + "https://github.com/silveroxides/ComfyUI_EmbeddingToolkit" + ], + "install_type": "git-clone", + "description": "Toolkit for creating embeddings for various models in ComfyUI." + }, + { + "author": "silveroxides", + "title": "ComfyUI_FDGuidance", + "reference": "https://github.com/silveroxides/ComfyUI_FDGuidance", + "files": [ + "https://github.com/silveroxides/ComfyUI_FDGuidance" + ], + "install_type": "git-clone", + "description": "An implementation of Frequency-Decoupled Guidance (FDG) in pure Pytorch." + }, + { + "author": "turkyden", + "title": "ComfyUI-SmartCrop", + "reference": "https://github.com/turkyden/ComfyUI-SmartCrop", + "files": [ + "https://github.com/turkyden/ComfyUI-SmartCrop" + ], + "install_type": "git-clone", + "description": "a ComfyUI Custom Node for [a/smartcrop.py](https://github.com/smartcrop/smartcrop.py)" + }, + { + "author": "DareFail", + "title": "ComfyUI-Roboflow", + "reference": "https://github.com/DareFail/ComfyUI-Roboflow", + "files": [ + "https://github.com/DareFail/ComfyUI-Roboflow" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI node that connects with [a/Roboflow workflows](https://roboflow.com/workflows/build).\nRoboflow hosts hundreds of thousands of open source and custom object detection models." + }, + { + "author": "valofey", + "title": "OpenRouter Node", + "reference": "https://github.com/valofey/Openrouter-Node", + "files": [ + "https://github.com/valofey/Openrouter-Node" + ], + "install_type": "git-clone", + "description": "This is a node to use OpenRouter API from within ComfyUI. It supports both prompt and image+prompt requests (for multimodal LLMs)." + }, + { + "author": "Charlweed", + "title": "ImageTransceiver - ComfyUI", + "reference": "https://github.com/Charlweed/image_transceiver", + "files": [ + "https://github.com/Charlweed/image_transceiver" + ], + "install_type": "git-clone", + "description": "ImageTransceiver is a custom node that enables image generating clients to connect directly to ComfyUI, and send those images in near real-time. For example, an image manipulation program like GIMP can connect an image to a workflow in ComfyUI, and every time the image changes in GIMP, the changes are immediately made in the workflow. Cloning" + }, + { + "author": "tanglaoya321", + "title": "ComfyUI-StoryMaker", + "reference": "https://github.com/tanglaoya321/ComfyUI-StoryMaker", + "files": [ + "https://github.com/tanglaoya321/ComfyUI-StoryMaker" + ], + "install_type": "git-clone", + "description": "NODES:StoryMakerSinglePortraitNode, StoryMakerTwoPortraitNode, StoryMakerSwapClothNode." + }, + { + "author": "CRT", + "title": "CRT-Nodes", + "id": "crt-nodes", + "reference": "https://github.com/plugcrypt/CRT-Nodes", + "reference2": "https://github.com/PGCRT/CRT-Nodes", + "files": [ + "https://github.com/plugcrypt/CRT-Nodes" + ], + "install_type": "git-clone", + "description": "CRT-Nodes is a collection of custom nodes for ComfyUI" + }, + { + "author": "GiusTex", + "title": "ComfyUI-DiffusersImageOutpaint", + "reference": "https://github.com/GiusTex/ComfyUI-DiffusersImageOutpaint", + "files": [ + "https://github.com/GiusTex/ComfyUI-DiffusersImageOutpaint" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for outpainting images with diffusers, based on [a/diffusers-image-outpaint](https://huggingface.co/spaces/fffiloni/diffusers-image-outpaint/tree/main) by fffiloni." + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-MiniCPM-Plus", + "id": "minicpm-plus", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-Plus", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-Plus" + ], + "install_type": "git-clone", + "description": "Custom nodes for MiniCPM language models in ComfyUI. Provides advanced text generation and image understanding functions." + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-Molmo", + "id": "comfyui-molmo", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-Molmo", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-Molmo" + ], + "install_type": "git-clone", + "description": "Use of the molmo model.Generate detailed image descriptions and analysis using Molmo models in ComfyUI." + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-InpaintEasy", + "id": "ComfyUI-InpaintEasy", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-InpaintEasy", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-InpaintEasy" + ], + "tags": ["inpaint", "crop", "image"], + "install_type": "git-clone", + "description": "InpaintEasy is a set of optimized local repainting (Inpaint) nodes that provide a simpler and more powerful local repainting workflow. It makes local repainting work easier and more efficient with intelligent cropping and merging functions." + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-OmniGenX", + "id": "ComfyUI-OmniGenX", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-OmniGenX", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-OmniGenX" + ], + "install_type": "git-clone", + "description": "OmniGen Unified Image Generation Model Integration." + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-Redux-Prompt", + "id": "ComfyUI-Redux-Prompt", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-Redux-Prompt", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-Redux-Prompt" + ], + "tags": ["Flux", "redux", "prompt"], + "install_type": "git-clone", + "description": "A ComfyUI custom node that provides fine-grained control over style transfer using Redux style models." + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-MiniCPM-o", + "id": "ComfyUI-MiniCPM-o", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-o", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-o" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for MiniCPM" + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-Janus-Pro", + "id": "ComfyUI-Janus-Pro", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-Janus-Pro", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-Janus-Pro" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for Janus-Pro, a unified multimodal understanding and generation framework." + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-Free-GPU", + "id": "ComfyUI-Free-GPU", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-Free-GPU", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-Free-GPU" + ], + "description": "ComfyUI-Free-GPU provides a node for releasing RAM and VRAM in ComfyUI.", + "install_type": "git-clone" + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-Gemini-API", + "id": "ComfyUI-Gemini-API", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-Gemini-API", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-Gemini-API" + ], + "description": "A custom node for ComfyUI to integrate Google Gemini API.", + "install_type": "git-clone" + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-GPT-API", + "id": "ComfyUI-GPT-API", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-GPT-API", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-GPT-API" + ], + "description": "A custom node for ComfyUI to integrate GPT API.", + "install_type": "git-clone" + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-FramePack-HY", + "id": "ComfyUI-FramePack-HY", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-FramePack-HY", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-FramePack-HY" + ], + "description": "A custom node for ComfyUI to FramePack.", + "install_type": "git-clone" + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-ImageCompositionCy", + "id": "ComfyUI-ImageCompositionCy", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-ImageCompositionCy", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-ImageCompositionCy" + ], + "description": "A powerful ComfyUI multi-image composition node that supports real-time adjustment of image position, size, and rotation angle on an interactive Canvas, with freehand drawing capabilities and real-time preview of composition effects.", + "install_type": "git-clone" + }, + { + "author": "codecringebinge", + "title": "ComfyUI-Arrow-Key-Canvas-Navigation", + "id": "codecringebinge.arrow.key.canvas.navigation", + "reference": "https://github.com/codecringebinge/ComfyUI-Arrow-Key-Canvas-Navigation", + "files": [ + "https://github.com/codecringebinge/ComfyUI-Arrow-Key-Canvas-Navigation" + ], + "install_type": "git-clone", + "description": "A ComfyUI Custom Node that enables arrow key canvas navigation with a pan speed setting." + }, + { + "author": "asaddi", + "title": "ComfyUI-YALLM-node", + "reference": "https://github.com/asaddi/ComfyUI-YALLM-node", + "files": [ + "https://github.com/asaddi/ComfyUI-YALLM-node" + ], + "install_type": "git-clone", + "description": "Yet another set of LLM nodes for ComfyUI (for local/remote OpenAI-like APIs, multi-modal models supported)" + }, + { + "author": "asaddi", + "title": "YALLM-LlamaVision", + "reference": "https://github.com/asaddi/YALLM-LlamaVision", + "files": [ + "https://github.com/asaddi/YALLM-LlamaVision" + ], + "install_type": "git-clone", + "description": "A set of nodes for basic Llama 3.2 Vision support in ComfyUI. Give it an image and query and it will output a text response." + }, + { + "author": "ycyy", + "title": "ComfyUI-YCYY-LoraInfo", + "reference": "https://github.com/ycyy/ComfyUI-YCYY-LoraInfo", + "files": [ + "https://github.com/ycyy/ComfyUI-YCYY-LoraInfo" + ], + "install_type": "git-clone", + "description": "You can use this node to get information about lora. For example trigger words, description and example images." + }, + { + "author": "Darth-Veitcher", + "title": "Comfy DV", + "id": "comfydv", + "reference": "https://github.com/darth-veitcher/comfydv", + "files": [ + "https://github.com/darth-veitcher/comfydv" + ], + "install_type": "git-clone", + "description": "Nodes: String Formatting (f-string and jinja2), Random Choice, Model Memory management, and other quality of life improvements." + }, + { + "author": "ez-af", + "title": "ComfyUI-EZ-AF-Nodes", + "reference": "https://github.com/ez-af/ComfyUI-EZ-AF-Nodes", + "files": [ + "https://github.com/ez-af/ComfyUI-EZ-AF-Nodes" + ], + "install_type": "git-clone", + "description": "Conveniently control parts of text prompts with custom UI. Pack includes loaders from txt and csv files, dynamic text concatenation tool and easy-to-use input node" + }, + { + "author": "danbochman", + "title": "FASHN Virtual Try-On", + "id": "fashn", + "reference": "https://github.com/fashn-AI/ComfyUI-FASHN", + "files": [ + "https://github.com/fashn-AI/ComfyUI-FASHN" + ], + "install_type": "git-clone", + "description": "Node for the FASHN Virtual Try-On API. Requires an API Key from fashn.ai" + }, + { + "author": "BRIA AI", + "title": "BRIA AI API nodes", + "reference": "https://github.com/Bria-AI/ComfyUI-BRIA-API", + "files": [ + "https://github.com/Bria-AI/ComfyUI-BRIA-API" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI using BRIA's API." + }, + { + "author": "L.HC", + "title": "SimpleToolsNodes", + "reference": "https://github.com/Mcmillian/ComfyUI-SimpleToolsNodes", + "files": [ + "https://github.com/Mcmillian/ComfyUI-SimpleToolsNodes" + ], + "install_type": "git-clone", + "description": "Two simple nodes: 1. Get the steps based on the model name, 2. Generate prompts using chatglm." + }, + { + "author": "creeper", + "title": "comfyui_nai_api", + "reference": "https://github.com/Creeper-MZ/comfyui_nai_api", + "files": [ + "https://github.com/Creeper-MZ/comfyui_nai_api" + ], + "install_type": "git-clone", + "description": "A node that can use Nai in Comfyui" + }, + { + "author": "guyaton", + "title": "guy-nodes-comfyui", + "reference": "https://github.com/guyaton/guy-nodes-comfyui", + "files": [ + "https://github.com/guyaton/guy-nodes-comfyui" + ], + "install_type": "git-clone", + "description": "These are designed to be custom nodes i found usefulness to that hopefully others can share." + }, + { + "author": "thoddnn", + "title": "ComfyUI MLX Nodes", + "reference": "https://github.com/thoddnn/ComfyUI-MLX", + "files": [ + "https://github.com/thoddnn/ComfyUI-MLX" + ], + "install_type": "git-clone", + "description": "Faster workflows for ComfyUI users on Mac with Apple silicon" + }, + { + "author": "acorderob", + "title": "Prompt PostProcessor", + "reference": "https://github.com/acorderob/sd-webui-prompt-postprocessor", + "files": [ + "https://github.com/acorderob/sd-webui-prompt-postprocessor" + ], + "install_type": "git-clone", + "description": "Stable Diffusion WebUI & ComfyUI extension to post-process the prompt, including sending content from the prompt to the negative prompt and wildcards." + }, + { + "author": "Moooonet", + "title": "ComfyUI-Align", + "reference": "https://github.com/Moooonet/ComfyUI-Align", + "files": [ + "https://github.com/Moooonet/ComfyUI-Align" + ], + "install_type": "git-clone", + "description": "A powerful node alignment and color management plugin for ComfyUI, designed to enhance your workflow efficiency" + }, + { + "author": "Nojahhh", + "title": "ComfyUI GLM-4 Wrapper", + "reference": "https://github.com/Nojahhh/ComfyUI_GLM4_Wrapper", + "files": [ + "https://github.com/Nojahhh/ComfyUI_GLM4_Wrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI GLM-4 Wrapper. This powerful tool enhances your prompt engineering process by allowing users to easily construct detailed, high-quality prompts for image/video generation based on user image and/or user prompts." + }, + { + "author": "nilor-corp", + "title": "Nilor Nodes by Nilor Corp", + "id": "nilor-nodes", + "reference": "https://github.com/nilor-corp/nilor-nodes", + "files": [ + "https://github.com/nilor-corp/nilor-nodes" + ], + "install_type": "git-clone", + "description": "Custom utility nodes for ComfyUI by Nilor Corp. Probably not useful for most people, but contains stuff for working with lists, filenames, image batches, etc in a very specifc way." + }, + { + "author": "willchil", + "title": "ComfyUI-Environment-Visualizer", + "reference": "https://github.com/willchil/ComfyUI-Environment-Visualizer", + "files": [ + "https://github.com/willchil/ComfyUI-Environment-Visualizer" + ], + "install_type": "git-clone", + "description": "This ComfyUI node pack allows the user to take a panoramic image and a corresponding depth map, and turn them into a 3D environment, which they can view in an immersive WebXR environment." + }, + { + "author": "YarvixPA", + "title": "ComfyUI-YarvixPA", + "reference": "https://github.com/YarvixPA/ComfyUI-YarvixPA", + "files": [ + "https://github.com/YarvixPA/ComfyUI-YarvixPA" + ], + "install_type": "git-clone", + "description": "A set of custom nodes that simplify things." + }, + { + "author": "AcademiaSD", + "title": "comfyui_AcademiaSD", + "reference": "https://github.com/AcademiaSD/comfyui_AcademiaSD", + "files": [ + "https://github.com/AcademiaSD/comfyui_AcademiaSD" + ], + "install_type": "git-clone", + "description": "Official set of custom nodes of AcademiaSD." + }, + { + "author": "SpenserCai", + "title": "ComfyUI-FunAudioLLM", + "id": "funaudiollm", + "reference": "https://github.com/SpenserCai/ComfyUI-FunAudioLLM", + "files": [ + "https://github.com/SpenserCai/ComfyUI-FunAudioLLM" + ], + "install_type": "git-clone", + "description": "Comfyui custom node for [a/FunAudioLLM](https://funaudiollm.github.io/) include [a/CosyVoice](https://github.com/FunAudioLLM/CosyVoice) and [a/SenseVoice](https://github.com/FunAudioLLM/SenseVoice)." + }, + { + "author": "GadzoinksOfficial", + "title": "Gadzoinks", + "reference": "https://github.com/GadzoinksOfficial/gadzoinks_ComfyUI", + "files": [ + "https://github.com/GadzoinksOfficial/gadzoinks_ComfyUI" + ], + "install_type": "git-clone", + "description": "Custom node for integrating with gadzoinks iPhone app" + }, + { + "author": "GadzoinksOfficial", + "title": "Gprompts", + "reference": "https://github.com/GadzoinksOfficial/comfyui_gprompts", + "files": [ + "https://github.com/GadzoinksOfficial/comfyui_gprompts" + ], + "install_type": "git-clone", + "description": "Another dynamic prompt node, designed to be easy to use and support wildcards" + }, + { + "author": "educator-art", + "title": "ComfyUI-Load-DirectoryFiles", + "reference": "https://github.com/educator-art/ComfyUI-Load-DirectoryFiles", + "files": [ + "https://github.com/educator-art/ComfyUI-Load-DirectoryFiles" + ], + "install_type": "git-clone", + "description": "This node loads prompts (txt) and images (png) from a specified directory. By specifying an index, it outputs the selected file." + }, + { + "author": "educator-art", + "title": "ComfyUI-gpt-oss-PromptDesigner", + "reference": "https://github.com/educator-art/ComfyUI-gpt-oss-PromptDesigner", + "files": [ + "https://github.com/educator-art/ComfyUI-gpt-oss-PromptDesigner" + ], + "install_type": "git-clone", + "description": "Using the ollama gpt-oss:20b model, a prompt is generated. The user enters the desired theme into a custom node and runs it, and the model outputs a Stable Diffusion prompt. This is useful when you want the model to handle prompt creation for you." + }, + { + "author": "raysers", + "title": "Mflux-ComfyUI", + "reference": "https://github.com/raysers/Mflux-ComfyUI", + "files": [ + "https://github.com/raysers/Mflux-ComfyUI" + ], + "install_type": "git-clone", + "description": "Simple use of [a/Mflux](https://github.com/filipstrand/mflux) in ComfyUI, suitable for users who are not familiar with terminal usage.\nNOTE: A MLX port of FLUX based on the Huggingface Diffusers implementation." + }, + { + "author": "civen-cn", + "title": "ComfyUI-PaddleOcr", + "reference": "https://github.com/civen-cn/ComfyUI-PaddleOcr", + "files": [ + "https://github.com/civen-cn/ComfyUI-PaddleOcr" + ], + "install_type": "git-clone", + "description": "Nodes related to [a/PaddleOCR](https://paddlepaddle.github.io/PaddleOCR) OCR." + }, + { + "author": "rdancer", + "title": "ComfyUI_Florence2SAM2", + "reference": "https://github.com/rdancer/ComfyUI_Florence2SAM2", + "files": [ + "https://github.com/rdancer/ComfyUI_Florence2SAM2" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node implementing Florence 2 + Segment Anything Model 2, based on [a/SkalskiP's HuggingFace space](https://huggingface.co/spaces/SkalskiP/florence-sam)" + }, + { + "author": "gelasdev", + "title": "ComfyUI-FLUX-BFL-API", + "reference": "https://github.com/gelasdev/ComfyUI-FLUX-BFL-API", + "files": [ + "https://github.com/gelasdev/ComfyUI-FLUX-BFL-API" + ], + "install_type": "git-clone", + "description": "Custom nodes for integrating Flux models with the BFL API." + }, + { + "author": "ggarra13", + "title": "ComfyUI-mrv2", + "reference": "https://github.com/ggarra13/ComfyUI-mrv2", + "files": [ + "https://github.com/ggarra13/ComfyUI-mrv2" + ], + "install_type": "git-clone", + "description": "Nodes to interact with the mrv2 player" + }, + { + "author": "SSsnap", + "title": "Snap Processing for Comfyui", + "reference": "https://github.com/SS-snap/ComfyUI-Snap_Processing", + "files": [ + "https://github.com/SS-snap/ComfyUI-Snap_Processing" + ], + "install_type": "git-clone", + "description": "The custom Snap processing node has been converted for ComfyUI production. It currently includes a simple PyQt5 interactive interface as well as practical nodes for basic operations like area calculation.." + }, + { + "author": "SSsnap", + "title": "ComfyUI-LBW_flux", + "reference": "https://github.com/SS-snap/ComfyUI-LBW_flux", + "files": [ + "https://github.com/SS-snap/ComfyUI-LBW_flux" + ], + "install_type": "git-clone", + "description": "Through this node, you can more easily test the impact of different blocks in flux_lora on the final result." + }, + { + "author": "SSsnap", + "title": "ComfyUI-Ad-scheduler", + "reference": "https://github.com/SS-snap/ComfyUI-Ad_scheduler", + "files": [ + "https://github.com/SS-snap/ComfyUI-Ad_scheduler" + ], + "install_type": "git-clone", + "description": "This node is used to enhance image details. We can add a latent space image and introduce any amount of noise. Then, we can start denoising at any timestep. This allows us to add more details to the image while maintaining overall consistency as much as possible." + }, + { + "author": "SSsnap", + "title": "Comfyui_SSsnap_pose-Remapping", + "reference": "https://github.com/SS-snap/Comfyui_SSsnap_pose-Remapping", + "files": [ + "https://github.com/SS-snap/Comfyui_SSsnap_pose-Remapping" + ], + "install_type": "git-clone", + "description": "A pose remapping node with support for joint locking, motion-aware scaling, and optional easing - perfect for animation refinement and mech rig control." + }, + { + "author": "RiceRound", + "title": "ComfyUI Compression and Encryption Node", + "id": "cryptocat", + "reference": "https://github.com/RiceRound/ComfyUI_CryptoCat", + "files": [ + "https://github.com/RiceRound/ComfyUI_CryptoCat" + ], + "install_type": "git-clone", + "description": "a lightweight open-source node for ComfyUI, designed to simplify workflows while providing encryption protection for them." + }, + { + "author": "RiceRound", + "title": "RiceRound Cloud Node", + "id": "riceround", + "reference": "https://github.com/RiceRound/ComfyUI_RiceRound", + "files": [ + "https://github.com/RiceRound/ComfyUI_RiceRound" + ], + "install_type": "git-clone", + "description": "This is an imaginative project that allows for one-click deployment, providing both an online page and a ComfyUI cloud node.[w/This custom node is vulnerable because it can dynamically download and execute nodes.]" + }, + { + "author": "yvann-ba", + "title": "ComfyUI_Yvann-Nodes", + "reference": "https://github.com/yvann-ba/ComfyUI_Yvann-Nodes", + "files": [ + "https://github.com/yvann-ba/ComfyUI_Yvann-Nodes" + ], + "install_type": "git-clone", + "description": "Audio Reactive nodes for AI animations 🔊 Analyze audio, extract drums, bass, vocals. Compatible with IPAdapter, ControlNets, AnimateDiff... Generate reactive masks and weights. Create audio-driven visuals. Produce weight graphs and audio masks. Ideal for music videos and reactive animations. Features audio scheduling and waveform analysis" + }, + { + "author": "Playbook", + "title": "Playbook Nodes", + "id": "playbook-3d", + "reference": "https://github.com/playbook3d/playbook3d-comfyui-nodes", + "files": [ + "https://github.com/playbook3d/playbook3d-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "Custom nodes for connecting 3D scenes and ComfyUI workflows." + }, + { + "author": "Elaine-chennn", + "title": "ComfyUI Overlay Media Node", + "reference": "https://github.com/Elaine-chennn/comfyui-overlay-media", + "files": [ + "https://github.com/Elaine-chennn/comfyui-overlay-media" + ], + "install_type": "git-clone", + "description": "This repository contains a custom ComfyUI node for overlaying media using ffmpeg." + }, + { + "author": "LAOGOU-666", + "title": "ComfyUI_LG_FFT", + "reference": "https://github.com/LAOGOU-666/ComfyUI_LG_FFT", + "files": [ + "https://github.com/LAOGOU-666/ComfyUI_LG_FFT" + ], + "install_type": "git-clone", + "description": "Implementation of Fast Fourier Transform in COMFYUI" + }, + { + "author": "LAOGOU-666", + "title": "Comfyui-LG_Relight", + "reference": "https://github.com/LAOGOU-666/Comfyui-LG_Relight", + "files": [ + "https://github.com/LAOGOU-666/Comfyui-LG_Relight" + ], + "install_type": "git-clone", + "description": "A simple implementation of real-time 3D lighting in ComfyUI. It's an open-source node, have fun playing around!" + }, + { + "author": "LAOGOU-666", + "title": "ComfyUI-LG_HotReload", + "id": "ComfyUI-LG_HotReload", + "reference": "https://github.com/LAOGOU-666/ComfyUI-LG_HotReload", + "files": [ + "https://github.com/LAOGOU-666/ComfyUI-LG_HotReload" + ], + "install_type": "git-clone", + "description": "An extension for ComfyUI that allows hot reloading. Once installed, you can preview changes in real-time while developing custom nodes or installing plugins without restarting ComfyUI." + }, + { + "author": "LAOGOU-666", + "title": "Comfyui-Memory_Cleanup", + "id": "comfyui_memory_cleanup", + "reference": "https://github.com/LAOGOU-666/Comfyui-Memory_Cleanup", + "files": [ + "https://github.com/LAOGOU-666/Comfyui-Memory_Cleanup" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that provides nodes for memory cleanup, including VRAM and RAM cleanup functions to optimize ComfyUI performance during long running workflows." + }, + { + "author": "LAOGOU-666", + "title": "Comfyui-LG_GroupExecutor", + "id": "comfyui_lg_groupexecutor", + "reference": "https://github.com/LAOGOU-666/Comfyui-LG_GroupExecutor", + "files": [ + "https://github.com/LAOGOU-666/Comfyui-LG_GroupExecutor" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension for controlling and managing node group execution flow. Features include single/multiple group execution, delay control, signal chaining, and execution list repetition processing." + }, + { + "author": "LAOGOU-666", + "title": "Comfyui_LG_Tools", + "reference": "https://github.com/LAOGOU-666/Comfyui_LG_Tools", + "files": [ + "https://github.com/LAOGOU-666/Comfyui_LG_Tools" + ], + "install_type": "git-clone", + "description": "This is a toolset designed for ComfyUI by LAOGOU-666, providing a series of practical image processing and operation nodes, making our operation more intuitive and convenient" + }, + { + "author": "VertexStudio", + "title": "roblox-comfyui-nodes", + "reference": "https://github.com/VertexStudio/roblox-comfyui-nodes", + "files": [ + "https://github.com/VertexStudio/roblox-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "NODES:Scale Image Node, Switch Image Node, Switch Text Node, First Number Node, Mirror Effect Node, Text To ImageNode, Flow Nodes, Simple Save Image Node" + }, + { + "author": "2kpr", + "title": "ComfyUI-PMRF", + "id": "comfyui-pmrf", + "reference": "https://github.com/2kpr/ComfyUI-PMRF", + "files": [ + "https://github.com/2kpr/ComfyUI-PMRF" + ], + "install_type": "git-clone", + "description": "Implementation of PMRF on ComfyUI" + }, + { + "author": "tkreuziger", + "title": "ComfyUI and Claude", + "reference": "https://github.com/tkreuziger/comfyui-claude", + "files": [ + "https://github.com/tkreuziger/comfyui-claude" + ], + "install_type": "git-clone", + "description": "A set of custom nodes that are using Anthropic's Claude models for describing images and transforming texts." + }, + { + "author": "sipie800", + "title": "ComfyUI-PuLID-Flux-Enhanced", + "reference": "https://github.com/sipie800/ComfyUI-PuLID-Flux-Enhanced", + "files": [ + "https://github.com/sipie800/ComfyUI-PuLID-Flux-Enhanced" + ], + "install_type": "git-clone", + "description": "adapted from [a/https://github.com/balazik/ComfyUI-PuLID-Flux](https://github.com/balazik/ComfyUI-PuLID-Flux).\ncommon fusion methods for multi-image input, some further experimental fusion methods, switch between using gray image (official) and rgb.," + }, + { + "author": "EvilBT", + "title": "JoyCaptionAlpha Two for ComfyUI", + "reference": "https://github.com/EvilBT/ComfyUI_SLK_joy_caption_two", + "files": [ + "https://github.com/EvilBT/ComfyUI_SLK_joy_caption_two" + ], + "install_type": "git-clone", + "description": "NODES:Joy Caption Two, Joy Caption Two Advanced, Joy Caption Two Load, Joy Caption Extra Options" + }, + { + "author": "Q-Bug4", + "title": "Simple JSON Parser Node for ComfyUI", + "reference": "https://github.com/Q-Bug4/Comfyui-Simple-Json-Node", + "files": [ + "https://github.com/Q-Bug4/Comfyui-Simple-Json-Node" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI to parse and extract data from JSON strings." + }, + { + "author": "Q-Bug4", + "title": "Comfyui-Qb-Date-Nodes", + "reference": "https://github.com/Q-Bug4/Comfyui-Qb-DateNodes", + "files": [ + "https://github.com/Q-Bug4/Comfyui-Qb-DateNodes" + ], + "install_type": "git-clone", + "description": "A custom node designed for ComfyUI, allowing users to format the current date and time based on a specified format." + }, + { + "author": "Q-Bug4", + "title": "comfyui-qbug-batch", + "reference": "https://github.com/Q-Bug4/comfyui-qbug-batch", + "files": [ + "https://github.com/Q-Bug4/comfyui-qbug-batch" + ], + "install_type": "git-clone", + "description": "ComfyUI Batch Toolkit: Custom nodes that simplify batch operations and improve efficiency." + }, + { + "author": "bartly", + "title": "Babel Removebg Api Node for ComfyUI", + "id": "BabelRemovebgApi", + "reference": "https://github.com/bartly/Comfyui_babel_removebg_api", + "files": [ + "https://github.com/bartly/Comfyui_babel_removebg_api" + ], + "install_type": "git-clone", + "description": "This is a node to remove background of human picture." + }, + { + "author": "NumZ", + "title": "ComfyUI-FlowChain", + "id": "FlowChainNode", + "reference": "https://github.com/numz/Comfyui-FlowChain", + "files": [ + "https://github.com/numz/ComfyUI-FlowChain" + ], + "install_type": "git-clone", + "description": "Convert your workflows into node and chain them." + }, + { + "author": "NumZ", + "title": "ComfyUI-Orpheus", + "id": "OrpheusNode", + "reference": "https://github.com/numz/Comfyui-Orpheus", + "files": [ + "https://github.com/numz/Comfyui-Orpheus" + ], + "install_type": "git-clone", + "description": "TTS with emotional speech capabilities in 8 Languages 24 speakers." + }, + { + "author": "NumZ", + "title": "ComfyUI-SeedVR2_VideoUpscaler", + "id": "SeedVR2_VideoUpscaler", + "reference": "https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler", + "files": [ + "https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler" + ], + "install_type": "git-clone", + "description": "Welcome to the ComfyUI-SeedVR2 Video Upscaler repository! This project offers a non-official video upscaling tool designed specifically for ComfyUI. With this tool, you can enhance your video quality, making your visual content more engaging and clearer." + }, + { + "author": "SozeInc", + "title": "Quality of Life Nodes for ComfyUI", + "id": "ComfyUI_Soze", + "reference": "https://github.com/SozeInc/ComfyUI_Soze", + "files": [ + "https://github.com/SozeInc/ComfyUI_Soze" + ], + "install_type": "git-clone", + "description": "These nodes aid with batching image processing and maintaining input file names in output files and other quality of life nodes." + }, + { + "author": "MzMaXaM", + "title": "ComfyUi-MzMaXaM", + "reference": "https://github.com/MzMaXaM/ComfyUi-MzMaXaM", + "files": [ + "https://github.com/MzMaXaM/ComfyUi-MzMaXaM" + ], + "install_type": "git-clone", + "description": "A pack of nodes(only 2 for now) to make my life easier and hopefully yours ;)" + }, + { + "author": "robertvoy", + "title": "ComfyUI Flux Continuum: Modular Interface", + "reference": "https://github.com/robertvoy/ComfyUI-Flux-Continuum", + "files": [ + "https://github.com/robertvoy/ComfyUI-Flux-Continuum" + ], + "install_type": "git-clone", + "description": "Set of custom nodes to use with the ComfyUI Flux Continuum: Modular Interface. NODES: Text Versions, Image64 Display, Tabs, Step Slider, Denoise Slider, Guidance Slider, Batch Slider, Max Shift Slider, ControlNet Slider and more" + }, + { + "author": "Lam Yan", + "title": "ComfyUI_Lam", + "id": "ComfyUI_Lam", + "reference": "https://github.com/yanlang0123/ComfyUI_Lam", + "files": [ + "https://github.com/yanlang0123/ComfyUI_Lam" + ], + "install_type": "git-clone", + "description": "This extension has some useful nodes, loops, wechat public number +AI chat drawing, distributed cluster" + }, + { + "author": "moustafa-nasr", + "title": "ComfyUI-SimpleLogger", + "reference": "https://github.com/moustafa-nasr/ComfyUI-SimpleLogger", + "files": [ + "https://github.com/moustafa-nasr/ComfyUI-SimpleLogger" + ], + "install_type": "git-clone", + "description": "A simple node to save your history in html file. I saves the WorkFlow with all it's input values so you can duplicate it later." + }, + { + "author": "sweetndata", + "title": "ComfyUI-googletrans", + "reference": "https://github.com/sweetndata/ComfyUI-googletrans", + "files": [ + "https://github.com/sweetndata/ComfyUI-googletrans" + ], + "install_type": "git-clone", + "description": "NODES:Google Translate" + }, + { + "author": "sweetndata", + "title": "ComfyUI-Image-Harmonizer", + "reference": "https://github.com/sweetndata/ComfyUI-Image-Harmonizer", + "files": [ + "https://github.com/sweetndata/ComfyUI-Image-Harmonizer" + ], + "install_type": "git-clone", + "description": "NODES:Image-Harmonizer" + }, + { + "author": "sweetndata", + "title": "ComfyUI_Sticker_Compositer", + "reference": "https://github.com/sweetndata/ComfyUI_Sticker_Compositer", + "files": [ + "https://github.com/sweetndata/ComfyUI_Sticker_Compositer" + ], + "install_type": "git-clone", + "description": "NODES:Sticker Compositer.\nbackground frame + sticker" + }, + { + "author": "BlackVortexAI", + "title": "BV Nodes", + "reference": "https://github.com/BlackVortexAI/ComfyUI-BVortexNodes", + "files": [ + "https://github.com/BlackVortexAI/ComfyUI-BVortexNodes" + ], + "install_type": "git-clone", + "description": "This repository contains a user-defined node for ComfyUI, currently there are nodes for capturing captions. But will be expanded in the future." + }, + { + "author": "JosephThomasParker", + "title": "ComfyUI-DrawThingsWrapper", + "reference": "https://github.com/JosephThomasParker/ComfyUI-DrawThingsWrapper", + "files": [ + "https://github.com/JosephThomasParker/ComfyUI-DrawThingsWrapper" + ], + "install_type": "git-clone", + "description": "These nodes provide a wrapper for calling Draw Things image generations from ComfyUI.\nWait, why? The Draw Things app has been optimized for Apple hardware and runs roughly x3 faster than ComfyUI generations. But ComfyUI is a flexible and powerful tools, and has some features - like queuing and face swapping - that haven't been implemented in Draw Things." + }, + { + "author": "Kesin11", + "title": "ComfyUI-list-filter", + "reference": "https://github.com/Kesin11/ComfyUI-list-filter", + "files": [ + "https://github.com/Kesin11/ComfyUI-list-filter" + ], + "install_type": "git-clone", + "description": "Custom nodes for convenient filtering image or string lists in ComfyUI workflow." + }, + { + "author": "taches-ai", + "title": "ComfyUI Scene Composer", + "reference": "https://github.com/taches-ai/comfyui-scene-composer", + "reference2": "https://github.com/mus-taches/comfyui-scene-composer", + "files": [ + "https://github.com/taches-ai/comfyui-scene-composer" + ], + "install_type": "git-clone", + "description": "A collection of nodes to facilitate the creation of explicit NSFW scenes in ComfyUI." + }, + { + "author": "NguynHungNguyen", + "title": "Segment Any Bedroom Interior", + "reference": "https://github.com/NguynHungNguyen/Segment-Bedroom-Interior", + "files": [ + "https://github.com/NguynHungNguyen/Segment-Bedroom-Interior" + ], + "install_type": "git-clone", + "description": "Segment Any Bedroom Interior is a Python-based project designed to segment furniture and objects within a bedroom image. The segmentation process uses RGB codes to accurately differentiate between various pieces of furniture, providing a precise mask output for each segmented object. This project is integrated with ComfyUI to allow easy and intuitive usage." + }, + { + "author": "MyShell", + "title": "ComfyUI-ShellAgent-Plugin", + "id": "comfyui_shellagent_plugin", + "reference": "https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin", + "files": [ + "https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin" + ], + "install_type": "git-clone", + "description": "This repository provides utility nodes for defining inputs and outputs in ComfyUI workflows. These nodes are essential for running ShellAgent apps with ComfyUI, but they can also be used independently to specify input/output variables and their requirements explicitly." + }, + { + "author": "Vrch Studio (vrch.ai)", + "title": "ComfyUI Web Viewer", + "reference": "https://github.com/VrchStudio/comfyui-web-viewer", + "files": [ + "https://github.com/VrchStudio/comfyui-web-viewer" + ], + "install_type": "git-clone", + "description": "The ComfyUI Web Viewer by [a/vrch.ai](https://vrch.ai) is a custom node collection offering a real-time AI-generated interactive art framework. This utility integrates realtime streaming into ComfyUI workflows, supporting keyboard control nodes, OSC control nodes, sound input nodes, and more. Accessible from any device with a web browser, it enables real time interaction with AI-generated content, making it ideal for interactive visual projects and enhancing ComfyUI workflows with efficient content management and display." + }, + { + "author": "kk8bit", + "title": "KayTool", + "reference": "https://github.com/kk8bit/KayTool", + "files": [ + "https://github.com/kk8bit/KayTool" + ], + "install_type": "git-clone", + "description": "KayTool nodes is designed to enhance the efficiency of building ComfyUI workflows. It includes a variety of practical nodes: support for efficient models like BiRefNet and RemBG for background removal and mask post-processing, wireless data transfer (Set & Get ), AI translation (Tencent and Baidu), dynamic mathematical operations, image processing (size extraction, color adjustment, background removal, mask blurring and expansion), flexible text handling, precision sliders, advanced image saving with metadata support, and more." + }, + { + "author": "sousakujikken", + "title": "ComfyUI-PixydustQuantizer", + "reference": "https://github.com/sousakujikken/ComfyUI-PixydustQuantizer", + "files": [ + "https://github.com/sousakujikken/ComfyUI-PixydustQuantizer" + ], + "install_type": "git-clone", + "description": "Pixydust Quantizer is a custom node extension for ComfyUI that allows for the simplified recreation of tile patterns used in 1990s 16-color PC graphics, offering advanced color quantization and palette optimization features.Additionally, it includes a CRT-like effect node that mimics the phosphor glow and slight color bleeding of old CRT displays, adding a nostalgic aesthetic.With version 2.0.0, it now supports batch image processing, enabling efficient handling of video frames and image sequences." + }, + { + "author": "hoveychen", + "title": "ComfyUI-MusePose-Remaster", + "id": "musepose-remaster", + "reference": "https://github.com/hoveychen/ComfyUI-MusePose-Remaster", + "files": [ + "https://github.com/hoveychen/ComfyUI-MusePose-Remaster" + ], + "install_type": "git-clone", + "description": "MusePose Remaster is a remaster version of ComfyUI MusePose node.\nIt supports auto weights download, remove most necessary dependencies, etc." + }, + { + "author": "AhBumm", + "title": "Customizable API Call Nodes by BillBum", + "id": "billbum", + "reference": "https://github.com/AhBumm/ComfyUI_BillBum_APIset_Nodes", + "files": [ + "https://github.com/AhBumm/ComfyUI_BillBum_APIset_Nodes" + ], + "nodename_pattern": "\\(BillBum\\)$", + "install_type": "git-clone", + "description": "API call node for Third-party platforms both official and local. Support VLMs LLMs Dalle3 Flux-Pro SD3 etc. And some little tools: img to b64 url, b64 url to img, b64 url to b64 data, reg text to word and ',' only, etc." + }, + { + "author": "Scepter", + "title": "ComfyUI-Scepter", + "id": "scepter", + "reference": "https://github.com/modelscope/scepter", + "files": [ + "https://github.com/modelscope/scepter" + ], + "install_type": "git-clone", + "description": "Custom nodes for various visual generation and editing tasks using Scepter." + }, + { + "author": "DeemosTech", + "title": "ComfyUI-Rodin", + "id": "rodinHyperhuamn", + "reference": "https://github.com/DeemosTech/ComfyUI-Rodin", + "files": [ + "https://github.com/DeemosTech/ComfyUI-Rodin" + ], + "install_type": "git-clone", + "description": "Comfyui-rodin is a 3D generation extension based on Rodin-API. It provides many of the functionality nodes currently available in RodinAPI and It provides a 3D preview node for ComfyUI." + }, + { + "author": "Ardenius", + "title": "ComfyUI-Ardenius", + "id": "ARD", + "reference": "https://github.com/ArdeniusAI/ComfyUI-Ardenius", + "files": [ + "https://github.com/ArdeniusAI/ComfyUI-Ardenius" + ], + "install_type": "git-clone", + "description": "ARD ComfyUI Ardenius include ARD Control Box, ARD Math nodes and other helper nodes to be added in the future. for more info https://ko-fi.com/ardenius." + }, + { + "author": "brayevalerien", + "title": "ComfyUI Resynthesizer", + "reference": "https://github.com/brayevalerien/ComfyUI-resynthesizer", + "files": [ + "https://github.com/brayevalerien/ComfyUI-resynthesizer" + ], + "install_type": "git-clone", + "description": "This repository is a quick port of [a/Resynthesizer](https://github.com/bootchk/resynthesizer) to ComfyUI.\nResynthesizer is the open-source implementation of a texture generation technique proposed by Paul Harrison in 2005, especially useful for removing an object from an image (inpainting), which is most likely close to what Photoshop uses to for the content aware fill feature. Note that this is not using a diffusion model to inpaint, as opposed to many techniques of today, which makes it very fast and predictable, but sometimes yields worse results." + }, + { + "author": "brayevalerien", + "title": "ComfyUI-splitstring", + "reference": "https://github.com/brayevalerien/ComfyUI-SplitString", + "files": [ + "https://github.com/brayevalerien/ComfyUI-SplitString" + ], + "install_type": "git-clone", + "description": "Very specific node for spliting a string with 12 lines into 12 individual strings.k" + }, + { + "author": "BZcreativ", + "title": "ComfyUI-FLUX-TOGETHER-API", + "reference": "https://github.com/BZcreativ/ComfyUI-FLUX-TOGETHER-API", + "files": [ + "https://github.com/BZcreativ/ComfyUI-FLUX-TOGETHER-API" + ], + "install_type": "git-clone", + "description": "A custom node implementation for ComfyUI that integrates with Together.ai's FLUX image generation models. This project is inspired by and adapted from [a/ComfyUI-FLUX-BFL-API](https://github.com/gelasdev/ComfyUI-FLUX-BFL-API) to work with the Together.ai API." + }, + { + "author": "stormcenter", + "title": "ComfyUI-AutoSplitGridImage", + "reference": "https://github.com/stormcenter/ComfyUI-AutoSplitGridImage", + "files": [ + "https://github.com/stormcenter/ComfyUI-AutoSplitGridImage" + ], + "install_type": "git-clone", + "description": "ComfyUI-AutoSplitGridImage is a custom node for ComfyUI that provides intelligent image splitting functionality. It combines edge detection for column splits and uniform division for row splits, offering a balanced approach to grid-based image segmentation." + }, + { + "author": "stormcenter", + "title": "ComfyUI LivePhoto Creator", + "reference": "https://github.com/stormcenter/ComfyUI-LivePhotoCreator", + "files": [ + "https://github.com/stormcenter/ComfyUI-LivePhotoCreator" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that allows you to create iPhone-compatible Live Photos from videos. This node can convert video sequences into Live Photo format, with the ability to select key frames and customize the output." + }, + { + "author": "stormcenter", + "title": "ComfyUI-SVGFullfill", + "reference": "https://github.com/stormcenter/ComfyUI-SVGFullfill", + "files": [ + "https://github.com/stormcenter/ComfyUI-SVGFullfill" + ], + "install_type": "git-clone", + "description": "ComfyUI-SVGFullfill is a custom node for ComfyUI that handles SVG file processing. Key features: - SVG file upload and preview - Replace images (up to 3) and text elements (up to 10) in SVG - Chinese font support - Real-time canvas preview - PNG export" + }, + { + "author": "AkashKarnatak", + "title": "ComfyUI_faishme", + "reference": "https://github.com/AkashKarnatak/ComfyUI_faishme", + "files": [ + "https://github.com/AkashKarnatak/ComfyUI_faishme" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for our product Faishme" + }, + { + "author": "ARZUMATA", + "title": "ComfyUI-ARZUMATA", + "reference": "https://github.com/ARZUMATA/ComfyUI-ARZUMATA", + "files": [ + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA" + ], + "install_type": "git-clone", + "description": "NODES:Caching CLIP Text Encode for FLUX.\nRandom nodes for ComfyUI for various purposes." + }, + { + "author": "ARZUMATA", + "title": "ComfyUI-Qwen2", + "reference": "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-Qwen2", + "files": [ + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-Qwen2" + ], + "install_type": "git-clone", + "description": "Qwen2 Nodes for ComfyUI.\nI needed to run Qwen2 on ComfyUI to use it in my workflow for batching images and captioning and none of the implementations I found on the web worked the way I wanted.[w/May contain bugs.]" + }, + { + "author": "ARZUMATA", + "title": "ComfyUI-ARZUMATA-PixelIt", + "reference": "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-PixelIt", + "files": [ + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-PixelIt" + ], + "install_type": "git-clone", + "description": "A python port of pixelit by giventofly." + }, + { + "author": "Rinsanga1", + "title": "comfyui-florence2xy", + "reference": "https://github.com/Rinsanga1/comfyui-florence2xy", + "files": [ + "https://github.com/Rinsanga1/comfyui-florence2xy" + ], + "install_type": "git-clone", + "description": "NODES:Florence2 Coordinates (XY Split), Phi-3.5 Vision Instruct." + }, + { + "author": "gt732", + "title": "ComfyUI-DreamWaltz-G", + "reference": "https://github.com/gt732/ComfyUI-DreamWaltz-G", + "files": [ + "https://github.com/gt732/ComfyUI-DreamWaltz-G" + ], + "install_type": "git-clone", + "description": "This repository contains custom ComfyUI nodes designed to integrate with [a/DreamWaltz-G](https://github.com/Yukun-Huang/DreamWaltz-G), a cutting-edge model for generating expressive 3D Gaussian avatars using skeleton-guided 2D diffusion." + }, + { + "author": "clhui", + "title": "Clh Tool for ComfyUI", + "id": "ComfyUi-clh-Tool", + "reference": "https://github.com/clhui/ComfyUi-clh-Tool", + "files": [ + "https://github.com/clhui/ComfyUi-clh-Tool" + ], + "install_type": "git-clone", + "description": "Some mathematical calculation nodes,freedom And omnipotent, string calculation nodes, can customize the number of parameters and calculation formulas(expression). The calculation content can also be displayed in places such as the label title of Comfy Node,String to Image Title Label" + }, + { + "author": "ruucm", + "title": "Ruucm's ComfyUI Nodes", + "id": "ruucm", + "reference": "https://github.com/ruucm/ruucm-comfy", + "nodename_pattern": " \\(ruucm\\)$", + "files": [ + "https://github.com/ruucm/ruucm-comfy" + ], + "install_type": "git-clone", + "description": "Nodes: Load External LoRA Model Only" + }, + { + "author": "TZOOTZ", + "title": "TZOOTZ VHS Effect Node", + "reference": "https://github.com/TZOOTZ/ComfyUI-TZOOTZ_VHS", + "files": [ + "https://github.com/TZOOTZ/ComfyUI-TZOOTZ_VHS" + ], + "pip": ["numpy<2"], + "install_type": "git-clone", + "description": "The TZOOTZ VHS Effect Node is designed for multimedia creators who want to blend digital precision with analog imperfection ↔️. Inspired by retro VHS aesthetics, this node lets you apply grain, color bleeding, saturation adjustments, and more, giving any image a touch of analog warmth and noise." + }, + { + "author": "jianzhichun", + "title": "ComfyUI-Easyai", + "id": "comfyui-easyai", + "reference": "https://github.com/jianzhichun/ComfyUI-Easyai", + "files": [ + "https://github.com/jianzhichun/ComfyUI-Easyai" + ], + "install_type": "git-clone", + "description": "ComfyUI-Easyai is a powerful extension for ComfyUI that enables users to share workflows and models to easyai." + }, + { + "author": "Isulion", + "title": "ComfyUI_Isulion Random Prompt Generator", + "reference": "https://github.com/Isulion/ComfyUI_Isulion", + "files": [ + "https://github.com/Isulion/ComfyUI_Isulion" + ], + "install_type": "git-clone", + "description": "ComfyUI Nodes that generate prompts and many more." + }, + { + "author": "sneccc", + "title": "comfyui-snek-nodes", + "reference": "https://github.com/sneccc/comfyui-snek-nodes", + "files": [ + "https://github.com/sneccc/comfyui-snek-nodes" + ], + "install_type": "git-clone", + "description": "NODES:Aesthetics, Aesthetics V2, Load AI Toolkit Latent Flux, Send_to_Eagle" + }, + { + "author": "theshubzworld", + "title": "ComfyUI-ollama_killer", + "reference": "https://github.com/theshubzworld/ComfyUI-ollama_killer", + "files": [ + "https://github.com/theshubzworld/ComfyUI-ollama_killer" + ], + "install_type": "git-clone", + "description": "OllamaKiller is a cross-platform utility node for ComfyUI that automatically manages Ollama processes (`ollama.exe` on Windows, `ollama` on macOS/Linux). It helps free up VRAM by terminating Ollama processes after model execution, improving workflow performance and memory management. Features include graceful process termination, detailed status reporting, and seamless text passthrough." + }, + { + "author": "theshubzworld", + "title": "SD3.5 Empty Latent Size Picker", + "reference": "https://github.com/theshubzworld/ComfyUI-SD3.5-Latent-Size-Picker", + "files": [ + "https://github.com/theshubzworld/ComfyUI-SD3.5-Latent-Size-Picker" + ], + "install_type": "git-clone", + "description": "A universal node for generating empty latent tensors with support for SD3.5, SDXL, and Flux models. Features extended aspect ratio support, batch processing, and flexible dimension overrides." + }, + { + "author": "theshubzworld", + "title": "Together Vision Node", + "id": "comfyui_together_vision", + "reference": "https://github.com/theshubzworld/ComfyUI-TogetherVision", + "files": [ + "https://github.com/theshubzworld/ComfyUI-TogetherVision" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node using Together AI's Vision models for free image descriptions, image generation, and image-to-image transformation. Features include customizable prompts, advanced parameters, and robust error handling." + }, + { + "author": "jeffrey2212", + "title": "Pony Character Prompt Picker for ComfyUI", + "reference": "https://github.com/jeffrey2212/ComfyUI-PonyCharacterPrompt", + "files": [ + "https://github.com/jeffrey2212/ComfyUI-PonyCharacterPrompt" + ], + "install_type": "git-clone", + "description": "The Pony Character Prompt Picker node reads an Excel file specified by the user, allows manual selection of a tab, and randomly picks a cell value from a specified column, starting from row 3 to the end. The selected value is output as a string to the next node in the ComfyUI workflow." + }, + { + "author": "theshubzworld", + "title": "ComfyUI-FaceCalloutNode", + "reference": "https://github.com/theshubzworld/ComfyUI-FaceCalloutNode", + "files": [ + "https://github.com/theshubzworld/ComfyUI-FaceCalloutNode" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that provide advanced face callout, annotation, and compositing effects using OpenCV and PIL. These nodes are designed for image processing workflows that require face detection, annotation, and creative compositing." + }, + { + "author": "Jonseed", + "title": "ComfyUI-Detail-Daemon", + "reference": "https://github.com/Jonseed/ComfyUI-Detail-Daemon", + "files": [ + "https://github.com/Jonseed/ComfyUI-Detail-Daemon" + ], + "install_type": "git-clone", + "description": "A port of muerrilla's [a/sd-webui-Detail-Daemon](https://github.com/muerrilla/sd-webui-detail-daemon) as a node for ComfyUI, to adjust sigmas that control detail." + }, + { + "author": "chris-arsenault", + "title": "ComfyUI-AharaNodes", + "reference": "https://github.com/chris-arsenault/ComfyUI-AharaNodes", + "files": [ + "https://github.com/chris-arsenault/ComfyUI-AharaNodes" + ], + "install_type": "git-clone", + "description": "NODES:Frame Segmenter, Get Frame at Index, Repeat Sampler Config, Patch Repeat Sampler Config (Model), Patch Repeat Sampler Config (Latent), KSampler (Simple Input)" + }, + { + "author": "mfg637", + "title": "ComfyUI-ScheduledGuider-Ext", + "reference": "https://github.com/mfg637/ComfyUI-ScheduledGuider-Ext", + "files": [ + "https://github.com/mfg637/ComfyUI-ScheduledGuider-Ext" + ], + "install_type": "git-clone", + "description": "This extension contains various nodes for CFG scheduling and more. NODES:ScheduledCFGGuider, PerpNegScheduledCFGGuider, CosineScheduler, GaussianScheduler, LogNormalScheduler, InvertSigmas, ConcatSigmas, OffsetSigmas, SplitSigmasByValue" + }, + { + "author": "changwook987", + "title": "ComfyUI-Small-Utility", + "reference": "https://github.com/changwook987/ComfyUI-Small-Utility", + "files": [ + "https://github.com/changwook987/ComfyUI-Small-Utility" + ], + "install_type": "git-clone", + "description": "Context menu extension for CLIPTextEncode (sort prompt), EmptyLatentImage (sdxl size selector)." + }, + { + "author": "OpalSky", + "title": "OpalSky Nodes", + "reference": "https://github.com/OpalSky-AI/OpalSky_Nodes", + "files": [ + "https://github.com/OpalSky-AI/OpalSky_Nodes" + ], + "install_type": "git-clone", + "description": "A set of custom nodes for ComfyUI that provides enhanced string manipulation and prompt variant generation functionality for AI workflows." + }, + { + "author": "JustinMatters", + "title": "ComfyUI JMNodes", + "id": "JMNodes", + "reference": "https://github.com/JustinMatters/comfyUI-JMNodes", + "files": [ + "https://github.com/JustinMatters/comfyUI-JMNodes" + ], + "install_type": "git-clone", + "description": "Provides nodes to support generation of all possible combinations of a set of prompts via boolean logic" + }, + { + "author": "lgldlk", + "title": "ComfyUI-PC-ding-dong", + "reference": "https://github.com/lgldlk/ComfyUI-PC-ding-dong", + "files": [ + "https://github.com/lgldlk/ComfyUI-PC-ding-dong" + ], + "install_type": "git-clone", + "description": "Just like when your pizza is ready and the oven goes 'Ding! 🍕', this plugin lets your ComfyUI notify you when your AI creations are done baking!\nA ComfyUI custom node that sends you a friendly 'ding-dong' notification when your workflows are fully cooked and ready to serve. No more staring at the screen waiting - let the AI kitchen tell you when dinner's ready! 👨‍🍳" + }, + { + "author": "lgldlk", + "title": "ComfyUI-PSD-Replace", + "reference": "https://github.com/lgldlk/ComfyUI-PSD-Replace", + "files": [ + "https://github.com/lgldlk/ComfyUI-PSD-Replace" + ], + "install_type": "git-clone", + "description": "One click replacement of smart objects or layers in PSD" + }, + { + "author": "Wakfull33", + "title": "ComfyUI-SaveImageCivitAI", + "reference": "https://github.com/Wakfull33/ComfyUI-SaveImageCivitAI", + "files": [ + "https://github.com/Wakfull33/ComfyUI-SaveImageCivitAI" + ], + "install_type": "git-clone", + "description": "A custom node allowing to save images with CIVITAI readable datas" + }, + { + "author": "waterminer", + "title": "ComfyUI-tagcomplete", + "reference": "https://github.com/waterminer/ComfyUI-tagcomplete", + "files": [ + "https://github.com/waterminer/ComfyUI-tagcomplete" + ], + "install_type": "git-clone", + "description": "This extension provides tag completion feature in textbox." + }, + { + "author": "grovebadger", + "title": "Negative Wildcard Processor Node for ComfyUI", + "id": "neg_wildcard_processor", + "reference": "https://github.com/GrvBdgr/comfyui-negativewildcardsprocessor", + "files": [ + "https://github.com/GrvBdgr/comfyui-negativewildcardsprocessor" + ], + "install_type": "git-clone", + "description": "Node to process negative wildcard tokens () and move them from the positive prompt to the negative." + }, + { + "author": "catboxanon", + "title": "comfyui_stealth_pnginfo", + "reference": "https://github.com/catboxanon/comfyui_stealth_pnginfo", + "files": [ + "https://github.com/catboxanon/comfyui_stealth_pnginfo" + ], + "install_type": "git-clone", + "description": "Fork of [a/sd_webui_stealth_pnginfo](https://github.com/ashen-sensored/sd_webui_stealth_pnginfo) with ComfyUI support." + }, + { + "author": "dafeng012", + "title": "comfyui-imgmake", + "reference": "https://github.com/dafeng012/comfyui-imgmake", + "files": [ + "https://github.com/dafeng012/comfyui-imgmake" + ], + "install_type": "git-clone", + "description": "This extension integrates ebsynth_utility into comfyui, and I've written some of my own nodes for secondary use." + }, + { + "author": "zubenelakrab", + "title": "ComfyUI-ASV-Nodes Node", + "id": "ComfyUI-ASV-Nodes", + "reference": "https://github.com/zubenelakrab/ComfyUI-ASV-Nodes", + "files": [ + "https://github.com/zubenelakrab/ComfyUI-ASV-Nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI-ASV-Nodes make prompting easier." + }, + { + "author": "zubenelakrab", + "title": "ComfyUI Neural Nodes", + "reference": "https://github.com/xobiomesh/ComfyUI_xObiomesh", + "files": [ + "https://github.com/xobiomesh/ComfyUI_xObiomesh" + ], + "install_type": "git-clone", + "description": "An advanced ComfyUI extension that enables multi-agent LLM conversations using Ollama models." + }, + { + "author": "KohakuBlueleaf", + "title": "TIPO-extension", + "reference": "https://github.com/KohakuBlueleaf/z-tipo-extension", + "files": [ + "https://github.com/KohakuBlueleaf/z-tipo-extension" + ], + "install_type": "git-clone", + "description": "A general extension to utilize TIPO or DanTagGen to do 'text-presampling' based on KGen library: [a/https://github.com/KohakuBlueleaf/KGen](https://github.com/KohakuBlueleaf/KGen)" + }, + { + "author": "KohakuBlueleaf", + "title": "HDM-ext", + "id": "HDM", + "reference": "https://github.com/KohakuBlueleaf/HDM-ext", + "files": [ + "https://github.com/KohakuBlueleaf/HDM-ext" + ], + "install_type": "git-clone", + "description": "HDM model loader for ComfyUI" + }, + { + "author": "hanoixan", + "title": "ComfyUI DataBeast", + "reference": "https://github.com/hanoixan/ComfyUI-DataBeast", + "files": [ + "https://github.com/hanoixan/ComfyUI-DataBeast" + ], + "install_type": "git-clone", + "description": "This extension provides convenience nodes for batch processing." + }, + { + "author": "HelloVision", + "title": "ComfyUI_HelloMeme", + "reference": "https://github.com/HelloVision/ComfyUI_HelloMeme", + "files": [ + "https://github.com/HelloVision/ComfyUI_HelloMeme" + ], + "install_type": "git-clone", + "description": "This repository is the official implementation of the [a/HelloMeme](https://arxiv.org/pdf/2410.22901) ComfyUI interface, featuring both image and video generation functionalities. Example workflow files can be found in the ComfyUI_HelloMeme/workflows directory. Test images and videos are saved in the ComfyUI_HelloMeme/examples directory. Below are screenshots of the interfaces for image and video generation.\nNOTE: 'HelloMeme: Integrating Spatial Knitting Attentions to Embed High-Level and Fidelity-Rich Conditions in Diffusion Models'" + }, + { + "author": "recraftai", + "title": "ComfyUI-RecraftAI", + "id": "comfyui-recraftai", + "reference": "https://github.com/recraft-ai/ComfyUI-RecraftAI", + "files": [ + "https://github.com/recraft-ai/ComfyUI-RecraftAI" + ], + "install_type": "git-clone", + "description": "Recraft AI API Custom Nodes" + }, + { + "author": "basix", + "title": "Basix Image Filters", + "id": "basix_image_filters", + "reference": "https://github.com/maludwig/basix_image_filters", + "files": [ + "https://github.com/maludwig/basix_image_filters" + ], + "install_type": "git-clone", + "description": "A handful of image filters for ComfyUI (darken, lighten, levels, saturate, hue)" + }, + { + "author": "Frost Ming", + "title": "Comfy-Pack", + "reference": "https://github.com/bentoml/comfy-pack", + "files": [ + "https://github.com/bentoml/comfy-pack" + ], + "description": "A comprehensive toolkit for standardizing, packaging and deploying ComfyUI workflows as reproducible environments and production-ready REST services", + "install_type": "git-clone" + }, + { + "author": "Poseidon-fan", + "title": "ComfyUI-RabbitMQ-Publisher", + "reference": "https://github.com/Poseidon-fan/ComfyUI-RabbitMQ-Publisher", + "files": [ + "https://github.com/Poseidon-fan/ComfyUI-RabbitMQ-Publisher" + ], + "description": "ComfyUI custom_node that publish output image to rabbit_mq", + "install_type": "git-clone" + }, + { + "author": "Blonicx", + "title": "ComfyUI-Rework-X", + "id": "rework-x", + "reference": "https://github.com/Blonicx/ComfyUI-X-Rework", + "files": [ + "https://github.com/Blonicx/ComfyUI-X-Rework" + ], + "install_type": "git-clone", + "description": "This is a plugin for ComfyUI that adds new Util Nodes and Nodes for easier image creation and sharing." + }, + { + "author": "1zhangyy1", + "title": "ComfyUI VIDU", + "reference": "https://github.com/1zhangyy1/comfyui-vidu-nodes", + "files": [ + "https://github.com/1zhangyy1/comfyui-vidu-nodes" + ], + "description": "This is a ComfyUI node package that integrates with VIDU API, supporting features such as text-to-video, image-to-video, character-to-video generation, and video super-resolution.", + "install_type": "git-clone" + }, + { + "author": "LevelPixel", + "title": "ComfyUI Level Pixel", + "reference": "https://github.com/LevelPixel/ComfyUI-LevelPixel", + "files": [ + "https://github.com/LevelPixel/ComfyUI-LevelPixel" + ], + "install_type": "git-clone", + "description": "Main nodes of the Level Pixel company (aka levelpixel, LP). Includes convenient nodes for working with images from folders; counting files in a folder; cleaning memory; tag filters. Model Unloader, LLM Unloader, Free memory, Tag Filters, Tag Category Filters, Tag Choice Parser, File counter, Image Loader From Path (with counters), Image Remove Background based on RemBG, Autotagger." + }, + { + "author": "LevelPixel", + "title": "ComfyUI Level Pixel Advanced", + "id": "comfyui-levelpixel-advanced", + "reference": "https://github.com/LevelPixel/ComfyUI-LevelPixel-Advanced", + "files": [ + "https://github.com/LevelPixel/ComfyUI-LevelPixel-Advanced" + ], + "install_type": "git-clone", + "description": "Advanced nodes of the Level Pixel company (levelpixel, LP). Includes convenient advanced nodes for working with LLM и VLM models (LLaVa) with GGUF format. Qwen2.5-VL and Qwen2.5 supported. Also included is a node for the RAM model. Nodes have the ability to automatically unload models from VRAM." + }, + { + "author": "morino-kumasan", + "title": "comfyui-toml-prompt", + "reference": "https://github.com/morino-kumasan/comfyui-toml-prompt", + "files": [ + "https://github.com/morino-kumasan/comfyui-toml-prompt" + ], + "install_type": "git-clone", + "description": "Encode Prompt in TOML for ComfyUI." + }, + { + "author": "wentao-uw", + "title": "ComfyUI template matching", + "reference": "https://github.com/wentao-uw/ComfyUI-template-matching", + "files": [ + "https://github.com/wentao-uw/ComfyUI-template-matching" + ], + "description": "This project is a ComfyUI version of [a/https://github.com/cozheyuanzhangde/Invariant-TemplateMatching](https://github.com/cozheyuanzhangde/Invariant-TemplateMatching).", + "install_type": "git-clone" + }, + { + "author": "w00dycomfyuirun", + "title": "ComfyUI_Appstore", + "id": "ComfyUI_Appstore", + "reference": "https://github.com/ronaldzgithub/ComfyUI_Appstore", + "files": [ + "https://github.com/ronaldzgithub/ComfyUI_Appstore" + ], + "install_type": "git-clone", + "description": "ComfyUI_Appstore, a tool that converts ComfyUI workflows into web apps on huaxiaobao.net with one click, and supports payments, like ComfyUI_Bxb (Bxb) does. Providing a way for the comfyui authors to get profit from." + }, + { + "author": "kycg", + "title": "Kw_Json_Lora_CivitAIDownloader", + "reference": "https://github.com/kycg/comfyui-Lora-auto-downloader", + "files": [ + "https://github.com/kycg/comfyui-Lora-auto-downloader" + ], + "description": "This tool allows you to download models from CivitAI based on a JSON configuration that defines LORA and checkpoint models. It uses token-based authentication to download files from specified URLs and saves them to specified directories. based on CivitAIDownloader", + "install_type": "git-clone" + }, + { + "author": "VangengLab", + "title": "ComfyUI-LivePortrait_v2", + "reference": "https://github.com/VangengLab/ComfyUI-LivePortrait_v2", + "files": [ + "https://github.com/VangengLab/ComfyUI-LivePortrait_v2" + ], + "install_type": "git-clone", + "description": "We developed a custom_node for Liveportrait_v2 that enables flexible use on Comfyui to drive animal image-based emoji generation from videos." + }, + { + "author": "VangengLab", + "title": "ComfyUI-LivePortrait_v3", + "reference": "https://github.com/VangengLab/ComfyUI-LivePortrait_v3", + "files": [ + "https://github.com/VangengLab/ComfyUI-LivePortrait_v3" + ], + "install_type": "git-clone", + "description": "We developed a custom_node for Liveportrait_v3 that enables flexible use on Comfyui to drive image-based emoji generation from photos." + }, + { + "author": "Comflowy", + "title": "Comflowy's Custom Nodes", + "id": "comflowy", + "reference": "https://github.com/6174/comflowy-nodes", + "files": [ + "https://github.com/6174/comflowy-nodes" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI by Comflowy." + }, + { + "author": "troyxmccall", + "title": "ComfyUI-ScaleToTargetMegapixels", + "reference": "https://github.com/troyxmccall/ComfyUI-ScaleToTargetMegapixels", + "files": [ + "https://github.com/troyxmccall/ComfyUI-ScaleToTargetMegapixels" + ], + "install_type": "git-clone", + "description": "NODES:ScaleToTargetMegapixels." + }, + { + "author": "neph1", + "title": "comfyui-smooth-step-lora-loader", + "reference": "https://github.com/neph1/comfyui-smooth-step-lora-loader", + "files": [ + "https://github.com/neph1/comfyui-smooth-step-lora-loader" + ], + "install_type": "git-clone", + "description": "This custom node provides a smooth step function that normalizes LoRA values by enhancing elements above the mean while reducing those below it. Users can independently control both the LoRA strength and smooth step intensity to fine-tune their results, though the effectiveness may vary between different seeds and LoRA types." + }, + { + "author": "ImmortalPie", + "title": "PonySwitch Node", + "reference": "https://github.com/ImmortalPie/ComfyUI-PonySwitch", + "files": [ + "https://github.com/ImmortalPie/ComfyUI-PonySwitch" + ], + "install_type": "git-clone", + "description": "The PonySwitch node is a custom node for ComfyUI that modifies prompts based on a toggle switch and adds configurable pony tags." + }, + { + "author": "LatentSpaceDirective", + "title": "ComfyUI-Texturaizer", + "id": "texturaizer", + "reference": "https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer", + "files": [ + "https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer" + ], + "install_type": "git-clone", + "description": "These are companion nodes for Texturaizer, a Blender plugin that connects complex 3D data to ComfyUI. https://texturaizer.com" + }, + { + "author": "Lasse Lauwerys", + "title": "Touch screen gesture support", + "reference": "https://github.com/Iemand005/ComfyUI-Touch-Gestures", + "files": [ + "https://github.com/Iemand005/ComfyUI-Touch-Gestures" + ], + "install_type": "git-clone", + "description": "Implements proper multitouch zooming and panning into ComfyUI to make it more usable on mobile devices." + }, + { + "author": "Lasse Lauwerys", + "title": "Touchpad and trackpad gesture support", + "reference": "https://github.com/Iemand005/ComfyUI-Touchpad-Gestures", + "files": [ + "https://github.com/Iemand005/ComfyUI-Touchpad-Gestures" + ], + "install_type": "git-clone", + "description": "Implements proper touchpad/trackpad zooming and panning into ComfyUI to make it more usable on laptops." + }, + { + "author": "phazei", + "title": "Prompt Stash", + "id": "ComfyUI-Prompt-Stash", + "reference": "https://github.com/phazei/ComfyUI-Prompt-Stash", + "files": [ + "https://github.com/phazei/ComfyUI-Prompt-Stash" + ], + "install_type": "git-clone", + "description": "Prompt Stash is a simple plugin for ComfyUI that lets you save your prompts and organize them into multiple lists. It also features a pass-through functionality, so you can hook it up to an LLM node (or any text outputting node) and capture its outputs directly." + }, + { + "author": "phazei", + "title": "ComfyUI-OrpheusTTS-LMStudio", + "reference": "https://github.com/phazei/ComfyUI-OrpheusTTS-LMStudio", + "files": [ + "https://github.com/phazei/ComfyUI-OrpheusTTS-LMStudio" + ], + "install_type": "git-clone", + "description": "Generate Orpheus TTS audio via LM Studio" + }, + { + "author": "Doctor Diffusion", + "title": "Schedulizer", + "id": "schedulizer", + "reference": "https://github.com/DoctorDiffusion/ComfyUI-Schedulizer", + "files": [ + "https://github.com/DoctorDiffusion/ComfyUI-Schedulizer" + ], + "install_type": "git-clone", + "description": "Nodes:Whisper Node, Prompt Schedule Converter. Convert song lyrics into a useable prompt travel schedule within comfyUI. Includes whisper large-v2." + }, + { + "author": "Doctor Diffusion", + "title": "MediaMixer", + "id": "mediamixer", + "reference": "https://github.com/DoctorDiffusion/ComfyUI-MediaMixer", + "files": [ + "https://github.com/DoctorDiffusion/ComfyUI-MediaMixer" + ], + "install_type": "git-clone", + "description": "A node suite for downloading audio and video from youtube as we all sevral useful video utilits such as a final frame selector and a node that merges two videos into one." + }, + { + "author": "Doctor Diffusion", + "title": "ComfyUI-SnakeOil", + "reference": "https://github.com/DoctorDiffusion/ComfyUI-SnakeOil", + "files": [ + "https://github.com/DoctorDiffusion/ComfyUI-SnakeOil" + ], + "install_type": "git-clone", + "description": "Use [a/Doctor Diffusion's snake oil nLoRAs](https://civitai.com/models/987843) as well as [a/other negative LoRAs](https://civitai.com/models/186617/doctor-diffusions-negative-xl-lora) easily within ComfyUI." + }, + { + "author": "Doctor Diffusion", + "title": "ComfyUI BEN - Background Erase Network", + "reference": "https://github.com/DoctorDiffusion/ComfyUI-BEN", + "files": [ + "https://github.com/DoctorDiffusion/ComfyUI-BEN" + ], + "install_type": "git-clone", + "description": "Remove backgrounds from images with [a/BEN](https://huggingface.co/PramaLLC/BEN) in ComfyUI" + }, + { + "author": "Doctor Diffusion", + "title": "ComfyUI-basic-pitch", + "reference": "https://github.com/DoctorDiffusion/ComfyUI-basic-pitch", + "files": [ + "https://github.com/DoctorDiffusion/ComfyUI-basic-pitch" + ], + "install_type": "git-clone", + "description": "Audio to midi functionality within ComfyUI" + }, + { + "author": "robtl2", + "title": "ComfyUI-ComfyBridge", + "reference": "https://github.com/robtl2/ComfyUI-ComfyBridge", + "files": [ + "https://github.com/robtl2/ComfyUI-ComfyBridge" + ], + "install_type": "git-clone", + "description": "A socket service that helps third-party DCC software maintain long-term image exchange with comfyUI." + }, + { + "author": "bombax-xiaoice", + "title": "ComfyUI-MagicDance", + "reference": "https://github.com/bombax-xiaoice/ComfyUI-MagicDance", + "files": [ + "https://github.com/bombax-xiaoice/ComfyUI-MagicDance" + ], + "install_type": "git-clone", + "description": "ComfyUI supports over [a/Boese0601/MagicDance](https://github.com/Boese0601/MagicDance)." + }, + { + "author": "bombax-xiaoice", + "title": "ComfyUI-Allegro", + "reference": "https://github.com/bombax-xiaoice/ComfyUI-Allegro", + "files": [ + "https://github.com/bombax-xiaoice/ComfyUI-Allegro" + ], + "install_type": "git-clone", + "description": "ComfyUI supports over [a/rhymes-ai/Allegro](https://huggingface.co/rhymes-ai/Allegro), which uses text prompt to generate short video in relatively high quality, especially comparing to other open source solutions available for now." + }, + { + "author": "bombax-xiaoice", + "title": "ComfyUI-Open-Sora-I2V", + "reference": "https://github.com/bombax-xiaoice/ComfyUI-Open-Sora-I2V", + "files": [ + "https://github.com/bombax-xiaoice/ComfyUI-Open-Sora-I2V" + ], + "install_type": "git-clone", + "description": "Another comfy implementation for the short video generation project hpcaitech/Open-Sora, supporting latest V2 and V3 models as well as image to video functions, etc." + }, + { + "author": "bombax-xiaoice", + "title": "ComfyUI-OpenSoraPlan", + "reference": "https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan", + "files": [ + "https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan" + ], + "install_type": "git-clone", + "description": "Another comfy implementation for the short video generation project PKU-YuanGroup/Open-Sora-Plan, supporting latest 1.3.0 and 1.2.0 and image to video feature, etc." + }, + { + "author": "bombax-xiaoice", + "title": "ComfyUI-DisPose", + "reference": "https://github.com/bombax-xiaoice/ComfyUI-DisPose", + "files": [ + "https://github.com/bombax-xiaoice/ComfyUI-DisPose" + ], + "install_type": "git-clone", + "description": "ComfyUI supports over lihxxx/DisPose, which generates a new video with a reference video as poses and a reference image as everything else." + }, + { + "author": "chenbaiyujason", + "title": "ComfyUI-SCStepFun", + "reference": "https://github.com/chenbaiyujason/ComfyUI_StepFun", + "files": [ + "https://github.com/chenbaiyujason/ComfyUI_StepFun" + ], + "install_type": "git-clone", + "description": "To use stepfun's library, you need an official api that supports multimodal inputs such as video and pictures [a/https://platform.stepfun.com/request-restriction](https://platform.stepfun.com/request-restriction)" + }, + { + "author": "yondonfu", + "title": "ComfyUI-Background-Edit", + "id": "comfyui-background-edit", + "reference": "https://github.com/yondonfu/ComfyUI-Background-Edit", + "files": [ + "https://github.com/yondonfu/ComfyUI-Background-Edit" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for editing background of images/videos with CUDA acceleration support." + }, + { + "author": "yondonfu", + "title": "ComfyUI-Torch-Compile", + "id": "comfyui-torch-compile", + "reference": "https://github.com/yondonfu/ComfyUI-Torch-Compile", + "files": [ + "https://github.com/yondonfu/ComfyUI-Torch-Compile" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for torch.compile." + }, + { + "author": "GorillaFrame", + "title": "GFrbmg2", + "reference": "https://github.com/gorillaframeai/GF_nodes", + "files": [ + "https://github.com/gorillaframeai/GF_nodes" + ], + "install_type": "git-clone", + "description": "GF Remove Background 2.0" + }, + { + "author": "amaozhao", + "title": "ComfyUI_DeployCash", + "id": "ComfyUI_DeployCash", + "reference": "https://github.com/jacklukai/ComfyUI_DeployCash", + "files": [ + "https://github.com/jacklukai/ComfyUI_DeployCash" + ], + "install_type": "git-clone", + "description": "DeployCash, a tool that converts workflows into WeChat and H5 with one click, and supports payments." + }, + { + "author": "zer0thgear", + "title": "zer0 Comfy Utilities", + "id": "zer0-comfy-utils", + "reference": "https://github.com/zer0thgear/zer0-comfy-utils", + "files": [ + "https://github.com/zer0thgear/zer0-comfy-utils" + ], + "install_type": "git-clone", + "description": "Collection of personal nodes including tavern card-related nodes, prompt manipulation related utilities, and a node to combine a list of strings back into one string." + }, + { + "author": "fallingmeteorite", + "title": "nsfw-image-check-comfyui", + "reference": "https://github.com/fallingmeteorite/nsfw-image-check-comfyui", + "files": [ + "https://github.com/fallingmeteorite/nsfw-image-check-comfyui" + ], + "install_type": "git-clone", + "description": "NODES:Nsfw Image Check Node" + }, + { + "author": "VikramxD", + "title": "VEnhancer ComfyUI Extension", + "reference": "https://github.com/VikramxD/VEnhancer-ComfyUI-Wrapper", + "files": [ + "https://github.com/VikramxD/VEnhancer-ComfyUI-Wrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI workflow for VEnhancer Inference" + }, + { + "author": "BIMer-99", + "title": "Comfyui_Hunyuan3D_EX", + "reference": "https://github.com/BIMer-99/Comfyui_Hunyuan3D_EX", + "files": [ + "https://github.com/BIMer-99/Comfyui_Hunyuan3D_EX" + ], + "install_type": "git-clone", + "description": "This is a custom node designed to simplify the use of Hunyuan3D in ComfyUI" + }, + { + "author": "vuongminh1907", + "title": "ComfyUI_ZenID", + "reference": "https://github.com/vuongminh1907/ComfyUI_ZenID", + "files": [ + "https://github.com/vuongminh1907/ComfyUI_ZenID" + ], + "install_type": "git-clone", + "description": "Inspired by [a/InstantID](https://github.com/instantX-research/InstantID) and [a/InstantID Comfy](https://github.com/cubiq/ComfyUI_InstantID)\nThis ZenID Node has been refactored for specialized tasks like Face Swap" + }, + { + "author": "yorkane", + "title": "ComfyUI-KYNode", + "reference": "https://github.com/yorkane/ComfyUI-KYNode", + "files": [ + "https://github.com/yorkane/ComfyUI-KYNode" + ], + "install_type": "git-clone", + "description": "NODES:Advanced Lying Sigma Sampler, Save Image To target Path" + }, + { + "author": "c0ffymachyne", + "title": "ComfyUI Signal Processing", + "reference": "https://github.com/c0ffymachyne/ComfyUI_SignalProcessing", + "files": [ + "https://github.com/c0ffymachyne/ComfyUI_SignalProcessing" + ], + "install_type": "git-clone", + "description": "Audio processing nodes for comfyui." + }, + { + "author": "c0ffymachyne", + "title": "Bytebeat Synthesizer: Composing with Operators", + "reference": "https://github.com/c0ffymachyne/ComfyUI_BeatByte", + "files": [ + "https://github.com/c0ffymachyne/ComfyUI_BeatByte" + ], + "install_type": "git-clone", + "description": "Bytebeat is like composing music with the tools of a programmer’s toolkit. Instead of piano keys, you have operators like >>, |, and &. It’s like giving your CPU a guitar and letting it shred! 🤘" + }, + { + "author": "liuqianhonga", + "title": "ComfyUI-Image-Compressor", + "reference": "https://github.com/liuqianhonga/ComfyUI-Image-Compressor", + "files": [ + "https://github.com/liuqianhonga/ComfyUI-Image-Compressor" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for image compression that supports multiple compression formats and parameter adjustments." + }, + { + "author": "liuqianhonga", + "title": "ComfyUI-Html2Image", + "reference": "https://github.com/liuqianhonga/ComfyUI-Html2Image", + "files": [ + "https://github.com/liuqianhonga/ComfyUI-Html2Image" + ], + "install_type": "git-clone", + "description": "NODES: Webpage Screenshot, Camera Watermark, Template To Image" + }, + { + "author": "liuqianhonga", + "title": "ComfyUI-String-Helper", + "reference": "https://github.com/liuqianhonga/ComfyUI-String-Helper", + "files": [ + "https://github.com/liuqianhonga/ComfyUI-String-Helper" + ], + "install_type": "git-clone", + "description": "NODES: String Formatter, String List" + }, + { + "author": "liuqianhonga", + "title": "ComfyUI-QHNodes", + "reference": "https://github.com/liuqianhonga/ComfyUI-QHNodes", + "files": [ + "https://github.com/liuqianhonga/ComfyUI-QHNodes" + ], + "install_type": "git-clone", + "description": "A custom node collection developed for ComfyUI, offering preset dimensions for Latent, loading LoRA from folders, and integrating multiple commonly used custom nodes." + }, + { + "author": "duhaifeng", + "title": "ComfyUI-BiRefNet-lite", + "reference": "https://github.com/rubi-du/ComfyUI-BiRefNet-Super", + "files": [ + "https://github.com/rubi-du/ComfyUI-BiRefNet-Super" + ], + "install_type": "git-clone", + "description": "This repository packages the latest BiRefNet model as a ComfyUI node for use, supporting chunked loading on both CPU and GPU, as well as model caching features." + }, + { + "author": "duhaifeng", + "title": "ComfyUI-Flux-Inpainting", + "reference": "https://github.com/rubi-du/ComfyUI-Flux-Inpainting", + "files": [ + "https://github.com/rubi-du/ComfyUI-Flux-Inpainting" + ], + "install_type": "git-clone", + "description": "This node wraps the flux fill model as ComfyUI nodes. Use NF4 flux fill model, support for inpainting and outpainting image. Compared to the flux fill dev model, these nodes can use the flux fill model to perform inpainting and outpainting work under lower VRM conditions." + }, + { + "author": "duhaifeng", + "title": "ComfyUI-ICC-nodes", + "reference": "https://github.com/rubi-du/ComfyUI-ICC-nodes", + "files": [ + "https://github.com/rubi-du/ComfyUI-ICC-nodes" + ], + "install_type": "git-clone", + "description": "This repository support processing Comfyui image nodes with ICC profile, load and save images with ICC profile" + }, + { + "author": "duhaifeng", + "title": "ComfyUI-MaskEditor-Extension", + "reference": "https://github.com/rubi-du/ComfyUI-MaskEditor-Extension", + "files": [ + "https://github.com/rubi-du/ComfyUI-MaskEditor-Extension" + ], + "install_type": "git-clone", + "description": "This repository packages the latest BiRefNet model as a ComfyUI node for use, supporting chunked loading on both CPU and GPU, as well as model caching features." + }, + { + "author": "vkff5833", + "title": "ComfyUI-PromptConverter", + "reference": "https://github.com/vkff5833/ComfyUI-PromptConverter", + "files": [ + "https://github.com/vkff5833/ComfyUI-PromptConverter" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that converts prompts between different AI image generation models." + }, + { + "author": "yichengup", + "title": "Comfyui-Ycanvas", + "reference": "https://github.com/yichengup/Comfyui-Ycanvas", + "files": [ + "https://github.com/yichengup/Comfyui-Ycanvas" + ], + "install_type": "git-clone", + "description": "NODES:Canvas View" + }, + { + "author": "yichengup", + "title": "Comfyui_Flux_Style_Adjust (Redux)", + "reference": "https://github.com/yichengup/Comfyui_Flux_Style_Adjust", + "files": [ + "https://github.com/yichengup/Comfyui_Flux_Style_Adjust" + ], + "install_type": "git-clone", + "description": "StyleModelApply adds more controls" + }, + { + "author": "yichengup", + "title": "Comfyui_Redux_Advanced", + "reference": "https://github.com/yichengup/Comfyui_Redux_Advanced", + "files": [ + "https://github.com/yichengup/Comfyui_Redux_Advanced" + ], + "install_type": "git-clone", + "description": "Redux style adds more controls" + }, + { + "author": "yichengup", + "title": "Comfyui-Deepseek", + "reference": "https://github.com/yichengup/Comfyui-Deepseek", + "files": [ + "https://github.com/yichengup/Comfyui-Deepseek" + ], + "install_type": "git-clone", + "description": "About DeepSeek Chat API\nGo here to register and get the api-key [a/https://platform.deepseek.com/](https://platform.deepseek.com/) Then enter api_key in config.json" + }, + { + "author": "yichengup", + "title": "ComfyUI_Yc_JanusPro", + "reference": "https://github.com/yichengup/ComfyUI_Yc_JanusPro", + "files": [ + "https://github.com/yichengup/ComfyUI_Yc_JanusPro" + ], + "install_type": "git-clone", + "description": "About DeepSeek Chat API\nGo here to register and get the api-key [a/https://platform.deepseek.com/](https://platform.deepseek.com/) Then enter api_key in config.json" + }, + { + "author": "yichengup", + "title": "ComfyUI-YCNodes", + "reference": "https://github.com/yichengup/ComfyUI-YCNodes", + "files": [ + "https://github.com/yichengup/ComfyUI-YCNodes" + ], + "install_type": "git-clone", + "description": "A collection of image processing extension nodes for ComfyUI." + }, + { + "author": "yichengup", + "title": "comfyui-face-liquify", + "reference": "https://github.com/yichengup/comfyui-face-liquify", + "files": [ + "https://github.com/yichengup/comfyui-face-liquify" + ], + "install_type": "git-clone", + "description": "video face liquefaction" + }, + { + "author": "yichengup", + "title": "ComfyUI-LinearTransition", + "reference": "https://github.com/yichengup/ComfyUI-LinearTransition", + "files": [ + "https://github.com/yichengup/ComfyUI-LinearTransition" + ], + "install_type": "git-clone", + "description": "This is a custom node designed for ComfyUI to create transition effects between two images and generate a sequence of video frames." + }, + { + "author": "yichengup", + "title": "ComfyUI_SwiftCut", + "reference": "https://github.com/yichengup/ComfyUI_SwiftCut", + "files": [ + "https://github.com/yichengup/ComfyUI_SwiftCut" + ], + "install_type": "git-clone", + "description": "A simple ComfyUI plugin that Its purpose and function is to replicate some of the editing effects of capcut,jianying and pr." + }, + { + "author": "Horizon Team", + "title": "ComfyUI_FluxMod", + "id": "fluxmod", + "reference": "https://github.com/lodestone-rock/ComfyUI_FluxMod", + "files": [ + "https://github.com/lodestone-rock/ComfyUI_FluxMod" + ], + "install_type": "git-clone", + "description": "Nodes for use of Chroma model and other prototype models" + }, + { + "author": "lth", + "title": "Comfyui_three_js", + "id": "comfyui_three_js", + "reference": "https://github.com/lo-th/Comfyui_three_js", + "files": [ + "https://github.com/lo-th/Comfyui_three_js" + ], + "install_type": "git-clone", + "description": "Use power of three.js in 3d view on comfyui." + }, + { + "author": "AIPOQUE", + "title": "ComfyUI-APQNodes", + "reference": "https://github.com/AIPOQUE/ComfyUI-APQNodes", + "files": [ + "https://github.com/AIPOQUE/ComfyUI-APQNodes" + ], + "install_type": "git-clone", + "description": "Without fine-tuning, FLUX.1 Dev model cannot understand exact color codes. However, it is known that FLUX.1 Dev can repeatedly produce certain colors with certain prompt(color name). Fortunately, on CIVITAI, [a/“novuschroma” shared 155 pre-tested color names](https://civitai.com/models/879997/color-wildcards-for-flux-and-sdxl) that FLUX.1 Dev can handle. Thanks to his resource, color palette consists exclusively of 155 colors can be configured. ‘ColorPalette’ node from ComfyUI APQNodes converts input hex color code to the most similar color name(from pre-tested 155 color names) of which FLUX.1 Dev is aware." + }, + { + "author": "arcum42", + "title": "Sage Utils", + "reference": "https://github.com/arcum42/ComfyUI_SageUtils", + "files": [ + "https://github.com/arcum42/ComfyUI_SageUtils" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes by arcum42. Currently focused on saving metadata in images so that Civitai picks it up, pulling Civitai information, and misc helper nodes." + }, + { + "author": "Tomudo", + "title": "ComfyUI-ascii-art", + "id": "comfyui-ascii-art", + "reference": "https://github.com/tomudo/ComfyUI-ascii-art", + "files": [ + "https://github.com/tomudo/ComfyUI-ascii-art" + ], + "install_type": "git-clone", + "description": "This is a custom node to convert image to ascii art string." + }, + { + "author": "tuohe", + "title": "ComfyUI-HaiperAI-API", + "id": "haiperai-api", + "reference": "https://github.com/Haiper-ai/ComfyUI-HaiperAI-API", + "files": [ + "https://github.com/Haiper-ai/ComfyUI-HaiperAI-API" + ], + "install_type": "git-clone", + "description": "Haiper API official ComfyUI custom node." + }, + { + "author": "tungdop2", + "title": "Face Restorer for ComfyUI", + "id": "face_restorer", + "reference": "https://github.com/tungdop2/Comfyui_face_restorer", + "files": [ + "https://github.com/tungdop2/Comfyui_face_restorer" + ], + "install_type": "git-clone", + "description": "The face restore node for ComfyUI, based on RestoreFormer" + }, + { + "author": "tungdop2", + "title": "Joy Caption Alpha Two for ComfyUI", + "id": "joy-captioner-alpha-two", + "reference": "https://github.com/tungdop2/Comfyui_joy-caption-alpha-two", + "files": [ + "https://github.com/tungdop2/Comfyui_joy-caption-alpha-two" + ], + "install_type": "git-clone", + "description": "The Joy Caption Alpha Two node for ComfyUI, based on https://huggingface.co/spaces/fancyfeast/joy-caption-alpha-two" + }, + { + "author": "pschroedl", + "title": "ComfyUI-SAM2-Realtime", + "reference": "https://github.com/pschroedl/ComfyUI-SAM2-Realtime", + "files": [ + "https://github.com/pschroedl/ComfyUI-SAM2-Realtime" + ], + "install_type": "git-clone", + "description": "NODES:(Down)Load SAM2-Realtime Model, Sam2RealtimeSegmentation" + }, + { + "author": "Shakker-Labs", + "title": "ComfyUI-IPAdapter-Flux", + "reference": "https://github.com/Shakker-Labs/ComfyUI-IPAdapter-Flux", + "files": [ + "https://github.com/Shakker-Labs/ComfyUI-IPAdapter-Flux" + ], + "install_type": "git-clone", + "description": "nodes for flux ipadapter released by shakker-labs" + }, + { + "author": "iamandeepsandhu", + "title": "NSFW Check for ComfyUI", + "reference": "https://github.com/iamandeepsandhu/ComfyUI-NSFW-Check", + "files": [ + "https://github.com/iamandeepsandhu/ComfyUI-NSFW-Check" + ], + "install_type": "git-clone", + "description": "This project is designed to detect whether images generated by ComfyUI are Not Safe For Work (NSFW). It uses a machine learning model to classify images as either safe or not safe for work and returns a confidence score for the NSFW classification." + }, + { + "author": "Black-Lioness", + "title": "ComfyUI-PromptUtils", + "reference": "https://github.com/Black-Lioness/ComfyUI-PromptUtils", + "reference2": "https://github.com/RunningOverGlowies/ComfyUI-PromptUtils", + "files": [ + "https://github.com/Black-Lioness/ComfyUI-PromptUtils" + ], + "install_type": "git-clone", + "description": "A set of ComfyUI nodes designed to enhance your workflow with realistic filename generation and keyword generation." + }, + { + "author": "SparknightLLC", + "title": "ComfyUI-LatentClamp", + "reference": "https://github.com/SparknightLLC/ComfyUI-LatentClamp", + "files": [ + "https://github.com/SparknightLLC/ComfyUI-LatentClamp" + ], + "install_type": "git-clone", + "description": "A node for ComfyUI that modifies the values in the samples input that fall outside of a min and max range using a multiplier." + }, + { + "author": "SparknightLLC", + "title": "ComfyUI-MaskArbiter", + "reference": "https://github.com/SparknightLLC/ComfyUI-MaskArbiter", + "files": [ + "https://github.com/SparknightLLC/ComfyUI-MaskArbiter" + ], + "install_type": "git-clone", + "description": "A node for ComfyUI that takes a list of masks and returns a single mask based on your criteria." + }, + { + "author": "SparknightLLC", + "title": "ComfyUI-ConditionalInterrupt", + "reference": "https://github.com/SparknightLLC/ComfyUI-ConditionalInterrupt", + "files": [ + "https://github.com/SparknightLLC/ComfyUI-ConditionalInterrupt" + ], + "install_type": "git-clone", + "description": "A node for ComfyUI that terminates the workflow processing if 'proceed' is set to False. More convenient than manually bypassing a bunch of nodes.\nThis is a restructured version of the 'SRL Conditional Interrupt' node from the [a/srl-nodes](https://github.com/seanlynch/srl-nodes) pack." + }, + { + "author": "SparknightLLC", + "title": "ComfyUI-GPENO", + "reference": "https://github.com/SparknightLLC/ComfyUI-GPENO", + "files": [ + "https://github.com/SparknightLLC/ComfyUI-GPENO" + ], + "install_type": "git-clone", + "description": "A node for ComfyUI that performs GPEN face restoration on the input image(s). Significantly faster than other implementations of GPEN." + }, + { + "author": "SparknightLLC", + "title": "ComfyUI-ImageAutotone", + "reference": "https://github.com/SparknightLLC/ComfyUI-ImageAutotone", + "files": [ + "https://github.com/SparknightLLC/ComfyUI-ImageAutotone" + ], + "install_type": "git-clone", + "description": "A node for ComfyUI that takes an input image and clips the color channels independently to increase contrast and alter color cast. This is a reinterpretation of PhotoShop's 'Auto Tone' algorithm." + }, + { + "author": "SparknightLLC", + "title": "ComfyUI-WeightedRandomChoice", + "reference": "https://github.com/SparknightLLC/ComfyUI-WeightedRandomChoice", + "files": [ + "https://github.com/SparknightLLC/ComfyUI-WeightedRandomChoice" + ], + "install_type": "git-clone", + "description": "A node for ComfyUI that picks from `input_a` and `input_b` based on the given `chance`." + }, + { + "author": "SparknightLLC", + "title": "ComfyUI-ImageAutosize", + "reference": "https://github.com/SparknightLLC/ComfyUI-ImageAutosize", + "files": [ + "https://github.com/SparknightLLC/ComfyUI-ImageAutosize" + ], + "install_type": "git-clone", + "description": "A node for ComfyUI that provides a convenient way of resizing or cropping an image for diffusion tasks." + }, + { + "author": "lightricks", + "title": "ComfyUI-LTXVideo", + "id": "comfyui-ltxvideo", + "reference": "https://github.com/Lightricks/ComfyUI-LTXVideo", + "files": [ + "https://github.com/Lightricks/ComfyUI-LTXVideo" + ], + "install_type": "git-clone", + "description": "Custom nodes for LTX-Video support in ComfyUI" + }, + { + "author": "Kai Duehrkop", + "title": "Advanced Reflux control", + "id": "advancedRefluxControl", + "reference": "https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl", + "files": [ + "https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl" + ], + "install_type": "git-clone", + "description": "This extension offers a new Apply-Style node for Redux that allows for changing the influence of the conditioning image on the final outcome. This effectively allows for changing the style or content of an image using a prompt while using Redux." + }, + { + "author": "ramesh-x90", + "title": "ComfyUI_pyannote", + "reference": "https://github.com/ramesh-x90/ComfyUI_pyannote", + "files": [ + "https://github.com/ramesh-x90/ComfyUI_pyannote" + ], + "install_type": "git-clone", + "description": "This repository provides custom nodes for ComfyUI designed to process audio files, performing speaker diarization and integrating speaker data into whisper-transcribed segments. These nodes utilize the PyAnnote library for speaker identification and pandas for efficient data handling." + }, + { + "author": "wu12023", + "title": "ComfyUI-Image-Evaluation", + "reference": "https://github.com/wu12023/ComfyUI-Image-Evaluation", + "files": [ + "https://github.com/wu12023/ComfyUI-Image-Evaluation" + ], + "install_type": "git-clone", + "description": "An extension to ComfyUI that evaluates images using multiple models." + }, + { + "author": "windfancy", + "title": "zsq_prompt", + "reference": "https://github.com/windfancy/zsq_prompt", + "files": [ + "https://github.com/windfancy/zsq_prompt" + ], + "install_type": "git-clone", + "description": "NODES: PromptStyler, PromptLatent, PromptCLIPEncode, PromptSelector" + }, + { + "author": "exectails", + "title": "Info Utils", + "id": "et_infoutils", + "reference": "https://github.com/exectails/comfyui-et_infoutils", + "files": [ + "https://github.com/exectails/comfyui-et_infoutils" + ], + "install_type": "git-clone", + "description": "Nodes that facilitate simpler information providing and gathering, such as Text Box, Show Data and Token Counter nodes." + }, + { + "author": "exectails", + "title": "String Utils", + "id": "et_stringutils", + "reference": "https://github.com/exectails/comfyui-et_stringutils", + "files": [ + "https://github.com/exectails/comfyui-et_stringutils" + ], + "install_type": "git-clone", + "description": "Nodes dedicated to the analysis and transformation of text strings, such as for formatting and conversions between types." + }, + { + "author": "exectails", + "title": "Dynamic Prompts", + "id": "et_dynamicprompts", + "reference": "https://github.com/exectails/comfyui-et_dynamicprompts", + "files": [ + "https://github.com/exectails/comfyui-et_dynamicprompts" + ], + "install_type": "git-clone", + "description": "Nodes that implement functionality similar to the Dynamic Prompts extension for A1111." + }, + { + "author": "SleeeepyZhou", + "title": "CNtranslator", + "id": "cn-translator", + "reference": "https://github.com/SleeeepyZhou/ComfyUI-CNtranslator", + "files": [ + "https://github.com/SleeeepyZhou/ComfyUI-CNtranslator" + ], + "install_type": "git-clone", + "description": "A translation node for users in Chinese Mainland. (Because of the network firewall in Chinese Mainland, many translation APIs cannot be used normally.)" + }, + { + "author": "flycarl", + "title": "ComfyUI-Pixelate", + "reference": "https://github.com/flycarl/ComfyUI-Pixelate", + "files": [ + "https://github.com/flycarl/ComfyUI-Pixelate" + ], + "install_type": "git-clone", + "description": "[a/sd-webui-pixelart](https://github.com/mrreplicart/sd-webui-pixelart) are referenced by many webui users, this node is mean to use it in ComfyUI." + }, + { + "author": "Alvaroeai", + "title": "ComfyUI-Text2Json", + "reference": "https://github.com/Alvaroeai/ComfyUI-Text2Json", + "files": [ + "https://github.com/Alvaroeai/ComfyUI-Text2Json" + ], + "install_type": "git-clone", + "description": "This repository contains a custom node for ComfyUI that converts text into a JSON object. The node is designed to be user-friendly and supports multi-line JSON input." + }, + { + "author": "dymokomi", + "title": "comfyui_dygen", + "reference": "https://github.com/dymokomi/comfyui_dygen", + "files": [ + "https://github.com/dymokomi/comfyui_dygen" + ], + "install_type": "git-clone", + "description": "NODES: DY Image Quantize, DY Image Cluster, DY Image Palette, DY Image Masks, Image List to Grid, DY Image Scaler, DY Random Lines, DY Adaptive Color Lines, DY Adaptive Color Circles, DY Adaptive Color Rectangles, DY Binary Pattern Stamper" + }, + { + "author": "bananasss00", + "title": "ComfyUI-flux_fill_patcher", + "reference": "https://github.com/bananasss00/ComfyUI-flux_fill_patcher", + "files": [ + "https://github.com/bananasss00/ComfyUI-flux_fill_patcher" + ], + "install_type": "git-clone", + "description": "flux patcher for Fill Flux.Dev lora [a/https://civitai.com/models/981615/fluxfill-inpaint-lora](https://civitai.com/models/981615/fluxfill-inpaint-lora)" + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-SoundHub", + "reference": "https://github.com/Yuan-ManX/ComfyUI-SoundHub", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-SoundHub" + ], + "install_type": "git-clone", + "description": "ComfyUI-SoundHub is a collection of audio processing nodes designed for ComfyUI, enabling seamless audio processing and generation within your ComfyUI workflows." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-LLaMA-Mesh", + "reference": "https://github.com/Yuan-ManX/ComfyUI-LLaMA-Mesh", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-LLaMA-Mesh" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for LLaMA-Mesh model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-PhotoDoodle", + "reference": "https://github.com/Yuan-ManX/ComfyUI-PhotoDoodle", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-PhotoDoodle" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for PhotoDoodle model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-StyleStudio", + "reference": "https://github.com/Yuan-ManX/ComfyUI-StyleStudio", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-StyleStudio" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for StyleStudio model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-OrpheusTTS", + "reference": "https://github.com/Yuan-ManX/ComfyUI-OrpheusTTS", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-OrpheusTTS" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for OrpheusTTS model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-LayerAnimate", + "reference": "https://github.com/Yuan-ManX/ComfyUI-LayerAnimate", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-LayerAnimate" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for LayerAnimate model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-SkyReels-A2", + "reference": "https://github.com/Yuan-ManX/ComfyUI-SkyReels-A2", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-SkyReels-A2" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for SkyReels-A2 model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-UNO", + "reference": "https://github.com/Yuan-ManX/ComfyUI-UNO", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-UNO" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for UNO model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-HiDream-I1", + "reference": "https://github.com/Yuan-ManX/ComfyUI-HiDream-I1", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-HiDream-I1" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for HiDream-I1 model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Kimi-VL", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Kimi-VL", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Kimi-VL" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for Kimi-VL model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Cobra", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Cobra", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Cobra" + ], + "install_type": "git-clone", + "description": "Make Cobra avialbe in ComfyUI.\nCobra: Efficient Line Art COlorization with BRoAder References" + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-LiveCC", + "reference": "https://github.com/Yuan-ManX/ComfyUI-LiveCC", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-LiveCC" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for LiveCC model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Dia", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Dia", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Dia" + ], + "install_type": "git-clone", + "description": "Make Dia avialbe in ComfyUI." + }, + { + "author": "Yuan-ManX", + "title": "Yuan-ManX/ComfyUI-AudioX", + "reference": "https://github.com/Yuan-ManX/ComfyUI-AudioX", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-AudioX" + ], + "install_type": "git-clone", + "description": "Make AudioX avialbe in ComfyUI." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Muyan-TTS", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Muyan-TTS", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Muyan-TTS" + ], + "install_type": "git-clone", + "description": "Make Muyan-TTS avialbe in ComfyUI." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Multiverse", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Multiverse", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Multiverse" + ], + "install_type": "git-clone", + "description": "Make Multiverse avialbe in ComfyUI.\nMultiverse: The First AI Multiplayer World Model. Two human players driving cars in Multiverse." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Matrix-Game", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Matrix-Game", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Matrix-Game" + ], + "install_type": "git-clone", + "description": "Make Matrix-Game avialbe in ComfyUI." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Step1X-3D", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Step1X-3D", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Step1X-3D" + ], + "install_type": "git-clone", + "description": "ComfyUI-Step1X-3D is now available in ComfyUI, delivering high-fidelity 3D asset generation with consistent geometry-texture alignment. It supports multi-style outputs: cartoon, sketch, and photorealistic." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-MoviiGen", + "reference": "https://github.com/Yuan-ManX/ComfyUI-MoviiGen", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-MoviiGen" + ], + "install_type": "git-clone", + "description": "ComfyUI-MoviiGen is now available in ComfyUI, MoviiGen 1.1 is a cutting-edge video generation model that excels in cinematic aesthetics and visual quality." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-AniSora", + "reference": "https://github.com/Yuan-ManX/ComfyUI-AniSora", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-AniSora" + ], + "install_type": "git-clone", + "description": "ComfyUI-AniSora is now available in ComfyUI, Index-AniSora is the most powerful open-source animated video generation model. It enables one-click creation of video shots across diverse anime styles including series episodes, Chinese original animations, manga adaptations, VTuber content, anime PVs, mad-style parodies, and more!" + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Bagel", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Bagel", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Bagel" + ], + "install_type": "git-clone", + "description": "ComfyUI-Bagel is now available in ComfyUI, BAGEL is an open‑source multimodal foundation model with 7B active parameters (14B total) trained on large‑scale interleaved multimodal data. [w/Don't install together with neverbiasu/ComfyUI-BAGEL simultaneously.]" + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-HunyuanPortrait", + "reference": "https://github.com/Yuan-ManX/ComfyUI-HunyuanPortrait", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-HunyuanPortrait" + ], + "install_type": "git-clone", + "description": "ComfyUI-HunyuanPortrait is now available in ComfyUI, HunyuanPortrait is a diffusion-based condition control method that employs implicit representations for highly controllable and lifelike portrait animation." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-HunyuanVideo-Avatar", + "reference": "https://github.com/Yuan-ManX/ComfyUI-HunyuanVideo-Avatar", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-HunyuanVideo-Avatar" + ], + "install_type": "git-clone", + "description": "ComfyUI-HunyuanVideo-Avatar is now available in ComfyUI, HunyuanVideo-Avatar is a multimodal diffusion transformer (MM-DiT)-based model capable of simultaneously generating dynamic, emotion-controllable, and multi-character dialogue videos." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-ChatterboxTTS", + "reference": "https://github.com/Yuan-ManX/ComfyUI-ChatterboxTTS", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-ChatterboxTTS" + ], + "install_type": "git-clone", + "description": "ComfyUI-ChatterboxTTS is now available in ComfyUI, Chatterbox TTS is the first production-grade open-source TTS model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Direct3D-S2", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Direct3D-S2", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Direct3D-S2" + ], + "install_type": "git-clone", + "description": "ComfyUI-Direct3D‑S2 is now available in ComfyUI, Direct3D‑S2 - Gigascale 3D Generation Made Easy with Spatial Sparse Attention. Direct3D‑S2 is a scalable 3D generation framework based on sparse volumes that achieves superior output quality with dramatically reduced training costs." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Vui", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Vui", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Vui" + ], + "install_type": "git-clone", + "description": "ComfyUI-Vui is now available in ComfyUI, Vui is a llama based transformer that predicts audio tokens." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Hunyuan3D-2.1", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Hunyuan3D-2.1", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Hunyuan3D-2.1" + ], + "install_type": "git-clone", + "description": "ComfyUI-Hunyuan3D-2.1 is now available in ComfyUI, Hunyuan3D-2.1 is a scalable 3D asset creation system that advances state-of-the-art 3D generation through two pivotal innovations: Fully Open-Source Framework and Physically-Based Rendering (PBR) Texture Synthesis." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-OmniGen2", + "reference": "https://github.com/Yuan-ManX/ComfyUI-OmniGen2", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-OmniGen2" + ], + "install_type": "git-clone", + "description": "ComfyUI-OmniGen2 is now available in ComfyUI, OmniGen2 is a powerful and efficient unified multimodal model. Its architecture is composed of two key components: a 3B Vision-Language Model (VLM) and a 4B diffusion model." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-PosterCraft", + "reference": "https://github.com/Yuan-ManX/ComfyUI-PosterCraft", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-PosterCraft" + ], + "install_type": "git-clone", + "description": "ComfyUI-PosterCraft is now available in ComfyUI, PosterCraft is a unified framework for high-quality aesthetic poster generation that excels in precise text rendering, seamless integration of abstract art, striking layouts, and stylistic harmony." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-ThinkSound", + "reference": "https://github.com/Yuan-ManX/ComfyUI-ThinkSound", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-ThinkSound" + ], + "install_type": "git-clone", + "description": "ComfyUI-ThinkSound is now available in ComfyUI, ThinkSound is a unified Any2Audio generation framework with flow matching guided by Chain-of-Thought (CoT) reasoning." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-HiggsAudio", + "reference": "https://github.com/Yuan-ManX/ComfyUI-HiggsAudio", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-HiggsAudio" + ], + "install_type": "git-clone", + "description": "ComfyUI-HiggsAudio is now available in ComfyUI, Higgs Audio v2 is a text-audio foundation model from Boson AI." + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-SkyworkUniPic", + "reference": "https://github.com/Yuan-ManX/ComfyUI-SkyworkUniPic", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-SkyworkUniPic" + ], + "install_type": "git-clone", + "description": "ComfyUI-SkyworkUniPic is now available in ComfyUI, Skywork-UniPic is a unified autoregressive multimodal model with 1.5 billion parameters that natively integrates image understanding, text-to-image generation, and image editing capabilities within a single architecture." + }, + { + "author": "Starnodes2024", + "title": "ComfyUI_StarNodes", + "reference": "https://github.com/Starnodes2024/ComfyUI_StarNodes", + "files": [ + "https://github.com/Starnodes2024/ComfyUI_StarNodes" + ], + "install_type": "git-clone", + "description": "NODES: StarNode Startsettings for Flux and SD, Smplers for Flux and SD, Detail Deamon, Wildcards and more Helper Nodes" + }, + { + "author": "Starnodes2024", + "title": "ComfyUI_StarBetaNodes", + "reference": "https://github.com/Starnodes2024/ComfyUI_StarBetaNodes", + "files": [ + "https://github.com/Starnodes2024/ComfyUI_StarBetaNodes" + ], + "install_type": "git-clone", + "description": "Welcome to Star Beta Nodes - a collection of experimental custom nodes for ComfyUI designed for beta testing and feedback. These nodes provide enhanced functionality for image processing, video handling, and workflow automation." + }, + { + "author": "motivated3", + "title": "ComfyUI MiaoShua Creator", + "id": "comfyui-shua-creator", + "reference": "https://github.com/motivated3/comfyui-shua-creator", + "files": [ + "https://github.com/motivated3/comfyui-shua-creator" + ], + "install_type": "git-clone", + "description": "With the MiaoShua creator's end, you can use this plugin to upload debugged workflows for consumer end users to use." + }, + { + "author": "takemetosiberia", + "title": "SAMURAI Nodes for ComfyUI", + "reference": "https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-", + "files": [ + "https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for video object segmentation using [a/SAMURAI](https://github.com/yangchris11/samurai) model." + }, + { + "author": "purpen", + "title": "AIRedoon", + "reference": "https://github.com/purpen/ComfyUI-AIRedoon", + "files": [ + "https://github.com/purpen/ComfyUI-AIRedoon" + ], + "install_type": "git-clone", + "description": "NODES:AIRedoon Qwen Model Loader, AIRedoon Translator, AIRedoon Image Caption, AIRedoon LoRA Stack, AIRedoon Image RGBA2RGB, AIRedoon Preview Text, AIRedoon Save Text, ...\nRedoonAi Tool Kit" + }, + { + "author": "purpen", + "title": "ComfyUI-ImageTagger", + "reference": "https://github.com/purpen/ComfyUI-ImageTagger", + "files": [ + "https://github.com/purpen/ComfyUI-ImageTagger" + ], + "install_type": "git-clone", + "description": "NODES:AIRedoon Image Caption.\nAnalyze image tagger" + }, + { + "author": "itsjustregi", + "title": "ComfyUI-EasyPony", + "reference": "https://github.com/regiellis/ComfyUI-EasyPony", + "files": [ + "https://github.com/regiellis/ComfyUI-EasyPony" + ], + "install_type": "git-clone", + "description": "Easy Pony is a helper node that simplifies the process of adding scoring and other attributes to prompts when using Pony models." + }, + { + "author": "itsjustregi", + "title": "ComfyUI-EasyNoobai", + "reference": "https://github.com/regiellis/ComfyUI-EasyNoobai", + "files": [ + "https://github.com/regiellis/ComfyUI-EasyNoobai" + ], + "install_type": "git-clone", + "description": "Simple set of nodes to assist with prompt generation for NOOBAI XL / Illustrious models" + }, + { + "author": "itsjustregi", + "title": "Easy Color Correction", + "reference": "https://github.com/regiellis/ComfyUI-EasyColorCorrector", + "files": [ + "https://github.com/regiellis/ComfyUI-EasyColorCorrector" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for flexible and efficient image color correction and post-processing." + }, + { + "author": "itsjustregi", + "title": "SDXL Adherence", + "reference": "https://github.com/regiellis/ComfyUI-SDXL-Adherence", + "files": [ + "https://github.com/regiellis/ComfyUI-SDXL-Adherence" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes that improve SDXL prompt adherence and any-size/tiled VAE workflows." + }, + { + "author": "mrhan1993", + "title": "ComfyUI-Fooocus", + "reference": "https://github.com/mrhan1993/ComfyUI-Fooocus", + "files": [ + "https://github.com/mrhan1993/ComfyUI-Fooocus" + ], + "install_type": "git-clone", + "description": "This extension provides image generation features based on Fooocus." + }, + { + "author": "Kling AI", + "title": "ComfyUI-KLingAI-API", + "reference": "https://github.com/KwaiVGI/ComfyUI-KLingAI-API", + "files": [ + "https://github.com/KwaiVGI/ComfyUI-KLingAI-API" + ], + "install_type": "git-clone", + "description": "Provide high-quality video and image generation capabilities, meeting creators' needs for creative content production and management through more convenient operations, richer functionalities, professional parameters, and stunning effects." + }, + { + "author": "lujiazho", + "title": "ComfyUI-CatvtonFluxWrapper", + "id": "comfyui-catvton-flux-wrapper", + "reference": "https://github.com/lujiazho/ComfyUI-CatvtonFluxWrapper", + "files": [ + "https://github.com/lujiazho/ComfyUI-CatvtonFluxWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI-CatvtonFluxWrapper provides ComfyUI nodes for diffusers implementation of Catvton-Flux." + }, + { + "author": "Eugene (JEONG-JIWOO)", + "title": "ComfyUI_Eugene_Nodes", + "reference": "https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes", + "files": [ + "https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes using Dictionary designed to optimize and manage workflows in ComfyUI." + }, + { + "author": "xs315431", + "title": "Comfyui_Get_promptId", + "reference": "https://github.com/xs315431/Comfyui_Get_promptId", + "files": [ + "https://github.com/xs315431/Comfyui_Get_promptId" + ], + "install_type": "git-clone", + "description": "NODES: Get Prompt_Id, Success Callback\nget comfyui task id and Callback for successful image generation, in conjunction with the back-end" + }, + { + "author": "5x00", + "title": "ComfyUI-VLM_Captions", + "reference": "https://github.com/5x00/ComfyUI-VLM-Captions", + "files": [ + "https://github.com/5x00/ComfyUI-VLM-Captions" + ], + "install_type": "git-clone", + "description": "A simple ComfyUI node that let's you use Claude or ChatGPT 4o's VLM capabilities to generate captions/tags for images." + }, + { + "author": "5x00", + "title": "ComfyUI-PiAPI-Faceswap", + "reference": "https://github.com/5x00/ComfyUI-PiAPI-Faceswap", + "files": [ + "https://github.com/5x00/ComfyUI-PiAPI-Faceswap" + ], + "install_type": "git-clone", + "description": "A simple ComfyUI nodes that integrates [a/PiAPI faceswap](https://piapi.ai/faceswap-api) service into ComfyUI. This can be helpful if you're trying to create a workflow that includes faceswap for commercial usage." + }, + { + "author": "ClownsharkBatwing", + "title": "RES4LYF", + "id": "res4lyf", + "reference": "https://github.com/ClownsharkBatwing/RES4LYF", + "files": [ + "https://github.com/ClownsharkBatwing/RES4LYF" + ], + "install_type": "git-clone", + "description": "Advanced samplers with new noise scaling math to enable SDE sampling with all publicly available native models; new unsampling/noise inversion methods and other advanced img2img techniques for inpainting and/or guiding the sampling process with guide images, with results superior to FlowEdit, RF Inversion, and other SOTA implementations. Also new style transfer methods unique to this node pack; regional conditioning for HiDream, Flux, AuraFlow, and WAN; methods for eliminating Flux blur; and temporal conditioning (shift gradually from one prompt to the next with video). 115 sampler types, 24 noise types, 11 noise scaling modes, in a single node. Also includes a wide variety of QoF and other utility nodes for boosting detail, manipulating sigmas, latents, images, and more." + }, + { + "author": "NeoGriever", + "title": "ComfyUI - NeoGriever", + "id": "neogrievernodes", + "reference": "https://github.com/NeoGriever/ComfyUI-NeoGriever", + "files": [ + "https://github.com/NeoGriever/ComfyUI-NeoGriever" + ], + "install_type": "git-clone", + "description": "NeoGriever's helper nodes. Better CLIP Text Encoder, Resolution Provider, Multimask Write/Read, TextBoxes Simple/Join/x2/x3, Sliders INT/FLOAT/STEPPER, String Tool/Squisher/Cutter, Create Solid Color, Fill with Color, Checkerboard Generator, Image Progress Bar" + }, + { + "author": "PauldeLavallaz", + "title": "Claude Prompt Generator", + "id": "claude_prompt_generator", + "reference": "https://github.com/PauldeLavallaz/comfyui_claude_prompt_generator", + "files": [ + "https://github.com/PauldeLavallaz/comfyui_claude_prompt_generator" + ], + "install_type": "git-clone", + "description": "Node that generates prompts using Anthropic Claude API." + }, + { + "author": "huanngzh", + "title": "ComfyUI-MVAdapter", + "reference": "https://github.com/huanngzh/ComfyUI-MVAdapter", + "files": [ + "https://github.com/huanngzh/ComfyUI-MVAdapter" + ], + "description": "This extension integrates [a/MV-Adapter](https://github.com/huanngzh/MV-Adapter) into ComfyUI, allowing users to generate multi-view consistent images from text prompts or single images directly within the ComfyUI interface.", + "install_type": "git-clone" + }, + { + "author": "Aerse", + "title": "ComfyUI-Seed-Nodes", + "reference": "https://github.com/Aerse/ComfyUI-Seed-Nodes", + "files": [ + "https://github.com/Aerse/ComfyUI-Seed-Nodes" + ], + "description": "ComfyUI-Seed-Nodes is a custom node library that extends the functionality of ComfyUI, offering advanced image loading and pixelation tools.", + "install_type": "git-clone" + }, + { + "author": "Slickytail", + "title": "ComfyUI-InstantX-IPAdapter-SD3", + "reference": "https://github.com/Slickytail/ComfyUI-InstantX-IPAdapter-SD3", + "files": [ + "https://github.com/Slickytail/ComfyUI-InstantX-IPAdapter-SD3" + ], + "description": "ComfyUI implementation of the [a/InstantX IP-Adapter for SD3.5 Large](https://huggingface.co/InstantX/SD3.5-Large-IP-Adapter).", + "install_type": "git-clone" + }, + { + "author": "Slickytail", + "title": "ComfyUI-RegionalAdaptiveSampling", + "reference": "https://github.com/Slickytail/ComfyUI-RegionalAdaptiveSampling", + "files": [ + "https://github.com/Slickytail/ComfyUI-RegionalAdaptiveSampling" + ], + "description": "ComfyUI implementation of Regional Adaptive Sampling, (original implementation at https://github.com/microsoft/RAS).", + "install_type": "git-clone" + }, + { + "author": "sourceful-official", + "title": "LoadLoraModelOnlyWithUrl", + "reference": "https://github.com/sourceful-official/LoadLoraModelOnlyWithUrl", + "reference2": "https://github.com/sourceful-official/ComfyUI_LoadLoraModelOnlyWithUrl", + "files": [ + "https://github.com/sourceful-official/LoadLoraModelOnlyWithUrl" + ], + "description": "ComfyUI-LoadLoraModelOnlyWithUrl", + "install_type": "git-clone" + }, + { + "author": "kimara-ai", + "title": "Kimara.ai's Advanced Watermarking Tools", + "reference": "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Advanced-Watermarks", + "files": [ + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Advanced-Watermarks" + ], + "description": "The KimaraAIWatermarker custom node allows you to apply watermark text and logo overlays to images. Optionally, the watermark can be moved by the move_watermark_step amount of pixels after each generated image. To apply a moving watermark to a list of images, use the KimaraAIBatchImages node to concatenate the list into a single tensor, then use that as an input for the watermark node, as shown in the example image below.", + "install_type": "git-clone" + }, + { + "author": "weilin9999", + "title": "WeiLin-Comfyui-Tools", + "id": "Comfyui-Tools", + "reference": "https://github.com/weilin9999/WeiLin-Comfyui-Tools", + "files": [ + "https://github.com/weilin9999/WeiLin-Comfyui-Tools" + ], + "install_type": "git-clone", + "description": "quickly use the prompt word tool in ComfyUI" + }, + { + "author": "LucipherDev", + "title": "ComfyUI-Golden-Noise", + "reference": "https://github.com/LucipherDev/ComfyUI-Golden-Noise", + "files": [ + "https://github.com/LucipherDev/ComfyUI-Golden-Noise" + ], + "install_type": "git-clone", + "description": "ComfyUI Custom Node for 'Golden Noise for Diffusion Models: A Learning Framework'. This node refines the initial latent noise in the diffusion process, enhancing both image quality and semantic coherence." + }, + { + "author": "LucipherDev", + "title": "ComfyUI-AniDoc", + "reference": "https://github.com/LucipherDev/ComfyUI-AniDoc", + "files": [ + "https://github.com/LucipherDev/ComfyUI-AniDoc" + ], + "install_type": "git-clone", + "description": "ComfyUI Custom Nodes for 'AniDoc: Animation Creation Made Easier'. This approach automates line art video colorization using a novel model that aligns color information from references, ensures temporal consistency, and reduces manual effort in animation production." + }, + { + "author": "LucipherDev", + "title": "ComfyUI-TangoFlux", + "reference": "https://github.com/LucipherDev/ComfyUI-TangoFlux", + "files": [ + "https://github.com/LucipherDev/ComfyUI-TangoFlux" + ], + "install_type": "git-clone", + "description": "ComfyUI Custom Nodes for 'TangoFlux: Super Fast and Faithful Text to Audio Generation with Flow Matching'. This generates high-quality 44.1kHz audio up to 30 seconds using just a text prompt." + }, + { + "author": "envy-ai", + "title": "ComfyUI-ConDelta", + "reference": "https://github.com/envy-ai/ComfyUI-ConDelta", + "files": [ + "https://github.com/envy-ai/ComfyUI-ConDelta" + ], + "install_type": "git-clone", + "description": "This extension extends ComfyUI's capabilities with respect to manipulating conditionings." + }, + { + "author": "kraglik", + "title": "PromptCollapse", + "reference": "https://github.com/kraglik/prompt_collapse", + "files": [ + "https://github.com/kraglik/prompt_collapse" + ], + "install_type": "git-clone", + "description": "A prompt generation system that manages relationships between prompt components to maintain logical consistency. Integrates with ComfyUI as a custom node." + }, + { + "author": "abdozmantar", + "title": "DeepExtract", + "reference": "https://github.com/abdozmantar/ComfyUI-DeepExtract", + "files": [ + "https://github.com/abdozmantar/ComfyUI-DeepExtract" + ], + "install_type": "git-clone", + "description": "DeepExtract is a powerful and efficient tool designed to separate vocals and sounds from audio files, providing an enhanced experience for musicians, producers, and audio engineers. With DeepExtract, you can quickly and effectively isolate vocals or instruments from mixed audio tracks, facilitating tasks like remixing, karaoke preparation, or audio analysis." + }, + { + "author": "ctefer", + "title": "CFE_comfyui", + "reference": "https://github.com/CpreForEver/CFE_comfyui", + "files": [ + "https://github.com/CpreForEver/CFE_comfyui" + ], + "install_type": "git-clone", + "description": "This is a subset of nodes for ComfyUI that I made just for my own workflow. The nodes support Flux (single conditioning, no negatives) and are just a way of minimizing the noodles. There's no real journey to be made here, just anything that helps me get through the day." + }, + { + "author": "inflamously", + "title": "comfyui-prompt-enhancer", + "reference": "https://github.com/inflamously/comfyui-prompt-enhancer", + "files": [ + "https://github.com/inflamously/comfyui-prompt-enhancer" + ], + "install_type": "git-clone", + "description": "A crazy node that pragmatically just enhances a given prompt with various descriptions in the hope that the image quality just increase and prompting just gets easier." + }, + { + "author": "111496583yzy", + "title": "Jigsaw Puzzle Effect Plugin", + "reference": "https://github.com/111496583yzy/comfyui-PuzzleCrack-Effect", + "files": [ + "https://github.com/111496583yzy/comfyui-PuzzleCrack-Effect" + ], + "install_type": "git-clone", + "description": "The Jigsaw Puzzle Effect plugin provides a unique puzzle effect for image processing. By dividing an image into multiple puzzle pieces and optionally adding missing pieces, users can easily create artistic puzzle effects." + }, + { + "author": "nsdtcloud3d", + "title": "ComfyUI-3D-Convert", + "reference": "https://github.com/nsdtcloud3d/ComfyUI-3D-Convert", + "files": [ + "https://github.com/nsdtcloud3d/ComfyUI-3D-Convert" + ], + "install_type": "git-clone", + "description": "ComfyUI-3D-Covert is a 3D File Format Conversion Extension based on 3dconvert.nsdt.cloud-API. It provides a node ConvertTo3DFormat currently available, is a powerful tool designed to streamline the conversion of 3D models between a wide array of file formats." + }, + { + "author": "Mr.Chip", + "title": "ComfyUI-SaveImageS3", + "id": "zouyuimages3", + "reference": "https://github.com/mrchipset/ComfyUI-SaveImageS3", + "files": [ + "https://github.com/mrchipset/ComfyUI-SaveImageS3" + ], + "install_type": "git-clone", + "description": "This extension offers a custom node to save image to S3-compatible oss." + }, + { + "author": "DesertPixelAi", + "title": "ComfyUI-Desert-Pixel-Nodes", + "reference": "https://github.com/DesertPixelAi/ComfyUI-Desert-Pixel-Nodes", + "files": [ + "https://github.com/DesertPixelAi/ComfyUI-Desert-Pixel-Nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI focused on animation, image processing, and workflow optimization." + }, + { + "author": "DesertPixelAi", + "title": "ComfyUI DP Dynamic Random Styler", + "reference": "https://github.com/DesertPixelAi/comfyui-dp-them-styler", + "files": [ + "https://github.com/DesertPixelAi/comfyui-dp-them-styler" + ], + "install_type": "git-clone", + "description": "A dynamic theme-based prompt generator for ComfyUI that creates versatile, random prompts optimized for face swap workflows." + }, + { + "author": "DesertPixelAi", + "title": "ComfyUI DP Ideogram Character Node", + "reference": "https://github.com/DesertPixelAi/ComfyUI-DP-Ideogram-Character", + "files": [ + "https://github.com/DesertPixelAi/ComfyUI-DP-Ideogram-Character" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node for generating consistent character images using Ideogram API v3's character reference feature. Part of the Desert Pixel (DP) node collection." + }, + { + "author": "muhammederem", + "title": "BLIP Vision-Language Model Integration", + "reference": "https://github.com/muhammederem/blip-comfyui", + "files": [ + "https://github.com/muhammederem/blip-comfyui" + ], + "install_type": "git-clone", + "description": "A Python implementation for integrating the BLIP (Bootstrapping Language-Image Pre-training) model for visual question answering." + }, + { + "author": "jiaqianjing", + "title": "ComfyUI-MidjourneyHub", + "reference": "https://github.com/jiaqianjing/ComfyUI-MidjourneyHub", + "files": [ + "https://github.com/jiaqianjing/ComfyUI-MidjourneyHub" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for integrating with Midjourney API." + }, + { + "author": "SlackinJack", + "title": "distrifuser_comfyui", + "reference": "https://github.com/SlackinJack/distrifuser_comfyui", + "files": [ + "https://github.com/SlackinJack/distrifuser_comfyui" + ], + "install_type": "git-clone", + "description": "[a/Distrifuser](https://github.com/mit-han-lab/distrifuser) sampler node for ComfyUI\n" + }, + { + "author": "Runware Inc.", + "title": "Runware.ai ComfyUI Inference API Integration", + "id": "runware", + "reference": "https://github.com/Runware/ComfyUI-Runware", + "files": [ + "https://github.com/Runware/ComfyUI-Runware" + ], + "install_type": "git-clone", + "description": "Runware Inference API Integration for ComfyUI (No GPU Required)." + }, + { + "author": "shannooty", + "title": "ComfyUI Timer Nodes", + "id": "comfyui-timer-nodes", + "reference": "https://github.com/Shannooty/ComfyUI-Timer-Nodes", + "files": [ + "https://github.com/Shannooty/ComfyUI-Timer-Nodes" + ], + "install_type": "git-clone", + "description": "This project provides a set of custom timer nodes for ComfyUI. These nodes allow you to measure and append runtime information to strings or other data during your workflow." + }, + { + "author": "HM-RunningHub", + "title": "ComfyUI_RH_OminiControl", + "reference": "https://github.com/HM-RunningHub/ComfyUI_RH_OminiControl", + "files": [ + "https://github.com/HM-RunningHub/ComfyUI_RH_OminiControl" + ], + "install_type": "git-clone", + "description": "ComfyUI_RH_OminiControl is a ComfyUI plugin based on OminiControl By splitting the pipeline load, the plugin efficiently runs on NVIDIA RTX 4090 GPUs. Additionally, the spatial and fill functionalities are generated using the schnell model, reducing the number of sampling steps and improving overall efficiency." + }, + { + "author": "HM-RunningHub", + "title": "ComfyUI_RH_UNO", + "reference": "https://github.com/HM-RunningHub/ComfyUI_RH_UNO", + "files": [ + "https://github.com/HM-RunningHub/ComfyUI_RH_UNO" + ], + "install_type": "git-clone", + "description": "This is a UNO ComfyUI plugin implementation that can run the full version with 24GB VRAM, as well as quickly run the FP8 version." + }, + { + "author": "HM-RunningHub", + "title": "ComfyUI_RH_FramePack", + "reference": "https://github.com/HM-RunningHub/ComfyUI_RH_FramePack", + "files": [ + "https://github.com/HM-RunningHub/ComfyUI_RH_FramePack" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI plug-in for lllyasviel/FramePack, easy to use" + }, + { + "author": "HM-RunningHub", + "title": "ComfyUI_RH_Step1XEdit", + "reference": "https://github.com/HM-RunningHub/ComfyUI_RH_Step1XEdit", + "files": [ + "https://github.com/HM-RunningHub/ComfyUI_RH_Step1XEdit" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI custom node implementation for image editing using the Step-1 model architecture, specifically adapted for reference-based image editing guided by text prompts." + }, + { + "author": "HM-RunningHub", + "title": "ComfyUI Qwen-Image Node", + "reference": "https://github.com/HM-RunningHub/ComfyUI_RH_Qwen-Image", + "files": [ + "https://github.com/HM-RunningHub/ComfyUI_RH_Qwen-Image" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that integrates Alibaba's Qwen-Image model for high-quality image generation with exceptional text rendering capabilities." + }, + { + "author": "sebord", + "title": "ComfyUI-LMCQ", + "reference": "https://github.com/sebord/ComfyUI-LMCQ", + "files": [ + "https://github.com/sebord/ComfyUI-LMCQ" + ], + "install_type": "git-clone", + "description": "ComfyUI small node toolkit, this toolkit is mainly to update some practical small nodes, to make a contribution to the comfyui ecosystem, PS: 'LMCQ' is the abbreviation of the team name\nNOTE: The files in the repo are not organized, which may lead to update issues." + }, + { + "author": "InstantStudioAI", + "title": "ComfyUI-InstantStudio", + "reference": "https://github.com/InstantStudioAI/ComfyUI-InstantStudio", + "files": [ + "https://github.com/InstantStudioAI/ComfyUI-InstantStudio" + ], + "install_type": "git-clone", + "description": "A collection of nodes to enhance your experience with ComfyUI." + }, + { + "author": "Tlant", + "title": "ComfyUI-OllamaPromptsGeneratorTlant", + "reference": "https://github.com/Tlant/ComfyUI-OllamaPromptsGeneratorTlant", + "files": [ + "https://github.com/Tlant/ComfyUI-OllamaPromptsGeneratorTlant" + ], + "install_type": "git-clone", + "description": "Use ollama to generate prompts based on reference text in comfyui." + }, + { + "author": "DarioFT", + "title": "ComfyUI-VideoDirCombiner", + "reference": "https://github.com/DarioFT/ComfyUI-VideoDirCombiner", + "files": [ + "https://github.com/DarioFT/ComfyUI-VideoDirCombiner" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that combines multiple videos from a directory with optional transitions and background music. Perfect for batch processing and creating seamless video compilations." + }, + { + "author": "Kim", + "title": "ComfyUI_KimNodes", + "reference": "https://github.com/wjl0313/ComfyUI_KimNodes", + "files": [ + "https://github.com/wjl0313/ComfyUI_KimNodes" + ], + "install_type": "git-clone", + "description": "ComfyUI node collection: icon layout & processing, YOLO intelligent cropping, image filters & enhancement, text processing tools, metadata management, mask handling and image classification in one comprehensive toolbox." + }, + { + "author": "LiJT", + "title": "Gemini prompt generator JT version", + "reference": "https://github.com/LiJT/ComfyUI-Gemini-Prompt-Generator-JT", + "files": [ + "https://github.com/LiJT/ComfyUI-Gemini-Prompt-Generator-JT" + ], + "install_type": "git-clone", + "description": "Custom node to use Gemini 1.5 and above for Comfyui to generates theme related prompts for image generators" + }, + { + "author": "codeprimate", + "title": "ComfyUI Mask Contour Processor", + "reference": "https://github.com/codeprimate/ComfyUI-MaskContourProcessor", + "files": [ + "https://github.com/codeprimate/ComfyUI-MaskContourProcessor" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that improves inpainting results by extending mask boundaries with geometric patterns, helping create smoother transitions and better context for AI-driven image completion." + }, + { + "author": "Miyuutsu", + "title": "comfyui-save-vpred", + "reference": "https://github.com/Miyuutsu/comfyui-save-vpred", + "files": [ + "https://github.com/Miyuutsu/comfyui-save-vpred" + ], + "install_type": "git-clone", + "description": "Simple ComfyUI Custom Node to enable saving checkpoints with V-Pred ZTSNR tensors and metadata." + }, + { + "author": "kostenickj", + "title": "comfyui-jk-easy-nodes", + "reference": "https://github.com/kostenickj/jk-comfyui-helpers", + "files": [ + "https://github.com/kostenickj/jk-comfyui-helpers" + ], + "install_type": "git-clone", + "description": "NODES: EasyHRFix, EasyHRFix_Context, JKAnythingToString, JKBigContext, JKDynamicThresholdingMultiModel, JKEasyCheckpointLoader, JKEasyDetailer, JKEasyDetailer_Context, JKEasyKSampler_Context, JKEasyWatermark, JKInspireSchedulerAdapter, JKLilContext, JKMultiModelSamplerUnpatch, JKStringEmpty, JKStringEquals, JKStringNotEmpty, JKStringNotEquals, JKStringToSamplerAdapter" + }, + { + "author": "IamCreateAI", + "title": "ComfyUI-Ruyi", + "reference": "https://github.com/IamCreateAI/Ruyi-Models", + "files": [ + "https://github.com/IamCreateAI/Ruyi-Models" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for Ruyi, an image-to-video model by CreateAI." + }, + { + "author": "pollockjj", + "title": "ComfyUI-MultiGPU", + "reference": "https://github.com/pollockjj/ComfyUI-MultiGPU", + "files": [ + "https://github.com/pollockjj/ComfyUI-MultiGPU" + ], + "install_type": "git-clone", + "description": "This extension adds CUDA device selection to supported loader nodes in ComfyUI. By monkey-patching ComfyUI’s memory management, each model component (like UNet, Clip, or VAE) can be loaded on a specific GPU. Examples included are multi-GPU workflows for SDXL, FLUX, LTXVideo, and Hunyuan Video for both standard and GGUF loader nodes." + }, + { + "author": "PressWagon", + "title": "ComfyUI-StringsAndThings", + "reference": "https://github.com/PressWagon/ComfyUI-StringsAndThings", + "files": [ + "https://github.com/PressWagon/ComfyUI-StringsAndThings" + ], + "install_type": "git-clone", + "description": "EA collection of ComfyUI custom nodes for formatting and debugging string data with the intention of collecting generation data to be processed by a custom node pack like comfy-image-saver, as well as miscellaneous extra nodes to experiment with." + }, + { + "author": "ADDOOR", + "title": "ComfyUI-Addoor", + "reference": "https://github.com/Eagle-CN/ComfyUI-Addoor", + "files": [ + "https://github.com/Eagle-CN/ComfyUI-Addoor" + ], + "install_type": "git-clone", + "description": "A collection of batch operation toolkits suitable for ComfyUI" + }, + { + "author": "CyanAutumn", + "title": "ComfyUi Random Manage Cyan", + "id": "CyanAutumn", + "reference": "https://github.com/CyanAutumn/ComfyUi_Random_Manage_Cyan", + "files": [ + "https://github.com/CyanAutumn/ComfyUi_Random_Manage_Cyan" + ], + "install_type": "git-clone", + "description": "A random prompt node" + }, + { + "author": "Black Forest Labs", + "title": "Black Forest Labs API Nodes", + "reference": "https://github.com/black-forest-labs/bfl-comfy-nodes", + "files": [ + "https://github.com/black-forest-labs/bfl-comfy-nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for Black Forest Labs API Services" + }, + { + "author": "kazeyori", + "title": "ComfyUI-QuickImageSequenceProcess", + "reference": "https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess", + "files": [ + "https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess" + ], + "install_type": "git-clone", + "description": "A ComfyUI plugin for quick image sequence processing. This plugin allows users to manipulate frame sequences with various operations including frame insertion, deletion, and duplication." + }, + { + "author": "Light-x02", + "title": "Image Metadata Nodes", + "id": "image_metadata_nodes", + "reference": "https://github.com/Light-x02/ComfyUI-Image-Metadata-Nodes", + "files": [ + "https://github.com/Light-x02/ComfyUI-Image-Metadata-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes for loading and saving images with metadata in ComfyUI." + }, + { + "author": "Light-x02", + "title": "Flux Settings Node", + "id": "flux_settings_node", + "reference": "https://github.com/Light-x02/ComfyUI-FluxSettingsNode", + "files": [ + "https://github.com/Light-x02/ComfyUI-FluxSettingsNode" + ], + "install_type": "git-clone", + "description": "A combined node for ComfyUI with six configurable tabs for managing multiple parameter configurations, including guidance, sampler, scheduler, steps, and denoise." + }, + { + "author": "Light-x02", + "title": "Crop Image by Lightx02", + "reference": "https://github.com/Light-x02/ComfyUI_Crop_Image_By_Lightx02", + "files": [ + "https://github.com/Light-x02/ComfyUI_Crop_Image_By_Lightx02" + ], + "install_type": "git-clone", + "description": "CropImageByLightx02 is a ComfyUI node that allows cropping an image (and optionally its mask) using pixel values." + }, + { + "author": "marcoc2", + "title": "Image Processing Suite for ComfyUI", + "reference": "https://github.com/marcoc2/ComfyUI-AnotherUtils", + "files": [ + "https://github.com/marcoc2/ComfyUI-AnotherUtils" + ], + "install_type": "git-clone", + "description": "A collection of specialized image processing nodes for ComfyUI, focused on dataset preparation and pixel art manipulation." + }, + { + "author": "marcoc2", + "title": "ComfyUI-Cog", + "reference": "https://github.com/marcoc2/ComfyUI_CogView4-6B_diffusers", + "files": [ + "https://github.com/marcoc2/ComfyUI_CogView4-6B_diffusers" + ], + "install_type": "git-clone", + "description": "This is a custom node aiming to run CogView4 on diffusers while there is no official implementation on ComfyUI.\nNOTE: You will need a updated version of diffusers and I don't know if updating it my break other stuff, so I advise you to make in a new instance of ComfyUI" + }, + { + "author": "BIMer-99", + "title": "ComfyUI_FishSpeech_EX", + "reference": "https://github.com/BIMer-99/ComfyUI_FishSpeech_EX", + "files": [ + "https://github.com/BIMer-99/ComfyUI_FishSpeech_EX" + ], + "install_type": "git-clone", + "description": "This plugin is optimized for Fish-Speech-1.5 version and is only applicable to version 1.5" + }, + { + "author": "AEmotionStudio", + "title": "ComfyUI Christmas Theme 🎄✨", + "reference": "https://github.com/AEmotionStudio/ComfyUI-ChristmasTheme", + "files": [ + "https://github.com/AEmotionStudio/ComfyUI-ChristmasTheme" + ], + "install_type": "git-clone", + "description": "A beautiful theme extension for ComfyUI that adds festive touches with dynamic backgrounds, snowfall effects, and animated node connections" + }, + { + "author": "AEmotionStudio", + "title": "ComfyUI-EnhancedLinksandNodes 🎨✨", + "reference": "https://github.com/AEmotionStudio/ComfyUI-EnhancedLinksandNodes", + "reference2": "https://github.com/AEmotionStudio/ComfyUI-Enhanced", + "files": [ + "https://github.com/AEmotionStudio/ComfyUI-EnhancedLinksandNodes" + ], + "install_type": "git-clone", + "description": "A visually stunning extension for ComfyUI that adds beautiful, customizable animations to both links and nodes in your workflow, with a focus on performance and customization. Includes an end-of-render animation and a text visibility tool for nodes. No extra packages are required, works with the latest version of ComfyUI, and should be compatible with most workflows. Larger workflows may experience performance issues, especially if you have a lot of nodes and are using a lower end system." + }, + { + "author": "AEmotionStudio", + "title": "ComfyUI-MagnifyGlass", + "reference": "https://github.com/AEmotionStudio/ComfyUI-MagnifyGlass", + "files": [ + "https://github.com/AEmotionStudio/ComfyUI-MagnifyGlass" + ], + "install_type": "git-clone", + "description": "ComfyUI-MagnifyGlass: A powerful & customizable magnifying glass for ComfyUI. Zoom into canvas details with smooth controls, configurable activation, custom styles (shape, size, border) & WebGL performance." + }, + { + "author": "AEmotionStudio", + "title": "ComfyUI-ShaderNoiseKSampler", + "reference": "https://github.com/AEmotionStudio/ComfyUI-ShaderNoiseKSampler", + "files": [ + "https://github.com/AEmotionStudio/ComfyUI-ShaderNoiseKSampler" + ], + "install_type": "git-clone", + "description": "Transform AI image generation from random exploration into deliberate artistic navigation. This advanced KSampler replacement blends traditional noise with shader noise. Navigate latent space with intention using adjustable noise parameters, shape masks, and colors transformations." + }, + { + "author": "AEmotionStudio", + "title": "ComfyUI-DiscordSend", + "reference": "https://github.com/AEmotionStudio/ComfyUI-DiscordSend", + "files": [ + "https://github.com/AEmotionStudio/ComfyUI-DiscordSend" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that enables seamless sharing of AI-generated images and videos directly to Discord." + }, + { + "author": "xfgexo", + "title": "EXO Custom ComfyUI Nodes", + "id": "exo-custom-nodes", + "reference": "https://github.com/xfgexo/EXO-Custom-ComfyUI-Nodes", + "files": [ + "https://github.com/xfgexo/EXO-Custom-ComfyUI-Nodes" + ], + "install_type": "git-clone", + "description": "A custom node pack made with efficiency and quality of life features in mind. Most notably is my Prompt Builder Deluxe Node. Unlike any other run-of-the-mill prompt builder or styler node out there. Mine allows you to create and design in a way no other node does." + }, + { + "author": "jefferyharrell", + "title": "JH XMP Metadata Nodes", + "reference": "https://github.com/ComfyUI-JH/ComfyUI-JH-XMP-Metadata-Nodes", + "files": [ + "https://github.com/ComfyUI-JH/ComfyUI-JH-XMP-Metadata-Nodes" + ], + "install_type": "git-clone", + "description": "These are custom nodes for ComfyUI for the loading and saving of metadata in XMP format. XMP metadata is embedded in the images created by these nodes; it travels along wherever the image does. Both macOS and Windows index XMP metadata automatically, making it searchable from the Finder on the Mac or the File Explorer in Windows. Apps like Photoshop or Lightroom (and presumably many others) expose XMP metadata and allow it to be edited." + }, + { + "author": "jefferyharrell", + "title": "JH Misc. Nodes", + "reference": "https://github.com/ComfyUI-JH/ComfyUI-JH-Misc-Nodes", + "files": [ + "https://github.com/ComfyUI-JH/ComfyUI-JH-Misc-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Daisy-Chainable String Constant, Two-Way Switch, Three-Way Switch, Preview Imag\nMiscellaneous custom nodes for ComfyUI" + }, + { + "author": "TKRLAB", + "title": "Prompt List JSON", + "reference": "https://github.com/TKRLAB/ComfyUI_Prompt_List_JSON", + "files": [ + "https://github.com/TKRLAB/ComfyUI_Prompt_List_JSON" + ], + "install_type": "git-clone", + "description": "This repository provides a custom node for ComfyUI that allows managing positive and negative prompts in a structured JSON format. The node supports adding, updating, and logging prompts, ensuring seamless integration into your workflow." + }, + { + "author": "kevinmcmahondev", + "title": "Skin Tone Detector for ComfyUI", + "reference": "https://github.com/kevinmcmahondev/comfyui-skin-tone-detector", + "files": [ + "https://github.com/kevinmcmahondev/comfyui-skin-tone-detector" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that detects the skin tone of a person in an image and matches it to the standard emoji skin tone palette." + }, + { + "author": "kevinmcmahondev", + "title": "KMCDev Nodes", + "reference": "https://github.com/kevinmcmahondev/comfyui-kmcdev-image-filter-adjustments", + "files": [ + "https://github.com/kevinmcmahondev/comfyui-kmcdev-image-filter-adjustments" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that provides advanced image adjustment filters and controls for image manipulation" + }, + { + "author": "mahdi", + "title": "seamless-clone-comfyui", + "reference": "https://github.com/Aksaz/comfyui-seamless-clone", + "files": [ + "https://github.com/Aksaz/comfyui-seamless-clone" + ], + "install_type": "git-clone", + "description": "Seamless Clone for ComfyUI" + }, + { + "author": "SlackinJack", + "title": "asyncdiff_comfyui", + "reference": "https://github.com/SlackinJack/asyncdiff_comfyui", + "files": [ + "https://github.com/SlackinJack/asyncdiff_comfyui" + ], + "install_type": "git-clone", + "description": "AsyncDiff node for ComfyUI" + }, + { + "author": "pharmapsychotic", + "title": "comfy-cliption", + "id": "comfy-cliption", + "reference": "https://github.com/pharmapsychotic/comfy-cliption", + "files": [ + "https://github.com/pharmapsychotic/comfy-cliption" + ], + "install_type": "git-clone", + "description": "Image to caption with CLIP ViT-L/14. Small and fast addition to the CLIP-L model you already have loaded to generate captions for images within your workflow." + }, + { + "author": "York Xiang", + "title": "Remembering utils", + "id": "comfyui-rememberingutils", + "reference": "https://github.com/bombless/comfyUI-RememberingUtils", + "files": [ + "https://github.com/bombless/comfyUI-RememberingUtils" + ], + "install_type": "git-clone", + "description": "Helper nodes to display last seed and prompt." + }, + { + "author": "shahkoorosh", + "title": "ComfyUI-KGnodes", + "reference": "https://github.com/shahkoorosh/ComfyUI-KGnodes", + "files": [ + "https://github.com/shahkoorosh/ComfyUI-KGnodes" + ], + "install_type": "git-clone", + "description": "NODES:Custom Resolution Latent Node, Style Selector\nThis Custom node offers various experimental nodes to make it easier to use ComfyUI." + }, + { + "author": "shahkoorosh", + "title": "ComfyUI-PersianText", + "reference": "https://github.com/shahkoorosh/ComfyUI-PersianText", + "files": [ + "https://github.com/shahkoorosh/ComfyUI-PersianText" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI node for rendering text with advanced styling options, including full support for Persian/Farsi and Arabic scripts." + }, + { + "author": "andygill", + "title": "comfyui-sunflower-nodes", + "reference": "https://github.com/andygill/comfyui-sunflower-nodes", + "files": [ + "https://github.com/andygill/comfyui-sunflower-nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for 3D visualization." + }, + { + "author": "HM-RunningHub", + "title": "ComfyUI_RH_APICall", + "reference": "https://github.com/HM-RunningHub/ComfyUI_RH_APICall", + "files": [ + "https://github.com/HM-RunningHub/ComfyUI_RH_APICall" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI plugin that makes it easier to call and run workflows from RunningHub in your local ComfyUI setup." + }, + { + "author": "HM-RunningHub", + "title": "ComfyUI SeedXPro Translation Node", + "reference": "https://github.com/HM-RunningHub/ComfyUI_RH_SeedXPro", + "files": [ + "https://github.com/HM-RunningHub/ComfyUI_RH_SeedXPro" + ], + "install_type": "git-clone", + "description": "This is a Seed-X-PPO-7B ComfyUI plugin. Easy to use" + }, + { + "author": "HM-RunningHub", + "title": "ComfyUI DMOSpeech2 Node", + "reference": "https://github.com/HM-RunningHub/ComfyUI_RH_DMOSpeech2", + "files": [ + "https://github.com/HM-RunningHub/ComfyUI_RH_DMOSpeech2" + ], + "install_type": "git-clone", + "description": "This is a Seed-X-PPO-7B ComfyUI plugin. Easy to use" + }, + { + "author": "HM-RunningHub", + "title": "ComfyUI USO Node", + "reference": "https://github.com/HM-RunningHub/ComfyUI_RH_USO", + "files": [ + "https://github.com/HM-RunningHub/ComfyUI_RH_USO" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that integrates USO (Unified Style and Subject-Driven Generation) for high-quality image generation with style and subject control." + }, + { + "author": "wqjuser", + "title": "ComfyUI-Chat-Image", + "reference": "https://github.com/wqjuser/ComfyUI-Chat-Image", + "files": [ + "https://github.com/wqjuser/ComfyUI-Chat-Image" + ], + "install_type": "git-clone", + "description": "Use an online large language model to describe images." + }, + { + "author": "ronsantash", + "title": "ComfyUIFlexiLoRALoader", + "reference": "https://github.com/ronsantash/Comfyui-flexi-lora-loader", + "files": [ + "https://github.com/ronsantash/Comfyui-flexi-lora-loader" + ], + "install_type": "git-clone", + "description": "FlexiLoRALoader - A ComfyUI custom node for dynamic LoRA weight management. Apply multiple LoRAs with flexible weight patterns and randomization features for creative AI image generation.\nFeatures: • Multiple LoRA handling (up to 3) • Weight pattern presets • Random/Sequential mode • Debug logging support" + }, + { + "author": "cherninlab", + "title": "Logo Generator Node for ComfyUI", + "reference": "https://github.com/cherninlab/logo-generator-comfyui", + "files": [ + "https://github.com/cherninlab/logo-generator-comfyui" + ], + "install_type": "git-clone", + "description": "This custom node allows you to generate logo images using Google Fonts." + }, + { + "author": "SongGuo11", + "title": "ComfyUI SaveAnything Node (SG11)", + "reference": "https://github.com/SongGuo11/ComfyUI-SaveAnything-SG11", + "files": [ + "https://github.com/SongGuo11/ComfyUI-SaveAnything-SG11" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for saving images in various formats" + }, + { + "author": "ciga2011", + "title": "ComfyUI MarkItDown", + "id": "markitdown", + "reference": "https://github.com/ciga2011/ComfyUI-MarkItDown", + "files": [ + "https://github.com/ciga2011/ComfyUI-MarkItDown" + ], + "pip": ["markitdown", "openai"], + "install_type": "git-clone", + "description": "This node pack helps to convert various files to Markdown. It supports pdf, pptx, xlsx, docx, html and image files." + }, + { + "author": "ciga2011", + "title": "ComfyUI Pollinations", + "id": "pollinations", + "reference": "https://github.com/ciga2011/ComfyUI-Pollinations", + "files": [ + "https://github.com/ciga2011/ComfyUI-Pollinations" + ], + "install_type": "git-clone", + "description": "Generate images from text prompts using Pollinations' AI models for free." + }, + { + "author": "ciga2011", + "title": "ComfyUI Prompt Optimizer", + "id": "promptoptimizer", + "reference": "https://github.com/ciga2011/ComfyUI-PromptOptimizer", + "files": [ + "https://github.com/ciga2011/ComfyUI-PromptOptimizer" + ], + "install_type": "git-clone", + "description": "Optimize prompts for text-to-image models at no cost." + }, + { + "author": "IgalOgonov", + "title": "Simple String Repository", + "reference": "https://github.com/IgalOgonov/ComfyUI_Simple_String_Repository", + "files": [ + "https://github.com/IgalOgonov/ComfyUI_Simple_String_Repository" + ], + "install_type": "git-clone", + "description": "Custom node that allows storing and accessing strings, meant to be parts of a prompt, in a simplified manner. Partially supports dynamic prompt syntax." + }, + { + "author": "fairy-root", + "title": "ComfyUI-GLHF", + "id": "comfyui-glhf", + "reference": "https://github.com/fairy-root/ComfyUI-GLHF", + "files": [ + "https://github.com/fairy-root/ComfyUI-GLHF" + ], + "install_type": "git-clone", + "description": "GLHF is a ComfyUI node that facilitates seamless interaction with the GLHF chat API. Designed to enhance user experience, it supports multiple language models, web search integration, and customizable instructions, making it a powerful extension for AI-driven workflows." + }, + { + "author": "Jurdn", + "title": "Jurdns Groq API Node", + "id": "jurdnsgroqapinode", + "reference": "https://github.com/jurdnisglobby/ComfyUI-Jurdns-Groq-Node", + "files": [ + "https://github.com/jurdnisglobby/ComfyUI-Jurdns-Groq-Node" + ], + "pip": ["groq"], + "install_type": "git-clone", + "description": "This node utilizes the Groq.com API to enhance prompts. (Place API key and main system prompt in the groq_config.json)" + }, + { + "author": "randomnoner11", + "title": "ComfyUI-MistralAI-API", + "reference": "https://github.com/randomnoner11/ComfyUI-MistralAI-API", + "files": [ + "https://github.com/randomnoner11/ComfyUI-MistralAI-API" + ], + "install_type": "git-clone", + "description": "Mistral AI API's chat completion endpoint in ComfyUI" + }, + { + "author": "ahernandezmiro", + "title": "ComfyUI-GCP_Storage_tools", + "reference": "https://github.com/ahernandezmiro/ComfyUI-GCP_Storage_tools", + "files": [ + "https://github.com/ahernandezmiro/ComfyUI-GCP_Storage_tools" + ], + "install_type": "git-clone", + "description": "A set of ComfyUI nodes for GPC Storage access" + }, + { + "author": "rohitsainier", + "title": "ComfyUI-InstagramDownloader", + "id": "comfyui-instagram-downloader", + "reference": "https://github.com/rohitsainier/ComfyUI-InstagramDownloader", + "files": [ + "https://github.com/rohitsainier/ComfyUI-InstagramDownloader" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node package that allows downloading and organizing Instagram content directly in your ComfyUI Output folder" + }, + { + "author": "zmwv823", + "title": "ComfyUI_Anytext", + "reference": "https://github.com/zmwv823/ComfyUI_Anytext", + "files": [ + "https://github.com/zmwv823/ComfyUI_Anytext" + ], + "install_type": "git-clone", + "description": "Unofficial Simple And Rough Implementation Of [a/AnyText](https://github.com/tyxsspa/AnyText) and [a/Glyph-ByT5] (https://github.com/AIGText/Glyph-ByT5) and [a/JoyType](https://github.com/jdh-algo/JoyType)" + }, + { + "author": "SKBv0", + "title": "ComfyUI SKBundle", + "reference": "https://github.com/SKBv0/ComfyUI_SKBundle", + "files": [ + "https://github.com/SKBv0/ComfyUI_SKBundle" + ], + "install_type": "git-clone", + "description": "Nodes: MultiText, TextBox, TitlePlus, SeamlessTexture, AspectRatioPlus, DisplayEverything, ComparerPlus, AnySwitch, Node Design Tools..." + }, + { + "author": "civen-cn", + "title": "ComfyUI Whisper Translator", + "reference": "https://github.com/civen-cn/ComfyUI-Whisper-Translator", + "files": [ + "https://github.com/civen-cn/ComfyUI-Whisper-Translator" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI node that allows you to translate subtitles using the Whisper. Now support for multiple languages: ['zh', 'en', 'ja', 'ko', 'ru', 'fr', 'de', 'es', 'pt', 'it', 'ar'] You may need to put fonts in the 'fonts' folder to support different languages." + }, + { + "author": "WainWong", + "title": "ComfyUI-Loop-image", + "reference": "https://github.com/WainWong/ComfyUI-Loop-image", + "files": [ + "https://github.com/WainWong/ComfyUI-Loop-image" + ], + "install_type": "git-clone", + "description": "ComfyUI Loop Image is a node package specifically designed for image loop processing. It provides two main processing modes: Batch Image Processing and Single Image Processing, along with supporting image segmentation and merging functions." + }, + { + "author": "Jash-Vora", + "title": "FitDiT", + "reference": "https://github.com/Jash-Vora/ComfyUI-GarmentDiT", + "files": [ + "https://github.com/Jash-Vora/ComfyUI-GarmentDiT" + ], + "install_type": "git-clone", + "description": "[a/FitDiT](https://arxiv.org/abs/2411.10499): Advancing the Authentic Garment Details for High-fidelity Virtual Try-onon" + }, + { + "author": "rhplus0831", + "title": "ComfyMepi", + "reference": "https://github.com/rhplus0831/ComfyMepi", + "files": [ + "https://github.com/rhplus0831/ComfyMepi" + ], + "install_type": "git-clone", + "description": "Another mobile frontend for ComfyUI" + }, + { + "author": "0x-jerry", + "title": "0x-jerry/Rembg Background Removal Node for ComfyUI", + "reference": "https://github.com/0x-jerry/comfyui-rembg", + "files": [ + "https://github.com/0x-jerry/comfyui-rembg" + ], + "install_type": "git-clone", + "description": "Rembg Background Removal Node for ComfyUI" + }, + { + "author": "sanbuphy", + "title": "ComfyUI-AudioLDM", + "reference": "https://github.com/sanbuphy/ComfyUI-AudioLDM", + "files": [ + "https://github.com/sanbuphy/ComfyUI-AudioLDM" + ], + "install_type": "git-clone", + "description": "ComfyUI Workflow to run audioldm-l-full pipeline\n[a/https://huggingface.co/cvssp/audioldm-l-full](https://huggingface.co/cvssp/audioldm-l-full)" + }, + { + "author": "bear2b", + "title": "ColorMatrixGPU Node for ComfyUI", + "reference": "https://github.com/bear2b/comfyui-argo-nodes", + "files": [ + "https://github.com/bear2b/comfyui-argo-nodes" + ], + "install_type": "git-clone", + "description": "This node applies a custom 4x4 color matrix to an image using GPU acceleration via PyTorch." + }, + { + "author": "phuvinh010701", + "title": "ComfyUI-Nudenet", + "reference": "https://github.com/phuvinh010701/ComfyUI-Nudenet", + "files": [ + "https://github.com/phuvinh010701/ComfyUI-Nudenet" + ], + "install_type": "git-clone", + "description": "Nodes for NSFW content filtering" + }, + { + "author": "Vaibhavs10", + "title": "ComfyUI-DDUF", + "reference": "https://github.com/Vaibhavs10/ComfyUI-DDUF", + "files": [ + "https://github.com/Vaibhavs10/ComfyUI-DDUF" + ], + "install_type": "git-clone", + "description": "Run DDUF in ComfyUI - powered by Diffusers." + }, + { + "author": "AconexOfficial", + "title": "ComfyUI GOAT Nodes", + "reference": "https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes", + "files": [ + "https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes" + ], + "install_type": "git-clone", + "description": "Nodes to level up your workflows performance and streamline specific functions." + }, + { + "author": "Jaminanim", + "title": "ComfyUI-Random-Int-Divisor-Node", + "reference": "https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node", + "files": [ + "https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node" + ], + "install_type": "git-clone", + "description": "A set of custom ComfyUI nodes for generating random integers within a range, adjusted to the nearest multiple of a user-defined divisor. Needlessly includes both an efficient and simple list implementation. Updates with each generation." + }, + { + "author": "cenzijing", + "title": "ComfyUI-Markmap", + "reference": "https://github.com/cenzijing/ComfyUI-Markmap", + "files": [ + "https://github.com/cenzijing/ComfyUI-Markmap" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for creating mindmaps from markdown" + }, + { + "author": "bongsang", + "title": "ComfyUI-Bongsang", + "reference": "https://github.com/bongsang/ComfyUI-Bongsang", + "files": [ + "https://github.com/bongsang/ComfyUI-Bongsang" + ], + "install_type": "git-clone", + "description": "The 'ComfyUI-Bongsang' is very useful tools for a diffusion model developer." + }, + { + "author": "muxueChen", + "title": "CosyVoice2 for ComfyUI", + "reference": "https://github.com/muxueChen/ComfyUI_NTCosyVoice", + "files": [ + "https://github.com/muxueChen/ComfyUI_NTCosyVoice" + ], + "install_type": "git-clone", + "description": "ComfyUI_NTCosyVoice is a plugin of ComfyUI for Cosysvoice2" + }, + { + "author": "inventorado", + "title": "ComfyUI Neural Network Toolkit NNT ", + "id": "nnt", + "reference": "https://github.com/inventorado/ComfyUI_NNT", + "files": [ + "https://github.com/inventorado/ComfyUI_NNT" + ], + "install_type": "git-clone", + "description": "Neural Network Toolkit (NNT) for ComfyUI is an extensive set of custom ComfyUI nodes for designing, training, and fine-tuning neural networks. This toolkit allows defining models, layers, training workflows, transformers, and tensor operations in a visual manner using nodes." + }, + { + "author": "Hullabalo", + "title": "ComfyUI-Loop", + "reference": "https://github.com/Hullabalo/ComfyUI-Loop", + "files": [ + "https://github.com/Hullabalo/ComfyUI-Loop" + ], + "install_type": "git-clone", + "description": "A pair of nodes (Load Image and Save Image) to create a simple loop in your ComfyUI inpainting workflow, without the need of loading your last saved image, and a few others to cut and paste back the cutting into the source." + }, + { + "author": "hodanajan", + "title": "optimal-crop-resolution", + "reference": "https://github.com/hodanajan/optimal-crop-resolution", + "files": [ + "https://github.com/hodanajan/optimal-crop-resolution" + ], + "install_type": "git-clone", + "description": "ComfyUI node to calculate optimal resolution to crop the image to (from a list of aspect ratios)" + }, + { + "author": "JJ", + "title": "ComfyUI-Jtils", + "reference": "https://github.com/cnbjjj/ComfyUI-Jtils", + "files": [ + "https://github.com/cnbjjj/ComfyUI-Jtils" + ], + "install_type": "git-clone", + "description": "An extension for ComfyUI that adds utility functions and nodes not available in the default setup." + }, + { + "author": "mw", + "title": "MW-ComfyUI_OneButtonPrompt", + "reference": "https://github.com/billwuhao/ComfyUI_OneButtonPrompt", + "files": [ + "https://github.com/billwuhao/ComfyUI_OneButtonPrompt" + ], + "install_type": "git-clone", + "description": "A node that assists in one click generation of prompts (for image and video generation, etc.) in Comfyui." + }, + { + "author": "mw", + "title": "ComfyUI_StepAudioTTS", + "reference": "https://github.com/billwuhao/ComfyUI_StepAudioTTS", + "files": [ + "https://github.com/billwuhao/ComfyUI_StepAudioTTS" + ], + "install_type": "git-clone", + "description": "A Text To Speech node using Step-Audio-TTS in ComfyUI. Can speak, rap, sing, or clone voice." + }, + { + "author": "mw", + "title": "ComfyUI_KokoroTTS_MW", + "reference": "https://github.com/billwuhao/ComfyUI_KokoroTTS_MW", + "files": [ + "https://github.com/billwuhao/ComfyUI_KokoroTTS_MW" + ], + "install_type": "git-clone", + "description": "A Text To Speech node using Kokoro TTS in ComfyUI. Supports 8 languages and 150 voices" + }, + { + "author": "mw", + "title": "ComfyUI_DiffRhythm_MW", + "reference": "https://github.com/billwuhao/ComfyUI_DiffRhythm", + "files": [ + "https://github.com/billwuhao/ComfyUI_DiffRhythm" + ], + "install_type": "git-clone", + "description": "Blazingly Fast and Embarrassingly Simple End-to-End Full-Length Song Generation. A node for ComfyUI." + }, + { + "author": "mw", + "title": "MW-ComfyUI_PortraitTools", + "reference": "https://github.com/billwuhao/ComfyUI_PortraitTools", + "files": [ + "https://github.com/billwuhao/ComfyUI_PortraitTools" + ], + "install_type": "git-clone", + "description": "Portrait Tools: Facial detection cropping, alignment, ID photo, etc." + }, + { + "author": "mw", + "title": "ComfyUI_NotaGen", + "reference": "https://github.com/billwuhao/ComfyUI_NotaGen", + "files": [ + "https://github.com/billwuhao/ComfyUI_NotaGen" + ], + "install_type": "git-clone", + "description": "Symbolic Music Generation, NotaGen node for ComfyUI." + }, + { + "author": "mw", + "title": "MW-ComfyUI_EraX-WoW-Turbo", + "reference": "https://github.com/billwuhao/ComfyUI_EraX-WoW-Turbo", + "files": [ + "https://github.com/billwuhao/ComfyUI_EraX-WoW-Turbo" + ], + "install_type": "git-clone", + "description": "Super fast multilingual speech recognition model based on Whisper Large-v3 Turbo. A node for ComfyUI." + }, + { + "author": "mw", + "title": "MW-ComfyUI_gemmax", + "reference": "https://github.com/billwuhao/ComfyUI_gemmax", + "files": [ + "https://github.com/billwuhao/ComfyUI_gemmax" + ], + "install_type": "git-clone", + "description": "XiaoMi GemmaX: Support 28 languages, Multilingual Translator based on Gemma. A node for ComfyUI." + }, + { + "author": "mw", + "title": "ComfyUI_CSM", + "reference": "https://github.com/billwuhao/ComfyUI_CSM", + "files": [ + "https://github.com/billwuhao/ComfyUI_CSM" + ], + "install_type": "git-clone", + "description": "ComfyUI node of Conversational Speech Model (CSM)." + }, + { + "author": "mw", + "title": "ComfyUI_SparkTTS", + "reference": "https://github.com/billwuhao/ComfyUI_SparkTTS", + "files": [ + "https://github.com/billwuhao/ComfyUI_SparkTTS" + ], + "install_type": "git-clone", + "description": "Using Spark-TTS in Comfyui. Spark-TTS: An Efficient LLM-Based Text-to-Speech Model with Single-Stream Decoupled Speech Tokenss" + }, + { + "author": "mw", + "title": "ComfyUI_AudioTools", + "reference": "https://github.com/billwuhao/ComfyUI_AudioTools", + "files": [ + "https://github.com/billwuhao/ComfyUI_AudioTools" + ], + "install_type": "git-clone", + "description": "This toolkit is designed for a wide range of audio tasks, from podcast enhancement and text-to-speech to creative music manipulation and fully automated, batch-processed audio-reactive visual generation." + }, + { + "author": "mw", + "title": "MW-ComfyUI_MegaTTS3", + "reference": "https://github.com/billwuhao/ComfyUI_MegaTTS3", + "files": [ + "https://github.com/billwuhao/ComfyUI_MegaTTS3" + ], + "install_type": "git-clone", + "description": "Lightweight and Efficient, 🎧Ultra High-Quality Voice Cloning, Chinese and English." + }, + { + "author": "mw", + "title": "MW-ComfyUI_OuteTTS", + "reference": "https://github.com/billwuhao/ComfyUI_OuteTTS", + "files": [ + "https://github.com/billwuhao/ComfyUI_OuteTTS" + ], + "install_type": "git-clone", + "description": "OuteTTS - Unified Text-To-Speech. A node for ComfyUI" + }, + { + "author": "mw", + "title": "ComfyUI_IndexTTS", + "reference": "https://github.com/billwuhao/ComfyUI_IndexTTS", + "files": [ + "https://github.com/billwuhao/ComfyUI_IndexTTS" + ], + "install_type": "git-clone", + "description": "IndexTTS Voice Cloning Nodes for ComfyUI. High-quality voice cloning, very fast, supports Chinese and English, and allows custom voice styles." + }, + { + "author": "mw", + "title": "ComfyUI_ACE-Step", + "reference": "https://github.com/billwuhao/ComfyUI_ACE-Step", + "files": [ + "https://github.com/billwuhao/ComfyUI_ACE-Step" + ], + "install_type": "git-clone", + "description": "ACE-Step: A Step Towards Music Generation Foundation Model" + }, + { + "author": "mw", + "title": "ComfyUI_parakeet-tdt", + "reference": "https://github.com/billwuhao/ComfyUI_parakeet-tdt", + "files": [ + "https://github.com/billwuhao/ComfyUI_parakeet-tdt" + ], + "install_type": "git-clone", + "description": "parakeet-tdt-0.6b-v2: Automatic speech recognition (ASR) model designed for high-quality English transcription, featuring support for punctuation, capitalization, and accurate timestamp prediction." + }, + { + "author": "mw", + "title": "Comfyui_HeyGem", + "reference": "https://github.com/billwuhao/Comfyui_HeyGem", + "files": [ + "https://github.com/billwuhao/Comfyui_HeyGem" + ], + "install_type": "git-clone", + "description": "HeyGem AI avatar." + }, + { + "author": "mw", + "title": "ComfyUI_SOME", + "reference": "https://github.com/billwuhao/ComfyUI_SOME", + "files": [ + "https://github.com/billwuhao/ComfyUI_SOME" + ], + "install_type": "git-clone", + "description": "Sing to Midi 🎶" + }, + { + "author": "umiyuki", + "title": "ComfyUI Pad To Eight", + "reference": "https://github.com/umiyuki/comfyui-pad-to-eight", + "files": [ + "https://github.com/umiyuki/comfyui-pad-to-eight" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node that pads an image to a multiple of 8 width." + }, + { + "author": "Meettya", + "title": "ComfyUI-OneForOne", + "reference": "https://github.com/Meettya/ComfyUI-OneForOne", + "files": [ + "https://github.com/Meettya/ComfyUI-OneForOne" + ], + "install_type": "git-clone", + "description": "Node:Image Fit Calculator" + }, + { + "author": "KunmyonChoi", + "title": "ComfyUI_S3_direct", + "reference": "https://github.com/KunmyonChoi/ComfyUI_S3_direct", + "files": [ + "https://github.com/KunmyonChoi/ComfyUI_S3_direct" + ], + "install_type": "git-clone", + "description": "ComfyUI custom_node that load and save file directly from S3\nSimplified version of [a/https://github.com/kealiu/ComfyUI-S3-Tools](https://github.com/kealiu/ComfyUI-S3-Tools)" + }, + { + "author": "ChenDarYen", + "title": "ComfyUI-TimestepShiftModel", + "reference": "https://github.com/ChenDarYen/ComfyUI-TimestepShiftModel", + "files": [ + "https://github.com/ChenDarYen/ComfyUI-TimestepShiftModel" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI implementation of the timestep shift technique used in [a/NitroFusion: High-Fidelity Single-Step Diffusion through Dynamic Adversarial Training.](https://arxiv.org/abs/2412.02030)\nFor more details, visit the official [a/NitroFusion GitHub repository](https://github.com/ChenDarYen/NitroFusion)." + }, + { + "author": "ChenDarYen", + "title": "ComfyUI-NAG", + "reference": "https://github.com/ChenDarYen/ComfyUI-NAG", + "files": [ + "https://github.com/ChenDarYen/ComfyUI-NAG" + ], + "install_type": "git-clone", + "description": "ComfyUI implemtation for NAG" + }, + { + "author": "facok", + "title": "ComfyUI-HunyuanVideoMultiLora", + "reference": "https://github.com/facok/ComfyUI-HunyuanVideoMultiLora", + "files": [ + "https://github.com/facok/ComfyUI-HunyuanVideoMultiLora" + ], + "install_type": "git-clone", + "description": "A custom LoRA-loading node designed to prevent issues such as blurriness and other artifacts when loading multiple LoRAs in HunYuan Video.\nUsage Instructions: The connection method remains unchanged from the original. The only difference is the additional blocks_type option. Please select double_blocks." + }, + { + "author": "facok", + "title": "ComfyUI-TeaCacheHunyuanVideo", + "reference": "https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo", + "files": [ + "https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo" + ], + "install_type": "git-clone", + "description": "This is a TeaCache acceleration node for HunYuan Video, supporting the native node workflow for seamless upgrades. Simply choose the acceleration multiplier you want—currently, three levels are available." + }, + { + "author": "FinetunersAI", + "title": "ComfyUI_Finetuners_Suite", + "reference": "https://github.com/FinetunersAI/ComfyUI_Finetuners_Suite", + "files": [ + "https://github.com/FinetunersAI/ComfyUI_Finetuners_Suite" + ], + "install_type": "git-clone", + "description": "A suite of nodes for ComfyUI that helps making ComfyUI more accesible for artists" + }, + { + "author": "sh570655308", + "title": "ComfyUI-GigapixelAI", + "id": "gigapixel", + "reference": "https://github.com/sh570655308/ComfyUI-GigapixelAI", + "files": [ + "https://github.com/sh570655308/ComfyUI-GigapixelAI" + ], + "install_type": "git-clone", + "description": "Custom nodes use gigapixelai in comfyui." + }, + { + "author": "sh570655308", + "title": "ComfyUI-TopazVideoAI", + "id": "tvai", + "reference": "https://github.com/sh570655308/ComfyUI-TopazVideoAI", + "files": [ + "https://github.com/sh570655308/ComfyUI-TopazVideoAI" + ], + "install_type": "git-clone", + "description": "Custom nodes use topazvideoai in comfyui." + }, + { + "author": "jammyfu", + "title": "Painting Coder Utils", + "id": "painting-coder-utils", + "reference": "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils", + "files": [ + "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils" + ], + "install_type": "git-clone", + "description": "Powerful tools for image and text processing, including cross-platform workflow fixes, optimized resolution, dynamic text/image combos, and batch processing. Unlock seamless AI art creation and boost your productivity!" + }, + { + "author": "welltop-cn", + "title": "ComfyUI-TeaCache", + "id": "teacache", + "reference": "https://github.com/welltop-cn/ComfyUI-TeaCache", + "files": [ + "https://github.com/welltop-cn/ComfyUI-TeaCache" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [ali-vilab/TeaCache](https://github.com/ali-vilab/TeaCache) for ComfyUI" + }, + { + "author": "calcuis", + "title": "gguf", + "id": "gguf", + "reference": "https://github.com/calcuis/gguf", + "files": [ + "https://github.com/calcuis/gguf" + ], + "preemptions":[ + "LoaderGGUF", + "ClipLoaderGGUF", + "DualClipLoaderGGUF", + "TripleClipLoaderGGUF", + "LoaderGGUFAdvanced", + "GGUFSave" + ], + "install_type": "git-clone", + "description": "gguf node for comfyui" + }, + { + "author": "ainewsto", + "title": "comfyui-labs-google", + "reference": "https://github.com/ainewsto/comfyui-labs-google", + "files": [ + "https://github.com/ainewsto/comfyui-labs-google" + ], + "install_type": "git-clone", + "description": "NODES: ComfyUI-ImageFx, ComfyUI-Whisk, ComfyUI-Whisk-Prompts" + }, + { + "author": "ainewsto", + "title": "Comfyui_Comfly_v2", + "reference": "https://github.com/ainewsto/Comfyui_Comfly_v2", + "files": [ + "https://github.com/ainewsto/Comfyui_Comfly_v2" + ], + "install_type": "git-clone", + "description": "NODES: Comfly_Mj, Comfly_mjstyle, Comfly_upload, Comfly_Mju, Comfly_Mjv, Comfly_kling_text2video, Comfly_kling_image2video, Comfly_video_extend, Comfly_lip_sync, Comfly_kling_videoPreview, Comfly Gemini API, Comfly Doubao SeedEdit, Comfly ChatGPT Api,Comfly Jimeng API, Comfly_gpt_image_1_edit, Comfly_gpt_image_1" + }, + { + "author": "ainewsto", + "title": "Comfyui-chatgpt-api", + "reference": "https://github.com/ainewsto/Comfyui-chatgpt-api", + "files": [ + "https://github.com/ainewsto/Comfyui-chatgpt-api" + ], + "install_type": "git-clone", + "description": "A new ComfyUI node for OpenAI's ChatGPT API has been added. It currently supports single and multiple image inputs, text input, image generation, and image editing." + }, + { + "author": "ainewsto", + "title": "Comfyui-google-veo2-api", + "reference": "https://github.com/ainewsto/Comfyui-google-veo2-api", + "files": [ + "https://github.com/ainewsto/Comfyui-google-veo2-api" + ], + "install_type": "git-clone", + "description": "NODES: Google Veo2 Video Generation" + }, + { + "author": "gremlation", + "title": "ComfyUI-ViewData", + "reference": "https://github.com/gremlation/ComfyUI-ViewData", + "files": [ + "https://github.com/gremlation/ComfyUI-ViewData" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that displays the type and contents of whatever is connected to the input. In the case of a Tensor object, it shows the shape instead of its value." + }, + { + "author": "gremlation", + "title": "ComfyUI-JMESPath", + "reference": "https://github.com/gremlation/ComfyUI-JMESPath", + "files": [ + "https://github.com/gremlation/ComfyUI-JMESPath" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that runs a [a/JMESPath](https://jmespath.org/) query against input JSON and outputs the result." + }, + { + "author": "gremlation", + "title": "ComfyUI-jq", + "reference": "https://github.com/gremlation/ComfyUI-jq", + "files": [ + "https://github.com/gremlation/ComfyUI-jq" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that runs a [a/jq](https://jqlang.github.io/jq/) query against input JSON and outputs the result." + }, + { + "author": "gremlation", + "title": "ComfyUI-ImageLabel", + "reference": "https://github.com/gremlation/ComfyUI-ImageLabel", + "files": [ + "https://github.com/gremlation/ComfyUI-ImageLabel" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that extends an image vertically to add a label either above or below it." + }, + { + "author": "gremlation", + "title": "ComfyUI-TrackAndWheel", + "reference": "https://github.com/gremlation/ComfyUI-TrackAndWheel", + "files": [ + "https://github.com/gremlation/ComfyUI-TrackAndWheel" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that improves panning and zooming on trackpads and with the mouse wheel." + }, + { + "author": "fuselayer", + "title": "comfyui-mosaic-blur", + "reference": "https://github.com/fuselayer/comfyui-mosaic-blur", + "files": [ + "https://github.com/fuselayer/comfyui-mosaic-blur" + ], + "install_type": "git-clone", + "description": "A simple mosaic blur node for ComfyUI that uses CV2 or Pillow" + }, + { + "author": "jerrylongyan", + "title": "ComfyUI-My-Mask", + "reference": "https://github.com/jerrylongyan/ComfyUI-My-Mask", + "files": [ + "https://github.com/jerrylongyan/ComfyUI-My-Mask" + ], + "install_type": "git-clone", + "description": "Some nodes for processing masks, currently including nodes that fill in the concave parts of existing masks with convex hulls." + }, + { + "author": "mira-6", + "title": "comfyui-sasolver", + "reference": "https://github.com/mira-6/comfyui-sasolver", + "files": [ + "https://github.com/mira-6/comfyui-sasolver" + ], + "install_type": "git-clone", + "description": "SASolver for Comfyui. Adapted from [a/comfyanonymous/ComfyUI#4454](https://github.com/comfyanonymous/ComfyUI/pull/4454) and [a/https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler](https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler)" + }, + { + "author": "dreamhartley", + "title": "ComfyUI_show_seed", + "reference": "https://github.com/dreamhartley/ComfyUI_show_seed", + "files": [ + "https://github.com/dreamhartley/ComfyUI_show_seed" + ], + "install_type": "git-clone", + "description": "A custom node that saves images while displaying the seed value used in generation" + }, + { + "author": "bubbliiiing", + "title": "Video Generation Nodes for EasyAnimate", + "id": "easyanimatenodes", + "reference": "https://github.com/aigc-apps/EasyAnimate", + "files": [ + "https://github.com/aigc-apps/EasyAnimate" + ], + "install_type": "git-clone", + "description": "Video Generation Nodes for EasyAnimate, which suppors text-to-video, image-to-video, video-to-video and different controls." + }, + { + "author": "bubbliiiing", + "title": "VideoX-Fun", + "reference": "https://github.com/aigc-apps/VideoX-Fun", + "files": [ + "https://github.com/aigc-apps/VideoX-Fun" + ], + "install_type": "git-clone", + "description": "VideoX-Fun is a video generation pipeline that can be used to generate AI images and videos, as well as to train baseline and Lora models for Diffusion Transformer. We support direct prediction from pre-trained baseline models to generate videos with different resolutions, durations, and FPS. Additionally, we also support users in training their own baseline and Lora models to perform specific style transformations." + }, + { + "author": "DraconicDragon", + "title": "ComfyUI-Venice-API", + "reference": "https://github.com/DraconicDragon/ComfyUI-Venice-API", + "files": [ + "https://github.com/DraconicDragon/ComfyUI-Venice-API" + ], + "install_type": "git-clone", + "description": "A custom node implementation for ComfyUI that integrates with venice.ai's Flux and SDXL image generation models. This project is adapted from [a/ComfyUI-FLUX-TOGETHER-API](https://github.com/BZcreativ/ComfyUI-FLUX-TOGETHER-API) to work with the venice.ai API." + }, + { + "author": "DraconicDragon", + "title": "ComfyUI-RyuuNoodles", + "reference": "https://github.com/DraconicDragon/ComfyUI-RyuuNoodles", + "files": [ + "https://github.com/DraconicDragon/ComfyUI-RyuuNoodles" + ], + "install_type": "git-clone", + "description": "Collection of one or more custom nodes for ComfyUI made mainly for personal use (GitHub README for more info). \nNodes: live Token Counter on any node, switch nodes with fallback functionality and FLOAT/INT nodes (and maybe more)." + }, + { + "author": "Wenaka2004", + "title": "ComfyUI-TagClassifier", + "reference": "https://github.com/Wenaka2004/ComfyUI-TagClassifier", + "files": [ + "https://github.com/Wenaka2004/ComfyUI-TagClassifier" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node,use Deepseek v3 to classify the input tags" + }, + { + "author": "westNeighbor", + "title": "ComfyUI-ultimate-openpose-render", + "reference": "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-render", + "files": [ + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-render" + ], + "install_type": "git-clone", + "description": "Enhanced features with flexible choice of inputs and outputs, fine control for pose plotting, freedom to composite poses and fast local pose editting." + }, + { + "author": "westNeighbor", + "title": "ComfyUI-ultimate-openpose-estimator", + "reference": "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-estimator", + "files": [ + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-estimator" + ], + "install_type": "git-clone", + "description": "Super fast tensorrt performance with accuate pose estimation of dwpose model, giving the detecting threshold control, plus pose image render and pose json format output. Fine control for pose plotting." + }, + { + "author": "westNeighbor", + "title": "ComfyUI-ultimate-openpose-editor", + "reference": "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-editor", + "files": [ + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-editor" + ], + "install_type": "git-clone", + "description": "Enhanced features with flexible choice of inputs and outputs, fine control for pose plotting, freedom to composite poses and fast local pose editting." + }, + { + "author": "a-und-b", + "title": "ComfyUI_Delay", + "reference": "https://github.com/a-und-b/ComfyUI_Delay", + "files": [ + "https://github.com/a-und-b/ComfyUI_Delay" + ], + "install_type": "git-clone", + "description": "Simple custom node for ComfyUI to artificially delay a workflow at any point." + }, + { + "author": "a-und-b", + "title": "ComfyUI_JSON_Helper", + "reference": "https://github.com/a-und-b/ComfyUI_JSON_Helper", + "files": [ + "https://github.com/a-und-b/ComfyUI_JSON_Helper" + ], + "install_type": "git-clone", + "description": "Simple custom node for ComfyUI that converts JSON strings to JSON objects." + }, + { + "author": "a-und-b", + "title": "ComfyUI_LoRA_from_URL", + "reference": "https://github.com/a-und-b/ComfyUI_LoRA_from_URL", + "files": [ + "https://github.com/a-und-b/ComfyUI_LoRA_from_URL" + ], + "install_type": "git-clone", + "description": "A simple-as-possible custom node for ComfyUI to load LoRA models from a public URL." + }, + { + "author": "a-und-b", + "title": "IC-Light V2 (fal.ai)", + "reference": "https://github.com/a-und-b/ComfyUI_IC-Light-v2_fal", + "files": [ + "https://github.com/a-und-b/ComfyUI_IC-Light-v2_fal" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node using the fal.ai API for the IC-Light V2 model" + }, + { + "author": "a-und-b", + "title": "ComfyUI Mask Area Condition", + "reference": "https://github.com/a-und-b/ComfyUI_MaskAreaCondition", + "files": [ + "https://github.com/a-und-b/ComfyUI_MaskAreaCondition" + ], + "install_type": "git-clone", + "description": "Calculates the percentage of a mask area compared to the total image size and outputs a boolean based on a defined threshold." + }, + { + "author": "r3dial", + "title": "Redial Discomphy - Discord Integration for ComfyUI", + "reference": "https://github.com/r3dial/redial-discomphy", + "files": [ + "https://github.com/r3dial/redial-discomphy" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that enables direct posting of images, videos, and messages to Discord channels. This node seamlessly integrates your ComfyUI workflows with Discord communication, allowing you to automatically share your generated content." + }, + { + "author": "r3dsd", + "title": "Comfyui-Template-Loader", + "reference": "https://github.com/r3dsd/comfyui-template-loader", + "files": [ + "https://github.com/r3dsd/comfyui-template-loader" + ], + "install_type": "git-clone", + "description": "Easily Load Your Frequently Used Prompts in ComfyUI\nWith ComfyUI Template Loader, managing and reusing your favorite prompts has never been simpler. Save time and streamline your workflow by loading your go-to templates with just a few clicks!" + }, + { + "author": "r3dsd", + "title": "HommageTools for ComfyUI", + "reference": "https://github.com/ArtHommage/HommageTools", + "files": [ + "https://github.com/ArtHommage/HommageTools" + ], + "install_type": "git-clone", + "description": "Entry point for HommageTools node collection for ComfyUI. Handles node registration, imports, and logging configuration." + }, + { + "author": "l-comm", + "title": "WatermarkRemoval", + "id": "watermark-removal", + "reference": "https://github.com/l-comm/WatermarkRemoval", + "files": [ + "https://github.com/l-comm/WatermarkRemoval" + ], + "install_type": "git-clone", + "description": "Watermark removal project" + }, + { + "author": "jhj0517", + "title": "ComfyUI-Moondream-Gaze-Detection", + "id": "comfyui-moondream-gaze-detection", + "reference": "https://github.com/jhj0517/ComfyUI-Moondream-Gaze-Detection", + "files": [ + "https://github.com/jhj0517/ComfyUI-Moondream-Gaze-Detection" + ], + "install_type": "git-clone", + "description": "Moondream's gaze detection feature wrapper node." + }, + { + "author": "jhj0517", + "title": "ComfyUI jhj Kokoro Onnx", + "id": "comfyui-jhj-kokoro-onnx", + "reference": "https://github.com/jhj0517/ComfyUI-jhj-Kokoro-Onnx", + "files": [ + "https://github.com/jhj0517/ComfyUI-jhj-Kokoro-Onnx" + ], + "install_type": "git-clone", + "description": "kokoro-onnx (opensource TTS model) wrapper for ComfyUI." + }, + { + "author": "jnxmx", + "title": "ComfyUI_HuggingFace_Downloader", + "reference": "https://github.com/jnxmx/ComfyUI_HuggingFace_Downloader", + "files": [ + "https://github.com/jnxmx/ComfyUI_HuggingFace_Downloader" + ], + "install_type": "git-clone", + "description": "Nodes for auto download models from Hugging Face using their filenames as part of workflows" + }, + { + "author": "philiprodriguez", + "title": "ComfyUI-HunyuanImageLatentToVideoLatent", + "reference": "https://github.com/philiprodriguez/ComfyUI-HunyuanImageLatentToVideoLatent", + "files": [ + "https://github.com/philiprodriguez/ComfyUI-HunyuanImageLatentToVideoLatent" + ], + "install_type": "git-clone", + "description": "A ComfyUI node which copies a given latent's samples tensor along the time axis ((length - 1) // 4) + 1 times to form a longer latent (see EmptyHunyuanLatentVideo's implementation for why this specific number of copies is used) and then prepares a noise_mask tensor of the same shape such that the value of the mask for a given time step is given by the function at https://www.desmos.com/calculator/vhw74mr1vh." + }, + { + "author": "benjiyaya", + "title": "ComfyUI-HunyuanVideoImagesGuider", + "reference": "https://github.com/benjiyaya/ComfyUI-HunyuanVideoImagesGuider", + "files": [ + "https://github.com/benjiyaya/ComfyUI-HunyuanVideoImagesGuider" + ], + "install_type": "git-clone", + "description": "A specialized node for ComfyUI that enable advanced motion and animation capabilities for image as guider for video processing In Hunyuan Video." + }, + { + "author": "Zeks", + "title": "comfyui-rapidfire", + "reference": "https://github.com/Zeks/comfyui-rapidfire", + "files": [ + "https://github.com/Zeks/comfyui-rapidfire" + ], + "install_type": "git-clone", + "description": "A set of nodes for rapidfiring the half backed latents, cleaning up obvious bad generations and automatically queueing the rest to fully generate." + }, + { + "author": "meanin2", + "title": "comfyui-MGnodes", + "reference": "https://github.com/meanin2/comfyui-MGnodes", + "files": [ + "https://github.com/meanin2/comfyui-MGnodes" + ], + "install_type": "git-clone", + "description": "Assorted custom nodes with a focus on simplicity and usability including watermark node and others focused on customizing my comfy experience." + }, + { + "author": "Kurdknight", + "title": "KurdKnight ComfyUI System Check Node", + "reference": "https://github.com/Kurdknight/Kurdknight_comfycheck", + "files": [ + "https://github.com/Kurdknight/Kurdknight_comfycheck" + ], + "install_type": "git-clone", + "description": "A comprehensive system information node for ComfyUI that provides detailed information about your system, GPU, CUDA, and AI libraries configuration. Works on both Windows and Linux systems." + }, + { + "author": "ThepExcel", + "title": "Multiline Text Choice Node for ComfyUI", + "reference": "https://github.com/ThepExcel/aiangelgallery-comfyui", + "files": [ + "https://github.com/ThepExcel/aiangelgallery-comfyui" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows users to input multiline text and select a specific line by its number. The node processes the input and returns the selected line along with its index." + }, + { + "author": "BoyuanJiang", + "title": "FitDiT[official] - High-fidelity Virtual Try-on", + "id": "fitdit", + "reference": "https://github.com/BoyuanJiang/FitDiT/tree/FitDiT-ComfyUI", + "files": [ + "https://github.com/BoyuanJiang/FitDiT-ComfyUI" + ], + "install_type": "git-clone", + "description": "FitDiT is designed for high-fidelity virtual try-on using Diffusion Transformers (DiT)." + }, + { + "author": "nofunstudio", + "title": "Node_Fun_ComfyUI", + "reference": "https://github.com/nofunstudio/Node_Fun_ComfyUI", + "files": [ + "https://github.com/nofunstudio/Node_Fun_ComfyUI" + ], + "install_type": "git-clone", + "description": "ComfyUI Custom Node Pack Layered Infinite Zoom Node" + }, + { + "author": "PixelML", + "title": "PixelML ComfyUI Nodes", + "reference": "https://github.com/PixelML/ComfyUI-PixelML-CustomNodes", + "files": [ + "https://github.com/PixelML/ComfyUI-PixelML-CustomNodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI focused on variable handling and workflow automation." + }, + { + "author": "shabri-arrahim", + "title": "ComfyUI Safety Checker", + "reference": "https://github.com/shabri-arrahim/ComfyUI-Safety-Checker", + "files": [ + "https://github.com/shabri-arrahim/ComfyUI-Safety-Checker" + ], + "install_type": "git-clone", + "description": "This project provides custom safety checkers for image classification using Falcons AI and CompVis models. The safety checkers are designed to detect and filter out NSFW content from images." + }, + { + "author": "shenduldh", + "title": "ComfyUI-Lightning", + "reference": "https://github.com/shenduldh/ComfyUI-Lightning", + "files": [ + "https://github.com/shenduldh/ComfyUI-Lightning" + ], + "install_type": "git-clone", + "description": "Accelerate FLUX inferencing speed for ComfyUI." + }, + { + "author": "theAdamColton", + "title": "ComfyUI-texflow-extension", + "reference": "https://github.com/theAdamColton/ComfyUI-texflow-extension", + "files": [ + "https://github.com/theAdamColton/ComfyUI-texflow-extension" + ], + "install_type": "git-clone", + "description": "This is the ComfyUI extension for use with texflow. It provides two new nodes, 'Load Texflow Depth Image' and 'Save Texflow Image'.\nFor more information see [a/the main texflow repo](https://github.com/theAdamColton/texflow/)" + }, + { + "author": "hmwl", + "title": "ComfyUI_zip", + "reference": "https://github.com/hmwl/ComfyUI_zip", + "files": [ + "https://github.com/hmwl/ComfyUI_zip" + ], + "install_type": "git-clone", + "description": "ComfyUI zip package image processing" + }, + { + "author": "hmwl", + "title": "ComfyUI-TaskMonitor", + "reference": "https://github.com/hmwl/ComfyUI-TaskMonitor", + "files": [ + "https://github.com/hmwl/ComfyUI-TaskMonitor" + ], + "install_type": "git-clone", + "description": "A powerful task monitoring extension for ComfyUI that provides real-time progress tracking, workflow statistics, and execution monitoring." + }, + { + "author": "nisimjoseph", + "title": "ComfyUI OpenAI Prompter", + "reference": "https://github.com/nisimjoseph/ComfyUI_OpenAI-Prompter", + "files": [ + "https://github.com/nisimjoseph/ComfyUI_OpenAI-Prompter" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that generates creative and detailed prompts using OpenAI's GPT models." + }, + { + "author" : "ngosset", + "title": "ImageSimilarity", + "id": "imageSimilarity", + "reference": "https://github.com/ngosset/ComfyUI-ImageSimilarity", + "files": [ + "https://github.com/ngosset/ComfyUI-ImageSimilarity" + ], + "install_type": "git-clone", + "description": "Uses ResNet embeddings and cosine similarity to compare the likeness of two images." + }, + { + "author": "Bellzs", + "title": "ComfyUI-LoRA-Assistant", + "reference": "https://github.com/Bellzs/ComfyUI-LoRA-Assistant", + "files": [ + "https://github.com/Bellzs/ComfyUI-LoRA-Assistant" + ], + "install_type": "git-clone", + "description": "The plug-in is designed to automatically save the association between the LoRA model and Trigger words to a Local JSON file so that when the LoRA model is loaded, the associated trigger words can be automatically loaded via the node 'LoRA Trigger Local' without manual input." + }, + { + "author" : "strand1", + "title": "ComfyUI-Autogen", + "reference": "https://github.com/strand1/ComfyUI-Autogen", + "files": [ + "https://github.com/strand1/ComfyUI-Autogen" + ], + "install_type": "git-clone", + "description": "A collection of nodes for using Autogen with ComfyUI\n[a/AutoGen](https://github.com/microsoft/AutoGen): assistant agents, group chats, code executor, etc." + }, + { + "author": "hellercommaa", + "title": "Hunyuan Video Resolutions", + "id": "hunyuanvideoresolutions", + "reference": "https://github.com/HellerCommaA/ComfyUI-VideoResolutions", + "files": [ + "https://github.com/HellerCommaA/ComfyUI-VideoResolutions" + ], + "install_type": "git-clone", + "description": "A super simple node that outputs common video resolutions as 2 integers for Hunyuan and others!" + }, + { + "author": "benjiyaya", + "title": "ComfyUI-KokoroTTS", + "reference": "https://github.com/benjiyaya/ComfyUI-KokoroTTS", + "files": [ + "https://github.com/benjiyaya/ComfyUI-KokoroTTS" + ], + "install_type": "git-clone", + "description": "A Text To Speech node using Kokoro TTS in ComfyUI." + }, + { + "author": "WangPengxing", + "title": "ComfyUI WPX Nodes", + "reference": "https://github.com/WangPengxing/ComfyUI_WPX_Node", + "files": [ + "https://github.com/WangPengxing/ComfyUI_WPX_Node" + ], + "install_type": "git-clone", + "description": "A custom node collection for ComfyUI, offering enhanced image processing features." + }, + { + "author": "PixelFunAI", + "title": "Hunyuan LoRA Loader Nodes", + "reference": "https://github.com/PixelFunAI/ComfyUI_PixelFun", + "files": [ + "https://github.com/PixelFunAI/ComfyUI_PixelFun" + ], + "install_type": "git-clone", + "description": "This collection provides four additional nodes for loading and managing Hunyuan Video LoRAs in ComfyUI" + }, + { + "author": "Burgstall-labs", + "title": "ComfyUI-BS_Kokoro-onnx", + "reference": "https://github.com/Burgstall-labs/ComfyUI-BS_Kokoro-onnx", + "files": [ + "https://github.com/Burgstall-labs/ComfyUI-BS_Kokoro-onnx" + ], + "install_type": "git-clone", + "description": "A ComfyUI wrapper for [a/Kokoro-onnx](https://github.com/thewh1teagle/kokoro-onnx)" + }, + { + "author": "Burgstall-labs", + "title": "ComfyUI-BS-Textchop", + "reference": "https://github.com/Burgstall-labs/ComfyUI-BS-Textchop", + "files": [ + "https://github.com/Burgstall-labs/ComfyUI-BS-Textchop" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that extracts text segments based on specified start and/or end marker strings. You can define multiple marker pairs to extract different segments from the same input text.\nThe node intelligently adapts its extraction based on whether you provide a start marker, an end marker, or both for each pair." + }, + { + "author": "Burgstall-labs", + "title": "ComfyUI-BETA-Cropnodes", + "reference": "https://github.com/Burgstall-labs/ComfyUI-BETA-Cropnodes", + "reference2": "https://github.com/Burgstall-labs/ComfyUI-BETA-Helpernodes", + "files": [ + "https://github.com/Burgstall-labs/ComfyUI-BETA-Cropnodes" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI designed for cropping and stitching video frames (image batches). Part of the 'Burgstall Enabling The Awesomeness' suite." + }, + { + "author": "Burgstall-labs", + "title": "ComfyUI-BETA-Helpernodes", + "reference": "https://github.com/Burgstall-labs/ComfyUI-BETA-Helpernodes", + "files": [ + "https://github.com/Burgstall-labs/ComfyUI-BETA-Helpernodes" + ], + "install_type": "git-clone", + "description": "Custom utility nodes for ComfyUI, providing helpers for tasks like video frame manipulation and advanced audio saving. Part of the 'Burgstall Enabling The Awesomeness' suite." + }, + { + "author": "Kidev", + "title": "ComfyUI Fisheye Effects Nodes", + "reference": "https://github.com/Kidev/ComfyUI-Fisheye-effects", + "files": [ + "https://github.com/Kidev/ComfyUI-Fisheye-effects" + ], + "install_type": "git-clone", + "description": "Provides tools for applying and removing fisheye lens effects from images." + }, + { + "author": "feixuetuba", + "title": "Spleeter", + "reference": "https://github.com/feixuetuba/Spleeter", + "files": [ + "https://github.com/feixuetuba/Spleeter" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI plugin based on [a/Spleeter](https://github.com/deezer/spleete). The model files are available on BaiduNetDisk. After downloading the model, place it in the checkpoints directory." + }, + { + "author": "aidec", + "title": "Comfyui_TextBatch_aidec", + "reference": "https://github.com/aidec/Comfyui_TextBatch_aidec", + "files": [ + "https://github.com/aidec/Comfyui_TextBatch_aidec" + ], + "install_type": "git-clone", + "description": "The Text Queue Processor can split text into groups line by line for batch processing (unfinished, with noticeable bugs still being fixed). Currently, on the first run, it may only process one item. Once that is completed, running it again usually works fine. After each run, the `start_index` needs to be manually reset. Occasionally, strange issues occur, such as multiple queues being added at once, while other times it works perfectly fine. The potential causes are still under investigation." + }, + { + "author": "asutermo", + "title": "ComfyUI-Flux-TryOff", + "id": "tryoffflux", + "reference": "https://github.com/asutermo/ComfyUI-Flux-TryOff", + "files": [ + "https://github.com/asutermo/ComfyUI-Flux-TryOff" + ], + "install_type": "git-clone", + "description": "Try Off for ComfyUI using Flux and CatVTON." + }, + { + "author": "bugltd", + "title": "ComfyLab Pack", + "id": "comfylab-pack", + "reference": "https://github.com/bugltd/ComfyLab-Pack", + "files": [ + "https://github.com/bugltd/ComfyLab-Pack" + ], + "nodename_pattern": " \\(lab\\)$", + "install_type": "git-clone", + "description": "Nodes: XY Plot with many options, Output Config (JSON / JSON5 / YAML), Queue, Format String, List utilities, Input nodes, ...." + }, + { + "author": "duchamps0305", + "title": "comfyui-white-extractor", + "reference": "https://github.com/duchamps0305/comfyui-white-extractor", + "reference2": "https://github.com/alexpuliatti/comfyui-white-extractor", + "files": [ + "https://github.com/duchamps0305/comfyui-white-extractor" + ], + "install_type": "git-clone", + "description": "a simple white extractor node for comfyui." + }, + { + "author": "DJ-Tribefull", + "title": "Comfyui FOCUS nodes", + "reference": "https://github.com/DJ-Tribefull/Comfyui_FOCUS_nodes", + "files": [ + "https://github.com/DJ-Tribefull/Comfyui_FOCUS_nodes" + ], + "install_type": "git-clone", + "description": "A collection of nodes designed for efficiency and the reduction of screen-clutter. Includes a Global Seed controller with boolean toggles, SDXL All-in-One conditioner, a custom SDXL control module, Wildcard processor, Style Injector, and more. [w/WARNING: Updating this node-pack wil overwrite any changes you've made to the included wildcards and styles. Please backup your folders before updating.]" + }, + { + "author": "KLL535", + "title": "ComfyUI_SimpleButcher", + "reference": "https://github.com/KLL535/ComfyUI_SimpleButcher", + "files": [ + "https://github.com/KLL535/ComfyUI_SimpleButcher" + ], + "install_type": "git-clone", + "description": "Node to automate batch generation with randomize prompts from text files. It mimics Forge's functionality, allowing you to combine text elements and LoRA. The node supports writing LoRA in any order within a text file using formats like or , without needing separate nodes. The node understands LoRA names in Forge's style, when the name is not the filename, but the internal name from the metadata." + }, + { + "author": "KLL535", + "title": "ComfyUI_PNGInfo_Sidebar", + "reference": "https://github.com/KLL535/ComfyUI_PNGInfo_Sidebar", + "files": [ + "https://github.com/KLL535/ComfyUI_PNGInfo_Sidebar" + ], + "install_type": "git-clone", + "description": "Frontend extension that adds a sidebar for easy viewing of PNG file metadata." + }, + { + "author": "mango125", + "title": "ComfyUI-Mango-Random", + "reference": "https://github.com/mango-rgb/ComfyUI-Mango-Random-node", + "files": [ + "https://github.com/mango-rgb/ComfyUI-Mango-Random-node" + ], + "install_type": "git-clone", + "description": "🥭 Mango Random Nodes - A collection of random file nodes for ComfyUI" + }, + { + "author": "WUYUDING2583", + "title": "Save Image With Callback", + "reference": "https://github.com/WUYUDING2583/ComfyUI-Save-Image-Callback", + "files": [ + "https://github.com/WUYUDING2583/ComfyUI-Save-Image-Callback" + ], + "install_type": "git-clone", + "description": "This node enables integration between ComfyUI and external services by adding callback capabilities to the image saving process. When an image is saved, the node automatically call your webhook with your specified URL with custom data." + }, + { + "author": "fblissjr", + "title": "ComfyUI-EmbeddingPipelineAnalytics", + "reference": "https://github.com/fblissjr/ComfyUI-EmbeddingPipelineAnalytics", + "files": [ + "https://github.com/fblissjr/ComfyUI-EmbeddingPipelineAnalytics" + ], + "install_type": "git-clone", + "description": "this repo is to capture end-to-end data, metadata, and embeddings for ComfyUI workflows, specifically HunyuanVideo to start." + }, + { + "author": "fblissjr", + "title": "ComfyUI Dataset Helper & Batch Node", + "reference": "https://github.com/fblissjr/ComfyUI-DatasetHelper", + "files": [ + "https://github.com/fblissjr/ComfyUI-DatasetHelper" + ], + "install_type": "git-clone", + "description": "This custom node set for ComfyUI provides a DatasetBatchNode for automated, sequential processing of datasets, particularly useful for iterative training or batched image/video generation workflows." + }, + { + "author": "fblissjr", + "title": "wanvideo - seamless flow", + "reference": "https://github.com/fblissjr/ComfyUI-WanSeamlessFlow", + "files": [ + "https://github.com/fblissjr/ComfyUI-WanSeamlessFlow" + ], + "install_type": "git-clone", + "description": "experimental wanvideo comfyui node with a singular goal - visually seamless transitions between context windows" + }, + { + "author": "fblissjr", + "title": "ComfyUI-WanActivationEditor", + "reference": "https://github.com/fblissjr/ComfyUI-WanActivationEditor", + "files": [ + "https://github.com/fblissjr/ComfyUI-WanActivationEditor" + ], + "install_type": "git-clone", + "description": "editing activations in wanvideo" + }, + { + "author": "fblissjr", + "title": "Shrug-Prompter: Unified VLM Integration for ComfyUI", + "reference": "https://github.com/fblissjr/shrug-prompter", + "files": [ + "https://github.com/fblissjr/shrug-prompter" + ], + "install_type": "git-clone", + "description": "A comprehensive Vision-Language Model (VLM) integration system for ComfyUI with more intelligent prompt optimization, object detection, template support, and performance optimizations. Optimized for Wan2.1, Flux Kontext, and general purpose. Goes well with my other project, an MLX/llama.cpp server with hot swappable models and ollama api compatibility, (heylookitsanllm)[a/https://github.com/fblissjr/heylookitsanllm](https://github.com/fblissjr/heylookitsanllm)" + }, + { + "author": "fblissjr", + "title": "ComfyUI-QwenImageWanBridge", + "reference": "https://github.com/fblissjr/ComfyUI-QwenImageWanBridge", + "files": [ + "https://github.com/fblissjr/ComfyUI-QwenImageWanBridge" + ], + "install_type": "git-clone", + "description": "Custom nodes for bridging Qwen-Image and WAN video models in ComfyUI." + }, + { + "author": "vincentfs", + "title": "ComfyUI-ArchiGraph", + "id": "archigraph", + "reference": "https://github.com/vincentfs/ComfyUI-ArchiGraph", + "files": [ + "https://github.com/vincentfs/ComfyUI-ArchiGraph" + ], + "install_type": "git-clone", + "description": "Implementation of architectural related graph algorithm in ComfyUI." + }, + + { + "author": "ziwang-com", + "title": "comfyui-deepseek-r1", + "reference": "https://github.com/ziwang-com/comfyui-deepseek-r1", + "files": [ + "https://github.com/ziwang-com/comfyui-deepseek-r1" + ], + "install_type": "git-clone", + "description": "Comfyui-deepseek-r1 Node Plugin" + }, + { + "author": "davidgressett", + "title": "CartesianCSVNode for ComfyUI", + "reference": "https://github.com/davidgressett/comfyui-systemlevel", + "files": [ + "https://github.com/davidgressett/comfyui-systemlevel" + ], + "install_type": "git-clone", + "description": "This custom node allows you to load data from one or more CSV files, then feed that data into subsequent nodes in a ComfyUI workflow." + }, + { + "author": "SshunWang", + "title": "ComfyUI for CosyVoice", + "reference": "https://github.com/SshunWang/ComfyUI_CosyVoice", + "files": [ + "https://github.com/SshunWang/ComfyUI_CosyVoice" + ], + "install_type": "git-clone", + "description": "Support both CosyVoice1.0 and CosyVoice2.0. Referenced [a/CosyVoice-ComfyUI](https://github.com/AIFSH/CosyVoice-ComfyUI), the following modifications have been made: Add support for CosyVoice2.0, Add whether to use stream processing options, Use speed control by CosyVoice, Add model path check to avoid duplicate downloads, Provide two ways of use" + }, + { + "author": "Kayarte", + "title": "AudioDriven-Latent-Space-Tools-for-ComfyUI", + "reference": "https://github.com/Kayarte/AudioDriven-Latent-Space-Tools-for-ComfyUI", + "files": [ + "https://github.com/Kayarte/AudioDriven-Latent-Space-Tools-for-ComfyUI" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that analyzes audio files using Librosa, extracting tempo, beat times, energy levels, and timestamps. The analysis results can be displayed in a text box within ComfyUI." + }, + { + "author": "MontagenAI", + "title": "ComfyUI-Montagen", + "reference": "https://github.com/MontagenAI/ComfyUI-Montagen", + "files": [ + "https://github.com/MontagenAI/ComfyUI-Montagen" + ], + "install_type": "git-clone", + "description": "ComfyUI-Montagen is an extension designed to enhance the video editing ability of ComfyUI with custom nodes and Montagen. It offers basic video editing features and integrates media clips with the ComfyUI workflow. Furthermore, this extension unlocks the full potential of AI-based video generation and task automation." + }, + { + "author": "Xiangyu-CAS", + "title": "HandFixer", + "reference": "https://github.com/Xiangyu-CAS/HandFixer", + "files": [ + "https://github.com/Xiangyu-CAS/HandFixer" + ], + "install_type": "git-clone", + "description": "This project addresses the issue of numerous hand defects in AI-generated portrait images by using a workflow based on FLUX/FLUX-Fill to correct hand deformities. It is effective for both real-life and anime images, including those generated by DiT/SDXL/Midjourney. It supports diffusers, gradio, ComfyUI, and more" + }, + { + "author": "cake-ml", + "title": "TinySanaPreview", + "reference": "https://github.com/cake-ml/tiny-sana-preview", + "files": [ + "https://github.com/cake-ml/tiny-sana-preview" + ], + "install_type": "git-clone", + "description": "TinySanaPreview is a custom ComfyUI node that implements real-time previews during generation for Sana diffusion models." + }, + { + "author": "huixingyun", + "title": "ComfyUI-HX-Captioner", + "reference": "https://github.com/huixingyun/ComfyUI-HX-Captioner", + "files": [ + "https://github.com/huixingyun/ComfyUI-HX-Captioner" + ], + "install_type": "git-clone", + "description": "A ComfyUI plugin library based on [a/https://github.com/stavsap/comfyui-ollama](https://github.com/stavsap/comfyui-ollama), with the Ollama cluster provided by Huixingyun." + }, + { + "author": "huixingyun", + "title": "ComfyUI-HX-Pimg", + "reference": "https://github.com/huixingyun/ComfyUI-HX-Pimg", + "files": [ + "https://github.com/huixingyun/ComfyUI-HX-Pimg" + ], + "install_type": "git-clone", + "description": "Some custom nodes used for pimg (a comfyui controller deployed in huixingyun)." + }, + { + "author": "bradsec", + "title": "ComfyUI_StringEssentials", + "reference": "https://github.com/bradsec/ComfyUI_StringEssentials", + "files": [ + "https://github.com/bradsec/ComfyUI_StringEssentials" + ], + "install_type": "git-clone", + "description": "Essential string manipulation nodes for ComfyUI." + }, + { + "author": "Dr.Positliver", + "title": "comfyui-zegr", + "reference": "https://github.com/Positliver/comfyui-zegr", + "files": [ + "https://github.com/Positliver/comfyui-zegr" + ], + "install_type": "git-clone", + "description": "comfyui share models to oss conveniently." + }, + { + "author": "danielw", + "title": "Custom nodes for llm chat with optional image input", + "id": "llm-api", + "reference": "https://github.com/tianyuw/ComfyUI-LLM-API", + "files": [ + "https://github.com/tianyuw/ComfyUI-LLM-API" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that enables Large Language Model (LLM) chat interactions with optional image input support." + }, + { + "author": "JohnDoeSmithee", + "title": "ComfyUI-SoX-Mixdown", + "reference": "https://github.com/JohnDoeSmithee/ComfyUI-SoX-Mixdown", + "files": [ + "https://github.com/JohnDoeSmithee/ComfyUI-SoX-Mixdown" + ], + "install_type": "git-clone", + "description": "A custom node for SoX's mixdown function. Make sure that the sox command is installed and the path added before using this node." + }, + { + "author": "JTriggerFish", + "title": "Comfy Latent Tools", + "reference": "https://github.com/JTriggerFish/ComfyLatentTools", + "files": [ + "https://github.com/JTriggerFish/ComfyLatentTools" + ], + "install_type": "git-clone", + "description": "A set of tools for manipulating latent tensors in ComfyUI" + }, + { + "author": "ProGamerGov", + "title": "ComfyUI_pytorch360convert", + "id": "comfyui-pytorch360convert", + "reference": "https://github.com/ProGamerGov/ComfyUI_pytorch360convert", + "files": [ + "https://github.com/ProGamerGov/ComfyUI_pytorch360convert" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for working with and converting between and working with 360 degree equirectangular images, cubemap, and perspective images. Also includes Circular padding Conv2d options for models and VAEs, along with nodes to fix seams and polar artifacts. Panoramic 360 images are also sometimes known as VR photography (virtual reality), HDRI environments (ex: skyboxes), image spheres, spherical images, 360 pano." + }, + { + "author": "ProGamerGov", + "title": "Preview 360 Panorama for ComfyUI", + "id": "comfyui-preview360panorama", + "reference": "https://github.com/ProGamerGov/ComfyUI_preview360panorama", + "files": [ + "https://github.com/ProGamerGov/ComfyUI_preview360panorama" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node for interactive 360° panorama image previews. Panoramic 360 images are also sometimes known as VR photography (virtual reality), HDRI environments (ex: skyboxes), image spheres, spherical images, 360 pano, and 360 degree photos." + }, + { + "author": "burnsbert", + "title": "EBU LMStudio LLM Integration", + "id": "ebu-lmstudio", + "reference": "https://github.com/burnsbert/ComfyUI-EBU-LMStudio", + "files": [ + "https://github.com/burnsbert/ComfyUI-EBU-LMStudio" + ], + "install_type": "git-clone", + "description": "This ComfyUI extension provides custom nodes for integrating with LM Studio, allowing for loading, managing, and making requests of LLM models through the LMStudio local server and command-line interface." + }, + { + "author": "burnsbert", + "title": "EBU Workflow", + "id": "ebu-workflow", + "reference": "https://github.com/burnsbert/ComfyUI-EBU-Workflow", + "files": [ + "https://github.com/burnsbert/ComfyUI-EBU-Workflow" + ], + "install_type": "git-clone", + "description": "Custom nodes for general workflow quality of life including resolutions sorted by aspect ratio, upscaling helps, and unique file names" + }, + { + "author": "burnsbert", + "title": "EBU PromptHelper", + "id": "ebu-prompthelper", + "reference": "https://github.com/burnsbert/ComfyUI-EBU-PromptHelper", + "files": [ + "https://github.com/burnsbert/ComfyUI-EBU-PromptHelper" + ], + "install_type": "git-clone", + "description": "Custom nodes for enhancing and manipulating prompts in ComfyUI. Includes nodes for random color palette generation following different color theory methodologies, prompt text replacement and randomization, list sampling, loading files into strings, and season/weather/time-of-day generation." + }, + { + "author": "SykkoAtHome", + "title": "Face Processor for ComfyUI", + "reference": "https://github.com/SykkoAtHome/ComfyUI_FaceProcessor", + "files": [ + "https://github.com/SykkoAtHome/ComfyUI_FaceProcessor" + ], + "install_type": "git-clone", + "description": "A custom node collection for ComfyUI that provides advanced face detection, alignment, and transformation capabilities using MediaPipe Face Mesh." + }, + { + "author": "Mattabyte", + "title": "ComfyUI Secure API Call", + "reference": "https://github.com/Mattabyte/ComfyUI-SecureApiCall", + "files": [ + "https://github.com/Mattabyte/ComfyUI-SecureApiCall" + ], + "install_type": "git-clone", + "description": "This package provides custom nodes to ComfyUI to POST data to a secure API." + }, + { + "author": "oxysoft", + "title": "ComfyUI-gowiththeflow", + "reference": "https://github.com/oxysoft/ComfyUI-gowiththeflow-loopback", + "reference2": "https://github.com/oxysoft/ComfyUI-gowiththeflow", + "files": [ + "https://github.com/oxysoft/ComfyUI-gowiththeflow" + ], + "install_type": "git-clone", + "description": "Implementation of GoWithTheFlow, original code at [a/https://github.com/Eyeline-Research/Go-with-the-Flow/](https://github.com/Eyeline-Research/Go-with-the-Flow/) and [a/https://github.com/RyannDaGreat/CommonSource/blob/master/noise_warp.py](https://github.com/RyannDaGreat/CommonSource/blob/master/noise_warp.py)" + }, + { + "author": "willmiao", + "title": "ComfyUI-Lora-Manager", + "reference": "https://github.com/willmiao/ComfyUI-Lora-Manager", + "files": [ + "https://github.com/willmiao/ComfyUI-Lora-Manager" + ], + "install_type": "git-clone", + "description": "Revolutionize your workflow with the ultimate LoRA companion for ComfyUI!" + }, + { + "author": "tigeryy2", + "title": "ComfyUI Structured Outputs", + "reference": "https://github.com/tigeryy2/comfyui-structured-outputs", + "files": [ + "https://github.com/tigeryy2/comfyui-structured-outputs" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for LLM Structured Outputs with integration for prompting" + }, + { + "author": "Conor-Collins", + "title": "ComfyUI-CoCoTools_IO", + "reference": "https://github.com/Conor-Collins/ComfyUI-CoCoTools_IO", + "files": [ + "https://github.com/Conor-Collins/ComfyUI-CoCoTools_IO" + ], + "install_type": "git-clone", + "description": "Advanced image input and output: EXR, 32 bit support and more" + }, + { + "author": "852wa", + "title": "ComfyUI-ColorshiftColor", + "reference": "https://github.com/852wa/ComfyUI-ColorshiftColor", + "files": [ + "https://github.com/852wa/ComfyUI-ColorshiftColor" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI.\nIt reduces colors based on a specified number and allows for adjustments to hue, saturation, and brightness.\nFeatures:Each parameter can be set to random, You can toggle masking (not changing colors) using color numbers, Mask inversion can also be toggled on or off." + }, + { + "author": "852wa", + "title": "ComfyUI-AdvancedAlphaProcessor", + "reference": "https://github.com/852wa/ComfyUI-AAP", + "files": [ + "https://github.com/852wa/ComfyUI-AAP" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI.\nFeatures:Removes white areas in the input image by making them transparent based on brightness, Outputs in black and transparent, Outputs in gray and transparent.\nThis is a simple node with the above functionalities implemented. It also supports sequential processing." + }, + { + "author": "ReBeating", + "title": "ComfyUI-Artist-Selector", + "reference": "https://github.com/ReBeating/ComfyUI-Artist-Selector", + "files": [ + "https://github.com/ReBeating/ComfyUI-Artist-Selector" + ], + "install_type": "git-clone", + "description": "A useful comfyui node named LoadArtistTag for selecting artist tags, including 1000+ single-artist tags and 300 mixed-artists tags." + }, + { + "author": "gmorks", + "title": "ComfyUI-SendToDiscord", + "reference": "https://github.com/gmorks/ComfyUI-SendToDiscord", + "files": [ + "https://github.com/gmorks/ComfyUI-SendToDiscord" + ], + "install_type": "git-clone", + "description": "ComfyUI-SendToDiscord is a custom node for ComfyUI that simplifies sending preview images to Discord via webhooks. It supports both single-image uploads and batch mode, making it an efficient tool for sharing your generated images directly with your Discord server." + }, + { + "author": "gmorks", + "title": "ComfyUI-Animagine-Prompt", + "reference": "https://github.com/gmorks/ComfyUI-Animagine-Prompt", + "files": [ + "https://github.com/gmorks/ComfyUI-Animagine-Prompt" + ], + "install_type": "git-clone", + "description": "Comfy UI node to prompt build for https://huggingface.co/cagliostrolab/animagine-xl-4.0 model" + }, + { + "author": "jinanlongen", + "title": "ComfyUI Prompt Expander Node", + "reference": "https://github.com/jinanlongen/ComfyUI-Prompt-Expander", + "reference2": "https://github.com/derekluo/ComfyUI-Prompt-Expander", + "files": [ + "https://github.com/jinanlongen/ComfyUI-Prompt-Expander" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that expands text prompts using the SuperPrompt-v1 T5 model. This node helps generate more detailed and descriptive prompts from simple input text, which can be particularly useful for image generation workflows." + }, + { + "author": "Style-Mosaic", + "title": "ComfyUI DINO-X Detector Node", + "reference": "https://github.com/Style-Mosaic/dino-x-comfyui-node", + "files": [ + "https://github.com/Style-Mosaic/dino-x-comfyui-node" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that integrates DINO-X API for object detection and segmentation. This node allows you to detect and segment objects in images using text prompts." + }, + { + "author": "checkbins", + "title": "checkbin-comfy", + "id": "checkbin", + "reference": "https://github.com/checkbins/checkbin-comfy", + "files": [ + "https://github.com/checkbins/checkbin-comfy" + ], + "install_type": "git-clone", + "description": "These nodes allow you to make Checkbin comparisons." + }, + { + "author": "GHOSTLXH", + "title": "ComfyUI-Counternodes", + "reference": "https://github.com/GHOSTLXH/ComfyUI-Counternodes", + "files": [ + "https://github.com/GHOSTLXH/ComfyUI-Counternodes" + ], + "install_type": "git-clone", + "description": "This node group contains a series of ComfyUI nodes with built-in counters and specific output results based on the counter's output, aimed at implementing folder traversal functionality in the ComfyUI frontend. For specific examples, please refer to the sample workflow. Of course, you can also use your imagination to create other interesting things." + }, + { + "author": "agilly1989", + "title": "ComfyUI_agilly1989_motorway", + "reference": "https://github.com/agilly1989/ComfyUI_agilly1989_motorway", + "files": [ + "https://github.com/agilly1989/ComfyUI_agilly1989_motorway" + ], + "install_type": "git-clone", + "description": "CURRENTLY IN ACTIVE DEVELOPMENT (BETA)! IF THINGS BREAK ITS BECAUSE I BROKE IT.... This my implemenation of a `pipe` in ComfyUI. Is it better or worse than others? No idea. (also has some utility nodes)" + }, + { + "author": "AiartvnTeam", + "title": "A2V Multi Image Composite", + "id": "Aiartvn", + "reference": "https://github.com/aiartvn/A2V_Multi_Image_Composite", + "files": [ + "https://github.com/aiartvn/A2V_Multi_Image_Composite" + ], + "description": "Node for compositing multiple images with interactive preview and layer management", + "install_type": "git-clone", + "tags": ["image", "composite", "layer", "blend", "transform"] + }, + { + "author": "zentrocdot", + "title": "ComfyUI_Circle_Detection", + "reference": "https://github.com/zentrocdot/ComfyUI_Circle_Detection", + "files": [ + "https://github.com/zentrocdot/ComfyUI_Circle_Detection" + ], + "description": "Next to AI mathematical methods can be used for the detection of objects like a circle.", + "install_type": "git-clone" + }, + { + "author": "zentrocdot", + "title": "ComfyUI-RealESRGAN_Upscaler", + "reference": "https://github.com/zentrocdot/ComfyUI-RealESRGAN_Upscaler", + "files": [ + "https://github.com/zentrocdot/ComfyUI-RealESRGAN_Upscaler" + ], + "description": "This node uses the RealESRGAN model from [a/xinntao](https://github.com/xinntao/Real-ESRGAN).", + "install_type": "git-clone" + }, + { + "author": "zentrocdot", + "title": "ComfyUI-Simple_Image_To_Prompt", + "reference": "https://github.com/zentrocdot/ComfyUI-Simple_Image_To_Prompt", + "files": [ + "https://github.com/zentrocdot/ComfyUI-Simple_Image_To_Prompt" + ], + "description": "ComfyUI simple Image To Prompt node.", + "install_type": "git-clone" + }, + { + "author": "hgabha", + "title": "WWAA-CustomNodes", + "reference": "https://github.com/hgabha/WWAA-CustomNodes", + "files": [ + "https://github.com/hgabha/WWAA-CustomNodes" + ], + "install_type": "git-clone", + "description": "Custom Nodes by the team at WeirdWonderfulAI.Art. Line Count, Join String, Dither Image, Image Batch Loader, Prompt Writer" + }, + { + "author": "slvslvslv", + "title": "ComfyUI Smart Helper Nodes", + "reference": "https://github.com/slvslvslv/ComfyUI-SmartHelperNodes", + "files": [ + "https://github.com/slvslvslv/ComfyUI-SmartHelperNodes" + ], + "install_type": "git-clone", + "description": "NODES: Smart HunyuanVideo Lora Select, Smart HunyuanVideo Lora StackSmart Format String, Smart Format String (10 params)" + }, + { + "author": "slvslvslv", + "title": "ComfyUI-SmartImageTools", + "reference": "https://github.com/slvslvslv/ComfyUI-SmartImageTools", + "files": [ + "https://github.com/slvslvslv/ComfyUI-SmartImageTools" + ], + "install_type": "git-clone", + "description": "NODES: Various nodes for image manipulation" + }, + { + "author": "Tr1dae", + "title": "ComfyUI-Dequality", + "reference": "https://github.com/Tr1dae/ComfyUI-Dequality", + "files": [ + "https://github.com/Tr1dae/ComfyUI-Dequality" + ], + "install_type": "git-clone", + "description": "Simple addition to add noise to an image. Found on reddit" + }, + { + "author": "greengerong", + "title": "Janus-Pro ComfyUI Plugin", + "reference": "https://github.com/greengerong/ComfyUI-JanusPro-PL", + "files": [ + "https://github.com/greengerong/ComfyUI-JanusPro-PL" + ], + "install_type": "git-clone", + "description": "This plugin integrates the Janus-Pro multi-modal model into ComfyUI, enabling advanced image understanding and text-to-image generation capabilities. It supports both image analysis and creative image generation workflows." + }, + { + "author": "raindrop313", + "title": "ComfyUI_SD3_Flowedit", + "reference": "https://github.com/raindrop313/ComfyUI_SD3_Flowedit", + "files": [ + "https://github.com/raindrop313/ComfyUI_SD3_Flowedit" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes that support SD3/SD3.5 in FlowEdit" + }, + { + "author": "raindrop313", + "title": "ComfyUI-WanVideoStartEndFrames", + "reference": "https://github.com/raindrop313/ComfyUI-WanVideoStartEndFrames", + "files": [ + "https://github.com/raindrop313/ComfyUI-WanVideoStartEndFrames" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes that support video generation by start and end frames" + }, + { + "author": "martin-rizzo", + "title": "ComfyUI-TinyBreaker", + "reference": "https://github.com/martin-rizzo/ComfyUI-TinyBreaker", + "files": [ + "https://github.com/martin-rizzo/ComfyUI-TinyBreaker" + ], + "install_type": "git-clone", + "description": "ComfyUI-TinyBreaker is a collection of custom nodes specifically designed to generate images using the TinyBreaker model. It's actively developed with ongoing improvements. Although still in progress, these nodes are functional and allow you to explore the potential of the model." + }, + { + "author": "Arkanun", + "title": "ReadCSV_ComfyUI", + "reference": "https://github.com/Arkanun/ReadCSV_ComfyUI", + "files": [ + "https://github.com/Arkanun/ReadCSV_ComfyUI" + ], + "install_type": "git-clone", + "description": "NODES: ReadCSVRowNode" + }, + { + "author": "gorillaframeai", + "title": "GF_translate", + "reference": "https://github.com/gorillaframeai/GF_translate", + "files": [ + "https://github.com/gorillaframeai/GF_translate" + ], + "install_type": "git-clone", + "description": "These custom nodes for ComfyUI provide advanced text translation capabilities using Google Translate. They are designed for seamless integration into the ComfyUI environment, offering users powerful tools for text and JSON file translation tasks." + }, + { + "author": "DragonDiffusionbyBoyo", + "title": "Boyonodes", + "reference": "https://github.com/DragonDiffusionbyBoyo/Boyonodes", + "files": [ + "https://github.com/DragonDiffusionbyBoyo/Boyonodes" + ], + "install_type": "git-clone", + "description": "The Vae node is a sneaky little node perfect for deployment in Schools or work environments where you do not want the kiddywinkles creating NSFW content. Just rename the node to VAE decode and it looks like a normal node but hidden inside is an NSFW detector. Once hidden in the workflow there are no settings to undo the NSFW detection so cannot be worked around unless you remove the node. The node looks innocent once renamed so is virtually undetectable. I have placed an example workflow for you to see how to connect it. Simple stuff really, but once connected just rename." + }, + { + "author": "DragonDiffusionbyBoyo", + "title": "BoyoSupercoolWrapper", + "reference": "https://github.com/DragonDiffusionbyBoyo/BoyoSupercoolWrapper", + "files": [ + "https://github.com/DragonDiffusionbyBoyo/BoyoSupercoolWrapper" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI wrapper for Andrew DalPino's SuperCool upscaler, enabling its use directly within ComfyUI's node workflow. No extra dependencies required—just drop in the models and go." + }, + { + "author": "StarAsh042", + "title": "ComfyUI_RollingArtist", + "reference": "https://github.com/StarAsh042/ComfyUI_RollingArtist", + "files": [ + "https://github.com/StarAsh042/ComfyUI_RollingArtist" + ], + "install_type": "git-clone", + "description": "RollingArtist is a ComfyUI node designed to generate artist prompt texts with random weights, suitable for text-to-image generation models. The node reads an artist list from a CSV file and generates combined prompts based on the parameters." + }, + { + "author": "magekinnarus", + "title": "ComfyUI-V-Prediction-Node", + "reference": "https://github.com/magekinnarus/ComfyUI-V-Prediction-Node", + "files": [ + "https://github.com/magekinnarus/ComfyUI-V-Prediction-Node" + ], + "install_type": "git-clone", + "description": "Node to set v-prediction sampling when using SDXL and other models that may not have the necessary metadata to identify it as a v-prediction model. This node is useful for quantized models since they lack the necessary metadata." + }, + { + "author": "CC-SUN6", + "title": "ccsun_node", + "reference": "https://github.com/CC-SUN6/ccsun_node", + "files": [ + "https://github.com/CC-SUN6/ccsun_node" + ], + "install_type": "git-clone", + "description": "About the comfyui image selector, image adjustment (panning, rotation, zoom), adjust image size to be a multiple of 8" + }, + { + "author": "DiaoDaiaChan", + "title": "Comfyui SDAPI Request / NovelAI", + "id": "diaodaiachan", + "reference": "https://github.com/DiaoDaiaChan/ComfyUI_API_Request", + "files": [ + "https://github.com/DiaoDaiaChan/ComfyUI_API_Request" + ], + "install_type": "git-clone", + "description": "A Novel AI / SD-WebUI request node, support nai3/nai4, use NovelAI model in Your Comfyui." + }, + { + "author": "dorpxam", + "title": "ComfyUI-LTXVideoLoRA", + "reference": "https://github.com/dorpxam/ComfyUI-LTXVideoLoRA", + "files": [ + "https://github.com/dorpxam/ComfyUI-LTXVideoLoRA" + ], + "install_type": "git-clone", + "description": "A set of custom nodes enabling LoRA support for LTX Video" + }, + { + "author": "dorpxam", + "title": "ComfyUI-FramePack-F1-T2V", + "reference": "https://github.com/dorpxam/ComfyUI-FramePack-F1-T2V", + "files": [ + "https://github.com/dorpxam/ComfyUI-FramePack-F1-T2V" + ], + "install_type": "git-clone", + "description": "A set of custom nodes enabling Text-to-Video support for FramePack-F1" + }, + { + "author": "asdrabael", + "title": "Hunyuan-Multi-Lora-Loader", + "id": "Hunyuan Multi-Lora Loader", + "reference": "https://github.com/asdrabael/Hunyuan-Multi-Lora-Loader", + "files": [ + "https://github.com/asdrabael/Hunyuan-Multi-Lora-Loader" + ], + "install_type": "git-clone", + "description": "ComfyUI Node for loading multiple Lora's [a/HunyuanVideo](https://github.com/Tencent/HunyuanVideo)" + }, + { + "author": "lingha", + "title": "comfyui_kj", + "id": "comfyui_kj", + "reference": "https://github.com/lingha0h/comfyui_kj", + "files": [ + "https://github.com/lingha0h/comfyui_kj" + ], + "install_type": "git-clone", + "description": "comfyui_kj, A tool that can package workflows into projects and publish them to a WeChat Mini Program named Kaji, allowing charges to be collected from users." + }, + { + "author": "vahlok-alunmid", + "title": "ComfyUI-ExtendIPAdapterClipVision", + "reference": "https://github.com/vahlok-alunmid/ComfyUI-ExtendIPAdapterClipVision", + "files": [ + "https://github.com/vahlok-alunmid/ComfyUI-ExtendIPAdapterClipVision" + ], + "install_type": "git-clone", + "description": "This extension provides two nodes to use with my experimental [a/ip-adapter finetune](https://civitai.com/models/1233692?modelVersionId=1390253) for NoobAI-XL style transfer. [a/Here](https://github.com/vahlok-alunmid/reForge-preprocessor_bigG_448) is the counterpart extension for Reforge WebUI." + }, + { + "author": "guerreiro", + "title": "Comfyg Switch", + "reference": "https://github.com/guerreiro/comfyg-switch", + "files": [ + "https://github.com/guerreiro/comfyg-switch" + ], + "install_type": "git-clone", + "description": "Comfyg Switch is a custom node that dynamically selects model configuration parameters based on the chosen checkpoint. It reads model-specific settings from a JSON file (model_configs.json)." + }, + { + "author": "yanhuifair", + "title": "comfyui-janus", + "reference": "https://github.com/yanhuifair/comfyui-janus", + "files": [ + "https://github.com/yanhuifair/comfyui-janus" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for Janus" + }, + { + "author": "ShunL12324", + "title": "comfy-portal-endpoint", + "reference": "https://github.com/ShunL12324/comfy-portal-endpoint", + "files": [ + "https://github.com/ShunL12324/comfy-portal-endpoint" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI extension that provides additional API endpoints functionality, primarily designed to support Comfy Portal - a modern iOS client application for ComfyUI." + }, + { + "author": "ShinChven", + "title": "ShinChven's Custom Nodes Package", + "reference": "https://github.com/ShinChven/sc-comfy-nodes", + "files": [ + "https://github.com/ShinChven/sc-comfy-nodes" + ], + "install_type": "git-clone", + "description": "This project contains custom nodes for ComfyUI, developed by ShinChven. The nodes in this package extend the functionality of ComfyUI by providing additional features and utilities." + }, + { + "author": "vkff5833", + "title": "ComfyUI-MobileClient", + "reference": "https://github.com/vkff5833/ComfyUI-MobileClient", + "files": [ + "https://github.com/vkff5833/ComfyUI-MobileClient" + ], + "install_type": "git-clone", + "description": "Add a mobile-friendly web interface to ComfyUI." + }, + { + "author": "mediocreatmybest", + "title": "ComfyUI-Transformers-Pipeline", + "reference": "https://github.com/mediocreatmybest/ComfyUI-Transformers-Pipeline", + "files": [ + "https://github.com/mediocreatmybest/ComfyUI-Transformers-Pipeline" + ], + "install_type": "git-clone", + "description": "Additional ComfyUI nodes to utilise the Transformers pipeline in a simple and modular way." + }, + { + "author": "IrisRainbowNeko", + "title": "ascii-art-comfyui", + "reference": "https://github.com/Deep-Neko/ComfyUI_ascii_art", + "files": [ + "https://github.com/Deep-Neko/ComfyUI_ascii_art" + ], + "install_type": "git-clone", + "description": "ascii art preprocessors in ComfyUI" + }, + { + "author": "mie", + "title": "ComfyUI_MieNodes", + "reference": "https://github.com/MieMieeeee/ComfyUI-MieNodes", + "files": [ + "https://github.com/MieMieeeee/ComfyUI-MieNodes" + ], + "install_type": "git-clone", + "description": "Offering a series of utility nodes designed to simplify workflows and enhance efficiency" + }, + { + "author": "mie", + "title": "ComfyUI_CaptionThis", + "reference": "https://github.com/MieMieeeee/ComfyUI-CaptionThis", + "files": [ + "https://github.com/MieMieeeee/ComfyUI-CaptionThis" + ], + "install_type": "git-clone", + "description": "Describe a single image or all images in a directory using models such as Janus Pro, Florence2, or JoyCaption (testing), with a particular focus on building datasets for training LoRA." + }, + { + "author": "mie", + "title": "ComfyUI-MinioConnector", + "reference": "https://github.com/MieMieeeee/ComfyUI-MinioConnector", + "files": [ + "https://github.com/MieMieeeee/ComfyUI-MinioConnector" + ], + "install_type": "git-clone", + "description": "Provides a series of utility nodes designed for interacting with MinIO, including functionalities such as uploading and downloading files and folders, as well as creating buckets if they do not already exist." + }, + { + "author": "lum3on", + "title": "comfyui_LLM_Polymath", + "id": "llm_polymath", + "reference": "https://github.com/lum3on/comfyui_LLM_Polymath", + "files": [ + "https://github.com/lum3on/comfyui_LLM_Polymath" + ], + "install_type": "git-clone", + "description": "An advanced chat node integrating LLMs, real-time web search, image handling, and image scraping. Supports APIs from OpenAI, Google, Anthropic, Grok, DeepSeek, and local Ollama. Includes custom node finder, smart assistant tools, and growing subnodes like text masking and concept eraser." + }, + { + "author": "lum3on", + "title": "HiDream Sampler", + "id": "hidream-sampler", + "reference": "https://github.com/lum3on/comfyui_HiDream-Sampler", + "files": [ + "https://github.com/lum3on/comfyui_HiDream-Sampler" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node for generating images using the HiDream AI model. Uses quantization for lower memory usage." + }, + { + "author": "lum3on", + "title": "ComfyUI-ModelQuantizer", + "id": "ModelQuantizer", + "reference": "https://github.com/lum3on/ComfyUI-ModelQuantizer", + "files": [ + "https://github.com/lum3on/ComfyUI-ModelQuantizer" + ], + "install_type": "git-clone", + "description": "This is a node to converts models into Fp8, bf16, fp16." + }, + { + "author": "lum3on", + "title": "ComfyUI-FrameUtilitys", + "reference": "https://github.com/lum3on/ComfyUI-FrameUtilitys", + "files": [ + "https://github.com/lum3on/ComfyUI-FrameUtilitys" + ], + "install_type": "git-clone", + "description": "Professional-grade frame manipulation tools for ComfyUI, providing advanced video editing capabilities with native IMAGE tensor support." + }, + { + "author": "lum3on", + "title": "comfyui_EdgeTAM", + "reference": "https://github.com/lum3on/comfyui_EdgeTAM", + "files": [ + "https://github.com/lum3on/comfyui_EdgeTAM" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node implementation of EdgeTAM (On-Device Track Anything Model) for efficient, interactive video object tracking." + }, + { + "author": "lum3on", + "title": "ComfyUI-AudioX", + "reference": "https://github.com/lum3on/ComfyUI-StableAudioX", + "files": [ + "https://github.com/lum3on/ComfyUI-StableAudioX" + ], + "install_type": "git-clone", + "description": "A powerful audio generation extension for ComfyUI that integrates AudioX models for high-quality audio synthesis from text and video inputs." + }, + { + "author": "lum3on", + "title": "ComfyUI Midjourney Scraper Node", + "reference": "https://github.com/lum3on/ComfyUI_MJ-Scraper", + "files": [ + "https://github.com/lum3on/ComfyUI_MJ-Scraper" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows you to scrape and download images and videos from the Midjourney showcase pages. It uses undetected_chromedriver to bypass anti-scraping measures, but requires session cookies from a logged-in browser session to function correctly." + }, + { + "author": "austinbrown34", + "title": "ComfyUI-IO-Helpers", + "reference": "https://github.com/austinbrown34/ComfyUI-IO-Helpers", + "files": [ + "https://github.com/austinbrown34/ComfyUI-IO-Helpers" + ], + "install_type": "git-clone", + "description": "A custom nodes package for ComfyUI that enhances workflow flexibility by providing specialized nodes for saving and loading intermediate data (encoded prompts and sampled latents) in multiple formats. This package leverages helper classes for file I/O, supports gzip compression for efficient storage, and integrates progress feedback via a progress bar to improve user experience during long operations." + }, + { + "author": "HowToSD", + "title": "ComfyUI-Data-Analysis", + "reference": "https://github.com/HowToSD/ComfyUI-Data-Analysis", + "files": [ + "https://github.com/HowToSD/ComfyUI-Data-Analysis" + ], + "install_type": "git-clone", + "description": "Data analysis custom modules for ComfyUI - Use Pandas & Matplotlib from within ComfyUI" + }, + { + "author": "HowToSD", + "title": "ComfyUI-Pt-Wrapper", + "reference": "https://github.com/HowToSD/ComfyUI-Pt-Wrapper", + "files": [ + "https://github.com/HowToSD/ComfyUI-Pt-Wrapper" + ], + "install_type": "git-clone", + "description": "PyTorch extension for ComfyUI featuring extensive PyTorch wrapper nodes for seamless tensor operations and PyTorch model training." + }, + { + "author": "dasilva333", + "title": "ComfyUI_ContrastingColor", + "reference": "https://github.com/dasilva333/ComfyUI_ContrastingColor", + "files": [ + "https://github.com/dasilva333/ComfyUI_ContrastingColor" + ], + "install_type": "git-clone", + "description": "This node calculates a contrasting complementary color based on an input RGB color. The goal is to ensure visibility and contrast when overlaying text, UI elements, or graphical components against a given background color." + }, + { + "author": "dasilva333", + "title": "ComfyUI_MarkdownImage", + "reference": "https://github.com/dasilva333/ComfyUI_MarkdownImage", + "files": [ + "https://github.com/dasilva333/ComfyUI_MarkdownImage" + ], + "install_type": "git-clone", + "description": "This project generates an image from Markdown text using imgkit and wkhtmltoimage. It automatically scales the text to fit within the specified image dimensions." + }, + { + "author": "dasilva333", + "title": "ComfyUI HunyuanVideo-Foley Custom Node", + "reference": "https://github.com/dasilva333/ComfyUI_HunyuanVideo-Foley", + "files": [ + "https://github.com/dasilva333/ComfyUI_HunyuanVideo-Foley" + ], + "install_type": "git-clone", + "description": "This custom node integrates the HunyuanVideo-Foley model for generating audio from video frames and text prompts in ComfyUI. It's built for use in generating Foley sounds from video and text inputs." + }, + { + "author": "moon7star9", + "title": "ComfyUI_BiRefNet_Universal", + "reference": "https://github.com/moon7star9/ComfyUI_BiRefNet_Universal", + "files": [ + "https://github.com/moon7star9/ComfyUI_BiRefNet_Universal" + ], + "install_type": "git-clone", + "description": "A comprehensive node package that seamlessly integrates all BiRefNet series models into ComfyUI" + }, + { + "author": "wirytiox", + "title": "ComfyUI-SelectStringFromListWithIndex", + "id": "ComfyUI-SelectStringFromListWithIndex", + "reference": "https://github.com/wirytiox/ComfyUI-SelectStringFromListWithIndex", + "reference2": "https://github.com/mr-pepe69/ComfyUI-SelectStringFromListWithIndex", + "files": [ + "https://github.com/wirytiox/ComfyUI-SelectStringFromListWithIndex" + ], + "install_type": "git-clone", + "description": "This node is a node made by GMapeSplat/ComfyUI_ezXY that i copied while his node doesn't work" + }, + { + "author": "TheAIDoctor", + "title": "The AI Doctors Clinical Tools", + "id": "The-AI-Doctors-Clinical-Tools", + "reference": "https://github.com/BlueprintCoding/ComfyUI_AIDocsClinicalTools", + "files": [ + "https://github.com/BlueprintCoding/ComfyUI_AIDocsClinicalTools" + ], + "install_type": "git-clone", + "description": "Nodes: Multi Int and Multi Text; allows for the creation of multiple int, floats and string storage and output from a single node." + }, + { + "author": "Mohammadreza Mohseni", + "title": "ComfyUI Mohseni Kit", + "id": "mohseni-kit", + "reference": "https://github.com/mohseni-mr/ComfyUI-Mohseni-Kit", + "files": [ + "https://github.com/mohseni-mr/ComfyUI-Mohseni-Kit" + ], + "install_type": "git-clone", + "description": "A collection of useful nodes for ComfyUI, including Float Preview for live image visualization." + }, + { + "author": "BuffMcBigHuge", + "title": "ComfyUI-Zonos", + "reference": "https://github.com/BuffMcBigHuge/ComfyUI-Zonos", + "files": [ + "https://github.com/BuffMcBigHuge/ComfyUI-Zonos" + ], + "install_type": "git-clone", + "description": "TTS with Zyphra Zonos" + }, + { + "author": "BuffMcBigHuge", + "title": "ComfyUI-Google-AI-Studio", + "reference": "https://github.com/BuffMcBigHuge/ComfyUI-Google-AI-Studio", + "files": [ + "https://github.com/BuffMcBigHuge/ComfyUI-Google-AI-Studio" + ], + "install_type": "git-clone", + "description": "Google AI Studio by BuffMcBigHuge" + }, + { + "author": "BahaC", + "title": "ComfyUI Zonos TTS Node", + "reference": "https://github.com/BahaC/ComfyUI-ZonosTTS", + "files": [ + "https://github.com/BahaC/ComfyUI-ZonosTTS" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that brings Zonos Text-to-Speech capabilities to your workflows, featuring high-quality speech synthesis and voice cloning." + }, + { + "author": "dzqdzq", + "title": "ComfyUI-crop-alpha", + "reference": "https://github.com/dzqdzq/ComfyUI-crop-alpha", + "files": [ + "https://github.com/dzqdzq/ComfyUI-crop-alpha" + ], + "install_type": "git-clone", + "description": "Automatic cropping of transparent areas to prevent images from being too large, while also supporting resizing to prevent image dimensions from being too large." + }, + { + "author": "bbtaivi", + "title": "AIV ComfyUI Node", + "reference": "https://github.com/bbtaivi/ComfyUI-Aiv-Param", + "files": [ + "https://github.com/bbtaivi/ComfyUI-Aiv-Param" + ], + "install_type": "git-clone", + "description": "Used to convert workflow node settings into AIV mini-program parameters." + }, + { + "author": "PrunaAI", + "title": "Pruna nodes for ComfyUI", + "reference": "https://github.com/PrunaAI/ComfyUI_pruna", + "files": [ + "https://github.com/PrunaAI/ComfyUI_pruna" + ], + "install_type": "git-clone", + "description": "This repository explains how to accelerate image generation in ComfyUI using Pruna, an inference optimization engine that makes AI models faster, smaller, cheaper, and greener. ComfyUI is a popular node-based GUI for image generation models, for which we provide a custom compilation node that accelerates Stable Diffusion (SD) and Flux inference, while preserving output quality." + }, + { + "author": "Hellfiredragon", + "title": "comfyui-image-manipulation", + "reference": "https://github.com/Hellfiredragon/comfyui-image-manipulation", + "files": [ + "https://github.com/Hellfiredragon/comfyui-image-manipulation" + ], + "install_type": "git-clone", + "description": "Custom nodes to manipulate images in ComfyUI" + }, + { + "author": "lunarring", + "title": "bitalino_comfy", + "reference": "https://github.com/lunarring/bitalino_comfy", + "files": [ + "https://github.com/lunarring/bitalino_comfy" + ], + "install_type": "git-clone", + "description": "A package implementing a Bitalino device ComfyUI custom node." + }, + { + "author": "AIDC-AI", + "title": "ComfyUI-Copilot", + "id": "ComfyUI-Copilot", + "reference": "https://github.com/AIDC-AI/ComfyUI-Copilot", + "files": [ + "https://github.com/AIDC-AI/ComfyUI-Copilot" + ], + "install_type": "git-clone", + "description": "Your Intelligent Assistant for Comfy-UI." + }, + { + "author": "attashe", + "title": "ComfyUI-FluxRegionAttention", + "reference": "https://github.com/attashe/ComfyUI-FluxRegionAttention", + "files": [ + "https://github.com/attashe/ComfyUI-FluxRegionAttention" + ], + "install_type": "git-clone", + "description": "Implement Region Attention for Flux model. Add node RegionAttention that takes a regions - mask + condition, mask could be set from comfyui masks or bbox in FluxRegionBBOX node.\nThis code is not optimized and has a memory leak. If you caught a OOM just try run a query againg - works on my RTX3080. For generation it uses a usual prompt that have influence to all picture and a regions that have their own prompts.\nBase prompt good for setup background and style of image. This is train-free technique and results not always stable - sometimes need to try several seeds or change prompt." + }, + { + "author": "yas-ponotech", + "title": "ComfyUI-Stability-AI-API", + "reference": "https://github.com/yhayano-ponotech/comfyui-stability-ai-api", + "files": [ + "https://github.com/yhayano-ponotech/comfyui-stability-ai-api" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for using the Stability AI API in ComfyUI." + }, + { + "author": "HJH-AILab", + "title": "ComfyUI_StableAnimator", + "reference": "https://github.com/HJH-AILab/ComfyUI_StableAnimator", + "files": [ + "https://github.com/HJH-AILab/ComfyUI_StableAnimator" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for StableAnimator" + }, + { + "author": "HJH-AILab", + "title": "ComfyUI_CosyVoice2", + "reference": "https://github.com/HJH-AILab/ComfyUI_CosyVoice2", + "files": [ + "https://github.com/HJH-AILab/ComfyUI_CosyVoice2" + ], + "install_type": "git-clone", + "description": "A wrapper of [a/CosyVoice2](https://github.com/FunAudioLLM/CosyVoice/)'s ComfyUI custom_nodes" + }, + { + "author": "HJH-AILab", + "title": "ComfyUI_Facefusion", + "reference": "https://github.com/HJH-AILab/ComfyUI_Facefusion", + "files": [ + "https://github.com/HJH-AILab/ComfyUI_Facefusion" + ], + "install_type": "git-clone", + "description": "a [a/Facefusion](https://github.com/facefusion/facefusion)'s wrapper for ComfyUI custom node." + }, + { + "author": "Easymode-ai", + "title": "ComfyUI-ShadowR", + "reference": "https://github.com/Easymode-ai/ComfyUI-ShadowR", + "files": [ + "https://github.com/Easymode-ai/ComfyUI-ShadowR" + ], + "install_type": "git-clone", + "description": "ComfyUI [a/movingforward100/Shadow_R](https://github.com/movingforward100/Shadow_R) Wrapper" + }, + { + "author": "Easymode-ai", + "title": "ComfyUI-BPT", + "reference": "https://github.com/Easymode-ai/ComfyUI-BPT", + "files": [ + "https://github.com/Easymode-ai/ComfyUI-BPT" + ], + "install_type": "git-clone", + "description": "Comfyui [a/BPT](https://github.com/whaohan/bpt) Wrapper (Trimesh in/out connections)" + }, + { + "author": "GamingDaveUk", + "title": "Daves Nodes", + "id": "davesnodes", + "reference": "https://github.com/GamingDaveUk/daves_nodes", + "files": [ + "https://github.com/GamingDaveUk/daves_nodes" + ], + "install_type": "git-clone", + "description": "Nodes that I needed but couldnt find, so ended up making." + }, + { + "author": "chenlongming", + "title": "ComfyUI_Spectral", + "reference": "https://github.com/chenlongming/ComfyUI_Spectral", + "files": [ + "https://github.com/chenlongming/ComfyUI_Spectral" + ], + "install_type": "git-clone", + "description": "ComfyUI Spectral is a ComfyUI custom nodes library based on the spectral, mainly used for visual processing of spectral files" + }, + { + "author": "Chengym2023", + "title": "ComfyUI-DeepSeek_Online", + "reference": "https://github.com/Chengym2023/ComfyUI-DeepSeek_Online", + "files": [ + "https://github.com/Chengym2023/ComfyUI-DeepSeek_Online" + ], + "install_type": "git-clone", + "description": "NODES: SiliconCloudReasoning, DeepSeekOnline" + }, + { + "author": "gitmylo", + "title": "Audio nodes", + "reference": "https://github.com/gitmylo/ComfyUI-audio-nodes", + "files": [ + "https://github.com/gitmylo/ComfyUI-audio-nodes" + ], + "install_type": "git-clone", + "description": "Various nodes related to audio." + }, + { + "author": "aicuai", + "title": "aicu-comfyui-stability-ai-api", + "reference": "https://github.com/aicuai/aicu-comfyui-stability-ai-api", + "files": [ + "https://github.com/aicuai/aicu-comfyui-stability-ai-api" + ], + "install_type": "git-clone", + "description": "This repository contains custom nodes for Stability AI API which supports SD3.0 and 3.5." + }, + { + "author": "benda1989", + "title": "GKK·CosyVoice", + "reference": "https://github.com/benda1989/CosyVoice2_ComfyUI", + "files": [ + "https://github.com/benda1989/CosyVoice2_ComfyUI" + ], + "install_type": "git-clone", + "description": "a plugin of ComfyUI for CosyVoice2" + }, + { + "author": "benda1989", + "title": "GKK·Sonic", + "reference": "https://github.com/benda1989/Sonic_ComfyUI", + "files": [ + "https://github.com/benda1989/Sonic_ComfyUI" + ], + "install_type": "git-clone", + "description": "a plugin of ComfyUI for Long Sonic" + }, + { + "author": "morgan55555", + "title": "ComfyUI Lock Mode", + "reference": "https://github.com/morgan55555/comfyui-lock-mode", + "files": [ + "https://github.com/morgan55555/comfyui-lock-mode" + ], + "install_type": "git-clone", + "description": "Lock Mode feature for ComfyUI. Make simple no-code UI easily." + }, + { + "author": "pathway8-sudo", + "title": "ComfyUI-Pathway-CutPNG-Node", + "reference": "https://github.com/pathway8-sudo/ComfyUI-Pathway-CutPNG-Node", + "files": [ + "https://github.com/pathway8-sudo/ComfyUI-Pathway-CutPNG-Node" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI node that uses BRIA RMBG v1.4 for background removal and PNG cutting." + }, + { + "author": "crave33", + "title": "RenesStuffDanboruTagGet", + "reference": "https://github.com/crave33/RenesStuffDanbooruTagGet", + "files": [ + "https://github.com/crave33/RenesStuffDanbooruTagGet" + ], + "install_type": "git-clone", + "description": "generate tags / prompt from danboru image_id input" + }, + { + "author": "MeeeyoAI", + "title": "ComfyUI_StringOps", + "reference": "https://github.com/MeeeyoAI/ComfyUI_StringOps", + "files": [ + "https://github.com/MeeeyoAI/ComfyUI_StringOps" + ], + "install_type": "git-clone", + "description": "StringOps is a versatile text processing toolkit built for ComfyUI's node-based workflows" + }, + { + "author": "Pablerdo", + "title": "ComfyUI-MultiCutAndDrag", + "reference": "https://github.com/Pablerdo/ComfyUI-MultiCutAndDrag", + "files": [ + "https://github.com/Pablerdo/ComfyUI-MultiCutAndDrag" + ], + "install_type": "git-clone", + "description": "Cut and and drag that allows you to cut and drag multiple images on a path" + }, + { + "author": "Pablerdo", + "title": "ComfyUI-ZeptaframePromptMerger", + "reference": "https://github.com/Pablerdo/ComfyUI-ZeptaframePromptMerger", + "files": [ + "https://github.com/Pablerdo/ComfyUI-ZeptaframePromptMerger" + ], + "install_type": "git-clone", + "description": "Custom node that merges general and subject-specific prompts" + }, + { + "author": "Pablerdo", + "title": "ComfyUI-ResizeZeptaPayload", + "reference": "https://github.com/Pablerdo/ComfyUI-ResizeZeptaPayload", + "files": [ + "https://github.com/Pablerdo/ComfyUI-ResizeZeptaPayload" + ], + "install_type": "git-clone", + "description": "Resize a batch of trajectories or images" + }, + { + "author": "Pablerdo", + "title": "Stable Virtual Camera", + "reference": "https://github.com/Pablerdo/ComfyUI-StableVirtualCameraWrapper", + "files": [ + "https://github.com/Pablerdo/ComfyUI-StableVirtualCameraWrapper" + ], + "install_type": "git-clone", + "description": "Generative View Synthesis with Diffusion Models" + }, + { + "author": "orange90", + "title": " ComfyUI-Regex-Runner", + "id": "comfyui-regex-runner", + "reference": "https://github.com/orange90/ComfyUI-Regex-Runner", + "files": [ + "https://github.com/orange90/ComfyUI-Regex-Runner" + ], + "install_type": "git-clone", + "description": "This is a node to run regex for strings." + }, + { + "author": "SirWillance", + "title": "FoW - Light", + "id": "fow-suite-light", + "reference": "https://github.com/SirWillance/FoW_Suite_LIGHT", + "files": [ + "https://github.com/SirWillance/FoW_Suite_LIGHT" + ], + "install_type": "git-clone", + "description": "A Beginner-friendly Node Suite for prompt refinement in ComfyUI, including custom nodes for weighting, splitting, combining, catalogues, and the PromptRefiner for a simple prompt interface. For more info, join me on https://www.twitch.tv/sirwillance. Be one of the first 50 followers to get a FREE upgrade to the Standard Tier!" + }, + { + "author": "KAVVATARE", + "title": " ComfyUI-Light-N-Color", + "reference": "https://github.com/KAVVATARE/ComfyUI-Light-N-Color", + "files": [ + "https://github.com/KAVVATARE/ComfyUI-Light-N-Color" + ], + "install_type": "git-clone", + "description": "ComfyUI node that adds Brightness, RGB channels, and Depth of Field to AI-generated image" + }, + { + "author": "KAVVATARE", + "title": "RightEyeDisparity", + "reference": "https://github.com/KAVVATARE/ComfyUI_RightEyeDisparity", + "files": [ + "https://github.com/KAVVATARE/ComfyUI_RightEyeDisparity" + ], + "install_type": "git-clone", + "description": "A simple ComfyUI node for generating right eye disparity for VR videos" + }, + { + "author": "fat-tire", + "title": "ComfyUI Unified Media Suite", + "reference": "https://github.com/fat-tire/comfyui-unified-media-suite", + "files": [ + "https://github.com/fat-tire/comfyui-unified-media-suite" + ], + "install_type": "git-clone", + "description": "Lightweight [a/PyAV](https://pypi.org/project/av/)-powered ComfyUI nodes to load/save multimedia." + }, + { + "author": "ajbergh", + "title": "comfyui-ethnicity_hairstyle_clip_encoder", + "reference": "https://github.com/ajbergh/comfyui-ethnicity_hairstyle_clip_encoder", + "files": [ + "https://github.com/ajbergh/comfyui-ethnicity_hairstyle_clip_encoder" + ], + "install_type": "git-clone", + "description": "This ComfyUI custom node enhances the standard CLIP text encoding functionality by integrating ethnicity and hairstyle selection into the positive prompt. Designed to work seamlessly with ComfyUI, this node allows you to influence the conditioning process by dynamically appending descriptive modifiers. Users can choose a specific ethnicity or hairstyle, or opt for a 'random' selection that picks an option from a predefined CSV list." + }, + { + "author": "moose-lab", + "title": "ComfyUI-GPT", + "reference": "https://github.com/moose-lab/ComfyUI-GPT", + "files": [ + "https://github.com/moose-lab/ComfyUI-GPT" + ], + "install_type": "git-clone", + "description": "Help comfy deisgner develope custom nodes by foreground GUI without any coding knowledge, complementing the workflow what you design with LLM automatically" + }, + { + "author": "zichongc", + "title": "ComfyUI-Attention-Distillation", + "reference": "https://github.com/zichongc/ComfyUI-Attention-Distillation", + "files": [ + "https://github.com/zichongc/ComfyUI-Attention-Distillation" + ], + "install_type": "git-clone", + "description": "Non-native [a/AttentionDistillation](https://github.com/xugao97/AttentionDistillation) for ComfyUI.\nOfficial ComfyUI demo for the paper AttentionDistillation, implemented as an extension of ComfyUI. Note that this extension incorporates AttentionDistillation using diffusers." + }, + { + "author": "PanicTitan", + "title": "ComfyUI-Fooocus-V2-Expansion", + "reference": "https://github.com/PanicTitan/ComfyUI-Fooocus-V2-Expansion", + "files": [ + "https://github.com/PanicTitan/ComfyUI-Fooocus-V2-Expansion" + ], + "install_type": "git-clone", + "description": "Adaptation of Fooocus Prompt Expansion for ComfyUI\nForked from [a/ComfyUI-Prompt-Expansion](https://github.com/meap158/ComfyUI-Prompt-Expansion) with some updates and changes based on original Fooocus, to be more specific [a/expansion.py](https://github.com/lllyasviel/Fooocus/blob/main/extras/expansion.py) and [a/LykosAI - GPT-Prompt-Expansion-Fooocus-v2](https://huggingface.co/LykosAI/GPT-Prompt-Expansion-Fooocus-v2)" + }, + { + "author": "panic-titan", + "title": "ComfyUI-Gallery", + "reference": "https://github.com/PanicTitan/ComfyUI-Gallery", + "files": [ + "https://github.com/PanicTitan/ComfyUI-Gallery" + ], + "install_type": "git-clone", + "description": "Real-time Gallery for ComfyUI with image metadata inspection. Support for images and video." + }, + { + "author": "maximclouser", + "title": "ComfyUI-InferenceTimeScaling", + "reference": "https://github.com/YRIKKA/ComfyUI-InferenceTimeScaling", + "files": [ + "https://github.com/YRIKKA/ComfyUI-InferenceTimeScaling" + ], + "install_type": "git-clone", + "description": "Inference-time techniques to enhance diffusion-based image generation quality through random search and zero-order optimization algorithms" + }, + { + "author": "marawan206", + "title": "Face Cropper Node (2:3 Ratio)", + "reference": "https://github.com/marawan206/ComfyUI-FaceCropper", + "files": [ + "https://github.com/marawan206/ComfyUI-FaceCropper" + ], + "install_type": "git-clone", + "description": "The Face Cropper Node (MarwanFaceCropping) is a custom image processing node designed for ComfyUI. It takes an input image and crops it to a 2:3 aspect ratio, ensuring that most of the subject remains in the frame while maintaining the correct proportions." + }, + { + "author": "JiSenHua", + "title": "ComfyUI-TD", + "id": "touchdesigner", + "reference": "https://github.com/JiSenHua/ComfyUI-TD", + "files": [ + "https://github.com/JiSenHua/ComfyUI-TD" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI designed to facilitate the real-time transmission of rendered images, videos, or 3D models to TouchDesigner." + }, + { + "author": "InceptionsAI", + "title": "ComfyUI-RunComfy-Helper", + "reference": "https://github.com/InceptionsAI/ComfyUI-RunComfy-Helper", + "files": [ + "https://github.com/InceptionsAI/ComfyUI-RunComfy-Helper" + ], + "install_type": "git-clone", + "description": "Helper nodes for [a/RunComfy](https://www.runcomfy.com)" + }, + { + "author": "fluffydiveX", + "title": "ComfyUI-hvBlockswap", + "reference": "https://github.com/fluffydiveX/ComfyUI-hvBlockswap", + "files": [ + "https://github.com/fluffydiveX/ComfyUI-hvBlockswap" + ], + "install_type": "git-clone", + "description": "It is a simple HunyuanVideo block swap node for ComfyUI native nodes." + }, + { + "author": "keit", + "title": "ComfyUI-Image-Toolkit", + "id": "comfyui-image-toolkit", + "reference": "https://github.com/keit0728/ComfyUI-Image-Toolkit", + "files": [ + "https://github.com/keit0728/ComfyUI-Image-Toolkit" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for image processing." + }, + { + "author": "keit", + "title": "ComfyUI-musubi-tuner", + "reference": "https://github.com/keit0728/ComfyUI-musubi-tuner", + "files": [ + "https://github.com/keit0728/ComfyUI-musubi-tuner" + ], + "install_type": "git-clone", + "description": "This is a custom node that allows you to run musubi-tuner from ComfyUI." + }, + { + "author": "Mango1010", + "title": "Mango Node Pack", + "id": "MangoNodePack", + "reference": "https://github.com/mang01010/MangoNodePack", + "files": [ + "https://github.com/mang01010/MangoNodePack" + ], + "install_type": "git-clone", + "description": "Node pack designed to save images with metadata supported by Civitai." + }, + { + "author": "0xRavenBlack", + "title": "ComfyUI-OOP", + "reference": "https://github.com/0xRavenBlack/ComfyUI-OOP", + "files": [ + "https://github.com/0xRavenBlack/ComfyUI-OOP" + ], + "install_type": "git-clone", + "description": "ComfyUI Node to create Object-Oriented Prompts" + }, + { + "author": "Legorobotdude", + "title": "ComfyUI-VariationLab", + "reference": "https://github.com/Legorobotdude/ComfyUI-VariationLab", + "files": [ + "https://github.com/Legorobotdude/ComfyUI-VariationLab" + ], + "install_type": "git-clone", + "description": "Helps explore different parameters quickly" + }, + { + "author": "lthero", + "title": "ComfyUI-GaussianShadingWatermark", + "reference": "https://github.com/lthero-big/ComfyUI-GaussianShadingWatermark", + "files": [ + "https://github.com/lthero-big/ComfyUI-GaussianShadingWatermark" + ], + "install_type": "git-clone", + "description": "Add invisible watermark to images to protect your images" + }, + { + "author": "JohanK66", + "title": "ComfyUI WebhookImage", + "reference": "https://github.com/JohanK66/ComfyUI-WebhookImage", + "files": [ + "https://github.com/JohanK66/ComfyUI-WebhookImage" + ], + "install_type": "git-clone", + "description": "This package provides a custom node to ComfyUI to send a message and image by means of a webhook" + }, + { + "author": "mr7thing", + "title": "Circle Pattern Processor for ComfyUI", + "reference": "https://github.com/mr7thing/circle_pattern_processor", + "files": [ + "https://github.com/mr7thing/circle_pattern_processor" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that can detect circular patterns in an image and generate a standardized circular output." + }, + { + "author": "TheWhykiki", + "title": "Whykiki ComfyUI Toolset", + "reference": "https://github.com/TheWhykiki/Whykiki-ComfyUIToolset", + "files": [ + "https://github.com/TheWhykiki/Whykiki-ComfyUIToolset" + ], + "install_type": "git-clone", + "description": "A collection of useful nodes for ComfyUI that provide various workflow enhancements." + }, + { + "author": "justin-vt", + "title": "ComfyUI-brushstrokes", + "reference": "https://github.com/justin-vt/ComfyUI-brushstrokes", + "files": [ + "https://github.com/justin-vt/ComfyUI-brushstrokes" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that applies painterly/brush-stroke effects to images, using either ImageMagick (Wand) or G'MIC (gmic-py) under the hood." + }, + { + "author": "pxl-pshr", + "title": "GlitchNodes", + "reference": "https://github.com/pxl-pshr/GlitchNodes", + "files": [ + "https://github.com/pxl-pshr/GlitchNodes" + ], + "install_type": "git-clone", + "description": "GlitchNodes is a collection of image processing nodes designed for ComfyUI that specializes in creating glitch art and retro effects." + }, + { + "author": "ZYK-AI", + "title": "ComfyUI-YK Line loading", + "id": "ComfyUI-YK_Line loading", + "reference": "https://github.com/sittere/ComfyUI-YK_Line-loading", + "files": [ + "https://github.com/sittere/ComfyUI-YK_Line-loading" + ], + "install_type": "git-clone", + "description": "Plugin that implements world automatic typesetting and outputs only one paragraph of text" + }, + { + "author": "Jerome Bacquet", + "title": "ComfyUI XenoFlow", + "id": "XenoFlow", + "reference": "https://github.com/jerome7562/ComfyUI-XenoFlow", + "files": [ + "https://github.com/jerome7562/ComfyUI-XenoFlow" + ], + "install_type": "git-clone", + "description": "Implementation of Instance nodes, Replicate nodes, and standard Save UI to improve the workflow into ComfyUI." + }, + { + "author": "chenpipi0807", + "title": "PIP Artistic Words for ComfyUI", + "reference": "https://github.com/chenpipi0807/PIP_ArtisticWords", + "files": [ + "https://github.com/chenpipi0807/PIP_ArtisticWords" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI extension node that allows you to add various exquisite artistic text effects to your images, supporting a wide range of text styles and effects." + }, + { + "author": "chenpipi0807", + "title": "ComfyUI NSFW Filter", + "reference": "https://github.com/chenpipi0807/ComfyUI_NSFW_Godie", + "files": [ + "https://github.com/chenpipi0807/ComfyUI_NSFW_Godie" + ], + "install_type": "git-clone", + "description": "A simple and effective ComfyUI custom node for filtering inappropriate text content, automatically detecting and replacing prohibited words while preserving the original format." + }, + { + "author": "chenpipi0807", + "title": "ComfyUI-Index-TTS", + "reference": "https://github.com/chenpipi0807/ComfyUI-Index-TTS", + "files": [ + "https://github.com/chenpipi0807/ComfyUI-Index-TTS" + ], + "install_type": "git-clone", + "description": "NODES: An industrial-grade zero-shot text-to-speech synthesis system with a ComfyUI interface." + }, + { + "author": "chenpipi0807", + "title": "Comfyui-Qwen-image-edit-CharacterConsistency", + "reference": "https://github.com/chenpipi0807/Comfyui-Qwen-image-edit-CharacterConsistency", + "files": [ + "https://github.com/chenpipi0807/Comfyui-Qwen-image-edit-CharacterConsistency" + ], + "install_type": "git-clone", + "description": "The official ComfyUI TextEncodeQwenImageEdit node simplifies prompt engineering. This node supports custom system prompts to enhance flexibility." + }, + { + "author": "ifmylove2011", + "title": "comfyui-missed-tool", + "reference": "https://github.com/ifmylove2011/comfyui-missed-tool", + "files": [ + "https://github.com/ifmylove2011/comfyui-missed-tool" + ], + "install_type": "git-clone", + "description": "NODES: TrimBG, TrimBG Advanced, Image Queue Loader, Load Image Alpha.\nA few tools for ComfyUI, perhaps it's exactly what you need." + }, + { + "author": "illuminatianon", + "title": "CSV Wildcard Node for ComfyUI", + "reference": "https://github.com/illuminatianon/comfyui-csvwildcards", + "files": [ + "https://github.com/illuminatianon/comfyui-csvwildcards" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that provides dynamic text substitution using wildcards and CSV files. Perfect for creating varied prompts with consistent relationships between terms." + }, + { + "author": "finegrain", + "title": "comfyui-finegrain", + "reference": "https://github.com/finegrain-ai/comfyui-finegrain", + "files": [ + "https://github.com/finegrain-ai/comfyui-finegrain" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes to interact with the Finegrain API." + }, + { + "author": "Diohim", + "title": "ComfyUI Unusual Tools", + "reference": "https://github.com/Diohim/ComfyUI-Unusual-Tools", + "files": [ + "https://github.com/Diohim/ComfyUI-Unusual-Tools" + ], + "install_type": "git-clone", + "description": "A collection of unusual but useful image processing nodes for ComfyUI." + }, + { + "author": "penposs", + "title": "ComfyUI Gemini Pro Node", + "reference": "https://github.com/penposs/ComfyUI_Gemini_Pro", + "files": [ + "https://github.com/penposs/ComfyUI_Gemini_Pro" + ], + "install_type": "git-clone", + "description": "This is a Google Gemini Pro API integration node for ComfyUI, supporting text, image, video, and audio inputs." + }, + { + "author": "penposs", + "title": "Comfyui_wan_api", + "reference": "https://github.com/penposs/Comfyui_wan_api", + "files": [ + "https://github.com/penposs/Comfyui_wan_api" + ], + "install_type": "git-clone", + "description": "Free trial of Tongyi Wanxiang wan2.1 model, this is a batch implementation of wan2.1 API, providing batch processing for your short video production." + }, + { + "author": "penposs", + "title": "ComfyUI-Banana-Node", + "reference": "https://github.com/penposs/ComfyUI-Banana-Node", + "files": [ + "https://github.com/penposs/ComfyUI-Banana-Node" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that generates images using Google’s Gemini 2.5 Flash Image Preview API." + }, + { + "author": "cardenluo", + "title": "ComfyUI-Apt_Preset", + "reference": "https://github.com/cardenluo/ComfyUI-Apt_Preset", + "files": [ + "https://github.com/cardenluo/ComfyUI-Apt_Preset" + ], + "install_type": "git-clone", + "description": "ComfyUI Preset Manager, supporting various preset templates and workflow management" + }, + { + "author": "Holasyb918", + "title": "Ghost2_Comfyui", + "reference": "https://github.com/Holasyb918/Ghost2_Comfyui", + "files": [ + "https://github.com/Holasyb918/Ghost2_Comfyui" + ], + "install_type": "git-clone", + "description": "ComfyUI adaptation of [a/GHOST 2.0](https://github.com/ai-forever/ghost-2.0)." + }, + { + "author": "mit-han-lab", + "title": "ComfyUI-nunchaku", + "reference": "https://github.com/nunchaku-tech/ComfyUI-nunchaku", + "files": [ + "https://github.com/nunchaku-tech/ComfyUI-nunchaku" + ], + "install_type": "git-clone", + "description": "Nunchaku ComfyUI Node. Nunchaku is the inference that supports SVDQuant. SVDQuant is a new post-training training quantization paradigm for diffusion models, which quantize both the weights and activations of FLUX.1 to 4 bits, achieving 3.5× memory and 8.7× latency reduction on a 16GB laptop 4090 GPU. See more details: https://github.com/mit-han-lab/nunchaku" + }, + { + "author": "Nikosis", + "title": "ComfyUI-Nikosis-Nodes", + "reference": "https://github.com/Nikosis/ComfyUI-Nikosis-Nodes", + "files": [ + "https://github.com/Nikosis/ComfyUI-Nikosis-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes: Aspect Ratio, Prompt Multiple Styles Selector, Text Concatenate" + }, + { + "author": "Nikosis", + "title": "ComfyUI-Nikosis-Preprocessors", + "reference": "https://github.com/Nikosis/ComfyUI-Nikosis-Preprocessors", + "files": [ + "https://github.com/Nikosis/ComfyUI-Nikosis-Preprocessors" + ], + "install_type": "git-clone", + "description": "Nodes: DepthAnything v2, LineArt, PyraCanny, Sketch" + }, + { + "author": "vadimcro", + "title": "VKRiez-Edge", + "reference": "https://github.com/vadimcro/VKRiez-Edge", + "files": [ + "https://github.com/vadimcro/VKRiez-Edge" + ], + "install_type": "git-clone", + "description": "A collection of advanced edge detection nodes for ComfyUI that generate high-quality edge maps / contours for usage with ControlNet Canny / Anyline guidance." + }, + { + "author": "Duanyll", + "title": "Duanyll Nodepack", + "reference": "https://github.com/Duanyll/duanyll_nodepack", + "files": [ + "https://github.com/Duanyll/duanyll_nodepack" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI" + }, + { + "author": "irreveloper", + "title": "ComfyUI-DSD", + "reference": "https://github.com/irreveloper/ComfyUI-DSD", + "files": [ + "https://github.com/irreveloper/ComfyUI-DSD" + ], + "install_type": "git-clone", + "description": "An Unofficial ComfyUI custom node package that integrates [a/Diffusion Self-Distillation (DSD)](https://github.com/primecai/diffusion-self-distillation) for zero-shot customized image generation.\nDSD is a model for subject-preserving image generation that allows you to create images of a specific subject in novel contexts without per-instance tuning." + }, + { + "author": "HannibalP", + "title": "comfyui-HannibalPack", + "reference": "https://github.com/HannibalP/comfyui-HannibalPack", + "files": [ + "https://github.com/HannibalP/comfyui-HannibalPack" + ], + "install_type": "git-clone", + "description": "This node improves the merging of LoRA for movements and physical resemblance when adding multiple LoRA to a model." + }, + { + "author": "xingBaGan", + "title": "ComfyUI-connect-ui", + "reference": "https://github.com/xingBaGan/ComfyUI-connect-ui", + "files": [ + "https://github.com/xingBaGan/ComfyUI-connect-ui" + ], + "install_type": "git-clone", + "description": "Real-time image transfer between client and server Base64 image encoding/decoding support Supports PNG image format Includes a floating preview window for received images Preview window has minimize/maximize functionality" + }, + { + "author": "iDAPPA", + "title": "AMD GPU Monitor for ComfyUI", + "reference": "https://github.com/iDAPPA/ComfyUI-AMDGPUMonitor", + "files": [ + "https://github.com/iDAPPA/ComfyUI-AMDGPUMonitor" + ], + "install_type": "git-clone", + "description": "A simple, lightweight AMD GPU monitoring tool for ComfyUI that displays real-time information about your AMD GPU directly in the UI." + }, + { + "author": "roundyyy", + "title": "Mesh Simplifier for ComfyUI", + "reference": "https://github.com/roundyyy/ComfyUI-mesh-simplifier", + "files": [ + "https://github.com/roundyyy/ComfyUI-mesh-simplifier" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that implements mesh simplification with texture preservation using PyMeshLab. This node allows you to reduce the complexity of 3D meshes while preserving visual quality, and is compatible with ComfyUI-3D-Pack's mesh format." + }, + { + "author": "orssorbit", + "title": "ComfyUI-wanBlockswap", + "reference": "https://github.com/orssorbit/ComfyUI-wanBlockswap", + "files": [ + "https://github.com/orssorbit/ComfyUI-wanBlockswap" + ], + "install_type": "git-clone", + "description": "This is a simple Wan block swap node for ComfyUI native nodes, works by swapping upto 40 blocks to the CPU to reduce VRAM." + }, + { + "author": "joreyaesh", + "title": "ComfyUI Scroll Over Textarea", + "reference": "https://github.com/joreyaesh/comfyui_scroll_over_textarea", + "files": [ + "https://github.com/joreyaesh/comfyui_scroll_over_textarea" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension to allow textarea elements to be scrolled over. Useful when using a trackpad in order to prevent accidental forward/back navigation (two fingers horizontally on a Mac) when scrolling around the UI." + }, + { + "author": "joreyaesh", + "title": "ComfyUI Touchpad Scroll Controller", + "reference": "https://github.com/joreyaesh/comfyui_touchpad_scroll_controller.enableTouchpadScroll", + "files": [ + "https://github.com/joreyaesh/comfyui_touchpad_scroll_controller.enableTouchpadScroll" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that enhances touchpad navigation by redirecting two-finger scrolling over to the canvas, including over textareas. This can prevent accidental back/forward browser navigation when using horizontal touchpad gestures and provides smooth zooming and panning for Mac and other touchpad users." + }, + { + "author": "ali-vilab", + "title": "ComfyUI-ACE_Plus", + "id": "ace_plus", + "reference": "https://github.com/ali-vilab/ACE_plus", + "files": [ + "https://github.com/ali-vilab/ACE_plus" + ], + "install_type": "git-clone", + "description": "Custom nodes for various visual generation and editing tasks using ACE_Plus FFT Model." + }, + { + "author": "chri002", + "title": "ComfyUI_depthMapOperation", + "reference": "https://github.com/chri002/ComfyUI_depthMapOperation", + "files": [ + "https://github.com/chri002/ComfyUI_depthMapOperation" + ], + "description": "A simple set of nodes to generate a point cloud from an image and its depth map, perform transformations and some basic operations.", + "install_type": "git-clone" + }, + { + "author": "Laurent2916", + "title": "comfyui-piq", + "reference": "https://github.com/Laurent2916/comfyui-piq", + "files": [ + "https://github.com/Laurent2916/comfyui-piq" + ], + "description": "PIQ ComfyUI custom nodes", + "install_type": "git-clone" + }, + { + "author": "thezveroboy", + "title": "ComfyUI-CSM-Nodes", + "reference": "https://github.com/thezveroboy/ComfyUI-CSM-Nodes", + "files": [ + "https://github.com/thezveroboy/ComfyUI-CSM-Nodes" + ], + "description": "Custom nodes for ComfyUI implementing the csm model for text-to-speech generation.", + "install_type": "git-clone" + }, + { + "author": "thezveroboy", + "title": "ComfyUI-WAN-ClipSkip", + "reference": "https://github.com/thezveroboy/ComfyUI-WAN-ClipSkip", + "files": [ + "https://github.com/thezveroboy/ComfyUI-WAN-ClipSkip" + ], + "description": "Custom nodes for ComfyUI implementing the csm model for text-to-speech generation.", + "install_type": "git-clone" + }, + { + "author": "thezveroboy", + "title": "ComfyUI_ACE-Step-zveroboy", + "reference": "https://github.com/thezveroboy/ComfyUI_ACE-Step-zveroboy", + "files": [ + "https://github.com/thezveroboy/ComfyUI_ACE-Step-zveroboy" + ], + "description": "I took the original source code from the repository [a/ComfyUI_ACE-Step](https://github.com/billwuhao/ComfyUI_ACE-Step) and modified it to make the model loading explicit instead of hidden.", + "install_type": "git-clone" + }, + { + "author": "thezveroboy", + "title": "ComfyUI Random Image Loader", + "reference": "https://github.com/thezveroboy/comfyui-random-image-loader", + "files": [ + "https://github.com/thezveroboy/comfyui-random-image-loader" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that loads a random image from a specified folder and outputs it in the standard ComfyUI IMAGE format, along with a MASK and the image path as STRING. Images are loaded in their original dimensions." + }, + { + "author": "thezveroboy", + "title": "ComfyUI-LUT", + "reference": "https://github.com/thezveroboy/ComfyUI-lut", + "files": [ + "https://github.com/thezveroboy/ComfyUI-lut" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI for simple LUT file extraction from any image." + }, + { + "author": "thezveroboy", + "title": "comfyui-RandomPromptsZveroboy", + "reference": "https://github.com/thezveroboy/comfyui-RandomPromptsZveroboy", + "files": [ + "https://github.com/thezveroboy/comfyui-RandomPromptsZveroboy" + ], + "install_type": "git-clone", + "description": "Custom node for ComfyUI that fixes an existing node [a/comfyui-dynamicprompts](https://github.com/adieyal/comfyui-dynamicprompts)." + }, + { + "author": "tatookan", + "title": "comfyui_ssl_gemini_EXP", + "reference": "https://github.com/tatookan/comfyui_ssl_gemini_EXP", + "files": [ + "https://github.com/tatookan/comfyui_ssl_gemini_EXP" + ], + "description": "Calling gemini2.0 at comfyui . The project will continue to organize good APIs!", + "install_type": "git-clone" + }, + { + "author": "atluslin", + "title": "comfyui_arcane_style_trans", + "reference": "https://github.com/atluslin/comfyui_arcane_style_trans", + "files": [ + "https://github.com/atluslin/comfyui_arcane_style_trans" + ], + "description": "ComfyUI's Arcane stylization plugin", + "install_type": "git-clone" + }, + { + "author": "pixelworldai", + "title": "ComfyUI-AlphaFlatten", + "reference": "https://github.com/pixelworldai/ComfyUI-AlphaFlatten", + "files": [ + "https://github.com/pixelworldai/ComfyUI-AlphaFlatten" + ], + "install_type": "git-clone", + "description": "This node takes a batch of images with alpha channels (RGBA format) and combines them into a single image, respecting the transparency of each layer. It's particularly useful for compositing multiple masked elements (like faces) into a single image." + }, + { + "author": "pixelworldai", + "title": "ComfyUI-WorkflowGraphics", + "reference": "https://github.com/pixelworldai/ComfyUI-WorkflowGraphics", + "files": [ + "https://github.com/pixelworldai/ComfyUI-WorkflowGraphics" + ], + "install_type": "git-clone", + "description": "Embed images directly in your workflow JSONs" + }, + { + "author": "CozyMantis (+ Curt-Park)", + "title": "Cozy Human Parser in pure Python", + "id": "humanparser-pure-python", + "reference": "https://github.com/Curt-Park/human-parser-comfyui-node-in-pure-python", + "files": [ + "https://github.com/Curt-Park/human-parser-comfyui-node-in-pure-python" + ], + "install_type": "git-clone", + "description": "It works the same as human-parser-comfyui-node but is implemented in pure Python so that it doesn't require a runtime build for InPlaceABNSync." + }, + { + "author": "ComplexRobot", + "title": "ComfyUI-Simple-VFI", + "reference": "https://github.com/ComplexRobot/ComfyUI-Simple-VFI", + "files": [ + "https://github.com/ComplexRobot/ComfyUI-Simple-VFI" + ], + "install_type": "git-clone", + "description": "Nodes for simple frame interpolation without the use of AI. Uses standard image operations to blend frames together." + }, + { + "author": "Taithrah", + "title": "Fens-Simple-Nodes", + "reference": "https://github.com/Taithrah/ComfyUI_Fens_Simple_Nodes", + "files": [ + "https://github.com/Taithrah/ComfyUI_Fens_Simple_Nodes" + ], + "install_type": "git-clone", + "description": "Simple nodes for ComfyUI - Token Counter - Optimal Empty Latent" + }, + { + "author": "Immac", + "title": "ComfyUI Core Video Nodes", + "reference": "https://github.com/Immac/ComfyUI-CoreVideoMocks", + "files": [ + "https://github.com/Immac/ComfyUI-CoreVideoMocks" + ], + "install_type": "git-clone", + "description": "A mock of a possible implementation of for ComfyUI Core Video Nodes." + }, + { + "author": "kuo6", + "title": "ComfyUI Equirectangular Tools", + "reference": "https://github.com/kukuo6666/ComfyUI-Equirect", + "files": [ + "https://github.com/kukuo6666/ComfyUI-Equirect" + ], + "install_type": "git-clone", + "description": "Tools for processing equirectangular images, supporting conversion from equirectangular format to cubemap." + }, + { + "author": "vahidzxc", + "title": "va-nodes", + "reference": "https://github.com/vahidzxc/va-nodes", + "files": [ + "https://github.com/vahidzxc/va-nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI, focusing on improving workflow efficiency and adding new functionality.(work in progress!!!)" + }, + { + "author": "blovett80", + "title": "ComfyUI-PixelDojo", + "reference": "https://github.com/blovett80/ComfyUI-PixelDojo", + "files": [ + "https://github.com/blovett80/ComfyUI-PixelDojo" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension for using PixelDojo's Flux API to generate high-quality images directly within ComfyUI workflows." + }, + { + "author": "yasser-baalla", + "title": "comfyUI-SemanticImageFetch", + "reference": "https://github.com/yasser-baalla/comfyUI-SemanticImageFetch", + "files": [ + "https://github.com/yasser-baalla/comfyUI-SemanticImageFetch" + ], + "install_type": "git-clone", + "description": "Create a custom node to select the closest images semantically to an input prompt" + }, + { + "author": "SijieMei", + "title": "ComfyUI-Prompt-History", + "reference": "https://github.com/SijieMei/ComfyUI-promptHistory", + "files": [ + "https://github.com/SijieMei/ComfyUI-promptHistory" + ], + "install_type": "git-clone", + "description": "Save prompt history and reselect" + }, + { + "author": "Tensor-Art", + "title": "ComfyUI_TENSOR_ART", + "reference": "https://github.com/Tensor-Art/ComfyUI_TENSOR_ART", + "files": [ + "https://github.com/Tensor-Art/ComfyUI_TENSOR_ART" + ], + "install_type": "git-clone", + "description": "This project implements a set of custom nodes for ComfyUI, integrating some of the API interfaces provided by [a/TAMS](https://tams.tensor.art/)." + }, + { + "author": "infinigence", + "title": "ComfyUI_Model_Cache", + "reference": "https://github.com/infinigence/ComfyUI_Model_Cache", + "files": [ + "https://github.com/infinigence/ComfyUI_Model_Cache" + ], + "install_type": "git-clone", + "description": "A model cached-loader custom node for ComfyUI." + }, + { + "author": "infinigence", + "title": "ComfyUI-Infinigence-Nodes", + "reference": "https://github.com/infinigence/ComfyUI-Infinigence-Nodes", + "files": [ + "https://github.com/infinigence/ComfyUI-Infinigence-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: DrawTextNode, Qwen2.5VL_api, ..." + }, + { + "author": "zaheenrahman", + "title": "ComfyUI-ColorCorrection", + "reference": "https://github.com/zaheenrahman/ComfyUI-ColorCorrection", + "files": [ + "https://github.com/zaheenrahman/ComfyUI-ColorCorrection" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that performs color correction on clothing in face-swapped images. This node helps maintain the original clothing color when using face swap tools, addressing common color shifts that occur during the face swap process." + }, + { + "author": "CHAOSEA", + "title": "ComfyUI_FaceAlignPaste", + "reference": "https://github.com/CHAOSEA/ComfyUI_FaceAlignPaste", + "files": [ + "https://github.com/CHAOSEA/ComfyUI_FaceAlignPaste" + ], + "install_type": "git-clone", + "description": "Smart Face Alignment and Pasting Node" + }, + { + "author": "RaymondProduction", + "title": "Zerna Pack", + "reference": "https://github.com/RaymondProduction/comfyui-zerna-pack", + "files": [ + "https://github.com/RaymondProduction/comfyui-zerna-pack" + ], + "install_type": "git-clone", + "description": "A set of nodes for batch processing of text and images." + }, + { + "author": "svetozarov", + "title": "AS_LLM_nodes", + "reference": "https://github.com/svetozarov/AS_LLM_nodes", + "files": [ + "https://github.com/svetozarov/AS_LLM_nodes" + ], + "install_type": "git-clone", + "description": "This ComfyUI extension provides custom nodes for working with Google Gemini and OpenAI ChatGPT." + }, + { + "author": "Andro-Meta", + "title": "ComfyUI-Ovis2", + "reference": "https://github.com/Andro-Meta/ComfyUI-Ovis2", + "files": [ + "https://github.com/Andro-Meta/ComfyUI-Ovis2" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node set for integrating [a/Ovis2](https://huggingface.co/AIDC-AI/Ovis2-34B), a powerful multimodal large language model designed to analyze images and videos." + }, + { + "author": "rainlizard", + "title": "Raffle", + "reference": "https://github.com/rainlizard/ComfyUI-Raffle", + "files": [ + "https://github.com/rainlizard/ComfyUI-Raffle" + ], + "install_type": "git-clone", + "description": "A semi-random prompt generator for danbooru tags that works alongside your character prompt, allowing you to put your waifu in many scenarios. (for Illustrious/NoobAI/Pony)" + }, + { + "author": "jupo-ai", + "title": "comfy-ex-tagcomplete", + "id": "comfy-ex-tagcomplete", + "reference": "https://github.com/jupo-ai/comfy-ex-tagcomplete", + "files": [ + "https://github.com/jupo-ai/comfy-ex-tagcomplete" + ], + "install_type": "git-clone", + "description": "tag completer with csv file" + }, + { + "author": "felixszeto", + "title": "ComfyUI-RequestNodes", + "reference": "https://github.com/felixszeto/ComfyUI-RequestNodes", + "files": [ + "https://github.com/felixszeto/ComfyUI-RequestNodes" + ], + "install_type": "git-clone", + "description": "This is a request node tool designed for making HTTP requests (GET/POST) to APIs and viewing the responses. It is useful for API testing and development." + }, + { + "author": "AIExplorer25", + "title": "ComfyUI_AutoDownloadModels", + "reference": "https://github.com/AIExplorer25/ComfyUI_AutoDownloadModels", + "files": [ + "https://github.com/AIExplorer25/ComfyUI_AutoDownloadModels" + ], + "install_type": "git-clone", + "description": "This custom node helps to auto download models from huggingface" + }, + { + "author": "AIExplorer25", + "title": "ComfyUI_ChatGptHelper", + "reference": "https://github.com/AIExplorer25/ComfyUI_ChatGptHelper", + "files": [ + "https://github.com/AIExplorer25/ComfyUI_ChatGptHelper" + ], + "install_type": "git-clone", + "description": "ComfyUI ChatGPT Helper ComfyUI ChatGPT Helper is a custom node extension for ComfyUI that integrates OpenAI's ChatGPT capabilities directly into your ComfyUI workflows. This tool allows for dynamic prompt generation, automated text manipulation, and enhanced interactivity within your AI image generation processes." + }, + { + "author": "AIExplorer25", + "title": "ComfyUI_ImageCaptioner", + "reference": "https://github.com/AIExplorer25/ComfyUI_ImageCaptioner", + "files": [ + "https://github.com/AIExplorer25/ComfyUI_ImageCaptioner" + ], + "install_type": "git-clone", + "description": "This custom node helps to generate cation for images for lora training." + }, + { + "author": "Altair200333", + "title": "Flux Pro Nodes for ComfyUI", + "reference": "https://github.com/Altair200333/ComfyUI_Flux_1.1_PRO", + "files": [ + "https://github.com/Altair200333/ComfyUI_Flux_1.1_PRO" + ], + "install_type": "git-clone", + "description": "This plugin adds a new node to ComfyUI. The node uses the FLUX.1 Fill API to fill in parts of an image." + }, + { + "author": "PiggyDance", + "title": "ComfyUI_OpenCV", + "reference": "https://github.com/PiggyDance/ComfyUI_OpenCV", + "files": [ + "https://github.com/PiggyDance/ComfyUI_OpenCV" + ], + "install_type": "git-clone", + "description": "OpenCV nodes for ComfyUI" + }, + { + "author": "wywywywy", + "title": "ComfyUI Pause Workflow Node", + "reference": "https://github.com/wywywywy/ComfyUI-pause", + "files": [ + "https://github.com/wywywywy/ComfyUI-pause" + ], + "install_type": "git-clone", + "description": "Node to pause a workflow with a continue button" + }, + { + "author": "Semper-Sursum", + "title": "HF-Flux-ComfyUI", + "reference": "https://github.com/Semper-Sursum/HF-Flux-ComfyUI", + "files": [ + "https://github.com/Semper-Sursum/HF-Flux-ComfyUI" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI enables direct integration with Hugging Face Flux models for image generation via API. Users can leverage the power of Flux models like FLUX.1 [schnell] and FLUX.1 [dev] without leaving the ComfyUI environment" + }, + { + "author": "Semper-Sursum", + "title": "ComfyUI-PromptWrapper", + "reference": "https://github.com/clouddreamfly/ComfyUI-PromptWrapper", + "files": [ + "https://github.com/clouddreamfly/ComfyUI-PromptWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for PromptWrapper, Mainly for prompt word translation, Chinese translation into English or English translation into Chinese." + }, + { + "author": "SYaroslavIv", + "title": "SwD Preset Selector for ComfyUI", + "reference": "https://github.com/YaroslavIv/comfyui_swd", + "files": [ + "https://github.com/YaroslavIv/comfyui_swd" + ], + "install_type": "git-clone", + "description": "The SwD Preset Selector is a custom node for ComfyUI that provides a simple way to select predefined SwD configurations." + }, + { + "author": "game4d", + "title": "ComfyUI-BDsInfiniteYou", + "reference": "https://github.com/game4d/ComfyUI-BDsInfiniteYou", + "files": [ + "https://github.com/game4d/ComfyUI-BDsInfiniteYou" + ], + "install_type": "git-clone", + "description": "ComfyUI custom_node for [a/ByteDance's InfiniteYou](https://github.com/bytedance/InfiniteYou)." + }, + { + "author": "hayde0096", + "title": "EasySettingpipes", + "reference": "https://github.com/hayde0096/Comfyui-EasySettingpipes", + "files": [ + "https://github.com/hayde0096/Comfyui-EasySettingpipes" + ], + "install_type": "git-clone", + "description": "Just a Sampler and another settings pipe for comfyui" + }, + { + "author": "orex2121", + "title": "comfyui-OreX", + "reference": "https://github.com/orex2121/comfyui-OreX", + "files": [ + "https://github.com/orex2121/comfyui-OreX" + ], + "install_type": "git-clone", + "description": "comfyui-OreX is a set of nodes for using LLM models via a free API." + }, + { + "author": "zakantonio", + "title": "Avatar Generation Experience", + "reference": "https://github.com/zakantonio/AvatarGen-experience", + "files": [ + "https://github.com/zakantonio/AvatarGen-experience" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that transforms user photos into stylized character avatars." + }, + { + "author": "Gue-e", + "title": "ComfyUI-PanoCard", + "reference": "https://github.com/Gue-e/ComfyUI-PanoCard", + "files": [ + "https://github.com/Gue-e/ComfyUI-PanoCard" + ], + "install_type": "git-clone", + "description": "A plugin application that utilizes ComfyUI to generate 360-degree panoramic images. It primarily works by converting between flat images and equidistant cylindrical projections, stretching flat images into a curved format, and setting regional conditions, while harnessing the power of large models to produce 360-degree panoramic views." + }, + { + "author": "stepfun-ai", + "title": "ComfyUI-StepVideo", + "reference": "https://github.com/stepfun-ai/ComfyUI-StepVideo", + "files": [ + "https://github.com/stepfun-ai/ComfyUI-StepVideo" + ], + "install_type": "git-clone", + "description": "This repository contains ComfyUI custom nodes for StepVideo." + }, + { + "author": "LoveEatCandy", + "title": "COMFYUI-ReplacePartOfImage", + "reference": "https://github.com/LoveEatCandy/COMFYUI-ReplacePartOfImage", + "files": [ + "https://github.com/LoveEatCandy/COMFYUI-ReplacePartOfImage" + ], + "install_type": "git-clone", + "description": "Replace part of an image with another image" + }, + { + "author": "Flow-two", + "title": "ComfyUI-WanStartEndFramesNative", + "reference": "https://github.com/Flow-two/ComfyUI-WanStartEndFramesNative", + "files": [ + "https://github.com/Flow-two/ComfyUI-WanStartEndFramesNative" + ], + "install_type": "git-clone", + "description": "Start and end frames video generation node that supports native ComfyUI." + }, + { + "author": "Creepybits", + "title": "ComfyUI-Creepy_nodes", + "id": "Creepy_nodes", + "reference": "https://github.com/Creepybits/ComfyUI-Creepy_nodes", + "files": [ + "https://github.com/Creepybits/ComfyUI-Creepy_nodes" + ], + "install_type": "git-clone", + "description": "A collection of switch nodes for ComfyUI" + }, + { + "author": "Creepybits", + "title": "Comfyui-Save_To_OneDrive", + "reference": "https://github.com/Creepybits/ComfyUI-Save_To_OneDrive", + "files": [ + "https://github.com/Creepybits/ComfyUI-Save_To_OneDrive" + ], + "install_type": "git-clone", + "description": "Saves images directly to OneDrive using Microsoft's free API service." + }, + { + "author": "ImagineerNL", + "title": "ComfyUI-ToSVG-Potracer", + "reference": "https://github.com/ImagineerNL/ComfyUI-ToSVG-Potracer", + "files": [ + "https://github.com/ImagineerNL/ComfyUI-ToSVG-Potracer" + ], + "install_type": "git-clone", + "description": "ComfyUI node to vectorize 2 color images like logo or text calling the pure Python 'potracer' library for potrace. Requires LATEST VERSION of https://registry.comfy.org/nodes/ComfyUI-ToSVG to_SVG node to save as SVG." + }, + { + "author": "ImagineerNL", + "title": "ComfyUI-IMGNR-Utils", + "reference": "https://github.com/ImagineerNL/ComfyUI-IMGNR-Utils", + "files": [ + "https://github.com/ImagineerNL/ComfyUI-IMGNR-Utils" + ], + "install_type": "git-clone", + "description": "ComfyUI Utility Nodes by Imagineer. 1: Catch and Edit Text; useful for grabbing AI generated prompts which you edit by hand. Doing so mutes the upstream node, improving speed and saving external calls and budget.
2. Preview Image - No Save: Previews as they should be" + }, + { + "author": "Yushan777", + "title": "ComfyUI-Y7-SBS-2Dto3D", + "reference": "https://github.com/yushan777/ComfyUI-Y7-SBS-2Dto3D", + "files": [ + "https://github.com/yushan777/ComfyUI-Y7-SBS-2Dto3D" + ], + "install_type": "git-clone", + "description": "Convert 2D images and videos to 3D SBS (side-by-side) format" + }, + { + "author": "Yushan777", + "title": "Y7Nodes for ComfyUI", + "id": "y7nodes", + "reference": "https://github.com/yushan777/ComfyUI-Y7Nodes", + "files": [ + "https://github.com/yushan777/ComfyUI-Y7Nodes" + ], + "install_type": "git-clone", + "description": "A collection of utility / quality-of-life nodes for ComfyUI. Probably only useful to me." + }, + { + "author": "bemoregt", + "title": "ComfyUI_CustomNode_Image2Spectrum", + "reference": "https://github.com/bemoregt/ComfyUI_CustomNode_Image2Spectrum", + "files": [ + "https://github.com/bemoregt/ComfyUI_CustomNode_Image2Spectrum" + ], + "install_type": "git-clone", + "description": "ComfyUI Custom Node for converting images to frequency spectrum visualizations using FFT" + }, + { + "author": "pnikolic-amd", + "title": "MIGraphX Node for ComfyUI", + "reference": "https://github.com/pnikolic-amd/ComfyUI_MIGraphX", + "files": [ + "https://github.com/pnikolic-amd/ComfyUI_MIGraphX" + ], + "install_type": "git-clone", + "description": "This node enables better performance for Stable Diffusion models, by leveraging AMD MIGraphX, on Navi3 and Navi4 GPUs." + }, + { + "author": "zzubnik", + "title": "TT_TextTools", + "id": "TT_TextTools", + "reference": "https://github.com/zzubnik/TT_TextTools", + "files": [ + "https://github.com/zzubnik/TT_TextTools" + ], + "install_type": "git-clone", + "description": "Custom text tools for helping with multiple prompt generation in ComfyUI. These tools allow more variety than just relying on the randomness of the image generator. You can create related, themed prompts, random each time." + }, + { + "author": "dimtion", + "title": "ComfyUI-Raw-Image", + "reference": "https://github.com/dimtion/comfyui-raw-image", + "files": [ + "https://github.com/dimtion/comfyui-raw-image" + ], + "install_type": "git-clone", + "description": "Comfyui-raw-image provides the ability to load raw image files for ComfyUI" + }, + { + "author": "DiffusionWave", + "title": "PickResolution_DiffusionWave", + "reference": "https://github.com/DiffusionWave/PickResolution_DiffusionWave", + "files": [ + "https://github.com/DiffusionWave/PickResolution_DiffusionWave" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that allows selecting a base resolution, applying a custom scaling value based on FLOAT (up to 10 decimal places), and adding an extra integer value. Outputs include both INT and FLOAT resolutions, making it perfect for you to play around with." + }, + { + "author": "Zar4X", + "title": "ComfyUI-Batch-Process", + "reference": "https://github.com/Zar4X/ComfyUI-Batch-Process", + "files": [ + "https://github.com/Zar4X/ComfyUI-Batch-Process" + ], + "install_type": "git-clone", + "description": "A collection of nodes for batch processing texts and images in ComfyUI" + }, + { + "author": "Zar4X", + "title": "ComfyUI-Image-Resizing", + "reference": "https://github.com/Zar4X/ComfyUI-Image-Resizing", + "files": [ + "https://github.com/Zar4X/ComfyUI-Image-Resizing" + ], + "install_type": "git-clone", + "description": "Precision dimension control nodes for aspect ratio adjustments and resizing workflows" + }, + { + "author": "WaveSpeedAI", + "title": "wavespeed-comfyui", + "reference": "https://github.com/WaveSpeedAI/wavespeed-comfyui", + "files": [ + "https://github.com/WaveSpeedAI/wavespeed-comfyui" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that allows you to use the WaveSpeed AI API directly in ComfyUI. WaveSpeed AI is a high-performance AI image and video generation service platform offering industry-leading generation speeds. For more information, see [a/WaveSpeed AI Documentation](https://wavespeed.ai/docs)." + }, + { + "author": "hekmon", + "title": "comfyui-checkpoint-extract", + "reference": "https://github.com/hekmon/comfyui-checkpoint-extract", + "files": [ + "https://github.com/hekmon/comfyui-checkpoint-extract" + ], + "install_type": "git-clone", + "description": "Extract CLIP and VAE models from a loaded checkpoint in ComfyUI." + }, + { + "author": "hekmon", + "title": "ComfyUI OpenAI API", + "reference": "https://github.com/hekmon/comfyui-openai-api", + "files": [ + "https://github.com/hekmon/comfyui-openai-api" + ], + "install_type": "git-clone", + "description": "Call LLM and VLM in a simple way using the OpenAI API standard from ComfyUI" + }, + { + "author": "rookiepsi", + "title": "ComfyUI Extended", + "reference": "https://github.com/rookiepsi/comfyui-extended", + "files": [ + "https://github.com/rookiepsi/comfyui-extended" + ], + "install_type": "git-clone", + "description": "Nodes for ComfyUI that extend the core functionality without adding extra dependencies." + }, + { + "author": "rookiepsi", + "title": "Blur Mask", + "reference": "https://github.com/rookiepsi/comfypsi_blur_mask", + "files": [ + "https://github.com/rookiepsi/comfypsi_blur_mask" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that applies a Gaussian blur to a mask." + }, + { + "author": "younyokel", + "title": "ComfyUI Prompt Formatter", + "reference": "https://github.com/younyokel/comfyui_prompt_formatter", + "files": [ + "https://github.com/younyokel/comfyui_prompt_formatter" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that provides tools to clean, optimize, and format text prompts. It includes features like converting tags, aligning brackets, and applying weights to prompts." + }, + { + "author": "MoonGoblinDev", + "title": "Civicomfy - Civitai Model Downloader for ComfyUI", + "reference": "https://github.com/MoonGoblinDev/Civicomfy", + "files": [ + "https://github.com/MoonGoblinDev/Civicomfy" + ], + "install_type": "git-clone", + "description": "Civicomfy seamlessly integrates Civitai's vast model repository directly into ComfyUI, allowing you to search, download, and organize AI models without leaving your workflow." + }, + { + "author": "hunzmusic", + "title": "ComfyUI-IG2MV", + "reference": "https://github.com/hunzmusic/ComfyUI-IG2MV", + "files": [ + "https://github.com/hunzmusic/ComfyUI-IG2MV" + ], + "install_type": "git-clone", + "description": "This custom node package provides nodes specifically for using the mvadapter_ig2mv_sdxl.safetensors adapter within ComfyUI. This adapter is designed for image-guided multi-view generation, typically used for creating textures from 3D mesh renders (position and normal maps)." + }, + { + "author": "LaVie024", + "title": "comfyui-lopi999-nodes", + "reference": "https://github.com/LaVie024/comfyui-lopi999-nodes", + "files": [ + "https://github.com/LaVie024/comfyui-lopi999-nodes" + ], + "install_type": "git-clone", + "description": "Utility nodes for some randomness in your workflows, like random latent sizes. A few modifications to a few existing nodes, includes nodes for sampler and model parameters. Also includes two schedulers and four samplers that can be used with any KSampler node." + }, + { + "author": "Ky11le", + "title": "draw_tools", + "reference": "https://github.com/Ky11le/draw_tools", + "files": [ + "https://github.com/Ky11le/draw_tools" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for tiling images horizontally with configurable spacing" + }, + { + "author": "cleanlii", + "title": "DalleImageNodes - OpenAI DALL·E Nodes for ComfyUI", + "reference": "https://github.com/cleanlii/comfyui-dalle-integration", + "files": [ + "https://github.com/cleanlii/comfyui-dalle-integration" + ], + "install_type": "git-clone", + "description": "DalleImageNodes is a custom extension for ComfyUI that integrates OpenAI's DALL·E 3 API for: Image generation, Inpainting (image editing), Image variation.\nThis project supports the latest OpenAI Python SDK (v1.x) and automatically handles image resizing and format requirements (RGBA, fixed sizes) based on the examples from the offical Dall-E website." + }, + { + "author": "Sekiun", + "title": "ComfyUI-WebpToPNGSequence", + "reference": "https://github.com/Sekiun/ComfyUI-WebpToPNGSequence", + "files": [ + "https://github.com/Sekiun/ComfyUI-WebpToPNGSequence" + ], + "install_type": "git-clone", + "description": "Utility node for converting a .webp format image into sequential png images in ComfyUI" + }, + { + "author": "Michael Gold", + "title": "ComfyUI-HF-Model-Downloader", + "reference": "https://github.com/michaelgold/ComfyUI-HF-Model-Downloader", + "files": [ + "https://github.com/michaelgold/ComfyUI-HF-Model-Downloader" + ], + "install_type": "git-clone", + "description": "Easily download and install 2D to 3D and Flux models from Hugging Face." + }, + { + "author": "Siempreflaco", + "title": "ComfyUI-NCNodes", + "reference": "https://github.com/Siempreflaco/ComfyUI-NCNodes", + "files": [ + "https://github.com/Siempreflaco/ComfyUI-NCNodes" + ], + "install_type": "git-clone", + "description": "NODES: Audio Recorder, Line Counter, Increment INT, Image Processor, Load 3D Mesh From Outputs" + }, + { + "author": "livepeer", + "title": "ComfyUI-Stream-Pack", + "reference": "https://github.com/livepeer/ComfyUI-Stream-Pack", + "files": [ + "https://github.com/livepeer/ComfyUI-Stream-Pack" + ], + "install_type": "git-clone", + "description": "A suite of custom ComfyUI nodes for building real-time video and audio workflows using ComfyStream." + }, + { + "author": "VertexAnomaly", + "title": "ComfyUI_ImageSentinel", + "reference": "https://github.com/VertexAnomaly/ComfyUI_ImageSentinel", + "files": [ + "https://github.com/VertexAnomaly/ComfyUI_ImageSentinel" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that provides an Image Loader that updates inside the workflow when the Image file is changed. This allows for a easy bridge between 3D software, and 2D art applications while retaining use of a full workflow rather than being restricted to a plugin." + }, + { + "author": "iSuneast", + "title": "ComfyUI-WebhookNotifier", + "reference": "https://github.com/iSuneast/ComfyUI-WebhookNotifier", + "files": [ + "https://github.com/iSuneast/ComfyUI-WebhookNotifier" + ], + "install_type": "git-clone", + "description": "The Webhook Notification plugin for ComfyUI, used to send webhook notifications when image generation is complete." + }, + { + "author": "mobilehacker", + "title": "ComfyUI_format-lora-stack", + "reference": "https://github.com/mobilehacker/ComfyUI_format-lora-stack", + "files": [ + "https://github.com/mobilehacker/ComfyUI_format-lora-stack" + ], + "install_type": "git-clone", + "description": "Simple node to convert lora_stack output into string to generate a1111-style lora strength output text, like . Used to include your Lora names from Lora Stack in text input-output nodes and so on." + }, + { + "author": "Jokimbe", + "title": "ComfyUI-DrawThings-gRPC", + "reference": "https://github.com/Jokimbe/ComfyUI-DrawThings-gRPC", + "files": [ + "https://github.com/Jokimbe/ComfyUI-DrawThings-gRPC" + ], + "install_type": "git-clone", + "description": "Connect to any Draw Things gRPC server" + }, + { + "author": "Temult", + "title": "TWanSigmaGraph", + "reference": "https://github.com/Temult/TWanSigmaGraph", + "files": [ + "https://github.com/Temult/TWanSigmaGraph" + ], + "install_type": "git-clone", + "description": "Interactive sigma schedule editor with graph and text input." + }, + { + "author": "Raykosan", + "title": "ComfyUI_RS-SaturationNode", + "reference": "https://github.com/Raykosan/ComfyUI_RS-SaturationNode", + "files": [ + "https://github.com/Raykosan/ComfyUI_RS-SaturationNode" + ], + "install_type": "git-clone", + "description": "Professional image saturation control with artifact and highlight protection." + }, + { + "author": "Raykosan", + "title": "ComfyUI_RaykoStudio", + "reference": "https://github.com/Raykosan/ComfyUI_RaykoStudio", + "files": [ + "https://github.com/Raykosan/ComfyUI_RaykoStudio" + ], + "install_type": "git-clone", + "description": "A node for ComfyUI that allows you to overlay text on an image in an area defined by a mask, with support for text rotation, custom fonts, line breaks and transparency." + }, + { + "author": "MasterpieceX", + "title": "mpx-comfyui-nodes", + "reference": "https://github.com/withmpx/mpx-comfyui-nodes", + "files": [ + "https://github.com/withmpx/mpx-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "This Module provides nodes to allow the development of 3D Generative AI workflows that use the MasterpieceX Python SDK." + }, + { + "author": "jerrywap", + "title": "ComfyUI_LoadImageFromHttpURL", + "id": "load-image-from-http-url", + "reference": "https://github.com/jerrywap/ComfyUI_LoadImageFromHttpURL", + "files": [ + "https://github.com/jerrywap/ComfyUI_LoadImageFromHttpURL" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that fetches an image from an HTTP URL and returns it as an image tensor. Useful for API-based workflows." + }, + { + "author": "jerrywap", + "title": "ComfyUI_UploadToWebhookHTTP", + "id": "upload-to-webhook-http", + "reference": "https://github.com/jerrywap/ComfyUI_UploadToWebhookHTTP", + "files": [ + "https://github.com/jerrywap/ComfyUI_UploadToWebhookHTTP" + ], + "install_type": "git-clone", + "description": "Send generated images or videos to any HTTP webhook with optional parameters such as prompt-id and metadata payload." + }, + { + "author": "CGAnimitta", + "title": "ComfyUI_CGAnimittaTools", + "reference": "https://github.com/cganimitta/ComfyUI_CGAnimittaTools", + "files": [ + "https://github.com/cganimitta/ComfyUI_CGAnimittaTools" + ], + "install_type": "git-clone", + "description": "A series of functional custom plugins, including Blender Bridge, Extract the value of any list type data, read text files, etc." + }, + { + "author": "rickyars", + "title": "Tiled Image Generator for ComfyUI", + "reference": "https://github.com/rickyars/comfyui-llm-tile", + "files": [ + "https://github.com/rickyars/comfyui-llm-tile" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that generates tiled image compositions with overlapping regions. This approach creates coherent compositions by using the edges of each tile as seeds for neighboring tiles, resulting in seamless transitions." + }, + { + "author": "nako-nakoko", + "title": "ComfyUI_Mel_Nodes", + "reference": "https://github.com/nako-nakoko/ComfyUI_Mel_Nodes", + "files": [ + "https://github.com/nako-nakoko/ComfyUI_Mel_Nodes" + ], + "install_type": "git-clone", + "description": "Custom nodes with split, random, and select functions for easy visual and management of multiple cumbersome prompts" + }, + { + "author": "synthetai", + "title": "ComfyUI_FaceEnhancer", + "reference": "https://github.com/synthetai/ComfyUI_FaceEnhancer", + "files": [ + "https://github.com/synthetai/ComfyUI_FaceEnhancer" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node based on GFPGAN for face enhancement, capable of restoring and enhancing faces in images and videos" + }, + { + "author": "synthetai", + "title": "ComfyUI-JM-KLing-API", + "reference": "https://github.com/synthetai/ComfyUI-JM-KLing-API", + "files": [ + "https://github.com/synthetai/ComfyUI-JM-KLing-API" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that allows you to use the KLingAI API directly within the ComfyUI environment. It is developed based on the KLingAI API documentation. For more details, please refer to the official documentation. [a/KLingAI API Documentation](https://app.klingai.com/global/dev/document-api/quickStart/productIntroduction/overview)." + }, + { + "author": "synthetai", + "title": "ComfyUI_PromptBatcher", + "reference": "https://github.com/synthetai/ComfyUI_PromptBatcher", + "files": [ + "https://github.com/synthetai/ComfyUI_PromptBatcher" + ], + "install_type": "git-clone", + "description": "A custom node extension for ComfyUI that enables batch processing of prompts from text files to generate multiple images." + }, + { + "author": "synthetai", + "title": "ComfyUI-ToolBox", + "reference": "https://github.com/synthetai/ComfyUI-ToolBox", + "files": [ + "https://github.com/synthetai/ComfyUI-ToolBox" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for ComfyUI, including audio/video processing, file uploads, and AI image generation." + }, + { + "author": "synthetai", + "title": "ComfyUI-JM-MiniMax-API", + "reference": "https://github.com/synthetai/ComfyUI-JM-MiniMax-API", + "files": [ + "https://github.com/synthetai/ComfyUI-JM-MiniMax-API" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI custom nodes that integrate with MiniMax API services." + }, + { + "author": "synthetai", + "title": "ComfyUI-JM-Volcengine-API", + "reference": "https://github.com/synthetai/ComfyUI-JM-Volcengine-API", + "files": [ + "https://github.com/synthetai/ComfyUI-JM-Volcengine-API" + ], + "install_type": "git-clone", + "description": "volcengine comfyui api" + }, + { + "author": "chou18194766xx", + "title": "comfyui-EncryptSave", + "reference": "https://github.com/chou18194766xx/comfyui-EncryptSave", + "files": [ + "https://github.com/chou18194766xx/comfyui-EncryptSave" + ], + "install_type": "git-clone", + "description": "comfyui image encrypt and save." + }, + { + "author": "chou18194766xx", + "title": "comfyui_EncryptPreview", + "reference": "https://github.com/chou18194766xx/comfyui_EncryptPreview", + "files": [ + "https://github.com/chou18194766xx/comfyui_EncryptPreview" + ], + "install_type": "git-clone", + "description": "ComfyUI's non-persistent (in-memory) image preview feature" + }, + { + "author": "KERRY-YUAN", + "title": "NodeSimpleExecutor", + "id": "NodeSimpleExecutor", + "reference": "https://github.com/KERRY-YUAN/ComfyUI_Simple_Executor", + "files": [ + "https://github.com/KERRY-YUAN/ComfyUI_Simple_Executor" + ], + "install_type": "git-clone", + "description": "This node package contains automatic sampler setting according to model name in ComfyUI, adjusting image size according to specific constraints and some other nodes." + }, + { + "author": "KERRY-YUAN", + "title": "ComfyUI_Spark_TTS", + "id": "ComfyUI_Spark_TTS", + "reference": "https://github.com/KERRY-YUAN/ComfyUI_Spark_TTS", + "files": [ + "https://github.com/KERRY-YUAN/ComfyUI_Spark_TTS" + ], + "install_type": "git-clone", + "description": "Spark-TTS controllable synthesis and voice cloning." + }, + { + "author": "KERRY-YUAN", + "title": "ComfyUI_Float_Animator", + "id": "ComfyUI_Float_Animator", + "reference": "https://github.com/KERRY-YUAN/ComfyUI_Float_Animator", + "files": [ + "https://github.com/KERRY-YUAN/ComfyUI_Float_Animator" + ], + "install_type": "git-clone", + "description": "Float project applicable to ComfyUI.Generates speaking portrait video frames from an image and audio." + }, + { + "author": "brantje", + "title": "ComfyUI-api-tools", + "id": "comfyui_api_tools", + "reference": "https://github.com/brantje/ComfyUI-api-tools", + "files": [ + "https://github.com/brantje/ComfyUI-api-tools" + ], + "install_type": "git-clone", + "description": "Adds extra API functionallity and prometheus endpoint" + }, + { + "author": "brantje", + "title": "ComfyUI-MagicQuill", + "id": "comfyui_magicquill_fixed", + "reference": "https://github.com/brantje/ComfyUI_MagicQuill", + "files": [ + "https://github.com/brantje/ComfyUI_MagicQuill" + ], + "install_type": "git-clone", + "description": "Fixed version of the original [a/MagicQuill](https://github.com/magic-quill/ComfyUI_MagicQuill) node. Required nodes: ComfyUI-Brushnet and ComfyUI Controlnet AUX" + }, + { + "author": "oshtz", + "title": "oshtz Nodes", + "reference": "https://github.com/oshtz/ComfyUI-oshtz-nodes", + "files": [ + "https://github.com/oshtz/ComfyUI-oshtz-nodes" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI nodes including LLM integration, LoRA switchers, image tools, and more" + }, + { + "author": "HavocsCall", + "title": "HavocsCall's Custom ComfyUI Nodes", + "reference": "https://github.com/HavocsCall/comfyui_HavocsCall_Custom_Nodes", + "files": [ + "https://github.com/HavocsCall/comfyui_HavocsCall_Custom_Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Prompt Combiner, Float/Int Selector, Sampler Config, Text Box, Int to Float/String, Int to Float/String, Clip/Conditioning/Image/Latent/Model/String/VAE Switch" + }, + { + "author": "danger-electrodes", + "title": "ComfyUI_Fawfluencer_Nodes", + "reference": "https://github.com/danger-electrodes/ComfyUI_Fawfluencer_Nodes", + "files": [ + "https://github.com/danger-electrodes/ComfyUI_Fawfluencer_Nodes" + ], + "install_type": "git-clone", + "description": "A set of node for ComfyUI to create an influencer" + }, + { + "author": "badxprogramm", + "title": "GradientBlurNode for ComfyUI", + "reference": "https://github.com/badxprogramm/ComfyUI-GradientBlur", + "files": [ + "https://github.com/badxprogramm/ComfyUI-GradientBlur" + ], + "install_type": "git-clone", + "description": "GradientBlurNode is a custom node for ComfyUI that allows for gradient-based image blurring. This tool provides precise control over the direction, intensity, and distribution of the blur, making it ideal for creating smooth transitions, focusing attention on specific parts of an image, or adding artistic effects." + }, + { + "author": "linksluckytime", + "title": "comfyui_snacknodes", + "reference": "https://github.com/linksluckytime/comfyui_snacknodes", + "files": [ + "https://github.com/linksluckytime/comfyui_snacknodes" + ], + "install_type": "git-clone", + "description": "A comprehensive collection of ComfyUI nodes designed to reduce reliance on multiple third-party node packages." + }, + { + "author": "uihp", + "title": "ComfyUI-String-Chain", + "reference": "https://github.com/uihp/ComfyUI-String-Chain", + "files": [ + "https://github.com/uihp/ComfyUI-String-Chain" + ], + "install_type": "git-clone", + "description": "String Chain: Reconnect your prompts" + }, + { + "author": "leoleexh", + "title": "Comfy-Topaz-Photo", + "id": "leoleexh's Custom-Nodes", + "reference": "https://github.com/leoleelxh/Comfy-Topaz-Photo", + "files": [ + "https://github.com/leoleelxh/Comfy-Topaz-Photo" + ], + "install_type": "git-clone", + "description": "A new ComfyUI node for integrating Topaz Photo AI's powerful image enhancement capabilities." + }, + { + "author": "big-mon", + "title": "ComfyUI-ResolutionPresets", + "id": "bigmonComfyuiResolutionPresets", + "reference": "https://github.com/big-mon/ComfyUI-ResolutionPresets", + "files": [ + "https://github.com/big-mon/ComfyUI-ResolutionPresets" + ], + "install_type": "git-clone", + "description": "Provides recommended resolution presets specifically. Select a preset from the dropdown to easily output the corresponding width and height values for use with nodes like Empty Latent Image." + }, + { + "author": "hnmr293", + "title": "ComfyUI-SaveMem", + "reference": "https://github.com/hnmr293/comfyui-savemem", + "files": [ + "https://github.com/hnmr293/comfyui-savemem" + ], + "install_type": "git-clone", + "description": "Save Image/Latent to Shared Memory" + }, + { + "author": "hnmr293", + "title": "ComfyUI-latent-ops", + "reference": "https://github.com/hnmr293/ComfyUI-latent-ops", + "files": [ + "https://github.com/hnmr293/ComfyUI-latent-ops" + ], + "install_type": "git-clone", + "description": "A collection of nodes for manipulating LATENT in ComfyUI." + }, + { + "author": "Reithan", + "title": "Negative Rejection Steering", + "reference": "https://github.com/Reithan/negative_rejection_steering", + "files": [ + "https://github.com/Reithan/negative_rejection_steering" + ], + "install_type": "git-clone", + "description": "NRS seeks to replace the 'naive' linear interpolation of Classifier Free Guidance with a more nuanced and composable steering of the generation process with better mathematical basis." + }, + { + "author": "FunnyFinger", + "title": "Dynamic Sliders Stack", + "reference": "https://github.com/FunnyFinger/Dynamic_Sliders_stack", + "files": [ + "https://github.com/FunnyFinger/Dynamic_Sliders_stack" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI to have many sliders with interactive dynamic behavior. This repository includes all necessary code and assets for seamless integration." + }, + { + "author": "FunnyFinger", + "title": "Radar Weights Node", + "reference": "https://github.com/FunnyFinger/ComfyUi-RadarWeightNode", + "files": [ + "https://github.com/FunnyFinger/ComfyUi-RadarWeightNode" + ], + "install_type": "git-clone", + "description": "A Custom Node for ComfyUi to add an interactive Radar graph to visually control weights." + }, + { + "author": "xLegende", + "title": "ComfyUI-Prompt-Formatter", + "id": "comfyui-prompt-formatter", + "reference": "https://github.com/xLegende/ComfyUI-Prompt-Formatter", + "files": [ + "https://github.com/xLegende/ComfyUI-Prompt-Formatter" + ], + "install_type": "git-clone", + "description": "This repository contains custom nodes for ComfyUI designed to help structure, filter, and generate text prompts using categorized tag definitions stored in a YAML file." + }, + { + "author": "QijiTec", + "title": "ComfyUI-RED-UNO", + "reference": "https://github.com/QijiTec/ComfyUI-RED-UNO", + "files": [ + "https://github.com/QijiTec/ComfyUI-RED-UNO" + ], + "install_type": "git-clone", + "description": "Default 16GB VRAM UNO in context generation ComfyUI-node, using RED-UNO FT model" + }, + { + "author": "Danteday", + "title": "NoteManager", + "reference": "https://github.com/Danteday/ComfyUI-NoteManager", + "files": [ + "https://github.com/Danteday/ComfyUI-NoteManager" + ], + "install_type": "git-clone", + "description": "A powerful extension for ComfyUI that enables adding notes to many node in your workflow. Keep track of important settings, reminders, and workflow documentation directly within your ComfyUI canvas." + }, + { + "author": "zzw5516", + "title": "ComfyUI-zw-tools", + "id": "zzw5516", + "reference": "https://github.com/zzw5516/ComfyUI-zw-tools", + "files": [ + "https://github.com/zzw5516/ComfyUI-zw-tools" + ], + "install_type": "git-clone", + "description": "Automatic prompt translation to Chinese, custom prompt management, AI-based prompt expansion and translation, AI-generated image/video record management (file browser), and cloud storage upload management." + }, + { + "author": "nisaruj", + "title": "ComfyUI-DAAM", + "id": "comfyui-daam", + "reference": "https://github.com/nisaruj/comfyui-daam", + "files": [ + "https://github.com/nisaruj/comfyui-daam" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for Diffusion Attentive Attribution Maps (DAAM)" + }, + { + "author": "bytedance", + "title": "ComfyUI_InfiniteYou", + "reference": "https://github.com/bytedance/ComfyUI_InfiniteYou", + "files": [ + "https://github.com/bytedance/ComfyUI_InfiniteYou" + ], + "install_type": "git-clone", + "description": "Official ComfyUI Support - InfiniteYou: Flexible Photo Recrafting While Preserving Your Identity" + }, + { + "author": "bytedance", + "title": "ComfyUI-HyperLoRA", + "reference": "https://github.com/bytedance/ComfyUI-HyperLoRA", + "files": [ + "https://github.com/bytedance/ComfyUI-HyperLoRA" + ], + "install_type": "git-clone", + "description": "Official implementation in ComfyUI of CVPR 2025 paper 'HyperLoRA: Parameter-Efficient Adaptive Generation for Portrait Synthesis'" + }, + { + "author": "bytedance", + "title": "comfyui-lumi-batcher", + "reference": "https://github.com/bytedance/comfyui-lumi-batcher", + "files": [ + "https://github.com/bytedance/comfyui-lumi-batcher" + ], + "install_type": "git-clone", + "description": "ComfyUI Lumi Batcher is a batch processing extension plugin designed for ComfyUI, aiming to improve workflow debugging efficiency. Traditional debugging methods require adjusting parameters one by one, while this tool significantly enhances work efficiency through batch processing capabilities." + }, + { + "author": "AstroCorp", + "title": "ComfyUI AstroCorp Nodes", + "reference": "https://github.com/AstroCorp/ComfyUI-AstroCorp-Nodes", + "files": [ + "https://github.com/AstroCorp/ComfyUI-AstroCorp-Nodes" + ], + "install_type": "git-clone", + "description": "A collection of personal ComfyUI nodes designed to enhance and automate workflows." + }, + { + "author": "stevenwg", + "title": "ComfyUI-VideoGrid", + "reference": "https://github.com/stevenwg/ComfyUI-VideoGrid", + "files": [ + "https://github.com/stevenwg/ComfyUI-VideoGrid" + ], + "install_type": "git-clone", + "description": "Add vertical and horizontal video grid support" + }, + { + "author": "avenstack", + "title": "ComfyUI-AV-MegaTTS3", + "reference": "https://github.com/avenstack/ComfyUI-AV-MegaTTS3", + "files": [ + "https://github.com/avenstack/ComfyUI-AV-MegaTTS3" + ], + "install_type": "git-clone", + "description": "🎧Ultra High-Quality Voice Cloning, Chinese and English." + }, + { + "author": "avenstack", + "title": "ComfyUI-AV-LatentSync", + "reference": "https://github.com/avenstack/ComfyUI-AV-LatentSync", + "files": [ + "https://github.com/avenstack/ComfyUI-AV-LatentSync" + ], + "install_type": "git-clone", + "description": "LatentSync 1.5 wrapper for ComfyUI" + }, + { + "author": "avenstack", + "title": "ComfyUI-AV-FunASR", + "reference": "https://github.com/avenstack/ComfyUI-AV-FunASR", + "files": [ + "https://github.com/avenstack/ComfyUI-AV-FunASR" + ], + "install_type": "git-clone", + "description": "FunASR wrapper for ComfyUI" + }, + { + "author": "WarpedAnimation", + "title": "ComfyUI-WarpedToolset", + "reference": "https://github.com/WarpedAnimation/ComfyUI-WarpedToolset", + "files": [ + "https://github.com/WarpedAnimation/ComfyUI-WarpedToolset" + ], + "install_type": "git-clone", + "description": "A toolset for Hunyuan Video (mainly), with some additional nodes applicable to Framepack Video and WAN Video" + }, + { + "author": "Jint8888", + "title": "Comfyui_JTnodes", + "reference": "https://github.com/Jint8888/Comfyui_JTnodes", + "files": [ + "https://github.com/Jint8888/Comfyui_JTnodes" + ], + "install_type": "git-clone", + "description": "This project contains some custom ComfyUI nodes for image processing, AI conversation, and utility tasks." + }, + { + "author": "ichabodcole", + "title": "ComfyUI-Ichis-Pack", + "reference": "https://github.com/ichabodcole/ComfyUI-Ichis-Pack", + "files": [ + "https://github.com/ichabodcole/ComfyUI-Ichis-Pack" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI Nodes, most to make dynamic prompting a bit easier." + }, + { + "author": "SignalCha1n", + "title": "Snap Style Nodes for ComfyUI", + "reference": "https://github.com/SignalCha1n/comfyui-ComfySnap", + "files": [ + "https://github.com/SignalCha1n/comfyui-ComfySnap" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI designed to replicate certain visual elements and effects reminiscent of Snap and early digital aesthetics. These nodes are ideal for image processing tasks and are fully compatible with ComfyUI." + }, + { + "author": "judian17", + "title": "ComfyUI_ZIM", + "reference": "https://github.com/judian17/ComfyUI_ZIM", + "files": [ + "https://github.com/judian17/ComfyUI_ZIM" + ], + "install_type": "git-clone", + "description": "The unofficial implementation of ZIM in ComfyUI" + }, + { + "author": "judian17", + "title": "ComfyUI-Extract_Flux_Lora", + "reference": "https://github.com/judian17/ComfyUI-Extract_Flux_Lora", + "files": [ + "https://github.com/judian17/ComfyUI-Extract_Flux_Lora" + ], + "install_type": "git-clone", + "description": "Extract LoRA from the original Fine-Tuned model." + }, + { + "author": "judian17", + "title": "ComfyUI JoyCaption-Beta-GGUF Node", + "reference": "https://github.com/judian17/ComfyUI-joycaption-beta-one-GGUF", + "files": [ + "https://github.com/judian17/ComfyUI-joycaption-beta-one-GGUF" + ], + "install_type": "git-clone", + "description": "This project provides a node for ComfyUI to use the JoyCaption-Beta model in GGUF format for image captioning." + }, + { + "author": "judian17", + "title": "ComfyUI-UniWorld-jd17", + "reference": "https://github.com/judian17/ComfyUI-UniWorld-jd17", + "files": [ + "https://github.com/judian17/ComfyUI-UniWorld-jd17" + ], + "install_type": "git-clone", + "description": "Unofficial ComfyUI implementation of [a/UniWorld-V1](https://github.com/PKU-YuanGroup/UniWorld-V1)." + }, + { + "author": "AngelCookies", + "title": "ComfyUI-Seed-Tracker", + "reference": "https://github.com/AngelCookies/ComfyUI-Seed-Tracker", + "files": [ + "https://github.com/AngelCookies/ComfyUI-Seed-Tracker" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that tracks random seeds throughout your image generation workflows" + }, + { + "author": "TiamaTiramisu", + "title": "RisuTools", + "reference": "https://github.com/TiamaTiramisu/risutools", + "files": [ + "https://github.com/TiamaTiramisu/risutools" + ], + "install_type": "git-clone", + "description": "Nodes for integration with RisuAI" + }, + { + "author": "excelwong", + "title": "ComfyUI Prompt Composer", + "reference": "https://github.com/excelwong/ComfyUI-PromptComposer", + "files": [ + "https://github.com/excelwong/ComfyUI-PromptComposer" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node plugin for assembling prompts. It allows you to generate positive and negative prompts by selecting different options." + }, + { + "author": "jida-ai", + "title": "ComfyUI-VideoChatWrapper", + "reference": "https://github.com/lebrosoft/ComfyUI-VideoChatWrapper", + "files": [ + "https://github.com/lebrosoft/ComfyUI-VideoChatWrapper" + ], + "install_type": "git-clone", + "description": "Nodes related to video chat workflows" + }, + { + "author": "VK", + "title": "VK Nodes", + "reference": "https://github.com/VK/vk-nodes", + "files": [ + "https://github.com/VK/vk-nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to simplify my tiled render" + }, + { + "author": "MaruPelkar", + "title": "ComfyUI Conditioning Resizer", + "reference": "https://github.com/MaruPelkar/comfyui-conditioning-resizer", + "files": [ + "https://github.com/MaruPelkar/comfyui-conditioning-resizer" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that allows resizing of conditioning tensors, particularly useful for fixing size mismatches between CLIP Text Encode and CLIP Vision Encode outputs in SD3 workflows." + }, + { + "author": "bablueza", + "title": "Vaja TextToSpeech Node for ComfyUI", + "reference": "https://github.com/bablueza/ComfyUI-Vaja-Ai4thai", + "files": [ + "https://github.com/bablueza/ComfyUI-Vaja-Ai4thai" + ], + "install_type": "git-clone", + "description": "NODES: Vaja Synthesis Api, ShowText" + }, + { + "author": "GrailGreg", + "title": "Image Saving and Base64 Encoding Script", + "reference": "https://github.com/GrailGreg/images_base64", + "files": [ + "https://github.com/GrailGreg/images_base64" + ], + "install_type": "git-clone", + "description": "Based on the original SaveImage node from ComfyUI This ComfyUI node provides functionality to save images in PNG format while simultaneously generating and returning their Base64 encoded strings. This is particularly useful for applications that require image data to be transmitted as strings, such as web applications." + }, + { + "author": "vekitan55", + "title": "Simple Flux.1 Merger for ComfyUI", + "reference": "https://github.com/vekitan55/SimpleFlux1Merger", + "files": [ + "https://github.com/vekitan55/SimpleFlux1Merger" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node set for merging Flux.1-based models with intuitive control. This extension provides both simplified group merging and expert per-layer control, including support for advanced difference-based merge modes. Basically the code was generated by ChatGPT." + }, + { + "author": "kantsche", + "title": "ComfyUI-MixMod", + "reference": "https://github.com/kantsche/ComfyUI-MixMod", + "files": [ + "https://github.com/kantsche/ComfyUI-MixMod" + ], + "install_type": "git-clone", + "description": "A custom node extension for ComfyUI that allows mixing multiple models during the sampling process for enhanced image generation." + }, + { + "author": "goldwins520", + "title": "Save Image To Webdav", + "reference": "https://github.com/goldwins520/Comfyui_saveimg2webdav", + "files": [ + "https://github.com/goldwins520/Comfyui_saveimg2webdav" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI" + }, + { + "author": "yogurt7771", + "title": "ComfyUI-YogurtNodes", + "reference": "https://github.com/yogurt7771/ComfyUI-YogurtNodes", + "files": [ + "https://github.com/yogurt7771/ComfyUI-YogurtNodes" + ], + "install_type": "git-clone", + "description": "ComfyUI-YogurtNodes is a collection of custom nodes for ComfyUI, providing a series of practical image processing and workflow enhancement functionalities." + }, + { + "author": "comfy-deploy", + "title": "ComfyUI LLM Toolkit", + "reference": "https://github.com/comfy-deploy/comfyui-llm-toolkit", + "files": [ + "https://github.com/comfy-deploy/comfyui-llm-toolkit" + ], + "install_type": "git-clone", + "description": "A custom node collection for integrating various LLM (Large Language Model) providers with ComfyUI." + }, + { + "author": "JustLateNightAI", + "title": "KeywordImageBlocker", + "reference": "https://github.com/JustLateNightAI/KeywordImageBlocker", + "files": [ + "https://github.com/JustLateNightAI/KeywordImageBlocker" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that will block images that flag custom set key words" + }, + { + "author": "EmAySee", + "title": "ComfyUI_EmAySee_CustomNodes", + "reference": "https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes", + "files": [ + "https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes" + ], + "install_type": "git-clone", + "description": "Lots of randomizers, a simple oobabooga adapter with json options to pass, and other useful nodes." + }, + { + "author": "pupba", + "title": "ComfyForEach", + "reference": "https://github.com/pupba/Comfy_ForEach", + "files": [ + "https://github.com/pupba/Comfy_ForEach" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI custom nodes designed for image batch processing, per-index image operations, and AWS integration using EventBridge." + }, + { + "author": "n0neye", + "title": "A3D ComfyUI Integration", + "reference": "https://github.com/n0neye/A3D-comfyui-integration", + "files": [ + "https://github.com/n0neye/A3D-comfyui-integration" + ], + "install_type": "git-clone", + "description": "[a/A3D](https://github.com/n0neye/A3D) is an AI x 3D hybrid tool that allows you to compose 3D scenes and render them with AI. This integration allows you to send the color & depth images to ComfyUI. You can use it as a pose controller, or scene composer for your ComfyUI workflows." + }, + { + "author": "alessandroperilli", + "title": "Open Creative Studio Nodes", + "reference": "https://github.com/alessandroperilli/OCS_Nodes", + "files": [ + "https://github.com/alessandroperilli/OCS_Nodes" + ], + "install_type": "git-clone", + "description": "A custom node suite to augment the capabilities of the [a/Open Creative Studio for ComfyUI](https://oc.studio/)." + }, + { + "author": "rkfg", + "title": "Dia realistic TTS", + "reference": "https://github.com/rkfg/ComfyUI-Dia_tts", + "files": [ + "https://github.com/rkfg/ComfyUI-Dia_tts" + ], + "install_type": "git-clone", + "description": "It's a ComfyUI wrapper for [a/Dia TTS](https://github.com/nari-labs/dia) by Nari labs, includes a portion of their code used for inference." + }, + { + "author": "hubentu", + "title": "Multiple LoRA Loader for ComfyUI", + "reference": "https://github.com/hubentu/ComfyUI-loras-loader", + "files": [ + "https://github.com/hubentu/ComfyUI-loras-loader" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that allow working with LoRAs and trigger words by index selection." + }, + { + "author": "BNP1111", + "title": "comfyui_flux_corrector", + "reference": "https://github.com/BNP1111/comfyui_flux_corrector", + "files": [ + "https://github.com/BNP1111/comfyui_flux_corrector" + ], + "install_type": "git-clone", + "description": "This model was fine-tuned on Flux.1-Dev to with reflection tuning to serve as a corrector for self-refinement framework introduced in From Reflection to Perfection: Scaling Inference-Time Optimization for Text-to-Image Diffusion Models via Reflection Tuning. " + }, + { + "author": "Cryptyox", + "title": "anaglyphTool-Comfyui", + "reference": "https://github.com/Cryptyox/anaglyphTool-Comfyui", + "files": [ + "https://github.com/Cryptyox/anaglyphTool-Comfyui" + ], + "install_type": "git-clone", + "description": "This Comfyui node creates an anaglyph image from a color and depth map input. It achieves high speeds suitable for video to anaglyph conversion by using CUDA GPU acceleration." + }, + { + "author": "hugo", + "title": "fastgan-comfyui", + "reference": "https://github.com/hugobb/FastGAN-ComfyUI-Node", + "files": [ + "https://github.com/hugobb/FastGAN-ComfyUI-Node" + ], + "install_type": "git-clone", + "description": "A FastGAN Node for ComfyUI" + }, + { + "author": "marklieberman", + "title": "ComfyUI-Liebs-Picker", + "reference": "https://github.com/marklieberman/ComfyUI-Liebs-Picker", + "files": [ + "https://github.com/marklieberman/ComfyUI-Liebs-Picker" + ], + "install_type": "git-clone", + "description": "A node to pause execution of the workflow and select which input images should proceed to the output." + }, + { + "author": "marklieberman", + "title": "ComfyUI-Liebs-Toast", + "reference": "https://github.com/marklieberman/ComfyUI-Liebs-Toast", + "files": [ + "https://github.com/marklieberman/ComfyUI-Liebs-Toast" + ], + "install_type": "git-clone", + "description": "A node to display a toast notification. Use it to send a toast when your prompt is complete. Also pairs well with [a/ComfyUI-Liebs_Picker](https://github.com/marklieberman/ComfyUI-Liebs-Picker) and [a/cg-image-filter](https://github.com/chrisgoringe/cg-image-filter) to be notified when the picker is waiting." + }, + { + "author": "marklieberman", + "title": "ComfyUI-Liebs-Title", + "reference": "https://github.com/marklieberman/ComfyUI-Liebs-Title", + "files": [ + "https://github.com/marklieberman/ComfyUI-Liebs-Title" + ], + "install_type": "git-clone", + "description": "An extension to modify the browser tab title when running ComfyUI workflows." + }, + { + "author": "SXQBW", + "title": "ComfyUI-Qwen-Omni", + "reference": "https://github.com/SXQBW/ComfyUI-Qwen-Omni", + "files": [ + "https://github.com/SXQBW/ComfyUI-Qwen-Omni" + ], + "install_type": "git-clone", + "description": "ComfyUI-Qwen-Omni is the first ComfyUI plugin that supports end-to-end multimodal interaction, enabling seamless joint generation and editing of text, images, and audio. Without intermediate steps, with just one operation, the model can simultaneously understand and process multiple input modalities, generating coherent text descriptions and voice outputs, providing an unprecedentedly smooth experience for AI creation." + }, + { + "author": "SXQBW", + "title": "ComfyUI-Qwen", + "reference": "https://github.com/SXQBW/ComfyUI-Qwen", + "files": [ + "https://github.com/SXQBW/ComfyUI-Qwen" + ], + "install_type": "git-clone", + "description": "The Qwen3 ComfyUI Integration is a powerful tool designed specifically for ComfyUI workflows, aiming to seamlessly integrate Qwen series large language models (LLMs)." + }, + { + "author": "SXQBW", + "title": "ComfyUI-Qwen-VL", + "reference": "https://github.com/SXQBW/ComfyUI-Qwen-VL", + "files": [ + "https://github.com/SXQBW/ComfyUI-Qwen-VL" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension for Qwen-VL series large language models, supporting multi-modal functions such as text generation, image understanding, and video analysis.Support for Qwen2-VL, Qwen2.5-VL." + }, + { + "author": "nobrainX2", + "title": "ComfyUI Custom Dia", + "reference": "https://github.com/nobrainX2/comfyUI-customDia", + "files": [ + "https://github.com/nobrainX2/comfyUI-customDia" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI integration of the [a/Dia TTS model](https://github.com/nari-labs/dia/). Many thanks to nari-labs for their fantastic work." + }, + { + "author": "zygion", + "title": "i-zygion-util-nodes", + "reference": "https://github.com/zygion/comfyui-zygion-util-nodes", + "files": [ + "https://github.com/zygion/comfyui-zygion-util-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Item List, Template Input, Template Processor, Scene Queue Node, Trigger Passthrough Node" + }, + { + "author": "quank123wip", + "title": "ComfyUI-Step1X-Edit", + "reference": "https://github.com/quank123wip/ComfyUI-Step1X-Edit", + "files": [ + "https://github.com/quank123wip/ComfyUI-Step1X-Edit" + ], + "install_type": "git-clone", + "description": "ComfyUI Custom Node for [a/Step1X-Edit](https://github.com/stepfun-ai/Step1X-Edit/). Noted this node may consume large VRAMs!" + }, + { + "author": "Xkipper", + "title": "ComfyUI_SkipperNodes", + "reference": "https://github.com/Xkipper/ComfyUI_SkipperNodes", + "files": [ + "https://github.com/Xkipper/ComfyUI_SkipperNodes" + ], + "install_type": "git-clone", + "description": "ComfyUI Skipper Custom Nodes" + }, + { + "author": "FewBox", + "title": "fewbox-outfit-comfyui", + "reference": "https://github.com/FewBox/fewbox-outfit-comfyui", + "files": [ + "https://github.com/FewBox/fewbox-outfit-comfyui" + ], + "install_type": "git-clone", + "description": "Comfy Custom Node for Try-on." + }, + { + "author": "hua(Kungfu)", + "title": "ComfyUI_to_webui", + "reference": "https://github.com/kungful/ComfyUI_to_webui", + "files": [ + "https://github.com/kungful/ComfyUI_to_webui" + ], + "install_type": "git-clone", + "description": "Encapsulate the comfyui workflow as a gradio webui" + }, + { + "author": "Jacky-MYQ", + "title": "RGB to CMYK for ComfyUI (Save as tif)", + "reference": "https://github.com/Jacky-MYQ/comfyui-rgb2cmyk", + "files": [ + "https://github.com/Jacky-MYQ/comfyui-rgb2cmyk" + ], + "install_type": "git-clone", + "description": "RGB to CMYK (save as tif)" + }, + { + "author": "Jacky-MYQ", + "title": "comfyui-DataCleaning", + "reference": "https://github.com/Jacky-MYQ/comfyui-DataCleaning", + "files": [ + "https://github.com/Jacky-MYQ/comfyui-DataCleaning" + ], + "install_type": "git-clone", + "description": "Image cropping and Image resizing" + }, + { + "author": "lceric", + "title": "comfyui-gpt-image", + "reference": "https://github.com/lceric/comfyui-gpt-image", + "files": [ + "https://github.com/lceric/comfyui-gpt-image" + ], + "install_type": "git-clone", + "description": "Ports the official ComfyUI GPT-API node, adding support for customizable api_base, auth_token, and model settings." + }, + { + "author": "Alexankharin", + "title": "camera-comfyUI", + "reference": "https://github.com/Alexankharin/camera-comfyUI", + "files": [ + "https://github.com/Alexankharin/camera-comfyUI" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for the different projection models and camera movements" + }, + { + "author": "somesomebody", + "title": "lorainfo-sidebar", + "reference": "https://github.com/somesomebody/lorainfo-sidebar", + "files": [ + "https://github.com/somesomebody/lorainfo-sidebar" + ], + "install_type": "git-clone", + "description": "Preview images of LoRA files and edit their associated JSON files." + }, + { + "author": "dezoomer", + "title": "ComfyUI-DeZoomer-Nodes", + "reference": "https://github.com/De-Zoomer/ComfyUI-DeZoomer-Nodes", + "files": [ + "https://github.com/De-Zoomer/ComfyUI-DeZoomer-Nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI." + }, + { + "author": "lisaks", + "title": "Pixstri ComfyUI Comics", + "reference": "https://github.com/lisaks/comfyui-panelforge", + "files": [ + "https://github.com/lisaks/comfyui-panelforge" + ], + "install_type": "git-clone", + "description": "Pixstri is a custom plugin for ComfyUI designed to generate comic pages. It provides a hierarchical node system that allows you to create comic layouts with rows and frames, making it easy to design and preview comic pages within your ComfyUI workflows." + }, + { + "author": "BobRandomNumber", + "title": "ComfyUI-DiaTTS", + "reference": "https://github.com/BobRandomNumber/ComfyUI-DiaTTS", + "files": [ + "https://github.com/BobRandomNumber/ComfyUI-DiaTTS" + ], + "install_type": "git-clone", + "description": "An implementation of Nari-Labs Dia TTS" + }, + { + "author": "BobRandomNumber", + "title": "ComfyUI-KyutaiTTS", + "reference": "https://github.com/BobRandomNumber/ComfyUI-KyutaiTTS", + "files": [ + "https://github.com/BobRandomNumber/ComfyUI-KyutaiTTS" + ], + "install_type": "git-clone", + "description": "A non real-time ComfyUI implementation of Kyutai TTS" + }, + { + "author": "BobRandomNumber", + "title": "ComfyUI-TLBVFI", + "reference": "https://github.com/BobRandomNumber/ComfyUI-TLBVFI", + "files": [ + "https://github.com/BobRandomNumber/ComfyUI-TLBVFI" + ], + "install_type": "git-clone", + "description": "wrapper for the TLB-VFI: Temporal-Aware Latent Brownian Bridge Diffusion for Video Frame Interpolation project" + }, + { + "author": "santiagosamuel3455", + "title": "ComfyUI-GeminiImageToPrompt", + "reference": "https://github.com/santiagosamuel3455/ComfyUI-GeminiImageToPrompt", + "files": [ + "https://github.com/santiagosamuel3455/ComfyUI-GeminiImageToPrompt" + ], + "install_type": "git-clone", + "description": "Imagen descripcion prompt system" + }, + { + "author": "philipy1219", + "title": "ComfyUI-TaylorSeer", + "reference": "https://github.com/philipy1219/ComfyUI-TaylorSeer", + "files": [ + "https://github.com/philipy1219/ComfyUI-TaylorSeer" + ], + "install_type": "git-clone", + "description": "This project is the ComfyUI implementation of the TaylorSeer project [a/https://github.com/Shenyi-Z/TaylorSeer](https://github.com/Shenyi-Z/TaylorSeer)." + }, + { + "author": "philipy1219", + "title": "ComfyUI-CloudStorage", + "reference": "https://github.com/philipy1219/ComfyUI-CloudStorage", + "files": [ + "https://github.com/philipy1219/ComfyUI-CloudStorage" + ], + "install_type": "git-clone", + "description": "This extension adds cloud storage support to ComfyUI, allowing you to save and load images, masks, and videos directly from cloud storage services. Currently supports Aliyun OSS and AWS S3." + }, + { + "author": "FaberVS", + "title": "MultiModel", + "reference": "https://github.com/FaberVS/MultiModel", + "files": [ + "https://github.com/FaberVS/MultiModel" + ], + "install_type": "git-clone", + "description": "A collection of nodes and utilities to make working with multiple models, custom parameters, and prompt styles in ComfyUI easier, faster, and more flexible. You are welcome to use and adapt them for your own workflows!" + }, + { + "author": "ArtsticH", + "title": "ComfyUI_EasyKitHT_NodeAlignPro", + "reference": "https://github.com/ArtsticH/ComfyUI_EasyKitHT_NodeAlignPro", + "files": [ + "https://github.com/ArtsticH/ComfyUI_EasyKitHT_NodeAlignPro" + ], + "install_type": "git-clone", + "description": "ComfyUI_EasyKitHT_NodeAlignPro is a lightweight ComfyUI node alignment and node coloring tool for refactoring and rewriting the UI based on the open-source projects Comfyui-Align and Comfyui-Nodealigner." + }, + { + "author": "matorzhin", + "title": "milan-nodes-comfyui", + "reference": "https://github.com/matorzhin/milan-nodes-comfyui", + "files": [ + "https://github.com/matorzhin/milan-nodes-comfyui" + ], + "install_type": "git-clone", + "description": "NODES: 'Load One Image with Name, Title, Description', 'Load Multiple Images with Name, Directory, Title, Description'" + }, + { + "author": "cathodeDreams", + "title": "comfyui-azul-scripts", + "reference": "https://github.com/cathodeDreams/comfyui-azul-scripts", + "files": [ + "https://github.com/cathodeDreams/comfyui-azul-scripts" + ], + "install_type": "git-clone", + "description": "NODES: Save Image (JPG), Combine Conditionings (Weighted)" + }, + { + "author": "unicough", + "title": "OpenAI Image API with gpt-image-1", + "id": "comfy_openai_image_api", + "reference": "https://github.com/unicough/comfy_openai_image_api", + "files": [ + "https://github.com/unicough/comfy_openai_image_api" + ], + "install_type": "git-clone", + "description": "This custom node uses OpenAI Image API to generate image (if no input image is provided) or edit image (if input image is provided) with the latest gpt-image-1 model. To use it, you will need to provide your OpenAI API key. This makes the node to be friendly for situations where ComfyUi serves as API server, because you don't have to login like the official OpenAI GPT Image 1 node does." + }, + { + "author": "XieJunchen", + "title": "comfyUI_LLM", + "reference": "https://github.com/XieJunchen/comfyUI_LLM", + "files": [ + "https://github.com/XieJunchen/comfyUI_LLM" + ], + "install_type": "git-clone", + "description": "comfyUI_LLM is the integration of a large language model into ComfyUI" + }, + { + "author": "raykindle", + "title": "ComfyUI_Step1X-Edit", + "reference": "https://github.com/raykindle/ComfyUI_Step1X-Edit", + "files": [ + "https://github.com/raykindle/ComfyUI_Step1X-Edit" + ], + "install_type": "git-clone", + "description": "This custom node integrates the [a/Step1X-Edit](https://github.com/stepfun-ai/Step1X-Edit) image editing model into ComfyUI. Step1X-Edit is a state-of-the-art image editing model that processes a reference image and user's editing instruction to generate a new image." + }, + { + "author": "Vaporbook", + "title": "ComfyUI-SaveImage-PP", + "reference": "https://github.com/Vaporbook/ComfyUI-SaveImage-PP", + "files": [ + "https://github.com/Vaporbook/ComfyUI-SaveImage-PP" + ], + "install_type": "git-clone", + "description": "A better SaveImage than SaveImage-Plus." + }, + { + "author": "McKlinton2", + "title": "ComfyUI McKlinton Pack — Mask Node", + "reference": "https://github.com/McKlinton2/comfyui-mcklinton-pack", + "files": [ + "https://github.com/McKlinton2/comfyui-mcklinton-pack" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI enables detailed segmentation of colored mask images into specific anatomical regions for male and female bodies." + }, + { + "author": "kambara", + "title": "ComfyUI-PromptPalette", + "reference": "https://github.com/kambara/ComfyUI-PromptPalette", + "files": [ + "https://github.com/kambara/ComfyUI-PromptPalette" + ], + "install_type": "git-clone", + "description": "A custom node that makes prompt editing easier by allowing phrase switching with just mouse operations." + }, + { + "author": "MijnSpam", + "title": "Upload to PushOver", + "reference": "https://github.com/MijnSpam/UploadToPushOver", + "files": [ + "https://github.com/MijnSpam/UploadToPushOver" + ], + "install_type": "git-clone", + "description": "Send generated image to PushOver API webhook with optional parameters such as prompt-id and metadata payload." + }, + { + "author": "MijnSpam", + "title": "Comfy swap and scale", + "reference": "https://github.com/MijnSpam/ComfyUI_SwapAndScale", + "files": [ + "https://github.com/MijnSpam/ComfyUI_SwapAndScale" + ], + "install_type": "git-clone", + "description": "Do you want to easily swap width and heigth? Than this is for you. From portrait to Landscape. Is you images model trained on 1MP pictures, then you can easily scale those down. For best pictures width and heigth should be a factor of 32, say no more..." + }, + { + "author": "wakattac", + "title": "ComfyUI-AbstractImaGen", + "id": "abstract-imagen", + "reference": "https://github.com/wakattac/ComfyUI-AbstractImaGen", + "files": [ + "https://github.com/wakattac/ComfyUI-AbstractImaGen" + ], + "install_type": "git-clone", + "description": "ComfyUI node for [a/Abstract Image Generation](https://github.com/wakattac/ComfyUI-AbstractImaGen/). This node is designed to create unique abstract base images on the fly within your ComfyUI workflows, which can then be used as input for VAE encoding, image-to-image generation, or other creative processes." + }, + { + "author": "Irsalistic", + "title": "ComfyUI DAM Object Extractor", + "reference": "https://github.com/Irsalistic/comfyui-dam-object-extractor", + "files": [ + "https://github.com/Irsalistic/comfyui-dam-object-extractor" + ], + "description": "A ComfyUI node that uses NVIDIA's DAM model to identify objects in masked regions", + "tags": ["object recognition", "vision", "image analysis"], + "install_type": "git-clone" + }, + { + "author": "dicksensei69", + "title": "ComfyUI Loops", + "reference": "https://github.com/dicksensei69/comfyui_loops", + "files": [ + "https://github.com/dicksensei69/comfyui_loops" + ], + "description": "A custom node for ComfyUI that creates looping animations from image sequences.", + "install_type": "git-clone" + }, + { + "author": "tighug", + "title": "ComfyUI Rating Checker", + "reference": "https://github.com/tighug/comfyui-rating-checker", + "files": [ + "https://github.com/tighug/comfyui-rating-checker" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that classifies images into NSFW (Not Safe For Work) categories." + }, + { + "author": "tighug", + "title": "ComfyUI Eagle Feeder", + "reference": "https://github.com/tighug/comfyui-eagle-feeder", + "files": [ + "https://github.com/tighug/comfyui-eagle-feeder" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that allows you to send images directly to [a/Eagle](https://jp.eagle.cool/)." + }, + { + "author": "BigStationW", + "title": "ComfyUi-RescaleCFGAdvanced", + "reference": "https://github.com/BigStationW/ComfyUi-RescaleCFGAdvanced", + "files": [ + "https://github.com/BigStationW/ComfyUi-RescaleCFGAdvanced" + ], + "install_type": "git-clone", + "description": "ReforgeCFG is a ComfyUI node designed to add details to your image. [a/While it already exists in Comfy Core](https://github.com/comfyanonymous/ComfyUI/blob/80a44b97f5cbcb890896e2b9e65d177f1ac6a588/comfy_extras/nodes_model_advanced.py#L258), it lacks timesteps for adjustment." + }, + { + "author": "BigStationW", + "title": "ComfyUi-Load-Image-And-Display-Prompt-Metadata", + "reference": "https://github.com/BigStationW/ComfyUi-Load-Image-And-Display-Prompt-Metadata", + "files": [ + "https://github.com/BigStationW/ComfyUi-Load-Image-And-Display-Prompt-Metadata" + ], + "install_type": "git-clone", + "description": "This node displays the positive and negative prompts of a loaded ComfyUi image." + }, + { + "author": "BigStationW", + "title": "ComfyUi-Scale-Image-to-Total-Pixels-Advanced", + "reference": "https://github.com/BigStationW/ComfyUi-Scale-Image-to-Total-Pixels-Advanced", + "files": [ + "https://github.com/BigStationW/ComfyUi-Scale-Image-to-Total-Pixels-Advanced" + ], + "install_type": "git-clone", + "description": "A more advanced version of the original ImageScaleToTotalPixels node" + }, + { + "author": "rakki194", + "title": "ComfyUI-ImageCompare", + "reference": "https://github.com/rakki194/ComfyUI-ImageCompare", + "files": [ + "https://github.com/rakki194/ComfyUI-ImageCompare" + ], + "install_type": "git-clone", + "description": "A simple custom node for ComfyUI that allows you to compare two images (or batches of images) side-by-side within the UI." + }, + { + "author": "matoo", + "title": "Compare Videos", + "reference": "https://github.com/surinder83singh/ComfyUI-compare-videos", + "files": [ + "https://github.com/surinder83singh/ComfyUI-compare-videos" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI extension to compare two video/image sequences via wipe preview." + }, + { + "author": "JoeNavark", + "title": "Custom Graph Sigma for ComfyUI", + "reference": "https://github.com/JoeNavark/comfyui_custom_sigma_editor", + "files": [ + "https://github.com/JoeNavark/comfyui_custom_sigma_editor" + ], + "install_type": "git-clone", + "description": "Custom Graph Sigma is a ComfyUI custom node that provides an interactive spline-based curve editor for visually creating and exporting custom sigma schedules. This is especially useful for controlling the noise schedule or custom step values in diffusion models and other workflows that use a sequence of values over time or steps." + }, + { + "author": "hybskgks28275", + "title": "ComfyUI-hybs-nodes", + "reference": "https://github.com/hybskgks28275/ComfyUI-hybs-nodes", + "files": [ + "https://github.com/hybskgks28275/ComfyUI-hybs-nodes" + ], + "install_type": "git-clone", + "description": "Various custom nodes will be added." + }, + { + "author": "mohsensd1373", + "title": "comfyui_wordpress", + "reference": "https://github.com/mohsensd1373/comfyui_wordpress", + "files": [ + "https://github.com/mohsensd1373/comfyui_wordpress" + ], + "install_type": "git-clone", + "description": "Upload image from comfyui to WordPress add your site setting in file wordpress_config.json" + }, + { + "author": "StableLlama", + "title": "Basic data handling", + "reference": "https://github.com/StableLlama/ComfyUI-basic_data_handling", + "files": [ + "https://github.com/StableLlama/ComfyUI-basic_data_handling" + ], + "install_type": "git-clone", + "description": "Basic Python functions for manipulating data that every programmer is used to. Currently supported: BOOLEAN, FLOAT, INT, STRING and data lists." + }, + { + "author": "charlyad142", + "title": "ComfyUI BFL API Pro Nodes", + "reference": "https://github.com/charlyad142/ComfyUI_bfl_api_pro_nodes", + "files": [ + "https://github.com/charlyad142/ComfyUI_bfl_api_pro_nodes" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI provides integration with the BFL (Black Forest Labs) API to enhance and optimize image processing. It allows the use of Flux Pro directly within ComfyUI, offering advanced image processing capabilities." + }, + { + "author": "ServiceStack", + "title": "ComfyUI Asset Downloader", + "id": "asset-downloader", + "reference": "https://github.com/ServiceStack/comfy-asset-downloader", + "files": [ + "https://github.com/ServiceStack/comfy-asset-downloader" + ], + "install_type": "git-clone", + "description": "This node allows downloading models and other resources used within a ComfyUI workflow making it easier to resolve referenced assets and share workflows" + }, + { + "author": "Njbx", + "title": "ComfyUI-LTX13B-Blockswap", + "reference": "https://github.com/Njbx/ComfyUI-LTX13B-Blockswap", + "files": [ + "https://github.com/Njbx/ComfyUI-LTX13B-Blockswap" + ], + "install_type": "git-clone", + "description": "ComfyUI-LTX13B-Blockswap This is a simple LTX block swap node for ComfyUI native nodes for 13B model, works by swapping upto 47 blocks to the CPU to reduce VRAM." + }, + { + "author": "IIs-fanta", + "title": "ComfyUI-FANTA-GameBox", + "reference": "https://github.com/IIs-fanta/ComfyUI-FANTA-GameBox", + "files": [ + "https://github.com/IIs-fanta/ComfyUI-FANTA-GameBox" + ], + "install_type": "git-clone", + "description": "Nodes for playing mini-games with ComfyUI." + }, + { + "author": "pixible", + "title": "comfyui-customselector", + "reference": "https://github.com/gasparuff/CustomSelector", + "files": [ + "https://github.com/gasparuff/CustomSelector" + ], + "install_type": "git-clone", + "description": "Helps deciding different settings depending on the input string" + }, + { + "author": "AIWarper", + "title": "NormalCrafterWrapper", + "id": "normal-crafter-wrapper", + "reference": "https://github.com/AIWarper/ComfyUI-NormalCrafterWrapper", + "files": [ + "https://github.com/AIWarper/ComfyUI-NormalCrafterWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI diffusers wrapper nodes for [a/NormalCrafter](https://github.com/Binyr/NormalCrafter)" + }, + { + "author": "AIWarper", + "title": "ComfyUI Warper Nodes", + "reference": "https://github.com/AIWarper/ComfyUI-WarperNodes", + "files": [ + "https://github.com/AIWarper/ComfyUI-WarperNodes" + ], + "install_type": "git-clone", + "description": "NODES: DWPose Scaler (Warper), Mouth Mask from Pose (Warper), Facial Part Mask from Pose (Warper), Smart Video Batcher (Warper), Get Batch By Index (Warper), Smart Overlapping Batcher (Warper), Flow Visualizer (Warper), Preprocess for Target (Warper), Crop and Restore (Warper), Aspect Ratio Resolution (Warper)" + }, + { + "author": "Goshe-nite", + "title": "GPS' Supplements for ComfyUI", + "id": "GPSupps", + "reference": "https://github.com/Goshe-nite/comfyui-gps-supplements", + "files": [ + "https://github.com/Goshe-nite/comfyui-gps-supplements" + ], + "install_type": "git-clone", + "description": "Nodes to make ComfyUI-Image-Saver and rgthree-comfy more compatible. Allowing Power Lora Loader node to be used with Image Saver node. Also adding nodes to extract Image Saver compatible strings to simplify workflows." + }, + { + "author": "fpgaminer", + "title": "JoyCaption Nodes", + "id": "comfyui-joycaption", + "reference": "https://github.com/fpgaminer/joycaption_comfyui", + "files": [ + "https://github.com/fpgaminer/joycaption_comfyui" + ], + "install_type": "git-clone", + "description": "Nodes for running the JoyCaption image captioner VLM." + }, + { + "author": "1hew", + "title": "ComfyUI 1hewNodes", + "id": "ComfyUI-1hewNodes", + "reference": "https://github.com/1hew/ComfyUI-1hewNodes", + "files": [ + "https://github.com/1hew/ComfyUI-1hewNodes" + ], + "install_type": "git-clone", + "description": "This is a custom node collection for ComfyUI that provides some utility nodes." + }, + { + "author": "cyberhirsch", + "title": "Seb Nodes", + "id": "seb_nodes", + "reference": "https://github.com/cyberhirsch/seb_nodes", + "files": [ + "https://github.com/cyberhirsch/seb_nodes" + ], + "install_type": "git-clone", + "description": "Save image node with dynamic paths and an 'Open Folder' button." + }, + { + "author": "Alastor 666 1933", + "title": "Caching to not Waste", + "id": "caching_to_not_waste", + "reference": "https://github.com/alastor-666-1933/caching_to_not_waste", + "files": [ + "https://github.com/alastor-666-1933/caching_to_not_waste" + ], + "install_type": "git-clone", + "description": "This node allows you to cache/caching/store and reuse resized images, ControlNet images, masks, and texts. It avoids repeating heavy operations by loading previously saved files — saving time, memory, and processing power in future executions." + }, + { + "author": "hayd-zju", + "title": "ICEdit-ComfyUI-official", + "reference": "https://github.com/hayd-zju/ICEdit-ComfyUI-official", + "files": [ + "https://github.com/hayd-zju/ICEdit-ComfyUI-official" + ], + "install_type": "git-clone", + "description": "This node pack provides the official ComfyUI workflow for ICEdit." + }, + { + "author": "SanDiegoDude", + "title": "ComfyUI-SaveAudioMP3", + "reference": "https://github.com/SanDiegoDude/ComfyUI-SaveAudioMP3", + "files": [ + "https://github.com/SanDiegoDude/ComfyUI-SaveAudioMP3" + ], + "install_type": "git-clone", + "description": "quick Comfy Node to convert input waveform audio to MP3" + }, + { + "author": "SanDiegoDude", + "title": "ComfyUI-DeepStereo", + "reference": "https://github.com/SanDiegoDude/ComfyUI-DeepStereo", + "files": [ + "https://github.com/SanDiegoDude/ComfyUI-DeepStereo" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for DeepStereo, an auto-autostereogram generator" + }, + { + "author": "SanDiegoDude", + "title": "ComfyUI-Kontext-API", + "reference": "https://github.com/SanDiegoDude/ComfyUI-Kontext-API", + "files": [ + "https://github.com/SanDiegoDude/ComfyUI-Kontext-API" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node for integrating with the Fal Kontext API for advanced image editing and generation." + }, + { + "author": "tavyra", + "title": "ComfyUI_Curves", + "reference": "https://github.com/tavyra/ComfyUI_Curves", + "files": [ + "https://github.com/tavyra/ComfyUI_Curves" + ], + "install_type": "git-clone", + "description": "Generate or draw FLOAT arrays within ComfyUI" + }, + { + "author": "krmahil", + "title": "Hollow Preserve", + "reference": "https://github.com/krmahil/comfyui-hollow-preserve", + "files": [ + "https://github.com/krmahil/comfyui-hollow-preserve" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that breaks closed loops in masks to prevent inpainting models from modifying enclosed regions" + }, + { + "author": "lihaoyun6", + "title": "ComfyUI-CSV-Random-Picker", + "reference": "https://github.com/lihaoyun6/ComfyUI-CSV-Random-Picker", + "files": [ + "https://github.com/lihaoyun6/ComfyUI-CSV-Random-Picker" + ], + "install_type": "git-clone", + "description": "String random picker for ComfyUI" + }, + { + "author": "lihaoyun6", + "title": "ComfyUI-BlindWatermark", + "reference": "https://github.com/lihaoyun6/ComfyUI-BlindWatermark", + "files": [ + "https://github.com/lihaoyun6/ComfyUI-BlindWatermark" + ], + "install_type": "git-clone", + "description": "Embeds an invisible watermark in the input image" + }, + { + "author": "lihaoyun6", + "title": "Comfyui-QwenPromptRewriter", + "reference": "https://github.com/lihaoyun6/ComfyUI-QwenPromptRewriter", + "files": [ + "https://github.com/lihaoyun6/ComfyUI-QwenPromptRewriter" + ], + "install_type": "git-clone", + "description": "Enhance your prompts using the Qwen LLM to align the behavior and capabilities of the Qwen-Image/Edit online version." + }, + { + "author": "northumber", + "title": "ComfyUI-northTools", + "reference": "https://github.com/northumber/ComfyUI-northTools", + "files": [ + "https://github.com/northumber/ComfyUI-northTools" + ], + "install_type": "git-clone", + "description": "Collection of nodes for ComfyUI for automation" + }, + { + "author": "neggo", + "title": "comfyui-sambanova", + "reference": "https://github.com/neggo/comfyui-sambanova", + "files": [ + "https://github.com/neggo/comfyui-sambanova" + ], + "install_type": "git-clone", + "description": "This node pack provides a Python node that uses the SambaNova API to send prompts to a chat AI model (e.g., DeepSeek-V3-0324) and retrieve responses, intended for integration into node-based workflows like ComfyUI." + }, + { + "author": "Sinphaltimus", + "title": "comfyui_fedcoms_node_pack", + "reference": "https://github.com/Sinphaltimus/comfyui_fedcoms_node_pack", + "files": [ + "https://github.com/Sinphaltimus/comfyui_fedcoms_node_pack" + ], + "install_type": "git-clone", + "description": "Several nodes that attempt to extract metadata and raw text information from Gen AI models." + }, + { + "author": "XchanBik", + "title": "ComfyUI_SimpleBridgeNode", + "reference": "https://github.com/XchanBik/ComfyUI_SimpleBridgeNode", + "files": [ + "https://github.com/XchanBik/ComfyUI_SimpleBridgeNode" + ], + "install_type": "git-clone", + "description": "This node can store a route with a chosen ID then load it anywhere in the workflow. Goal it to make linking less messy in my taste." + }, + { + "author": "wings6407", + "title": "ComfyUI_HBH-image_overlay", + "reference": "https://github.com/wings6407/ComfyUI_HBH-image_overlay", + "files": [ + "https://github.com/wings6407/ComfyUI_HBH-image_overlay" + ], + "install_type": "git-clone", + "description": "Use the point editor to perform image composition editing." + }, + { + "author": "monkeyWie", + "title": "ComfyUI-FormInput", + "reference": "https://github.com/monkeyWie/ComfyUI-FormInput", + "files": [ + "https://github.com/monkeyWie/ComfyUI-FormInput" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI provides a set of input elements to create forms or interact with your workflows." + }, + { + "author": "bollerdominik", + "title": "ComfyUI-load-lora-from-url", + "reference": "https://github.com/bollerdominik/ComfyUI-load-lora-from-url", + "files": [ + "https://github.com/bollerdominik/ComfyUI-load-lora-from-url" + ], + "install_type": "git-clone", + "description": "A simple node to load image from local path or http url." + }, + { + "author": "newtextdoc1111", + "title": "ComfyUI-Autocomplete-Plus", + "reference": "https://github.com/newtextdoc1111/ComfyUI-Autocomplete-Plus", + "files": [ + "https://github.com/newtextdoc1111/ComfyUI-Autocomplete-Plus" + ], + "install_type": "git-clone", + "description": "Autocomplete and Related Tag display for ComfyUI" + }, + { + "author": "otacoo", + "title": "Metadata-Extractor", + "reference": "https://github.com/otacoo/comfyui_otacoo", + "files": [ + "https://github.com/otacoo/comfyui_otacoo" + ], + "install_type": "git-clone", + "description": "Extract generation info from PNG and JPEG images, supports both A1111 and (some) ComfyUI metadata" + }, + { + "author": "vladpro3", + "title": "ComfyUI_BishaNodes", + "reference": "https://github.com/vladpro3/ComfyUI_BishaNodes", + "files": [ + "https://github.com/vladpro3/ComfyUI_BishaNodes" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI to improve promts and image settings" + }, + { + "author": "otacoo", + "title": "comfyui-holdup", + "reference": "https://github.com/usrname0/comfyui-holdup", + "files": [ + "https://github.com/usrname0/comfyui-holdup" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that waits for a GPU temp and/or a number of seconds." + }, + { + "author": "lerignoux", + "title": "ComfyUI-PechaKucha", + "reference": "https://github.com/lerignoux/ComfyUI-PechaKucha", + "files": [ + "https://github.com/lerignoux/ComfyUI-PechaKucha" + ], + "install_type": "git-clone", + "description": "Nodes to generate a pecha-kucha presentation in ComfyUI" + }, + { + "author": "lerignoux", + "title": "ComfyUI Stable3DGen", + "reference": "https://github.com/lerignoux/ComfyUI-Stable3DGen", + "files": [ + "https://github.com/lerignoux/ComfyUI-Stable3DGen" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node to generate 3D assets using [a/Stable3D](https://github.com/Stable-X/Stable3DGen)" + }, + { + "author": "GroxicTinch", + "title": "EasyUI", + "reference": "https://github.com/GroxicTinch/EasyUI-ComfyUI", + "files": [ + "https://github.com/GroxicTinch/EasyUI-ComfyUI" + ], + "install_type": "git-clone", + "description": "Allows making a mirror of options that are on a node, for use creating your own UI" + }, + { + "author": "Dontdrunk", + "title": "ComfyUI-DD-Nodes", + "id": "comfyui-dd-nodes", + "reference": "https://github.com/Dontdrunk/ComfyUI-DD-Nodes", + "files": [ + "https://github.com/Dontdrunk/ComfyUI-DD-Nodes" + ], + "install_type": "git-clone", + "description": "Provide powerful frontend and backend integration node packages for ComfyUI - this is an exceptionally robust integration extension." + }, + { + "author": "Dontdrunk", + "title": "ComfyUI-DD-Translation", + "id": "comfyui-dd-translation", + "reference": "https://github.com/Dontdrunk/ComfyUI-DD-Translation", + "files": [ + "https://github.com/Dontdrunk/ComfyUI-DD-Translation" + ], + "install_type": "git-clone", + "description": "A plugin offering supplementary Chinese translations for ComfyUI custom nodes." + }, + { + "author": "TrophiHunter", + "title": "Photography Nodes", + "id": "comfyui-photography-nodes", + "reference": "https://github.com/TrophiHunter/ComfyUI_Photography_Nodes", + "files": [ + "https://github.com/TrophiHunter/ComfyUI_Photography_Nodes" + ], + "install_type": "git-clone", + "description": "I wanted a way to batch add effects to images inside Comfyui so I made these nodes. Some of the effects should be ordered specifically so they stack and are effecting the image emulating camera effectsI made some workflows to show you the correct order." + }, + { + "author": "magic-eraser-org", + "title": "ComfyUI-Unwatermark", + "reference": "https://github.com/magic-eraser-org/ComfyUI-Unwatermark", + "files": [ + "https://github.com/magic-eraser-org/ComfyUI-Unwatermark" + ], + "install_type": "git-clone", + "description": "ComfyUI-Unwatermark: A ComfyUI custom node to intelligently remove watermarks from images using the unwatermark.ai API.\nThis custom node for ComfyUI allows you to easily remove watermarks from your images by leveraging the power of the unwatermark.ai API." + }, + { + "author": "Sayene", + "title": "comfyui-base64-to-image-size", + "reference": "https://github.com/Sayene/comfyui-base64-to-image-size", + "files": [ + "https://github.com/Sayene/comfyui-base64-to-image-size" + ], + "install_type": "git-clone", + "description": "Loads an image and its transparency mask from a base64-encoded data URI. This is useful for API connections as you can transfer data directly rather than specify a file location." + }, + { + "author": "xuhongming251", + "title": "ComfyUI-Jimeng", + "reference": "https://github.com/xuhongming251/ComfyUI-Jimeng", + "files": [ + "https://github.com/xuhongming251/ComfyUI-Jimeng" + ], + "install_type": "git-clone", + "description": "for use jimeng ai in comfyui" + }, + { + "author": "Kyron Mahan", + "title": "ComfyUI Smart Scaler", + "id": "smart-scaler", + "reference": "https://github.com/babydjac/comfyui-smart-scaler", + "files": [ + "https://github.com/babydjac/comfyui-smart-scaler" + ], + "install_type": "git-clone", + "description": "A package for intelligent image scaling, aspect ratio adjustments, metadata extraction, and video frame processing for Wan 2.1 vid2vid/img2vid workflows with Pony/SDXL models." + }, + { + "author": "purewater2011", + "title": "comfyui_color_detection", + "reference": "https://github.com/purewater2011/comfyui_color_detection", + "files": [ + "https://github.com/purewater2011/comfyui_color_detection" + ], + "install_type": "git-clone", + "description": "This plugin adds functionality to ComfyUI for detecting yellow tones in images, making it particularly useful for skin tone analysis and image color evaluation." + }, + { + "author": "San4itos", + "title": "Save Images to Video (FFmpeg) for ComfyUI", + "reference": "https://github.com/San4itos/ComfyUI-Save-Images-as-Video", + "files": [ + "https://github.com/San4itos/ComfyUI-Save-Images-as-Video" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI to save image sequences as video files using FFmpeg. Supports various codecs, audio muxing, and in-node previews." + }, + { + "author": "X-School-Academy", + "title": "X-FluxAgent", + "reference": "https://github.com/X-School-Academy/X-FluxAgent", + "files": [ + "https://github.com/X-School-Academy/X-FluxAgent" + ], + "install_type": "git-clone", + "description": "X-FluxAgent turns ComfyUI into a smart, AI-powered agent capable of building software, automating tasks, and even managing your daily workflows — all with natural language prompts, no coding experience needed." + }, + { + "author": "cluny85", + "title": "ComfyUI-Scripting-Tools", + "reference": "https://github.com/cluny85/ComfyUI-Scripting-Tools", + "files": [ + "https://github.com/cluny85/ComfyUI-Scripting-Tools" + ], + "install_type": "git-clone", + "description": "A set of utility nodes for ComfyUI focused on scripting. Includes an enhanced UUID generator node." + }, + { + "author": "LamEmil", + "title": "ComfyUI ASCII Art Nodes", + "reference": "https://github.com/LamEmil/ComfyUI_ASCIIArtNode", + "files": [ + "https://github.com/LamEmil/ComfyUI_ASCIIArtNode" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that enable the creation of various ASCII art effects, from static images to complex, colorized typing animations and video conversions." + }, + { + "author": "jqy-yo", + "title": "BBoxLowerMask2", + "reference": "https://github.com/jqy-yo/Comfyui-BBoxLowerMask2", + "files": [ + "https://github.com/jqy-yo/Comfyui-BBoxLowerMask2" + ], + "install_type": "git-clone", + "description": "Create a mask to slice the image at specific coordinates" + }, + { + "author": "ICAI Icelandic Center for Artificial Intelligence", + "title": "Sampler Scheduler Metrics Tester for ComfyUI", + "id": "SamplerSchedulerMetricsTester", + "reference": "https://github.com/IcelandicCenterArtificialIntelligence/ComfyUI-SamplerSchedulerMetricsTester", + "files": [ + "https://github.com/IcelandicCenterArtificialIntelligence/ComfyUI-SamplerSchedulerMetricsTester" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows you to test combinations of samplers and schedulers. It generates a batch of generated images(latents), as well as RGB images, each one annotated with the specific combination used, performance timing, and several image quality metrics (Laplacian Variance, Gradient Mean, FFT-based sharpness) for our internal usage, but kept as they could may be useful for others to." + }, + { + "author": "2frames.app", + "title": "AQnodes for ComfyUI", + "id": "AQnodes", + "reference": "https://github.com/2frames/ComfyUI-AQnodes", + "files": [ + "https://github.com/2frames/ComfyUI-AQnodes" + ], + "install_type": "git-clone", + "description": "Nodes for ComfyUI, mostly for llm calling and automatizing pulid multiface." + }, + { + "author": "BigWhiteFly", + "title": "ComfyUI-ImageConcat", + "reference": "https://github.com/BigWhiteFly/ComfyUI-ImageConcat", + "files": [ + "https://github.com/BigWhiteFly/ComfyUI-ImageConcat" + ], + "install_type": "git-clone", + "description": "concatenate all images in floders, concatenate caption txt files for trainning loras." + }, + { + "author": "Jannled", + "title": "OWL-ViT ComfyUI", + "reference": "https://github.com/Jannled/owl-vit-comfyui", + "files": [ + "https://github.com/Jannled/owl-vit-comfyui" + ], + "install_type": "git-clone", + "description": "ComfyUI Nodes for OWL-ViT / OWLv2 using the HuggingFace Transformers implementation" + }, + { + "author": "thedivergentai", + "title": "Divergent Nodes", + "reference": "https://github.com/thedivergentai/divergent_nodes", + "files": [ + "https://github.com/thedivergentai/divergent_nodes" + ], + "install_type": "git-clone", + "description": "This repository contains a collection of custom nodes for ComfyUI designed to integrate external AI models, provide utilities, and enable advanced workflows." + }, + { + "author": "skycoder", + "title": "Filename Tools", + "reference": "https://github.com/skycoder182/comfyui-filename-tools", + "files": [ + "https://github.com/skycoder182/comfyui-filename-tools" + ], + "install_type": "git-clone", + "description": "A utility node for extracting and trimming filenames from file paths" + }, + { + "author": "skycoder", + "title": "Skycoder Tools", + "reference": "https://github.com/skycoder182/comfyui-skycoder-tools", + "files": [ + "https://github.com/skycoder182/comfyui-skycoder-tools" + ], + "install_type": "git-clone", + "description": "A collection of useful custom nodes for ComfyUI workflows" + }, + { + "author": "craig-tanaka", + "title": "ComfyUI Anime Segmentation Nodes v1.1.0", + "reference": "https://github.com/craig-tanaka/comfyui_animeseg", + "files": [ + "https://github.com/craig-tanaka/comfyui_animeseg" + ], + "install_type": "git-clone", + "description": "This is a set of custom nodes for ComfyUI that provide anime-style image segmentation using efficient pre-trained models." + }, + { + "author": "lepiai", + "title": "ComfyUI-Minitools", + "reference": "https://github.com/lepiai/ComfyUI-Minitools", + "files": [ + "https://github.com/lepiai/ComfyUI-Minitools" + ], + "install_type": "git-clone", + "description": "ComfyUI Mini Toolkit – Helps reduce node redundancy. Let’s see if there’s time to keep it updated regularly." + }, + { + "author": "wildminder", + "title": "ComfyUI-KEEP", + "reference": "https://github.com/wildminder/ComfyUI-KEEP", + "files": [ + "https://github.com/wildminder/ComfyUI-KEEP" + ], + "install_type": "git-clone", + "description": "Kalman-Inspired Feature Propagation for Video Face Super-Resolution" + }, + { + "author": "wildminder", + "title": "ComfyUI-Chatterbox", + "reference": "https://github.com/wildminder/ComfyUI-Chatterbox", + "files": [ + "https://github.com/wildminder/ComfyUI-Chatterbox" + ], + "install_type": "git-clone", + "description": "ComfyUI Chatterbox TTS & Voice Conversion Node" + }, + { + "author": "wildminder", + "title": "ComfyUI-Optim", + "reference": "https://github.com/wildminder/000_ComfyUI-Optim", + "files": [ + "https://github.com/wildminder/000_ComfyUI-Optim" + ], + "install_type": "git-clone", + "description": "ComfyUI startup optimizer and patcher" + }, + { + "author": "wildminder", + "title": "ComfyUI-VibeVoice", + "reference": "https://github.com/wildminder/ComfyUI-VibeVoice", + "files": [ + "https://github.com/wildminder/ComfyUI-VibeVoice" + ], + "install_type": "git-clone", + "description": "VibeVoice TTS. Expressive, long-form, multi-speaker conversational audio" + }, + { + "author": "cloudkoala", + "title": "comfyui-koala", + "reference": "https://github.com/cloudkoala/comfyui-koala", + "files": [ + "https://github.com/cloudkoala/comfyui-koala" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI focused on aspect ratio management and other utilities." + }, + { + "author": "Limbicnation", + "title": "Depth Estimation Node", + "reference": "https://github.com/Limbicnation/ComfyUIDepthEstimation", + "files": [ + "https://github.com/Limbicnation/ComfyUIDepthEstimation" + ], + "install_type": "git-clone", + "description": "A robust custom depth estimation node for ComfyUI using Depth-Anything models. It integrates depth estimation with configurable post-processing options including blur, median filtering, contrast enhancement, and gamma correction." + }, + { + "author": "Limbicnation", + "title": "ComfyUI Face Detection Node", + "id": "comfyui-face-detection-node", + "reference": "https://github.com/Limbicnation/ComfyUI_FaceDetectionNode", + "files": [ + "https://github.com/Limbicnation/ComfyUI_FaceDetectionNode" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for face detection and cropping using OpenCV Haar cascades, with full ComfyUI v3 schema support and backward compatibility.", + "nodename_pattern": "FaceDetectionNode" + }, + { + "author": "Limbicnation", + "title": "Transparency Background Remover", + "reference": "https://github.com/Limbicnation/ComfyUI-TransparencyBackgroundRemover", + "files": [ + "https://github.com/Limbicnation/ComfyUI-TransparencyBackgroundRemover" + ], + "install_type": "git-clone", + "description": "Automatic background removal and transparency generation for ComfyUI" + }, + { + "author": "Limbicnation", + "title": "ComfyUI-RandomSeedGenerator", + "reference": "https://github.com/Limbicnation/ComfyUI-RandomSeedGenerator", + "files": [ + "https://github.com/Limbicnation/ComfyUI-RandomSeedGenerator" + ], + "install_type": "git-clone", + "description": "Advanced seed generator for ComfyUI with multiple modes, state persistence, and cross-library synchronization" + }, + { + "author": "hao-ai-lab", + "title": "ComfyUI-FastVideo", + "reference": "https://github.com/hao-ai-lab/FastVideo", + "files": [ + "https://github.com/hao-ai-lab/FastVideo" + ], + "install_type": "git-clone", + "description": "A custom node suite for ComfyUI that provides accelerated multi-GPU video generation using [a/FastVideo](https://github.com/hao-ai-lab/FastVideo)." + }, + { + "author": "TensorKaze", + "title": "ComfyUI-TkNodes", + "id": "ComfyUI-TkNodes", + "reference": "https://github.com/TensorKaze/ComfyUI-TkNodes", + "files": [ + "https://github.com/TensorKaze/ComfyUI-TkNodes" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI with advanced image scaling, latent manipulation, and Flux sampling" + }, + { + "author": "angree", + "title": "Q GLB Material Modifier", + "reference": "https://github.com/angree/ComfyUI-Q_GLB_Material_Modifier", + "files": [ + "https://github.com/angree/ComfyUI-Q_GLB_Material_Modifier" + ], + "install_type": "git-clone", + "description": "Enhance GLB 3D models with realistic materials, smart emissive elements, and procedural normal maps" + }, + { + "author": "angree", + "title": "Q Find Mask Size", + "reference": "https://github.com/angree/ComfyUI-Q_find-mask-size", + "files": [ + "https://github.com/angree/ComfyUI-Q_find-mask-size" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for finding and analyzing mask sizes in images" + }, + { + "author": "babe-and-spencer-enterprises", + "title": "ComfyUI Upload to BASE Node", + "reference": "https://github.com/babe-and-spencer-enterprises/base-comfyui-node", + "files": [ + "https://github.com/babe-and-spencer-enterprises/base-comfyui-node" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node that lets you upload generated images directly to your [a/BASE](https://getbase.app/) account — no manual downloads or re-uploads needed." + }, + { + "author": "R5-Revo", + "title": "Universal LLM Node for ComfyUI", + "reference": "https://github.com/R5-Revo/llm-node-comfyui", + "files": [ + "https://github.com/R5-Revo/llm-node-comfyui" + ], + "install_type": "git-clone", + "description": "UniversalLLMNode is a custom node for ComfyUI that provides a unified interface to use multiple major LLM APIs, including OpenAI, Anthropic (Claude), Google Gemini, Groq, and Mistral. It is ideal for tasks such as automatically generating high-quality SDXL prompts for image generation." + }, + { + "author": "jaimitoes", + "title": "ComfyUI_Wan2_1_lora_trainer", + "reference": "https://github.com/jaimitoes/ComfyUI_Wan2_1_lora_trainer", + "files": [ + "https://github.com/jaimitoes/ComfyUI_Wan2_1_lora_trainer" + ], + "install_type": "git-clone", + "description": "Musubi Tuner by kohya_ss" + }, + { + "author": "karthikg-09", + "title": "ComfyUI-Vton-Mask", + "reference": "https://github.com/karthikg-09/ComfyUI-Vton-Mask", + "files": [ + "https://github.com/karthikg-09/ComfyUI-Vton-Mask" + ], + "install_type": "git-clone", + "description": "A lightweight ComfyUI custom node for generating high-quality masks and pose detection for virtual try-on applications. This node extracts only the essential masking functionality from FitDiT without requiring heavy diffusion models." + }, + { + "author": "kiko9", + "title": "ComfyUI_PromptManager", + "reference": "https://github.com/ComfyAssets/ComfyUI_PromptManager", + "files": [ + "https://github.com/ComfyAssets/ComfyUI_PromptManager" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI custom node that extends the standard text encoder with persistent prompt storage, advanced search capabilities, and an automatic image gallery system using SQLite." + }, + { + "author": "kiko9", + "title": "ComfyUI_Selectors", + "reference": "https://github.com/ComfyAssets/ComfyUI_Selectors", + "files": [ + "https://github.com/ComfyAssets/ComfyUI_Selectors" + ], + "install_type": "git-clone", + "description": "A modern ComfyUI custom node package that provides essential UI controls for image generation workflows. These nodes allow you to centralize commonly shared parameters (scheduler, sampler, dimensions, seeds) and link them to multiple nodes in your workflow, eliminating redundancy while maintaining JSON metadata compatibility." + }, + { + "author": "kiko9", + "title": "ComfyUI-KikoTools", + "reference": "https://github.com/ComfyAssets/ComfyUI-KikoTools", + "files": [ + "https://github.com/ComfyAssets/ComfyUI-KikoTools" + ], + "install_type": "git-clone", + "description": "ComfyUI-KikoTools provides carefully crafted, production-ready nodes grouped under the 'ComfyAssets' category. Each tool is designed with clean interfaces, comprehensive testing, and optimized performance for SDXL and FLUX workflows." + }, + { + "author": "kiko9", + "title": "ComfyUI-KikoStats", + "reference": "https://github.com/ComfyAssets/ComfyUI-KikoStats", + "files": [ + "https://github.com/ComfyAssets/ComfyUI-KikoStats" + ], + "install_type": "git-clone", + "description": "Real-time monitoring and statistics for ComfyUI" + }, + { + "author": "TFL-TFL", + "title": "ComfyUI_Text_Translation", + "reference": "https://github.com/TFL-TFL/ComfyUI_Text_Translation", + "files": [ + "https://github.com/TFL-TFL/ComfyUI_Text_Translation" + ], + "install_type": "git-clone", + "description": "Text translation node for ComfyUI: No need to apply for a translation API key, just use it. Currently supports more than thirty translation platforms." + }, + { + "author": "Charonartist", + "title": "ComfyUI Auto LoRA", + "reference": "https://github.com/Charonartist/comfyui-auto-lora-v2", + "files": [ + "https://github.com/Charonartist/comfyui-auto-lora-v2" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI custom node that automatically detects trigger words from text prompts and applies the corresponding LoRA models." + }, + { + "author": "Charonartist", + "title": "ComfyUI Smart Resize Node", + "reference": "https://github.com/Charonartist/comfyui-smart-resize-node", + "files": [ + "https://github.com/Charonartist/comfyui-smart-resize-node" + ], + "install_type": "git-clone", + "description": "Smart resize node for ComfyUI that handles portrait/landscape images with short/long side specification" + }, + { + "author": "Charonartist", + "title": "ComfyUI Tag Remover", + "reference": "https://github.com/Charonartist/comfyui-tag-remover", + "files": [ + "https://github.com/Charonartist/comfyui-tag-remover" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for removing specified tags and their content from text" + }, + { + "author": "Charonartist", + "title": "comfyui-last-frame-extractor", + "reference": "https://github.com/Charonartist/comfyui-last-frame-extractor", + "files": [ + "https://github.com/Charonartist/comfyui-last-frame-extractor" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI custom node that extracts the last frame (image) from an input image batch. It is particularly useful when you want to obtain the final scene or frame in a video generation workflow." + }, + { + "author": "ptmaster", + "title": "ComfyUI-Load-Diffusion-Model-to-Muti-GPUs", + "reference": "https://github.com/ptmaster/ComfyUI-Load-Diffusion-Model-to-Muti-GPUs", + "files": [ + "https://github.com/ptmaster/ComfyUI-Load-Diffusion-Model-to-Muti-GPUs/raw/refs/heads/main/Load%20Diffusion%20Model%20into%20Muti%20GPUs.py" + ], + "install_type": "copy", + "description": "NODES: OverrideLoadedDiffusionDevice.\nI happen to have two graphics cards, and I want to load models into another graphics card in Comfyui, so I designed this small node." + }, + { + "author": "ptmaster", + "title": "ComfyUI-audio-speed", + "reference": "https://github.com/ptmaster/comfyui-audio-speed", + "files": [ + "https://github.com/ptmaster/comfyui-audio-speed" + ], + "install_type": "git-clone", + "description": "This node pack is designed to adjust audio playback speed within ComfyUI, particularly to sync audio with models like FantasyTalking (WAN) that require specific frame rates. It can also be used for general-purpose audio speed control." + }, + { + "author": "ptmaster", + "title": "Comfyui-PT-Keyframe-Camera", + "reference": "https://github.com/ptmaster/Comfyui-PT-Keyframe-Camera", + "files": [ + "https://github.com/ptmaster/Comfyui-PT-Keyframe-Camera" + ], + "install_type": "git-clone", + "description": "The Comfyui-PT-Keyframe-Camera is a powerful tool designed to streamline the process of creating animations with keyframe cameras. It integrates seamlessly with existing workflows, allowing you to focus on your creativity without getting bogged down by technical details. This tool is perfect for animators, filmmakers, and anyone looking to add depth to their projects." + }, + { + "author": "doubletwisted", + "title": "ComfyUI Deadline Submission", + "reference": "https://github.com/doubletwisted/ComfyUI-Deadline-Plugin", + "files": [ + "https://github.com/doubletwisted/ComfyUI-Deadline-Plugin" + ], + "install_type": "git-clone", + "description": "ComfyUI plugin for submitting workflows to Thinkbox Deadline for distributed rendering. Enables render farm distribution with configurable job settings, batch processing, and automatic seed variation.", + "nodename_pattern": "DeadlineSubmitNode" + }, + { + "author": "openvino-dev-samples", + "title": "ComfyUI-OpenVINO", + "id": "comfyui-openvino", + "reference": "https://github.com/openvino-dev-samples/comfyui_openvino", + "files": [ + "https://github.com/openvino-dev-samples/comfyui_openvino" + ], + "install_type": "git-clone", + "description": "OpenVINO node is designed for optimizing the performance of model inference in ComfyUI by leveraging Intel OpenVINO toolkits. It can support running model on Intel CPU, GPU and NPU device." + }, + { + "author": "coiichan", + "title": "ComfyUI-Depth-Visualization-advanced", + "reference": "https://github.com/CoiiChan/ComfyUI-Depth-Visualization-Advanced", + "files": [ + "https://github.com/CoiiChan/ComfyUI-Depth-Visualization-Advanced" + ], + "install_type": "git-clone", + "description": "Works with any Depth Map and visualizes the applied version it inside ComfyUI." + }, + { + "author": "coiichan", + "title": "comfyui-every-person-seg-coii", + "reference": "https://github.com/CoiiChan/comfyui-every-person-seg-coii", + "reference2": "https://github.com/CoiiChan/ComfyUI-Every-Person-Seg-CoiiNode", + "files": [ + "https://github.com/CoiiChan/comfyui-every-person-seg-coii" + ], + "install_type": "git-clone", + "description": "A masking tool that provides the ability to break down the detailed contours of characters one by one for multi person use scenarios" + }, + { + "author": "coiichan", + "title": "ComfyUI-FuncAsTexture-CoiiNode", + "reference": "https://github.com/CoiiChan/ComfyUI-FuncAsTexture-CoiiNode", + "files": [ + "https://github.com/CoiiChan/ComfyUI-FuncAsTexture-CoiiNode" + ], + "install_type": "git-clone", + "description": "This allows for mathematical operations on input images and precise manipulation of channels through NumPy formulas, making it suitable for ComfyUI users with programming experience." + }, + { + "author": "coulterj", + "title": "ComfyUI SVG Visual Normalize & Margin Node", + "reference": "https://github.com/coulterj/comfyui-svg-visual-normalize", + "files": [ + "https://github.com/coulterj/comfyui-svg-visual-normalize" + ], + "install_type": "git-clone", + "description": "This ComfyUI custom node processes SVG (Scalable Vector Graphics) images to ensure the artwork consistently fills its canvas, is visually centered, and optionally has a margin applied. It's designed to provide more accurate results for complex vector graphics, such as those generated by vector tracing tools, where simple geometric bounding boxes may not align with perceived visual extents." + }, + { + "author": "papcorns", + "title": "ComfyUI Load Image From URL", + "reference": "https://github.com/papcorns/ComfyUI-Papcorns-Node-LoadImageFromUrl", + "files": [ + "https://github.com/papcorns/ComfyUI-Papcorns-Node-LoadImageFromUrl" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that allows you to load images directly from URLs or local file paths. This node provides a convenient way to import images into your ComfyUI workflows without manually downloading them first." + }, + { + "author": "papcorns", + "title": "Papcorns ComfyUI Custom Nodes", + "reference": "https://github.com/papcorns/Papcorns-Comfyui-Custom-Nodes", + "files": [ + "https://github.com/papcorns/Papcorns-Comfyui-Custom-Nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that enhances image processing and cloud storage capabilities." + }, + { + "author": "gabe-init", + "title": "ComfyUI OpenRouter Node", + "reference": "https://github.com/gabe-init/ComfyUI-Openrouter_node", + "files": [ + "https://github.com/gabe-init/ComfyUI-Openrouter_node" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that allows you to interact with OpenRouter's chat/completion API, providing access to a wide range of LLM models including GPT-4, Claude, Llama, Mistral, and more." + }, + { + "author": "gabe-init", + "title": "ComfyUI-11labs", + "reference": "https://github.com/gabe-init/ComfyUI-11labs", + "files": [ + "https://github.com/gabe-init/ComfyUI-11labs" + ], + "install_type": "git-clone", + "description": "ComfyUI ElevenLabs TTS Node - Text-to-speech integration with advanced voice controls" + }, + { + "author": "gabe-init", + "title": "ComfyUI-Google-Image-Search", + "reference": "https://github.com/gabe-init/ComfyUI-Google-Image-Search", + "files": [ + "https://github.com/gabe-init/ComfyUI-Google-Image-Search" + ], + "install_type": "git-clone", + "description": "ComfyUI Google Image Search Node - Search and retrieve images from Google" + }, + { + "author": "gabe-init", + "title": "ComfyUI-String-Similarity", + "reference": "https://github.com/gabe-init/ComfyUI-String-Similarity", + "files": [ + "https://github.com/gabe-init/ComfyUI-String-Similarity" + ], + "install_type": "git-clone", + "description": "ComfyUI String Similarity Node - Advanced text comparison with multiple algorithms" + }, + { + "author": "GACLove", + "title": "ComfyUI-Lightx2vWrapper", + "reference": "https://github.com/GACLove/ComfyUI-Lightx2vWrapper", + "files": [ + "https://github.com/GACLove/ComfyUI-Lightx2vWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI-Lightx2vWrapper is an inference wrapper for Lightx2v designed for use with ComfyUI." + }, + { + "author": "GACLove", + "title": "ComfyUI-VFI", + "reference": "https://github.com/GACLove/ComfyUI-VFI", + "files": [ + "https://github.com/GACLove/ComfyUI-VFI" + ], + "install_type": "git-clone", + "description": "ComfyUI-RIFE is an inference wrapper for RIFE designed for use with ComfyUI." + }, + { + "author": "Yahweasel", + "title": "ComfyUI-MinDalle", + "reference": "https://github.com/Yahweasel/ComfyUI-MinDalle", + "files": [ + "https://github.com/Yahweasel/ComfyUI-MinDalle" + ], + "install_type": "git-clone", + "description": "This is a quick-and-filthy wrapper of [a/min-dalle](https://github.com/kuprel/min-dalle) for ComfyUI. min-dalle downloads and loads the actual model itself, making for a very simple, but very non-idiomatic, ComfyUI node." + }, + { + "author": "AIToldMeTo", + "title": "ComfyUI Cache Cleaner Node", + "reference": "https://github.com/AIToldMeTo/comfyui-cache-cleaner", + "files": [ + "https://github.com/AIToldMeTo/comfyui-cache-cleaner" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that provides the ability to clear the cache directly from your workflow." + }, + { + "author": "SamTyurenkov", + "title": "comfyui_chatgpt", + "reference": "https://github.com/SamTyurenkov/comfyui_chatgpt", + "files": [ + "https://github.com/SamTyurenkov/comfyui_chatgpt" + ], + "install_type": "git-clone", + "description": "Chat GPT Image Generation Chat Node for Comfy UI" + }, + { + "author": "SamTyurenkov", + "title": "comfyui_vace_preprocessors", + "reference": "https://github.com/SamTyurenkov/comfyui-vace-preprocessors", + "files": [ + "https://github.com/SamTyurenkov/comfyui-vace-preprocessors" + ], + "install_type": "git-clone", + "description": "Some nodes to create a preprocessed videos" + }, + { + "author": "orion4d", + "title": "ComfyUI-Image-Effects", + "reference": "https://github.com/orion4d/ComfyUI-Image-Effects", + "files": [ + "https://github.com/orion4d/ComfyUI-Image-Effects" + ], + "install_type": "git-clone", + "description": "Complete collection of image effects for ComfyUI - 32 nodes across 6 categories" + }, + { + "author": "orion4d", + "title": "ComfyUI PDF Nodes", + "reference": "https://github.com/orion4d/ComfyUI_pdf_nodes", + "files": [ + "https://github.com/orion4d/ComfyUI_pdf_nodes" + ], + "install_type": "git-clone", + "description": "This repository contains a set of custom nodes for ComfyUI that allow you to load, manipulate, extract information from, and preview PDF files directly within your workflows." + }, + { + "author": "orion4d", + "title": "ComfyUI Illusion & Pattern Nodes", + "reference": "https://github.com/orion4d/illusion_node", + "files": [ + "https://github.com/orion4d/illusion_node" + ], + "install_type": "git-clone", + "description": "This repository contains a collection of custom nodes for ComfyUI, designed for generating various patterns, optical illusions, and performing related image manipulations. All nodes are categorized under 'illusion' in the ComfyUI menu." + }, + { + "author": "orion4d", + "title": "ComfyUI_extract_imag", + "reference": "https://github.com/orion4d/ComfyUI_extract_imag", + "files": [ + "https://github.com/orion4d/ComfyUI_extract_imag" + ], + "install_type": "git-clone", + "description": "This ComfyUI node allows you to extract all images found in various types of documents and save them to disk. It also provides a preview of the first extracted image." + }, + { + "author": "orion4d", + "title": "CalculatorPro - Node Suite for ComfyUI", + "reference": "https://github.com/orion4d/Calculator_Pro", + "files": [ + "https://github.com/orion4d/Calculator_Pro" + ], + "install_type": "git-clone", + "description": "utilitaires pour ComfyUI, conçue pour effectuer des calculs et des conversions" + }, + { + "author": "orion4d", + "title": "ComfyUI Colormaster Nodes", + "reference": "https://github.com/orion4d/ComfyUI_colormaster", + "files": [ + "https://github.com/orion4d/ComfyUI_colormaster" + ], + "install_type": "git-clone", + "description": "This project offers a collection of custom nodes for ComfyUI, dedicated to creating hexadecimal color palettes" + }, + { + "author": "orion4d", + "title": "Display Image with Mask for ComfyUI", + "reference": "https://github.com/orion4d/ComfyUI_image-display", + "files": [ + "https://github.com/orion4d/ComfyUI_image-display" + ], + "install_type": "git-clone", + "description": "This repository contains a versatile custom node for ComfyUI, Display Image with Mask, designed to offer advanced image viewing, masking, and saving capabilities directly within your workflow." + }, + { + "author": "orion4d", + "title": "ComfyUI_DAO_master", + "reference": "https://github.com/orion4d/ComfyUI_DAO_master", + "files": [ + "https://github.com/orion4d/ComfyUI_DAO_master" + ], + "install_type": "git-clone", + "description": "ComfyUI_DAO_master is a collection of custom nodes for ComfyUI. These nodes provide additional tools for image creation, manipulation, and visual experimentation, with a focus on vector workflows (DXF & SVG) and production utilities." + }, + { + "author": "aiaiaikkk", + "title": "ComfyUI-Curve", + "reference": "https://github.com/aiaiaikkk/ComfyUI-Curve", + "files": [ + "https://github.com/aiaiaikkk/ComfyUI-Curve" + ], + "install_type": "git-clone", + "description": "Professional image adjustment tools for ComfyUI - Curves, Levels, HSL, and Camera Raw adjustments with real-time preview" + }, + { + "author": "aiaiaikkk", + "title": "super-prompt-canvas", + "reference": "https://github.com/aiaiaikkk/super-prompt-canvas", + "files": [ + "https://github.com/aiaiaikkk/super-prompt-canvas" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for image editing prompt generation with visual canvas annotation and multi-model AI assistance" + }, + { + "author": "aiaiaikkk", + "title": "ComfyUI API Image Edit", + "reference": "https://github.com/aiaiaikkk/comfyui-api-image-edit", + "files": [ + "https://github.com/aiaiaikkk/comfyui-api-image-edit" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI custom node for API-based image editing with multiple provider support" + }, + { + "author": "lxe", + "title": "ComfyUI OpenAI Compatible LLM Node", + "reference": "https://github.com/lxe/ComfyUI-OpenAI-Compat-LLM-Node", + "files": [ + "https://github.com/lxe/ComfyUI-OpenAI-Compat-LLM-Node" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that provides integration with OpenAI-compatible Large Language Model APIs, including OpenAI, local models, and other compatible endpoints. Supports both text-only and multimodal (text + image) interactions." + }, + { + "author": "narusas", + "title": "ComfyUI Logic Support", + "reference": "https://github.com/narusas/Comfyui-Logic-Support", + "files": [ + "https://github.com/narusas/Comfyui-Logic-Support" + ], + "install_type": "git-clone", + "description": "A collection of logic and utility nodes for ComfyUI to enhance workflow capabilities." + }, + { + "author": "xhiroga", + "title": "ComfyUI-FramePackWrapper_PlusOne", + "id": "comfyui-framepackwrapper-plusone", + "reference": "https://github.com/xhiroga/ComfyUI-FramePackWrapper_PlusOne", + "files": [ + "https://github.com/xhiroga/ComfyUI-FramePackWrapper_PlusOne" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for FramePack, supporting 1-frame inferences." + }, + { + "author": "babydjac", + "title": "ComfyUI Grok Prompts", + "id": "comfyui-grok-prompts", + "reference": "https://github.com/babydjac/comfyui-grok-prompts", + "files": [ + "https://github.com/babydjac/comfyui-grok-prompts" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI nodes for generating prompts using Grok AI, enhancing prompt creation for text-to-image workflows." + }, + { + "author": "LingSss9", + "title": "comfyui-merge", + "id": "comfyui-merge", + "reference": "https://github.com/LingSss9/comfyui-merge", + "files": [ + "https://github.com/LingSss9/comfyui-merge" + ], + "install_type": "git-clone", + "description": "Merge up to 4 LoRA models with balanced, order-independent logic. Inspired by WebUI SuperMerger." + }, + { + "author": "p1atdev", + "title": "comfyui-timm-backbone", + "reference": "https://github.com/p1atdev/comfyui-timm-backbone", + "files": [ + "https://github.com/p1atdev/comfyui-timm-backbone" + ], + "install_type": "git-clone", + "description": "ComfyUI Timm Backbone Nodes is a custom node set that enables you to load and use pre-trained models from the [a/timm](https://github.com/huggingface/pytorch-image-models) library within ComfyUI workflows." + }, + { + "author": "p1atdev", + "title": "TKG-DM (Training-free Chroma Key Content Generation Diffusion Model) for ComfyUI", + "reference": "https://github.com/p1atdev/comfyui-tkg-chroma-key", + "files": [ + "https://github.com/p1atdev/comfyui-tkg-chroma-key" + ], + "install_type": "git-clone", + "description": "This repository provides an unofficial ComfyUI custom node implementation of the paper TKG-DM: Training-free Chroma Key Content Generation Diffusion Model." + }, + { + "author": "Zch6111", + "title": "AI_Text_Comfyui", + "reference": "https://github.com/Zch6111/AI_Text_Comfyui", + "files": [ + "https://github.com/Zch6111/AI_Text_Comfyui" + ], + "install_type": "git-clone", + "description": "AI_Text_Comfyui is a custom node for ComfyUI that connects to the OpenAI Chat API and automatically generates creative text prompts for AI workflows. This simplified version removes external dependencies like dotenv, requiring the OpenAI key to be set using a system environment variable." + }, + { + "author": "mrcuddle", + "title": "Underage Filter", + "reference": "https://github.com/T-Ph525/ComfyUI-Underage-Filter", + "files": [ + "https://github.com/T-Ph525/ComfyUI-Underage-Filter" + ], + "install_type": "git-clone", + "description": "An implementation to detect underage subjects in images for ComfyUI." + }, + { + "author": "ToTheBeginning", + "title": "DreamO Comfyui", + "reference": "https://github.com/ToTheBeginning/ComfyUI-DreamO", + "files": [ + "https://github.com/ToTheBeginning/ComfyUI-DreamO" + ], + "install_type": "git-clone", + "description": "[a/DreamO](https://github.com/bytedance/DreamO) ComfyUI native implementation." + }, + { + "author": "XWAVEart", + "title": "ComfyUI XWAVE Nodes", + "reference": "https://github.com/XWAVEart/comfyui-xwave-xlitch-nodes", + "files": [ + "https://github.com/XWAVEart/comfyui-xwave-xlitch-nodes" + ], + "install_type": "git-clone", + "description": "A collection of artistic glitch and image manipulation nodes for ComfyUI, featuring advanced noise effects, color manipulations, distortions, and more." + }, + { + "author": "vivi-gomez", + "title": "ComfyUI Fix Node Translate", + "reference": "https://github.com/vivi-gomez/ComfyUI-fixnodetranslate", + "files": [ + "https://github.com/vivi-gomez/ComfyUI-fixnodetranslate" + ], + "install_type": "git-clone", + "description": "Addon for ComfyUI that adds 'Fix node (recreate + keep inputs)' context menu option" + }, + { + "author": "Pigidiy", + "title": "ComfyUI-LikeSpiderAI-SaveMP3", + "id": "likeSpiderMP3", + "reference": "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-SaveMP3", + "files": [ + "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-SaveMP3" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node that saves input AUDIO as .mp3 using ffmpeg." + }, + { + "author": "violet0927", + "title": "Hugging Face LoRA Uploader", + "reference": "https://github.com/violet0927/ComfyUI-HuggingFaceLoraUploader", + "id": "comfyui_huggingfacelorauploader", + "files": [ + "https://github.com/violet0927/ComfyUI-HuggingFaceLoraUploader" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node to upload LoRA models to Hugging Face Hub." + }, + { + "author": "violet0927", + "title": "ComfyUI OmniConsistency Nodes", + "reference": "https://github.com/lc03lc/Comfyui_OmniConsistency", + "files": [ + "https://github.com/lc03lc/Comfyui_OmniConsistency" + ], + "install_type": "git-clone", + "description": "ComfyUI OmniConsistency Nodes is a collection of nodes for ComfyUI that allows you to load and use OmniConsistency models." + }, + { + "author": "bikiam", + "title": "ComfyUI_WhisperSRT", + "reference": "https://github.com/bikiam/ComfyUI_WhisperSRT", + "files": [ + "https://github.com/bikiam/ComfyUI_WhisperSRT" + ], + "install_type": "git-clone", + "description": "This is custom node for audio transcribe with SRT." + }, + { + "author": "thalismind", + "title": "ComfyUI Blend Image Nodes", + "reference": "https://github.com/thalismind/ComfyUI-Blend-Nodes", + "files": [ + "https://github.com/thalismind/ComfyUI-Blend-Nodes" + ], + "install_type": "git-clone", + "description": "This repository contains a ComfyUI node for blending images using various blending modes. Can be used to watermark images, create overlays, or apply effects to images in a ComfyUI workflow." + }, + { + "author": "thalismind", + "title": "ComfyUI LoadImageWithFilename", + "reference": "https://github.com/thalismind/ComfyUI-LoadImageWithFilename", + "files": [ + "https://github.com/thalismind/ComfyUI-LoadImageWithFilename" + ], + "install_type": "git-clone", + "description": "This custom node extends ComfyUI's image loading functionality with filename output and folder loading capabilities." + }, + { + "author": "boricuapab", + "title": "ComfyUI-Bori-JsonSetGetConverter", + "reference": "https://github.com/boricuapab/ComfyUI-Bori-JsonSetGetConverter", + "files": [ + "https://github.com/boricuapab/ComfyUI-Bori-JsonSetGetConverter" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that takes in a file path full of json's and finds the mape variable nodes in them and converts them to the kjnode set and get nodes." + }, + { + "author": "boricuapab", + "title": "ComfyUI-Bori-QwenImageResolutions", + "reference": "https://github.com/boricuapab/ComfyUI-Bori-QwenImageResolutions", + "files": [ + "https://github.com/boricuapab/ComfyUI-Bori-QwenImageResolutions" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that provides the user with a dropdown which contains the recommended resolutions for the Qwen Image Model." + }, + { + "author": "avocadori", + "title": "ComfyUI-load-image-prompt-lora", + "reference": "https://github.com/avocadori/ComfyUI-load-image-prompt-lora", + "files": [ + "https://github.com/avocadori/ComfyUI-load-image-prompt-lora" + ], + "install_type": "git-clone", + "description": "NODES: YAML Image Cycler (Full), YAML Image Cycler (Simple), YAML LoRA Extractor, YAML LoRA Loader, YAML LoRA Selector" + }, + { + "author": "Chrisvenator", + "title": "painting-by-colors-generator", + "reference": "https://github.com/Chrisvenator/ComfyUI-Painting-by-colors-generator", + "files": [ + "https://github.com/Chrisvenator/ComfyUI-Painting-by-colors-generator" + ], + "install_type": "git-clone", + "description": "Create a painting by colors image from an image" + }, + { + "author": "tetsuoo-online", + "title": "comfyui-too-xmp-metadata", + "reference": "https://github.com/tetsuoo-online/comfyui-too-xmp-metadata", + "files": [ + "https://github.com/tetsuoo-online/comfyui-too-xmp-metadata" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI that allow you to read and write XMP metadata to images" + }, + { + "author": "e-tier-newbie", + "title": "ComfyUI-E-Tier-TextSaver", + "id": "e-tier-text-saver", + "reference": "https://github.com/e-tier-newbie/ComfyUI-E-Tier-TextSaver", + "files": [ + "https://github.com/e-tier-newbie/ComfyUI-E-Tier-TextSaver" + ], + "install_type": "git-clone", + "description": "A node for saving cleaned text outputs, useful for LoRA training. Removes unwanted tokens like and saves to .txt." + }, + { + "author": "MDMAchine", + "title": "MD Nodes", + "id": "comfyuimdnodes", + "reference": "https://github.com/MDMAchine/ComfyUI_MD_Nodes", + "files": [ + "https://github.com/MDMAchine/ComfyUI_MD_Nodes" + ], + "install_type": "git-clone", + "description": "A wild collection of custom nodes for ComfyUI including noise schedulers, samplers, audio preview, latent visualizers, and more — built for maximal creative chaos." + }, + { + "author": "shiertier", + "title": "ComfyUI-TeaCache-Lumina", + "reference": "https://github.com/shiertier/ComfyUI-TeaCache-lumina2", + "files": [ + "https://github.com/shiertier/ComfyUI-TeaCache-lumina2" + ], + "install_type": "git-clone", + "description": "ComfyUI Node Implementation: TeaCache Acceleration Specifically Designed for the Lumina Model" + }, + { + "author": "sjh00", + "title": "ComfyUI LoadImageWithInfo", + "reference": "https://github.com/sjh00/ComfyUI-LoadImageWithInfo", + "files": [ + "https://github.com/sjh00/ComfyUI-LoadImageWithInfo" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that retrieves detailed information about an image, including its name, format (extension), DPI, dimensions, long side, short side, file size, and EXIF data. It also supports image saving " + }, + { + "author": "sm079", + "title": "ComfyUI-Face-Detection", + "reference": "https://github.com/sm079/ComfyUI-Face-Detection", + "files": [ + "https://github.com/sm079/ComfyUI-Face-Detection" + ], + "install_type": "git-clone", + "description": "face detection nodes for comfyui" + }, + { + "author": "r-vage", + "title": "ComfyUI-RvTools_v2", + "reference": "https://github.com/r-vage/ComfyUI-RvTools_v2", + "files": [ + "https://github.com/r-vage/ComfyUI-RvTools_v2" + ], + "install_type": "git-clone", + "description": "this node contains a lot of small little helpers like switches, passers and selectors that i use a lot to build my workflows." + }, + { + "author": "Aljnk", + "title": "ComfyUI-JNK-Tiny-Nodes", + "reference": "https://github.com/Aljnk/ComfyUI-JNK-Tiny-Nodes", + "files": [ + "https://github.com/Aljnk/ComfyUI-JNK-Tiny-Nodes" + ], + "install_type": "git-clone", + "description": "A collection of useful custom nodes for ComfyUI - image processing, text manipulation, and workflow automation." + }, + { + "author": "Santodan", + "title": "Santodan Random LoRA Node", + "reference": "https://github.com/Santodan/santodan-custom-nodes-comfyui", + "files": [ + "https://github.com/Santodan/santodan-custom-nodes-comfyui" + ], + "install_type": "git-clone", + "description": "Randomizes selected LoRAs and strengths. Includes trigger word output and support for exclusive/random selection." + }, + { + "author": "zccrs", + "title": "ComfyUI DCI", + "reference": "https://github.com/zccrs/comfyui-dci", + "files": [ + "https://github.com/zccrs/comfyui-dci" + ], + "install_type": "git-clone", + "description": "A comprehensive ComfyUI extension for creating, previewing, and analyzing DCI (DSG Combined Icons) format files. This extension fully implements the DCI specification, supporting multi-state icons, multiple color tones, scaling factors, and advanced metadata analysis." + }, + { + "author": "s9roll7", + "title": "Comfyui CoTracker Node", + "reference": "https://github.com/s9roll7/comfyui_cotracker_node", + "files": [ + "https://github.com/s9roll7/comfyui_cotracker_node" + ], + "install_type": "git-clone", + "description": "This is a node that outputs tracking results of a grid or specified points using CoTracker. It can be directly connected to the WanVideo ATI Tracks Node." + }, + { + "author": "set-soft", + "title": "Audio Batch", + "reference": "https://github.com/set-soft/ComfyUI-AudioBatch", + "files": [ + "https://github.com/set-soft/ComfyUI-AudioBatch" + ], + "install_type": "git-clone", + "description": "Audio batch creation, extraction, information, resample, mono and stereo conversion.\nAlso cut, concatenate, blend (mix) and de/normalize. Join/split channels (stereo).\nSignal generator (`sine`, `square`, `sawtooth`, `triangle`, `sweep`, `noise`).\nMusical note to frequency.\nAudio downloader for quick workflows which downloads its example data." + }, + { + "author": "set-soft", + "title": "Image Misc", + "reference": "https://github.com/set-soft/ComfyUI-ImageMisc", + "files": [ + "https://github.com/set-soft/ComfyUI-ImageMisc" + ], + "install_type": "git-clone", + "description": "Miscellaneous nodes for image manipulation.\nCurrently just download image with bypass, so you can create workflows including image examples.\nNo extra dependencies, just an internal module." + }, + { + "author": "pictorialink", + "title": "ComfyUI-Text-Translation", + "reference": "https://github.com/pictorialink/ComfyUI-Text-Translation", + "files": [ + "https://github.com/pictorialink/ComfyUI-Text-Translation" + ], + "install_type": "git-clone", + "description": "This node uses the Translators library for translation." + }, + { + "author": "pictorialink", + "title": "ComfyUI-Custom-Node-Config", + "reference": "https://github.com/pictorialink/ComfyUI-Custom-Node-Config", + "files": [ + "https://github.com/pictorialink/ComfyUI-Custom-Node-Config" + ], + "install_type": "git-clone", + "description": "This project is a custom node plugin for ComfyUI that provides a form node for configuring and saving parameters related to LLMs (such as OpenAI, Kimi, DeepSeek). Users can input information such as API Key, Base, Version, and Model through the node. The node will automatically save the configuration to a local file and set it as environment variables, making it convenient for subsequent use." + }, + { + "author": "pictorialink", + "title": "ComfyUI-Qwen3-llama.cpp", + "reference": "https://github.com/pictorialink/ComfyUI-Qwen3-llama.cpp", + "files": [ + "https://github.com/pictorialink/ComfyUI-Qwen3-llama.cpp" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI QWen3 8b running based on llama.cpp, which only support the CUDA framework and do not support MPS." + }, + { + "author": "mo230761", + "title": "InsertAnything-ComfyUI-official", + "reference": "https://github.com/mo230761/InsertAnything-ComfyUI-official", + "files": [ + "https://github.com/mo230761/InsertAnything-ComfyUI-official" + ], + "install_type": "git-clone", + "description": "This repository provides the official ComfyUI workflow for [a/Insert Anything](https://github.com/song-wensong/insert-anything)." + }, + { + "author": "spawner", + "title": "CUI-Lumina2-TeaCache", + "reference": "https://github.com/spawner1145/CUI-Lumina2-TeaCache", + "files": [ + "https://github.com/spawner1145/CUI-Lumina2-TeaCache" + ], + "install_type": "git-clone", + "description": "comfy extension for lumina2 TeaCache" + }, + { + "author": "spawner", + "title": "comfyui-aichat", + "reference": "https://github.com/spawner1145/comfyui-aichat", + "files": [ + "https://github.com/spawner1145/comfyui-aichat" + ], + "install_type": "git-clone", + "description": "gemini and openai in comfyui" + }, + { + "author": "PenguinTeo", + "title": "Comfyui-TextEditor-Penguin", + "reference": "https://github.com/PenguinTeo/Comfyui-TextEditor-Penguin", + "files": [ + "https://github.com/PenguinTeo/Comfyui-TextEditor-Penguin" + ], + "install_type": "git-clone", + "description": "A text overlay node for ComfyUI that supports rich effects such as gradients, outlines, and shadows. It is suitable for adding highly customizable text content to images." + }, + { + "author": "PenguinTeo", + "title": "GeminiBanana for ComfyUI", + "reference": "https://github.com/PenguinTeo/Comfyui-GeminiBanana", + "files": [ + "https://github.com/PenguinTeo/Comfyui-GeminiBanana" + ], + "install_type": "git-clone", + "description": "GeminiBanana is a custom node for ComfyUI based on the Gemini API. It allows you to call Gemini inside ComfyUI workflows to generate text, parse images, or perform multimodal interactions, greatly enhancing workflow automation and creative capabilities." + }, + { + "author": "jack-liu", + "title": "Pillar_For_ComfyUI", + "reference": "https://github.com/aicoder-max/Pillar_For_ComfyUI", + "files": [ + "https://github.com/aicoder-max/Pillar_For_ComfyUI" + ], + "install_type": "git-clone", + "description": "Pillar is an extension plugin for ComfyUI, providing the ability to call local distributed services for ComfyUI. Currently, it integrates the llama-joycaption-beta-one-hf-llava model and offers a distributed deployment solution to solve the problem that the model occupies too many resources and affects the image generation efficiency." + }, + { + "author": "scraed", + "title": "LanPaint", + "reference": "https://github.com/scraed/LanPaint", + "files": [ + "https://github.com/scraed/LanPaint" + ], + "install_type": "git-clone", + "description": "Achieve seamless inpainting results without needing a specialized inpainting model." + }, + { + "author": "hvppycoding", + "title": "RandomSamplerSchedulerSteps for ComfyUI", + "reference": "https://github.com/hvppycoding/comfyui-random-sampler-scheduler-steps", + "files": [ + "https://github.com/hvppycoding/comfyui-random-sampler-scheduler-steps" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that randomly selects a (Sampler, Scheduler, Steps) combination from user-defined presets." + }, + { + "author": "hvppycoding", + "title": "json prompt renderer", + "reference": "https://github.com/hvppycoding/comfyui-json-prompt-renderer", + "files": [ + "https://github.com/hvppycoding/comfyui-json-prompt-renderer" + ], + "install_type": "git-clone", + "description": "NODES: Extract JSON, 'Prompt: Render Template from JSON'" + }, + { + "author": "o-l-l-i", + "title": "Olm Resolution Picker for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-Olm-Resolution-Picker", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-Olm-Resolution-Picker" + ], + "install_type": "git-clone", + "description": "A smart, customizable resolution selector node with live aspect ratio preview, image overlays, and checkerboard support — cleanly parsed from a human-readable text file." + }, + { + "author": "o-l-l-i", + "title": "Olm LUT Node for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-OlmLUT", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-OlmLUT" + ], + "install_type": "git-clone", + "description": "The Olm LUT is a custom node for ComfyUI that allows you to apply .cube LUT (Look-Up Table) files to images within your generative workflows. It supports creative workflows including film emulation, color grading, and aesthetic stylization using LUTs." + }, + { + "author": "o-l-l-i", + "title": "Olm Curve Editor for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-Olm-CurveEditor", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-Olm-CurveEditor" + ], + "install_type": "git-clone", + "description": "A single-purpose, multi-channel curve editor for ComfyUI, providing precise color control over R, G, B, and Luma channels directly within the node graph. It’s a focused, lightweight, and standalone solution built specifically for one task: applying color curves cleanly and efficiently." + }, + { + "author": "o-l-l-i", + "title": "Olm Sketch for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-Olm-Sketch", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-Olm-Sketch" + ], + "install_type": "git-clone", + "description": "An interactive sketching and drawing node for ComfyUI with stylus/pen support – built for fast, intuitive scribbling directly inside your workflows, geared towards ControlNet-style workflows which utilize scribbles and line art." + }, + { + "author": "o-l-l-i", + "title": "Olm DragCrop for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-Olm-DragCrop", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-Olm-DragCrop" + ], + "install_type": "git-clone", + "description": "An interactive image cropping node for ComfyUI, allowing precise visual selection of crop areas directly within your workflow. This node is designed to streamline the process of preparing images for various tasks, ensuring immediate visual feedback and control over your image dimensions." + }, + { + "author": "o-l-l-i", + "title": "Olm Image Adjust for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-Olm-ImageAdjust", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-Olm-ImageAdjust" + ], + "install_type": "git-clone", + "description": "An interactive image adjustment node for ComfyUI, with an easy-to-use graphical interface and realtime preview." + }, + { + "author": "o-l-l-i", + "title": "Olm Channel Mixer for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-Olm-ChannelMixer", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-Olm-ChannelMixer" + ], + "install_type": "git-clone", + "description": "An interactive, classic channel mixer color adjustment node for ComfyUI, with realtime preview and a responsive editing interface." + }, + { + "author": "o-l-l-i", + "title": "Olm Color Balance for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-Olm-ColorBalance", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-Olm-ColorBalance" + ], + "install_type": "git-clone", + "description": "An interactive color balance adjustment node for ComfyUI, featuring a clean interface and realtime preview." + }, + { + "author": "o-l-l-i", + "title": "Olm Histogram for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-Olm-Histogram", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-Olm-Histogram" + ], + "install_type": "git-clone", + "description": "A compact, real-time histogram analysis node for ComfyUI — with easy-to-use interactive UI, smooth rendering, and accurate pixel sampling. Built for compositing-style workflows and color diagnostics." + }, + { + "author": "o-l-l-i", + "title": "Olm LGG (Lift, Gamma, Gain) for ComfyUI", + "reference": "https://github.com/o-l-l-i/ComfyUI-Olm-LGG", + "files": [ + "https://github.com/o-l-l-i/ComfyUI-Olm-LGG" + ], + "install_type": "git-clone", + "description": "A visual, interactive Lift, Gamma, Gain color correction node for ComfyUI, tailored for precise color grading workflows." + }, + { + "author": "xiaogui8dangjia", + "title": "Comfyui-imagetoSTL", + "reference": "https://github.com/xiaogui8dangjia/Comfyui-imagetoSTL", + "files": [ + "https://github.com/xiaogui8dangjia/Comfyui-imagetoSTL" + ], + "install_type": "git-clone", + "description": "comfyui_imagetostl is a simple node for ComfyUI that converts grayscale images to STL." + }, + { + "author": "NeonLightning", + "title": "neonllama", + "reference": "https://github.com/NeonLightning/neonllama", + "files": [ + "https://github.com/NeonLightning/neonllama" + ], + "install_type": "git-clone", + "description": "This custom ComfyUI node transforms a core idea into a richly detailed positive prompt using a local [a/Ollama](https://ollama.com) LLM." + }, + { + "author": "xmarre", + "title": "LoRA-Safe TorchCompile", + "reference": "https://github.com/xmarre/TorchCompileModel_LoRASafe", + "files": [ + "https://github.com/xmarre/TorchCompileModel_LoRASafe" + ], + "install_type": "git-clone", + "description": "Drop-in TorchCompile node that preserves LoRA patches." + }, + { + "author": "Pigidiy", + "title": "ComfyUI-LikeSpiderAI-UI", + "id": "like_spider_ui", + "reference": "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-UI", + "files": [ + "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-UI" + ], + "install_type": "git-clone", + "description": "Declarative UI Framework for ComfyUI Nodes. Minimalistic base class for creating UI-based audio/text/image nodes." + }, + { + "author": "hexxacubic", + "title": "ComfyUI-Prompt_Library", + "reference": "https://github.com/hexxacubic/ComfyUI-Prompt_Library", + "files": [ + "https://github.com/hexxacubic/ComfyUI-Prompt_Library" + ], + "install_type": "git-clone", + "description": "A ComfyUI node pack for management of larger prompt amounts and prompt variations." + }, + { + "author": "MicheleGuidi", + "title": "ComfyUI-Computer-Vision", + "reference": "https://github.com/MicheleGuidi/ComfyUI-Contextual-SAM2", + "files": [ + "https://github.com/MicheleGuidi/ComfyUI-Contextual-SAM2" + ], + "install_type": "git-clone", + "description": "Extension nodes for ComfyUI that improves automatic segmentation using bounding boxes generated by Florence 2 and segmentation from Segment Anything 2 (SAM2). Currently just an enhancement of nodes from [a/Kijai](https://github.com/kijai/ComfyUI-segment-anything-2)." + }, + { + "author": "swhsiang", + "title": "comfyui-3d-gs-renderer", + "reference": "https://github.com/swhsiang/comfyui-3d-gs-renderer", + "files": [ + "https://github.com/swhsiang/comfyui-3d-gs-renderer" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node to support 3D GS rendering" + }, + { + "author": "jasonjgardner", + "title": "ComfyUI Substance Designer Integration Plugin", + "reference": "https://github.com/jasonjgardner/comfui-substance-designer-integration", + "files": [ + "https://github.com/jasonjgardner/comfui-substance-designer-integration" + ], + "install_type": "git-clone", + "description": "A comprehensive ComfyUI plugin that enables seamless integration with Substance 3D Designer workflows through command line automation. This plugin provides custom nodes for cooking .sbs files, rendering .sbsar archives, controlling material parameters, and batch processing Substance materials within ComfyUI workflows." + }, + { + "author": "sLKbabawhsiang", + "title": "ComfyUI-TuZi-Flux-Kontext", + "reference": "https://github.com/LKbaba/ComfyUI-TuZi-Flux-Kontext", + "files": [ + "https://github.com/LKbaba/ComfyUI-TuZi-Flux-Kontext" + ], + "install_type": "git-clone", + "description": " Powerful Flux-Kontext image generation custom node for ComfyUI, using the official RabbitAI API. Supports text-to-image, image-to-image, and multi-image-to-image generation. Supports concurrent generation." + }, + { + "author": "INuBq8", + "title": "Notification Bridge", + "reference": "https://github.com/INuBq8/ComfyUI-NotificationBridge", + "files": [ + "https://github.com/INuBq8/ComfyUI-NotificationBridge" + ], + "install_type": "git-clone", + "description": "Bridge nodes for ComfyUI that send messages through WhatsApp (Twilio) and Discord when a workflow completes." + }, + { + "author": "Erehr", + "title": "ComfyUI-EreNodes", + "reference": "https://github.com/Erehr/ComfyUI-EreNodes", + "files": [ + "https://github.com/Erehr/ComfyUI-EreNodes" + ], + "install_type": "git-clone", + "description": "A collection of prompt managent nodes with advanced tag parsing. Prompt tag cloud, mutiselect, toggle list, randomizer, filter, autocompete." + }, + { + "author": "Erehr", + "title": "ComfyUI-Eagle-Autosend", + "reference": "https://github.com/Erehr/ComfyUI-Eagle-Autosend", + "files": [ + "https://github.com/Erehr/ComfyUI-Eagle-Autosend" + ], + "install_type": "git-clone", + "description": "A seamless, node-independent way to automatically send your ComfyUI generations to Eagle, complete with full metadata annotation and tags." + }, + { + "author": "xiaowc", + "title": "Comfyui-Dynamic-Params", + "reference": "https://github.com/xiaowc-lib/comfyui-dynamic-params", + "files": [ + "https://github.com/xiaowc-lib/comfyui-dynamic-params" + ], + "install_type": "git-clone", + "description": "Comfyui custom nodes that support dynamic parameter addition and deletion." + }, + { + "author": "keit", + "title": "ComfyUI-keitNodes", + "reference": "https://github.com/keit0728/ComfyUI-keitNodes", + "files": [ + "https://github.com/keit0728/ComfyUI-keitNodes" + ], + "install_type": "git-clone", + "description": "This is keit's utility nodes." + }, + { + "author": "fredconex", + "title": "ComfyUI-SoundFlow", + "reference": "https://github.com/fredconex/ComfyUI-SoundFlow", + "files": [ + "https://github.com/fredconex/ComfyUI-SoundFlow" + ], + "install_type": "git-clone", + "description": "This is a bunch of nodes for ComfyUI to help with sound work." + }, + { + "author": "fredconex", + "title": "Sync Edit", + "reference": "https://github.com/fredconex/ComfyUI-SyncEdit", + "files": [ + "https://github.com/fredconex/ComfyUI-SyncEdit" + ], + "install_type": "git-clone", + "description": "This node allow to intercept changes on the input string and choose between use the current one or sync with incoming new one." + }, + { + "author": "fredconex", + "title": "SongBloom", + "reference": "https://github.com/fredconex/ComfyUI-SongBloom", + "files": [ + "https://github.com/fredconex/ComfyUI-SongBloom" + ], + "install_type": "git-clone", + "description": "ComfyUI Nodes for SongBloom" + }, + { + "author": "A043-studios", + "title": "Pixel3DMM ComfyUI Nodes", + "reference": "https://github.com/A043-studios/comfyui-pixel3dmm", + "files": [ + "https://github.com/A043-studios/comfyui-pixel3dmm" + ], + "install_type": "git-clone", + "description": "Professional 3D face reconstruction for ComfyUI using the Pixel3DMM method" + }, + { + "author": "A043-studios", + "title": "ComfyUI Deforum-X-Flux Nodes", + "reference": "https://github.com/A043-studios/comfyui-deforum-x-flux-nodes", + "files": [ + "https://github.com/A043-studios/comfyui-deforum-x-flux-nodes" + ], + "install_type": "git-clone", + "description": "Professional video animation nodes for ComfyUI based on Deforum-X-Flux research" + }, + { + "author": "A043-studios", + "title": "ComfyUI ASDF Pixel Sort Nodes", + "reference": "https://github.com/A043-studios/ComfyUI-ASDF-Pixel-Sort-Nodes", + "files": [ + "https://github.com/A043-studios/ComfyUI-ASDF-Pixel-Sort-Nodes" + ], + "install_type": "git-clone", + "description": "A ComfyUI integration of Kim Asendorf's iconic ASDFPixelSort algorithm, bringing classic pixel sorting effects directly into your ComfyUI workflows" + }, + { + "author": "A043-studios", + "title": "ComfyUI ASCII Generator Node", + "reference": "https://github.com/A043-studios/Comfyui-ascii-generator", + "files": [ + "https://github.com/A043-studios/Comfyui-ascii-generator" + ], + "install_type": "git-clone", + "description": "ASCII art generator for ComfyUI with multi-language character set support" + }, + { + "author": "A043-studios", + "title": "ComfyUI HunyuanWorld - Complete 3D Generation Suite", + "reference": "https://github.com/A043-studios/ComfyUI_HunyuanWorldnode", + "files": [ + "https://github.com/A043-studios/ComfyUI_HunyuanWorldnode" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for Hunyuan3D - Complete 3D generation suite" + }, + { + "author": "A043-studios", + "title": "ComfyUI OmniSVG Nodes", + "reference": "https://github.com/A043-studios/ComfyUI-OmniSVG", + "files": [ + "https://github.com/A043-studios/ComfyUI-OmniSVG" + ], + "install_type": "git-clone", + "description": "Generate high-quality SVG graphics from text descriptions and images using OmniSVG in ComfyUI." + }, + { + "author": "Zachary116699", + "title": "ComfyUI_LoadImageWithMetaDataEx", + "reference": "https://github.com/Zachary116699/ComfyUI-LoadImageWithMetaDataEx", + "files": [ + "https://github.com/Zachary116699/ComfyUI-LoadImageWithMetaDataEx" + ], + "install_type": "git-clone", + "description": "Custom node for ComfyUI. It can read metadata from the image filepath, and filepath can be provided as a connected input, which allows it to batch read image metadata in a loop." + }, + { + "author": "AgencyMind", + "title": "ComfyUI-GPU-Preprocessor-Wrapper", + "reference": "https://github.com/AgencyMind/ComfyUI-GPU-Preprocessor-Wrapper", + "files": [ + "https://github.com/AgencyMind/ComfyUI-GPU-Preprocessor-Wrapper" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node extension that solves multi-GPU device conflicts for ControlNet preprocessors." + }, + { + "author": "AgencyMind", + "title": "ComfyUI-Satori", + "reference": "https://github.com/AgencyMind/ComfyUI-Satori", + "files": [ + "https://github.com/AgencyMind/ComfyUI-Satori" + ], + "install_type": "git-clone", + "description": "When your workflow starts acting weird and you need to know what's actually happening to your data - not just guess from looking at the output." + }, + { + "author": "olivv-cs", + "title": "ComfyUI-FunPack", + "reference": "https://github.com/olivv-cs/ComfyUI-FunPack", + "files": [ + "https://github.com/olivv-cs/ComfyUI-FunPack" + ], + "install_type": "git-clone", + "description": "A set of custom nodes designed for experiments with video diffusion models." + }, + { + "author": "xuhuan2048", + "title": "ExtractStoryboards", + "id": "comfyui_extractstoryboards", + "reference": "https://github.com/gitadmini/comfyui_extractstoryboards", + "files": [ + "https://github.com/gitadmini/comfyui_extractstoryboards" + ], + "install_type": "git-clone", + "description": "A tool for decomposing video storyboards, which can obtain storyboards and keyframes" + }, + { + "author": "pawelmal0101", + "title": "ComfyUI Webhook Notifier", + "reference": "https://github.com/pawelmal0101/ComfyUI-Webhook", + "files": [ + "https://github.com/pawelmal0101/ComfyUI-Webhook" + ], + "install_type": "git-clone", + "description": "A simple ComfyUI custom node that sends webhook notifications when images are generated. Perfect for integrating your image generation workflow with external services or your own backend." + }, + { + "author": "NeoDroleDeGueule", + "title": "comfyui-image-mixer", + "reference": "https://github.com/NeoDroleDeGueule/comfyui-image-mixer", + "files": [ + "https://github.com/NeoDroleDeGueule/comfyui-image-mixer" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that blends two images in latent space using a mix factor slider." + }, + { + "author": "hassan-sd", + "title": "ComfyUI Image & Prompt Loader", + "id": "hassanprompt", + "reference": "https://github.com/hassan-sd/comfyui-image-prompt-loader", + "files": [ + "https://github.com/hassan-sd/comfyui-image-prompt-loader" + ], + "install_type": "git-clone", + "description": "Load images with automatic prompt extraction from Civitai URLs, caption files, or EXIF metadata. Features smart dataset detection and dynamic preview updates." + }, + { + "author": "LargeModGames", + "title": "ComfyUI LoRA Auto Downloader", + "reference": "https://github.com/LargeModGames/comfyui-smart-lora-downloader", + "files": [ + "https://github.com/LargeModGames/comfyui-smart-lora-downloader" + ], + "install_type": "git-clone", + "description": "Automatically download missing LoRAs from CivitAI and detect missing LoRAs in workflows. Features smart directory detection and easy installation." + }, + { + "author": "benjamin-bertram", + "title": "ComfyUI OIDN Denoiser", + "reference": "https://github.com/benjamin-bertram/Comfyui_OIDN_Denoiser", + "files": [ + "https://github.com/benjamin-bertram/Comfyui_OIDN_Denoiser" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI provides a wrapper for Intel's Open Image Denoise (OIDN) library, allowing you to denoise images directly within your ComfyUI workflow." + }, + { + "author": "Zehong-Ma", + "title": "ComfyUI-MagCache", + "reference": "https://github.com/Zehong-Ma/ComfyUI-MagCache", + "files": [ + "https://github.com/Zehong-Ma/ComfyUI-MagCache" + ], + "install_type": "git-clone", + "description": "official implementation of [zehong-ma/MagCache](https://github.com/zehong-ma/MagCache) for ComfyUI" + }, + { + "author": "without-ordinary", + "title": "OpenOutpaint ComfyUI Interface", + "reference": "https://github.com/without-ordinary/openoutpaint_comfyui_interface", + "reference2": "https://github.com/without-ordinary/wo_openoutpaint_comfyui_interface", + "files": [ + "https://github.com/without-ordinary/openoutpaint_comfyui_interface" + ], + "install_type": "git-clone", + "description": "An API interface for OpenOutpaint to work with ComfyUI workflow" + }, + { + "author": "adamreading", + "title": "ComfyUI-AjoNodes", + "reference": "https://github.com/AJO-reading/ComfyUI-AjoNodes", + "files": [ + "https://github.com/AJO-reading/ComfyUI-AjoNodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes designed for ComfyUI from the AJO-reading organization. This repository currently includes the Audio Collect & Concat node, which collects multiple audio segments and concatenates them into a single audio stream." + }, + { + "author": "neocrz", + "title": "comfyui-usetaesd", + "reference": "https://github.com/neocrz/comfyui-usetaesd", + "files": [ + "https://github.com/neocrz/comfyui-usetaesd" + ], + "install_type": "git-clone", + "description": "A custom node set for ComfyUI that provides nodes for encoding and decoding images using Tiny AutoEncoders for Stable Diffusion (TAESD) models." + }, + { + "author": "havvk", + "title": "ComfyUI_AIIA", + "reference": "https://github.com/havvk/ComfyUI_AIIA", + "files": [ + "https://github.com/havvk/ComfyUI_AIIA" + ], + "install_type": "git-clone", + "description": "Tired of OOM errors and tedious file management? The AIIA Node Suite delivers the ultimate workflow overhaul, headlined by the AIIA Media Browser: a high-performance file hub fully integrated into ComfyUI. Instantly preview images, videos, and audio, and experience ultimate smoothness thanks to smart caching and virtual scrolling, even with tens of thousands of files. It also features a powerful fullscreen viewer, rich tooltip previews, and flexible sorting. Alongside the browser, our Video Combine node fundamentally solves memory bottlenecks in long video generation. By streaming frames from disk, you can create videos of virtually unlimited length, making OOM errors a thing of the past. The suite also includes OOM-safe FLOAT video generation, advanced audio processing, and other utilities, providing a complete end-to-end solution from content creation to asset management." + }, + { + "author": "dseditor", + "title": "ComfyUI-Thread", + "reference": "https://github.com/dseditor/ComfyUI-Thread", + "files": [ + "https://github.com/dseditor/ComfyUI-Thread" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node package for seamless integration with Threads (Meta's social platform). This package allows you to publish posts, manage images, and retrieve post history directly from your ComfyUI workflows." + }, + { + "author": "dseditor", + "title": "ComfyUI-ScheduledTask", + "reference": "https://github.com/dseditor/ComfyUI-ScheduledTask", + "files": [ + "https://github.com/dseditor/ComfyUI-ScheduledTask" + ], + "install_type": "git-clone", + "description": "A powerful workflow scheduling extension for ComfyUI that enables automated daily execution of workflows with an intuitive web interface ,Adding shutdown computer after workflow node" + }, + { + "author": "dseditor", + "title": "ComfyUI-ListHelper", + "reference": "https://github.com/dseditor/ComfyUI-ListHelper", + "files": [ + "https://github.com/dseditor/ComfyUI-ListHelper" + ], + "install_type": "git-clone", + "description": "The ListHelper collection is a comprehensive set of custom nodes for ComfyUI that provides powerful list manipulation capabilities. This collection includes audio processing, text splitting, and number generation tools for enhanced workflow automation." + }, + { + "author": "Leon", + "title": "Leon's Utility and API Integration Nodes", + "id": "leon", + "reference": "https://github.com/l3ony2k/comfyui-leon-nodes", + "files": [ + "https://github.com/l3ony2k/comfyui-leon-nodes" + ], + "nodename_pattern": "^🤖 Leon", + "install_type": "git-clone", + "description": "A comprehensive collection of utility and API integration nodes for ComfyUI. Includes image manipulation (4-grid split), string utilities, and multiple API integrations: ImgBB upload, HyprLab upload, Google Image API, Luma AI, FLUX Image API, FLUX Kontext API, and Midjourney proxy integration. Features include image/video hosting, AI image generation, and image description capabilities.", + "pip": [ + "Pillow", + "torch", + "numpy", + "requests", + "tenacity" + ], + "tags": [ + "image", + "utility", + "api", + "upload", + "generation", + "split", + "string", + "imgbb", + "hypr", + "google", + "luma", + "flux", + "midjourney" + ] + }, + { + "author": "jurdnf", + "title": "ComfyUI-JurdnsModelSculptor", + "reference": "https://github.com/jurdnf/ComfyUI-JurdnsModelSculptor", + "files": [ + "https://github.com/jurdnf/ComfyUI-JurdnsModelSculptor" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI nodes that sculpt diffusion models by applying gradient-based modifications to different layers and blocks." + }, + { + "author": "jurdnf", + "title": "ComfyUI-JurdnsIterativeNoiseKsampler", + "reference": "https://github.com/jurdnf/ComfyUI-JurdnsIterativeNoiseKSampler", + "files": [ + "https://github.com/jurdnf/ComfyUI-JurdnsIterativeNoiseKSampler" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that adds controlled noise injection during the sampling process for enhanced image generation quality and detail." + }, + { + "author": "DrStone71", + "title": "ComfyUI-Prompt-Translator", + "reference": "https://github.com/DrStone71/ComfyUI-Prompt-Translator", + "files": [ + "https://github.com/DrStone71/ComfyUI-Prompt-Translator" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows you to translate your prompt directly into the language used by your LLM" + }, + { + "author": "Phospholipids", + "title": "PPWildCard", + "reference": "https://github.com/kohs100/comfyui-ppwc", + "files": [ + "https://github.com/kohs100/comfyui-ppwc" + ], + "install_type": "git-clone", + "description": "This extension offers wildcard prompting works solely in workflow." + }, + { + "author": "linjian-ufo", + "title": "DeepSeek Chat Node for ComfyUI", + "reference": "https://github.com/linjian-ufo/comfyui_deepseek_lj257_update", + "files": [ + "https://github.com/linjian-ufo/comfyui_deepseek_lj257_update" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that calls the DeepSeek Chat API to process text input and return text output." + }, + { + "author": "linjian-ufo", + "title": "GLM-4V Image Descriptor", + "reference": "https://github.com/linjian-ufo/ComfyUI_GLM4V_voltspark", + "files": [ + "https://github.com/linjian-ufo/ComfyUI_GLM4V_voltspark" + ], + "install_type": "git-clone", + "description": "Professional AI Image Description Generator\nBased on Zhipu AI GLM-4V multimodal model, batch generate accurate and detailed descriptions for images in Chinese and English" + }, + { + "author": "jkhayiying", + "title": "ImageLoadFromLocalOrUrl Node for ComfyUI", + "id": "JkhaImageLoaderPathOrUrl", + "reference": "https://gitee.com/yyh915/jkha-load-img", + "files": [ + "https://gitee.com/yyh915/jkha-load-img" + ], + "install_type": "git-clone", + "description": "This is a node to load an image from local path or url." + }, + { + "author": "jinchanz", + "title": "ComfyUI-ADIC", + "reference": "https://github.com/jinchanz/ComfyUI-ADIC", + "files": [ + "https://github.com/jinchanz/ComfyUI-ADIC" + ], + "install_type": "git-clone", + "description": "This is a set of custom nodes for calling an image translation API within ComfyUI." + }, + { + "author": "Lord Lethris", + "title": "ComfyUI-RPG-Characters", + "id": "rpg-characters", + "reference": "https://github.com/lord-lethris/ComfyUI-RPG-Characters", + "files": [ + "https://github.com/lord-lethris/ComfyUI-RPG-Characters" + ], + "install_type": "git-clone", + "description": "Stylized RPG character prompt generator for ComfyUI. Supports standard and Ollama-based prompts, works with SD, SDXL, Flux, and more." + }, + { + "author": "ialhabbal", + "title": "OcclusionMask", + "reference": "https://github.com/ialhabbal/OcclusionMask", + "files": [ + "https://github.com/ialhabbal/OcclusionMask" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI custom node for advanced face occlusion, segmentation, and masking, leveraging state-of-the-art face detection (insightface buffalo models) for robust and accurate results." + }, + { + "author": "kael558", + "title": "ComfyUI-GGUF-FantasyTalking", + "reference": "https://github.com/kael558/ComfyUI-GGUF-FantasyTalking", + "files": [ + "https://github.com/kael558/ComfyUI-GGUF-FantasyTalking" + ], + "install_type": "git-clone", + "description": "GGUF Quantization support for native ComfyUI models with FantasyTalking." + }, + { + "author": "😈 CasterPollux", + "title": "MiniMax Video Object Remover Suite", + "reference": "https://github.com/casterpollux/MiniMax-bmo", + "files": [ + "https://github.com/casterpollux/MiniMax-bmo" + ], + "nodename_pattern": "MiniMax.*BMO|BMO.*MiniMax", + "pip": ["segment-anything"], + "tags": ["video", "inpainting", "object-removal", "suite", "professional", "BMO"], + "install_type": "git-clone", + "description": "Professional video object removal suite using MiniMax optimization. Includes BMO-enhanced nodes with VAE normalization, temporal preservation, and 6-step inference. Complete video inpainting solution for ComfyUI." + }, + { + "author": "drphero", + "title": "ComfyUI-PromptTester", + "reference": "https://github.com/drphero/comfyui_prompttester", + "files": [ + "https://github.com/drphero/comfyui_prompttester" + ], + "install_type": "git-clone", + "description": "Automatically tests the impact of each phrase in a prompt by generating images with one phrase omitted at a time." + }, + { + "author": "azazeal04", + "title": "anime_character_selector", + "reference": "https://github.com/azazeal04/Azazeal_Anime_Characters_ComfyUI", + "files": [ + "https://github.com/azazeal04/Azazeal_Anime_Characters_ComfyUI" + ], + "install_type": "git-clone", + "description": "character nodes for characters from various anime shows and comics" + }, + { + "author": "flamacore", + "title": "ComfyUI YouTube Uploader", + "id": "comfyui-youtubeuploader", + "reference": "https://github.com/flamacore/ComfyUI-YouTubeUploader", + "files": [ + "https://github.com/flamacore/ComfyUI-YouTubeUploader" + ], + "install_type": "git-clone", + "description": "A ComfyUI node for uploading generated content to YouTube. [a/Buy me a coffee](https://buymeacoffee.com/chao.k)" + }, + { + "author": "robin-collins", + "title": "ComfyUI-TechsToolz", + "reference": "https://github.com/robin-collins/ComfyUI-TechsToolz", + "files": [ + "https://github.com/robin-collins/ComfyUI-TechsToolz" + ], + "install_type": "git-clone", + "description": "A modular collection of ComfyUI custom nodes with advanced dependency management and ComfyUI Manager integration." + }, + { + "author": "highdoping", + "title": "ComfyUI-ASSSSA", + "reference": "https://github.com/HighDoping/ComfyUI_ASSSSA", + "files": [ + "https://github.com/HighDoping/ComfyUI_ASSSSA" + ], + "install_type": "git-clone", + "description": "Add ASS/SSA subtitle to video using ffmpeg." + }, + { + "author": "highdoping", + "title": "lama_with_refiner", + "reference": "https://github.com/fplu/comfyui_lama_with_refiner", + "files": [ + "https://github.com/fplu/comfyui_lama_with_refiner" + ], + "install_type": "git-clone", + "description": "Nodes for lama+refiner inpainting with ComfyUI." + }, + { + "author": "quasiblob", + "title": "ComfyUI-EsesImageAdjustments", + "reference": "https://github.com/quasiblob/ComfyUI-EsesImageAdjustments", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesImageAdjustments" + ], + "install_type": "git-clone", + "description": "Image Adjustments node for ComfyUI with minimal requirements, uses PyTorch for image manipulation operations." + }, + { + "author": "quasiblob", + "title": "ComfyUI-EsesCompositionGuides", + "reference": "https://github.com/quasiblob/ComfyUI-EsesCompositionGuides", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesCompositionGuides" + ], + "install_type": "git-clone", + "description": "Non-destructive visual image composition helper tool node for ComfyUI with minimal requirements, works with larger images too." + }, + { + "author": "quasiblob", + "title": "ComfyUI-EsesImageOffset", + "reference": "https://github.com/quasiblob/ComfyUI-EsesImageOffset", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesImageOffset" + ], + "install_type": "git-clone", + "description": "The 'Eses Image Offset' node offers basic image offsetting capabilities within ComfyUI. It allows shifting image and mask content horizontally and/or vertically, with an option to wrap content around the canvas edges for a tiling effect." + }, + { + "author": "quasiblob", + "title": "ComfyUI-EsesImageLensEffects", + "reference": "https://github.com/quasiblob/ComfyUI-EsesImageLensEffects", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesImageLensEffects" + ], + "install_type": "git-clone", + "description": "The 'Eses Image Lens Effects' node is a multipurpose node for ComfyUI designed to simulate a variety of lens characteristics. It combines several typical effects into a single, convenient node, allowing to add realistic or stylistic lens distortion, chromatic aberration, post-process scaling, and a highly configurable vignette." + }, + { + "author": "quasiblob", + "title": "ComfyUI-EsesImageEffectBloom", + "reference": "https://github.com/quasiblob/ComfyUI-EsesImageEffectBloom", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesImageEffectBloom" + ], + "install_type": "git-clone", + "description": "'Eses Image Effect Bloom' image post processing effect for ComfyUI, it uses GPU and has optimized blur effect calculations. Minimal dependencies, simple and easy to use UI." + }, + { + "author": "quasiblob", + "title": "EsesCompositionGoldenRatio", + "reference": "https://github.com/quasiblob/EsesCompositionGoldenRatio", + "files": [ + "https://github.com/quasiblob/EsesCompositionGoldenRatio" + ], + "install_type": "git-clone", + "description": "'Real-time golden ratio pattern composition evaluation tool node for ComfyUI. This does nothing else - but you can move, rotate and scale then pattern to find new things and structures in your images." + }, + { + "author": "quasiblob", + "title": "EsesImageResize", + "reference": "https://github.com/quasiblob/ComfyUI-EsesImageResize", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesImageResize" + ], + "install_type": "git-clone", + "description": "The 'Eses Image Resize' node offers comprehensive image resizing capabilities within ComfyUI. It supports various scaling modes including scaling by a specific ratio, target megapixels, or directly to fixed dimensions. The node provides framing options to handle aspect ratio changes, allowing users to 'Crop to Fit' (fill) the target frame or 'Fit to Frame' (letterbox) the image with a customizable fill color. It also generates and outputs a corresponding mask, with control over the letterbox area's color (black or white) within the mask." + }, + { + "author": "quasiblob", + "title": "ComfyUI-EsesImageEffectCurves", + "reference": "https://github.com/quasiblob/ComfyUI-EsesImageEffectCurves", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesImageEffectCurves" + ], + "install_type": "git-clone", + "description": "Channel curves custom node for ComfyUI. RGB, R, G and B, luma and saturation curves adjustments. Save and load presets. Real-time curves adjustment tool directly within the user interface. Precise, interactive control over the tonal range of both image channels and masks, using a GPU-accelerated PyTorch backend for instant feedback." + }, + { + "author": "quasiblob", + "title": "ComfyUI-EsesImageEffectLevels", + "reference": "https://github.com/quasiblob/ComfyUI-EsesImageEffectLevels", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesImageEffectLevels" + ], + "install_type": "git-clone", + "description": "The 'Eses Image Effect Levels' is a ComfyUI custom node that provides a real-time levels adjustment tool directly within the user interface. It allows for interactive control over the tonal range of both images and masks, using a GPU-accelerated PyTorch backend for near instant feedback." + }, + { + "author": "quasiblob", + "title": "ComfyUI-EsesImageTransform", + "reference": "https://github.com/quasiblob/ComfyUI-EsesImageTransform", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesImageTransform" + ], + "install_type": "git-clone", + "description": "Apply 2D transformations to images and masks within ComfyUI. Zoom, position, scale, flip, rotate, squash and stretch the input content. Tile images to create patterns (supports alpha channels). Fill options for managing canvas areas exposed by transformations. Apply masks to RGB images and invert mask inputs or outputs. No extra dependencies." + }, + { + "author": "quasiblob", + "title": "ComfyUI-EsesImageCompare", + "reference": "https://github.com/quasiblob/ComfyUI-EsesImageCompare", + "files": [ + "https://github.com/quasiblob/ComfyUI-EsesImageCompare" + ], + "install_type": "git-clone", + "description": "Interactive A/B image comparison node with a draggable slider to reveal one image over another. Includes difference and other blend modes for more detailed analysis, allowing one to spot changes in similar images. Node also outputs a passthrough image of input A, and a grayscale difference mask." + }, + { + "author": "TheLustriVA", + "title": "ComfyUI Image Size Tool", + "reference": "https://github.com/TheLustriVA/ComfyUI-Image-Size-Tools", + "files": [ + "https://github.com/TheLustriVA/ComfyUI-Image-Size-Tools" + ], + "install_type": "git-clone", + "description": "Resolution calculator nodes for ComfyUI with model-specific constraints and optimal bucket resolutions" + }, + { + "author": "834t", + "title": "Scene Composer for ComfyUI", + "reference": "https://github.com/834t/ComfyUI_834t_scene_composer", + "files": [ + "https://github.com/834t/ComfyUI_834t_scene_composer" + ], + "install_type": "git-clone", + "description": "An intuitive, all-in-one node for ComfyUI that brings a powerful, layer-based regional prompting workflow directly into your graph. Say goodbye to managing countless Conditioning (Set Area) nodes and hello to drawing your creative vision." + }, + { + "author": "Maxed-Out-99", + "title": "ComfyUI-MaxedOut", + "reference": "https://github.com/Maxed-Out-99/ComfyUI-MaxedOut", + "files": [ + "https://github.com/Maxed-Out-99/ComfyUI-MaxedOut" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI nodes used in Maxed Out workflows (SDXL, Flux, etc.)" + }, + { + "author": "Maxed-Out-99", + "title": "ComfyUI-SmartModelLoaders-MXD", + "reference": "https://github.com/Maxed-Out-99/ComfyUI-SmartModelLoaders-MXD", + "files": [ + "https://github.com/Maxed-Out-99/ComfyUI-SmartModelLoaders-MXD" + ], + "install_type": "git-clone", + "description": "Smart, unified model loaders for ComfyUI that support both standard .safetensors and quantized .gguf formats — no switching nodes required. Includes flexible UNET and CLIP loaders that work across models like SDXL, SD3, Flux, and more." + }, + { + "author": "lucak5s", + "title": "ComfyUI GFPGAN", + "reference": "https://github.com/lucak5s/comfyui_gfpgan", + "files": [ + "https://github.com/lucak5s/comfyui_gfpgan" + ], + "install_type": "git-clone", + "description": "Face restoration with GFPGAN." + }, + { + "author": "joeriben", + "title": "AI4ArtsEd Nodes", + "reference": "https://github.com/joeriben/ai4artsed_comfyui_nodes", + "files": [ + "https://github.com/joeriben/ai4artsed_comfyui_nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for the project AI for Arts Education" + }, + { + "author": "DebugPadawan", + "title": "DebugPadawan's ComfyUI Essentials", + "reference": "https://github.com/DebugPadawan/DebugPadawans-ComfyUI-Essentials", + "files": [ + "https://github.com/DebugPadawan/DebugPadawans-ComfyUI-Essentials" + ], + "install_type": "git-clone", + "description": "Essential custom nodes for ComfyUI workflows" + }, + { + "author": "aleolidev", + "title": "Kaizen Package", + "id": "kaizen_package", + "reference": "https://github.com/aleolidev/comfy_kaizen_package", + "files": [ + "https://github.com/aleolidev/comfy_kaizen_package" + ], + "install_type": "git-clone", + "description": "A collection of custom image processing nodes for ComfyUI" + }, + { + "author": "cmdicely", + "title": "Simple Image To Palette", + "reference": "https://github.com/cmdicely/simple_image_to_palette", + "files": [ + "https://github.com/cmdicely/simple_image_to_palette" + ], + "install_type": "git-clone", + "description": "Custom node to extract the colors in an image as a palette for use with ComfyUI-PixelArt-Detector" + }, + { + "author": "cmdicely", + "title": "GrsAI api in ComfyUI", + "reference": "https://github.com/31702160136/ComfyUI-GrsAI", + "files": [ + "https://github.com/31702160136/ComfyUI-GrsAI" + ], + "install_type": "git-clone", + "description": "GrsAI API node supports models: Flux-Pro-1.1 (¥ 0.03), Flux-Ultra-1.1 (¥ 0.04), Flux Kontext Pro (¥ 0.035), Flux Kontext Max (¥ 0.07), GPT Image (¥ 0.02). Support text generated images, image generated images, and multi image fusion." + }, + { + "author": "AKharytonchyk", + "title": "ComfyUI-telegram-bot-node", + "reference": "https://github.com/AKharytonchyk/ComfyUI-telegram-bot-node", + "files": [ + "https://github.com/AKharytonchyk/ComfyUI-telegram-bot-node" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for Telegram bot integration" + }, + { + "author": "leonardomiramondi", + "title": "Flux Context ComfyUI Node", + "reference": "https://github.com/leonardomiramondi/flux-context-comfyui", + "files": [ + "https://github.com/leonardomiramondi/flux-context-comfyui" + ], + "install_type": "git-clone", + "description": "ComfyUI node for Flux Context (Kontext) image editing" + }, + { + "author": "kpsss34", + "title": "ComfyUI kpsss34 Custom Node", + "reference": "https://github.com/kpsss34/ComfyUI-kpsss34", + "files": [ + "https://github.com/kpsss34/ComfyUI-kpsss34" + ], + "install_type": "git-clone", + "description": "Diffusers custom_node" + }, + { + "author": "Gary-yeh", + "title": "comfyui-super-captioner", + "reference": "https://github.com/Gary-yeh/comfyui-super-captioner", + "files": [ + "https://github.com/Gary-yeh/comfyui-super-captioner" + ], + "install_type": "git-clone", + "description": "A powerful multi-model image captioning node that supports both local BLIP models and the cloud-based Google Gemini API, specifically designed for ComfyUI." + }, + { + "author": "Gary-yeh", + "title": "ComfyUI-WebPrompter", + "reference": "https://github.com/Gary-yeh/ComfyUI-WebPrompter", + "files": [ + "https://github.com/Gary-yeh/ComfyUI-WebPrompter" + ], + "install_type": "git-clone", + "description": "This is a custom node suite for ComfyUI that automates the conversion of web content into an AI-refined news script. This simplified version focuses on the core 'fetch-and-process' workflow for a fast and direct automation experience." + }, + { + "author": "fotobudka-team", + "title": "ComfyUI AI Faces - Photo Verification Node", + "reference": "https://github.com/fotobudka-team/comfyui-ai-faces", + "files": [ + "https://github.com/fotobudka-team/comfyui-ai-faces" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for automated face verification, designed to check if a person is clearly visible and suitable for passport-style photos. This node performs comprehensive facial analysis to ensure photo quality meets identification document standards." + }, + { + "author": "Ambrosinus", + "title": "ComfyUI-ATk-Nodes", + "reference": "https://github.com/lucianoambrosini/ComfyUI-ATk-Nodes", + "files": [ + "https://github.com/lucianoambrosini/ComfyUI-ATk-Nodes" + ], + "install_type": "git-clone", + "description": "Ambrosinus ToolKit - Streamlined workflow export with transparent backgrounds, professional themes, and smart scaling. Perfect for creating clean, high-resolution workflow documentation and sharing.", + "category": "Utils" + }, + { + "author": "wasilone11", + "title": "ComfyUI Sync Lipsync Node", + "reference": "https://github.com/wasilone11/comfyui-sync-lipsync-node", + "files": [ + "https://github.com/wasilone11/comfyui-sync-lipsync-node" + ], + "install_type": "git-clone", + "description": "This custom node allows you to perform audio-video lip synchronization inside ComfyUI using a simple interface." + }, + { + "author": "wasilone11", + "title": "ComfyUI Sync PVM Node", + "reference": "https://github.com/wasilone11/comfyui-pvm-node", + "files": [ + "https://github.com/wasilone11/comfyui-pvm-node" + ], + "install_type": "git-clone", + "description": "This custom node allows you to generate personalized video messages (PVM) using audio, video, and multilingual text prompts inside ComfyUI." + }, + { + "author": "uinodes", + "title": "ComfyUI-uinodesDOC", + "reference": "https://github.com/uinodes/ComfyUI-uinodesDOC", + "files": [ + "https://github.com/uinodes/ComfyUI-uinodesDOC" + ], + "install_type": "git-clone", + "description": "This custom node is designed to provide graphical documentation for ComfyUI custom nodes." + }, + { + "author": "puke3615", + "title": "ComfyUI-OneAPI", + "reference": "https://github.com/puke3615/ComfyUI-OneAPI", + "files": [ + "https://github.com/puke3615/ComfyUI-OneAPI" + ], + "install_type": "git-clone", + "description": "Simple REST API interfaces for ComfyUI with dynamic parameter replacement and output management" + }, + { + "author": "bobsblazed", + "title": "Bobs_Latent_Optimizer", + "reference": "https://github.com/BobsBlazed/Bobs_Latent_Optimizer", + "files": [ + "https://github.com/BobsBlazed/Bobs_Latent_Optimizer" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI is designed to optimize latent generation for use with FLUX, SDXL and SD3. It provides flexible control over aspect ratios, megapixel sizes, and upscale factors, allowing users to dynamically create latents that fit specific tiling and resolution needs." + }, + { + "author": "bobsblazed", + "title": "Bobs_LoRA_Loader", + "reference": "https://github.com/BobsBlazed/Bobs-Lora-Loader", + "files": [ + "https://github.com/BobsBlazed/Bobs-Lora-Loader" + ], + "install_type": "git-clone", + "description": "A custom LoRA loader node for ComfyUI with advanced block-weighting controls for both SDXL and FLUX models. Features presets for common use-cases like 'Character' and 'Style', and a 'Custom' mode for fine-grained control over individual model blocks." + }, + { + "author": "sdtana", + "title": "ComfyUI-FDG", + "reference": "https://github.com/sdtana/ComfyUI-FDG", + "files": [ + "https://github.com/sdtana/ComfyUI-FDG" + ], + "install_type": "git-clone", + "description": "Implementation of [a/Guidance in the Frequency Domain Enables High-Fidelity Sampling at Low CFG Scales](https://arxiv.org/abs/2506.19713) for ComfyUI." + }, + { + "author": "AbstractEyes", + "title": "comfyui-lycoris", + "reference": "https://github.com/AbstractEyes/comfyui-lycoris", + "files": [ + "https://github.com/AbstractEyes/comfyui-lycoris" + ], + "install_type": "git-clone", + "description": "A properly implemented lycoris loader for comfyui." + }, + { + "author": "alchemine", + "title": "ComfyUI-Alchemine-Pack", + "reference": "https://github.com/alchemine/comfyui-alchemine-pack", + "files": [ + "https://github.com/alchemine/comfyui-alchemine-pack" + ], + "install_type": "git-clone", + "description": "Custom nodes pack for ComfyUI" + }, + { + "author": "HMG-Fiverr", + "title": "Random Number Button", + "reference": "https://github.com/HMG-Fiverr/ComfyUI-RandomNumberButton", + "files": [ + "https://github.com/HMG-Fiverr/ComfyUI-RandomNumberButton" + ], + "install_type": "git-clone", + "description": "This node provides a button that, when clicked, triggers the execution of the node and generates a new random integer between 0 and 1000. The generated number is available as an output." + }, + { + "author": "Good-Dream-Studio", + "title": "ComfyUI-Connect", + "reference": "https://github.com/Good-Dream-Studio/ComfyUI-Connect", + "files": [ + "https://github.com/Good-Dream-Studio/ComfyUI-Connect" + ], + "install_type": "git-clone", + "description": "Expose your workflows into HTTP endpoints directly from ComfyUI itself." + }, + { + "author": "eg0pr0xy", + "title": "ComfyUI-NoiseGen", + "reference": "https://github.com/eg0pr0xy/comfyui_noisegen", + "files": [ + "https://github.com/eg0pr0xy/comfyui_noisegen" + ], + "install_type": "git-clone", + "description": "Professional noise generation nodes for ComfyUI" + }, + { + "author": "aoliao", + "title": "ComfyUI ElevenLabs API integration", + "reference": "https://github.com/sysL-padawan/comfyui-elevenlabs-integration", + "files": [ + "https://github.com/sysL-padawan/comfyui-elevenlabs-integration" + ], + "install_type": "git-clone", + "description": "This project integrates the ElevenLabs Text-to-Speech API as a custom node for ComfyUI. It enables seamless text-to-speech conversion directly within ComfyUI, providing the generated audio as a PyTorch tensor for immediate playback or further processing. Ideal for workflows requiring high-quality speech synthesis" + }, + { + "author": "Windecay", + "title": "ComfyUI-ReservedVRAM", + "reference": "https://github.com/Windecay/ComfyUI-ReservedVRAM", + "files": [ + "https://github.com/Windecay/ComfyUI-ReservedVRAM" + ], + "install_type": "git-clone", + "description": "A simple node that can dynamically adjust the reserved memory of a workflow in real-time, used to avoid the utilization of shared memory." + }, + { + "author": "Windecay", + "title": "ComfyUI-SDupcaleTiledSize", + "reference": "https://github.com/Windecay/ComfyUI-SDupcaleTiledSize", + "files": [ + "https://github.com/Windecay/ComfyUI-SDupcaleTiledSize" + ], + "install_type": "git-clone", + "description": "Assist in determining reasonable input values for tiled_width/tiled_height in the UltimateSDUpscale node to improve efficiency." + }, + { + "author": "kaaskoek232", + "title": "ComfyUI-MemoryManagement", + "reference": "https://github.com/kaaskoek232/ComfyUI-MemoryManagement", + "files": [ + "https://github.com/kaaskoek232/ComfyUI-MemoryManagement" + ], + "install_type": "git-clone", + "description": "Advanced memory management custom nodes for ComfyUI" + }, + { + "author": "LK-168", + "title": "comfyui_imgutils", + "reference": "https://github.com/LK-168/comfyui_imgutils", + "files": [ + "https://github.com/LK-168/comfyui_imgutils" + ], + "install_type": "git-clone", + "description": "Image tool kit for comfyui with dghs-imgutils" + }, + { + "author": "Icyman86", + "title": "ComfyUI_AnimeCharacterSelect", + "reference": "https://github.com/Icyman86/ComfyUI_AnimeCharacterSelect", + "files": [ + "https://github.com/Icyman86/ComfyUI_AnimeCharacterSelect" + ], + "install_type": "git-clone", + "description": "WAI's Character select ported to ComfyUI with a few tweaks" + }, + { + "author": "Cyrus-Hei", + "title": "comfyui-prompt-bank", + "reference": "https://github.com/Cyrus-Hei/comfyui-prompt-bank", + "files": [ + "https://github.com/Cyrus-Hei/comfyui-prompt-bank" + ], + "install_type": "git-clone", + "description": "A prompt manager on the sidebar for ComfyUI, allowing easy saving and copying of prompts. " + }, + { + "author": "KarmaSwint", + "title": "KarmaNodes", + "reference": "https://github.com/KarmaSwint/ComfyUI-KarmaNodes", + "files": [ + "https://github.com/KarmaSwint/ComfyUI-KarmaNodes" + ], + "install_type": "git-clone", + "description": "Custom cycling KSampler with progressive upscale and more. Professional post-processing nodes." + }, + { + "author": "S4MUEL404", + "title": "ComfyUI S4Motion", + "id": "comfyui-s4motion", + "reference": "https://github.com/S4MUEL-404/ComfyUI-S4Motion", + "files": [ + "https://github.com/S4MUEL-404/ComfyUI-S4Motion" + ], + "install_type": "git-clone", + "description": "A set of ComfyUI nodes for animating a foreground layer over a background, with unified timing and high-quality composition. It includes effectors for rotation, position, path-following position, scale, opacity, distortion, and masking, plus a core node that composes frames and exports APNG/WEBP and a frame sequence." + }, + { + "author": "S4MUEL404", + "title": "ComfyUI S4Tool Image", + "id": "comfyui-s4tool-image", + "reference": "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Image", + "files": [ + "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Image" + ], + "install_type": "git-clone", + "description": "A custom node package for image processing in ComfyUI, for automating image processing within the ComfyUI workflow." + }, + { + "author": "S4MUEL404", + "title": "ComfyUI S4Tool Text", + "id": "comfyui-s4tool-text", + "reference": "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Text", + "files": [ + "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Text" + ], + "install_type": "git-clone", + "description": "Text rendering and styling nodes for ComfyUI. This extension provides a basic text renderer, multiple font loaders, and a style node that adds stroke, shadow, gradient fill, and opacity control." + }, + { + "author": "S4MUEL404", + "title": "ComfyUI Prepack", + "id": "comfyui-prepack", + "reference": "https://github.com/S4MUEL-404/ComfyUI-Prepack", + "files": [ + "https://github.com/S4MUEL-404/ComfyUI-Prepack" + ], + "install_type": "git-clone", + "description": "A small, practical bundle of ComfyUI nodes that streamlines common workflows." + }, + { + "author": "fchangjun", + "title": "MultiSaveImage Node", + "reference": "https://github.com/fchangjun/Comfyui_MultiSaveImage", + "files": [ + "https://github.com/fchangjun/Comfyui_MultiSaveImage" + ], + "install_type": "git-clone", + "description": "A custom node for saving multiple images simultaneously with batch processing and resizing capabilities." + }, + { + "author": "Yo1up", + "title": "Diffusion-Model-Detailer", + "reference": "https://github.com/Yo1up/Diffusion-Model-Detailer", + "files": [ + "https://github.com/Yo1up/Diffusion-Model-Detailer" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes that allow the user to control the generation of diffusion models to increase and decrease level of detail. The model patch has no trainable parameters and can be applied to theoretically any diffusion model in existence. whether or not the implementation currently works for every diffusion model in existence is unknown." + }, + { + "author": "facefusion", + "title": "FaceFusion ComfyUI", + "reference": "https://github.com/facefusion/facefusion-comfyui", + "files": [ + "https://github.com/facefusion/facefusion-comfyui" + ], + "install_type": "git-clone", + "description": "Industry leading face manipulation platform" + }, + { + "author": "pmarmotte2", + "title": "ComfyUI-Speaker-Isolation", + "reference": "https://github.com/pmarmotte2/ComfyUI-Speaker-Isolation", + "files": [ + "https://github.com/pmarmotte2/ComfyUI-Speaker-Isolation" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that performs speaker diarization to isolate individual speaker audio tracks from a single audio source." + }, + { + "author": "IIEleven11", + "title": "ComfyUI-FairyTaler", + "reference": "https://github.com/IIEleven11/ComfyUI-FairyTaler", + "files": [ + "https://github.com/IIEleven11/ComfyUI-FairyTaler" + ], + "install_type": "git-clone", + "description": "This package provides ComfyUI nodes for creating 3-scene storyboards from Ollama text output." + }, + { + "author": "heheok", + "title": "comfyui_wan2.1_vace_infinite_helpers", + "reference": "https://github.com/heheok/comfyui_wan2.1_vace_infinite_helpers", + "files": [ + "https://github.com/heheok/comfyui_wan2.1_vace_infinite_helpers" + ], + "install_type": "git-clone", + "description": "This collection of custom nodes for ComfyUI is specifically designed to automate and streamline the process of creating infinite videos with WAN2.1 VACE." + }, + { + "author": "Ltamann", + "title": "TBG_Enhanced Tiled Upscaler & Refiner FLUX PRO", + "reference": "https://github.com/Ltamann/ComfyUI-TBG-ETUR", + "files": [ + "https://github.com/Ltamann/ComfyUI-TBG-ETUR" + ], + "install_type": "git-clone", + "description": "About TBG Enhanced Tiled Upscaler and Refiner Pro! We at TBG Think. Build. Generate. Pro AI upscaling & image enrichment are excited to make our TBG Enhanced Tiled Upscaler and Refiner Pro available to you for free non-commercial use. We believe in empowering creators and innovators, which is why anything you create or generate using our software" + }, + { + "author": "Ltamann", + "title": "TBG’s ComfyUI Development Takeaways", + "reference": "https://github.com/Ltamann/ComfyUI-TBG-Takeaways", + "files": [ + "https://github.com/Ltamann/ComfyUI-TBG-Takeaways" + ], + "install_type": "git-clone", + "description": "A curated collection of reusable ComfyUI nodes developed by TGB. These sidecodes encapsulate key breakthroughs in model sampling, noise scheduling, and image refinement for enhanced stable diffusion workflows." + }, + { + "author": "Ltamann", + "title": "FastVLM-7B ComfyUI Node", + "reference": "https://github.com/Ltamann/ComfyUI-FastVLM-7B", + "files": [ + "https://github.com/Ltamann/ComfyUI-FastVLM-7B" + ], + "install_type": "git-clone", + "description": "ComfyUI-FastVLM-7B Apple A custom node for Apple’s FastVLM-7B vision-language model. This node lets you pass an image + instruction and returns a generated text response." + }, + { + "author": "DavidPiazza", + "title": "Network Bending for ComfyUI", + "reference": "https://github.com/DavidPiazza/network_bending", + "files": [ + "https://github.com/DavidPiazza/network_bending" + ], + "install_type": "git-clone", + "description": "A custom node pack for ComfyUI that enables creative manipulation and 'bending' of neural network models. Perform various operations on loaded model checkpoints to create unique and experimental effects." + }, + { + "author": "DiffusionLight", + "title": "DiffusionLight-ComfyUI", + "reference": "https://github.com/DiffusionLight/DiffusionLight-ComfyUI", + "files": [ + "https://github.com/DiffusionLight/DiffusionLight-ComfyUI" + ], + "install_type": "git-clone", + "description": "DiffusionLight (Turbo) implemented in ComfyUI" + }, + { + "author": "sunx.ai", + "title": "SunxAI Custom Nodes for ComfyUI", + "id": "comfyui_sun_nodes", + "reference": "https://github.com/upseem/comfyui_sun_nodes", + "files": [ + "https://github.com/upseem/comfyui_sun_nodes" + ], + "install_type": "git-clone", + "description": "A set of custom nodes developed by SunxAI for ComfyUI, including image loop processing and more. " + }, + { + "author": "sunx.ai", + "title": "comfyui_sunxAI_facetools", + "reference": "https://github.com/upseem/comfyui_sunxAI_facetools", + "files": [ + "https://github.com/upseem/comfyui_sunxAI_facetools" + ], + "install_type": "git-clone", + "description": "Face detection & restoration tools for ComfyUI by Sunx.ai" + }, + { + "author": "set-soft", + "title": "Audio Separation (Demix)", + "reference": "https://github.com/set-soft/AudioSeparation", + "files": [ + "https://github.com/set-soft/AudioSeparation" + ], + "install_type": "git-clone", + "description": "Audio separation (aka demixing) nodes, for Vocals, Instruments, Bass, Drums and Others (experimental Piano and Guitar).\nUsing MDX-Net and Demucs, no extra dependencies, support for batch and resample.\nChoose between High Quality and Speed. All safetensor models (No ONNX, No PyTorch)" + }, + { + "author": "creepybits", + "title": "Save Image To Google Drive", + "id": "creepybits", + "reference": "https://github.com/Creepybits/ComfyUI-Save_To_GDrive", + "files": [ + "https://github.com/Creepybits/ComfyUI-Save_To_GDrive" + ], + "install_type": "git-clone", + "description": "This ComfyUI node will save images directly to Google Drive by using Google's free API service." + }, + { + "author": "Hazukiaoi", + "title": "LM Studio Tools for ComfyUI", + "reference": "https://github.com/Hazukiaoi/ComfyUI-LM_Studio_Tools", + "files": [ + "https://github.com/Hazukiaoi/ComfyUI-LM_Studio_Tools" + ], + "install_type": "git-clone", + "description": "This is a custom node pack designed for ComfyUI that seamlessly integrates the powerful LM Studio into your workflow, enabling you to perform a variety of tasks such as text generation and image understanding (Vision) using locally run LLMs." + }, + { + "author": "georgitsenov", + "title": "ComfyUI S3 Save Node", + "reference": "https://github.com/georgitsenov/ComfyUI-R2", + "files": [ + "https://github.com/georgitsenov/ComfyUI-R2" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node for saving generated images directly to Cloudflare R2 (or S3-compatible) buckets using boto3, with secure random filename generation and public URL return." + }, + { + "author": "HappyXY", + "title": "ComfyUI-AmazonBedrock", + "reference": "https://github.com/HappyXY/ComfyUI-AmazonBedrock", + "files": [ + "https://github.com/HappyXY/ComfyUI-AmazonBedrock" + ], + "install_type": "git-clone", + "description": "use case of llm, image, video models on amazon bedrock" + }, + { + "author": "manifestations", + "title": "ComfyUI Globetrotter Nodes", + "reference": "https://github.com/manifestations/comfyui-globetrotter", + "files": [ + "https://github.com/manifestations/comfyui-globetrotter" + ], + "install_type": "git-clone", + "description": "A collection of custom ComfyUI nodes and utilities for generating AI image prompts representing the diverse attire, cultures, regions, and appearances of the world. This project is designed for easy extension to new countries, cultures, and body parts, using a modular JSON-based data structure and dynamic node generation." + }, + { + "author": "manifestations", + "title": "ComfyUI Outfit Nodes", + "reference": "https://github.com/manifestations/comfyui-outfit", + "files": [ + "https://github.com/manifestations/comfyui-outfit" + ], + "install_type": "git-clone", + "description": "Advanced, professional outfit and makeup generation nodes for ComfyUI, with dynamic UI and AI-powered prompt formatting." + }, + { + "author": "kaipard", + "title": "Auto Aspect Latent Generator", + "reference": "https://github.com/kaipard/comfyui-auto-latent-size", + "files": [ + "https://github.com/kaipard/comfyui-auto-latent-size" + ], + "install_type": "git-clone", + "description": "Add presets for latent and adjust the image size." + }, + { + "author": "pvlprk", + "title": "ComfyUI Assistant Node", + "reference": "https://github.com/pvlprk/comfyui-pvl-api-nodes", + "files": [ + "https://github.com/pvlprk/comfyui-pvl-api-nodes" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node that integrates with the OpenAI Assistants API." + }, + { + "author": "danTheMonk", + "title": "ComfyUI Int and Float Conversion Nodes", + "reference": "https://github.com/danTheMonk/comfyui-int-and-float", + "files": [ + "https://github.com/danTheMonk/comfyui-int-and-float" + ], + "install_type": "git-clone", + "description": "A simple ComfyUI custom node extension that provides utility nodes for converting between integer and float values." + }, + { + "author": "RamonGuthrie", + "title": "ComfyUI-RBG-ImageStitchPlus", + "reference": "https://github.com/RamonGuthrie/ComfyUI-RBG-ImageStitchPlus", + "files": [ + "https://github.com/RamonGuthrie/ComfyUI-RBG-ImageStitchPlus" + ], + "install_type": "git-clone", + "description": "An advanced image stitching node for ComfyUI." + }, + { + "author": "vrgamegirl19", + "title": "VRGameDevGirl Video Enhancement Nodes", + "id": "vrgamedev_video_nodes", + "reference": "https://github.com/vrgamegirl19/comfyui-vrgamedevgirl", + "files": [ + "https://github.com/vrgamegirl19/comfyui-vrgamedevgirl" + ], + "install_type": "git-clone", + "description": "Film grain and color match nodes designed for high-quality frame-by-frame video enhancement in ComfyUI." + }, + { + "author": "namtb96", + "title": "OmniGen2 Simple Node", + "reference": "https://github.com/namtb96/OmniGen2-Simple-Node", + "files": [ + "https://github.com/namtb96/OmniGen2-Simple-Node" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node package for the OmniGen2 multimodal generation model." + }, + { + "author": "lonelyowl13", + "title": "Artist tag randomizer for comfyui", + "reference": "https://github.com/lonelyowl13/artist_randomizer", + "files": [ + "https://github.com/lonelyowl13/artist_randomizer" + ], + "install_type": "git-clone", + "description": "A node for including random artists usernames to a prompt." + }, + { + "author": "Aryan185", + "title": "ComfyUI-ExternalAPI-Helpers", + "reference": "https://github.com/Aryan185/ComfyUI-ExternalAPI-Helpers", + "files": [ + "https://github.com/Aryan185/ComfyUI-ExternalAPI-Helpers" + ], + "install_type": "git-clone", + "description": "ComfyUI node for Flux Kontext Pro and Max models from Replicate" + }, + { + "author": "iacoposk8", + "title": "ComfyUI Fooocus Inpaint Wrapper", + "reference": "https://github.com/iacoposk8/ComfyUI-Fooocus-Inpaint-Wrapper", + "files": [ + "https://github.com/iacoposk8/ComfyUI-Fooocus-Inpaint-Wrapper" + ], + "install_type": "git-clone", + "description": "A simple wrapper for Fooocus's inpainting code, designed to replicate its outstanding results. Future improvements for a more refined and lightweight version are planned." + }, + { + "author": "iacoposk8", + "title": "ComfyUI XOR Text & Pickle Nodes", + "reference": "https://github.com/iacoposk8/xor_pickle_nodes", + "files": [ + "https://github.com/iacoposk8/xor_pickle_nodes" + ], + "install_type": "git-clone", + "description": "Three custom nodes for ComfyUI that allow you to encrypt and decrypt Python objects or text using simple XOR encryption." + }, + { + "author": "FaraamFide", + "title": "ComfyUI-ParamNodes", + "reference": "https://github.com/FaraamFide/ComfyUI-ParamNodes", + "files": [ + "https://github.com/FaraamFide/ComfyUI-ParamNodes" + ], + "install_type": "git-clone", + "description": "ComfyUI-ParamNodes is a lightweight, dependency-free collection of custom nodes for ComfyUI, designed to parameterize your workflows for API-driven generation. It provides a clean set of input nodes to control strings, numbers, booleans, and model/LoRA selections, along with a simple logic switch for conditional execution." + }, + { + "author": "chuchu114514", + "title": "comfyui_proportion_solver", + "reference": "https://github.com/chuchu114514/comfyui_proportion_solver", + "files": [ + "https://github.com/chuchu114514/comfyui_proportion_solver" + ], + "install_type": "git-clone", + "description": "This plugin includes two core nodes designed to handle proportion optimization tasks of varying complexity" + }, + { + "author": "yamanacn", + "title": "ComfyUI Kontext Duo Image Analyzer", + "reference": "https://github.com/yamanacn/comfyui_kontext_Analyze", + "files": [ + "https://github.com/yamanacn/comfyui_kontext_Analyze" + ], + "install_type": "git-clone", + "description": "This is a custom node designed for ComfyUI that leverages the multimodal large model Doubao from Volcengine Ark to intelligently compare two input images. You can provide two images and a custom text prompt. The node will send this information to the large model and return a detailed textual description of the similarities and differences between the two images." + }, + { + "author": "weekii", + "title": "comfyui-save-image-pro", + "reference": "https://github.com/weekii/comfyui-save-image-pro", + "files": [ + "https://github.com/weekii/comfyui-save-image-pro" + ], + "install_type": "git-clone", + "description": "Professional-grade ComfyUI image saving plugin with support for multiple formats, custom naming, and advanced features." + }, + { + "author": "bbaudio", + "title": "ComfyUI-SuperUltimateVaceTools", + "reference": "https://github.com/bbaudio-2025/ComfyUI-SuperUltimateVaceTools", + "files": [ + "https://github.com/bbaudio-2025/ComfyUI-SuperUltimateVaceTools" + ], + "install_type": "git-clone", + "description": "powerful nodes for wan2.1 vace" + }, + { + "author": "robertvoy", + "title": "ComfyUI-Distributed", + "reference": "https://github.com/robertvoy/ComfyUI-Distributed", + "files": [ + "https://github.com/robertvoy/ComfyUI-Distributed" + ], + "install_type": "git-clone", + "description": "A custom node extension for ComfyUI that enables distributed image generation across multiple GPUs through a master-worker architecture." + }, + { + "author": "FortunaCournot", + "title": "Stereoscopic", + "id": "stereoscopic", + "reference": "https://github.com/FortunaCournot/comfyui_stereoscopic", + "files": [ + "https://github.com/FortunaCournot/comfyui_stereoscopic" + ], + "install_type": "git-clone", + "description": "Contains ImageSBSConverter node to convert an image into a side-by-side image." + }, + { + "author": "negaga53", + "title": "ComfyUI Universal Image Loader", + "reference": "https://github.com/negaga53/comfyui-imgloader", + "files": [ + "https://github.com/negaga53/comfyui-imgloader" + ], + "install_type": "git-clone", + "description": "A powerful and versatile custom node for ComfyUI that provides multiple ways to load images into your workflows." + }, + { + "author": "sunra-ai", + "title": "ComfyUI Sunra.ai Plugin", + "reference": "https://github.com/sunra-ai/comfyui-sunra", + "files": [ + "https://github.com/sunra-ai/comfyui-sunra" + ], + "install_type": "git-clone", + "description": "Professional ComfyUI plugin for Sunra.ai's FLUX.1 Kontext and Seedance models with enhanced UI" + }, + { + "author": "Ben Staniford", + "title": "ComfyUI Load Most Recent Image Node", + "reference": "https://github.com/benstaniford/comfy-load-last-image", + "files": [ + "https://github.com/benstaniford/comfy-load-last-image" + ], + "install_type": "git-clone", + "description": "A ComfyUI node designed to load the most recent image in a folder" + }, + { + "author": "Ben Staniford", + "title": "Comfy Contact Sheet Image Loader", + "reference": "https://github.com/benstaniford/comfy-contact-sheet-image-loader", + "files": [ + "https://github.com/benstaniford/comfy-contact-sheet-image-loader" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for loading images from a contact sheet of recent files" + }, + { + "author": "Ben Staniford", + "title": "LoRa Loader with Trigger Database", + "reference": "https://github.com/benstaniford/comfy-lora-loader-with-triggerdb", + "files": [ + "https://github.com/benstaniford/comfy-lora-loader-with-triggerdb" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that provides a LoRa loader with persistent trigger word storage. Automatically saves and loads trigger words for each LoRa model, making your workflow more efficient." + }, + { + "author": "Ben Staniford", + "title": "Prompt Database for ComfyUI", + "reference": "https://github.com/benstaniford/comfy-prompt-db", + "files": [ + "https://github.com/benstaniford/comfy-prompt-db" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that provides a database-driven prompt management system. Store, organize, and edit prompts in categories with persistent JSON storage." + }, + { + "author": "Ben Staniford", + "title": "ComfyUI Image Switch Node", + "reference": "https://github.com/benstaniford/comfy-image-switch", + "files": [ + "https://github.com/benstaniford/comfy-image-switch" + ], + "install_type": "git-clone", + "description": "An image source switch node for ComfyUI" + }, + { + "author": "OneThingAI", + "title": "ComfyUI OneThing AI Node", + "reference": "https://github.com/OneThingAI/ComfyUI_Onething_Image", + "files": [ + "https://github.com/OneThingAI/ComfyUI_Onething_Image" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that integrates with OneThing AI's image generation API." + }, + { + "author": "OneThingAI", + "title": "ComfyUI OneThing CV Node", + "reference": "https://github.com/OneThingAI/ComfyUI_Onething_CV", + "files": [ + "https://github.com/OneThingAI/ComfyUI_Onething_CV" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows you to get detailed text descriptions of images using the OneThing AI Vision API. The node integrates with OneThing AI's powerful vision models to provide detailed descriptions of image content." + }, + { + "author": "NeuroSenko", + "title": "ComfyUI LLM SDXL Adapter", + "reference": "https://github.com/NeuroSenko/ComfyUI_LLM_SDXL_Adapter", + "files": [ + "https://github.com/NeuroSenko/ComfyUI_LLM_SDXL_Adapter" + ], + "install_type": "git-clone", + "description": "A comprehensive set of ComfyUI nodes for using Large Language Models (LLM) as text encoders for SDXL image generation through a trained adapter." + }, + { + "author": "MovieLabs", + "title": "MovieLabs ComfyUI Nodes for Publishing Workflow", + "reference": "https://github.com/MovieLabs/comfyui-movielabs-util", + "files": [ + "https://github.com/MovieLabs/comfyui-movielabs-util" + ], + "install_type": "git-clone", + "description": "An extension set of validation checks, automatic versioning numbering, automatic directory creation, and naming conventions are implemented to ensure that the file system is kept in sync with ShotGrid." + }, + { + "author": "reallusion", + "title": "Reallusion ComfyUI Custom Nodes", + "reference": "https://github.com/reallusion/ComfyUI-Reallusion", + "files": [ + "https://github.com/reallusion/ComfyUI-Reallusion" + ], + "install_type": "git-clone", + "description": "This nodepack contains custom nodes for ComfyUI designed specifically for handling Reallusion-related assets such as Character Creator and iClone image and video files. These nodes are intended to be used as backend components that communicate and operate through the AI Render Plugin interface of iClone or Character Creator, enabling a seamless integration between ComfyUI's powerful image/video generation capabilities and Reallusion’s animation tools. By bridging ComfyUI with iClone/Character Creator’s AI Render Plugin, these nodes facilitate workflows where AI-assisted content generation can be controlled, customized, and rendered directly from within Reallusion software environments." + }, + { + "author": "glitchinthemetrix16", + "title": "ComfyUI Roop Custom Nodes", + "reference": "https://github.com/glitchinthemetrix16/ComfyUI-Roop", + "files": [ + "https://github.com/glitchinthemetrix16/ComfyUI-Roop" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI to enable face swapping using the Roop library." + }, + { + "author": "IsItDanOrAi", + "title": "exLoadout: Excel-Based Model & Settings Loader", + "id": "comfyui-exloadout", + "reference": "https://github.com/IsItDanOrAi/ComfyUI-exLoadout", + "files": [ + "https://github.com/IsItDanOrAi/ComfyUI-exLoadout" + ], + "install_type": "git-clone", + "description": "Excel spreadsheet-driven ComfyUI nodes that let you load models, values, and workflows based on saved rows in Excel. Great for organizing and switching between CLIPs, VAEs, LoRAs, and more." + }, + { + "author": "silveroxides", + "title": "ComfyUI Power Shift Scheduler", + "reference": "https://github.com/silveroxides/ComfyUI_PowerShiftScheduler", + "files": [ + "https://github.com/silveroxides/ComfyUI_PowerShiftScheduler" + ], + "install_type": "git-clone", + "description": "Highly customizable Scheduler for ComfyUI." + }, + { + "author": "claptrap0", + "title": "ComfyUI_LLM_Hub", + "reference": "https://github.com/claptrap0/ComfyUI_LLM_Hub", + "files": [ + "https://github.com/claptrap0/ComfyUI_LLM_Hub" + ], + "install_type": "git-clone", + "description": "Utilize the power of an LLM into ComfyUI to transform your text-to-image and text-to-video ideas into highly detailed prompts for generation while giving you full control." + }, + { + "author": "xChenNing", + "title": "ComfyUI_Image_Pin", + "id": "comfyui-image-pin", + "reference": "https://github.com/CheNing233/ComfyUI_Image_Pin", + "files": [ + "https://github.com/CheNing233/ComfyUI_Image_Pin" + ], + "install_type": "git-clone", + "description": "Allows you to pin images to the JSON of your workflow, migrate with JSON, or embed in image's metadata. supports image compression." + }, + { + "author": "LaoMaoBoss", + "title": "ComfyUI-WBLESS", + "id": "LaoMaoBoss", + "reference": "https://github.com/LaoMaoBoss/ComfyUI-WBLESS", + "files": [ + "https://github.com/LaoMaoBoss/ComfyUI-WBLESS" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node package. This custom node features multiple practical functions, including global variables, flow control, obtaining image or mask dimensions, and Dominant Axis Scale." + }, + { + "author": "zeeoale", + "title": "PromptCreatorNodetraumakom Prompt Generator", + "reference": "https://github.com/zeeoale/PromptCreatorNode", + "files": [ + "https://github.com/zeeoale/PromptCreatorNode" + ], + "install_type": "git-clone", + "description": "A powerful custom node for ComfyUI that generates rich, dynamic prompts based on modular JSON worlds — with color realm control (RGB / CMYK), LoRA triggers, and optional AI-based prompt enhancement." + }, + { + "author": "Android zhang", + "title": "Comfyui-Distill-Any-Depth", + "reference": "https://github.com/zade23/Comfyui-Distill-Any-Depth", + "files": [ + "https://github.com/zade23/Comfyui-Distill-Any-Depth" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use Distill-Any-Depth prediction." + }, + { + "author": "Android zhang", + "title": "ComfyUI-MoGe2", + "reference": "https://github.com/zade23/Comfyui-MoGe2", + "files": [ + "https://github.com/zade23/Comfyui-MoGe2" + ], + "install_type": "git-clone", + "description": "Runs the MoGe2 model on the input image. \n v1: Ruicheng/moge-vitl \n v2: Ruicheng/moge-2-vitl-normal" + }, + { + "author": "swisscore-py", + "title": "ComfyUI Telegram Suite", + "reference": "https://github.com/SwissCore92/comfyui-telegram-suite", + "files": [ + "https://github.com/SwissCore92/comfyui-telegram-suite" + ], + "install_type": "git-clone", + "description": "Implement Telegram into your ComfyUI workflows." + }, + { + "author": "ZXL-Xinram", + "title": "ComfyUI-AutoFlow", + "reference": "https://github.com/ZXL-Xinram/ComfyUI-AutoFlow", + "files": [ + "https://github.com/ZXL-Xinram/ComfyUI-AutoFlow" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for ComfyUI focused on path processing and string operations." + }, + { + "author": "lex-drl", + "title": "Best Resolution", + "reference": "https://github.com/Lex-DRL/ComfyUI-BestResolution", + "files": [ + "https://github.com/Lex-DRL/ComfyUI-BestResolution" + ], + "install_type": "git-clone", + "description": "QoL nodes for semi-automatic calculation of the best (most optimal) sampling resolution \n• compatible with ANY model (from now or the future), \n• accounting for upscale... \n• ...and pixel-step." + }, + { + "author": "lex-drl", + "title": "String Constructor (Text-Formatting)", + "reference": "https://github.com/Lex-DRL/ComfyUI-StringConstructor", + "files": [ + "https://github.com/Lex-DRL/ComfyUI-StringConstructor" + ], + "install_type": "git-clone", + "description": "Composing prompt variants from the same text pieces with ease:\n• Build your \"library\" (dictionary) of named text chunks (sub-strings) to use it across the entire workflow.\n• Compile these snippets into different prompts in-place - with just one string formatting node.\n• Freely update the dictionary down the line - get different prompts.\n• Reference text chunks within each other to build dependent hierarchies of less/more detailed descriptions.\n• A real life-saver for regional prompting (aka area composition)." + }, + { + "author": "baikong", + "title": "blender-in-comfyui", + "reference": "https://github.com/JayLyu/blender-in-comfyui", + "files": [ + "https://github.com/JayLyu/blender-in-comfyui" + ], + "install_type": "git-clone", + "description": "Combine multiple 3D models into a single Blender file and render in ComfyUI." + }, + { + "author": "MithrilMan", + "title": "Mithril-Nodes for ComfyUI", + "reference": "https://github.com/MithrilMan/ComfyUI-MithrilNodes", + "files": [ + "https://github.com/MithrilMan/ComfyUI-MithrilNodes" + ], + "install_type": "git-clone", + "description": "Mithril-Nodes is a collection of custom nodes for ComfyUI that enhance workflow modularity, data routing, and configuration management. These nodes help you build more dynamic, organized, and reusable pipelines for generative AI workflows." + }, + { + "author": "Yukinoshita-Yukinoe", + "title": "ComfyUI-Qwen-Node", + "reference": "https://github.com/Yukinoshita-Yukinoe/ComfyUI-Qwen-Node", + "files": [ + "https://github.com/Yukinoshita-Yukinoe/ComfyUI-Qwen-Node" + ], + "install_type": "git-clone", + "description": "Qwen3 api node" + }, + { + "author": "seanjang990", + "title": "ComfyUI Document Auto Crop Node", + "reference": "https://github.com/seanjang990/comfyui-document-auto-crop", + "files": [ + "https://github.com/seanjang990/comfyui-document-auto-crop" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI automatically crops a document by detecting edges, rotates it based on face orientation using MediaPipe, and adjusts it to a target aspect ratio (default 11:14)." + }, + { + "author": "cjj198909", + "title": "OpenAI/Azure OpenAI Image API", + "reference": "https://github.com/cjj198909/comfy_openai_image_api_azure", + "files": [ + "https://github.com/cjj198909/comfy_openai_image_api_azure" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that provides access to OpenAI's image generation and editing capabilities, including support for gpt-image-1 model with both OpenAI and Azure OpenAI providers." + }, + { + "author": "paulh4x", + "title": "ComfyUI_PHRenderFormerWrapper", + "reference": "https://github.com/paulh4x/ComfyUI_PHRenderFormerWrapper", + "files": [ + "https://github.com/paulh4x/ComfyUI_PHRenderFormerWrapper" + ], + "install_type": "git-clone", + "description": "A Wrapper and a set of Custom Nodes for using RenderFormer as a 3d Environment in ComfyUI." + }, + { + "author": "Aero-Ex", + "title": "ComfyUI Vision LLM Analyzer Node", + "reference": "https://github.com/Aero-Ex/ComfyUI-Vision-LLM-Analyzer", + "files": [ + "https://github.com/Aero-Ex/ComfyUI-Vision-LLM-Analyzer" + ], + "install_type": "git-clone", + "description": "This repository contains a powerful and versatile custom node for ComfyUI that seamlessly integrates with OpenAI-compatible Large Language Models (LLMs), including multimodal (vision-enabled) models like GPT-4o.\nThis single node allows you to perform both text generation and image analysis, making it an essential tool for advanced prompt engineering and creative automation." + }, + { + "author": "StrawberryFist", + "title": "StrawberryFist VRAM Optimizer", + "reference": "https://github.com/strawberryPunch/vram_optimizer", + "files": [ + "https://github.com/strawberryPunch/vram_optimizer" + ], + "install_type": "git-clone", + "description": "A comprehensive VRAM management tool for ComfyUI. Includes automatic cleanup and GPU monitoring.", + "nodename_pattern": "StFist", + "pip": ["GPUtil>=1.4.0"], + "tags": ["vram", "gpu", "optimizer", "monitoring"] + }, + { + "author": "blird", + "title": "ComfyUI-Wanify: Adaptive Image Resize Node", + "reference": "https://github.com/blird/ComfyUI-Wanify", + "files": [ + "https://github.com/blird/ComfyUI-Wanify" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI provides adaptive image resizing based on target pixel counts, maintaining aspect ratio and supporting different quality levels. It is useful for workflows that require images to fit within specific pixel budgets (e.g., for video, AI models, or memory constraints)." + }, + { + "author": "hiderminer", + "title": "ComfyUI-HM-Tools", + "reference": "https://github.com/hiderminer/ComfyUI-HM-Utilities", + "files": [ + "https://github.com/hiderminer/ComfyUI-HM-Utilities" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that provides useful image processing tools." + }, + { + "author": "Dimona Patrick", + "title": "ComfyUI Mzikart Mixer", + "reference": "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Mixer", + "files": [ + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Mixer" + ], + "install_type": "git-clone", + "description": "Professional audio processing nodes for ComfyUI" + }, + { + "author": "Edoardo Carmignani", + "title": "ComfyUI-ExtraLinks", + "id": "extralinks", + "reference": "https://github.com/edoardocarmignani/extralinks", + "files": [ + "https://github.com/edoardocarmignani/extralinks" + ], + "install_type": "git-clone", + "description": "A one-click collection of alternate connection styles for ComfyUI." + }, + { + "author": "Edoardo Carmignani", + "title": "VAE Decode Switch for ComfyUI", + "reference": "https://github.com/MasterDenis/VAE-Decode-Switch", + "files": [ + "https://github.com/MasterDenis/VAE-Decode-Switch" + ], + "install_type": "git-clone", + "description": "Node for ComfyUI designed for more neatly switching between tiled and default VAE Decode Nodes." + }, + { + "author": "webuilder", + "title": "ComfyUI WB Utils", + "reference": "https://github.com/webuilder/WB-ComfyUI-Utils", + "files": [ + "https://github.com/webuilder/WB-ComfyUI-Utils" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for ComfyUI, including useful functions such as audio processing and text manipulation." + }, + { + "author": "MartinDeanMoriarty", + "title": "ComfyUI-DeanLogic", + "reference": "https://github.com/MartinDeanMoriarty/ComfyUI-DeanLogic", + "files": [ + "https://github.com/MartinDeanMoriarty/ComfyUI-DeanLogic" + ], + "install_type": "git-clone", + "description": "Nodes to switch image input or output path with boolean conditions" + }, + { + "author": "rdomunky", + "title": "comfyui-subfolderimageloader", + "reference": "https://github.com/rdomunky/comfyui-subfolderimageloader", + "files": [ + "https://github.com/rdomunky/comfyui-subfolderimageloader" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that enhances image loading with subfolder organization and dynamic filtering" + }, + { + "author": "NyaFuP", + "title": "NF Preview Selector", + "reference": "https://github.com/NyaFuP/ComfyUI_Preview_Selector", + "files": [ + "https://github.com/NyaFuP/ComfyUI_Preview_Selector" + ], + "install_type": "git-clone", + "description": "A floating dialog-based image preview and selection system for ComfyUI." + }, + { + "author": "brucew4yn3rp", + "title": "Save Image with Selective Metadata", + "id": "SaveImageSelectiveMetadata", + "reference": "https://github.com/brucew4yn3rp/ComfyUI_SelectiveMetadata", + "files": [ + "https://github.com/brucew4yn3rp/ComfyUI_SelectiveMetadata" + ], + "install_type": "git-clone", + "description": "This custom node allows users to selectively choose what to add to the generated image's metadata." + }, + { + "author": "cedarconnor", + "title": "ComfyUI LatLong - Equirectangular Image Processing Nodes", + "reference": "https://github.com/cedarconnor/comfyui-LatLong", + "files": [ + "https://github.com/cedarconnor/comfyui-LatLong" + ], + "install_type": "git-clone", + "description": "Advanced equirectangular (360°) image processing nodes for ComfyUI, enabling precise rotation, horizon adjustment, and specialized cropping operations for panoramic images." + }, + { + "author": "cedarconnor", + "title": "ComfyUI Upsampler Nodes", + "reference": "https://github.com/cedarconnor/upsampler", + "files": [ + "https://github.com/cedarconnor/upsampler" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for integrating with the Upsampler API to enhance and upscale images using AI." + }, + { + "author": "cedarconnor", + "title": "ComfyUI Batch Name Loop", + "reference": "https://github.com/cedarconnor/comfyui-BatchNameLoop", + "files": [ + "https://github.com/cedarconnor/comfyui-BatchNameLoop" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node package for batch image processing with filename preservation." + }, + { + "author": "cedarconnor", + "title": "ComfyUI HunyuanWorld - Professional 3D World Generation", + "reference": "https://github.com/cedarconnor/ComfyUI_HunyuanWorld", + "files": [ + "https://github.com/cedarconnor/ComfyUI_HunyuanWorld" + ], + "install_type": "git-clone", + "description": "Transform text and images into immersive 360° 3D worlds using Tencent's HunyuanWorld-1.0 in ComfyUI with native FLUX architecture integration." + }, + { + "author": "vaishnav-vn", + "title": "va1", + "name": "Pad Image by Aspect", + "reference": "https://github.com/vaishnav-vn/va1", + "files": [ + "https://github.com/vaishnav-vn/va1" + ], + "install_type": "git-clone", + "description": "repo has Custon node designed to expand, pad, and mask images to fixed or randomized aspect ratios with precise spatial and scale control — engineered for outpainting, compositional layout, and creative canvas expansion. " + }, + { + "author": "wawahuy", + "title": "ComfyUI HTTP - REST API Nodes", + "reference": "https://github.com/wawahuy/ComfyUI-HTTP", + "files": [ + "https://github.com/wawahuy/ComfyUI-HTTP" + ], + "install_type": "git-clone", + "description": "Powerful REST API nodes for ComfyUI that enable seamless HTTP/REST integration into your workflows." + }, + { + "author": "watarika", + "title": "ComfyUI-SendToEagle-w-Metadata", + "reference": "https://github.com/watarika/ComfyUI-SendToEagle-w-Metadata", + "files": [ + "https://github.com/watarika/ComfyUI-SendToEagle-w-Metadata" + ], + "install_type": "git-clone", + "description": "Sends images with metadata (PNGInfo) obtained from the input values of each node to Eagle. You can customize the tags to be registered in Eagle." + }, + { + "author": "Azornes", + "title": "Comfyui-LayerForge", + "id": "layerforge", + "reference": "https://github.com/Azornes/Comfyui-LayerForge", + "files": [ + "https://github.com/Azornes/Comfyui-LayerForge" + ], + "install_type": "git-clone", + "description": "Photoshop-like layered canvas editor to your ComfyUI workflow. This node is perfect for complex compositing, inpainting, and outpainting, featuring multi-layer support, masking, blend modes, and precise transformations. Includes optional AI-powered background removal for streamlined image editing." + }, + { + "author": "Azornes", + "title": "Comfyui-Resolution-Master", + "reference": "https://github.com/Azornes/Comfyui-Resolution-Master", + "files": [ + "https://github.com/Azornes/Comfyui-Resolution-Master" + ], + "install_type": "git-clone", + "description": " Precise resolution and aspect ratio control for ComfyUI" + }, + { + "author": "einhorn13", + "title": "ComfyUI-ImageProcessUtilities", + "reference": "https://github.com/einhorn13/ComfyUI-ImageProcessUtilities", + "files": [ + "https://github.com/einhorn13/ComfyUI-ImageProcessUtilities" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI designed to enhance image processing workflows. Especially useful for high-resolution rendering, complex inpainting, tiling, and batch manipulation. This allows you to perform processing that would otherwise exceed your VRAM limits." + }, + { + "author": "khanhlvg", + "title": "[Unofficial] Vertex AI Custom Nodes for ComfyUI", + "reference": "https://github.com/khanhlvg/vertex-ai-comfyui-nodes", + "files": [ + "https://github.com/khanhlvg/vertex-ai-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "Vertex AI Custom Nodes for ComfyUI" + }, + { + "author": "cuban044", + "title": "[Unofficial] ComfyUI-Veo3-Experimental", + "reference": "https://github.com/cuban044/ComfyUI-Veo3-Experimental", + "files": [ + "https://github.com/cuban044/ComfyUI-Veo3-Experimental" + ], + "install_type": "git-clone", + "description": "A custom node extension for ComfyUI that integrates Google's Veo 3 text-to-video generation capabilities." + }, + { + "author": "builmenlabo", + "title": "ComfyUI builmenlabo - Unified Package", + "id": "builmenlabo", + "reference": "https://github.com/comnote-max/builmenlabo", + "files": [ + "https://github.com/comnote-max/builmenlabo" + ], + "install_type": "git-clone", + "description": "Comprehensive collection of ComfyUI custom nodes: 🦙 Advanced LLM text generation with Llama-CPP (CPU/GPU acceleration), 🌐 Smart multi-language prompt translation (Google/DeepL/Yandex/Baidu), 🌍 20-language interface toggle, 📸 AI-powered Gemini pose analysis, 🎛️ Smart ControlNet management. Perfect unified package for AI artists and creators. Blog: https://note.com/hirodream44", + "nodename_pattern": "builmenlabo", + "tags": [ + "LLM", + "translation", + "multilingual", + "pose-analysis", + "controlnet", + "text-generation", + "gemini", + "llama-cpp", + "AI" + ] + }, + { + "author": "Cyrostar", + "title": "Artha-Gemini", + "id": "Artha-Gemini", + "reference": "https://github.com/Cyrostar/Artha-Gemini", + "reference2": "https://github.com/Cyrostar/ComfyUI-Artha-Gemini", + "files": [ + "https://github.com/Cyrostar/Artha-Gemini" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for interacting with the Gemini api for image and video generation prompting." + }, + { + "author": "Cyrostar", + "title": "Artha-Projekt", + "id": "artha-projekt", + "reference": "https://github.com/Cyrostar/Artha-Projekt", + "files": [ + "https://github.com/Cyrostar/Artha-Projekt" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for project management." + }, + { + "author": "GeraldWie", + "title": "ComfyUI-I2I-slim", + "reference": "https://github.com/GeraldWie/ComfyUI-I2I-slim", + "files": [ + "https://github.com/GeraldWie/ComfyUI-I2I-slim" + ], + "install_type": "git-clone", + "description": "A lightweight version of the custom nodes originally developed by [a/ManglerFTW](https://github.com/ManglerFTW/ComfyI2I) for performing image-to-image tasks in ComfyUI." + }, + { + "author": "tauraloke", + "title": "ComfyUI-Unfake-Pixels", + "reference": "https://github.com/tauraloke/ComfyUI-Unfake-Pixels", + "files": [ + "https://github.com/tauraloke/ComfyUI-Unfake-Pixels" + ], + "install_type": "git-clone", + "description": "A ComfyUI node for pixel art scaling. Automatically detects the pixel scale using an edge-aware method (Sobel filter + voting on tiles) and downscales the image to that pixel size, reducing color palette." + }, + { + "author": "adrianschubek", + "title": "comfyui-zeug", + "reference": "https://github.com/adrianschubek/comfyui-zeug", + "files": [ + "https://github.com/adrianschubek/comfyui-zeug" + ], + "install_type": "git-clone", + "description": "comfyui-zeug (German for 'gear' or 'stuff') is a collection of custom nodes for ComfyUI, designed to enhance functionality and provide additional features." + }, + { + "author": "g0kuvonlange", + "title": "ComfyUI Load From URL", + "reference": "https://github.com/g0kuvonlange/ComfyUI-Load-From-URL", + "files": [ + "https://github.com/g0kuvonlange/ComfyUI-Load-From-URL" + ], + "install_type": "git-clone", + "description": "A simple custom node for ComfyUI to load LoRAs and videos directly from a URL. Ideal for users hosting files on a server with publicly accessible URLs." + }, + { + "author": "visualbruno", + "title": "ComfyUI-Hunyuan3d-2-1", + "reference": "https://github.com/visualbruno/ComfyUI-Hunyuan3d-2-1", + "files": [ + "https://github.com/visualbruno/ComfyUI-Hunyuan3d-2-1" + ], + "install_type": "git-clone", + "description": "ComfyUI Wrapper for [a/Hunyuan3D v2.1](https://github.com/Tencent-Hunyuan/Hunyuan3D-2.1) - From Images to High-Fidelity 3D Assets with Production-Ready PBR Material" + }, + { + "author": "AIWarper", + "title": "ComfyUI-DAViD", + "reference": "https://github.com/AIWarper/ComfyUI-DAViD", + "files": [ + "https://github.com/AIWarper/ComfyUI-DAViD" + ], + "install_type": "git-clone", + "description": "An implementation of the DAViD tooling, a method for extracting depth, normals, and masks from an input image." + }, + { + "author": "ComfyUI Studio", + "title": "ComfyUI-Studio-nodes", + "reference": "https://github.com/comfyuistudio/ComfyUI-Studio-nodes", + "files": [ + "https://github.com/comfyuistudio/ComfyUI-Studio-nodes" + ], + "install_type": "git-clone", + "description": "🧩 Aspect Ratio Image Size Calculator, 🖼️ Aspect Ratio Resizer, and 📄 Markdown Link Generator for ComfyUI.", + "tags": ["image", "resize", "aspect-ratio", "markdown", "utils"] + }, + { + "author": "jenn", + "title": "BookCoverFinder", + "reference": "https://github.com/weberjc/book-cover-finder-comfy", + "files": [ + "https://github.com/weberjc/book-cover-finder-comfy" + ], + "install_type": "git-clone", + "description": "Book Cover Finder tool that wraps openlibrary.org" + }, + { + "author": "RndNanthu", + "title": "ComfyUI-RndNanthu", + "id": "ComfyUI-RndNanthu", + "reference": "https://github.com/rndnanthu/ComfyUI-RndNanthu", + "files": [ + "https://github.com/rndnanthu/ComfyUI-RndNanthu" + ], + "install_type": "git-clone", + "description": "Film Grain simulation, Log Color Conversions, Color Scopes (RGB Parade, Vectorscope, Gamut Warnings), False Color, and more." + }, + { + "author": "Pun0110", + "title": "CSV Styler", + "reference": "https://github.com/Pun0110/ComfyUI-CSV-Styler", + "files": [ + "https://github.com/Pun0110/ComfyUI-CSV-Styler" + ], + "install_type": "git-clone", + "description": "Repository contains CSV Styler - custom node for ComfyUI. It loads styles from styles.csv file (Automatic1111 Web-Ui styles.csv format) and combine them with provided positive and negative prompt.\nNOTE: 'styles.csv' should be placed in ComfyUI root directory (near main.py)." + }, + { + "author": "cnnmmd", + "title": "cnnmmd: comfyui_xoxxox_cnnmmd", + "reference": "https://github.com/cnnmmd/comfyui_xoxxox_cnnmmd", + "files": [ + "https://github.com/cnnmmd/comfyui_xoxxox_cnnmmd" + ], + "install_type": "git-clone", + "description": "This is a set of custom nodes for ComfyUI, designed for the following application: [a/https://github.com/cnnmmd/cnnmmd](https://github.com/cnnmmd/cnnmmd)" + }, + { + "author": "CallMe1101", + "title": "ComfyUI_OmniAvatar", + "reference": "https://github.com/CallMe1101/ComfyUI_OmniAvatar", + "files": [ + "https://github.com/CallMe1101/ComfyUI_OmniAvatar" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node developed based on OmniAvatar, capable of generating video sequences with synchronized lip movements and facial expressions by inputting a portrait image, audio, and text prompt. The node parameters and invocation method are fully consistent with the official OmniAvatar inference." + }, + { + "author": "ebrinz", + "title": "ComfyUI-MusicGen-HF", + "reference": "https://github.com/ebrinz/ComfyUI-MusicGen-HF", + "files": [ + "https://github.com/ebrinz/ComfyUI-MusicGen-HF" + ], + "install_type": "git-clone", + "description": "A standalone ComfyUI custom node package for Facebook's MusicGen using Hugging Face Transformers. Generate high-quality music from text prompts with full support for CUDA, MPS (Apple Silicon), and CPU." + }, + { + "author": "mcDandy", + "title": "More Math", + "reference": "https://github.com/mcDandy/more_math", + "files": [ + "https://github.com/mcDandy/more_math" + ], + "install_type": "git-clone", + "description": "Adds math nodes for numbers and types which do not need it." + }, + { + "author": "kmlbdh", + "title": "ComfyUI_LocalLLMNodes", + "reference": "https://github.com/kmlbdh/ComfyUI_LocalLLMNodes", + "files": [ + "https://github.com/kmlbdh/ComfyUI_LocalLLMNodes" + ], + "install_type": "git-clone", + "description": "A custom node pack for ComfyUI that allows you to run Large Language Models (LLMs) locally and use them for prompt generation and other text tasks directly within your ComfyUI workflows." + }, + { + "author": "kmlbdh", + "title": "kmlbdh Video Combine (Smart + Tiled)", + "reference": "https://github.com/kmlbdh/ComfyUI-kmlbdh-VideoCombine", + "files": [ + "https://github.com/kmlbdh/ComfyUI-kmlbdh-VideoCombine" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node designed for stable, high-resolution video export — even on limited hardware." + }, + { + "author": "joosthel", + "title": "ComfyUI-CVOverlay", + "reference": "https://github.com/joosthel/ComfyUI-CVOverlay", + "files": [ + "https://github.com/joosthel/ComfyUI-CVOverlay" + ], + "install_type": "git-clone", + "description": "TouchDesigner-style blob tracking and computer vision effects for ComfyUI. Simple nodes for bright spot detection, plexus connections, and technical aesthetics in video workflows." + }, + { + "author": "fcanfora", + "title": "comfyui-camera-tools", + "reference": "https://github.com/fcanfora/comfyui-camera-tools", + "files": [ + "https://github.com/fcanfora/comfyui-camera-tools" + ], + "install_type": "git-clone", + "description": "NODES: Load Camera From File, Load 3D, Load 3D - Animation, Preview 3D, Preview 3D - Animation" + }, + { + "author": "lokinou", + "title": "ComfyUI-Offload-Models", + "reference": "https://github.com/lokinou/comfyui-offload-models", + "files": [ + "https://github.com/lokinou/comfyui-offload-models" + ], + "install_type": "git-clone", + "description": "Custom nodes to offload and rapatriate models from cpu." + }, + { + "author": "rainlizard", + "title": "Whirlpool Upscaler", + "reference": "https://github.com/rainlizard/ComfyUI-WhirlpoolUpscaler", + "files": [ + "https://github.com/rainlizard/ComfyUI-WhirlpoolUpscaler" + ], + "install_type": "git-clone", + "description": "This is a modified implementation of impact-pack's iterative upscaler. It leans in on the idea that giving too much attention to computation at high resolutions isn't a good idea." + }, + { + "author": "AlfredClark", + "title": "ComfyUI-ModelSpec", + "reference": "https://github.com/AlfredClark/ComfyUI-ModelSpec", + "files": [ + "https://github.com/AlfredClark/ComfyUI-ModelSpec" + ], + "install_type": "git-clone", + "description": "ComfyUI model metadata editing nodes." + }, + { + "author": "zl9739379", + "title": "ComfyUI-ArkVideoGenerate", + "reference": "https://github.com/zl9739379/ComfyUI-ArkVideoGenerate", + "files": [ + "https://github.com/zl9739379/ComfyUI-ArkVideoGenerate" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that integrates ByteDance Volcano Engine's video generation AI model, supporting both text-to-video and image-to-video generation." + }, + { + "author": "YaserJaradeh", + "title": "Yaser-nodes for ComfyUI", + "reference": "https://github.com/YaserJaradeh/comfyui-yaser-nodes", + "files": [ + "https://github.com/YaserJaradeh/comfyui-yaser-nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that provide dynamic input selection and intelligent upscaling functionality." + }, + { + "author": "gvfarns", + "title": "comfyui_gvf", + "reference": "https://github.com/gvfarns/comfyui_gvf", + "files": [ + "https://github.com/gvfarns/comfyui_gvf" + ], + "install_type": "git-clone", + "description": "ComfyUI custom convenience nodes: Cropping images to a given aspect ratio, Cropping images to a max/min aspect ratio, If/else logic with provided float (rather than using a float node)" + }, + { + "author": "mikeshuangyan", + "title": "ComfyUI_MqUtils", + "reference": "https://github.com/mikeshuangyan/ComfyUI_MqUtils", + "files": [ + "https://github.com/mikeshuangyan/ComfyUI_MqUtils" + ], + "install_type": "git-clone", + "description": "MQ util nodes for ComfyUI" + }, + { + "author": "Franklyc", + "title": "ComfyUI LoRA adaLN Patcher Node", + "reference": "https://github.com/Franklyc/comfyui-lora-adain-patcher-node", + "files": [ + "https://github.com/Franklyc/comfyui-lora-adain-patcher-node" + ], + "install_type": "git-clone", + "description": "A simple but powerful custom node for ComfyUI that patches LoRA models by adding dummy adaLN_modulation_1 weights. This solves compatibility errors when using LoRAs with newer model architectures that expect these keys to be present in the final_layer." + }, + { + "author": "Simlym", + "title": "ComfyUI Prompt Helper", + "id": "prompt-helper", + "reference": "https://github.com/Simlym/comfyui-prompt-helper", + "files": [ + "https://github.com/Simlym/comfyui-prompt-helper" + ], + "install_type": "git-clone", + "description": "A simple and intuitive prompt management tool for ComfyUI." + }, + { + "author": "woct0rdho", + "title": "ComfyUI-RadialAttn", + "reference": "https://github.com/woct0rdho/ComfyUI-RadialAttn", + "files": [ + "https://github.com/woct0rdho/ComfyUI-RadialAttn" + ], + "install_type": "git-clone", + "description": "RadialAttention in ComfyUI native workflow" + }, + { + "author": "jiafuzeng", + "title": "LatentSync", + "reference": "https://github.com/jiafuzeng/comfyui-LatentSync", + "files": [ + "https://github.com/jiafuzeng/comfyui-LatentSync" + ], + "install_type": "git-clone", + "description": "We present LatentSync, an end-to-end lip-sync method based on audio-conditioned latent diffusion models without any intermediate motion representation, diverging from previous diffusion-based lip-sync methods based on pixel-space diffusion or two-stage generation. Our framework can leverage the powerful capabilities of Stable Diffusion to directly model complex audio-visual correlations." + }, + { + "author": "What-a-stupid-username", + "title": "comfyui_InversedSampler", + "reference": "https://github.com/What-a-stupid-username/comfyui-InversedSampler", + "files": [ + "https://github.com/What-a-stupid-username/comfyui-InversedSampler" + ], + "install_type": "git-clone", + "description": "A inversed euler sampler to revert image to noisy latent. Can be used to improve content consistency when perform I2I." + }, + { + "author": "rubenvillarreal", + "title": "ComfyUI_PoseAlign", + "reference": "https://github.com/rubenvillarreal/ComfyUI_PoseAlign", + "files": [ + "https://github.com/rubenvillarreal/ComfyUI_PoseAlign" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that provides pose alignment functionality." + }, + { + "author": "charlyad142", + "title": "ComfyUI Charly FitToAspectNode", + "reference": "https://github.com/charlyad142/ComfyUI_Charly_FitToAspectNode", + "files": [ + "https://github.com/charlyad142/ComfyUI_Charly_FitToAspectNode" + ], + "install_type": "git-clone", + "description": "Un nodo personalizado para ComfyUI que ajusta imágenes a diferentes relaciones de aspecto manteniendo las proporciones originales." + }, + { + "author": "Rizzlord", + "title": "ComfyUI-RizzNodes", + "reference": "https://github.com/Rizzlord/ComfyUI-RizzNodes", + "files": [ + "https://github.com/Rizzlord/ComfyUI-RizzNodes" + ], + "install_type": "git-clone", + "description": "RizzNodes for ComfyUI Welcome to RizzNodes, a collection of custom nodes for ComfyUI designed to streamline various workflows, from loading images and models in batches to dynamic prompt generation and memory management." + }, + { + "author": "jupo-ai", + "title": "comfy-aspect-ratios", + "id": "comfy-aspect-ratios", + "reference": "https://github.com/jupo-ai/comfy-aspect-ratios", + "files": [ + "https://github.com/jupo-ai/comfy-aspect-ratios" + ], + "install_type": "git-clone", + "description": "generate empty latent with aspect ratios" + }, + { + "author": "Brekel", + "title": "ComfyUI-Brekel", + "id": "brekel", + "reference": "https://github.com/Brekel/ComfyUI-Brekel", + "files": [ + "https://github.com/Brekel/ComfyUI-Brekel" + ], + "install_type": "git-clone", + "description": "Nodes to enhance & streamline prompts. Enhance using local LLM within ComfyUI, generate using random lines from text files, or randomly select text file prompts" + }, + { + "author": "judian17", + "title": "ComfyUI-JoyCaption-beta-one-hf-llava-Prompt_node", + "reference": "https://github.com/judian17/ComfyUI-JoyCaption-beta-one-hf-llava-Prompt_node", + "files": [ + "https://github.com/judian17/ComfyUI-JoyCaption-beta-one-hf-llava-Prompt_node" + ], + "install_type": "git-clone", + "description": "Prompt node for the [a/JoyCaption-beta-one-hf-llava](https://huggingface.co/mradermacher/llama-joycaption-beta-one-hf-llava-GGUF) model, to use JoyCaption-beta-one-hf-llava with Ollama" + }, + { + "author": "juddisjudd", + "title": "Bawk Nodes Collection", + "reference": "https://github.com/juddisjudd/ComfyUI-BawkNodes", + "files": [ + "https://github.com/juddisjudd/ComfyUI-BawkNodes" + ], + "install_type": "git-clone", + "description": "A complete collection of FLUX-optimized ComfyUI nodes for enhanced AI image generation workflows." + }, + { + "author": "comfyui-wiki", + "title": "ComfyUI Wiki Workflows", + "reference": "https://github.com/comfyui-wiki/ComfyUI-Wiki-Workflows", + "files": [ + "https://github.com/comfyui-wiki/ComfyUI-Wiki-Workflows" + ], + "install_type": "git-clone", + "description": "Workflow templates from ComfyUI Wiki - No custom nodes or dependencies included" + }, + { + "author": "tercumantanumut", + "title": "ComfyUI-Omini-Kontext", + "reference": "https://github.com/tercumantanumut/ComfyUI-Omini-Kontext", + "files": [ + "https://github.com/tercumantanumut/ComfyUI-Omini-Kontext" + ], + "install_type": "git-clone", + "description": "Wrapper ComfyUI integration for the [a/Flux Omini Kontext](https://github.com/Saquib764/omini-kontext) pipeline, enabling seamless character/object insertion into scenes using FLUX.1-Kontext-dev with LoRA adaptation." + }, + { + "author": "stduhpf", + "title": "WanImageToVideoTiledVAE for ComfyUI", + "reference": "https://github.com/stduhpf/ComfyUI--WanImageToVideoTiled", + "files": [ + "https://github.com/stduhpf/ComfyUI--WanImageToVideoTiled" + ], + "install_type": "git-clone", + "description": "This is a set of custom nodes for ComfyUI that replaces nodes like WanImageToVideo but using a Tiled VAE approach to reduce VRAM requirements." + }, + { + "author": "stduhpf", + "title": "Wan22FirstLastFrameToVideoLatent for ComfyUI", + "reference": "https://github.com/stduhpf/ComfyUI--Wan22FirstLastFrameToVideoLatent", + "files": [ + "https://github.com/stduhpf/ComfyUI--Wan22FirstLastFrameToVideoLatent" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that can be used to generate videos from either a starting frame, an end frame or both; with the Wan2.2 5B model (which uses the new Wan2.2 VAE, unlike Wan 2.2 A14B model wich uses the old Wan2.1 VAE)." + }, + { + "author": "stduhpf", + "title": "KSampler for Wan 2.2 MoE for ComfyUI", + "reference": "https://github.com/stduhpf/ComfyUI-WanMoeKSampler", + "files": [ + "https://github.com/stduhpf/ComfyUI-WanMoeKSampler" + ], + "install_type": "git-clone", + "description": "These nodes are made to support 'Mixture of Expert' Flow models with the architecture of Wan2.2 A14B (With a high noise expert and low noise expert). Instead of guessing the denoising step at which to swap from tyhe high noise model to the low noise model, this node automatically chanage to the low noise model when we reach the diffusion timestep at which the signal to noise ratio is supposed to be 1:1." + }, + { + "author": "kanibus", + "title": "KANIBUS - Advanced Eye Tracking ControlNet System", + "reference": "https://github.com/kanibus/kanibus", + "files": [ + "https://github.com/kanibus/kanibus" + ], + "install_type": "git-clone", + "description": "Advanced Eye Tracking ControlNet System for ComfyUI - Professional eye-tracking with MediaPipe, 6-DOF Kalman filtering, and WAN 2.1/2.2 compatibility" + }, + { + "author": "Novice_Chen", + "title": "ComfyUI-XingLiu", + "reference": "https://github.com/NewNoviceChen/ComfyUI-XingLiu", + "files": [ + "https://github.com/NewNoviceChen/ComfyUI-XingLiu" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that integrates LibLib's text-to-image and image-to-image generation capabilities, with customizable ControlNet and Lora support." + }, + { + "author": "chuchu114514", + "title": "comfyui_text_list_stepper", + "reference": "https://github.com/chuchu114514/comfyui_text_list_stepper", + "files": [ + "https://github.com/chuchu114514/comfyui_text_list_stepper" + ], + "install_type": "git-clone", + "description": "Used for batch extraction of prompt words." + }, + { + "author": "ranska", + "title": "Pixel Palette Art", + "reference": "https://github.com/ranska/pixel_palette_art", + "files": [ + "https://github.com/ranska/pixel_palette_art" + ], + "install_type": "git-clone", + "description": "Comfyui custom node: Set of tools for pixel art palette." + }, + { + "author": "SaturMars", + "title": "ComfyUI-NVVFR", + "reference": "https://github.com/SaturMars/ComfyUI-NVVFR", + "files": [ + "https://github.com/SaturMars/ComfyUI-NVVFR" + ], + "install_type": "git-clone", + "description": "ComfyUI node for video super-resolution and frame interpolation using [a/NVEncC](https://github.com/rigaya/NVEnc)." + }, + { + "author": "SaturMars", + "title": "ComfyUI Qwen LoRA Converter Node", + "reference": "https://github.com/SaturMars/ComfyUI-QwenImageLoraConverter", + "files": [ + "https://github.com/SaturMars/ComfyUI-QwenImageLoraConverter" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI custom node used to convert Qwen-Image LoRA files trained on the ModelScope platform to a format that ComfyUI can recognize." + }, + { + "author": "jqy-yo", + "title": "ComfyUI Gemini Nodes", + "id": "gemini-nodes-jqy", + "reference": "https://github.com/jqy-yo/comfyui-gemini-nodes", + "files": [ + "https://github.com/jqy-yo/comfyui-gemini-nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for integrating Google Gemini API with ComfyUI, providing powerful AI capabilities for text generation, image generation, and video analysis. Nodes: Gemini Text API, Gemini Image Editor, Gemini Image Gen Advanced, Gemini Video Captioner." + }, + { + "author": "fidecastro", + "title": "comfyui-llamacpp-client", + "reference": "https://github.com/fidecastro/comfyui-llamacpp-client", + "files": [ + "https://github.com/fidecastro/comfyui-llamacpp-client" + ], + "install_type": "git-clone", + "description": "A comprehensive ComfyUI custom node that provides complete client functionality for llama-server from [a/llama.cpp](https://github.com/ggml-org/llama.cpp). This node acts as a bridge between ComfyUI workflows and llama-server instances, supporting every single parameter and endpoint that llama-server offers." + }, + { + "author": "PICOPON", + "title": "ComfyUI OpenAI Node", + "reference": "https://github.com/PICOPON/ComfyUI-API-OpenAI-Node", + "files": [ + "https://github.com/PICOPON/ComfyUI-API-OpenAI-Node" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node that integrates OpenAI-compatible APIs for prompt generation and enhancement, specifically designed for Stable Diffusion workflows." + }, + { + "author": "verIdyia", + "title": "ComfyUI Qwen-Image DFloat11 Nodes", + "reference": "https://github.com/verIdyia/ComfyUI-Qwen-Image-DF11", + "files": [ + "https://github.com/verIdyia/ComfyUI-Qwen-Image-DF11" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for the DFloat11 compressed Qwen-Image model. This package provides efficient image generation with reduced memory usage through DFloat11 compression technology." + }, + { + "author": "snomiao", + "title": "ComfyUI Video Crop", + "reference": "https://github.com/snomiao/ComfyUI-Video-Crop", + "files": [ + "https://github.com/snomiao/ComfyUI-Video-Crop" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for cropping videos using FFmpeg with pixel-precise control." + }, + { + "author": "max-dingsda", + "title": "OllamaTools for ComfyUI", + "reference": "https://github.com/max-dingsda/OllamaTools", + "files": [ + "https://github.com/max-dingsda/OllamaTools" + ], + "install_type": "git-clone", + "description": "This project makes local LLMs easy to use for prompt enhancement and image captioning –No API keys. No external tools. No headache." + }, + { + "author": "HWDigi", + "title": "Factory Prompt Generator", + "reference": "https://github.com/HWDigi/Factory-Prompts_comfyui", + "files": [ + "https://github.com/HWDigi/Factory-Prompts_comfyui" + ], + "install_type": "git-clone", + "description": "A comprehensive ComfyUI custom node suite for advanced Safe for Work prompt generation across all checkpoint types (Pony, SDXL, SD1.5, and more). This SFW edition is specifically designed for professional workflows, educational environments, and GitHub hosting compliance." + }, + { + "author": "BitWalker", + "title": "FlowCV", + "reference": "https://github.com/Koren-cy/FlowCV", + "files": [ + "https://github.com/Koren-cy/FlowCV" + ], + "install_type": "git-clone", + "description": "Visual opencv node package based on comfy ui" + }, + { + "author": "switzerswish", + "title": "LoRA Visualizer", + "reference": "https://github.com/oliverswitzer/ComfyUI-Lora-Visualizer", + "files": [ + "https://github.com/oliverswitzer/ComfyUI-Lora-Visualizer" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that parses prompt text for LoRA tags and visualizes their metadata, including trigger words, strength values, thumbnail previews, and example images." + }, + { + "author": "diogod", + "title": "TTS Audio Suite", + "reference": "https://github.com/diodiogod/TTS-Audio-Suite", + "files": [ + "https://github.com/diodiogod/TTS-Audio-Suite" + ], + "install_type": "git-clone", + "description": "TTS Audio Suite - Universal multi-engine TTS extension for ComfyUI with unified architecture supporting ChatterBox, F5-TTS, and future engines like RVC. Features modular engine adapters, character voice management, comprehensive SRT subtitle support, and advanced audio processing capabilities." + }, + { + "author": "Ferocit", + "title": "comfyui-feroccustomnodes", + "reference": "https://github.com/Ferocit/comfyui-feroccustomnodes", + "files": [ + "https://github.com/Ferocit/comfyui-feroccustomnodes" + ], + "install_type": "git-clone", + "description": "This repository contains custom nodes for ComfyUI, designed to enhance your workflow with text-based operations, particularly for managing and utilizing descriptive texts." + }, + { + "author": "drozbay", + "title": "ComfyUI-WanVaceAdvanced", + "reference": "https://github.com/drozbay/ComfyUI-WanVaceAdvanced", + "files": [ + "https://github.com/drozbay/ComfyUI-WanVaceAdvanced" + ], + "install_type": "git-clone", + "description": "Advanced/Experimental VACE nodes for WAN video models in ComfyUI." + }, + { + "author": "Lovzu", + "title": "KittenTTS Node for Voice Generation", + "reference": "https://github.com/Lovzu/ComfyUI-KittenTTS", + "files": [ + "https://github.com/Lovzu/ComfyUI-KittenTTS" + ], + "install_type": "git-clone", + "description": "Ultra-lightweight text-to-speech model with just 15 million parameters" + }, + { + "author": "Pirog17000", + "title": "Pirog's Nodes for ComfyUI", + "reference": "https://github.com/Pirog17000/Pirogs-Nodes", + "files": [ + "https://github.com/Pirog17000/Pirogs-Nodes" + ], + "install_type": "git-clone", + "description": "Pirog's Nodes - ComfyUI custom node pack providing enhanced sampling functionality" + }, + { + "author": "vsaan212", + "title": "ComfyUI Text Split Node", + "reference": "https://github.com/vsaan212/Comfy-ui-textsplit", + "files": [ + "https://github.com/vsaan212/Comfy-ui-textsplit" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node that splits text into multiple outputs for feeding complex multi-scene renders. This node allows you to dynamically control the number of splits and use custom separators." + }, + { + "author": "eric183", + "title": "ComfyUI-Only", + "id": "comfyui-only", + "reference": "https://github.com/eric183/ComfyUI-Only", + "files": [ + "https://github.com/eric183/ComfyUI-Only" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI, originally focused on workflow parsing, now expanded to provide advanced file loading features like 'Load Latent (Advanced)' for drag-and-drop latent file uploads and 'WorkflowImageFileLoader' for parsing prompts from image metadata. It also adds a js extension for a better UI experience." + }, + { + "author": "squirrel765", + "title": "ComfyUI-LLM-VLM-Node", + "reference": "https://github.com/squirrel765/ComfyUI-LLM-VLM-Node", + "files": [ + "https://github.com/squirrel765/ComfyUI-LLM-VLM-Node" + ], + "install_type": "git-clone", + "description": "A unified ComfyUI node for both LLM (text-only) and VLM (image-to-text) generation using GGUF models.." + }, + { + "author": "squirrel765", + "title": "comfyui-ea-nodes", + "reference": "https://github.com/ExoticArts/comfyui-ea-nodes", + "files": [ + "https://github.com/ExoticArts/comfyui-ea-nodes" + ], + "install_type": "git-clone", + "description": "ExoticArts custom nodes for ComfyUI (EA Power LoRA, etc.)" + }, + { + "author": "HSDHCdev", + "title": "AI Pixel Art Enhancer for ComfyUI", + "reference": "https://github.com/HSDHCdev/ComfyUI-AI-Pixel-Art-Enhancer", + "files": [ + "https://github.com/HSDHCdev/ComfyUI-AI-Pixel-Art-Enhancer" + ], + "install_type": "git-clone", + "description": "Pixel art Enhancement Node for ComfyUI" + }, + { + "author": "Rzgar Espo", + "title": "ComfyUI-Qwen-Image-Size-Picker", + "reference": "https://github.com/rzgarespo/ComfyUI-qwen-image-size-picker", + "files": [ + "https://github.com/rzgarespo/ComfyUI-qwen-image-size-picker" + ], + "install_type": "git-clone", + "description": "A universal node for generating empty latent tensors with support for Qwen Image, SDXL and Flux models. Features extended aspect ratio support, batch processing, and flexible dimension overrides." + }, + { + "author": "luke-mino-altherr", + "title": "ComfyUI-Latent-Reverb", + "reference": "https://github.com/luke-mino-altherr/ComfyUI-LatentReverb", + "files": [ + "https://github.com/luke-mino-altherr/ComfyUI-LatentReverb" + ], + "install_type": "git-clone", + "description": "Creates spatial echo and ambient effects by applying reverb-like processing directly in latent space" + }, + { + "author": "Baverne", + "title": "comfyUI-TiledWan", + "reference": "https://github.com/Baverne/comfyUI-TiledWan", + "files": [ + "https://github.com/Baverne/comfyUI-TiledWan" + ], + "install_type": "git-clone", + "description": "Node set and workflow to run wan2.1 vace with tiled while keeping temporal and spatial consistency" + }, + { + "author": "teamalpha-ai", + "title": "ComfyUI-ImageTransformer", + "reference": "https://github.com/teamalpha-ai/comfyui-image-transformer", + "files": [ + "https://github.com/teamalpha-ai/comfyui-image-transformer" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for Image Transformer" + }, + { + "author": "karas17", + "title": "ComfyUI Camera Watermark", + "reference": "https://github.com/karas17/ComfyUI-Camera-Watermark", + "files": [ + "https://github.com/karas17/ComfyUI-Camera-Watermark" + ], + "install_type": "git-clone", + "description": "A versatile and highly customizable node for ComfyUI to add camera-style watermarks and frames to your images. Whether you want to emulate the classic Leica look, add EXIF data, or create professional-looking framed images, this plugin has you covered." + }, + { + "author": "shinyakidoguchi301", + "title": "shinyakidoguchi301/LoRA Tag Loader for ComfyUI", + "reference": "https://github.com/shinyakidoguchi301/comfyui-lora-tag-loader", + "files": [ + "https://github.com/shinyakidoguchi301/comfyui-lora-tag-loader" + ], + "install_type": "git-clone", + "description": "This custom node allows you to select a LoRA file from the models/loras directory (including subfolders), automatically load training tags from metadata or Eagle MEMO, set strength, and optionally display a preview image." + }, + { + "author": "njlent", + "title": "ComfyUI Wavelet Color Fix", + "reference": "https://github.com/njlent/ComfyUI_wavelet-colorfix", + "files": [ + "https://github.com/njlent/ComfyUI_wavelet-colorfix" + ], + "install_type": "git-clone", + "description": "This is a standalone node pack that provides powerful color correction methods for ComfyUI, extracted from the ComfyUI-DLoRAL project. It allows you to transfer the color profile from a source image or video to a target image or video.\nThis is ideal for restoring the original color to AI-processed videos (like upscaling or frame interpolation) or for creative color grading." + }, + { + "author": "flybirdxx", + "title": "ComfyUI-SDMatte", + "reference": "https://github.com/flybirdxx/ComfyUI-SDMatte", + "files": [ + "https://github.com/flybirdxx/ComfyUI-SDMatte" + ], + "install_type": "git-clone", + "description": "SDMatte is an interactive image matting method based on stable diffusion, which supports three types of visual prompts (points, boxes, and masks) for accurately extracting target objects from natural images." + }, + { + "author": "DenRakEiw", + "title": "ComfyUI Latent Color Tools", + "reference": "https://github.com/DenRakEiw/Latent_Nodes", + "files": [ + "https://github.com/DenRakEiw/Latent_Nodes" + ], + "install_type": "git-clone", + "description": "Advanced color manipulation and image adjustments directly in ComfyUI's latent space" + }, + { + "author": "DenRakEiw", + "title": "Universal NN Latent Upscaler for ComfyUI", + "reference": "https://github.com/DenRakEiw/WAN_NN_Latent_Upscale", + "files": [ + "https://github.com/DenRakEiw/WAN_NN_Latent_Upscale" + ], + "install_type": "git-clone", + "description": "A universal neural network latent upscaler that supports SD1.5, SDXL, Flux, and Wan2.2 models. Uses trained neural networks instead of simple interpolation for higher quality latent upscaling.\nBuilt upon the excellent foundation of [a/Ttl's ComfyUi_NNLatentUpscale](https://github.com/Ttl/ComfyUi_NNLatentUpscale) - this project extends the original work with universal model support and improved architectures." + }, + { + "author": "RainyN0077", + "title": "ComfyUI-PromptSE", + "id": "comfyui-promptse", + "reference": "https://github.com/RainyN0077/ComfyUI-PromptSE", + "files": [ + "https://github.com/RainyN0077/ComfyUI-PromptSE" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI custom node for managing and combining multiple prompt entries. Supports weight adjustment, lexicon assistance, drag-and-drop sorting, and global settings to greatly enhance prompt engineering efficiency and flexibility." + }, + { + "author": "kusurin", + "title": "ComfyUI-chronophotography", + "reference": "https://github.com/kusurin/ComfyUI-chronophotography", + "files": [ + "https://github.com/kusurin/ComfyUI-chronophotography" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for creating chronophotography effects from video frames" + }, + { + "author": "feffy380", + "title": "Chroma Cache", + "reference": "https://github.com/feffy380/comfyui-chroma-cache", + "files": [ + "https://github.com/feffy380/comfyui-chroma-cache" + ], + "install_type": "git-clone", + "description": "Caching optimization for Chroma" + }, + { + "author": "FearL0rd", + "title": "ComfyUI MaskAIFingerprint", + "reference": "https://github.com/FearL0rd/ComfyUI-MaskAIFingerprint", + "files": [ + "https://github.com/FearL0rd/ComfyUI-MaskAIFingerprint" + ], + "install_type": "git-clone", + "description": "Attempt to create a ComfyUI node for masking AI-generated fingerprints." + }, + { + "author": "Alectriciti", + "title": "comfyui-adaptiveprompts", + "reference": "https://github.com/Alectriciti/comfyui-adaptiveprompts", + "files": [ + "https://github.com/Alectriciti/comfyui-adaptiveprompts" + ], + "install_type": "git-clone", + "description": "Adaptive Prompts is a modern reimagining of dynamic prompts for ComfyUI. It lets you randomize, restructure, and clean up prompts with powerful wildcard and string tools. For the sake of consistency, I will still refer to them as Dynamic Prompts." + }, + { + "author": "VraethrDalkr", + "title": "ComfyUI-ProgressiveBlend", + "reference": "https://github.com/VraethrDalkr/ComfyUI-ProgressiveBlend", + "files": [ + "https://github.com/VraethrDalkr/ComfyUI-ProgressiveBlend" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that enable progressive blending and color matching effects across image batches/video frames." + }, + { + "author": "NHLStenden", + "title": "ComfyUI-ImageBag", + "reference": "https://github.com/NHLStenden/ComfyUI-ImageBag", + "files": [ + "https://github.com/NHLStenden/ComfyUI-ImageBag" + ], + "install_type": "git-clone", + "description": "A custom node package for ComfyUI featuring advanced image processing tools." + }, + { + "author": "jupo-ai", + "title": "comfy-preview-model", + "id": "comfy-preview-model", + "reference": "https://github.com/jupo-ai/comfy-preview-model", + "files": [ + "https://github.com/jupo-ai/comfy-preview-model" + ], + "install_type": "git-clone", + "description": "Preview media file in model's dir." + }, + { + "author": "jupo-ai", + "title": "comfy-join-prompt", + "id": "comfy-join-prompt", + "reference": "https://github.com/jupo-ai/comfy-join-prompt", + "files": [ + "https://github.com/jupo-ai/comfy-join-prompt" + ], + "install_type": "git-clone", + "description": "Join Multiline text." + }, + { + "author": "apeirography", + "title": "DaimalyadNodes", + "reference": "https://github.com/apeirography/DaimalyadNodes", + "files": [ + "https://github.com/apeirography/DaimalyadNodes" + ], + "install_type": "git-clone", + "description": "Model Downloader + API-Friendly Wildcard Processor for ComfyUI" + }, + { + "author": "mamorett", + "title": "MiniCPM‑V‑4 (GGUF) for ComfyUI", + "reference": "https://github.com/mamorett/ComfyUI_minicpmv4", + "files": [ + "https://github.com/mamorett/ComfyUI_minicpmv4" + ], + "install_type": "git-clone", + "description": "Modular ComfyUI nodes to run the vision-language model MiniCPM‑V‑4 in GGUF format, powered by llama‑cpp‑python." + }, + { + "author": "Verolelb", + "title": "ComfyUI-Qwen-Aspect-Ratio", + "reference": "https://github.com/Verolelb/ComfyUI-Qwen-Aspect-Ratio", + "files": [ + "https://github.com/Verolelb/ComfyUI-Qwen-Aspect-Ratio" + ], + "install_type": "git-clone", + "description": "A node to provide recommended aspect ratios for the Qwen model series." + }, + { + "author": "jupo-ai", + "title": "comfy-linear-move", + "id": "comfy-linear-move", + "reference": "https://github.com/jupo-ai/comfy-linear-move", + "files": [ + "https://github.com/jupo-ai/comfy-linear-move" + ], + "install_type": "git-clone", + "description": "Move nodes linearly." + }, + { + "author": "Marco Zanella", + "title": "ComfyUI-BooleanExpression", + "id": "ComfyUI-BooleanExpression", + "reference": "https://github.com/marco-zanella/ComfyUI-BooleanExpression", + "files": [ + "https://github.com/marco-zanella/ComfyUI-BooleanExpression" + ], + "install_type": "git-clone", + "tags": ["boolean", "logic", "comparison"], + "description": "A collection of logic and comparison nodes for ComfyUI. This package adds building blocks for boolean logic, arithmetic comparisons, and string comparisons, making it easier to design conditional workflows directly in ComfyUI." + }, + { + "author": "WeChatCV", + "title": "Stand-In Official Preprocessor ComfyUI Nodes", + "reference": "https://github.com/WeChatCV/Stand-In_Preprocessor_ComfyUI", + "files": [ + "https://github.com/WeChatCV/Stand-In_Preprocessor_ComfyUI" + ], + "install_type": "git-clone", + "description": "This repository provides a temporary ComfyUI node implementation of the Stand-In preprocessor, aiming to correct the misunderstanding of Stand-In’s preprocessing logic in [a/ComfyUI-WanVideoWrapper](https://github.com/kijai/ComfyUI-WanVideoWrapper).\n[w/We strongly recommend using the workflows provided in this repo to ensure proper compatibility and the best identity-preserving performance.]" + }, + { + "author": "SilverAndJade", + "title": "ComfyUI Silver Nodes", + "reference": "https://github.com/SilverAndJade/comfyui-silver-nodes", + "files": [ + "https://github.com/SilverAndJade/comfyui-silver-nodes" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for ComfyUI that enhance workflow capabilities with advanced loaders and processing tools." + }, + { + "author": "vsLinx", + "title": "ComfyUI vsLinx Nodes", + "id": "comfyui-vslinx-nodes", + "reference": "https://github.com/vslinx/ComfyUI-vslinx-nodes", + "files": [ + "https://github.com/vslinx/ComfyUI-vslinx-nodes" + ], + "install_type": "git-clone", + "description": "Custom nodes that let you quickly load multiple images via a multi-select dialog with preview. The images are instantly uploaded to the input folder and can be output either as a list or a batch. " + }, + { + "author": "HoangYell", + "title": "comfyui-hoangyell-video-edit", + "reference": "https://github.com/HoangYell/comfyui-hoangyell-video", + "files": [ + "https://github.com/HoangYell/comfyui-hoangyell-video" + ], + "install_type": "git-clone", + "description": "A collection of custom ComfyUI nodes for advanced video processing and editing workflows." + }, + { + "author": "krigeta", + "title": "qwen-image-controlnets-comfyui", + "reference": "https://github.com/krigeta/qwen-image-controlnets-comfyui", + "files": [ + "https://github.com/krigeta/qwen-image-controlnets-comfyui" + ], + "install_type": "git-clone", + "description": "creating a custom node to test how to use Blocknet controlnets in comfyUI using logic from Diffsynth Studio." + }, + { + "author": "L33chKing", + "title": "Tag Frequency Weighter for ComfyUI", + "reference": "https://github.com/L33chKing/comfyui-tag-frequency-weighter", + "files": [ + "https://github.com/L33chKing/comfyui-tag-frequency-weighter" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that weights tags based on their frequency/rarity in danbooru" + }, + { + "author": "routhakash", + "title": "AkkiNodes LLM Suite: Your Personal AI Film Studio", + "reference": "https://github.com/routhakash/AkkiNodes-LLM-Suite-for-ComfyUI", + "files": [ + "https://github.com/routhakash/AkkiNodes-LLM-Suite-for-ComfyUI" + ], + "install_type": "git-clone", + "description": "A suite of advanced ComfyUI custom nodes for a complete 'Script-to-Screen' workflow, powered by local LLMs." + }, + { + "author": "moonwhaler", + "title": "SeedVR2 Tiling Upscaler", + "reference": "https://github.com/moonwhaler/comfyui-seedvr2-tilingupscaler", + "files": [ + "https://github.com/moonwhaler/comfyui-seedvr2-tilingupscaler" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for memory-efficient image upscaling using SeedVR2 models with advanced tiling and detail-preserving stitching." + }, + { + "author": "saquib764", + "title": "Omini Kontext", + "id": "omini_kontext_editor", + "reference": "https://github.com/Saquib764/omini-kontext", + "files": [ + "https://github.com/Saquib764/omini-kontext" + ], + "install_type": "git-clone", + "description": "Nodes to use Omini Kontext framework for multi-image reference using Flux Kontext model. It has node to for Nunchaku compatibility. The is an editor node to place the character/product on the image for spatial control." + }, + { + "author": "obisin", + "title": "ComfyUI - DGLS (Dynamic GPU Layer Swapping)", + "reference": "https://github.com/obisin/ComfyUI-DGLS", + "files": [ + "https://github.com/obisin/ComfyUI-DGLS" + ], + "install_type": "git-clone", + "description": "Smart dynamic layer swapping between GPU and CPU for optimal inference performance with comprehensive mixed precision handling and copy-compute overlap optimization. Enables running much larger models on limited VRAM setups." + }, + { + "author": "Dehypnotic", + "title": "NumberedText", + "reference": "https://github.com/Dehypnotic/comfyui-numbered-text", + "files": [ + "https://github.com/Dehypnotic/comfyui-numbered-text" + ], + "install_type": "git-clone", + "description": "Lightweight node to number text divisions (one per newline) and select single/multiple divisions by index with an optional separator" + }, + { + "author": "rickrender", + "title": "Vectorizer API", + "reference": "https://github.com/rickrender/ComfyUI-Vectorizer-API", + "files": [ + "https://github.com/rickrender/ComfyUI-Vectorizer-API" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI nodes for interfacing with the Vectorizer.ai API. Manipulate the results with options for scaling the SVG result back to raster image with increased resolution. Includes a background remover node to remove a prevalent background color from raster images. Enter credentials in config.json or directly within the node." + }, + { + "author": "TinyBeeman", + "title": "ComfyUI-TinyBee", + "reference": "https://github.com/TinyBeeman/ComfyUI-TinyBee", + "files": [ + "https://github.com/TinyBeeman/ComfyUI-TinyBee" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI, designed to provide utility functions for list processing, file management, and more." + }, + { + "author": "Hangover3832", + "title": "ComfyUI_Hangover-Utils", + "reference": "https://github.com/Hangover3832/ComfyUI_Hangover-Utils", + "files": [ + "https://github.com/Hangover3832/ComfyUI_Hangover-Utils" + ], + "install_type": "git-clone", + "description": "This repository fully replaces and extends the previous Hangover Nodes" + }, + { + "author": "Onionman61", + "title": "ComfyUI ModelScope Kontext API Node", + "reference": "https://github.com/Onionman61/ComfyUI-ModelScope-Kontext", + "files": [ + "https://github.com/Onionman61/ComfyUI-ModelScope-Kontext" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that allows users to perform Image-to-Image generation by calling the FLUX.1-Kontext-Dev model via the official ModelScope API." + }, + { + "author": "svntax", + "title": "ComfyUI-RetroDiffusion-API-Node", + "reference": "https://github.com/svntax/ComfyUI-RetroDiffusion-API-Node", + "files": [ + "https://github.com/svntax/ComfyUI-RetroDiffusion-API-Node" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for the [a/Retro Diffusion API](https://retrodiffusion.ai/)" + }, + { + "author": "chyer", + "title": "Chye ComfyUI Toolset", + "reference": "https://github.com/chyer/Chye-ComfyUI-Toolset", + "files": [ + "https://github.com/chyer/Chye-ComfyUI-Toolset" + ], + "install_type": "git-clone", + "description": "A comprehensive toolset of ComfyUI custom nodes for latent generation, image processing, and workflow utilities" + }, + { + "author": "bhvbhushan", + "title": "ComfyUI LoRA Block Weight Loader", + "reference": "https://github.com/bhvbhushan/ComfyUI-LoRABlockWeight", + "files": [ + "https://github.com/bhvbhushan/ComfyUI-LoRABlockWeight" + ], + "install_type": "git-clone", + "description": "Advanced LoRA loader with per-block weight control for fine-grained influence over different model layers in ComfyUI" + }, + { + "author": "BEIBEI-star661", + "title": "SJ_sweepEffect_Comfyui", + "reference": "https://github.com/BEIBEI-star661/SJ_sweepEffect_Comfyui", + "files": [ + "https://github.com/BEIBEI-star661/SJ_sweepEffect_Comfyui" + ], + "install_type": "git-clone", + "description": "A high-quality sweep light effect node designed specifically for ComfyUI, supporting multiple parameter adjustments and anti-aliasing." + }, + { + "author": "ReinerBforartists", + "title": "Auto Prompt Schedule", + "reference": "https://github.com/ReinerBforartists/comfyui_auto_prompt_schedule", + "files": [ + "https://github.com/ReinerBforartists/comfyui_auto_prompt_schedule" + ], + "install_type": "git-clone", + "description": "Auto Prompt Schedule is a ComfyUI helper node for the Prompt Schedule Node or the Batch Prompt Schedule node from Fizzledorf. You need this Prompt Schedule nodes to make use of the Auto Prompt Schedule Node." + }, + { + "author": "ReinerBforartists", + "title": "ComfyUI_Text_Line_Combine", + "reference": "https://github.com/ReinerBforartists/comfyui_text_line_combine", + "files": [ + "https://github.com/ReinerBforartists/comfyui_text_line_combine" + ], + "install_type": "git-clone", + "description": "Combines texts line by line to a single text" + }, + { + "author": "dimtoneff", + "title": "ComfyUI-VL-Nodes", + "reference": "https://github.com/dimtoneff/ComfyUI-VL-Nodes", + "files": [ + "https://github.com/dimtoneff/ComfyUI-VL-Nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that integrates various Vision-Language (VL) models, including Xiaomi MiMo-VL, LiquidAI LFM2-VL, Kwai Keye-VL, AIDC-AI Ovis2.5 and Ovis-U1. Tested with models: AIDC-AI/Ovis2.5-2B, AIDC-AI/Ovis2.5-9B, Kwai-Keye/Keye-VL-8B-Preview, MiMo-VL-7B-RL-GGUF, LiquidAI/LFM2-VL-450M, LiquidAI/LFM2-VL-1.6B, AIDC-AI/Ovis-U1-3B." + }, + { + "author": "mangobyed", + "title": "ComfyUI YOLOv8 Object Detection Node", + "reference": "https://github.com/mangobyed/ComfyUI_Detection_List", + "files": [ + "https://github.com/mangobyed/ComfyUI_Detection_List" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI custom node that performs object detection using YOLOv8 and outputs individual images for each detected object. Perfect for automatic mask generation, object isolation, and batch processing workflows." + }, + { + "author": "Daxamur", + "title": "DaxNodes", + "reference": "https://civitai.com/user/Daxamur", + "files": [ + "https://github.com/Daxamur/DaxNodes" + ], + "install_type": "git-clone", + "description": "ComfyUI video processing nodes with workflow metadata support", + "pip": ["mediapipe>=0.10.0", "opencv-python>=4.8.0", "scipy>=1.10.0", "color-matcher>=0.3.0"] + }, + { + "author": "Dehypnotic", + "title": "RangeToString", + "reference": "https://github.com/Dehypnotic/comfyui-range-to-string", + "files": [ + "https://github.com/Dehypnotic/comfyui-range-to-string" + ], + "install_type": "git-clone", + "description": "Lightweight node that generates a string of numbers between a start and end value. Supports positive and negative steps, configurable separators, and inclusive/exclusive end values." + }, + { + "author": "KY-2000", + "title": "comfyui-ksampler-tester-loop", + "reference": "https://github.com/KY-2000/comfyui-ksampler-tester-loop", + "files": [ + "https://github.com/KY-2000/comfyui-ksampler-tester-loop" + ], + "install_type": "git-clone", + "description": "Batch samplers, schedulers, cfg, shift and steps tester custom node, automatic looping functionality for Ksampler node" + }, + { + "author": "KY-2000", + "title": "RES4LYF-tester-loop", + "reference": "https://github.com/KY-2000/RES4LYF-tester-loop", + "files": [ + "https://github.com/KY-2000/RES4LYF-tester-loop" + ], + "install_type": "git-clone", + "description": "Batch samplers, schedulers, cfg, shift and steps tester custom node, automatic looping functionality for RES4LYF custom nodes" + }, + { + "author": "KY-2000", + "title": "ComfyUI_PuLID_Flux_ll_FaceNet", + "reference": "https://github.com/KY-2000/ComfyUI_PuLID_Flux_ll_FaceNet", + "files": [ + "https://github.com/KY-2000/ComfyUI_PuLID_Flux_ll_FaceNet" + ], + "install_type": "git-clone", + "description": "Same Function as original ComfyUI_PuLID_Flux_ll repository, with FaceNet Implementation that is safe for commercial usage." + }, + { + "author": "KY-2000", + "title": "comfyui-save-image-enhanced", + "reference": "https://github.com/KY-2000/comfyui-save-image-enhanced", + "files": [ + "https://github.com/KY-2000/comfyui-save-image-enhanced" + ], + "install_type": "git-clone", + "description": "enable to save the image without the default filename suffix, with the feature of saving caption txt file to save prompts or descriptions of the image." + }, + { + "author": "Firetheft", + "title": "ComfyUI Civitai Gallery", + "reference": "https://github.com/Firetheft/ComfyUI_Civitai_Gallery", + "files": [ + "https://github.com/Firetheft/ComfyUI_Civitai_Gallery" + ], + "install_type": "git-clone", + "description": "ComfyUI Civitai Gallery is a powerful custom node for ComfyUI that integrates a seamless image browser for the Civitai website directly into your workflow. This node allows you to browse, search, and select images from Civitai and instantly import their prompts, negative prompts, and full-resolution images into your workflow. It is designed to significantly speed up your creative process by eliminating the need to switch between your browser and ComfyUI." + }, + { + "author": "RegulusAlpha", + "title": "ComfyUI Dynamic Prompting Simplified", + "reference": "https://github.com/RegulusAlpha/ComfyUI-DynPromptSimplified", + "files": [ + "https://github.com/RegulusAlpha/ComfyUI-DynPromptSimplified" + ], + "install_type": "git-clone", + "description": "A minimal dynamic prompting + mirrored wildcards node for ComfyUI." + }, + { + "author": "Jelosus2", + "title": "ComfyUI VAE Reflection", + "reference": "https://github.com/Jelosus2/comfyui-vae-reflection", + "files": [ + "https://github.com/Jelosus2/comfyui-vae-reflection" + ], + "install_type": "git-clone", + "description": "A simple custom node to use reflect padding mode in the conv layers of VAEs." + }, + { + "author": "netroxin", + "title": "comfyui_netro", + "reference": "https://github.com/netroxin/comfyui_netro", + "files": [ + "https://github.com/netroxin/comfyui_netro" + ], + "install_type": "git-clone", + "description": "#Camera Movement Prompt Node for ComfyUI\nThis custom node script for ComfyUI generates descriptive camera movement prompts based on user-selected movement options for Wan2.2" + }, + { + "author": "alexds9", + "title": "Save Checkpoint with Metadata", + "reference": "https://github.com/a-l-e-x-d-s-9/ComfyUI-SaveCheckpointWithMetadata", + "files": [ + "https://github.com/a-l-e-x-d-s-9/ComfyUI-SaveCheckpointWithMetadata" + ], + "install_type": "git-clone", + "description": "Save checkpoint .safetensors with custom header JSON, optional prompt override, merge of EXTRA_PNGINFO, and smart/no-counter filename modes. Includes text outputs for path and final metadata." + }, + { + "author": "jialuw0830", + "title": "Eigen AI FLUX API Plugin", + "id": "eigen-ai-flux-api-plugin", + "reference": "https://github.com/jialuw0830/flux_api_comfyui_plugin", + "files": [ + "https://github.com/jialuw0830/flux_api_comfyui_plugin" + ], + "install_type": "git-clone", + "description": "Eigen AI FLUX API integration for ComfyUI with LoRA support and large font prompt inputs. Features high-quality image generation using FLUX.1-schnell model with multi-LoRA support, content upscaling, and optimized prompt input interface." + }, + { + "author": "LeanModels", + "title": "ComfyUI-DFloat11", + "reference": "https://github.com/LeanModels/ComfyUI-DFloat11", + "files": [ + "https://github.com/LeanModels/ComfyUI-DFloat11" + ], + "install_type": "git-clone", + "description": "This repository provides the ComfyUI plugin for DFloat11 models. DFloat11 reduces model size by more than 30% while producing bit-for-bit identical outputs to the original. Unlike quantization techniques which trade quality for size, DFloat11 is a lossless compression method, preserving model output quality fully while supporting efficient inference." + }, + { + "author": "birdneststream", + "title": "ComfyUI-Mircify", + "reference": "https://github.com/birdneststream/ComfyUI-Mircify", + "files": [ + "https://github.com/birdneststream/ComfyUI-Mircify" + ], + "install_type": "git-clone", + "description": "ComfyUI node for converting images to IRC art blocks" + }, + { + "author": "RUiNtheExtinct", + "title": "comfyui-save-file-extended", + "reference": "https://github.com/RUiNtheExtinct/comfyui-save-file-extended", + "files": [ + "https://github.com/RUiNtheExtinct/comfyui-save-file-extended" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that offers an extension to the existing Save and Preview Image/Video nodes allowing directly adding and previewing the files from your preferred cloud storage providers (S3/DropBox/Google Drive/...)" + }, + { + "author": "citronlegacy", + "title": "ComfyUI-CitronNodes", + "reference": "https://github.com/citronlegacy/ComfyUI-CitronNodes", + "files": [ + "https://github.com/citronlegacy/ComfyUI-CitronNodes" + ], + "install_type": "git-clone", + "description": "ComfyUI node: Get DateTime (outputs date, time, datetime as strings" + }, + { + "author": "ZeroSpaceStudios", + "title": "ComfyUI-ZSNodes", + "reference": "https://github.com/ZeroSpaceStudios/ComfyUI-ZSNodes", + "files": [ + "https://github.com/ZeroSpaceStudios/ComfyUI-ZSNodes" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI with specialized image processing and saving functionality." + }, + { + "author": "thimpat", + "title": "ComfyUI Multimedia Utilities", + "reference": "https://github.com/thimpat/ThimPatUtils", + "files": [ + "https://github.com/thimpat/ThimPatUtils" + ], + "install_type": "git-clone", + "description": "A collection of essential utility nodes for handling image sequences, video, audio, and synchronized data within ComfyUI workflows." + }, + { + "author": "thimpat", + "title": "ComfyUI-KrakenTools", + "reference": "https://github.com/krakenunbound/ComfyUI-KrakenTools", + "files": [ + "https://github.com/krakenunbound/ComfyUI-KrakenTools" + ], + "install_type": "git-clone", + "description": "High-utility nodes for ComfyUI with a focus on Flux 1 Dev workflows and Ultimate SD Upscale enhancement loops." + }, + { + "author": "alFrame", + "title": "AF - Edit Generated Prompt", + "reference": "https://github.com/alFrame/ComfyUI-AF-EditGeneratedPrompt", + "files": [ + "https://github.com/alFrame/ComfyUI-AF-EditGeneratedPrompt" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that allows you to pipe a generated prompt and either pass it as is, or copy and edit it manually. Or you can use the lower input field like any regular text input filed. The content of the lower text field will always dominate the output of the node." + }, + { + "author": "joanna910225", + "title": "HouseKeeper", + "reference": "https://github.com/joanna910225/comfyui-housekeeper", + "files": [ + "https://github.com/joanna910225/comfyui-housekeeper" + ], + "install_type": "git-clone", + "description": "A tool that organizes workflow nodes into clean, user-friendly layouts" + }, + { + "author": "rslosch", + "title": "ComfyUI-EZ_Prompts", + "reference": "https://github.com/rslosch/ComfyUI-EZ_Prompts", + "files": [ + "https://github.com/rslosch/ComfyUI-EZ_Prompts" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node extension that provides easy-to-use prompt templates and wildcards for AI image generation." + }, + { + "author": "isaac-mcfadyen", + "title": "ComfyUI-QwenClip", + "reference": "https://github.com/isaac-mcfadyen/ComfyUI-QwenClip", + "files": [ + "https://github.com/isaac-mcfadyen/ComfyUI-QwenClip" + ], + "install_type": "git-clone", + "description": "A variety of random text encoder tools intended for use with ComfyUI and Qwen Image/Qwen Image Edit. More (may) be added as I try out various modifications to Qwen Image." + }, + { + "author": "isaac-mcfadyen", + "title": "ComfyUI Popo Utility", + "reference": "https://github.com/popoimm/comfyui-popo-utility", + "files": [ + "https://github.com/popoimm/comfyui-popo-utility" + ], + "install_type": "git-clone", + "description": "High-Performance ComfyUI Custom Node Toolkit - Modular and Extensible Architecture\nA utility toolkit designed specifically for ComfyUI image processing, built with a modular architecture that supports fast extension and the addition of new nodes." + }, + { + "author": "orion4d", + "title": "SharpnessPro pour ComfyUI", + "reference": "https://github.com/orion4d/ComfyUI_SharpnessPro", + "files": [ + "https://github.com/orion4d/ComfyUI_SharpnessPro" + ], + "install_type": "git-clone", + "description": "A collection of high-quality nodes for ComfyUI, dedicated to improving the sharpness, clarity, and texture of your images" + }, + { + "author": "Fabio Sarracino", + "title": "VibeVoice ComfyUI", + "id": "vibevoice-comfyui", + "reference": "https://github.com/Enemyx-net/VibeVoice-ComfyUI", + "files": [ + "https://github.com/Enemyx-net/VibeVoice-ComfyUI" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper for Microsoft VibeVoice TTS model. Supports single speaker, multi-speaker, and text file loading", + "pip": ["torch>=2.0.0", "torchaudio>=2.0.0", "numpy>=1.20.0", "transformers>=4.44.0", "librosa>=0.9.0", "soundfile>=0.12.0"] + }, + { + "author": "mikheys", + "title": "ComfyUI Nano Banana Node", + "reference": "https://github.com/mikheys/comfyui-gemini-mikheys", + "files": [ + "https://github.com/mikheys/comfyui-gemini-mikheys" + ], + "install_type": "git-clone", + "description": "This repository contains a custom node for ComfyUI, 'Nano banana', designed for advanced image editing using the Google Gemini API. " + }, + { + "author": "Gipphe", + "title": "ComfyUI Metadata Statistics", + "reference": "https://github.com/Gipphe/comfyui-metadata-statistics", + "files": [ + "https://github.com/Gipphe/comfyui-metadata-statistics" + ], + "install_type": "git-clone", + "description": "Gather statistics and information about your workflow." + }, + { + "author": "Saganaki22", + "title": "dotWaveform", + "reference": "https://github.com/Saganaki22/ComfyUI-dotWaveform", + "files": [ + "https://github.com/Saganaki22/ComfyUI-dotWaveform" + ], + "install_type": "git-clone", + "description": "ComfyUI node for generating animated dotted waveform visualizations with multiple animation styles including teardrop bars" + }, + { + "author": "sfinktah", + "title": "comfy-ovum", + "reference": "https://github.com/sfinktah/comfy-ovum", + "files": [ + "https://github.com/sfinktah/comfy-ovum" + ], + "install_type": "git-clone", + "description": "An assorted reliquary of nodes: mismatched, stubborn, and deliberately indistinct; they do what is required; do not ask for particulars." + }, + { + "author": "fredhopp", + "title": "comfyui-flipflopnodes", + "reference": "https://github.com/fredhopp/comfyui-flipflopnodes", + "files": [ + "https://github.com/fredhopp/comfyui-flipflopnodes" + ], + "install_type": "git-clone", + "description": "This project contains custom Flip-Flop nodes for ComfyUI." + }, + { + "author": "lucasgattas", + "title": "ComfyUI · Egregora: Divide & Enhance", + "reference": "https://github.com/lucasgattas/comfyui-egregora-divide-and-enhance", + "files": [ + "https://github.com/lucasgattas/comfyui-egregora-divide-and-enhance" + ], + "install_type": "git-clone", + "description": "Egregora: Divide & Enhance is a small suite of custom nodes that help you split, enhance, and recombine images, plus a clean SDXL prompt mixer that keeps things simple while staying robust with lot´s of customization." + }, + { + "author": "sweetndata", + "title": "ComfyUI-Reflatent", + "reference": "https://github.com/sweetndata/ComfyUI-Reflatent", + "files": [ + "https://github.com/sweetndata/ComfyUI-Reflatent" + ], + "install_type": "git-clone", + "description": "NODES:Reflatent" + }, + { + "author": "aesethtics", + "title": "ComfyUI Utilitools Nodes", + "reference": "https://github.com/aesethtics/ComfyUI-Utilitools", + "files": [ + "https://github.com/aesethtics/ComfyUI-Utilitools" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for ComfyUI to improve workflow efficiency." + }, + { + "author": "aesethtics", + "title": "ComfyUI Utilitools Nodes", + "reference": "https://github.com/grmchn/ComfyUI-ProportionChanger", + "files": [ + "https://github.com/grmchn/ComfyUI-ProportionChanger" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for ComfyUI to improve workflow efficiency." + }, + { + "author": "huwenkai26", + "title": "ComfyUI Text Remove Node", + "reference": "https://github.com/huwenkai26/comfyui-remove-text", + "files": [ + "https://github.com/huwenkai26/comfyui-remove-text" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI custom node designed to automatically detect and remove text from images." + }, + { + "author": "BAIKEMARK", + "title": "Civitai Prompt Stats Node", + "reference": "https://github.com/BAIKEMARK/ComfyUI_Civitai_Prompt_Stats", + "files": [ + "https://github.com/BAIKEMARK/ComfyUI_Civitai_Prompt_Stats" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that quickly fetches the most commonly used positive and negative prompts for Civitai models (Checkpoint / Lora) from the community, helping you effortlessly enhance your own creations!" + }, + { + "author": "BAIKEMARK", + "title": "Civitai Recipe Finder", + "reference": "https://github.com/BAIKEMARK/ComfyUI-Civitai-Recipe", + "files": [ + "https://github.com/BAIKEMARK/ComfyUI-Civitai-Recipe" + ], + "install_type": "git-clone", + "description": "A powerful node suite that finds the community's best 'recipes' for any Civitai model by analyzing top prompts, LoRA triggers, parameters, and combos." + }, + { + "author": "Jarcis-cy", + "title": "HunyuanVideo-Foley Audio Generator", + "reference": "https://github.com/Jarcis-cy/ComfyUI-HunyuanVideoFoley", + "files": [ + "https://github.com/Jarcis-cy/ComfyUI-HunyuanVideoFoley" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for HunyuanVideo-Foley: Generate audio from video + text prompts" + }, + { + "author": "railep", + "title": "HunyuanVideo-Foley Audio Generator", + "reference": "https://github.com/railep/ComfyUI-HunyuanVideo-Foley", + "files": [ + "https://github.com/railep/ComfyUI-HunyuanVideo-Foley" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for generating synchronized audio for videos using the HunyuanVideo-Foley model." + }, + { + "author": "Dehypnotic", + "title": "AspectRatioAdvanced", + "reference": "https://github.com/Dehypnotic/comfyui-aspect-ratio-advanced", + "files": [ + "https://raw.githubusercontent.com/Dehypnotic/comfyui-aspect-ratio-advanced/main/aspect_ratio_advanced.py" + ], + "install_type": "copy", + "description": "An advanced aspect ratio calculator and image scaler with flexible scaling modes and intelligent image handling." + }, + { + "author": "GsusGG", + "title": "ComfyUI-CozyGen", + "reference": "https://github.com/gsusgg/ComfyUI_CozyGen", + "files": [ + "https://github.com/gsusgg/ComfyUI_CozyGen" + ], + "install_type": "git-clone", + "description": "A set of custom nodes and aiohttp server for a simple ComfyUI browser and mobile device experience for any t2i image workflow." + }, + { + "author": "daehwa", + "title": "ComfyUI-NanoBananaAPI", + "reference": "https://github.com/daehwa00/ComfyUI-NanoBananaAPI", + "files": [ + "https://github.com/daehwa00/ComfyUI-NanoBananaAPI" + ], + "install_type": "git-clone", + "description": "Creates images using the NanoBanana API. To use it, you must enter your issued API key." + }, + { + "author": "annewj023", + "title": "Google Nano", + "reference": "https://github.com/annewj023/Comfyui_google_nano", + "files": [ + "https://github.com/annewj023/Comfyui_google_nano" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node based on OpenRouter that supports calling the Google Gemini model via the OpenAI API to generate new images from reference images and prompts." + }, + { + "author": "MushroomFleet", + "title": "Zenkai-POML for ComfyUI", + "reference": "https://github.com/MushroomFleet/ComfyUI-DJZ-POML", + "files": [ + "https://github.com/MushroomFleet/ComfyUI-DJZ-POML" + ], + "install_type": "git-clone", + "description": "Bring Microsoft's POML (Prompt Orchestration Markup Language) to your ComfyUI workflows! Create structured, reusable, and powerful prompts with visual node-based editing." + }, + { + "author": "Urabewe", + "title": "ComfyUI Video Extend Counter", + "reference": "https://github.com/Urabewe/ComfyUI-CountS2VExtend", + "files": [ + "https://github.com/Urabewe/ComfyUI-CountS2VExtend" + ], + "install_type": "git-clone", + "description": "A simple utility node that counts active Video S2V Extend nodes in your workflow and returns that number plus one. Now you don't have to remember to update the batch number. Just set your extend nodes and go. It was easy to forget so I made this quick and dirty." + }, + { + "author": "Juste-Leo2", + "title": "USO Nodes for ComfyUI", + "reference": "https://github.com/Juste-Leo2/USO_ComfyUI", + "files": [ + "https://github.com/Juste-Leo2/USO_ComfyUI" + ], + "install_type": "git-clone", + "description": "Custom nodes to integrate the USO image generation model (based on FLUX.1 by ByteDance) into ComfyUI.\nThis project is an implementation based on the official source code from the [a/ByteDance/USO](https://github.com/bytedance/USO) repository." + }, + { + "author": "mengqin", + "title": "Unet Bnb Model Loader", + "reference": "https://github.com/mengqin/ComfyUI-UnetBnbModelLoader", + "files": [ + "https://github.com/mengqin/ComfyUI-UnetBnbModelLoader" + ], + "install_type": "git-clone", + "description": "A general comfyui model loading plugin that supports loading unet models quantized in bnb-4bit (nf4 and fp4) format" + }, + { + "author": "Artificial-Sweetener", + "title": "WhiteRabbit", + "reference": "https://github.com/Artificial-Sweetener/comfyui-WhiteRabbit", + "files": [ + "https://github.com/Artificial-Sweetener/comfyui-WhiteRabbit" + ], + "install_type": "git-clone", + "description": "A nodepack designed to help you work with video from within ComfyUI that specializes in handling image batches efficiency and creating video loops." + }, + { + "author": "hujuying", + "title": "ComfyUI ModelScope API Node", + "reference": "https://github.com/hujuying/ComfyUI-ModelScope-API", + "files": [ + "https://github.com/hujuying/ComfyUI-ModelScope-API" + ], + "install_type": "git-clone", + "description": "This is a universal custom node for ComfyUI that supports both Text-to-Image and Image-to-Image generation by calling various models via the official ModelScope API." + }, + { + "author": "chaserhkj", + "title": "Chaser's Custom Nodes", + "reference": "https://github.com/chaserhkj/ComfyUI-Chaser-nodes", + "files": [ + "https://github.com/chaserhkj/ComfyUI-Chaser-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Upload image(s) to WebDAV, Upload video as WebM to WebDAV, Load image from WebDAV, Evaluate S-Expr with integer output, Evaluate S-Expr with float output" + }, + { + "author": "otavanopisto", + "title": "ComfyUI-aihub-workflow-exposer", + "reference": "https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer", + "files": [ + "https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI in order to expose AI workflows to external applications (particularly image, video and audio editors) so workflows can be integrated as plugins" + }, + { + "author": "aistudynow", + "title": "Comfyui-HunyuanFoley", + "reference": "https://github.com/aistudynow/Comfyui-HunyuanFoley", + "files": [ + "https://github.com/aistudynow/Comfyui-HunyuanFoley" + ], + "install_type": "git-clone", + "description": "Generate Audio from any video and or text" + }, + { + "author": "noelkim12", + "title": "ComfyUI-ComfyUI-NoelTextUtil", + "reference": "https://github.com/noelkim12/ComfyUI-NoelTextUtil", + "files": [ + "https://github.com/noelkim12/ComfyUI-NoelTextUtil" + ], + "install_type": "git-clone", + "description": "Text utility nodes for file path and LoRA auto triggering" + }, + { + "author": "Juste-Leo2", + "title": "Canary-ComfyUI", + "reference": "https://github.com/Juste-Leo2/Canary-ComfyUI", + "files": [ + "https://github.com/Juste-Leo2/Canary-ComfyUI" + ], + "install_type": "git-clone", + "description": "This node pack integrates the core capabilities of the Canary-1b-v2 model, providing three main features: it can transcribe audio in any of 25 supported languages into text in the same language, translate audio from 24 source languages directly into English, and translate English audio directly into one of the 24 other supported languages." + }, + { + "author": "D3lUX3I", + "title": "VideoPromptEnhancer", + "reference": "https://github.com/D3lUX3I/ComfyUI-VideoPromptEnhancer", + "files": [ + "https://github.com/D3lUX3I/ComfyUI-VideoPromptEnhancer" + ], + "install_type": "git-clone", + "description": "This node generates a professional prompt from an input text for modern video AI models (e.g., Alibaba Wan 2.2) via the OpenRouter API." + }, + { + "author": "Frief84", + "title": "ComfyUI-LoRAWeightAxisXY", + "reference": "https://github.com/Frief84/ComfyUI-LoRAWeightAxisXY", + "files": [ + "https://github.com/Frief84/ComfyUI-LoRAWeightAxisXY" + ], + "install_type": "git-clone", + "description": "Adds `XY Input: LoRA Weight (simple)` for Efficiency Nodes. Outputs XY subtype 'LoRA' (name, weight, weight) with a linear sweep; works with `XY Input: Checkpoint`.", + "tags": ["xy-plot", "lora", "efficiency-nodes", "utility"] + }, + { + "author": "Shellishack", + "title": "ComfyUI Remote Media Loaders", + "reference": "https://github.com/Shellishack/comfyui-remote-media-loaders", + "files": [ + "https://github.com/Shellishack/comfyui-remote-media-loaders" + ], + "install_type": "git-clone", + "description": "Load media (image/video/audio) from remote URL" + }, + { + "author": "grovergol", + "title": "ComfyUI Grover Nodes", + "reference": "https://github.com/grovergol/comfyui-grover-nodes", + "files": [ + "https://github.com/grovergol/comfyui-grover-nodes" + ], + "install_type": "git-clone", + "description": "A custom node that allows opening file paths in the default system file explorer." + }, + { + "author": "Yeq6X", + "title": "ComfyUI Image to Video Inserter", + "reference": "https://github.com/Yeq6X/ComfyUI-image-to-video-inserter", + "files": [ + "https://github.com/Yeq6X/ComfyUI-image-to-video-inserter" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that inserts images into videos." + }, + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { "author": "Ser-Hilary", "title": "SDXL_sizing", "reference": "https://github.com/Ser-Hilary/SDXL_sizing", "files": [ - "https://github.com/Ser-Hilary/SDXL_sizing/raw/main/conditioning_sizing_for_SDXL.py" + "https://raw.githubusercontent.com/Ser-Hilary/SDXL_sizing/main/conditioning_sizing_for_SDXL.py" ], "install_type": "copy", "description": "Nodes:sizing_node. Size calculation node related to image size in prompts supported by SDXL." @@ -7573,7 +32263,7 @@ "reference": "https://github.com/ailex000/ComfyUI-Extensions", "js_path": "image-gallery", "files": [ - "https://github.com/ailex000/ComfyUI-Extensions/raw/main/image-gallery/imageGallery.js" + "https://raw.githubusercontent.com/ailex000/ComfyUI-Extensions/main/image-gallery/imageGallery.js" ], "install_type": "copy", "description": "Custom javascript extensions for better UX for ComfyUI. Supported nodes: PreviewImage, SaveImage. Double click on image to open." @@ -7584,7 +32274,7 @@ "reference": "https://github.com/rock-land/graphNavigator", "js_path": "graphNavigator", "files": [ - "https://github.com/rock-land/graphNavigator/raw/main/graphNavigator/graphNavigator.js" + "https://raw.githubusercontent.com/rock-land/graphNavigator/main/graphNavigator/graphNavigator.js" ], "install_type": "copy", "description": "ComfyUI Web Extension for saving views and navigating graphs." @@ -7595,8 +32285,8 @@ "reference": "https://github.com/diffus3/ComfyUI-extensions", "js_path": "diffus3", "files": [ - "https://github.com/diffus3/ComfyUI-extensions/raw/main/multiReroute/multireroute.js", - "https://github.com/diffus3/ComfyUI-extensions/raw/main/setget/setget.js" + "https://raw.githubusercontent.com/diffus3/ComfyUI-extensions/main/multiReroute/multireroute.js", + "https://raw.githubusercontent.com/diffus3/ComfyUI-extensions/main/setget/setget.js" ], "install_type": "copy", "description": "Extensions: subgraph, setget, multiReroute" @@ -7607,8 +32297,8 @@ "reference": "https://github.com/m957ymj75urz/ComfyUI-Custom-Nodes", "js_path": "m957ymj75urz", "files": [ - "https://github.com/m957ymj75urz/ComfyUI-Custom-Nodes/raw/main/clip-text-encode-split/clip_text_encode_split.py", - "https://github.com/m957ymj75urz/ComfyUI-Custom-Nodes/raw/main/colors/colors.js" + "https://raw.githubusercontent.com/m957ymj75urz/ComfyUI-Custom-Nodes/main/clip-text-encode-split/clip_text_encode_split.py", + "https://raw.githubusercontent.com/m957ymj75urz/ComfyUI-Custom-Nodes/main/colors/colors.js" ], "install_type": "copy", "description": "Nodes: RawText, RawTextCLIPEncode, RawTextCombine, RawTextReplace, Extension: m957ymj75urz.colors" @@ -7618,8 +32308,8 @@ "title": "Waveform Extensions", "reference": "https://github.com/Bikecicle/ComfyUI-Waveform-Extensions", "files": [ - "https://github.com/Bikecicle/ComfyUI-Waveform-Extensions/raw/main/EXT_AudioManipulation.py", - "https://github.com/Bikecicle/ComfyUI-Waveform-Extensions/raw/main/EXT_VariationUtils.py" + "https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_AudioManipulation.py", + "https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_VariationUtils.py" ], "install_type": "copy", "description": "Some additional audio utilites for use on top of Sample Diffusion ComfyUI Extension" @@ -7629,7 +32319,7 @@ "title": "KSampler GPU", "reference": "https://github.com/dawangraoming/ComfyUI_ksampler_gpu", "files": [ - "https://github.com/dawangraoming/ComfyUI_ksampler_gpu/raw/main/ksampler_gpu.py" + "https://raw.githubusercontent.com/dawangraoming/ComfyUI_ksampler_gpu/main/ksampler_gpu.py" ], "install_type": "copy", "description": "KSampler is provided, based on GPU random noise" @@ -7639,29 +32329,17 @@ "title": "fcSuite", "reference": "https://github.com/fitCorder/fcSuite", "files": [ - "https://github.com/fitCorder/fcSuite/raw/main/fcSuite.py" + "https://raw.githubusercontent.com/fitCorder/fcSuite/main/fcSuite.py" ], "install_type": "copy", "description": "fcFloatMatic is a custom module, that when configured correctly will increment through the lines generating you loras at different strengths. The JSON file will load the config." }, - { - "author": "lrzjason", - "title": "ComfyUIJasonNode", - "reference": "https://github.com/lrzjason/ComfyUIJasonNode", - "files": [ - "https://github.com/lrzjason/ComfyUIJasonNode/raw/main/SDXLMixSampler.py", - "https://github.com/lrzjason/ComfyUIJasonNode/raw/main/LatentByRatio.py", - "" - ], - "install_type": "copy", - "description": "Nodes:SDXLMixSampler, LatentByRatio" - }, { "author": "lordgasmic", "title": "Wildcards", "reference": "https://github.com/lordgasmic/ComfyUI-Wildcards", "files": [ - "https://github.com/lordgasmic/ComfyUI-Wildcards/raw/master/wildcards.py" + "https://raw.githubusercontent.com/lordgasmic/comfyui_wildcards/master/wildcards.py" ], "install_type": "copy", "description": "Nodes:CLIPTextEncodeWithWildcards. This wildcard node is a wildcard node that operates based on the seed." @@ -7681,7 +32359,7 @@ "title": "comfy_meh", "reference": "https://github.com/s1dlx/comfy_meh", "files": [ - "https://github.com/s1dlx/comfy_meh/raw/main/meh.py" + "https://raw.githubusercontent.com/s1dlx/comfy_meh/main/meh.py" ], "install_type": "copy", "description": "Advanced merging methods." @@ -7691,17 +32369,17 @@ "title": "Hakkun-ComfyUI-nodes", "reference": "https://github.com/tudal/Hakkun-ComfyUI-nodes", "files": [ - "https://github.com/tudal/Hakkun-ComfyUI-nodes/raw/main/hakkun_nodes.py" + "https://raw.githubusercontent.com/tudal/Hakkun-ComfyUI-nodes/main/hakkun_nodes.py" ], "install_type": "copy", - "description": "Nodes: Prompt parser. ComfyUI extra nodes. Mostly prompt parsing." + "description": "Mainly its prompt generating by custom syntax. Prompt Parser, Prompt tags, Random Line, Calculate Upscale, Image size to string, Type Converter, Image Resize To Height/Width, Load Random Image, Load Text" }, { "author": "SadaleNet", "title": "ComfyUI A1111-like Prompt Custom Node Solution", "reference": "https://github.com/SadaleNet/CLIPTextEncodeA1111-ComfyUI", "files": [ - "https://github.com/SadaleNet/CLIPTextEncodeA1111-ComfyUI/raw/master/custom_nodes/clip_text_encoder_a1111.py" + "https://raw.githubusercontent.com/SadaleNet/CLIPTextEncodeA1111-ComfyUI/master/custom_nodes/clip_text_encoder_a1111.py" ], "install_type": "copy", "description": "Nodes: CLIPTextEncodeA1111, RerouteTextForCLIPTextEncodeA1111." @@ -7711,7 +32389,7 @@ "title": "SDXLResolutionPresets", "reference": "https://github.com/wsippel/comfyui_ws", "files": [ - "https://github.com/wsippel/comfyui_ws/raw/main/sdxl_utility.py" + "https://raw.githubusercontent.com/wsippel/comfyui_ws/main/sdxl_utility.py" ], "install_type": "copy", "description": "Nodes: SDXLResolutionPresets. Easy access to the officially supported resolutions, in both horizontal and vertical formats: 1024x1024, 1152x896, 1216x832, 1344x768, 1536x640" @@ -7719,9 +32397,10 @@ { "author": "nicolai256", "title": "comfyUI_Nodes_nicolai256", + "id": "nicoali256", "reference": "https://github.com/nicolai256/comfyUI_Nodes_nicolai256", "files": [ - "https://github.com/nicolai256/comfyUI_Nodes_nicolai256/raw/main/yugioh-presets.py" + "https://raw.githubusercontent.com/nicolai256/comfyUI_Nodes_nicolai256/main/yugioh-presets.py" ], "install_type": "copy", "description": "Nodes: yugioh_Presets. by Nicolai256 inspired by throttlekitty SDXLAspectRatio" @@ -7729,9 +32408,10 @@ { "author": "Onierous", "title": "QRNG_Node_ComfyUI", + "id": "qrng", "reference": "https://github.com/Onierous/QRNG_Node_ComfyUI", "files": [ - "https://github.com/Onierous/QRNG_Node_ComfyUI/raw/main/qrng_node.py" + "https://raw.githubusercontent.com/Onierous/QRNG_Node_ComfyUI/main/qrng_node.py" ], "install_type": "copy", "description": "Nodes: QRNG Node CSV. A node that takes in an array of random numbers from the ANU QRNG API and stores them locally for generating quantum random number noise_seeds in ComfyUI" @@ -7741,7 +32421,7 @@ "title": "ntdviet/comfyui-ext", "reference": "https://github.com/ntdviet/comfyui-ext", "files": [ - "https://github.com/ntdviet/comfyui-ext/raw/main/custom_nodes/gcLatentTunnel/gcLatentTunnel.py" + "https://raw.githubusercontent.com/ntdviet/comfyui-ext/main/custom_nodes/gcLatentTunnel/gcLatentTunnel.py" ], "install_type": "copy", "description": "Nodes:LatentGarbageCollector. This ComfyUI custom node flushes the GPU cache and empty cuda interprocess memory. It's helpfull for low memory environment such as the free Google Colab, especially when the workflow VAE decode latents of the size above 1500x1500." @@ -7749,9 +32429,10 @@ { "author": "alkemann", "title": "alkemann nodes", + "id": "alkemann", "reference": "https://gist.github.com/alkemann/7361b8eb966f29c8238fd323409efb68", "files": [ - "https://gist.github.com/alkemann/7361b8eb966f29c8238fd323409efb68/raw/f9605be0b38d38d3e3a2988f89248ff557010076/alkemann.py" + "https://gist.githubusercontent.com/alkemann/7361b8eb966f29c8238fd323409efb68/raw/f9605be0b38d38d3e3a2988f89248ff557010076/alkemann.py" ], "install_type": "copy", "description": "Nodes:Int to Text, Seed With Text, Save A1 Image." @@ -7759,9 +32440,10 @@ { "author": "catscandrive", "title": "Image loader with subfolders", + "id": "imgsubfolders", "reference": "https://github.com/catscandrive/comfyui-imagesubfolders", "files": [ - "https://github.com/catscandrive/comfyui-imagesubfolders/raw/main/loadImageWithSubfolders.py" + "https://raw.githubusercontent.com/catscandrive/comfyui-imagesubfolders/main/loadImageWithSubfolders.py" ], "install_type": "copy", "description": "Adds an Image Loader node that also shows images in subfolders of the default input directory" @@ -7769,9 +32451,10 @@ { "author": "Smuzzies", "title": "Chatbox Overlay node for ComfyUI", + "id": "chatbox-overlay", "reference": "https://github.com/Smuzzies/comfyui_chatbox_overlay", "files": [ - "https://github.com/Smuzzies/comfyui_chatbox_overlay/raw/main/chatbox_overlay.py" + "https://raw.githubusercontent.com/Smuzzies/comfyui_chatbox_overlay/main/chatbox_overlay.py" ], "install_type": "copy", "description": "Nodes: Chatbox Overlay. Custom node for ComfyUI to add a text box over a processed image before save node." @@ -7779,72 +32462,43 @@ { "author": "CaptainGrock", "title": "ComfyUIInvisibleWatermark", + "id": "invisible-watermark-grock", "reference": "https://github.com/CaptainGrock/ComfyUIInvisibleWatermark", "files": [ - "https://github.com/CaptainGrock/ComfyUIInvisibleWatermark/raw/main/Invisible%20Watermark.py" + "https://raw.githubusercontent.com/CaptainGrock/ComfyUIInvisibleWatermark/main/Invisible%20Watermark.py" ], "install_type": "copy", "description": "Nodes:Apply Invisible Watermark, Extract Watermark. Adds up to 12 characters encoded into an image that can be extracted." }, - { - "author": "fearnworks", - "title": "Fearnworks Custom Nodes", - "reference": "https://github.com/fearnworks/ComfyUI_FearnworksNodes", - "files": [ - "https://github.com/fearnworks/ComfyUI_FearnworksNodes/raw/main/fw_nodes.py" - ], - "install_type": "copy", - "description": "A collection of ComfyUI nodes. These nodes are tailored for specific tasks, such as counting files in directories and sorting text segments based on token counts. Currently this is only tested on SDXL 1.0 models. An additional swich is needed to hand 1.x" - }, { "author": "LZC", "title": "Hayo comfyui nodes", + "id": "lzcnodes", "reference": "https://github.com/1shadow1/hayo_comfyui_nodes", "files": [ - "https://github.com/1shadow1/hayo_comfyui_nodes/raw/main/LZCNodes.py" + "https://raw.githubusercontent.com/1shadow1/hayo_comfyui_nodes/main/LZCNodes.py" ], "install_type": "copy", "description": "Nodes:tensor_trans_pil, Make Transparent mask, MergeImages, words_generatee, load_PIL image" }, - { - "author": "celsojr2013", - "title": "ComfyUI SimpleTools Suit", - "reference": "https://github.com/celsojr2013/comfyui_simpletools", - "files": [ - "https://github.com/celsojr2013/comfyui_simpletools/raw/main/google_translator.py", - "https://github.com/celsojr2013/comfyui_simpletools/raw/main/parameters.py", - "https://github.com/celsojr2013/comfyui_simpletools/raw/main/resolution_solver.py" - ], - "install_type": "copy", - "description": "Nodes:Simple Gooogle Translator Client, Simple Mustache Parameter Switcher, Simple Latent Resolution Solver." - }, { "author": "underclockeddev", "title": "Preview Subselection Node for ComfyUI", + "id": "preview-subselection", "reference": "https://github.com/underclockeddev/ComfyUI-PreviewSubselection-Node", "files": [ - "https://github.com/underclockeddev/ComfyUI-PreviewSubselection-Node/raw/master/preview_subselection.py" + "https://raw.githubusercontent.com/underclockeddev/ComfyUI-PreviewSubselection-Node/master/preview_subselection.py" ], "install_type": "copy", "description": "A node which takes in x, y, width, height, total width, and total height, in order to accurately represent the area of an image which is covered by area-based conditioning." }, - { - "author": "AshMartian", - "title": "Dir Gir", - "reference": "https://github.com/AshMartian/ComfyUI-DirGir", - "files": [ - "https://github.com/AshMartian/ComfyUI-DirGir/raw/main/dir_picker.py", - "https://github.com/AshMartian/ComfyUI-DirGir/raw/main/dir_loop.py" - ], - "install_type": "copy", - "description": "A collection of ComfyUI directory automation utility nodes. Directory Get It Right adds a GUI directory browser, and smart directory loop/iteration node that supports regex and file extension filtering." - }, { "author": "underclockeddev", "title": "BrevImage", + "id": "brevimage", "reference": "https://github.com/bkunbargi/BrevImage", "files": [ - "https://github.com/bkunbargi/BrevImage/raw/main/BrevLoadImage.py" + "https://raw.githubusercontent.com/bkunbargi/BrevImage/main/BrevLoadImage.py" ], "install_type": "copy", "description": "Nodes:BrevImage. ComfyUI Load Image From URL" @@ -7852,6 +32506,7 @@ { "author": "jw782cn", "title": "ComfyUI-Catcat", + "id": "catcat", "reference": "https://github.com/jw782cn/ComfyUI-Catcat", "files": [ "https://github.com/jw782cn/ComfyUI-Catcat" @@ -7860,20 +32515,93 @@ "description": "Extension to show random cat GIFs while queueing prompt." }, { - "author": "xliry", - "title": "ComfyUI_SendDiscord", - "reference": "https://github.com/xliry/ComfyUI_SendDiscord", + "author": "barckley75", + "title": "comfyUI_DaVinciResolve", + "reference": "https://github.com/barckley75/comfyUI_DaVinciResolve", "files": [ - "https://github.com/xliry/ComfyUI_SendDiscord/raw/main/SendDiscord.py" + "https://raw.githubusercontent.com/barckley75/comfyUI_DaVinciResolve/main/custom_nodes/node_text_to_speech.py", + "https://raw.githubusercontent.com/barckley75/comfyUI_DaVinciResolve/refs/heads/main/custom_nodes/nodes_phi_3_contitioning.py", + "https://raw.githubusercontent.com/barckley75/comfyUI_DaVinciResolve/main/custom_nodes/save_audio_to_davinci.py", + "https://raw.githubusercontent.com/barckley75/comfyUI_DaVinciResolve/main/custom_nodes/save_image_to_davinci.py" ], "install_type": "copy", - "description": "Nodes:Send Video to Discord" + "description": "Nodes:TextToSpeech, phy_3_conditioning, SaveAudioToDaVinci, SaveImageToDaVinci.\nNOTE:In order to use DaVinci node you must have DaVinci Resolve Studio connected to the API. For more information check the help seciton in DaVinci Resolve Studio HELP>DOCUMENTATION>DEVELOPER. It will open a folder, search for scripting and the for README.txt file, the API documentation." + }, + { + "author": "seghier", + "title": "ComfyUI_LibreTranslate", + "reference": "https://github.com/seghier/ComfyUI_LibreTranslate", + "files": [ + "https://raw.githubusercontent.com/seghier/ComfyUI_LibreTranslate/main/translate_node.py" + ], + "install_type": "copy", + "description": "Use LibreTranslation in ComfyUI [a/https://github.com/LibreTranslate/LibreTranslate](https://github.com/LibreTranslate/LibreTranslate)" + }, + { + "author": "ultimatech-cn", + "title": "FaceSimilarity", + "reference": "https://github.com/ultimatech-cn/FaceSimilarity", + "files": [ + "https://raw.githubusercontent.com/ultimatech-cn/FaceSimilarity/main/faceSimilarity.py" + ], + "install_type": "copy", + "description": "A ComfyUI custom node for face comparison. This node utilizes Face++'s facial recognition and comparison algorithms by directly calling the Face++ API. Its usage in the workflow is as follows:" + }, + { + "author": "folkghost", + "title": "CSV Search Node", + "reference": "https://github.com/folkghost/comfyui_search_csv", + "files": [ + "https://raw.githubusercontent.com/folkghost/comfyui_search_csv/main/search_csv_node.py" + ], + "install_type": "copy", + "description": "This repository contains a custom node for ComfyUI that allows searching for a keyword in the first column of a CSV file and returning a value from a specified column in that row. The node is designed to be modular and fit within the node-based workflow of ComfyUI." + }, + { + "author": "SimonHeese", + "title": "ComfyUI_AnimationNodes", + "reference": "https://github.com/SimonHeese/ComfyUI_AnimationNodes", + "files": [ + "https://github.com/SimonHeese/ComfyUI_AnimationNodes/raw/refs/heads/main/animated_offset_pad.py", + "https://github.com/SimonHeese/ComfyUI_AnimationNodes/raw/refs/heads/main/animated_rotation_zoom.py" + ], + "install_type": "copy", + "description": "NODES:Animated Offset Padding, Animated Rotation & Zoom" + }, + { + "author": "duskfallcrew", + "title": "Embedding Merge for ComfyUI", + "reference": "https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node", + "files": [ + "https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node/raw/refs/heads/main/merge_embed.py" + ], + "install_type": "copy", + "description": "Extremely inspired and forked from: [a/https://github.com/klimaleksus/stable-diffusion-webui-embedding-merge](https://github.com/klimaleksus/stable-diffusion-webui-embedding-merge)" + }, + { + "author": "Kayarte", + "title": "GeoNodes", + "reference": "https://github.com/Kayarte/GeoNodes", + "files": [ + "https://github.com/Kayarte/GeoNodes/raw/refs/heads/main/GISDetectionNode.py" + ], + "install_type": "copy", + "description": "GIS Processing Nodes for ComfyUI" + }, + { + "author": "huimengshiguang", + "title": "AspectAwareTiling", + "reference": "https://github.com/huimengshiguang/AspectAwareTiling", + "files": [ + "https://raw.githubusercontent.com/huimengshiguang/AspectAwareTiling/refs/heads/main/hmsg-quanjing.py" + ], + "install_type": "copy", + "description": "This is an extension script for Stable Diffusion WebUI, modified based on the original functionality. It now supports fixing FLUX panorama seams. It allows users to independently configure seamless image tiling for both the X and Y axes while also being capable of handling FLUX panorama seam issues." }, - - { "author": "theally", "title": "TheAlly's Custom Nodes", + "id": "ally", "reference": "https://civitai.com/models/19625?modelVersionId=23296", "files": [ "https://civitai.com/api/download/models/25114", @@ -7890,6 +32618,7 @@ { "author": "xss", "title": "Custom Nodes by xss", + "id": "xss", "reference": "https://civitai.com/models/24869/comfyui-custom-nodes-by-xss", "files": [ "https://civitai.com/api/download/models/32717", @@ -7908,6 +32637,7 @@ { "author": "aimingfail", "title": "Image2Halftone Node for ComfyUI", + "id": "img2halftone", "reference": "https://civitai.com/models/143293/image2halftone-node-for-comfyui", "files": [ "https://civitai.com/api/download/models/158997" diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..a5972752 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,41 @@ +# ComfyUI-Manager: Documentation + +This directory contains documentation for the ComfyUI-Manager, providing guides and tutorials for users in multiple languages. + +## Directory Structure + +The documentation is organized into language-specific directories: + +- **en/**: English documentation +- **ko/**: Korean documentation + +## Core Documentation Files + +### Command-Line Interface + +- **cm-cli.md**: Documentation for the ComfyUI-Manager Command Line Interface (CLI), which allows using manager functionality without the UI. + +### Advanced Features + +- **use_aria2.md**: Guide for using the aria2 download accelerator with ComfyUI-Manager for faster model downloads. + +## Documentation Standards + +The documentation follows these standards: + +1. **Markdown Format**: All documentation is written in Markdown for easy rendering on GitHub and other platforms +2. **Language-specific Directories**: Content is separated by language to facilitate localization +3. **Feature-focused Documentation**: Each major feature has its own documentation file +4. **Updated with Releases**: Documentation is kept in sync with software releases + +## Contributing to Documentation + +When contributing new documentation: + +1. Place files in the appropriate language directory +2. Use clear, concise language appropriate for the target audience +3. Include examples where helpful +4. Consider adding screenshots or diagrams for complex features +5. Maintain consistent formatting with existing documentation + +This documentation directory will continue to grow to support the expanding feature set of ComfyUI-Manager. \ No newline at end of file diff --git a/docs/en/cm-cli.md b/docs/en/cm-cli.md index 8599b496..d00bf3b3 100644 --- a/docs/en/cm-cli.md +++ b/docs/en/cm-cli.md @@ -4,7 +4,8 @@ ``` --= ComfyUI-Manager CLI (V2.22) =- +-= ComfyUI-Manager CLI (V2.24) =- + python cm-cli.py [OPTIONS] @@ -12,12 +13,11 @@ OPTIONS: [install|reinstall|uninstall|update|disable|enable|fix] node_name ... ?[--channel ] ?[--mode [remote|local|cache]] [update|disable|enable|fix] all ?[--channel ] ?[--mode [remote|local|cache]] [simple-show|show] [installed|enabled|not-installed|disabled|all|snapshot|snapshot-list] ?[--channel ] ?[--mode [remote|local|cache]] - save-snapshot - restore-snapshot + save-snapshot ?[--output ] + restore-snapshot ?[--pip-non-url] ?[--pip-non-local-url] ?[--pip-local-url] cli-only-mode [enable|disable] restore-dependencies clear - ``` ## How To Use? @@ -52,7 +52,7 @@ OPTIONS: Executing a command like `python cm-cli.py show installed` will display detailed information about the installed custom nodes. ``` --= ComfyUI-Manager CLI (V2.21.1) =- +-= ComfyUI-Manager CLI (V2.24) =- FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json [ ENABLED ] ComfyUI-Manager (author: Dr.Lt.Data) @@ -69,7 +69,7 @@ FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main Using a command like `python cm-cli.py simple-show installed` will simply display information about the installed custom nodes. ``` --= ComfyUI-Manager CLI (V2.21.1) =- +-= ComfyUI-Manager CLI (V2.24) =- FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json ComfyUI-Manager @@ -112,11 +112,18 @@ ComfyUI-Loopchain * `enable`: Enables the specified custom nodes. * `fix`: Attempts to fix dependencies for the specified custom nodes. + ### 4. Snapshot Management -* `python cm-cli.py save-snapshot`: Saves the current snapshot. -* `python cm-cli.py restore-snapshot `: Restores to the specified snapshot. - * It is assumed that the snapshot files are located in ComfyUI-Manager/snapshots. - (An update is planned to allow files from other paths in the future.) +* `python cm-cli.py save-snapshot [--output ]`: Saves the current snapshot. + * With `--output`, you can save a file in .yaml format to any specified path. +* `python cm-cli.py restore-snapshot `: Restores to the specified snapshot. + * If a file exists at the snapshot path, that snapshot is loaded. + * If no file exists at the snapshot path, it is implicitly assumed to be in ComfyUI-Manager/snapshots. + * `--pip-non-url`: Restore for pip packages registered on PyPI. + * `--pip-non-local-url`: Restore for pip packages registered at web URLs. + * `--pip-local-url`: Restore for pip packages specified by local paths. + * `--user-directory`: Set the user directory. + * `--restore-to`: The path where the restored custom nodes will be installed. (When this option is applied, only the custom nodes installed in the target path are recognized as installed.) ### 5. CLI Only Mode diff --git a/docs/en/use_aria2.md b/docs/en/use_aria2.md new file mode 100644 index 00000000..10a7c6dd --- /dev/null +++ b/docs/en/use_aria2.md @@ -0,0 +1,40 @@ +# Use `aria2` as downloader + +Two environment variables are needed to use `aria2` as the downloader. + +```bash +export COMFYUI_MANAGER_ARIA2_SERVER=http://127.0.0.1:6800 +export COMFYUI_MANAGER_ARIA2_SECRET=__YOU_MUST_CHANGE_IT__ +``` + +An example `docker-compose.yml` + +```yaml +services: + + aria2: + container_name: aria2 + image: p3terx/aria2-pro + environment: + - PUID=1000 + - PGID=1000 + - UMASK_SET=022 + - RPC_SECRET=__YOU_MUST_CHANGE_IT__ + - RPC_PORT=5080 + - DISK_CACHE=64M + - IPV6_MODE=false + - UPDATE_TRACKERS=false + - CUSTOM_TRACKER_URL= + volumes: + - ./config:/config + - ./downloads:/downloads + - ~/ComfyUI/models:/models + - ~/ComfyUI/custom_nodes:/custom_nodes + ports: + - 6800:6800 + restart: unless-stopped + logging: + driver: json-file + options: + max-size: 1m +``` diff --git a/docs/ko/cm-cli.md b/docs/ko/cm-cli.md index 71f4404d..6d6a74a3 100644 --- a/docs/ko/cm-cli.md +++ b/docs/ko/cm-cli.md @@ -4,7 +4,8 @@ ``` --= ComfyUI-Manager CLI (V2.21.1) =- +-= ComfyUI-Manager CLI (V2.24) =- + python cm-cli.py [OPTIONS] @@ -12,12 +13,11 @@ OPTIONS: [install|reinstall|uninstall|update|disable|enable|fix] node_name ... ?[--channel ] ?[--mode [remote|local|cache]] [update|disable|enable|fix] all ?[--channel ] ?[--mode [remote|local|cache]] [simple-show|show] [installed|enabled|not-installed|disabled|all|snapshot|snapshot-list] ?[--channel ] ?[--mode [remote|local|cache]] - save-snapshot - restore-snapshot + save-snapshot ?[--output ] + restore-snapshot ?[--pip-non-url] ?[--pip-non-local-url] ?[--pip-local-url] cli-only-mode [enable|disable] restore-dependencies clear - ``` ## How To Use? @@ -53,7 +53,7 @@ OPTIONS: `python cm-cli.py show installed` 와 같은 코맨드를 실행하면 설치된 커스텀 노드의 정보를 상세하게 보여줍니다. ``` --= ComfyUI-Manager CLI (V2.21.1) =- +-= ComfyUI-Manager CLI (V2.24) =- FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json [ ENABLED ] ComfyUI-Manager (author: Dr.Lt.Data) @@ -70,7 +70,7 @@ FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main `python cm-cli.py simple-show installed` 와 같은 코맨드를 이용해서 설치된 커스텀 노드의 정보를 간단하게 보여줍니다. ``` --= ComfyUI-Manager CLI (V2.21.1) =- +-= ComfyUI-Manager CLI (V2.24) =- FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json ComfyUI-Manager @@ -115,11 +115,16 @@ ComfyUI-Loopchain ### 4. 스냅샷 관리 기능 -* `python cm-cli.py save-snapshot`: 현재의 snapshot을 저장합니다. -* `python cm-cli.py restore-snapshot `: 지정된 snapshot으로 복구합니다. - * snapshot 파일은 ComfyUI-Manager/snapshots 에 있다고 가정합니다. - (추후 다른 경로에 있는 파일을 허용 가능하도록 업데이트 예정입니다.) - +* `python cm-cli.py save-snapshot ?[--output ]`: 현재의 snapshot을 저장합니다. + * --output 으로 임의의 경로에 .yaml 파일과 format으로 저장할 수 있습니다. +* `python cm-cli.py restore-snapshot `: 지정된 snapshot으로 복구합니다. + * snapshot 경로에 파일이 존재하는 경우 해당 snapshot을 로드합니다. + * snapshot 경로에 파일이 존재하지 않는 경우 묵시적으로, ComfyUI-Manager/snapshots 에 있다고 가정합니다. + * `--pip-non-url`: PyPI 에 등록된 pip 패키지들에 대해서 복구를 수행 + * `--pip-non-local-url`: web URL에 등록된 pip 패키지들에 대해서 복구를 수행 + * `--pip-local-url`: local 경로를 지정하고 있는 pip 패키지들에 대해서 복구를 수행 + * `--user-directory`: 사용자 디렉토리 설정 + * `--restore-to`: 복구될 커스텀 노드가 설치될 경로. (이 옵션을 적용할 경우 오직 대상 경로에 설치된 custom nodes 만 설치된 것으로 인식함.) ### 5. CLI only mode diff --git a/extension-node-map.json b/extension-node-map.json index 1d6206f1..22913630 100644 --- a/extension-node-map.json +++ b/extension-node-map.json @@ -1,5 +1,5 @@ { - "https://gist.github.com/alkemann/7361b8eb966f29c8238fd323409efb68/raw/f9605be0b38d38d3e3a2988f89248ff557010076/alkemann.py": [ + "https://gist.githubusercontent.com/alkemann/7361b8eb966f29c8238fd323409efb68/raw/f9605be0b38d38d3e3a2988f89248ff557010076/alkemann.py": [ [ "Int to Text", "Save A1 Image", @@ -15,7 +15,43 @@ "MMakerColorEnhance" ], { - "title_aux": "Color Enhance" + "title_aux": "mmaker/Color Enhance" + } + ], + "https://gitee.com/yyh915/jkha-load-img": [ + [ + "JkhaLoadImage" + ], + { + "title_aux": "ImageLoadFromLocalOrUrl Node for ComfyUI" + } + ], + "https://github.com/0x-jerry/comfyui-rembg": [ + [ + "Load Rembg Model", + "Rembg Remove background" + ], + { + "title_aux": "0x-jerry/Rembg Background Removal Node for ComfyUI" + } + ], + "https://github.com/0xRavenBlack/ComfyUI-OOP": [ + [ + "OOPAnimalNode", + "OOPClothingNode", + "OOPEnvironmentNode", + "OOPEyesNode", + "OOPHairNode", + "OOPLocationNode", + "OOPMouthNode", + "OOPNode", + "OOPPersonNode", + "OOPPoseNode", + "OOPStyleNode", + "OOPViewNode" + ], + { + "title_aux": "ComfyUI-OOP" } ], "https://github.com/0xbitches/ComfyUI-LCM": [ @@ -29,13 +65,201 @@ "title_aux": "Latent Consistency Model for ComfyUI" } ], - "https://github.com/1038lab/ComfyUI-GPT2P": [ + "https://github.com/1038lab/ComfyUI-EdgeTTS": [ [ - "GPT2PNode", - "ShowText_GPT2P" + "EdgeTTS", + "Save_Audio", + "WhisperSTT" ], { - "title_aux": "ComfyUI-GPT2P" + "title_aux": "ComfyUI-EdgeTTS" + } + ], + "https://github.com/1038lab/ComfyUI-JoyCaption": [ + [ + "CaptionSaver", + "ImageBatchPath", + "JC", + "JC_ExtraOptions", + "JC_GGUF", + "JC_GGUF_adv", + "JC_adv" + ], + { + "title_aux": "ComfyUI-JoyCaption" + } + ], + "https://github.com/1038lab/ComfyUI-LBM": [ + [ + "LBM_DepthNormal", + "LBM_Relighting" + ], + { + "title_aux": "ComfyUI-LBM" + } + ], + "https://github.com/1038lab/ComfyUI-MegaTTS": [ + [ + "MegaTTS3", + "MegaTTS3S", + "MegaTTS_VoiceMaker" + ], + { + "title_aux": "ComfyUI-MegaTTS" + } + ], + "https://github.com/1038lab/ComfyUI-MiniCPM": [ + [ + "AILab_MiniCPM_V", + "AILab_MiniCPM_V_Advanced", + "AILab_MiniCPM_V_GGUF", + "AILab_MiniCPM_V_GGUF_Advanced" + ], + { + "title_aux": "ComfyUI-MiniCPM" + } + ], + "https://github.com/1038lab/ComfyUI-MiniMax-Remover": [ + [ + "ImageSizeAdjuster", + "MinimaxImageRemover", + "MinimaxModelLoader", + "MinimaxVideoLoader", + "MinimaxVideoRemover" + ], + { + "title_aux": "ComfyUI-MiniMax-Remover" + } + ], + "https://github.com/1038lab/ComfyUI-Mosaic": [ + [ + "MosaicCreator", + "MosaicDetector" + ], + { + "title_aux": "ComfyUI-Mosaic" + } + ], + "https://github.com/1038lab/ComfyUI-OmniGen": [ + [ + "ailab_OmniGen" + ], + { + "title_aux": "ComfyUI-OmniGen" + } + ], + "https://github.com/1038lab/ComfyUI-RMBG": [ + [ + "AILab_ColorInput", + "AILab_CropObject", + "AILab_ICLoRAConcat", + "AILab_ImageCombiner", + "AILab_ImageCompare", + "AILab_ImageCrop", + "AILab_ImageMaskConvert", + "AILab_ImageMaskResize", + "AILab_ImagePreview", + "AILab_ImageStitch", + "AILab_LamaRemover", + "AILab_LoadImage", + "AILab_LoadImageAdvanced", + "AILab_LoadImageSimple", + "AILab_MaskCombiner", + "AILab_MaskEnhancer", + "AILab_MaskExtractor", + "AILab_MaskOverlay", + "AILab_MaskPreview", + "AILab_Preview", + "AILab_ReferenceLatentMask", + "AILab_SDMatte", + "BiRefNetRMBG", + "BodySegment", + "ClothesSegment", + "FaceSegment", + "FashionSegmentAccessories", + "FashionSegmentClothing", + "RMBG", + "SAM2Segment", + "Segment", + "SegmentV2" + ], + { + "title_aux": "ComfyUI-RMBG" + } + ], + "https://github.com/1038lab/ComfyUI-ReduxFineTune": [ + [ + "ClipVisionStyleLoader", + "ReduxFineTune", + "ReduxFineTuneAdvanced" + ], + { + "title_aux": "ComfyUI-ReduxFineTune" + } + ], + "https://github.com/1038lab/ComfyUI-SparkTTS": [ + [ + "SparkTTS_AdvVoiceClone", + "SparkTTS_AudioRecorder", + "SparkTTS_VoiceClone", + "SparkTTS_VoiceCreator" + ], + { + "title_aux": "Comfyui-Spark-TTS" + } + ], + "https://github.com/1038lab/ComfyUI-WildPromptor": [ + [ + "AllInOneList", + "KeywordPicker", + "PromptBuilder", + "PromptConcat", + "WildPromptorAllInOne", + "WildPromptorGenerator", + "WildPromptor_DataToPromptList", + "WildPromptor_Enhancer" + ], + { + "title_aux": "ComfyUI-WildPromptor" + } + ], + "https://github.com/111496583yzy/comfyui-PuzzleCrack-Effect": [ + [ + "MyJigsawPuzzleEffect", + "MyRegionBoundaryEffect" + ], + { + "title_aux": "Jigsaw Puzzle Effect Plugin" + } + ], + "https://github.com/11dogzi/CYBERPUNK-STYLE-DIY": [ + [ + "CYBERPUNKHT" + ], + { + "title_aux": "CYBERPUNK-STYLE-DIY" + } + ], + "https://github.com/11dogzi/ComfUI-EGAdapterMadAssistant": [ + [ + "EGIPAdapter_Mad_Assistant", + "EGIPAdapter_Mad_AssistantV1", + "EGIPAdapter_Mad_AssistantV2", + "EGIPAdapter_Mad_AssistantV3", + "EGIPAdapter_Mad_AssistantV4", + "EGIPAdapter_Mad_AssistantV5", + "EGIPAdapter_Mad_AssistantV6" + ], + { + "title_aux": "ComfUI-EGAdapterMadAssistant" + } + ], + "https://github.com/11dogzi/Comfyui-HYPIR": [ + [ + "HYPIRAdvancedRestoration" + ], + { + "title_aux": "HYPIR ComfyUI Plugin" } ], "https://github.com/11dogzi/Comfyui-ergouzi-Nodes": [ @@ -84,6 +308,7 @@ "EG_ZZ_BSYH", "EG_ZZ_BYYH", "EG_ZZ_HSYH", + "EG_ZZ_MHHT", "EG_ZZ_SSKZ", "ER_JBCH", "ER_TX_ZZCJ" @@ -92,53 +317,217 @@ "title_aux": "Comfyui-ergouzi-Nodes" } ], + "https://github.com/11dogzi/Comfyui-ergouzi-kaiguan": [ + [ + "ALLty", + "EGRWGL", + "EGRYDZQHNode", + "EGSEED", + "GroupSwitchNode", + "GroupSwitchNodee", + "GroupSwitchNodeee", + "GroupSwitchNodeeee", + "GroupSwitchNodi", + "hulue", + "jinyong" + ], + { + "title_aux": "Comfyui-ergouzi-kaiguan" + } + ], + "https://github.com/11dogzi/Comfyui-ergouzi-samplers": [ + [ + "EGBYZZCYQ", + "EGCYQJB", + "EGCYQJBCJ" + ], + { + "title_aux": "Comfyui-ergouzi-samplers" + } + ], + "https://github.com/1hew/ComfyUI-1hewNodes": [ + [ + "ImageAddLabel", + "ImageBBoxOverlayByMask", + "ImageBatchToList", + "ImageBlendModesByAlpha", + "ImageBlendModesByCSS", + "ImageCropByMaskAlpha", + "ImageCropSquare", + "ImageCropWithBBoxMask", + "ImageEdgeCropPad", + "ImageEditStitch", + "ImageGetSize", + "ImageHLFreqCombine", + "ImageHLFreqSeparate", + "ImageHLFreqTransform", + "ImageListAppend", + "ImageListToBatch", + "ImageLumaMatte", + "ImagePasteByBBoxMask", + "ImagePlot", + "ImageResizeFluxKontext", + "ImageResizeUniversal", + "ImageRotateWithMask", + "ImageSolid", + "ImageStrokeByMask", + "ImageTileMerge", + "ImageTileSplit", + "ImageTileSplitPreset", + "ListCustomFloat", + "ListCustomInt", + "ListCustomSeed", + "ListCustomString", + "MaskBatchMathOps", + "MaskBatchToList", + "MaskCropByBBoxMask", + "MaskFillHole", + "MaskListToBatch", + "MaskMathOps", + "MaskPasteByBBoxMask", + "PathBuild", + "RangeMapping", + "StepSplit", + "StringCoordinateToBBoxMask", + "StringCoordinateToBBoxes", + "TextCustomExtract", + "TextFilterComment", + "TextJoinByTextList", + "TextJoinMulti", + "TextLoadLocal", + "TextPrefixSuffix" + ], + { + "title_aux": "ComfyUI 1hewNodes" + } + ], "https://github.com/1mckw/Comfyui-Gelbooru": [ [ "Gelbooru (ID)", - "Gelbooru (Random)" + "Gelbooru (Random)", + "UrlsToImage" ], { "title_aux": "Comfyui-Gelbooru" } ], - "https://github.com/1shadow1/hayo_comfyui_nodes/raw/main/LZCNodes.py": [ + "https://github.com/1zhangyy1/comfyui-vidu-nodes": [ [ - "LoadPILImages", - "MergeImages", - "make_transparentmask", - "tensor_trans_pil", - "words_generatee" + "Character2Video", + "Image2Video", + "StartEnd2Video", + "Text2Video", + "UpscaleVideo", + "VideoDownloader" ], { - "title_aux": "Hayo comfyui nodes" + "title_aux": "ComfyUI VIDU" } ], - "https://github.com/42lux/ComfyUI-safety-checker": [ + "https://github.com/2frames/ComfyUI-AQnodes": [ [ - "Safety Checker" + "AQ_BatchAverageImage", + "AQ_BlendImages", + "AQ_CLIPSetLastLayer", + "AQ_ColorMatchImage", + "AQ_Gemini", + "AQ_ImageMaskSwitch", + "AQ_Image_DetailTransfer", + "AQ_Image_Pad", + "AQ_Increment", + "AQ_LoadImageBase64", + "AQ_MasksAndImagesAsList", + "AQ_Qwen", + "AQ_QwenLoader", + "AQ_Random", + "AQ_SaveImageWebpReturnBase64", + "AQ_SendImageToAPI", + "AQ_multiface_ApplyPulidFlux" ], { - "title_aux": "ComfyUI-safety-checker" + "title_aux": "AQnodes for ComfyUI" + } + ], + "https://github.com/2kpr/ComfyUI-PMRF": [ + [ + "PMRF" + ], + { + "title_aux": "ComfyUI-PMRF" + } + ], + "https://github.com/2kpr/ComfyUI-UltraPixel": [ + [ + "UltraPixelLoad", + "UltraPixelProcess" + ], + { + "author": "italo", + "title_aux": "ComfyUI-UltraPixel" + } + ], + "https://github.com/311-code/ComfyUI-MagicClip_Strength": [ + [ + "CLIPTextEncodeSDXL_311_code" + ], + { + "title_aux": "ComfyUI MagicClip_Strength for SDXL" + } + ], + "https://github.com/31702160136/ComfyUI-GrsAI": [ + [ + "GPTImage_ImageToImage", + "GPTImage_TextToImage", + "GrsaiFluxKontext_ImageToImage", + "GrsaiFluxKontext_MultiImageToImage", + "GrsaiFluxKontext_TextToImage" + ], + { + "title_aux": "GrsAI api in ComfyUI" + } + ], + "https://github.com/42lux/ComfyUI-42lux": [ + [ + "FluxEmptyLatentSizePicker", + "HighResFixApply", + "HighResFixConditioningDuplicator", + "HighResFixModelInjection", + "ModelSamplingFluxNormalized", + "STORKSamplerSelect", + "SoulSampler", + "SoulSamplerAdvanced", + "SoulSamplerDPM", + "SoulSamplerDPMAdvanced", + "SoulSamplerHybrid", + "SoulSamplerHybridAdvanced" + ], + { + "title_aux": "ComfyUI-42lux" } ], "https://github.com/438443467/ComfyUI-GPT4V-Image-Captioner": [ [ - "GPT4VCaptioner", - "Image Load with Metadata", - "SAMIN String Attribute Selector", - "SANMIN ChineseToCharacter", - "SANMIN ClothingWildcards", - "SANMIN ConvertToEnglish", - "SANMIN LoadPathImagesPreview", - "SANMIN SanmiSaveImageToLocal", - "SANMIN SimpleWildcards", - "Samin Counter", - "Samin Load Image Batch" + "GPT4VCaptioner" ], { "title_aux": "ComfyUI-GPT4V-Image-Captioner" } ], + "https://github.com/45uee/ComfyUI-Color_Transfer": [ + [ + "ColorPalette", + "ColorTransferReinhard", + "PaletteOptimalTransportTransfer", + "PaletteRbfTransfer", + "PaletteTransfer", + "PaletteTransferReinhard", + "PalleteTransferClustering", + "PalletteSoftTransfer" + ], + { + "title_aux": "ComfyUI-Color_Transfer" + } + ], "https://github.com/54rt1n/ComfyUI-DareMerge": [ [ "DM_AdvancedDareModelMerger", @@ -171,6 +560,221 @@ "title_aux": "ComfyUI-DareMerge" } ], + "https://github.com/5x00/ComfyUI-PiAPI-Faceswap": [ + [ + "Face Swapper" + ], + { + "title_aux": "ComfyUI-PiAPI-Faceswap" + } + ], + "https://github.com/5x00/ComfyUI-VLM-Captions": [ + [ + "Image To Caption" + ], + { + "title_aux": "ComfyUI-VLM_Captions" + } + ], + "https://github.com/6174/comflowy-nodes": [ + [ + "Comflowy_Clarity_Upscale", + "Comflowy_Extract_JSON", + "Comflowy_Flux", + "Comflowy_Flux_Dev_Lora", + "Comflowy_Flux_Pro_Ultra", + "Comflowy_Hailuo", + "Comflowy_Http_Request", + "Comflowy_Ideogram", + "Comflowy_Kling", + "Comflowy_LLM", + "Comflowy_Load_JSON", + "Comflowy_Luma", + "Comflowy_Omost_LLM", + "Comflowy_Omost_Load_Canvas_Conditioning", + "Comflowy_Omost_Load_Canvas_Python_Code", + "Comflowy_Omost_Preview", + "Comflowy_Omost_To_Conditioning", + "Comflowy_Preview_JSON", + "Comflowy_Preview_Video", + "Comflowy_Recraft", + "Comflowy_Set_API_Key" + ], + { + "title_aux": "Comflowy's Custom Nodes" + } + ], + "https://github.com/807502278/ComfyUI-3D-MeshTool": [ + [ + "Auto_Normal", + "List_to_Tensor", + "Load_OBJ", + "Mesh_Clean_Data", + "Mesh_Cleanup", + "Mesh_Data_Get", + "Mesh_Data_Set", + "Mesh_Data_Statistics", + "Mesh_Optimization", + "Mesh_Subdivide", + "RT-to-camposes", + "Tensor_to_List", + "UV_options", + "UnwrapUV_Auto_xatlas", + "UnwrapUV_xatlas", + "array-append", + "array-attribute", + "array-convert", + "array-end-increment", + "array-end-step", + "array-is-null", + "array-number-to-angle", + "array-select-element", + "array-step", + "array-step-increment", + "array-t", + "array-to-camposes", + "cam-pos-bus", + "get-tensor-shape", + "img-bath-rotationZ", + "img-to-tensor", + "json-to-campos", + "mesh_data_bus", + "mesh_remap_cubvh", + "ply_load", + "ply_normalize", + "ply_save", + "show_any", + "string-to-array", + "tensor-new", + "tensor-shape", + "tensor-to-img", + "vc_to_texture" + ], + { + "author": "807502278", + "description": "A simple 3D model processing tool within ComfyUI", + "nickname": "3D Mesh Tool", + "title": "3D Mesh Tool", + "title_aux": "ComfyUI-3D-MeshTool" + } + ], + "https://github.com/807502278/ComfyUI-WJNodes": [ + [ + "Accurate_mask_clipping", + "Any_Pipe", + "ApplyEasyOCR_batch", + "AudioDuration_wan", + "Batch_Average", + "Bilateral_Filter", + "ColorData_HSV_Capture", + "Color_Data_Break", + "Color_check_Name", + "ComfyUI_Path_Out", + "Composite_Application_pro", + "Composite_Basic", + "Composite_Batch", + "Composite_Canvas_adv", + "Composite_Coordinate", + "Composite_Global_adv", + "Composite_Mask", + "Composite_Merge_pro", + "Composite_Other", + "Composite_Scale", + "Cutting_video", + "Detecting_videos_mask", + "Determine_Type", + "Folder_Operations_CH", + "Graphics_Detection_Reference", + "ImageCompositeMask_Adv", + "ListMerger", + "Load_Image_Adv", + "Load_Image_From_Path", + "Mask_Detection", + "PrimitiveNode", + "QwenImage_ratio", + "Random_Select_Prompt", + "Robust_Imager_Merge", + "Run_BEN_v2", + "Run_torchvision_model", + "Sam2AutoSegmentation_data", + "SaveMP4", + "SaveMP4_batch", + "Save_Image_Out", + "Save_Image_To_Path", + "SegmDetectorCombined_batch", + "SelectBatch_paragraph", + "Select_Batch_v2", + "Select_Images_Batch", + "Split_Path", + "Str_Append", + "Video_Fade", + "Video_MaskBasedSplit", + "Video_OverlappingSeparation_test", + "WAS_Mask_Fill_Region_batch", + "adv_crop", + "any_math", + "any_math_v2", + "audio_resample", + "audio_scale", + "bbox_restore_mask", + "color_segmentation", + "color_segmentation_v2", + "coords_select_mask", + "crop_by_bboxs", + "crop_data_CoordinateSmooth", + "crop_data_edit", + "filter_DensePose_color", + "get_image_data", + "get_image_ratio", + "image_math", + "image_math_value", + "image_scale_pixel_option", + "image_scale_pixel_v2", + "image_url_download", + "invert_channel_adv", + "load_BEN_model", + "load_ColorName_config", + "load_EasyOCR_model", + "load_color_config", + "load_model_value", + "load_torchvision_model", + "maskCompositeMask_Adv", + "mask_and_mask_math", + "mask_crop_option_Basic", + "mask_crop_option_SmoothCrop", + "mask_crop_square", + "mask_line_mapping", + "mask_select_mask", + "ratio_selector", + "run_yolo_bboxs", + "run_yolo_bboxs_v2", + "sort_images_batch" + ], + { + "title_aux": "ComfyUI-WJNodes" + } + ], + "https://github.com/807502278/ComfyUI_MaskGCT": [ + [ + "audio_capture_percentage", + "audio_resample", + "audio_scale", + "from_path_load_audio", + "get_audio_data", + "get_text_data", + "load_maskgct_model", + "load_w2vbert_model", + "maskgct_pipeline", + "maskgct_run_v2", + "maskgct_setting", + "multilingual_slice", + "remove_blank_space", + "whisper_large_v3" + ], + { + "title_aux": "ComfyUI_MaskGCT" + } + ], "https://github.com/80sVectorz/ComfyUI-Static-Primitives": [ [ "FloatStaticPrimitive", @@ -182,12 +786,241 @@ "title_aux": "ComfyUI-Static-Primitives" } ], - "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE": [ + "https://github.com/834t/ComfyUI_834t_scene_composer": [ [ - "PixelOE" + "B34tSceneComposerNode" ], { - "title_aux": "ComfyUI-PixelOE" + "title_aux": "Scene Composer for ComfyUI" + } + ], + "https://github.com/852wa/ComfyUI-AAP": [ + [ + "AdvancedAlphaProcessor" + ], + { + "title_aux": "ComfyUI-AdvancedAlphaProcessor" + } + ], + "https://github.com/852wa/ComfyUI-ColorshiftColor": [ + [ + "ColorshiftColor", + "CsCFill", + "CsCPaletteEditor" + ], + { + "title_aux": "ComfyUI-ColorshiftColor" + } + ], + "https://github.com/A043-studios/ComfyUI-ASDF-Pixel-Sort-Nodes": [ + [ + "PixelSortAdvancedNode", + "PixelSortNode" + ], + { + "title_aux": "ComfyUI ASDF Pixel Sort Nodes" + } + ], + "https://github.com/A043-studios/ComfyUI-OmniSVG": [ + [ + "OmniSVG Image to SVG", + "OmniSVG Model Loader", + "OmniSVG Text to SVG", + "SVG Saver", + "SVG to Image" + ], + { + "title_aux": "ComfyUI OmniSVG Nodes" + } + ], + "https://github.com/A043-studios/ComfyUI_HunyuanWorldnode": [ + [ + "HunyuanWorldHybridNode", + "HunyuanWorldImageTo3D", + "HunyuanWorldModelLoader", + "HunyuanWorldSimplifiedWrapper" + ], + { + "title_aux": "ComfyUI HunyuanWorld - Complete 3D Generation Suite" + } + ], + "https://github.com/A043-studios/Comfyui-ascii-generator": [ + [ + "ASCIIGeneratorNode" + ], + { + "title_aux": "ComfyUI ASCII Generator Node" + } + ], + "https://github.com/A043-studios/comfyui-deforum-x-flux-nodes": [ + [ + "DeforumAnimParamsNode", + "DeforumBaseParamsNode", + "DeforumCacheLatentNode", + "DeforumConditioningBlendNode", + "DeforumDepthWarping", + "DeforumDiffusionParamsNode", + "DeforumFluxSampler", + "DeforumGetCachedLatentNode", + "DeforumInterpolation", + "DeforumIteratorNode", + "DeforumPromptNode", + "DeforumRenderer", + "DeforumTranslationParamsNode", + "DeforumVideoInput", + "DeforumVideoOutput" + ], + { + "title_aux": "ComfyUI Deforum-X-Flux Nodes" + } + ], + "https://github.com/A043-studios/comfyui-pixel3dmm": [ + [ + "FLAMEOptimizer", + "FaceReconstructor3D", + "MeshExporter", + "NormalPredictor", + "Pixel3DMMLoader", + "UVPredictor" + ], + { + "title_aux": "Pixel3DMM ComfyUI Nodes" + } + ], + "https://github.com/A4P7J1N7M05OT/ComfyUI-AutoColorGimp": [ + [ + "AutoColorGimp" + ], + { + "title_aux": "ComfyUI-AutoColorGimp" + } + ], + "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE-Wrapper": [ + [ + "PixelOE", + "PixelOETorch" + ], + { + "title_aux": "ComfyUI-PixelOE-Wrapper" + } + ], + "https://github.com/AARG-FAN/Image-Vector-for-ComfyUI": [ + [ + "AIraster" + ], + { + "title_aux": "Image-vector-for-ComfyUI" + } + ], + "https://github.com/AEmotionStudio/ComfyUI-DiscordSend": [ + [ + "DiscordSendSaveImage", + "DiscordSendSaveVideo" + ], + { + "title_aux": "ComfyUI-DiscordSend" + } + ], + "https://github.com/AEmotionStudio/ComfyUI-ShaderNoiseKSampler": [ + [ + "AdvancedImageComparer", + "ShaderNoiseKSampler", + "ShaderNoiseKSamplerDirect", + "Video Comparer", + "VideoComparer" + ], + { + "title_aux": "ComfyUI-ShaderNoiseKSampler" + } + ], + "https://github.com/AIExplorer25/ComfyUI_AutoDownloadModels": [ + [ + "ALIMAMAFUNCONTROLWANModelsAutoDownload", + "AutoDownloadALLModels", + "AutoDownloadModels", + "AutoInstallRequirements_txt", + "GetModelsFromWorkflow", + "SetModelPath", + "ShowModelsAndFolderMappings", + "WANALMAMAModelsAutoDownload", + "WANModelsAutoDownload" + ], + { + "title_aux": "ComfyUI_AutoDownloadModels" + } + ], + "https://github.com/AIExplorer25/ComfyUI_ChatGptHelper": [ + [ + "ChatGptHelper" + ], + { + "title_aux": "ComfyUI_ChatGptHelper" + } + ], + "https://github.com/AIExplorer25/ComfyUI_ImageCaptioner": [ + [ + "CheckImageCaptionsData", + "ImageCaptioner", + "ImageCaptionerPostProcessing", + "Quen3Helper", + "Quen3HelperGGUF", + "SingleImageCaptioner" + ], + { + "title_aux": "ComfyUI_ImageCaptioner" + } + ], + "https://github.com/AIFSH/AniTalker-ComfyUI": [ + [ + "AniTalkerNode", + "PreViewVideo" + ], + { + "title_aux": "AniTalker-ComfyUI" + } + ], + "https://github.com/AIFSH/ComfyUI-3d-photo-inpainting": [ + [ + "LoadImagePath", + "PreViewVideo", + "TreeDNode" + ], + { + "title_aux": "ComfyUI-3d-photo-inpainting" + } + ], + "https://github.com/AIFSH/ComfyUI-AuraSR": [ + [ + "AuraSRNode" + ], + { + "title_aux": "AIFSH/ComfyUI-AuraSR" + } + ], + "https://github.com/AIFSH/ComfyUI-DiffSynth-Studio": [ + [ + "ControlNetPathLoader", + "DiffTextNode", + "DiffutoonNode", + "ExVideoNode", + "LoadVideo", + "PreViewVideo", + "SDPathLoader" + ], + { + "title_aux": "ComfyUI-DiffSynth-Studio" + } + ], + "https://github.com/AIFSH/ComfyUI-FishSpeech": [ + [ + "FishSpeech_INFER", + "FishSpeech_INFER_SRT", + "LoadAudio", + "LoadSRT", + "PreViewAudio" + ], + { + "title_aux": "ComfyUI-FishSpeech" } ], "https://github.com/AIFSH/ComfyUI-GPT_SoVITS": [ @@ -203,6 +1036,29 @@ "title_aux": "ComfyUI-GPT_SoVITS" } ], + "https://github.com/AIFSH/ComfyUI-Hallo": [ + [ + "HalloNode", + "LoadAudioPath", + "LoadImagePath", + "PreViewVideo" + ], + { + "title_aux": "ComfyUI-Hallo" + } + ], + "https://github.com/AIFSH/ComfyUI-I2V-Adapter": [ + [ + "I2V_AdapterNode", + "LoraPathLoader", + "MotionLoraLoader", + "PreViewVideo", + "PromptNode" + ], + { + "title_aux": "ComfyUI-I2V-Adapter" + } + ], "https://github.com/AIFSH/ComfyUI-IP_LAP": [ [ "CombineAudioVideo", @@ -214,20 +1070,71 @@ "title_aux": "ComfyUI-IP_LAP" } ], + "https://github.com/AIFSH/ComfyUI-Live2DViewer": [ + [ + "Live2DViewer", + "LoadAudio" + ], + { + "title_aux": "ComfyUI-Live2DViewer" + } + ], + "https://github.com/AIFSH/ComfyUI-MARS5-TTS": [ + [ + "LoadAudioPath", + "MARS5TTS_Node", + "PreViewAudio", + "TTSTextEncode" + ], + { + "title_aux": "ComfyUI-MARS5-TTS" + } + ], + "https://github.com/AIFSH/ComfyUI-MimicBrush": [ + [ + "MimicBrushNode" + ], + { + "title_aux": "ComfyUI-MimicBrush" + } + ], + "https://github.com/AIFSH/ComfyUI-MimicMotion": [ + [ + "LoadVideo", + "MimicMotionNode", + "PreViewVideo" + ], + { + "title_aux": "ComfyUI-MimicMotion" + } + ], "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH": [ [ "CombineAudioVideo", "LoadVideo", "MuseTalk", + "MuseTalkRealTime", "PreViewVideo" ], { "title_aux": "ComfyUI-MuseTalk_FSH" } ], + "https://github.com/AIFSH/ComfyUI-RVC": [ + [ + "CombineAudio", + "LoadAudio", + "PreViewAudio", + "RVC_Infer", + "RVC_Train" + ], + { + "title_aux": "ComfyUI-RVC" + } + ], "https://github.com/AIFSH/ComfyUI-UVR5": [ [ - "LoadAudio", + "LoadAudioPath", "PreViewAudio", "UVR5_Node" ], @@ -235,6 +1142,286 @@ "title_aux": "ComfyUI-UVR5" } ], + "https://github.com/AIFSH/ComfyUI-UniAnimate": [ + [ + "LoadImagePath", + "LoadVideo", + "PoseAlignNode", + "PreViewVideo", + "UniAnimateNode" + ], + { + "title_aux": "ComfyUI-UniAnimate" + } + ], + "https://github.com/AIFSH/ComfyUI-WhisperX": [ + [ + "LoadAudioVideoPath", + "PreViewSRT", + "SRTToString", + "WhisperX" + ], + { + "title_aux": "ComfyUI-WhisperX" + } + ], + "https://github.com/AIFSH/ComfyUI-XTTS": [ + [ + "LoadAudioPath", + "LoadSRT", + "PreViewAudio", + "XTTS_INFER", + "XTTS_INFER_SRT" + ], + { + "title_aux": "ComfyUI-XTTS" + } + ], + "https://github.com/AIFSH/ComfyUI_V-Express": [ + [ + "LoadAudioPath", + "LoadImagePath", + "LoadVideo", + "PreViewVideo", + "VExpress" + ], + { + "title_aux": "ComfyUI_V-Express" + } + ], + "https://github.com/AIFSH/CosyVoice-ComfyUI": [ + [ + "CosyVoiceDubbingNode", + "CosyVoiceNode", + "LoadSRT", + "TextNode" + ], + { + "title_aux": "CosyVoice-ComfyUI" + } + ], + "https://github.com/AIFSH/DHLive-ComfyUI": [ + [ + "CombineVideo", + "DHLIVELoadVideo", + "DHLiveNode", + "PreViewVideo", + "StaticVideo" + ], + { + "title_aux": "DHLive-ComfyUI" + } + ], + "https://github.com/AIFSH/DiffMorpher-ComfyUI": [ + [ + "DiffMorpherNode", + "PreViewGIF", + "TextNode" + ], + { + "title_aux": "DiffMorpher-ComfyUI" + } + ], + "https://github.com/AIFSH/DiffSynth-ComfyUI": [ + [ + "CogVideoNode", + "DownloadModelsNode", + "LoadVideo", + "PreViewVideo", + "TextEncode" + ], + { + "title_aux": "DiffSynth-ComfyUI" + } + ], + "https://github.com/AIFSH/EchoMimicV2-ComfyUI": [ + [ + "EchoMimicV2Node", + "EchoMimicV2PoseNode" + ], + { + "title_aux": "EchoMimicV2-ComfyUI" + } + ], + "https://github.com/AIFSH/EzAudio-ComfyUI": [ + [ + "EzAudioControlNetNode", + "EzAudioEditNode", + "EzAudioNode", + "TextPromptNode" + ], + { + "title_aux": "EzAudio-ComfyUI" + } + ], + "https://github.com/AIFSH/F5-TTS-ComfyUI": [ + [ + "F5TTSNode" + ], + { + "title_aux": "F5-TTS-ComfyUI" + } + ], + "https://github.com/AIFSH/FancyVideo-ComfyUI": [ + [ + "FancyVideoI2VNode", + "FancyVideoV2VNode" + ], + { + "title_aux": "FancyVideo-ComfyUI" + } + ], + "https://github.com/AIFSH/FireRedTTS-ComfyUI": [ + [ + "FireRedTTSNode" + ], + { + "title_aux": "FireRedTTS-ComfyUI" + } + ], + "https://github.com/AIFSH/GSTTS-ComfyUI": [ + [ + "ASRNode", + "AudioSlicerNode", + "ConfigGPTNode", + "ConfigSoVITSNode", + "DatasetNode", + "ExperienceNode", + "GSFinetuneNone", + "GSVTTSNode", + "LoadSRT", + "PreViewSRT", + "TSCY_Node", + "TextDictNode" + ], + { + "title_aux": "GSTTS-ComfyUI" + } + ], + "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI": [ + [ + "AddBackgroundNode", + "AddWaterMarkNode", + "ENHivisionParamsNode", + "HivisionLayOutNode", + "HivisionNode", + "LaterProcessNode", + "ZHHivisionParamsNode" + ], + { + "author": "cuny", + "description": "", + "title_aux": "HivisionIDPhotos-ComfyUI" + } + ], + "https://github.com/AIFSH/IMAGDressing-ComfyUI": [ + [ + "IMAGDressingNode", + "TextNode" + ], + { + "title_aux": "IMAGDressing-ComfyUI" + } + ], + "https://github.com/AIFSH/JoyHallo-ComfyUI": [ + [ + "JoyHalloNode" + ], + { + "title_aux": "JoyHallo-ComfyUI" + } + ], + "https://github.com/AIFSH/MaskGCT-ComfyUI": [ + [ + "MaskGCTNode" + ], + { + "title_aux": "MaskGCT-ComfyUI" + } + ], + "https://github.com/AIFSH/MiniMates-ComfyUI": [ + [ + "MiniMatesNode" + ], + { + "title_aux": "MiniMates-ComfyUI" + } + ], + "https://github.com/AIFSH/OmniGen-ComfyUI": [ + [ + "OmniGenLoader", + "OmniGenNode" + ], + { + "title_aux": "OmniGen-ComfyUI" + } + ], + "https://github.com/AIFSH/PyramidFlow-ComfyUI": [ + [ + "PyramidFlowNode" + ], + { + "title_aux": "PyramidFlow-ComfyUI" + } + ], + "https://github.com/AIFSH/RealisDance-ComfyUI": [ + [ + "LoadFile", + "LoadVideo", + "PreViewVideo", + "RealisDanceNode" + ], + { + "title_aux": "RealisDance-ComfyUI" + } + ], + "https://github.com/AIFSH/SenseVoice-ComfyUI": [ + [ + "SenseVoiceNode", + "ShowTextNode" + ], + { + "title_aux": "SenseVoice-ComfyUI" + } + ], + "https://github.com/AIFSH/StyleShot-ComfyUI": [ + [ + "StyleShotNode", + "TextNode" + ], + { + "title_aux": "StyleShot-ComfyUI" + } + ], + "https://github.com/AIFSH/VideoSys-ComfyUI": [ + [ + "PreViewVideo", + "TextNode", + "VideoSysNode" + ], + { + "title_aux": "VideoSys-ComfyUI" + } + ], + "https://github.com/AIFSH/ViewCrafter-ComfyUI": [ + [ + "LoadVideo", + "PreViewVideo", + "ViewCrafterTxTNode" + ], + { + "title_aux": "ViewCrafter-ComfyUI" + } + ], + "https://github.com/AIFSH/VocalSeparation-ComfyUI": [ + [ + "CombineAudioNode", + "VocalSeparationNode" + ], + { + "title_aux": "VocalSeparation-ComfyUI" + } + ], "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes": [ [ "LoadMarianMTCheckPoint", @@ -258,6 +1445,9 @@ "OpenPoseKeyPose", "OpenPoseLineart", "OpenPoseMediaPipeFace", + "PreviewAudio", + "SaveAudioBL", + "SaveModel", "\u5b58\u50a8", "\u5bfc\u5165", "\u622a\u56fe", @@ -269,6 +1459,70 @@ "title_aux": "ComfyUI-CUP" } ], + "https://github.com/AIGODLIKE/ComfyUI-ToonCrafter": [ + [ + "ToonCrafterNode", + "ToonCrafterWithSketch" + ], + { + "title_aux": "ComfyUI-ToonCrafter" + } + ], + "https://github.com/AIPOQUE/ComfyUI-APQNodes": [ + [ + "ColorPalette|AIPOQUE" + ], + { + "title_aux": "ComfyUI-APQNodes" + } + ], + "https://github.com/AIToldMeTo/comfyui-cache-cleaner": [ + [ + "CacheCleaner" + ], + { + "title_aux": "ComfyUI Cache Cleaner Node" + } + ], + "https://github.com/AIWarper/ComfyUI-DAViD": [ + [ + "DAViDDepthVisualizer", + "DAViDMultiTask", + "DAViDNormalToLight" + ], + { + "title_aux": "ComfyUI-DAViD" + } + ], + "https://github.com/AIWarper/ComfyUI-NormalCrafterWrapper": [ + [ + "DetailTransfer", + "NormalCrafterNode" + ], + { + "title_aux": "NormalCrafterWrapper" + } + ], + "https://github.com/AIWarper/ComfyUI-WarperNodes": [ + [ + "AspectRatioResolution_Warper", + "CropAndRestore_Warper", + "DWPoseScalerNode_Warper", + "FacialPartMaskFromPose_Warper", + "FlowConfig_Warper", + "FlowGetFlow_Warper", + "FlowVisualizerNode_Warper", + "GetBatchByIndex_Warper", + "GetRaftFlow_Warper", + "MouthMaskFromPose_Warper", + "PreprocessForTarget_Warper", + "SmartOverlappingBatcher_Warper", + "SmartVideoBatcher_Warper" + ], + { + "title_aux": "ComfyUI Warper Nodes" + } + ], "https://github.com/AInseven/ComfyUI-fastblend": [ [ "FillDarkMask", @@ -299,28 +1553,164 @@ "title_aux": "One Button Prompt" } ], + "https://github.com/AJO-reading/ComfyUI-AjoNodes": [ + [ + "AJO_AudioCollectAndConcat", + "AJO_PreviewAudio", + "AJO_SaveAudio", + "AJO_VfiSkipListCalculator" + ], + { + "title_aux": "ComfyUI-AjoNodes" + } + ], + "https://github.com/AKharytonchyk/ComfyUI-telegram-bot-node": [ + [ + "SaveToTelegram", + "TelegramListener", + "author", + "description", + "files", + "install_type", + "keywords", + "license", + "name", + "nodename_pattern", + "pip", + "reference", + "version" + ], + { + "title_aux": "ComfyUI-telegram-bot-node" + } + ], "https://github.com/ALatentPlace/ComfyUI_yanc": [ [ + "> Bloom", + "> Blur", + "> Brightness", "> Clear Text", + "> Combine Channels", + "> Contrast", + "> Divide Channels", + "> Edge Enhance", + "> Film Grain", "> Float to Int", + "> Fog", + "> Get Mean Color", + "> HUE", "> Int", "> Int to Text", + "> Layer Weights (for IPAMS)", + "> Lens Distortion", + "> Light Source Mask", "> Load Image", "> Load Image From Folder", + "> Mask Curves", + "> NIKSampler", + "> Noise From Image", + "> Normal Map Lighting", + "> RGB Color", + "> RGB Shift", "> Resolution by Aspect Ratio", "> Rotate Image", + "> Saturation", "> Save Image", + "> Save Text", "> Scale Image to Side", + "> Scanlines", + "> Sharpen", "> Text", "> Text Combine", + "> Text Count", + "> Text Pick Line by Index", "> Text Pick Random Line", "> Text Random Weights", - "> Text Replace" + "> Text Replace", + "> Vignette" ], { "title_aux": "ComfyUI_yanc" } ], + "https://github.com/ALatentPlace/YANC_LMStudio": [ + [ + "> LMStudio", + "> Select LMS Model" + ], + { + "title_aux": "YANC_LMStudio" + } + ], + "https://github.com/APZmedia/APZmedia-comfy-together-lora": [ + [ + "TogetherImageGenerator", + "TogetherImageGeneratorLoRA" + ], + { + "title_aux": "APZmedia Together Image Generator for ComfyUI" + } + ], + "https://github.com/APZmedia/APZmedia-comfyui-fast-image-save": [ + [ + "APZmedia Fast image save" + ], + { + "title_aux": "APZmedia Fast Image Save Node" + } + ], + "https://github.com/APZmedia/ComfyUI-APZmedia-cleanName-from-string": [ + [ + "APZmediaGenerateFilePath", + "APZmediaImageFilename", + "APZmediaReadWidget", + "APZmediaStandardFilenameBuilder", + "CleanFileNameNode" + ], + { + "title_aux": "APZmedia Naming Tools" + } + ], + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA": [ + [ + "CachingCLIPTextEncodeFlux|ARZUMATA", + "CachingCLIPTextEncode|ARZUMATA", + "ImageCacher", + "ImageLoaderWithPath|ARZUMATA", + "JDC_ImageLoader", + "Sampler Selector|ARZUMATA", + "Scheduler Selector|ARZUMATA" + ], + { + "title_aux": "ComfyUI-ARZUMATA" + } + ], + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-PixelIt": [ + [ + "PixelIt" + ], + { + "title_aux": "ComfyUI-ARZUMATA-PixelIt" + } + ], + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-Qwen2": [ + [ + "Image2Base64", + "Qwen2ModelLoader", + "Qwen2ModelRunInference" + ], + { + "title_aux": "ComfyUI-Qwen2" + } + ], + "https://github.com/Aaron-CHM/ComfyUI-z-a1111-sd-webui-DanTagGen": [ + [ + "DanTagGen" + ], + { + "title_aux": "z-a1111-sd-webui-DanTagGen" + } + ], "https://github.com/AbdullahAlfaraj/Comfy-Photoshop-SD": [ [ "APS_LatentBatch", @@ -339,15 +1729,27 @@ "title_aux": "Comfy-Photoshop-SD" } ], - "https://github.com/AbyssYuan0/ComfyUI_BadgerTools": [ + "https://github.com/AbstractEyes/comfyui-lycoris": [ + [ + "ABS_ConcatPrompts", + "ABS_PromptNode", + "LycorisLoaderNode" + ], + { + "title_aux": "comfyui-lycoris" + } + ], + "https://github.com/AbyssBadger0/ComfyUI_BadgerTools": [ [ "ApplyMaskToImage-badger", "CropImageByMask-badger", "ExpandImageWithColor-badger", "FindThickLinesFromCanny-badger", + "Find_closest_factors-badger", "FloatToInt-badger", "FloatToString-badger", "FrameToVideo-badger", + "GETRequset-badger", "GarbageCollect-badger", "GetColorFromBorder-badger", "GetDirName-badger", @@ -360,11 +1762,17 @@ "IntToString-badger", "IntToStringAdvanced-badger", "LoadImageAdvanced-badger", + "LoadImagesFromDirListAdvanced-badger", + "MapColorsToPalette-badger", + "NormalizationNumber-badger", + "ReduceColors-badger", + "RotateImageWithPadding-badger", "SegmentToMaskByPoint-badger", "SimpleBoolean-badger", "StringToFizz-badger", "TextListToString-badger", "ToPixel-badger", + "ToPixelV2-badger", "TrimTransparentEdges-badger", "VideoCutFromDir-badger", "VideoToFrame-badger", @@ -378,10 +1786,30 @@ "title_aux": "ComfyUI_BadgerTools" } ], + "https://github.com/AbyssBadger0/ComfyUI_Kolors_awesome_prompts": [ + [ + "KolorsAwesomePrompts" + ], + { + "title_aux": "Kolors Awesome Prompts" + } + ], + "https://github.com/AcademiaSD/comfyui_AcademiaSD": [ + [ + "LoopCounterToFile", + "PaddedFileName", + "PromptBatchSelector", + "ResetCounterFile" + ], + { + "title_aux": "comfyui_AcademiaSD" + } + ], "https://github.com/Acly/comfyui-inpaint-nodes": [ [ "INPAINT_ApplyFooocusInpaint", "INPAINT_DenoiseToCompositingMask", + "INPAINT_ExpandMask", "INPAINT_InpaintWithModel", "INPAINT_LoadFooocusInpaint", "INPAINT_LoadInpaintModel", @@ -396,15 +1824,126 @@ "https://github.com/Acly/comfyui-tooling-nodes": [ [ "ETN_ApplyMaskToImage", + "ETN_ApplyReferenceImages", + "ETN_AttentionMask", + "ETN_BackgroundRegion", "ETN_CropImage", + "ETN_DefineRegion", + "ETN_ExtractImageTile", + "ETN_ExtractMaskTile", + "ETN_GenerateTileMask", + "ETN_KritaCanvas", + "ETN_KritaImageLayer", + "ETN_KritaMaskLayer", + "ETN_KritaOutput", + "ETN_KritaSelection", + "ETN_KritaSendText", + "ETN_KritaStyle", + "ETN_ListRegionMasks", "ETN_LoadImageBase64", "ETN_LoadMaskBase64", - "ETN_SendImageWebSocket" + "ETN_MergeImageTile", + "ETN_NSFWFilter", + "ETN_Parameter", + "ETN_ReferenceImage", + "ETN_SendImageWebSocket", + "ETN_TileLayout", + "ETN_Translate" ], { "title_aux": "ComfyUI Nodes for External Tooling" } ], + "https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes": [ + [ + "Advanced_Color_Correction", + "Advanced_Latent_Noise", + "Advanced_Sharpen", + "Advanced_Upscale_Image_Using_Model", + "Capped_Float_Positive", + "Capped_Int_Positive", + "Embedding_Selector", + "Fast_Color_Match", + "Fast_Film_Grain", + "Get_Side_Length_Of_Image", + "Image_Crop", + "Image_Dimensions", + "Image_Stitch", + "Image_Tiler", + "Image_Untiler", + "Int_Divide_Rounded", + "SamplerTiledContextAdvanced", + "Sampler_Settings", + "Smart_Seed", + "Triple_Prompt" + ], + { + "title_aux": "ComfyUI GOAT Nodes" + } + ], + "https://github.com/Aero-Ex/ComfyUI-Vision-LLM-Analyzer": [ + [ + "VisionLLMNode" + ], + { + "title_aux": "ComfyUI Vision LLM Analyzer Node" + } + ], + "https://github.com/Aerse/ComfyUI-Seed-Nodes": [ + [ + "Seed-Nodes: ImagePixelator", + "Seed-Nodes: ImageTo3D", + "Seed-Nodes: ImageTransparencyCrop", + "Seed-Nodes: LoadImage", + "Seed-Nodes: LoadMultipleImages", + "Seed-Nodes: QwenVLAPI", + "Seed-Nodes: SLICPixelator", + "Seed-Nodes: ScreenModeRemoveBlack", + "Seed-Nodes: SeedSaveAudio", + "Seed-Nodes: SiliconFlowVLAPI" + ], + { + "title_aux": "ComfyUI-Seed-Nodes" + } + ], + "https://github.com/AgencyMind/ComfyUI-Satori": [ + [ + "TemporalInvestigator", + "WhyDidItBreak" + ], + { + "title_aux": "ComfyUI-Satori" + } + ], + "https://github.com/AhBumm/ComfyUI_BillBum_APIset_Nodes": [ + [ + "BillBum_Modified_Base64_Url2Data_Node", + "BillBum_Modified_Base64_Url2Img_Node", + "BillBum_Modified_Dalle_API_Node", + "BillBum_Modified_DropoutToken_Node", + "BillBum_Modified_Flux_API_Node", + "BillBum_Modified_Flux_API_with_imgInput", + "BillBum_Modified_GPTImage1_API_Node", + "BillBum_Modified_Ideogram_API_Node", + "BillBum_Modified_ImageSplit_Node", + "BillBum_Modified_Image_API_Call_Node", + "BillBum_Modified_LLM_API_Node", + "BillBum_Modified_LLM_ForceStream_Mode", + "BillBum_Modified_Recraft_API_Node", + "BillBum_Modified_RegText_Node", + "BillBum_Modified_SD3_API_Node", + "BillBum_Modified_Structured_LLM_Node(Imperfect)", + "BillBum_Modified_VisionLM_API_Node", + "BillBum_Modified_img2b64_url_Node", + "BillBum_NonSysPrompt_VLM_API_Node", + "Input_Text", + "Text_Concat" + ], + { + "nodename_pattern": "\\(BillBum\\)$", + "title_aux": "Customizable API Call Nodes by BillBum" + } + ], "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes": [ [ "Add Tag", @@ -419,25 +1958,330 @@ "title_aux": "ComfyUI-Aimidi-nodes" } ], - "https://github.com/Alysondao/Comfyui-Yolov8-JSON": [ + "https://github.com/AkashKarnatak/ComfyUI_faishme": [ [ - "Apply Yolov8 Model", - "Apply Yolov8 Model Seg", - "Load Yolov8 Model", - "Load Yolov8 Model From Path" + "Faishme Debug", + "Faishme Gemini", + "Faishme Load Image from Glob", + "Faishme Mannequin to Model Loader", + "Faishme Memory Debug", + "Faishme Moondream", + "Faishme Repeat BBOX", + "Faishme Repeat Image Batch", + "Faishme Repeat Latent Batch", + "Faishme Repeat Tensor Batch", + "Faishme Save Image", + "Faishme Split", + "Faishme Stack Images", + "Faishme Stack Latents", + "Faishme Unstack Images", + "Faishme Unstack Latents", + "Load Fashion Model" ], { - "title_aux": "Comfyui-Yolov8-JSON" + "title_aux": "ComfyUI_faishme" + } + ], + "https://github.com/Aksaz/comfyui-seamless-clone": [ + [ + "Seamless Clone" + ], + { + "title_aux": "seamless-clone-comfyui" + } + ], + "https://github.com/Alectriciti/comfyui-adaptiveprompts": [ + [ + "CleanupTags", + "NormalizeLoraTags", + "PromptGenerator", + "PromptReplace", + "PromptRewrap", + "ShuffleTags", + "ShuffleTagsAdvanced", + "StringMerger4", + "StringMerger8" + ], + { + "title_aux": "comfyui-adaptiveprompts" + } + ], + "https://github.com/Alexankharin/camera-comfyUI": [ + [ + "CameraInterpolationNode", + "CameraMotionNode", + "CameraTrajectoryNode", + "CombineDepthsNode", + "DepthEstimatorNode", + "DepthFramesToVideo", + "DepthRenormalizer", + "DepthToImageNode", + "DepthToPointCloud", + "FisheyeDepthEstimator", + "LoadPointCloud", + "LoadTrajectory", + "OutpaintAnyProjection", + "PointCloudCleaner", + "PointCloudUnion", + "PointcloudTrajectoryEnricher", + "ProjectAndClean", + "ProjectPointCloud", + "ReprojectDepth", + "ReprojectImage", + "SavePointCloud", + "SaveTrajectory", + "TransformPointCloud", + "TransformToMatrix", + "TransformToMatrixManual", + "VideoCameraMotionSequence", + "VideoMetricDepthEstimate", + "ZDepthToRayDepthNode" + ], + { + "title_aux": "camera-comfyUI" + } + ], + "https://github.com/AlfredClark/ComfyUI-ModelSpec": [ + [ + "ModelMetadataNode", + "ModelSpecEditNode", + "SelectModelNode" + ], + { + "title_aux": "ComfyUI-ModelSpec" + } + ], + "https://github.com/Aljnk/ComfyUI-JNK-Tiny-Nodes": [ + [ + "Add Layer Overlay JNK", + "Ask Google Gemini JNK", + "Bridge All JNK", + "Create Folder JNK", + "Create RGBA Image JNK", + "Get All Alpha Layers JNK", + "Get Gemini Keys JNK", + "Get Gemini Models JNK", + "Get Models JNK", + "Get One Alpha Layer JNK", + "Get Substring JNK", + "Get Text From List by Index JNK", + "Get Timestamp JNK", + "Image Filter Loader JNK", + "Join Strings JNK", + "Load Checkpoint Model with Name JNK", + "Load Image if Exist JNK", + "Load LoRA with Name JNK", + "Load UNet Model with Name JNK", + "Prepare Image for AI JNK", + "Queue Stop JNK", + "Save Frame JNK", + "Save Static Image JNK", + "Save Video Images JNK", + "Split String JNK", + "Stroke RGBA Image JNK", + "Switch Index JNK", + "Switch Integer JNK", + "Text Saver JNK", + "Text to Key JNK", + "Text to MD5 JNK", + "Topaz Photo Upscaler (Autopilot) JNK" + ], + { + "title_aux": "ComfyUI-JNK-Tiny-Nodes" + } + ], + "https://github.com/Altair200333/ComfyUI_Flux_1.1_PRO": [ + [ + "FluxGenerate", + "FluxProInpaint", + "FluxProOutpaint" + ], + { + "title_aux": "Flux Pro Nodes for ComfyUI" + } + ], + "https://github.com/Alvaroeai/ComfyUI-Text2Json": [ + [ + "TextToJson" + ], + { + "title_aux": "ComfyUI-Text2Json" + } + ], + "https://github.com/Amorano/Jovi_Capture": [ + [ + "CAMERA (JOV_CAPTURE)", + "MONITOR (JOV_CAPTURE)", + "REMOTE (JOV_CAPTURE)", + "WINDOW (JOV_CAPTURE)" + ], + { + "title_aux": "Jovi_Capture" + } + ], + "https://github.com/Amorano/Jovi_GLSL": [ + [ + "BLEND LINEAR (JOV_GL)", + "BLOOM (JOV_GL)", + "CIRCULAR GRADIENT (JOV_GL)", + "COLOR CONVERSION (JOV_GL)", + "COLOR PALETTE (JOV_GL)", + "CONICAL GRADIENT (JOV_GL)", + "DIRECTIONAL WARP (JOV_GL)", + "FILTER RANGE (JOV_GL)", + "GRAYSCALE (JOV_GL)", + "HSV ADJUST (JOV_GL)", + "INVERT (JOV_GL)", + "LINEAR GRADIENT (JOV_GL)", + "MIN MAX (JOV_GL)", + "NOISE PERLIN (JOV_GL)", + "NOISE SIMPLEX (JOV_GL)", + "NOISE WORLEY (JOV_GL)", + "NORMAL (JOV_GL)", + "NORMAL BLEND (JOV_GL)", + "PIXELATE (JOV_GL)", + "POSTERIZE (JOV_GL)", + "SHAPE: CAPSULE (JOV_GL)", + "SHAPE: ELLIPSE (JOV_GL)", + "SHAPE: POLYGON (JOV_GL)", + "SOBEL (JOV_GL)", + "TRANSFORM (JOV_GL)" + ], + { + "title_aux": "Jovi_GLSL" + } + ], + "https://github.com/Amorano/Jovi_MIDI": [ + [ + "MIDI FILTER (JOV_MIDI)", + "MIDI FILTER EZ (JOV_MIDI)", + "MIDI LOADER (JOV_MIDI)", + "MIDI MESSAGE (JOV_MIDI)", + "MIDI READER (JOV_MIDI)" + ], + { + "title_aux": "Jovi_MIDI" + } + ], + "https://github.com/Amorano/Jovi_Measure": [ + [ + "BLUR EFFECT (JOV_MEASURE)", + "SHANNON ENTROPY (JOV_MEASURE)" + ], + { + "title_aux": "Jovi_Measure" + } + ], + "https://github.com/Amorano/Jovi_Spout": [ + [ + "SPOUT READER (JOV_SPOUT)", + "SPOUT WRITER (JOV_SPOUT)" + ], + { + "title_aux": "Jovi_Spout" } ], "https://github.com/Amorano/Jovimetrix": [ - [], + [ + "ADJUST: BLUR (JOV)", + "ADJUST: COLOR (JOV)", + "ADJUST: EDGE (JOV)", + "ADJUST: EMBOSS (JOV)", + "ADJUST: LEVELS (JOV)", + "ADJUST: LIGHT (JOV)", + "ADJUST: MORPHOLOGY (JOV)", + "ADJUST: PIXEL (JOV)", + "ADJUST: SHARPEN (JOV)", + "AKASHIC (JOV) \ud83d\udcd3", + "ARRAY (JOV) \ud83d\udcda", + "BATCH TO LIST (JOV)", + "BIT SPLIT (JOV) \u2b44", + "BLEND (JOV) \u2697\ufe0f", + "COLOR BLIND (JOV) \ud83d\udc41\u200d\ud83d\udde8", + "COLOR MATCH (JOV) \ud83d\udc9e", + "COLOR MEANS (JOV) \u3030\ufe0f", + "COLOR THEORY (JOV) \ud83d\udede", + "COMPARISON (JOV) \ud83d\udd75\ud83c\udffd", + "CONSTANT (JOV) \ud83d\udfea", + "CROP (JOV) \u2702\ufe0f", + "DELAY (JOV) \u270b\ud83c\udffd", + "EXPORT (JOV) \ud83d\udcfd", + "FILTER MASK (JOV) \ud83e\udd3f", + "FLATTEN (JOV) \u2b07\ufe0f", + "GRADIENT MAP (JOV) \ud83c\uddf2\ud83c\uddfa", + "GRAPH (JOV) \ud83d\udcc8", + "IMAGE INFO (JOV) \ud83d\udcda", + "LERP (JOV) \ud83d\udd30", + "OP BINARY (JOV) \ud83c\udf1f", + "OP UNARY (JOV) \ud83c\udfb2", + "PIXEL MERGE (JOV) \ud83e\udec2", + "PIXEL SPLIT (JOV) \ud83d\udc94", + "PIXEL SWAP (JOV) \ud83d\udd03", + "QUEUE (JOV) \ud83d\uddc3", + "QUEUE TOO (JOV) \ud83d\uddc3", + "ROUTE (JOV) \ud83d\ude8c", + "SAVE OUTPUT (JOV) \ud83d\udcbe", + "SHAPE GEN (JOV) \u2728", + "SPLIT (JOV) \ud83c\udfad", + "STACK (JOV) \u2795", + "STRINGER (JOV) \ud83e\ude80", + "SWIZZLE (JOV) \ud83d\ude35", + "TEXT GEN (JOV) \ud83d\udcdd", + "THRESHOLD (JOV) \ud83d\udcc9", + "TICK (JOV) \u23f1", + "TRANSFORM (JOV) \ud83c\udfdd\ufe0f", + "VALUE (JOV) \ud83e\uddec", + "VECTOR2 (JOV)", + "VECTOR3 (JOV)", + "VECTOR4 (JOV)", + "WAVE GEN (JOV) \ud83c\udf0a" + ], { - "author": "amorano", - "description": "Webcams, GLSL shader, Media Streaming, Tick animation, Image manipulation,", - "nodename_pattern": " \\(jov\\)$", - "title": "Jovimetrix", - "title_aux": "Jovimetrix Composition Nodes" + "title_aux": "Jovimetrix" + } + ], + "https://github.com/Andro-Meta/ComfyUI-Ovis2": [ + [ + "Ovis2ImageCaption", + "Ovis2ModelLoader", + "Ovis2MultiImageInput", + "Ovis2VideoFramesDescription" + ], + { + "title_aux": "ComfyUI-Ovis2" + } + ], + "https://github.com/AngelCookies/ComfyUI-Seed-Tracker": [ + [ + "GlobalSeedTracker", + "SeedExporter", + "SeedTracker" + ], + { + "title_aux": "ComfyUI-Seed-Tracker" + } + ], + "https://github.com/Anibaaal/ComfyUI-UX-Nodes": [ + [ + "AdvancedCompositeImageMasked", + "BlockLayerStringGenerator", + "BlurNode", + "ColorGeneratorNode", + "DropShadowNode", + "EasyResolutionPicker", + "LerpNode", + "RemoveJSONMarkdownFormatting" + ], + { + "title_aux": "ComfyUI UX Nodes" + } + ], + "https://github.com/AonekoSS/ComfyUI-LoRA-Tuner": [ + [ + "LoraTuner" + ], + { + "title_aux": "ComfyUI-LoRA-Tuner" } ], "https://github.com/AonekoSS/ComfyUI-SimpleCounter": [ @@ -448,27 +2292,58 @@ "title_aux": "ComfyUI-SimpleCounter" } ], - "https://github.com/AppleBotzz/ComfyUI_LLMVISION": [ + "https://github.com/ArcherFMY/Diffusion360_ComfyUI": [ [ - "CLAUDE_CHAT", - "CLAUDE_VISION", - "GPT4_CHAT", - "GPT4_VISION" + "Diffusion360LoaderImage2Pano", + "Diffusion360LoaderText2Pano", + "Diffusion360Sampler", + "Diffusion360SamplerImage2Pano", + "Diffusion360SamplerText2Pano", + "InputImage", + "InputText", + "VAEDecodeTiledBlended" ], { - "title_aux": "ComfyUI_LLMVISION" + "title_aux": "Diffusion360_ComfyUI" } ], - "https://github.com/ArdeniusAI/CPlus_Ardenius": [ + "https://github.com/ArdeniusAI/ComfyUI-Ardenius": [ [ - "Control_Box" + "ARD 4crop Latent", + "ARD 4img Combine", + "ARD 4latent Upscale", + "ARD 4vae Decode", + "ARD Basic Load Image", + "ARD Control Box", + "ARD Counter", + "ARD Dual Prompt", + "ARD Empty Latent Image", + "ARD Float", + "ARD Float To Integer", + "ARD Integer", + "ARD Integer To Float", + "ARD Load Image", + "ARD Math", + "ARD Position", + "ARD Prompt Travel", + "ARD Remainder", + "ARD Resize", + "ARD Save Image", + "ARD Seed", + "ARD Text Box", + "ARD Text Box Counter", + "ARD XY Scripts" ], { - "author": "initials AMA", - "description": "CPlus control box is designed to gather workflow variables into 1 node for easier control of your workflow.", - "nickname": "Ardenius", - "title": "Ardenius", - "title_aux": "CPlus_Ardenius ComfyUI Control Box" + "title_aux": "ComfyUI-Ardenius" + } + ], + "https://github.com/Arkanun/ReadCSV_ComfyUI": [ + [ + "ReadCSVRowNode" + ], + { + "title_aux": "ReadCSV_ComfyUI" } ], "https://github.com/ArtBot2023/CharacterFaceSwap": [ @@ -489,18 +2364,114 @@ "title_aux": "Character Face Swap" } ], - "https://github.com/ArtVentureX/comfyui-animatediff": [ + "https://github.com/ArtHommage/HommageTools": [ [ - "AnimateDiffCombine", - "AnimateDiffLoraLoader", - "AnimateDiffModuleLoader", - "AnimateDiffSampler", - "AnimateDiffSlidingWindowOptions", - "ImageSizeAndBatchSize", - "LoadVideo" + "HTBaseShiftNode", + "HTConsoleLoggerNode", + "HTConversionNode", + "HTDWPoseConstraintNode", + "HTDetectionBatchProcessor", + "HTDiffusionLoaderMulti", + "HTDimensionAnalyzerNode", + "HTDimensionFormatterNode", + "HTDownsampleNode", + "HTDynamicPromptNode", + "HTDynamicSwitchNode", + "HTFlexibleNode", + "HTGeminiImageNode", + "HTGeminiNode", + "HTImageAdjusterNode", + "HTInspectorNode", + "HTLayerCollectorNode", + "HTLayerExportNode", + "HTLevelsNode", + "HTMaskDilationNode", + "HTMaskValidatorNode", + "HTMoireRemovalNode", + "HTMultiMaskDilationNode", + "HTNodeStateController", + "HTNodeUnmuteAll", + "HTNullNode", + "HTParameterExtractorNode", + "HTPhotoshopBlurNode", + "HTRegexNode", + "HTResizeNode", + "HTResolutionDownsampleNode", + "HTResolutionNode", + "HTSamplerBridgeNode", + "HTSaveImagePlus", + "HTScaleByNode", + "HTSchedulerBridgeNode", + "HTSeedAdvancedNode", + "HTSeedNode", + "HTSplitterNode", + "HTStatusIndicatorNode", + "HTSurfaceBlurNode", + "HTSwitchNode", + "HTTensorInfoNode", + "HTTextCleanupNode", + "HTTrainingSizeNode", + "HTValueMapperNode", + "HTWidgetControlNode" ], { - "title_aux": "AnimateDiff" + "title_aux": "HommageTools for ComfyUI" + } + ], + "https://github.com/Artificial-Sweetener/comfyui-WhiteRabbit": [ + [ + "AssembleLoopFrames", + "AutocropToLoop", + "BatchResizeWithLanczos", + "BatchWatermarkSingle", + "PixelHold", + "PrepareLoopFrames", + "RIFE_FPS_Resample", + "RIFE_SeamTimingAnalyzer", + "RIFE_VFI_Advanced", + "RIFE_VFI_Opt", + "RollFrames", + "TrimBatchEnds", + "UnrollFrames", + "UpscaleWithModelAdvanced" + ], + { + "title_aux": "WhiteRabbit" + } + ], + "https://github.com/Aryan185/ComfyUI-ExternalAPI-Helpers": [ + [ + "FluxKontextMaxNode", + "FluxKontextProNode", + "GPTImageEditNode", + "GeminiChatNode", + "GeminiSegmentationNode", + "GoogleImagenEditNode", + "GoogleImagenNode", + "Veo3VideoGenerator" + ], + { + "title_aux": "ComfyUI-ExternalAPI-Helpers" + } + ], + "https://github.com/AshMartian/ComfyUI-DirGir": [ + [ + "Dir_Gir_Looper", + "Dir_Gir_Picker", + "Gir_Image_Nabber" + ], + { + "title_aux": "Dir Gir" + } + ], + "https://github.com/AstroCorp/ComfyUI-AstroCorp-Nodes": [ + [ + "InstructNode", + "MergeTextsNode", + "TextareaNode" + ], + { + "title_aux": "ComfyUI AstroCorp Nodes" } ], "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction": [ @@ -511,6 +2482,16 @@ "title_aux": "ComfyUI-AnimateAnyone-reproduction" } ], + "https://github.com/AustinMroz/ComfyUI-DynamicOversampling": [ + [ + "DynamicSampler", + "MeasuredSampler", + "ResolveMaskPromise" + ], + { + "title_aux": "DynamicOversampling" + } + ], "https://github.com/AustinMroz/ComfyUI-SpliceTools": [ [ "LogSigmas", @@ -523,6 +2504,102 @@ "title_aux": "SpliceTools" } ], + "https://github.com/Auttasak-L/ComfyUI-ImageCropper": [ + [ + "ImageCropper" + ], + { + "title_aux": "ComfyUI-ImageCropper" + } + ], + "https://github.com/Azornes/Comfyui-LayerForge": [ + [ + "LayerForgeNode" + ], + { + "title_aux": "Comfyui-LayerForge" + } + ], + "https://github.com/Azornes/Comfyui-Resolution-Master": [ + [ + "ResolutionMaster" + ], + { + "title_aux": "Comfyui-Resolution-Master" + } + ], + "https://github.com/BAIKEMARK/ComfyUI-Civitai-Recipe": [ + [ + "CivitaiDataFetcherCKPT", + "CivitaiDataFetcherLORA", + "CivitaiRecipeGallery", + "LoraTriggerWords", + "ParameterAnalyzerCKPT", + "ParameterAnalyzerLORA", + "PromptAnalyzer", + "ResourceAnalyzer" + ], + { + "title_aux": "Civitai Recipe Finder" + } + ], + "https://github.com/BAIKEMARK/ComfyUI_Civitai_Prompt_Stats": [ + [ + "CivitaiPromptStatsCKPT", + "CivitaiPromptStatsLORA" + ], + { + "title_aux": "Civitai Prompt Stats Node" + } + ], + "https://github.com/BAIS1C/ComfyUI_RSS_Feed_Reader": [ + [ + "RSSFeedNode" + ], + { + "title_aux": "ComfyUI_RSS_Feed_Reader" + } + ], + "https://github.com/BEIBEI-star661/SJ_sweepEffect_Comfyui": [ + [ + "SJ_sweepEffect" + ], + { + "title_aux": "SJ_sweepEffect_Comfyui" + } + ], + "https://github.com/BIMer-99/ComfyUI_FishSpeech_EX": [ + [ + "AudioToPrompt", + "LoadVQGAN", + "Prompt2Semantic", + "SaveAudioToMp3", + "Semantic2Audio" + ], + { + "title_aux": "ComfyUI_FishSpeech_EX" + } + ], + "https://github.com/BIMer-99/Comfyui_Hunyuan3D_EX": [ + [ + "GenerateSixViews", + "Hunyuan3DNode", + "RemoveBackground", + "SquareImage", + "TriMeshViewer" + ], + { + "title_aux": "Comfyui_Hunyuan3D_EX" + } + ], + "https://github.com/BNP1111/comfyui_flux_corrector": [ + [ + "FLUXCorrector" + ], + { + "title_aux": "comfyui_flux_corrector" + } + ], "https://github.com/BXYMartin/ComfyUI-InstantIDUtils": [ [ "ListOfImages", @@ -532,7 +2609,17 @@ "PIL2NHWCTensor" ], { - "title_aux": "Comfyui-ergouzi-Nodes" + "title_aux": "ComfyUI-InstantIDUtils" + } + ], + "https://github.com/BZcreativ/ComfyUI-FLUX-TOGETHER-API": [ + [ + "FluxDev_TOGETHER", + "FluxPro11_TOGETHER", + "FluxPro_TOGETHER" + ], + { + "title_aux": "ComfyUI-FLUX-TOGETHER-API" } ], "https://github.com/BadCafeCode/masquerade-nodes-comfyui": [ @@ -564,6 +2651,27 @@ "title_aux": "Masquerade Nodes" } ], + "https://github.com/BahaC/ComfyUI-ZonosTTS": [ + [ + "ZonosTextToSpeech" + ], + { + "title_aux": "ComfyUI Zonos TTS Node" + } + ], + "https://github.com/Baverne/comfyUI-TiledWan": [ + [ + "TiledWanImageStatistics", + "TiledWanImageToMask", + "TiledWanInpaintCropImproved", + "TiledWanInpaintStitchImproved", + "TiledWanMaskStatistics", + "TiledWanVideoVACEpipe" + ], + { + "title_aux": "comfyUI-TiledWan" + } + ], "https://github.com/Beinsezii/bsz-cui-extras": [ [ "BSZAbsoluteHires", @@ -590,17 +2698,131 @@ "title_aux": "bsz-cui-extras" } ], + "https://github.com/Bellzs/ComfyUI-LoRA-Assistant": [ + [ + "LoRATriggerLocal" + ], + { + "title_aux": "ComfyUI-LoRA-Assistant" + } + ], + "https://github.com/BenNarum/ComfyUI_CAS": [ + [ + "AttentionToSigmas", + "AttenuatorNode", + "BasicCFGGuider", + "CELU", + "CustomAdvancedSampler", + "CustomLCMCFGPP", + "CustomModelSamplingDiscreteDistilledAncestralCFGPP", + "CustomModelSamplingDiscreteDistilledCFGPP", + "CustomX0AncestralCFGPP", + "CustomX0CFGPP", + "ELU", + "EPSCFGPPScheduler", + "GELU", + "GLU", + "HardTanhScheduler", + "Hardshrink", + "Hardsigmoid", + "Hardswish", + "Hardtanh", + "LatentActivation", + "LatentChannelPresets", + "LatentConvolution", + "LatentFFT", + "LatentFrequencyPresets", + "LatentGlitch", + "LatentMath", + "LatentMathFormulaBuilder", + "LatentMosaic", + "LatentNoisePresets", + "LatentPixelSort", + "LatentSelfAttention", + "LatentTwist", + "LatentValuePresets", + "LatentWarpPresets", + "LeakyReLU", + "LogSigmoid", + "LogSoftmax", + "Mish", + "PReLU", + "RReLU", + "ReLU", + "ReLU6", + "SELU", + "SamplerCustomLCMCFGPP", + "SamplerCustomModelSamplingDiscreteDistilledAncestralCFGPP", + "SamplerCustomModelSamplingDiscreteDistilledCFGPP", + "SamplerCustomX0AncestralCFGPP", + "SamplerCustomX0CFGPP", + "SamplerDPMCFGPP", + "SamplerDynamicCFGPP", + "SamplerEulerAttnCFGPP", + "SamplerEulerStepControlAncestralCFGPP", + "SamplerHeunCFGPP", + "SamplerLCMUpscaleW", + "SamplerLCMUpscaleWCFGPP", + "SamplerLCMUpscaleWGPU", + "SamplerStepSizeControlCFGPP", + "SamplerWeightedCFGPP", + "SiLU", + "Softmax", + "Softmax2D", + "SoftmaxScheduler", + "Softmin", + "Softplus", + "Softshrink", + "Softsign", + "Tanh", + "Tanhshrink", + "Threshold", + "tcd_euler_a_w", + "tcd_w" + ], + { + "title_aux": "ComfyUI_CAS" + } + ], + "https://github.com/BenNarum/SigmaWaveFormNode": [ + [ + "AttenuatorNode", + "FourierFilterNode", + "PhaseLockedLoopNode", + "SigmaWaveFormNode", + "SigmaWaveFormNodeAdvanced", + "SigmaWaveFormNodeSimple" + ], + { + "title_aux": "SigmaWaveFormNodes" + } + ], "https://github.com/BennyKok/comfyui-deploy": [ [ + "ComfyDeployOutputEXR", + "ComfyDeployOutputImage", + "ComfyDeployOutputText", "ComfyDeployWebscoketImageInput", "ComfyDeployWebscoketImageOutput", + "ComfyUIDeployExternalAudio", + "ComfyUIDeployExternalBoolean", "ComfyUIDeployExternalCheckpoint", + "ComfyUIDeployExternalEXR", + "ComfyUIDeployExternalFaceModel", "ComfyUIDeployExternalImage", "ComfyUIDeployExternalImageAlpha", + "ComfyUIDeployExternalImageBatch", "ComfyUIDeployExternalLora", "ComfyUIDeployExternalNumber", "ComfyUIDeployExternalNumberInt", - "ComfyUIDeployExternalText" + "ComfyUIDeployExternalNumberSlider", + "ComfyUIDeployExternalNumberSliderInt", + "ComfyUIDeployExternalSeed", + "ComfyUIDeployExternalText", + "ComfyUIDeployExternalTextAny", + "ComfyUIDeployExternalVid", + "ComfyUIDeployExternalVideo", + "ComfyUIDeployStringCombine" ], { "author": "BennyKok", @@ -610,23 +2832,97 @@ "title_aux": "ComfyUI Deploy" } ], - "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools": [ + "https://github.com/BetaDoggo/ComfyUI-Cloud-APIs": [ [ - "EndQueue", - "ImageTextOverlay", - "Loop", - "LoopEnd", - "LoopStart", - "PromptSchedule", - "PromptSelector" + "FalAddLora", + "FalAuraFlowAPI", + "FalFluxAPI", + "FalFluxI2IAPI", + "FalFluxLoraAPI", + "FalLLaVAAPI", + "FalSoteDiffusionAPI", + "FalStableCascadeAPI", + "FalVeo2ImagetoVideo", + "FluxResolutionPresets", + "LoadVideoFromURL", + "ReplicateFluxAPI", + "RunWareAPI", + "RunwareAddLora", + "SplitImages" ], { - "title_aux": "ComfyUI-Book-Tools" + "title_aux": "ComfyUI-Cloud-APIs" + } + ], + "https://github.com/BetaDoggo/ComfyUI-FastSDCPU": [ + [ + "fastsdcpu", + "fastsdcpu_lcm_models", + "fastsdcpu_loadModel", + "fastsdcpu_vino_models" + ], + { + "title_aux": "ComfyUI-FastSDCPU" + } + ], + "https://github.com/BetaDoggo/ComfyUI-Gatcha-Embedding": [ + [ + "GatchaEmbedding" + ], + { + "title_aux": "Gatcha Embeddings" + } + ], + "https://github.com/BetaDoggo/ComfyUI-VideoPlayer": [ + [ + "AllInOnePlayer", + "ImageToEmoji", + "LoadFrame", + "LoadJPGFrame", + "LoadVideoFrame" + ], + { + "title_aux": "ComfyUI Video Player" + } + ], + "https://github.com/BetaDoggo/ComfyUI-WDV-Nodes": [ + [ + "ModelSamplingWaifuDiffusionV" + ], + { + "title_aux": "neggles/ComfyUI-WDV-Nodes [gist-wrapper]" + } + ], + "https://github.com/BetaDoggo/ComfyUI-YetAnotherSafetyChecker": [ + [ + "YetAnotherSafetyChecker" + ], + { + "title_aux": "ComfyUI YetAnotherSafetyChecker" + } + ], + "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools": [ + [ + "BTDownloadFont", + "BTEndQueue", + "BTImageTextOverlay", + "BTLoop", + "BTLoopEnd", + "BTLoopStart", + "BTPromptSchedule", + "BTPromptSelector", + "BTRandomTextOverlay", + "BTTextGrowth", + "BTTextToImage" + ], + { + "title_aux": "ComfyUI-Book-Tools Nodes for ComfyUI" } ], "https://github.com/Big-Idea-Technology/ComfyUI_LLM_Node": [ [ "AdvOptions_Node", + "CodingOptionsNode", "LLM_Node", "Output_Node", "QuantizationConfig_Node" @@ -635,18 +2931,37 @@ "title_aux": "LLM Node for ComfyUI" } ], - "https://github.com/Bikecicle/ComfyUI-Waveform-Extensions/raw/main/EXT_AudioManipulation.py": [ + "https://github.com/BigStationW/ComfyUi-Load-Image-And-Display-Prompt-Metadata": [ [ - "BatchJoinAudio", - "CutAudio", - "DuplicateAudio", - "JoinAudio", - "ResampleAudio", - "ReverseAudio", - "StretchAudio" + "LoadImageX", + "OnlyLoadImagesWithMetadata" ], { - "title_aux": "Waveform Extensions" + "title_aux": "ComfyUi-Load-Image-And-Display-Prompt-Metadata" + } + ], + "https://github.com/BigStationW/ComfyUi-RescaleCFGAdvanced": [ + [ + "RescaleCFGAdvanced" + ], + { + "title_aux": "ComfyUi-RescaleCFGAdvanced" + } + ], + "https://github.com/BigStationW/ComfyUi-Scale-Image-to-Total-Pixels-Advanced": [ + [ + "ImageScaleToTotalPixelsX" + ], + { + "title_aux": "ComfyUi-Scale-Image-to-Total-Pixels-Advanced" + } + ], + "https://github.com/BigWhiteFly/ComfyUI-ImageConcat": [ + [ + "ImageConcatenateBatchWithTxt" + ], + { + "title_aux": "ComfyUI-ImageConcat" } ], "https://github.com/Billius-AI/ComfyUI-Path-Helper": [ @@ -664,6 +2979,56 @@ "title_aux": "ComfyUI-Path-Helper" } ], + "https://github.com/Bin-sam/DynamicPose-ComfyUI": [ + [ + "DynamicPose_Sampler", + "Load_Pose_Guider", + "Load_denoising_unet", + "Load_reference_unet", + "Pose_Guider_Encode", + "align", + "load_pose_model", + "pose_extraction" + ], + { + "title_aux": "DynamicPose-ComfyUI" + } + ], + "https://github.com/Black-Lioness/ComfyUI-PromptUtils": [ + [ + "FilenameGenerator", + "KeywordGenerator" + ], + { + "title_aux": "ComfyUI-PromptUtils" + } + ], + "https://github.com/BlackVortexAI/ComfyUI-BVortexNodes": [ + [ + "BV Conditional ImagePipe Splitter", + "BV Image Caption Saver", + "BV Image Difference Heatmap", + "BV Image Size with Math", + "BV ImagePipe Junction", + "BV ImagePipe Loader", + "BV ImagePipe Merger", + "BV Show LoRA Blocks", + "BV String to Combo", + "BV Upscale Config", + "BV Vector Edit", + "BV Vector Edit Dropdown FLUX", + "BV Vector Edit Range", + "BV Vector Edit Range Dropdown FLUX", + "BV Vector Edit Selector FLUX", + "BV Vector Permutation", + "BV Vector of Length-n", + "BV Vector to String", + "BV Vector to String List" + ], + { + "title_aux": "BV Nodes" + } + ], "https://github.com/BlakeOne/ComfyUI-CustomScheduler": [ [ "CustomScheduler" @@ -733,6 +3098,185 @@ "title_aux": "Tiled sampling for ComfyUI" } ], + "https://github.com/Blonicx/ComfyUI-X-Rework": [ + [ + "ClearNode", + "LoadImageURL", + "StopNode", + "UploadImage", + "XSampler", + "XSave" + ], + { + "title_aux": "ComfyUI-Rework-X" + } + ], + "https://github.com/BlueprintCoding/ComfyUI_AIDocsClinicalTools": [ + [ + "Multi Float", + "Multi Int", + "Multi Text", + "MultiFloatNodeAID", + "MultiInt", + "MultiText" + ], + { + "title_aux": "The AI Doctors Clinical Tools" + } + ], + "https://github.com/BobRandomNumber/ComfyUI-DiaTTS": [ + [ + "DiaGenerate", + "DiaLoader" + ], + { + "title_aux": "ComfyUI-DiaTTS" + } + ], + "https://github.com/BobRandomNumber/ComfyUI-KyutaiTTS": [ + [ + "KyutaiTTS" + ], + { + "title_aux": "ComfyUI-KyutaiTTS" + } + ], + "https://github.com/BobRandomNumber/ComfyUI-TLBVFI": [ + [ + "TLBVFI_VFI" + ], + { + "title_aux": "ComfyUI-TLBVFI" + } + ], + "https://github.com/BobsBlazed/Bobs-Lora-Loader": [ + [ + "BobsLoraLoaderFlux", + "BobsLoraLoaderSdxl" + ], + { + "title_aux": "Bobs_LoRA_Loader" + } + ], + "https://github.com/BobsBlazed/Bobs_Latent_Optimizer": [ + [ + "BobsLatentNode", + "BobsLatentNodeAdvanced" + ], + { + "title_aux": "Bobs_Latent_Optimizer" + } + ], + "https://github.com/BoyuanJiang/FitDiT-ComfyUI": [ + [ + "FitDiTLoader", + "FitDiTMaskGenerator", + "FitDiTTryOn" + ], + { + "title_aux": "FitDiT[official] - High-fidelity Virtual Try-on" + } + ], + "https://github.com/Brekel/ComfyUI-Brekel": [ + [ + "BrekelAutoPromptGenerator", + "BrekelEnhancePrompt", + "BrekelPromptChooser" + ], + { + "title_aux": "ComfyUI-Brekel" + } + ], + "https://github.com/Bria-AI/ComfyUI-BRIA-API": [ + [ + "BriaEraser", + "BriaGenFill", + "BriaTailoredGen", + "ImageExpansionNode", + "ReimagineNode", + "RemoveForegroundNode", + "ReplaceBgNode", + "RmbgNode", + "ShotByImageNode", + "ShotByTextNode", + "TailoredModelInfoNode", + "TailoredPortraitNode", + "Text2ImageBaseNode", + "Text2ImageFastNode", + "Text2ImageHDNode" + ], + { + "title_aux": "BRIA AI API nodes" + } + ], + "https://github.com/BuffMcBigHuge/ComfyUI-Google-AI-Studio": [ + [ + "GoogleAIStudioImageGen", + "GoogleAIStudioMultiSpeakerTTS", + "GoogleAIStudioTTS", + "GoogleAIStudioTextGen" + ], + { + "title_aux": "ComfyUI-Google-AI-Studio" + } + ], + "https://github.com/BuffMcBigHuge/ComfyUI-Zonos": [ + [ + "ZonosEmotion", + "ZonosGenerate" + ], + { + "title_aux": "ComfyUI-Zonos" + } + ], + "https://github.com/Burgstall-labs/ComfyUI-BETA-Cropnodes": [ + [ + "BETACrop", + "BETAStitch", + "IndexedLoRALoader_BETA", + "LoadTextFromIndex", + "SaveAudioAdvanced_BETA", + "SelectSharpestFrames", + "SharpestFrameClipper", + "TextLineCount", + "WANResolutionCalculator" + ], + { + "title_aux": "ComfyUI-BETA-Cropnodes" + } + ], + "https://github.com/Burgstall-labs/ComfyUI-BETA-Helpernodes": [ + [ + "BETACrop", + "BETAStitch", + "IndexedLoRALoader_BETA", + "LoadTextFromIndex", + "SaveAudioAdvanced_BETA", + "SelectSharpestFrames", + "SharpestFrameClipper", + "TextLineCount", + "WANResolutionCalculator" + ], + { + "title_aux": "ComfyUI-BETA-Helpernodes" + } + ], + "https://github.com/Burgstall-labs/ComfyUI-BS-Textchop": [ + [ + "BSTextChop" + ], + { + "title_aux": "ComfyUI-BS-Textchop" + } + ], + "https://github.com/Burgstall-labs/ComfyUI-BS_Kokoro-onnx": [ + [ + "Kokoro TTS" + ], + { + "title_aux": "ComfyUI-BS_Kokoro-onnx" + } + ], "https://github.com/CC-BryanOttho/ComfyUI_API_Manager": [ [ "APIRequestNode", @@ -743,6 +3287,143 @@ "title_aux": "ComfyUI_API_Manager" } ], + "https://github.com/CC-SUN6/ccsun_node": [ + [ + "Image Editing", + "Single Image", + "resize to 8", + "several images" + ], + { + "title_aux": "ccsun_node" + } + ], + "https://github.com/CHAOSEA/ComfyUI_FaceAlignPaste": [ + [ + "FaceAlignDouble", + "FaceAlignSingle", + "FaceAutoFitSingle" + ], + { + "title_aux": "ComfyUI_FaceAlignPaste" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-FramePack-HY": [ + [ + "CreateKeyframes_HY", + "FramePackBucketResize_HY", + "FramePackDiffusersSampler_HY", + "LoadFramePackDiffusersPipeline_HY" + ], + { + "title_aux": "ComfyUI-FramePack-HY" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Free-GPU": [ + [ + "FreeGPUMemory" + ], + { + "title_aux": "ComfyUI-Free-GPU" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-GPT-API": [ + [ + "GPT-ImageGenerator" + ], + { + "title_aux": "ComfyUI-GPT-API" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Gemini-API": [ + [ + "Google-Gemini" + ], + { + "title_aux": "ComfyUI-Gemini-API" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-ImageCompositionCy": [ + [ + "CombineImageAlpha", + "ImageCompositor", + "LoadImageAlpha" + ], + { + "title_aux": "ComfyUI-ImageCompositionCy" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-InpaintEasy": [ + [ + "CropByMask", + "ImageAndMaskResizeNode", + "ImageCropMerge", + "InpaintEasyModel" + ], + { + "title_aux": "ComfyUI-InpaintEasy" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Janus-Pro": [ + [ + "JanusImageGeneration", + "JanusImageUnderstanding", + "JanusModelLoader" + ], + { + "title_aux": "ComfyUI-Janus-Pro" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-Plus": [ + [ + "MiniCPM3_4B", + "MiniCPM3_4B_GPTQ_Int4", + "MiniCPM_V_2_6", + "MiniCPM_V_2_6_Int4", + "TextDisplay" + ], + { + "author": "CY-CHENYUE", + "description": "Custom nodes for MiniCPM language models in ComfyUI", + "nickname": "MiniCPM-Plus", + "title": "MiniCPM-Plus", + "title_aux": "ComfyUI-MiniCPM-Plus" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-o": [ + [ + "Load MiniCPM Model", + "MiniCPM Image Chat", + "MiniCPMImageAnalyzer" + ], + { + "title_aux": "ComfyUI-MiniCPM-o" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Molmo": [ + [ + "Molmo7BDbnb" + ], + { + "title_aux": "ComfyUI-Molmo" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-OmniGenX": [ + [ + "LoadOmniGen" + ], + { + "title_aux": "ComfyUI-OmniGenX" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Redux-Prompt": [ + [ + "ReduxPromptStyler" + ], + { + "title_aux": "ComfyUI-Redux-Prompt" + } + ], "https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr": [ [ "CLIPIter", @@ -770,13 +3451,12 @@ "title_aux": "ComfyUI-nodes-hnmr" } ], - "https://github.com/CaptainGrock/ComfyUIInvisibleWatermark/raw/main/Invisible%20Watermark.py": [ + "https://github.com/CallMe1101/ComfyUI_OmniAvatar": [ [ - "Apply Invisible Watermark", - "Extract Watermark" + "OmniAvatar All-in-One (14B)" ], { - "title_aux": "ComfyUIInvisibleWatermark" + "title_aux": "ComfyUI_OmniAvatar" } ], "https://github.com/Chan-0312/ComfyUI-EasyDeforum": [ @@ -815,6 +3495,357 @@ "title_aux": "ComfyUI_Ib_CustomNodes" } ], + "https://github.com/Charlweed/image_transceiver": [ + [ + "ImageTransceiver" + ], + { + "title_aux": "ImageTransceiver - ComfyUI" + } + ], + "https://github.com/Charonartist/comfyui-auto-lora-v2": [ + [ + "AutoLoRANode", + "LoRABrowserNode", + "LoRAManagerNode" + ], + { + "title_aux": "ComfyUI Auto LoRA" + } + ], + "https://github.com/Charonartist/comfyui-last-frame-extractor": [ + [ + "LastFrameExtractorNode" + ], + { + "title_aux": "comfyui-last-frame-extractor" + } + ], + "https://github.com/Charonartist/comfyui-smart-resize-node": [ + [ + "SmartResizeNode" + ], + { + "title_aux": "ComfyUI Smart Resize Node" + } + ], + "https://github.com/Charonartist/comfyui-tag-remover": [ + [ + "TagRemoverNode" + ], + { + "title_aux": "ComfyUI Tag Remover" + } + ], + "https://github.com/CheNing233/ComfyUI_Image_Pin": [ + [ + "ImagePin" + ], + { + "title_aux": "ComfyUI_Image_Pin" + } + ], + "https://github.com/ChenDarYen/ComfyUI-NAG": [ + [ + "KSamplerWithNAG", + "KSamplerWithNAG (Advanced)", + "NAGCFGGuider", + "NAGGuider", + "SamplerCustomWithNAG" + ], + { + "title_aux": "ComfyUI-NAG" + } + ], + "https://github.com/ChenDarYen/ComfyUI-TimestepShiftModel": [ + [ + "Timestep Shift Model" + ], + { + "title_aux": "ComfyUI-TimestepShiftModel" + } + ], + "https://github.com/Chengym2023/ComfyUI-DeepSeek_Online": [ + [ + "DeepSeekOnline", + "SiliconCloud" + ], + { + "title_aux": "ComfyUI-DeepSeek_Online" + } + ], + "https://github.com/ChrisColeTech/ComfyUI-Elegant-Resource-Monitor": [ + [ + "Resource Monitor" + ], + { + "title_aux": "ComfyUI-Elegant-Resource-Monitor" + } + ], + "https://github.com/ChrisColeTech/ComfyUI-Line-counter": [ + [ + "Directory File Counter", + "Simple Number Counter", + "Text File Line Counter", + "Text File Line Reader" + ], + { + "title_aux": "ComfyUI-Line-counter" + } + ], + "https://github.com/Chrisvenator/ComfyUI-Painting-by-colors-generator": [ + [ + "EnhancedPaintByNumbersNode", + "HexStackNode", + "NumbersOverlayAdvancedNode", + "NumbersOverlayNode", + "PaintByNumbersNode", + "PaintByNumbersTemplateNode" + ], + { + "title_aux": "painting-by-colors-generator" + } + ], + "https://github.com/ClownsharkBatwing/RES4LYF": [ + [ + "AdvancedNoise", + "Base64ToConditioning", + "CLIPTextEncodeFluxUnguided", + "ClownModelLoader", + "ClownRegionalConditioning", + "ClownRegionalConditioning2", + "ClownRegionalConditioning3", + "ClownRegionalConditioning_AB", + "ClownRegionalConditioning_ABC", + "ClownRegionalConditionings", + "ClownScheduler", + "ClownpileModelWanVideo", + "Conditioning Recast FP64", + "ConditioningAdd", + "ConditioningAverageScheduler", + "ConditioningBatch4", + "ConditioningBatch8", + "ConditioningDownsample (T5)", + "ConditioningMultiply", + "ConditioningOrthoCollin", + "ConditioningToBase64", + "ConditioningTruncate", + "ConditioningZeroAndTruncate", + "Constant Scheduler", + "CrossAttn_EraseReplace_HiDream", + "EmptyLatentImage64", + "EmptyLatentImageCustom", + "Film Grain", + "FluxGuidanceDisable", + "FluxLoader", + "FluxOrthoCFGPatcher", + "Frame Select", + "Frame Select Latent", + "Frame Select Latent Raw", + "Frames Concat", + "Frames Concat Latent", + "Frames Concat Latent Raw", + "Frames Concat Masks", + "Frames Latent ReverseOrder", + "Frames Masks Uninterpolate", + "Frames Masks ZeroOut", + "Frames Slice", + "Frames Slice Latent", + "Frames Slice Latent Raw", + "Frequency Separation Hard Light", + "Frequency Separation Hard Light LAB", + "Frequency Separation Linear Light", + "Image Channels LAB", + "Image Crop Location Exact", + "Image Gaussian Blur", + "Image Get Color Swatches", + "Image Grain Add", + "Image Median Blur", + "Image Pair Split", + "Image Repeat Tile To Size", + "Image Sharpen FS", + "Latent Batcher", + "Latent Channels From To", + "Latent Clear State Info", + "Latent Display State Info", + "Latent Get Channel Means", + "Latent Match Channelwise", + "Latent Normalize Channels", + "Latent Replace State Info", + "Latent Transfer State Info", + "Latent TrimVideo State Info", + "Latent to Cuda", + "Latent to RawX", + "LatentBatch_channels", + "LatentBatch_channels_16", + "LatentNoiseBatch_fractal", + "LatentNoiseBatch_gaussian", + "LatentNoiseBatch_gaussian_channels", + "LatentNoiseBatch_perlin", + "LatentNoiseList", + "LatentNoised", + "LatentPhaseMagnitude", + "LatentPhaseMagnitudeMultiply", + "LatentPhaseMagnitudeOffset", + "LatentPhaseMagnitudePower", + "LatentUpscaleWithVAE", + "LayerPatcher", + "Linear Quadratic Advanced", + "Mask Bounding Box Aspect Ratio", + "Mask Sketch", + "MaskEdge", + "MaskEdgeRatio", + "MaskFloatToBoolean", + "MaskToggle", + "Masks From Color Swatches", + "Masks From Colors", + "Masks Unpack 16", + "Masks Unpack 4", + "Masks Unpack 8", + "ModelSamplingAdvanced", + "ModelSamplingAdvancedResolution", + "ModelTimestepPatcher", + "PrepForUnsampling", + "ReAuraPatcher", + "ReAuraPatcherAdvanced", + "ReChromaPatcher", + "ReChromaPatcherAdvanced", + "ReFluxPatcher", + "ReFluxPatcherAdvanced", + "ReHiDreamPatcher", + "ReHiDreamPatcherAdvanced", + "ReLTXVPatcher", + "ReLTXVPatcherAdvanced", + "ReReduxPatcher", + "ReSD35Patcher", + "ReSD35PatcherAdvanced", + "ReSDPatcher", + "ReWanPatcher", + "ReWanPatcherAdvanced", + "SD35Loader", + "SeedGenerator", + "Set Precision", + "Set Precision Advanced", + "Set Precision Universal", + "SetImageSize", + "SetImageSizeWithScale", + "Sigmas Abs", + "Sigmas AdaptiveNoiseFloor", + "Sigmas AdaptiveStep", + "Sigmas Add", + "Sigmas Append", + "Sigmas ArcCosine", + "Sigmas ArcSine", + "Sigmas ArcTangent", + "Sigmas Attractor", + "Sigmas CNFInverse", + "Sigmas CatmullRom", + "Sigmas Chaos", + "Sigmas Cleanup", + "Sigmas CollatzIteration", + "Sigmas Concat", + "Sigmas ConwaySequence", + "Sigmas Count", + "Sigmas CrossProduct", + "Sigmas DeleteBelowFloor", + "Sigmas DeleteDuplicates", + "Sigmas DotProduct", + "Sigmas Easing", + "Sigmas Fmod", + "Sigmas Frac", + "Sigmas From Text", + "Sigmas GammaBeta", + "Sigmas Gaussian", + "Sigmas GaussianCDF", + "Sigmas GilbreathSequence", + "Sigmas HarmonicDecay", + "Sigmas Hyperbolic", + "Sigmas If", + "Sigmas InvLerp", + "Sigmas Iteration Karras", + "Sigmas Iteration Polyexp", + "Sigmas KernelSmooth", + "Sigmas LambertW", + "Sigmas LangevinDynamics", + "Sigmas Lerp", + "Sigmas LinearSine", + "Sigmas Logarithm2", + "Sigmas Math1", + "Sigmas Math3", + "Sigmas Modulus", + "Sigmas Mult", + "Sigmas Noise Inversion", + "Sigmas NormalizingFlows", + "Sigmas Pad", + "Sigmas Percentile", + "Sigmas PersistentHomology", + "Sigmas Power", + "Sigmas QuantileNorm", + "Sigmas Quotient", + "Sigmas ReactionDiffusion", + "Sigmas Recast", + "Sigmas Resample", + "Sigmas Rescale", + "Sigmas RiemannianFlow", + "Sigmas SetFloor", + "Sigmas Sigmoid", + "Sigmas SmoothStep", + "Sigmas Split", + "Sigmas Split Value", + "Sigmas SquareRoot", + "Sigmas Start", + "Sigmas StepwiseMultirate", + "Sigmas TimeStep", + "Sigmas Truncate", + "Sigmas Unpad", + "Sigmas Variance Floor", + "Sigmas ZetaEta", + "Sigmas2 Add", + "Sigmas2 Mult", + "SigmasPreview", + "SigmasSchedulePreview", + "StableCascade_StageB_Conditioning64", + "StableCascade_StageC_VAEEncode_Exact", + "StyleModelApplyStyle", + "Tan Scheduler", + "Tan Scheduler 2", + "Tan Scheduler 2 Simple", + "TemporalCrossAttnMask", + "TemporalMaskGenerator", + "TemporalSplitAttnMask", + "TemporalSplitAttnMask (Midframe)", + "TextBox1", + "TextBox2", + "TextBox3", + "TextBoxConcatenate", + "TextConcatenate", + "TextLoadFile", + "TextShuffle", + "TextShuffleAndTruncate", + "TextTruncateTokens", + "TorchCompileModelAura", + "TorchCompileModelFluxAdv", + "TorchCompileModelSD35", + "TorchCompileModels", + "UNetSave", + "VAEEncodeAdvanced", + "VAEStyleTransferLatent" + ], + { + "title_aux": "RES4LYF" + } + ], + "https://github.com/Clybius/ComfyUI-ClybsChromaNodes": [ + [ + "ClybGuidance", + "InverseSquaredScheduler", + "PrintSigmas", + "SamplerClyb_BDF" + ], + { + "title_aux": "ComfyUI-ClybsChromaNodes" + } + ], "https://github.com/Clybius/ComfyUI-Extra-Samplers": [ [ "GeometricCFGGuider", @@ -847,28 +3878,187 @@ "title_aux": "ComfyUI-Latent-Modifiers" } ], + "https://github.com/CoiiChan/ComfyUI-Depth-Visualization-Advanced": [ + [ + "DepthViewerAndQuilts" + ], + { + "title_aux": "ComfyUI-Depth-Visualization-advanced" + } + ], + "https://github.com/CoiiChan/ComfyUI-FuncAsTexture-CoiiNode": [ + [ + "Add", + "Ceil", + "Chroma_Key_Alpha", + "Clamp", + "Contant3Vector", + "CustomScriptNumpy", + "DDX", + "Desaturation", + "Distance", + "Divided", + "Dot", + "HueShift", + "InverseUVMapGenerator", + "Lerp", + "Max", + "Min", + "Multiply", + "Oneminus", + "Outline", + "Panner", + "Power", + "Rotator", + "Sine", + "Subtraction", + "TextureSampler", + "UVCoordinateGen", + "ifFunction" + ], + { + "title_aux": "ComfyUI-FuncAsTexture-CoiiNode" + } + ], + "https://github.com/Comfy-Org/NIMnodes": [ + [ + "Get_HFToken", + "InstallNIMNode", + "LoadNIMNode", + "NIMFLUXNode" + ], + { + "title_aux": "NVIDIA FLUX NIM" + } + ], + "https://github.com/ComfyAssets/ComfyUI-KikoStats": [ + [ + "ResourceMonitor" + ], + { + "title_aux": "ComfyUI-KikoStats" + } + ], + "https://github.com/ComfyAssets/ComfyUI-KikoTools": [ + [ + "BatchPrompts", + "DisplayAny", + "DisplayText", + "EmptyLatentBatch", + "FluxSamplerParams", + "GeminiPrompt", + "GlifConsistencyDecoder", + "GlifPatchConsistencyDecoderTiled", + "GlifVariable", + "HFHubEmbeddingLoader", + "HFHubLoraLoader", + "ImageScaleDownBy", + "ImageToMultipleOf", + "KikoFilmGrain", + "KikoLocalImageLoader", + "KikoPurgeVRAM", + "KikoSaveImage", + "LoRAFolderBatch", + "PlotParameters+", + "ResolutionCalculator", + "SDXLAspectRatio", + "SamplerCombo", + "SamplerComboCompact", + "SamplerSelectHelper", + "SchedulerSelectHelper", + "SeedHistory", + "TextEncodeSamplerParams", + "WidthHeightSelector" + ], + { + "title_aux": "ComfyUI-KikoTools" + } + ], + "https://github.com/ComfyAssets/ComfyUI_PromptManager": [ + [ + "PromptManager", + "PromptManagerText" + ], + { + "title_aux": "ComfyUI_PromptManager" + } + ], + "https://github.com/ComfyAssets/ComfyUI_Selectors": [ + [ + "HeightNode", + "SamplerSelector", + "SchedulerSelector", + "SeedHistory", + "WidthHeightNode", + "WidthNode" + ], + { + "title_aux": "ComfyUI_Selectors" + } + ], + "https://github.com/ComfyUI-JH/ComfyUI-JH-Misc-Nodes": [ + [ + "JHDaisyChainableStringConstantNode", + "JHPreviewImage", + "JHThreeWaySwitchNode", + "JHTwoWaySwitchNode" + ], + { + "title_aux": "JH Misc. Nodes" + } + ], + "https://github.com/ComplexRobot/ComfyUI-Simple-VFI": [ + [ + "Simple_Frame_Interpolation" + ], + { + "title_aux": "ComfyUI-Simple-VFI" + } + ], + "https://github.com/Conor-Collins/ComfyUI-CoCoTools_IO": [ + [ + "ColorspaceNode", + "CryptomatteLayer", + "ImageLoader", + "LoadExr", + "LoadExrLayerByName", + "LoadExrSequence", + "SaverNode", + "ZNormalizeNode" + ], + { + "title_aux": "ComfyUI-CoCoTools_IO" + } + ], "https://github.com/CosmicLaca/ComfyUI_Primere_Nodes": [ [ + "DebugToFile", "PrimereAestheticCKPTScorer", "PrimereAnyDetailer", "PrimereAnyOutput", "PrimereCKPT", "PrimereCKPTLoader", "PrimereCLIPEncoder", - "PrimereClearPrompt", + "PrimereClearNetworkTagsPrompt", "PrimereConceptDataTuple", + "PrimereDiTPurifyPrompt", "PrimereDynamicParser", "PrimereEmbedding", "PrimereEmbeddingHandler", "PrimereEmbeddingKeywordMerger", "PrimereEmotionsStyles", + "PrimereFaceAnalyzer", + "PrimereFastSeed", "PrimereHypernetwork", "PrimereImageSegments", + "PrimereImgToPrompt", "PrimereKSampler", - "PrimereLCMSelector", + "PrimereLLMEnhancer", + "PrimereLLMEnhancerOptions", "PrimereLORA", "PrimereLYCORIS", "PrimereLatentNoise", + "PrimereLensStyles", "PrimereLoraKeywordMerger", "PrimereLoraStackMerger", "PrimereLycorisKeywordMerger", @@ -877,42 +4067,283 @@ "PrimereMetaDistributor", "PrimereMetaDistributorStage2", "PrimereMetaHandler", - "PrimereMetaRead", "PrimereMetaSave", + "PrimereMetaTupleCollector", "PrimereMidjourneyStyles", "PrimereModelConceptSelector", "PrimereModelKeyword", + "PrimereNetworkDataCollector", "PrimereNetworkTagLoader", "PrimerePreviewImage", "PrimerePrompt", "PrimerePromptOrganizer", + "PrimerePromptOrganizerCSV", "PrimerePromptSwitch", "PrimereRefinerPrompt", "PrimereResolution", - "PrimereResolutionMultiplier", + "PrimereResolutionCoordinatorMPX", "PrimereResolutionMultiplierMPX", - "PrimereSamplers", "PrimereSamplersSteps", "PrimereSeed", - "PrimereStepsCfg", "PrimereStyleLoader", "PrimereStylePile", "PrimereTextOutput", "PrimereUpscaleModel", "PrimereVAE", "PrimereVAELoader", - "PrimereVAESelector", "PrimereVisualCKPT", "PrimereVisualEmbedding", "PrimereVisualHypernetwork", "PrimereVisualLORA", "PrimereVisualLYCORIS", + "PrimereVisualPromptOrganizerCSV", "PrimereVisualStyle" ], { "title_aux": "Primere nodes for ComfyUI" } ], + "https://github.com/CpreForEver/CFE_comfyui": [ + [ + "CFE Aspect Ratio", + "CFE FLUX Guidance", + "CFE FLUX Sampler", + "CFE FLUX Sampler (Pipe)", + "CFE Flux In Pipe", + "CFE Flux Out Pipe", + "CFE Lora Params", + "CFE Scheduler", + "CFE Sigma Sampler", + "CFE Sigma Sampler Strings" + ], + { + "title_aux": "CFE_comfyui" + } + ], + "https://github.com/Creeper-MZ/comfyui_nai_api": [ + [ + "NovelAI", + "NovelAI_Declutter_Preprocessor", + "NovelAI_Lineart_Processor", + "NovelAI_Prompt", + "NovelAI_Sketch_Processor", + "NovelAI_VIBE" + ], + { + "title_aux": "comfyui_nai_api" + } + ], + "https://github.com/Creepybits/ComfyUI-Creepy_nodes": [ + [ + "AudioKeywordExtractor", + "CLIPSwitch", + "Categorizer", + "CollectAndDistributeText", + "Coloring", + "ConditionalLoRAApplier", + "CustomNodeManager", + "DelayNode", + "DelayTextNode", + "DynamicClipswitch", + "DynamicConditioning", + "DynamicDelayText", + "DynamicImageSwitch", + "DynamicLatentSwitch", + "DynamicModelswitch", + "DynamicVAESwitch", + "EvaluaterNode", + "FilterImages", + "GeminiAPI", + "GeminiAudioAnalyzer", + "GeminiTokenCounter", + "IMGToIMGConditioning", + "KeywordExtractor", + "LoadBatchImagesDir", + "MasterKey", + "Modelswitch", + "PeopleEvaluationNode", + "PromptGenerator", + "RandomAudioSegment", + "SanitizeFilename", + "SummaryWriter", + "SystemPromp", + "Textswitch", + "VAESwitch" + ], + { + "title_aux": "ComfyUI-Creepy_nodes" + } + ], + "https://github.com/Creepybits/ComfyUI-Save_To_GDrive": [ + [ + "SaveImageToGoogleDrive" + ], + { + "title_aux": "Save Image To Google Drive" + } + ], + "https://github.com/Creepybits/ComfyUI-Save_To_OneDrive": [ + [ + "SaveImageToOneDrive_CreepyBits" + ], + { + "title_aux": "Comfyui-Save_To_OneDrive" + } + ], + "https://github.com/Cryptyox/anaglyphTool-Comfyui": [ + [ + "AnaglyphTool", + "CrossEyeTool", + "StereogramTool" + ], + { + "author": "Timon", + "description": "Provides CUDA GPU accelerated nodes for creating 3D images (Anaglyph, Cross-Eye, Stereogram).", + "nickname": "StereoTools", + "title": "Stereo Tools (CUDA)", + "title_aux": "anaglyphTool-Comfyui" + } + ], + "https://github.com/Curt-Park/human-parser-comfyui-node-in-pure-python": [ + [ + "Cozy Human Parser ATR", + "Cozy Human Parser LIP", + "Cozy Human Parser Pascal" + ], + { + "title_aux": "Cozy Human Parser in pure Python" + } + ], + "https://github.com/CyanAutumn/ComfyUi_Random_Manage_Cyan": [ + [ + "Random Prompt Cyan", + "Remove Prompt Cyan" + ], + { + "title_aux": "ComfyUi Random Manage Cyan" + } + ], + "https://github.com/Cyber-BlackCat/ComfyUI-Image-Vector": [ + [ + "Vector" + ], + { + "title_aux": "ComfyUI-Image-Vector" + } + ], + "https://github.com/Cyber-BlackCat/ComfyUI-MoneyMaker": [ + [ + ", and the value is the function name in the right of the", + "Black and white", + "Image Judgment", + "Image Resize MM", + "ImageMinusMask", + "Light or Dark", + "Load Random Images", + "Mask Preprocess Morphology", + "Mask To Gray", + "Number", + "PhotoShop Transfer", + "SomethingShow", + "TensorShow", + "a fake Nod" + ], + { + "title_aux": "ComfyUI-Yuan" + } + ], + "https://github.com/Cyber-BlackCat/ComfyUI_Auto_Caption": [ + [ + "Auto Caption", + "Auto_Caption2", + "ExtraOptionsSet", + "Joy Model load", + "Joy_Model2_load", + "LoadManyImages" + ], + { + "title_aux": "ComfyUI_Auto_Caption" + } + ], + "https://github.com/Cyberschorsch/ComfyUI-checkpoint-config-loader": [ + [ + "Checkpoint Loader Config" + ], + { + "title_aux": "ComfyUI Checkpoint Loader Config" + } + ], + "https://github.com/Cyrostar/Artha-Gemini": [ + [ + "Gemini Backdrop", + "Gemini Body", + "Gemini Camera", + "Gemini Cloth", + "Gemini Compose", + "Gemini Condense", + "Gemini Face", + "Gemini Form", + "Gemini Imagen", + "Gemini Instruct", + "Gemini Light", + "Gemini Makeup", + "Gemini Markdown", + "Gemini Motion", + "Gemini Operation", + "Gemini Portrait", + "Gemini Prompter", + "Gemini Question", + "Gemini Response", + "Gemini Scenery", + "Gemini Speech", + "Gemini Style", + "Gemini Subject", + "Gemini Translate", + "Gemini Vision" + ], + { + "title_aux": "Artha-Gemini" + } + ], + "https://github.com/Cyrostar/Artha-Projekt": [ + [ + "Project Pause", + "Project Prefix", + "Project Seed", + "Project Setup" + ], + { + "title_aux": "Artha-Projekt" + } + ], + "https://github.com/D3lUX3I/ComfyUI-VideoPromptEnhancer": [ + [ + "VideoPromptEnhancer" + ], + { + "title_aux": "VideoPromptEnhancer" + } + ], + "https://github.com/DJ-Tribefull/Comfyui_FOCUS_nodes": [ + [ + "Control Pipe (Focus Nodes)", + "FOCUS Upscale (Focus Nodes)", + "Global Seed Controller (Focus Nodes)", + "KSampler Settings (Focus Nodes)", + "Model Unloader (Focus Nodes)", + "Prompt Box (Focus Nodes)", + "SDXL All-In-One (Focus Nodes)", + "SDXL Control Module (Focus Nodes)", + "SDXL Preprocess (Focus Nodes)", + "Style Injector (Focus Nodes)", + "Style Selector (Focus Nodes)", + "Text Display (Focus Nodes)", + "Wildcard Processor (Focus Nodes)" + ], + { + "title_aux": "Comfyui FOCUS nodes" + } + ], "https://github.com/Danand/ComfyUI-ComfyCouple": [ [ "Attention couple", @@ -926,62 +4357,477 @@ "title_aux": "Comfy Couple" } ], - "https://github.com/DarKDinDoN/comfyui-checkpoint-automatic-config": [ + "https://github.com/DanielHabib/ComfyUI-Voxels": [ [ - "CheckpointAutomaticConfig" + "ImageBatchToImageList", + "MaskBatchToMaskList", + "MeshToVoxel", + "VoxelBlockLoader", + "VoxelBlockSaver", + "VoxelBlocksIntoVoxelVideo", + "VoxelVideoAPIInputNode", + "VoxelVideoLoader", + "VoxelVideoPreview", + "VoxelVideoViewer", + "VoxelViewer", + "VoxelizeMesh" ], { - "title_aux": "ComfyUI Checkpoint Automatic Config" + "title_aux": "ComfyUI-Voxels" + } + ], + "https://github.com/DareFail/ComfyUI-Roboflow": [ + [ + "CustomWorkflow_1image", + "LabelEmotions", + "RemoveBackground" + ], + { + "title_aux": "ComfyUI-Roboflow" + } + ], + "https://github.com/DarioFT/ComfyUI-VideoDirCombiner": [ + [ + "VideoDirCombiner" + ], + { + "title_aux": "ComfyUI-VideoDirCombiner" + } + ], + "https://github.com/DataCTE/prompt_injection": [ + [ + "AdvancedPromptInjection", + "AdvancedSD15PromptInjection", + "PromptInjection", + "SD15PromptInjection", + "SimplePromptInjection", + "SimpleSD15PromptInjection" + ], + { + "title_aux": "Prompt Injection Node for ComfyUI" + } + ], + "https://github.com/DavidPiazza/network_bending": [ + [ + "AudioFeatureExtractor", + "AudioLatentBlend", + "AudioLatentGuidance", + "AudioLatentInterpolate", + "AudioLatentManipulator", + "AudioReferenceEncoder", + "AudioStyleTransfer", + "AudioVAEDecode", + "AudioVAEEncode", + "LatentFormatConverter", + "ModelMixer", + "NetworkBending", + "NetworkBendingAdvanced", + "VAEChannelManipulator", + "VAELatentBending", + "VAEMixer", + "VAENetworkBending" + ], + { + "title_aux": "Network Bending for ComfyUI" + } + ], + "https://github.com/Daxamur/DaxNodes": [ + [ + "DaxGetStringByIndex", + "DaxStringSplitter", + "FaceFrameDetector", + "ResolutionPickerFLF2V", + "ResolutionPickerI2V", + "ResolutionPickerT2V", + "RuntimeGenerationLengthSet", + "TrimBatch", + "VideoColorCorrectV3", + "VideoPreview", + "VideoSave", + "VideoSegmentCombinerV2", + "VideoSegmentSaverV2", + "VideoSegmentStateLoader", + "VideoStreamRIFEVFI", + "VideoStreamUpscaler", + "WANResolutionPicker" + ], + { + "title_aux": "DaxNodes" + } + ], + "https://github.com/Dayuppy/ComfyUI-DiscordWebhook": [ + [ + "DiscordPostViaWebhook", + "DiscordSetWebhook", + "Set Discord Webhook", + "Use Discord Webhook" + ], + { + "author": "Dayuppy", + "description": "A very simple Discord webhook integration node for ComfyUI that lets you post images and text.", + "nickname": "DiscordWebhook", + "title": "Discord Webhook", + "title_aux": "Discord Webhook" + } + ], + "https://github.com/De-Zoomer/ComfyUI-DeZoomer-Nodes": [ + [ + "CaptionRefinement", + "VideoCaptioning" + ], + { + "title_aux": "ComfyUI-DeZoomer-Nodes" + } + ], + "https://github.com/DeJoker/pipeline-parallel-comfy": [ + [ + "PipelineParallel" + ], + { + "title_aux": "Pipeline Parallel ComfyUI" + } + ], + "https://github.com/DebugPadawan/DebugPadawans-ComfyUI-Essentials": [ + [ + "DebugPadawan_ConditionalString", + "DebugPadawan_DebugPrint", + "DebugPadawan_ListInfo", + "DebugPadawan_TextJoiner", + "DebugPadawan_TextSplitter", + "DebugPadawan_TextToJSON", + "DebugPadawan_WaitNode" + ], + { + "title_aux": "DebugPadawan's ComfyUI Essentials" + } + ], + "https://github.com/DeemosTech/ComfyUI-Rodin": [ + [ + "LoadRodinAPIKEY", + "Preview_3DMesh", + "PromptForRodin", + "RodinImage3D", + "RodinMultipleImage3D", + "RodinText3D" + ], + { + "title_aux": "ComfyUI-Rodin" + } + ], + "https://github.com/Deep-Neko/ComfyUI_ascii_art": [ + [ + "AsciiGenerator" + ], + { + "author": "DeepNeko ", + "title_aux": "ascii-art-comfyui" + } + ], + "https://github.com/Dehypnotic/comfyui-numbered-text": [ + [ + "NumberedText" + ], + { + "title_aux": "NumberedText" + } + ], + "https://github.com/Dehypnotic/comfyui-range-to-string": [ + [ + "RangeToString" + ], + { + "title_aux": "RangeToString" + } + ], + "https://github.com/DenRakEiw/Latent_Nodes": [ + [ + "LatentColorMatch", + "LatentColorMatchSimple", + "LatentImageAdjust" + ], + { + "title_aux": "ComfyUI Latent Color Tools" + } + ], + "https://github.com/DenRakEiw/WAN_NN_Latent_Upscale": [ + [ + "UniversalNNLatentUpscale" + ], + { + "title_aux": "Universal NN Latent Upscaler for ComfyUI" } ], "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": [ - [ - "Absolute value", - "Ceil", - "Conditioning area scale by ratio", - "Cosines", - "Divide", - "Float", - "Floor", - "Get image size", - "Get latent size", - "Image scale by ratio", - "Image scale to side", - "Int to float", - "Integer", - "Latent Scale by ratio", - "Latent Scale to side", - "Logic node", - "Multiply", - "Power", - "Random", - "Sinus", - "Square root", - "String Concatenate", - "String Replace", - "Subtract", - "Sum", - "Tangent", - "Text", - "Text box", - "To text (Debug)" - ], + [], { + "author": "Derfuu", + "description": "Pack of simple (or not) and modded nodes for scaling images/latents, editing numbers or text. Automate calculations depending on image sizes or any other thing you want. Or randomize any number in your workflow. Debug node included.", + "nickname": "Derfuu simple/modded Nodes", + "nodename_pattern": "^DF_", + "title": "Derfuu simple/modded Nodes", "title_aux": "Derfuu_ComfyUI_ModdedNodes" } ], - "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes": [ + "https://github.com/DesertPixelAi/ComfyUI-DP-Ideogram-Character": [ [ - "ApplySerialPrompter", - "ImageSizer", - "SerialPrompter" + "DP_IdeogramCharacter" ], { - "author": "CRE8IT GmbH", - "description": "This extension offers various nodes.", - "nickname": "cre8Nodes", - "title": "cr8SerialPrompter", - "title_aux": "ComfyUI-Cre8it-Nodes" + "title_aux": "ComfyUI DP Ideogram Character Node" + } + ], + "https://github.com/DesertPixelAi/ComfyUI-Desert-Pixel-Nodes": [ + [ + "DP 10 Images Switch Or Batch", + "DP 10 String Switch Or Connect", + "DP 2 String Switch", + "DP 3 Images Switch Or Batch", + "DP 3 String Switch Or Connect", + "DP 5 Find And Replace", + "DP 5 Image And Mask Switch", + "DP 5 Images Switch Or Batch", + "DP 5 String Switch Or Connect", + "DP Add Background To Png", + "DP Add Weight To String Sdxl", + "DP Advanced Sampler", + "DP Advanced Weight String Sdxl", + "DP Animation Calculator 10 Inputs", + "DP Animation Calculator 5 Inputs", + "DP Art Style Generator", + "DP Aspect Ratio Picker", + "DP Big Letters", + "DP Broken Token", + "DP Clean Prompt", + "DP Clean Prompt Travel", + "DP Condition Switch", + "DP ControlNet Apply Advanced", + "DP Crazy Prompt Mixer", + "DP Create Json File", + "DP Custom Aspect Ratio", + "DP Diff Int 8step Selector", + "DP Draggable Floats 1", + "DP Draggable Floats 2", + "DP Draggable Floats 3", + "DP Draggable Int 1step", + "DP Draggable Int 4step", + "DP Draggable Int 8step", + "DP Extract Mask", + "DP Fast Slow Motion", + "DP Five Lora", + "DP Five Lora Random", + "DP Float Stepper", + "DP Get Seed From Image", + "DP IF Int Condition", + "DP Image And String Pairs Switch", + "DP Image Color Analyzer", + "DP Image Color Analyzer Small", + "DP Image Color Effect", + "DP Image Effect Processor", + "DP Image Effect Processor Small", + "DP Image Empty Latent Switch Flux", + "DP Image Empty Latent Switch SDXL", + "DP Image Grid To Image", + "DP Image Slice To Grid", + "DP Image Slide Show", + "DP Image Strip", + "DP Image To Pixelgrid", + "DP Int 0 1000", + "DP Latent Split", + "DP Line Cycler", + "DP Load Checkpoint With Info", + "DP Load Controlnet Model With Name", + "DP Load Dual CLIP With Info", + "DP Load Image Effects", + "DP Load Image Effects Small", + "DP Load Image Folder", + "DP Load Image Minimal", + "DP Load Image V2", + "DP Load Image With Seed", + "DP Load UNET With Info", + "DP Logo Animator", + "DP Lora Random Strength Controller", + "DP Lora Strength Controller", + "DP Mask Settings", + "DP Place Image", + "DP Prompt Inverter", + "DP Prompt Manager Small", + "DP Prompt Mode Controller", + "DP Prompt Styler", + "DP Prompt Token Compressor", + "DP Prompt Travel Prompt", + "DP Quick Model Link", + "DP Random Character", + "DP Random Crazy Prompt Generator", + "DP Random Logo Style Generator", + "DP Random Min Max", + "DP Random Mode Controller", + "DP Random Mode Switch", + "DP Random Psychedelic Punk Generator", + "DP Random Superhero Prompt Generator", + "DP Random Vehicle Generator", + "DP Resize Image And Mask", + "DP Sampler With Info", + "DP Save Image V2", + "DP Save Preview Image", + "DP Stitch 2 Images", + "DP String Text", + "DP String Text With Sdxl Weight", + "DP Strip Edge Masks", + "DP Switch Controller", + "DP Text Preview", + "DP Transition Frames Selector", + "DP Versatile Prompt Subjects Generator", + "DP Video Effect Receiver", + "DP Video Effect Sender", + "DP Video Flicker", + "DP Video Looper", + "DP Video Transition", + "DP Words", + "DP_Crazy_Prompt_Mixer", + "DP_Float_Stepper", + "DP_Image_To_Pixelgrid", + "DP_Prompt_Inverter" + ], + { + "title_aux": "ComfyUI-Desert-Pixel-Nodes" + } + ], + "https://github.com/DesertPixelAi/comfyui-dp-them-styler": [ + [ + "DP_Add_Logo_Banner", + "DP_Advanced_Sampler_Modified", + "DP_Dynamic_Random_Styler", + "DP_Gender_Age_Detector" + ], + { + "title_aux": "ComfyUI DP Dynamic Random Styler" + } + ], + "https://github.com/DiaoDaiaChan/ComfyUI_API_Request": [ + [ + "Character_Prompt_Select", + "NovelAI_Request", + "NovelAI_Request_Payload", + "SDWebUI_Request", + "SDWebUI_Request_Payload", + "SDWebUI_Request_PayloadExtend" + ], + { + "title_aux": "Comfyui SDAPI Request / NovelAI" + } + ], + "https://github.com/DiffusionLight/DiffusionLight-ComfyUI": [ + [ + "DiffusionLightBall2Envmap", + "DiffusionLightChromeballMask", + "DiffusionLightExposure2HDR", + "DiffusionLightExposureBracket", + "DiffusionLightPadBlackBorder", + "DiffusionLightPercentileToPixelValueTonemap", + "DiffusionLightSaveHDR" + ], + { + "title_aux": "DiffusionLight-ComfyUI" + } + ], + "https://github.com/Diohim/ComfyUI-Unusual-Tools": [ + [ + "AdjustCrop", + "AutoImageResize", + "BatchLoadLatentImage", + "BatchSaveLatentImage", + "FillMaskWithColor" + ], + { + "title_aux": "ComfyUI Unusual Tools" + } + ], + "https://github.com/Dobidop/ComfyStereo": [ + [ + "DeoVRViewNode", + "StereoImageNode" + ], + { + "title_aux": "Dobidop ComfyStereo" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-BEN": [ + [ + "BackgroundEraseNetwork" + ], + { + "title_aux": "ComfyUI BEN - Background Erase Network" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-MediaMixer": [ + [ + "FinalFrameSelector", + "FirstFrameSelector", + "PromptJournal", + "ReverseFrameSequence", + "VideoMerge", + "YouTubeVideoDownloader" + ], + { + "title_aux": "MediaMixer" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-Schedulizer": [ + [ + "prompt_schedule_converter", + "whisper_node" + ], + { + "title_aux": "Schedulizer" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-SnakeOil": [ + [ + "NegativeLoRALoader" + ], + { + "title_aux": "ComfyUI-SnakeOil" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-basic-pitch": [ + [ + "AudioToMidi", + "SaveMidi" + ], + { + "title_aux": "ComfyUI-basic-pitch" + } + ], + "https://github.com/Dontdrunk/ComfyUI-DD-Nodes": [ + [ + "DD-AdvancedFusion", + "DD-AspectRatioSelector", + "DD-ConditionSwitcher", + "DD-DimensionCalculator", + "DD-ImageSizeLimiter", + "DD-ImageStroke", + "DD-ImageToVideo", + "DD-ImageUniformSize", + "DD-LatentSwitcher", + "DD-MaskUniformSize", + "DD-ModelOptimizer", + "DD-ModelSwitcher", + "DD-QwenMTTranslator", + "DD-SamplingOptimizer", + "DD-SimpleLatent", + "DD-VideoFrameExtractor" + ], + { + "title_aux": "ComfyUI-DD-Nodes" + } + ], + "https://github.com/DrMWeigand/ComfyUI-StereoVision": [ + [ + "AutostereogramGenerator", + "StereoscopicGenerator" + ], + { + "title_aux": "StereoVision Plugin for ComfyUI" } ], "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection": [ @@ -993,6 +4839,244 @@ "title_aux": "ComfyUI Color Detection Nodes" } ], + "https://github.com/DrStone71/ComfyUI-Prompt-Translator": [ + [ + "CLIP Text Encode (Translate)", + "CLIP Text Translate Advanced", + "Combine Conditioning", + "Conditional Translate", + "Language Package Manager", + "Prompt Text (Translate)", + "Text Translate", + "Universal Text Translate" + ], + { + "title_aux": "ComfyUI-Prompt-Translator" + } + ], + "https://github.com/DraconicDragon/ComfyUI-RyuuNoodles": [ + [ + "Ryuu_CleanStringAdvanced", + "Ryuu_ColorMatch", + "Ryuu_ExtractAndSaveLora", + "Ryuu_FallbackPassthrough", + "Ryuu_FallbackSwitchAny", + "Ryuu_FallbackSwitchImage", + "Ryuu_FallbackSwitchLatent", + "Ryuu_FloatPlain", + "Ryuu_FloatPlainLarger", + "Ryuu_FloatSlider", + "Ryuu_IntSlider", + "Ryuu_IsMultipleOf", + "Ryuu_ScaleToMultiple", + "Ryuu_ScaleToMultipleAdvanced", + "Ryuu_ScaleToMultipleLatentSizePicker", + "Ryuu_TestNode", + "Ryuu_TextEncoderDiffCheck", + "Ryuu_TokenCountTextBox" + ], + { + "title_aux": "ComfyUI-RyuuNoodles" + } + ], + "https://github.com/DraconicDragon/ComfyUI-Venice-API": [ + [ + "CharCountTextBox", + "GenerateImage_VENICE", + "GenerateSpeech_VENICE", + "GenerateTextAdvanced_VENICE", + "GenerateTextVeniceParameters_VENICE", + "GenerateText_VENICE", + "I2IEnhanceUpscale_VENICE" + ], + { + "title_aux": "ComfyUI-Venice-API" + } + ], + "https://github.com/DragonDiffusionbyBoyo/BoyoSupercoolWrapper": [ + [ + "BoyoSuperCoolWrapper" + ], + { + "title_aux": "BoyoSupercoolWrapper" + } + ], + "https://github.com/DragonDiffusionbyBoyo/Boyonodes": [ + [ + "BoyoAudioEval", + "BoyoChainBastardLoops", + "BoyoFramePackLoRA", + "BoyoImageGrab", + "BoyoLoadImageList", + "BoyoLoopCollector", + "BoyoLoopImageSaver", + "BoyoPairedSaver", + "BoyoPromptInjector", + "BoyoPromptLoop", + "BoyoSaver", + "BoyoTiledVAEDecode", + "BoyoVAEDecode", + "BoyoWanFunEmptyLatent", + "BoyoWanFunImageSampler", + "Boyolatent", + "MandelbrotVideo" + ], + { + "title_aux": "Boyonodes" + } + ], + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Mixer": [ + [ + "ArrangementEnforcer", + "AudioPostProcessor", + "CompressorNode", + "LimiterNode", + "MasteringEffects" + ], + { + "title_aux": "ComfyUI Mzikart Mixer" + } + ], + "https://github.com/Duanyll/duanyll_nodepack": [ + [ + "AdvancedMorphology", + "AsAny", + "BBoxCrop", + "BBoxImageStitcher", + "CoverWordsWithRectangles", + "CreateArkClient", + "CreateBoundingBoxesMaskQwen", + "CreateS3Client", + "DownloadImageFromUrl", + "DrawBBox", + "DrawBBoxMask", + "DrawBoundingBoxesQwen", + "DrawTextInBBox", + "DumpJson", + "ExpandBBoxByRatio", + "FillBBoxWithImage", + "FluxKontextTrue3DPE", + "FluxTextLoraLoader", + "GetTextBBoxWithAnchor", + "HfCheckpointLoader", + "HfClipLoader", + "HfDiffusionModelLoader", + "HfDualClipLoader", + "HfLoraLoader", + "HfLoraLoaderModelOnly", + "HfQuadrupleClipLoader", + "HfTripleClipLoader", + "HfVaeLoader", + "HttpPostForJson", + "ImageCropFromPadded", + "ImageDifferenceCmap", + "ImagePadToResolution", + "InsightFaceSimilarity", + "JsonPathQuery", + "JsonPathQuerySingle", + "JsonPathUpdate", + "LaplacianVariance", + "LogicAnd", + "LogicOr", + "MaskToBBox", + "MergeBBoxes", + "ParseBBoxQwenVL", + "ParseJson5", + "ParseLlmJsonOutput", + "PhotoDoddleConditioning", + "ReadTextFile", + "SeedEditNode", + "UploadImageToS3" + ], + { + "title_aux": "Duanyll Nodepack" + } + ], + "https://github.com/Eagle-CN/ComfyUI-Addoor": [ + [ + "AD_AnyFileList", + "AD_BatchImageLoadFromDir", + "AD_CSVPromptStyler", + "AD_CSVReader", + "AD_CSVTranslator", + "AD_DeleteLocalAny", + "AD_FluxTrainStepMath", + "AD_HFDownload", + "AD_ImageDrawRectangleSimple", + "AD_ImageIndexer", + "AD_ImageSaver", + "AD_LoadImageAdvanced", + "AD_PromptReplace", + "AD_TextIndexer", + "AD_TextListToString", + "AD_TextSaver", + "AD_TxtToCSVCombiner", + "AD_ZipSave", + "AD_advanced-padding", + "AD_color-image", + "AD_image-concat", + "AD_image-resize", + "AD_mockup-maker", + "AD_poster-maker", + "AD_prompt-saver", + "ImageCaptioner", + "ImageResize", + "Incrementer \ud83e\udeb4", + "TextAppendNode", + "Width and height for scaling image to ideal resolution \ud83e\udeb4", + "Width and height from aspect ratio \ud83e\udeb4", + "YANC.MultilineString", + "comfyui-easy-padding", + "image concat mask" + ], + { + "author": "ComfyUI Addoor", + "description": "Save prompts to CSV file with customizable naming pattern", + "title": "ComfyUI-PromptSaver", + "title_aux": "ComfyUI-Addoor" + } + ], + "https://github.com/Easymode-ai/ComfyUI-BPT": [ + [ + "TrimeshBPT", + "TrimeshLoad", + "TrimeshPreview", + "TrimeshSave" + ], + { + "title_aux": "ComfyUI-BPT" + } + ], + "https://github.com/Easymode-ai/ComfyUI-ShadowR": [ + [ + "ShadowRModelLoader", + "ShadowRShadowRemover" + ], + { + "title_aux": "ComfyUI-ShadowR" + } + ], + "https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes": [ + [ + "InstantX Flux Union ControlNet Loader" + ], + { + "author": "eesahe", + "description": "InstantX's Flux union ControlNet loader and implementation", + "nickname": "eesahesNodes", + "title": "eesahe's Nodes", + "title_aux": "ComfyUI-eesahesNodes" + } + ], + "https://github.com/Elaine-chennn/comfyui-overlay-media": [ + [ + "OverlayMediaNode", + "VideoUpload" + ], + { + "title_aux": "ComfyUI Overlay Media Node" + } + ], "https://github.com/Electrofried/ComfyUI-OpenAINode": [ [ "OpenAINode" @@ -1033,14 +5117,140 @@ "title_aux": "ComfyUI-post-processing-nodes" } ], - "https://github.com/ExponentialML/ComfyUI_ELLA": [ + "https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes": [ [ - "ELLATextEncode", - "GetSigma", - "LoadElla" + "EmAySee_AnyPassthrough", + "EmAySee_CheckboxFloatNode", + "EmAySee_DateTimeStringNode", + "EmAySee_DynamicStringSelectorNode", + "EmAySee_GreaterThanNode", + "EmAySee_HostPinger", + "EmAySee_ImagePassthrough", + "EmAySee_IntegerStringSelectorNode", + "EmAySee_IntegerStringSelectorNodeDynamic", + "EmAySee_MultiplierNode", + "EmAySee_ProbabilityStringSelectorNode", + "EmAySee_RandomIntFromList", + "EmAySee_RandomIntegerFromListNode", + "EmAySee_RandomIntegerFromTogglesNode_PremadeLabels", + "EmAySee_RandomStringSelectorNode", + "EmAySee_RandomStringSelectorNodeFourChoice", + "EmAySee_RandomStringSelectorNodeThreeChoice", + "EmAySee_RemoveDuplicateCSV", + "EmAySee_RepaintKSampler", + "EmAySee_SaveImage", + "EmAySee_SaveTextToFile", + "EmAySee_StringPoseSelectorNode", + "EmAySee_StringTupleInputNode", + "EmAySee_SubmitToOobaboogaAPI", + "EmAySee_SubmitToOobaboogaAPIWithKey", + "EmAySee_ToggleIntNode", + "EmAySee_VarTextReplacer", + "EmAySee_VeryUniqueStringSelectorNode" ], { - "title_aux": "ComfyUI_ELLA" + "title_aux": "ComfyUI_EmAySee_CustomNodes" + } + ], + "https://github.com/EnragedAntelope/ComfyUI-ConstrainResolution": [ + [ + "ConstrainResolution" + ], + { + "title_aux": "ComfyUI-ConstrainResolution" + } + ], + "https://github.com/EnragedAntelope/ComfyUI-Doubutsu-Describer": [ + [ + "DoubutsuDescriber" + ], + { + "title_aux": "ComfyUI-Doubutsu-Describer" + } + ], + "https://github.com/EnragedAntelope/ComfyUI-EACloudNodes": [ + [ + "GroqNode", + "OpenRouterModels", + "OpenrouterNode" + ], + { + "title_aux": "ComfyUI-EACloudNodes" + } + ], + "https://github.com/EnragedAntelope/comfyui-relight": [ + [ + "ReLight" + ], + { + "title_aux": "ComfyUI-ReLight" + } + ], + "https://github.com/Erehr/ComfyUI-EreNodes": [ + [ + "ErePromptCloud", + "ErePromptFilter", + "ErePromptGallery", + "ErePromptLoraStack", + "ErePromptMultiSelect", + "ErePromptMultiline", + "ErePromptRandomizer", + "ErePromptToggle" + ], + { + "title_aux": "ComfyUI-EreNodes" + } + ], + "https://github.com/EvilBT/ComfyUI_SLK_joy_caption_two": [ + [ + "Batch_joy_caption_two", + "Batch_joy_caption_two_advanced", + "Joy_caption_two", + "Joy_caption_two_advanced", + "Joy_caption_two_load", + "Joy_extra_options" + ], + { + "title_aux": "JoyCaptionAlpha Two for ComfyUI" + } + ], + "https://github.com/Excidos/ComfyUI-Documents": [ + [ + "ChunkRouter", + "DocumentLoader", + "ImageSelector", + "PDFPageSplitter", + "PDFToImage", + "TextChunker" + ], + { + "title_aux": "ComfyUI-Documents" + } + ], + "https://github.com/Excidos/ComfyUI-Lumina-Next-SFT-DiffusersWrapper": [ + [ + "LuminaDiffusersNode" + ], + { + "title_aux": "ComfyUI-Lumina-Next-SFT-DiffusersWrapper" + } + ], + "https://github.com/ExoticArts/comfyui-ea-nodes": [ + [ + "EA_AutoTrimPingPong", + "EA_FilenameCombine", + "EA_LightningMotionBias", + "EA_ListVideos", + "EA_ManifestIndex", + "EA_PingPong", + "EA_PowerLora", + "EA_PowerLora_CLIP", + "EA_PowerLora_WanVideo", + "EA_TrimFrames", + "EA_VideoLoad" + ], + { + "title_aux": "comfyui-ea-nodes" } ], "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V": [ @@ -1068,19 +5278,49 @@ "title_aux": "ComfyUI_VisualStylePrompting" } ], + "https://github.com/ExterminanzHS/Gecco-Discord-Autosend": [ + [ + "GeccoAutosend", + "GeccoImageSave", + "GeccoSelectchannel" + ], + { + "title_aux": "Gecco Discord Autosend" + } + ], "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG": [ [ "Automatic CFG", "Automatic CFG - Advanced", - "Automatic CFG - Fastest", + "Automatic CFG - Attention modifiers", + "Automatic CFG - Attention modifiers tester", + "Automatic CFG - Custom attentions", + "Automatic CFG - Excellent attention", "Automatic CFG - Negative", "Automatic CFG - Post rescale only", - "SAG delayed activation" + "Automatic CFG - Preset Loader", + "Automatic CFG - Unpatch function", + "Automatic CFG - Warp Drive", + "SAG delayed activation", + "Temperature separate settings CLIP SDXL", + "Temperature settings CLIP", + "Temperature settings SD 1.5", + "Temperature settings SDXL", + "Zero Uncond CFG - standalone patch (incompatible with the others)" ], { "title_aux": "ComfyUI-AutomaticCFG" } ], + "https://github.com/Extraltodeus/DistanceSampler": [ + [ + "SamplerDistance", + "SamplerDistanceAdvanced" + ], + { + "title_aux": "DistanceSampler" + } + ], "https://github.com/Extraltodeus/LoadLoraWithTags": [ [ "LoraLoaderTagsQuery" @@ -1089,6 +5329,49 @@ "title_aux": "LoadLoraWithTags" } ], + "https://github.com/Extraltodeus/Negative-attention-for-ComfyUI-": [ + [ + "Negative cross attention", + "Negative cross attention concatenate" + ], + { + "title_aux": "Negative-attention-for-ComfyUI-" + } + ], + "https://github.com/Extraltodeus/Skimmed_CFG": [ + [ + "Skimmed CFG", + "Skimmed CFG - Clean Skim", + "Skimmed CFG - Difference CFG", + "Skimmed CFG - Timed flip", + "Skimmed CFG - linear interpolation", + "Skimmed CFG - linear interpolation dual scales", + "Skimmed CFG - replace" + ], + { + "title_aux": "Skimmed_CFG" + } + ], + "https://github.com/Extraltodeus/Stable-Diffusion-temperature-settings": [ + [ + "CLIP Temperature", + "Unet Temperature" + ], + { + "title_aux": "Stable-Diffusion-temperature-settings" + } + ], + "https://github.com/Extraltodeus/Uncond-Zero-for-ComfyUI": [ + [ + "Conditioning combine positive and negative", + "Conditioning crop or fill", + "Uncond Zero", + "interrupt on NaN" + ], + { + "title_aux": "Uncond-Zero-for-ComfyUI" + } + ], "https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI": [ [ "CLIP Vector Sculptor text encode", @@ -1103,7 +5386,8 @@ ], "https://github.com/Extraltodeus/noise_latent_perlinpinpin": [ [ - "NoisyLatentPerlin" + "NoisyLatentPerlin", + "NoisyLatentPerlin16ch" ], { "title_aux": "noise latent perlinpinpin" @@ -1111,9 +5395,12 @@ ], "https://github.com/Extraltodeus/sigmas_tools_and_the_golden_scheduler": [ [ + "Aligned Scheduler", + "Gaussian Tail Scheduler", "Get sigmas as float", "Graph sigmas", "Manual scheduler", + "Merge many sigmas by average", "Merge sigmas by average", "Merge sigmas gradually", "Multiply sigmas", @@ -1125,11 +5412,25 @@ "title_aux": "sigmas_tools_and_the_golden_scheduler" } ], + "https://github.com/FaberVS/MultiModel": [ + [ + "ActiveModel", + "DenoiseSelector", + "KSamplerPipe", + "ListSelector", + "ModelParamsPipe", + "MySwitchIndex", + "ParamsPipeUnpack", + "PromptBuilder" + ], + { + "title_aux": "MultiModel" + } + ], "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation": [ [ "AMT VFI", "CAIN VFI", - "EISAI VFI", "FILM VFI", "FLAVR VFI", "GMFSS Fortuna VFI", @@ -1140,25 +5441,117 @@ "Make Interpolation State List", "RIFE VFI", "STMFNet VFI", - "Sepconv VFI" + "Sepconv VFI", + "VFI FloatToInt" ], { "title_aux": "ComfyUI Frame Interpolation" } ], - "https://github.com/Fannovel16/ComfyUI-Loopchain": [ + "https://github.com/Fannovel16/ComfyUI-MagickWand": [ [ - "EmptyLatentImageLoop", - "FolderToImageStorage", - "ImageStorageExportLoop", - "ImageStorageImport", - "ImageStorageReset", - "LatentStorageExportLoop", - "LatentStorageImport", - "LatentStorageReset" + "ImageMagick Adaptive Blur", + "ImageMagick Adaptive Resize", + "ImageMagick Adaptive Sharpen", + "ImageMagick Adaptive Threshold", + "ImageMagick Auto Gamma", + "ImageMagick Auto Level", + "ImageMagick Auto Orient", + "ImageMagick Auto Threshold", + "ImageMagick Blue Shift", + "ImageMagick Blur", + "ImageMagick Brightness Contrast", + "ImageMagick Canny", + "ImageMagick Charcoal", + "ImageMagick Chop", + "ImageMagick Clahe", + "ImageMagick Clamp", + "ImageMagick Coalesce", + "ImageMagick Color Decision List", + "ImageMagick Color Matrix", + "ImageMagick Combine", + "ImageMagick Concat", + "ImageMagick Contrast", + "ImageMagick Contrast Stretch", + "ImageMagick Crop", + "ImageMagick Cycle Color Map", + "ImageMagick Decipher", + "ImageMagick Despeckle", + "ImageMagick Distort", + "ImageMagick Edge", + "ImageMagick Emboss", + "ImageMagick Encipher", + "ImageMagick Enhance", + "ImageMagick Equalize", + "ImageMagick Evaluate", + "ImageMagick Extent", + "ImageMagick Flip", + "ImageMagick Flop", + "ImageMagick Forward Fourier Transform", + "ImageMagick Function", + "ImageMagick Gamma", + "ImageMagick Gaussian Blur", + "ImageMagick Hough Lines", + "ImageMagick Implode", + "ImageMagick Kmeans", + "ImageMagick Kuwahara", + "ImageMagick Level", + "ImageMagick Levelize", + "ImageMagick Linear Stretch", + "ImageMagick Liquid Rescale", + "ImageMagick Local Contrast", + "ImageMagick Magnify", + "ImageMagick Mean Shift", + "ImageMagick Merge Layers", + "ImageMagick Mode", + "ImageMagick Modulate", + "ImageMagick Morphology", + "ImageMagick Motion Blur", + "ImageMagick Negate", + "ImageMagick Noise", + "ImageMagick Normalize", + "ImageMagick Oil Paint", + "ImageMagick Ordered Dither", + "ImageMagick Polynomial", + "ImageMagick Posterize", + "ImageMagick Quantize", + "ImageMagick Random Threshold", + "ImageMagick Range Threshold", + "ImageMagick Resample", + "ImageMagick Resize", + "ImageMagick Roll", + "ImageMagick Rotational Blur", + "ImageMagick Sample", + "ImageMagick Scale", + "ImageMagick Selective Blur", + "ImageMagick Sepia Tone", + "ImageMagick Shade", + "ImageMagick Shadow", + "ImageMagick Sharpen", + "ImageMagick Shave", + "ImageMagick Sigmoidal Contrast", + "ImageMagick Sketch", + "ImageMagick Smush", + "ImageMagick Solarize", + "ImageMagick Splice", + "ImageMagick Spread", + "ImageMagick Statistic", + "ImageMagick Swirl", + "ImageMagick Threshold", + "ImageMagick Thumbnail", + "ImageMagick Transform", + "ImageMagick Transform Colorspace", + "ImageMagick Transparentize", + "ImageMagick Transpose", + "ImageMagick Transverse", + "ImageMagick Unsharp Mask", + "ImageMagick Vignette", + "ImageMagick Wave", + "ImageMagick Wavelet Denoise", + "ImageMagick White Balance" ], { - "title_aux": "ComfyUI Loopchain" + "title_aux": "ComfyUI-MagickWand" } ], "https://github.com/Fannovel16/ComfyUI-MotionDiff": [ @@ -1203,16 +5596,20 @@ "AnimalPosePreprocessor", "AnimeFace_SemSegPreprocessor", "AnimeLineArtPreprocessor", + "AnyLineArtPreprocessor_aux", "BAE-NormalMapPreprocessor", "BinaryPreprocessor", "CannyEdgePreprocessor", "ColorPreprocessor", + "ControlNetAuxSimpleAddText", "ControlNetPreprocessorSelector", "DSINE-NormalMapPreprocessor", "DWPreprocessor", "DensePosePreprocessor", "DepthAnythingPreprocessor", + "DepthAnythingV2Preprocessor", "DiffusionEdge_Preprocessor", + "ExecuteAllControlNetPreprocessors", "FacialPartColoringFromPoseKps", "FakeScribblePreprocessor", "HEDPreprocessor", @@ -1229,7 +5626,11 @@ "Manga2Anime_LineArt_Preprocessor", "MaskOptFlow", "MediaPipe-FaceMeshPreprocessor", + "MeshGraphormer+ImpactDetector-DepthMapPreprocessor", "MeshGraphormer-DepthMapPreprocessor", + "Metric3D-DepthMapPreprocessor", + "Metric3D-NormalMapPreprocessor", + "Metric_DepthAnythingV2Preprocessor", "MiDaS-DepthMapPreprocessor", "MiDaS-NormalMapPreprocessor", "OneFormer-ADE20K-SemSegPreprocessor", @@ -1237,21 +5638,27 @@ "OpenposePreprocessor", "PiDiNetPreprocessor", "PixelPerfectResolution", + "PyraCannyPreprocessor", + "RenderAnimalKps", + "RenderPeopleKps", "SAMPreprocessor", "SavePoseKpsAsJsonFile", "ScribblePreprocessor", + "Scribble_PiDiNet_Preprocessor", "Scribble_XDoG_Preprocessor", "SemSegPreprocessor", "ShufflePreprocessor", "TEEDPreprocessor", + "TTPlanet_TileGF_Preprocessor", + "TTPlanet_TileSimple_Preprocessor", "TilePreprocessor", "UniFormer-SemSegPreprocessor", "Unimatch_OptFlowPreprocessor", + "UpperBodyTrackingFromPoseKps", "Zoe-DepthMapPreprocessor", "Zoe_DepthAnythingPreprocessor" ], { - "author": "tstandley", "preemptions": [ "AIO_Preprocessor", "AnimalPosePreprocessor", @@ -1306,6 +5713,36 @@ "title_aux": "ComfyUI's ControlNet Auxiliary Preprocessors" } ], + "https://github.com/Fantaxico/ComfyUI-GCP-Storage": [ + [ + "GCPStorageNode" + ], + { + "title_aux": "ComfyUI-GCP-Storage" + } + ], + "https://github.com/FaraamFide/ComfyUI-ParamNodes": [ + [ + "HelperModelSwitch", + "ParamBoolean", + "ParamFloat", + "ParamImage", + "ParamInt", + "ParamString", + "ParamUniversal" + ], + { + "title_aux": "ComfyUI-ParamNodes" + } + ], + "https://github.com/FearL0rd/ComfyUI-MaskAIFingerprint": [ + [ + "MaskAIFingerprint" + ], + { + "title_aux": "ComfyUI MaskAIFingerprint" + } + ], "https://github.com/Feidorian/feidorian-ComfyNodes": [ [], { @@ -1313,18 +5750,79 @@ "title_aux": "feidorian-ComfyNodes" } ], + "https://github.com/Ferocit/comfyui-feroccustomnodes": [ + [ + "LoadDescriptionNode", + "RandomLineFromText" + ], + { + "title_aux": "comfyui-feroccustomnodes" + } + ], + "https://github.com/FewBox/fewbox-outfit-comfyui": [ + [ + "FewBoxInContextLora", + "FewBoxLab", + "FewBoxSaveImage", + "FewBoxWatermark", + "FewBoxWebDAV" + ], + { + "title_aux": "fewbox-outfit-comfyui" + } + ], "https://github.com/Fictiverse/ComfyUI_Fictiverse": [ [ - "Add Noise to Image with Mask", - "Color correction", - "Displace Image with Depth", - "Displace Images with Mask", - "Zoom Image with Depth" + "Add Margin With Color", + "Any to Int/Float/String", + "Audio Duration", + "Essential Params", + "Get Last Output Video Path", + "If Image Valid", + "Image Params", + "Is Image Valid ?", + "Math Operation", + "None if same Image", + "Prompt Assembler", + "Resize Images To Megapixels", + "Resize To Megapixels", + "Video Params", + "WaveformDevice" ], { "title_aux": "ComfyUI Fictiverse Nodes" } ], + "https://github.com/Fihade/IC-Light-ComfyUI-Node": [ + [ + "LoadICLightUnetDiffusers", + "diffusers_model_loader", + "iclight_diffusers_sampler" + ], + { + "title_aux": "IC-Light-ComfyUI-Node" + } + ], + "https://github.com/FinetunersAI/ComfyUI_Finetuners_Suite": [ + [ + "AutoImageResize", + "GroupLink", + "ModelListNode", + "VariablesInjector", + "VariablesLogicNode" + ], + { + "title_aux": "ComfyUI_Finetuners_Suite" + } + ], + "https://github.com/Firetheft/ComfyUI_Civitai_Gallery": [ + [ + "CivitaiGalleryNode" + ], + { + "title_aux": "ComfyUI Civitai Gallery" + } + ], "https://github.com/FizzleDorf/ComfyUI-AIT": [ [ "AIT_Unet_Loader", @@ -1374,6 +5872,16 @@ "title_aux": "FizzNodes" } ], + "https://github.com/Flow-two/ComfyUI-WanStartEndFramesNative": [ + [ + "GetImagesFromBatchRanged_F2", + "WanImageToVideo_F2", + "WanSkipEndFrameImages_F2" + ], + { + "title_aux": "ComfyUI-WanStartEndFramesNative" + } + ], "https://github.com/FlyingFireCo/tiled_ksampler": [ [ "Asymmetric Tiled KSampler", @@ -1386,17 +5894,43 @@ ], "https://github.com/ForeignGods/ComfyUI-Mana-Nodes": [ [ - "audio2video", - "font2img", - "speech2text", - "string2file", - "text2speech", - "video2audio" + "Canvas Properties", + "Combine Video", + "Font Properties", + "Generate Audio", + "Preset Color Animations", + "Save/Preview Text", + "Scheduled Values", + "Speech Recognition", + "Split Video", + "Text to Image Generator" ], { "title_aux": "ComfyUI-Mana-Nodes" } ], + "https://github.com/FortunaCournot/comfyui_stereoscopic": [ + [ + "DecryptWatermark", + "EncryptWatermark", + "GetResolutionForVR", + "ImageVRConverter", + "SaveStrippedUTF8File", + "ScaleByFactor", + "StripXML" + ], + { + "title_aux": "Stereoscopic" + } + ], + "https://github.com/Franck-Demongin/NX_HuggingFace_Flux": [ + [ + "HFFlux" + ], + { + "title_aux": "NX_HuggingFace_Flux" + } + ], "https://github.com/Franck-Demongin/NX_PromptStyler": [ [ "NX_PromptStyler" @@ -1405,25 +5939,190 @@ "title_aux": "NX_PromptStyler" } ], - "https://github.com/GMapeSplat/ComfyUI_ezXY": [ + "https://github.com/Franck-Demongin/NX_Translator": [ [ - "ConcatenateString", - "ItemFromDropdown", - "IterationDriver", - "JoinImages", - "LineToConsole", - "NumberFromList", - "NumbersToList", - "PlotImages", - "StringFromList", - "StringToLabel", - "StringsToList", - "ezMath", - "ezXY_AssemblePlot", - "ezXY_Driver" + "Nx_Translator" ], { - "title_aux": "ezXY scripts and nodes" + "title_aux": "NX_Translator" + } + ], + "https://github.com/Franklyc/comfyui-lora-adain-patcher-node": [ + [ + "LoraAdaLNPatcher" + ], + { + "title_aux": "ComfyUI LoRA adaLN Patcher Node" + } + ], + "https://github.com/Frief84/ComfyUI-LoRAWeightAxisXY": [ + [ + "XY Input: LoRA Weight (simple)" + ], + { + "title_aux": "ComfyUI-LoRAWeightAxisXY" + } + ], + "https://github.com/FunnyFinger/ComfyUi-RadarWeightNode": [ + [ + "RadarWeightsNode" + ], + { + "title_aux": "Radar Weights Node" + } + ], + "https://github.com/FuouM/ComfyUI-EbSynth": [ + [ + "ES_Guides7", + "ES_Translate", + "ES_VideoTransfer", + "ES_VideoTransferExtra" + ], + { + "author": "Fuou Marinas", + "description": "Run EbSynth in ComfyUI.", + "nickname": "EbSynth", + "title": "ComfyUI-EbSynth", + "title_aux": "ComfyUI-EbSynth" + } + ], + "https://github.com/FuouM/ComfyUI-FirstOrderMM": [ + [ + "Articulate_Runner", + "FOMM_Partswap", + "FOMM_Runner", + "FOMM_Seg10Chooser", + "FOMM_Seg15Chooser", + "FOMM_Seg5Chooser", + "FSRT_Runner", + "MRFA_Runner", + "Spline_Runner" + ], + { + "author": "Fuou Marinas", + "description": "ComfyUI-native nodes to run First Order Motion Model for Image Animation and its non-diffusion-based successors.", + "nickname": "FOMM", + "title": "ComfyUI-FirstOrderMM", + "title_aux": "ComfyUI-FirstOrderMM" + } + ], + "https://github.com/FuouM/ComfyUI-MatAnyone": [ + [ + "MatAnyone", + "SolidColorBatched" + ], + { + "author": "Fuou Marinas", + "description": "A collection of nodes.", + "nickname": "FM_nodes", + "title": "FM Nodes", + "title_aux": "ComfyUI-MatAnyone" + } + ], + "https://github.com/FuouM/ComfyUI-StyleTransferPlus": [ + [ + "AESFA", + "AesFAStyleBlend", + "AesPA", + "CAST", + "CoralColorTransfer", + "EFDM", + "MicroAST", + "NeuralNeighbor", + "TSSAT", + "UniST", + "UniST_Video" + ], + { + "author": "ZJU", + "description": "A collection of style transfer nodes.", + "nickname": "StyleTransferPlus", + "title": "ComfyUI-StyleTransferPlus", + "title_aux": "ComfyUI-StyleTransferPlus" + } + ], + "https://github.com/FuouM/FM_nodes": [ + [ + "CoLIE_LowLight_Enhance", + "ConvIR_DeHaze", + "ConvIR_DeRain", + "ConvIR_DeSnow", + "ConvIR_DefocusDeblur", + "ConvIR_MotionDeBlur", + "ProPIH_Harmonizer", + "RealViFormerSR", + "StabStitch", + "StabStitch_Crop_Resize", + "StabStitch_Stabilize", + "WFEN" + ], + { + "author": "Fuou Marinas", + "description": "A collection of nodes.", + "nickname": "FM_nodes", + "title": "FM Nodes", + "title_aux": "FM_nodes" + } + ], + "https://github.com/Fuwuffyi/ComfyUI-VisualArea-Nodes": [ + [ + "VisualAreaPrompt", + "VisualAreaPromptAdvanced" + ], + { + "author": "Fuwuffy", + "description": "This is a collection of nodes created to aid when managing area conditionings.", + "nickname": "comfy-visual-area", + "title": "ComfyUI Visual Area Nodes", + "title_aux": "ComfyUI-VisualArea-Nodes" + } + ], + "https://github.com/G-370/ComfyUI-SD3-Powerlab": [ + [ + "G370SD3PowerLab_AttentionToImage", + "G370SD3PowerLab_ImageIntoAttention", + "G370SD3PowerLab_ImageIntoLayer", + "G370SD3PowerLab_LayerToImage", + "G370SD3PowerLab_RenderAttention" + ], + { + "title_aux": "ComfyUI-SD3-Powerlab" + } + ], + "https://github.com/GACLove/ComfyUI-Lightx2vWrapper": [ + [ + "LightX2VConfigCombiner", + "LightX2VInferenceConfig", + "LightX2VLightweightVAE", + "LightX2VLoRALoader", + "LightX2VMemoryOptimization", + "LightX2VModularInference", + "LightX2VQuantization", + "LightX2VTeaCache" + ], + { + "title_aux": "ComfyUI-Lightx2vWrapper" + } + ], + "https://github.com/GACLove/ComfyUI-VFI": [ + [ + "RIFEInterpolation" + ], + { + "title_aux": "ComfyUI-VFI" + } + ], + "https://github.com/GHOSTLXH/ComfyUI-Counternodes": [ + [ + "AlternatingOutput", + "AlternatingOutputB", + "ImageCounter", + "IntervalCounter", + "IntervalCounterB", + "LoadPromptFromTXT" + ], + { + "title_aux": "ComfyUI-Counternodes" } ], "https://github.com/GTSuya-Studio/ComfyUI-Gtsuya-Nodes": [ @@ -1440,20 +6139,328 @@ "title_aux": "ComfyUI-GTSuya-Nodes" } ], - "https://github.com/Gourieff/comfyui-reactor-node": [ + "https://github.com/GadzoinksOfficial/comfyui_gprompts": [ [ + "GPrompts" + ], + { + "author": "gadzoinksofficial", + "description": "Another dynamic prompt node, designed to be easy to use and support wildcards", + "nickname": "Gprompts", + "title": "Gprompts", + "title_aux": "Gprompts" + } + ], + "https://github.com/GadzoinksOfficial/gadzoinks_ComfyUI": [ + [ + "Gadzoinks" + ], + { + "author": "gadzoinksofficial", + "description": "Custom node for integrating with gadzoinks iPhone app", + "nickname": "Gadzoinks", + "title": "Gadzoinks", + "title_aux": "Gadzoinks" + } + ], + "https://github.com/GamingDaveUk/daves_nodes": [ + [ + "davesTextToList" + ], + { + "title_aux": "Daves Nodes" + } + ], + "https://github.com/Gary-yeh/ComfyUI-WebPrompter": [ + [ + "ContentFetcher (WebPrompter)", + "LLMNewsScriptGenerator (WebPrompter)" + ], + { + "title_aux": "ComfyUI-WebPrompter" + } + ], + "https://github.com/Gary-yeh/comfyui-super-captioner": [ + [ + "SuperCaptioner" + ], + { + "title_aux": "comfyui-super-captioner" + } + ], + "https://github.com/GavChap/ComfyUI-SD3LatentSelectRes": [ + [ + "SD3LatentSelectRes" + ], + { + "title_aux": "ComfyUI-SD3LatentSelectRes" + } + ], + "https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS": [ + [ + "GeekyKokoroAdvancedVoice", + "GeekyKokoroTTS" + ], + { + "title_aux": "ComfyUI-Geeky-Kokoro-TTS" + } + ], + "https://github.com/GeekyGhost/ComfyUI-Geeky-LatentSyncWrapper": [ + [ + "GeekyLatentSyncNode", + "GeekyVideoLengthAdjuster" + ], + { + "title_aux": "ComfyUI-Geeky-LatentSyncWrapper 1.5" + } + ], + "https://github.com/GeekyGhost/ComfyUI-GeekyRemB": [ + [ + "GeekyRemB" + ], + { + "title_aux": "ComfyUI-GeekyRemB" + } + ], + "https://github.com/GeekyGhost/ComfyUI-Image-Segmenting-Loader": [ + [ + "GeekyQwenCompositor", + "GeekyQwenEffects", + "GeekyQwenSegmentLoader" + ], + { + "title_aux": "ComfyUI-Image-Segmenting-Loader" + } + ], + "https://github.com/GeekyGhost/ComfyUI_Geeky_AudioMixer": [ + [ + "GeekyAudioMixer" + ], + { + "title_aux": "ComfyUI Geeky AudioMixer" + } + ], + "https://github.com/GentlemanHu/ComfyUI-SunoAI": [ + [ + "GentlemanHu_SunoAI", + "GentlemanHu_SunoAI_NotSafe" + ], + { + "title_aux": "ComfyUI Suno API" + } + ], + "https://github.com/GeraldWie/ComfyUI-I2I-slim": [ + [ + "Color Transfer Slim", + "Combine and Paste Slim", + "Inpaint Segments Slim", + "Mask Ops Slim" + ], + { + "author": "GeraldWie", + "title": "ComfyI2I-lite", + "title_aux": "ComfyUI-I2I-slim" + } + ], + "https://github.com/Gipphe/comfyui-metadata-statistics": [ + [ + "RecordModels" + ], + { + "title_aux": "ComfyUI Metadata Statistics" + } + ], + "https://github.com/GiusTex/ComfyUI-DiffusersImageOutpaint": [ + [ + "DiffusersImageOutpaint", + "EncodeDiffusersOutpaintPrompt", + "LoadDiffuserControlnet", + "LoadDiffuserModel", + "PadImageForDiffusersOutpaint" + ], + { + "title_aux": "ComfyUI-DiffusersImageOutpaint" + } + ], + "https://github.com/Goktug/comfyui-saveimage-plus": [ + [ + "SaveImagePlus" + ], + { + "title_aux": "Save Image Plus for ComfyUI" + } + ], + "https://github.com/Goshe-nite/comfyui-gps-supplements": [ + [ + "KSampler to Image Saver", + "Lora Prompt Concatenation", + "Lora to String", + "Model to String", + "gpsdebugger" + ], + { + "title_aux": "GPS' Supplements for ComfyUI" + } + ], + "https://github.com/Gourieff/ComfyUI-ReActor": [ + [ + "ImageRGBA2RGB", "ReActorBuildFaceModel", + "ReActorFaceBoost", "ReActorFaceSwap", "ReActorFaceSwapOpt", "ReActorImageDublicator", "ReActorLoadFaceModel", + "ReActorMakeFaceModelBatch", "ReActorMaskHelper", "ReActorOptions", "ReActorRestoreFace", - "ReActorSaveFaceModel" + "ReActorSaveFaceModel", + "ReActorSetWeight", + "ReActorUnload" ], { - "title_aux": "ReActor Node for ComfyUI" + "title_aux": "comfyui-reactor-node" + } + ], + "https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR": [ + [ + "GRApplyPulidFlux", + "GRPulidFluxEvaClipLoader", + "GRPulidFluxInsightFaceLoader", + "GRPulidFluxModelLoader" + ], + { + "title_aux": "ComfyUI-PuLID-Flux-GR" + } + ], + "https://github.com/GraftingRayman/ComfyUI_GraftingRayman": [ + [ + "GR BLIP 2 Caption Generator", + "GR BLIP 2 Text Expander", + "GR Background Remover REMBG", + "GR Checkered Board", + "GR Counter", + "GR Flip Tile Random Inverted", + "GR Flip Tile Random Red Ring", + "GR Florence 2 Caption Generator", + "GR INT Incremetor", + "GR Image Details Displayer", + "GR Image Details Saver", + "GR Image Multiplier", + "GR Image Paste", + "GR Image Paste With Mask", + "GR Image Resize", + "GR Image Resize Methods", + "GR Image Size", + "GR Image/Depth Mask", + "GR Lora Randomizer", + "GR Mask", + "GR Mask Create", + "GR Mask Create Random", + "GR Mask Create Random Multi", + "GR Mask Resize", + "GR Multi Mask Create", + "GR Onomatopoeia", + "GR Pan Or Zoom", + "GR Prompt Generator", + "GR Prompt Generator Extended", + "GR Prompt HUB", + "GR Prompt Selector", + "GR Prompt Selector Multi", + "GR Prompty", + "GR Scroller", + "GR Sigmas", + "GR Stack Image", + "GR Text Overlay", + "GR Tile and Border Image", + "GR Tile and Border Image Random Flip" + ], + { + "title_aux": "GraftingRayman" + } + ], + "https://github.com/GraftingRayman/ComfyUI_QueueTube": [ + [ + "GR QueueTube" + ], + { + "title_aux": "ComfyUI QueueTube" + } + ], + "https://github.com/GrailGreg/images_base64": [ + [ + "SaveImage64", + "ShowText64" + ], + { + "title_aux": "Image Saving and Base64 Encoding Script" + } + ], + "https://github.com/GreenLandisaLie/AuraSR-ComfyUI": [ + [ + "AuraSR.AuraSRUpscaler" + ], + { + "title_aux": "AuraSR-ComfyUI" + } + ], + "https://github.com/GrenKain/PixelArt-Processing-Nodes-for-ComfyUI": [ + [ + "PixelArtDownscaleNode", + "PixelArtNode" + ], + { + "title_aux": "PixelArt Processing Nodes" + } + ], + "https://github.com/GroxicTinch/EasyUI-ComfyUI": [ + [ + "UINode" + ], + { + "title_aux": "EasyUI" + } + ], + "https://github.com/GrvBdgr/comfyui-negativewildcardsprocessor": [ + [ + "custom_token_processor", + "neg_wildcard_processor" + ], + { + "title_aux": "Negative Wildcard Processor Node for ComfyUI" + } + ], + "https://github.com/Gue-e/ComfyUI-PanoCard": [ + [ + "PanoCardViewer", + "PanoCondAllBatch", + "PanoCondFaceBatch", + "PanoCondFaceClamp", + "PanoCondFaceDetailerHook", + "PanoCondFaceUnPack", + "PanoImage2FaceSplit", + "PanoImageAdjust", + "PanoImageEqu2Equ", + "PanoImageEqu2Face", + "PanoImageEqu2Pic", + "PanoImageFace2Equ", + "PanoImageFaceClamp", + "PanoImageFaceToLong", + "PanoImageHeightPad", + "PanoImagePad", + "PanoImagePic2Equ", + "PanoImageRoll", + "PanoImageUnPack", + "PanoImageWidthPad", + "PanoLongMaskSplit", + "PanoMaskUnPack", + "PanoPipe", + "PanoPromptSplit", + "PanoRegionalPrompt" + ], + { + "title_aux": "ComfyUI-PanoCard" } ], "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio": [ @@ -1461,7 +6468,7 @@ "StableCascadeLatentRatio" ], { - "title_aux": "ComfyUI-ScenarioPrompt" + "title_aux": "ComfyUI_StableCascadeLatentRatio" } ], "https://github.com/HAL41/ComfyUI-aichemy-nodes": [ @@ -1472,54 +6479,208 @@ "title_aux": "ComfyUI aichemy nodes" } ], - "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream": [ + "https://github.com/HECer/ComfyUI-FilePathCreator": [ [ - "Moondream Interrogator" + "FilePathCreator", + "FilePathExtractor" ], { - "author": "AlexL", - "description": "An implementation of the moondream visual LLM", - "nickname": "Hangover-Moondream", - "title": "ComfyUI-Hangover-Moondream", - "title_aux": "ComfyUI-Hangover-Moondream" + "title_aux": "ComfyUI-FilePathCreator" } ], - "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes": [ + "https://github.com/HJH-AILab/ComfyUI_CosyVoice2": [ [ + "CosyVoiceModel", + "CosyVoiceNode", + "HJHCosyVoiceSaveAudio" + ], + { + "title_aux": "ComfyUI_CosyVoice2" + } + ], + "https://github.com/HJH-AILab/ComfyUI_Facefusion": [ + [ + "FacefusionFaceEnhancerProcessor", + "FacefusionFaceSwapperProcessor", + "FacefusionFrameEnhancerProcessor", + "FacefusionLipSyncerProcessor", + "FacefusionOptionsNode", + "FacefusionProcesserOptionsNode", + "FacefusionProcessingNode" + ], + { + "title_aux": "ComfyUI_Facefusion" + } + ], + "https://github.com/HJH-AILab/ComfyUI_StableAnimator": [ + [ + "StableAnimatorDWPoseDetectorAlignedModels", + "StableAnimatorLoadFramesFromFolderNode", + "StableAnimatorModels", + "StableAnimatorNode", + "StableAnimatorSkeletonNode" + ], + { + "title_aux": "ComfyUI_StableAnimator" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_APICall": [ + [ + "RH_AudioUploader", + "RH_BatchImages", + "RH_ExecuteNode", + "RH_ExtractImage", + "RH_ImageUploaderNode", + "RH_NodeInfoListNode", + "RH_SettingsNode", + "RH_Utils", + "RH_VideoUploader" + ], + { + "title_aux": "ComfyUI_RH_APICall" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_DMOSpeech2": [ + [ + "RunningHub DMOSpeech2" + ], + { + "title_aux": "ComfyUI DMOSpeech2 Node" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_FramePack": [ + [ + "RunningHub_FramePack", + "RunningHub_FramePack_F1" + ], + { + "title_aux": "ComfyUI_RH_FramePack" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_OminiControl": [ + [ + "RunningHub_Omini_Fill", + "RunningHub_Omini_Spatial", + "RunningHub_Omini_Subject" + ], + { + "title_aux": "ComfyUI_RH_OminiControl" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_Qwen-Image": [ + [ + "QwenImageModelLoader", + "RH_QwenImageGenerator", + "RH_QwenImagePromptEnhancer" + ], + { + "title_aux": "ComfyUI Qwen-Image Node" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_SeedXPro": [ + [ + "RunningHub SeedXPro Translator" + ], + { + "title_aux": "ComfyUI SeedXPro Translation Node" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_Step1XEdit": [ + [ + "RunningHub_Step1XEdit" + ], + { + "title_aux": "ComfyUI_RH_Step1XEdit" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_UNO": [ + [ + "RunningHub_UNO_Loadmodel", + "RunningHub_UNO_Sampler" + ], + { + "title_aux": "ComfyUI_RH_UNO" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_USO": [ + [ + "RunningHub USO Loader", + "RunningHub USO Sampler" + ], + { + "title_aux": "ComfyUI USO Node" + } + ], + "https://github.com/HMG-Fiverr/ComfyUI-RandomNumberButton": [ + [ + "RandomNumberButton" + ], + { + "title_aux": "Random Number Button" + } + ], + "https://github.com/HSDHCdev/ComfyUI-AI-Pixel-Art-Enhancer": [ + [ + "AIPixelArtEnhancer" + ], + { + "title_aux": "AI Pixel Art Enhancer for ComfyUI" + } + ], + "https://github.com/HWDigi/Factory-Prompts_comfyui": [ + [ + "FactoryPromptsNegative", + "FactoryPromptsNegativeCategorized", + "FactoryPromptsNegativeToggle", + "FactoryPromptsPositive" + ], + { + "title_aux": "Factory Prompt Generator" + } + ], + "https://github.com/Haiper-ai/ComfyUI-HaiperAI-API": [ + [ + "HaiperImage2Video", + "HaiperKeyframeConditioning", + "HaiperText2Image", + "HaiperText2Video" + ], + { + "title_aux": "ComfyUI-HaiperAI-API" + } + ], + "https://github.com/Hangover3832/ComfyUI_Hangover-Utils": [ + [ + "Image Clipboard Paster", "Image Scale Bounding Box", - "MS kosmos-2 Interrogator", "Make Inpaint Model", - "Save Image w/o Metadata" + "Save Image w/o Metadata", + "Sympy Math Interpreter" ], { "author": "AlexL", "description": "Scales an input image into a given box size, whereby the aspect ratio keeps retained.", "nickname": "Hangover-Image_Scale_Bouning_Box", "title": "ComfyUI-Hangover-Image_Scale_Bouning_Box", - "title_aux": "ComfyUI-Hangover-Nodes" + "title_aux": "ComfyUI_Hangover-Utils" } ], - "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything": [ + "https://github.com/HannibalP/comfyui-HannibalPack": [ [ - "Recognize Anything Model (RAM)" + "HannibalLoraLoader" ], { - "author": "AlexL", - "description": "An implementation of the Recognize Anything Model (RAM++) for ComfyUI. The counterpart of Segment Anything Model (SAM).", - "nickname": "Hangover-Recognize_Anything", - "title": "ComfyUI-Hangover-Recognize_Anything", - "title_aux": "Recognize Anything Model (RAM) for ComfyUI" + "title_aux": "comfyui-HannibalPack" } ], "https://github.com/Haoming02/comfyui-diffusion-cg": [ [ "Normalization", - "NormalizationXL", "Recenter", "Recenter XL" ], { - "title_aux": "ComfyUI Diffusion Color Grading" + "title_aux": "Diffusion CG" } ], "https://github.com/Haoming02/comfyui-floodgate": [ @@ -1527,7 +6688,62 @@ "FloodGate" ], { - "title_aux": "ComfyUI Floodgate" + "title_aux": "Floodgate" + } + ], + "https://github.com/Haoming02/comfyui-resharpen": [ + [ + "Resharpen" + ], + { + "title_aux": "ComfyUI ReSharpen" + } + ], + "https://github.com/HappyXY/ComfyUI-AmazonBedrock": [ + [ + "Amazon Bedrock - Nova Canvas Background Prompt Replace", + "Amazon Bedrock - Nova Canvas Generate Image", + "Amazon Bedrock - Nova Canvas Generate Variations", + "Amazon Bedrock - Nova Canvas Remove Object", + "Amazon Bedrock - Nova Reel Video", + "Bedrock - Claude", + "Bedrock - Claude Multimodal", + "Bedrock - Nova", + "Bedrock - SDXL" + ], + { + "title_aux": "ComfyUI-AmazonBedrock" + } + ], + "https://github.com/HavocsCall/comfyui_HavocsCall_Custom_Nodes": [ + [ + "Clip Switch", + "Combine String", + "Conditioning Switch", + "Float Selector", + "Float to Integer", + "Float to String", + "Image Switch", + "Integer Selector", + "Integer to Float", + "Integer to String", + "Latent Switch", + "Load Image", + "Logic Compare", + "Math Operation", + "Model Switch", + "Prompt Combiner", + "Prompt Styler", + "Sampler Config", + "Save Image", + "String Switch", + "String to Float", + "String to Integer", + "Text Box", + "VAE Switch" + ], + { + "title_aux": "HavocsCall's Custom ComfyUI Nodes" } ], "https://github.com/HaydenReeve/ComfyUI-Better-Strings": [ @@ -1538,6 +6754,32 @@ "title_aux": "ComfyUI Better Strings" } ], + "https://github.com/Hazukiaoi/ComfyUI-LM_Studio_Tools": [ + [ + "LMS_APIConfig", + "LMS_GetAssistantMessage", + "LMS_Request", + "LMS_SelectModel", + "LMS_SystemPrompt", + "LMS_UnloadModel", + "LMS_UserPrompt" + ], + { + "title_aux": "LM Studio Tools for ComfyUI" + } + ], + "https://github.com/HeadshotPro/ComfyUI-HeadshotPro": [ + [ + "[HSP] Download Dreambooth Checkpoint", + "[HSP] Download Flux Lora", + "[HSP] Get Random Value From List", + "[HSP] Load Canny Pose Face", + "[HSP] Transparent to White Background" + ], + { + "title_aux": "ComfyUI-HeadshotPro" + } + ], "https://github.com/HebelHuber/comfyui-enhanced-save-node": [ [ "EnhancedSaveNode" @@ -1546,6 +6788,58 @@ "title_aux": "comfyui-enhanced-save-node" } ], + "https://github.com/HellerCommaA/ComfyUI-VideoResolutions": [ + [ + "HunyuanResolutions" + ], + { + "title_aux": "Hunyuan Video Resolutions" + } + ], + "https://github.com/Hellfiredragon/comfyui-image-manipulation": [ + [ + "AlphaApplyMaskToImage", + "CreateMaskFromColorsNode" + ], + { + "title_aux": "comfyui-image-manipulation" + } + ], + "https://github.com/HelloVision/ComfyUI_HelloMeme": [ + [ + "GetExpression", + "GetExpression2", + "GetFaceLandmarks", + "GetHeadPose", + "HMFaceToolkitsLoader", + "HMImagePipelineLoader", + "HMPipelineImage", + "HMPipelineVideo", + "HMVideoPipelineLoader" + ], + { + "title_aux": "ComfyUI_HelloMeme" + } + ], + "https://github.com/Hellrunner2k/ComfyUI-HellrunnersMagicalNodes": [ + [ + "AdjustMojo", + "BufferedEncoder", + "LoRABox", + "LoadMaskMap", + "MagicalSaveNode", + "MaskMapPrompt", + "MaskMapPromptMix", + "MojoLoader", + "MojoMaker", + "SaveMojo", + "TEAce", + "ThermalLatenator" + ], + { + "title_aux": "Hellrunner's Magical Nodes" + } + ], "https://github.com/Hiero207/ComfyUI-Hiero-Nodes": [ [ "Load Prompt Travel file", @@ -1560,20 +6854,118 @@ "title_aux": "Hiero-Nodes" } ], + "https://github.com/HighDoping/ComfyUI_ASSSSA": [ + [ + "ASSSubtitleReader", + "ASSSubtitleSave", + "FFMpegSettings", + "MultilineTextInput", + "SubtitleEmbedding", + "SubtitleExtraction", + "VideoTranscoding" + ], + { + "title_aux": "ComfyUI-ASSSSA" + } + ], + "https://github.com/HoangYell/comfyui-hoangyell-video": [ + [ + "AddIntroImage" + ], + { + "title_aux": "comfyui-hoangyell-video-edit" + } + ], + "https://github.com/Holasyb918/Ghost2_Comfyui": [ + [ + "AlignPipeline", + "BlenderPipeline", + "FaceAnalysisePipeline", + "FaceParsingPipeline", + "LoadAlignerModel", + "LoadBlenderModel", + "LoadFaceAnalysisModel", + "LoadFaceParsingModel", + "LoadInpainterModel", + "LoadStyleMatteModel" + ], + { + "title_aux": "Ghost2_Comfyui" + } + ], + "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM": [ + [ + "AgentMemoryProvider", + "AgentNode", + "BasicRecursionFilterNode", + "DocumentChunkRecursionFilterNode", + "DocumentProcessor", + "LinuxMemoryDirectory", + "QueryNode" + ], + { + "description": "Nodes for interfacing with LiteLLM", + "nickname": "Tasha", + "title": "ComfyUI_LiteLLM", + "title_aux": "ComfyUI_LiteLLM" + } + ], + "https://github.com/Hullabalo/ComfyUI-Loop": [ + [ + "ImageCropLoop", + "ImageCutLoop", + "ImagePasteLoop", + "LoadImageSimple", + "LoopImageSimple", + "SaveImageSimple" + ], + { + "title_aux": "ComfyUI-Loop" + } + ], + "https://github.com/IDGallagher/ComfyUI-IG-Motion-I2V": [ + [ + "MI2V Flow Animator", + "MI2V Flow Predictor", + "MI2V PauseNode", + "MotionPainter" + ], + { + "author": "IDGallagher", + "description": "Custom nodes to aid in the exploration of Latent Space", + "nickname": "IG Interpolation Nodes", + "title": "IG Interpolation Nodes", + "title_aux": "ComfyUI-IG-Motion-I2V" + } + ], "https://github.com/IDGallagher/ComfyUI-IG-Nodes": [ [ "IG Analyze SSIM", "IG Cross Fade Images", "IG Explorer", "IG Float", + "IG Float List", "IG Folder", + "IG Image Crop", "IG Int", + "IG Interpolate", "IG Load Image", "IG Load Images", + "IG MotionPredictor", "IG Multiply", "IG Path Join", + "IG PointCloud From Cylindrical", + "IG PointCloud From Depth", + "IG Save PLY PointCloud", + "IG Simple Translate Stitcher", + "IG Stitch Depth Tiles", + "IG Stitch Images CV2", "IG String", - "IG ZFill" + "IG String List", + "IG Tile Image", + "IG ZFill", + "SM Video Base", + "SM Video Base Control" ], { "author": "IDGallagher", @@ -1583,15 +6975,166 @@ "title_aux": "IG Interpolation Nodes" } ], - "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes": [ + "https://github.com/IDGallagher/MotionVideoSearch": [ [ - "LoadBatchFromS3", - "LoadFromS3", - "SaveBatchToS3", - "SaveToS3" + "IG Motion Video Frame", + "IG Motion Video Search" ], { - "title_aux": "ikhor-nodes" + "author": "IDGallagher", + "description": "Search an index of videos by motion image", + "nickname": "IG Motion Video Search", + "title": "IG Motion Video Search", + "title_aux": "IG-Motion-Search" + } + ], + "https://github.com/IIEleven11/ComfyUI-FairyTaler": [ + [ + "FairyTalerStoryboard", + "SceneParser", + "SceneToConditioning", + "StoryboardCompositor", + "ThreeSceneGenerator" + ], + { + "author": "Eleven", + "description": "Turn your AI roleplay into AI generated scenes from every response. Visualize what you read!", + "nickname": "ComfyUI FairyTaler", + "title": "ComfyUI FairyTaler Storyboard Nodes", + "title_aux": "ComfyUI-FairyTaler" + } + ], + "https://github.com/IIs-fanta/ComfyUI-FANTA-GameBox": [ + [ + "BilliardsGameNode", + "BrickBreakerNode", + "FlappyBirdNode", + "SnakeGameNode" + ], + { + "title_aux": "ComfyUI-FANTA-GameBox" + } + ], + "https://github.com/INuBq8/ComfyUI-NotificationBridge": [ + [ + "DiscordNotifyNode", + "WhatsAppNotifyNodeTwilio" + ], + { + "title_aux": "Notification Bridge" + } + ], + "https://github.com/ITurchenko/ComfyUI-SizeFromArray": [ + [ + "SizeFromArray" + ], + { + "title_aux": "ComfyUI-SizeFromArray" + } + ], + "https://github.com/IamCreateAI/Ruyi-Models": [ + [ + "Ruyi_EnhanceAVideo", + "Ruyi_I2VSampler", + "Ruyi_LoadLora", + "Ruyi_LoadModel", + "Ruyi_TeaCache" + ], + { + "title_aux": "ComfyUI-Ruyi" + } + ], + "https://github.com/IcelandicCenterArtificialIntelligence/ComfyUI-SamplerSchedulerMetricsTester": [ + [ + "SamplerSchedulerMetricsTester" + ], + { + "title_aux": "Sampler Scheduler Metrics Tester for ComfyUI" + } + ], + "https://github.com/Icyman86/ComfyUI_AnimeCharacterSelect": [ + [ + "ActionPromptNode", + "CharacterPromptNode", + "CombinePromptStringsNode", + "EnhancedCharacterPromptNode", + "MinimalCharacterActionPrompt" + ], + { + "title_aux": "ComfyUI_AnimeCharacterSelect" + } + ], + "https://github.com/IgalOgonov/ComfyUI_Simple_String_Repository": [ + [ + "SimpleStringRepository", + "SimpleStringRepositoryCompact", + "SimpleStringRepositoryLarge", + "SimpleStringRepositoryLargeCompact", + "SimpleStringRepositorySmall", + "SimpleStringRepositorySmallCompact" + ], + { + "title_aux": "Simple String Repository" + } + ], + "https://github.com/ImagineerNL/ComfyUI-IMGNR-Utils": [ + [ + "CatchEditTextNode", + "PreviewImageBase64Node" + ], + { + "title_aux": "ComfyUI-IMGNR-Utils" + } + ], + "https://github.com/ImagineerNL/ComfyUI-ToSVG-Potracer": [ + [ + "PotracerVectorize", + "SaveAsSVG Potracer (Temporary Fix)" + ], + { + "title_aux": "ComfyUI-ToSVG-Potracer" + } + ], + "https://github.com/Immac/ComfyUI-CoreVideoMocks": [ + [ + "CoreVideoMocks:AV1Codec", + "CoreVideoMocks:BatchAudioStreams", + "CoreVideoMocks:BatchSubtitlesStreams", + "CoreVideoMocks:BatchVideoStreams", + "CoreVideoMocks:CodecFromVideoStream", + "CoreVideoMocks:CombineVideo", + "CoreVideoMocks:DecodeVideoStream", + "CoreVideoMocks:EncodeVideoStream", + "CoreVideoMocks:GetAudioStream", + "CoreVideoMocks:GetSubtitleStream", + "CoreVideoMocks:GetVideoStream", + "CoreVideoMocks:LoadVideo", + "CoreVideoMocks:PreviewVideo", + "CoreVideoMocks:SaveVideo", + "CoreVideoMocks:SplitVideo", + "CoreVideoMocks:VP9Codec", + "CoreVideoMocks:VideoStreamData" + ], + { + "title_aux": "ComfyUI Core Video Nodes" + } + ], + "https://github.com/ImmortalPie/ComfyUI-PonySwitch": [ + [ + "PonySwitch" + ], + { + "title_aux": "PonySwitch Node" + } + ], + "https://github.com/InstantStudioAI/ComfyUI-InstantStudio": [ + [ + "HuggingFace Classify", + "Moondream", + "UploadImagesToInstantStudio" + ], + { + "title_aux": "ComfyUI-InstantStudio" } ], "https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes": [ @@ -1639,6 +7182,15 @@ "title_aux": "Ranbooru for ComfyUI" } ], + "https://github.com/Irsalistic/comfyui-dam-object-extractor": [ + [ + "DAMObjectNameNode", + "DAMVisualizeNode" + ], + { + "title_aux": "ComfyUI DAM Object Extractor" + } + ], "https://github.com/IsItDanOrAi/ComfyUI-Stereopsis": [ [ "Dan_FrameDelay", @@ -1648,8 +7200,187 @@ "title_aux": "ComfyUI-Stereopsis" } ], + "https://github.com/IsItDanOrAi/ComfyUI-exLoadout": [ + [ + "dropdowns", + "exCheckpointLoader", + "exLoadoutCheckpointLoader", + "exLoadoutEditCell", + "exLoadoutReadColumn", + "exLoadoutSeg", + "exLoadoutSeg2", + "exLoadoutSelector", + "exSeg", + "exSeg2" + ], + { + "title_aux": "exLoadout: Excel-Based Model & Settings Loader" + } + ], + "https://github.com/Isi-dev/ComfyUI-Animation_Nodes_and_Workflows": [ + [ + "CLIPTextEncodeStyles", + "JoinVideos", + "MakeDrivingVideoForLivePortrait", + "MakePortraitWalk", + "MoveInOrOut", + "MoveLeftOrRight", + "MoveUpOrDown", + "Replace_Img_or_Vid_Bg_Assistant" + ], + { + "title_aux": "ComfyUI-Animation_Nodes_and_Workflows" + } + ], + "https://github.com/Isi-dev/ComfyUI-Img2DrawingAssistants": [ + [ + "LineArt_Assistant", + "LineArt_Assistant_2", + "Sketch_Assistant", + "Sketch_Assistant_grayScale" + ], + { + "title_aux": "ComfyUI-Img2DrawingAssistants" + } + ], + "https://github.com/Isi-dev/ComfyUI-Img2PaintingAssistant": [ + [ + "Painting", + "ProcessInspyrenetRembg" + ], + { + "title_aux": "Image to Painting and Inspyrenet Assistant Nodes" + } + ], + "https://github.com/Isi-dev/ComfyUI-UniAnimate-W": [ + [ + "Animate_X_Image", + "Animate_X_Image_Long", + "Animate_X_Image_v2", + "Animate_X_ReposeImage", + "Animate_X_ReposeImage_v2", + "Gen_align_pose", + "Gen_align_pose2", + "ReposeImage", + "UniAnimateImage", + "UniAnimateImageLong" + ], + { + "title_aux": "ComfyUI-UniAnimate-W" + } + ], + "https://github.com/Isi-dev/ComfyUI_DeleteModelPassthrough": [ + [ + "ControlledControlNetLoader", + "ControlledUnetLoaderGGUF", + "ControlledVAELoader", + "DeleteModelPassthrough" + ], + { + "title_aux": "ComfyUI_DeleteModelPassthrough" + } + ], + "https://github.com/Isulion/ComfyUI_Isulion": [ + [ + "CustomTextNode", + "CustomTextNode \u2328\ufe0f", + "DisplayImageFromURL", + "IsuCollage_Node", + "Isulion Civitai Image Display", + "Isulion Civitai Model Explorer", + "Isulion Civitai Trending", + "IsulionActionGenerator", + "IsulionAlienWorldGenerator", + "IsulionAnimalBehaviorGenerator", + "IsulionAnimalRandom", + "IsulionArtStyleGenerator", + "IsulionArtifactGenerator", + "IsulionCivitaiImageDisplay", + "IsulionCivitaiModelExplorer", + "IsulionCivitaiTrending", + "IsulionClothingGenerator", + "IsulionCuteAnimalRandom", + "IsulionEmotionGenerator", + "IsulionEpochGenerator", + "IsulionFantasyRaceGenerator", + "IsulionHabitatGenerator", + "IsulionLoadImagesNode", + "IsulionMagicalEffectGenerator", + "IsulionMegaPromptV3", + "IsulionMultiplePromptGenerator", + "IsulionMythicalLocationGenerator", + "IsulionNegativePromptGenerator", + "IsulionProfessionGenerator", + "IsulionPromptEnhancer", + "IsulionSceneComposition", + "IsulionSpacecraftGenerator", + "IsulionStyleMixer", + "IsulionTechGenerator", + "IsulionTimeOfDayGenerator", + "IsulionVideoPromptGenerator", + "IsulionWeatherGenerator", + "\u29c9 IsulionOverlay", + "\ud83d\udca4 IsulionShutdown", + "\ud83e\udde9 IsulionQRCode" + ], + { + "title_aux": "ComfyUI_Isulion Random Prompt Generator" + } + ], + "https://github.com/IuvenisSapiens/ComfyUI_MiniCPM-V-4": [ + [ + "DisplayText", + "MiniCPM_VQA", + "MiniCPM_VQA_Polished", + "MultipleImagesInput" + ], + { + "title_aux": "ComfyUI_MiniCPM-V-4" + } + ], + "https://github.com/IuvenisSapiens/ComfyUI_Qwen2-Audio-7B-Instruct-Int4": [ + [ + "AudioLoader", + "AudioPreviewer", + "Qwen2_AQA" + ], + { + "title_aux": "ComfyUI_Qwen2-Audio-7B-Instruct-Int4" + } + ], + "https://github.com/IuvenisSapiens/ComfyUI_Qwen2_5-VL-Instruct": [ + [ + "ImageLoader", + "MultiplePathsInput", + "Qwen2_VQA", + "VideoLoader" + ], + { + "title_aux": "ComfyUI_Qwen2-VL-Instruct" + } + ], + "https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes": [ + [ + "DictBus", + "DictBusEdit", + "DictBusUnpack", + "DictMultilineSelect", + "DictTemplate", + "DictUpdate1", + "DictUpdate10", + "DictUpdate5", + "LoraPresetListLoader", + "LoraPresetLoader", + "LoraPresetSaver", + "LoraPresetSelector" + ], + { + "title_aux": "ComfyUI_Eugene_Nodes" + } + ], "https://github.com/JPS-GER/ComfyUI_JPS-Nodes": [ [ + "CLIPTextEncode SDXL Plus (JPS)", "Conditioning Switch (JPS)", "ControlNet Switch (JPS)", "Crop Image Pipe (JPS)", @@ -1671,13 +7402,23 @@ "Get Image Size (JPS)", "IP Adapter Settings (JPS)", "IP Adapter Settings Pipe (JPS)", - "IP Adapter Single Settings (JPS)", - "IP Adapter Single Settings Pipe (JPS)", + "IP Adapter Tiled Settings (JPS)", + "IP Adapter Tiled Settings Pipe (JPS)", "IPA Switch (JPS)", + "Image Prepare Pipe (JPS)", + "Image Prepare Settings (JPS)", "Image Switch (JPS)", "ImageToImage Pipe (JPS)", "ImageToImage Settings (JPS)", "Images Masks MultiPipe (JPS)", + "InstantID Mask Prepare Pipe (JPS)", + "InstantID Mask Prepare Settings (JPS)", + "InstantID Pipe (JPS)", + "InstantID Pose Prepare Pipe (JPS)", + "InstantID Pose Prepare Settings (JPS)", + "InstantID Settings (JPS)", + "InstantID Source Prepare Pipe (JPS)", + "InstantID Source Prepare Settings (JPS)", "Integer Switch (JPS)", "Largest Int (JPS)", "Latent Switch (JPS)", @@ -1687,6 +7428,9 @@ "Multiply Float Float (JPS)", "Multiply Int Float (JPS)", "Multiply Int Int (JPS)", + "Prepare Image (JPS)", + "Prepare Image Plus (JPS)", + "Prepare Image Tiled IPA (JPS)", "Resolution Multiply (JPS)", "Revision Settings (JPS)", "Revision Settings Pipe (JPS)", @@ -1698,11 +7442,15 @@ "SDXL Prompt Styler (JPS)", "SDXL Recommended Resolution Calc (JPS)", "SDXL Resolutions (JPS)", + "SDXL Settings (JPS)", + "SDXL Settings Pipe (JPS)", "Sampler Scheduler Settings (JPS)", "Save Images Plus (JPS)", "Substract Int Int (JPS)", "Text Concatenate (JPS)", "Text Prompt (JPS)", + "Text Prompt Combo (JPS)", + "Time Seed (JPS)", "VAE Switch (JPS)" ], { @@ -1713,6 +7461,66 @@ "title_aux": "JPS Custom Nodes for ComfyUI" } ], + "https://github.com/JPrevots/ComfyUI-PhyCV": [ + [ + "PAGE", + "PST", + "VEVID" + ], + { + "title_aux": "ComfyUI-PhyCV" + } + ], + "https://github.com/JTriggerFish/ComfyLatentTools": [ + [ + "DownsampledAttentionGuidance", + "DownsampledLatentGuidance", + "GenericAttentionGuidance", + "LatentNormalizedLanczosResize" + ], + { + "title_aux": "Comfy Latent Tools" + } + ], + "https://github.com/JackEllie/ComfyUI_AI_Assistant": [ + [ + "apply_lighting_effects", + "clean_prompt_tags", + "noline_process", + "prompt_blacklist", + "prompt_sorting", + "resize_image_sdxl_ratio" + ], + { + "title_aux": "ComfyUI-AI-Assistant" + } + ], + "https://github.com/Jacky-MYQ/comfyui-DataCleaning": [ + [ + "CleanData" + ], + { + "title_aux": "comfyui-DataCleaning" + } + ], + "https://github.com/Jacky-MYQ/comfyui-rgb2cmyk": [ + [ + "RGB2CMYK" + ], + { + "title_aux": "RGB to CMYK for ComfyUI (Save as tif)" + } + ], + "https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node": [ + [ + "RandomIntegerNodeEfficient", + "RandomIntegerNodeEfficientAdvanced", + "RandomIntegerNodeList" + ], + { + "title_aux": "ComfyUI-Random-Int-Divisor-Node" + } + ], "https://github.com/Jannchie/ComfyUI-J": [ [ "DiffusersCompelPromptEmbedding", @@ -1732,21 +7540,56 @@ "title_aux": "ComfyUI-J" } ], + "https://github.com/Jannled/owl-vit-comfyui": [ + [ + "OWL_BBox_Visualizer", + "OWL_Load_Model", + "OWL_Objectness_Inference" + ], + { + "title_aux": "OWL-ViT ComfyUI" + } + ], + "https://github.com/Jarcis-cy/ComfyUI-HunyuanVideoFoley": [ + [ + "HunyuanVideoFoleyGenerateAudio", + "VideoAudioMerger" + ], + { + "title_aux": "HunyuanVideo-Foley Audio Generator" + } + ], "https://github.com/JaredTherriault/ComfyUI-JNodes": [ [ "JNodes_AddOrSetMetaDataKey", "JNodes_AnyToString", "JNodes_AppendReversedFrames", + "JNodes_AudioInputOptions", "JNodes_BooleanSelectorWithString", + "JNodes_BreakMediaInfo", "JNodes_CheckpointSelectorWithString", + "JNodes_ConditioningInOut", + "JNodes_CreateStereoscopicImageFromDepth", + "JNodes_DiffusionModelSelector", + "JNodes_FloatLiteral", + "JNodes_GetCleanFilename", + "JNodes_GetComfyDirectory", + "JNodes_GetLeafDirectory", "JNodes_GetOutputDirectory", "JNodes_GetParameterFromList", "JNodes_GetParameterGlobal", "JNodes_GetTempDirectory", "JNodes_ImageFormatSelector", "JNodes_ImageSizeSelector", + "JNodes_IntLiteral", + "JNodes_JoinVideosInDirectory", "JNodes_LoadVideo", + "JNodes_LoadVisualMediaFromPath", + "JNodes_LoadVisualMediaFromPath_Batch", + "JNodes_LoadVisualMediaFromPath_List", "JNodes_LoraExtractor", + "JNodes_MediaInfoToString", + "JNodes_ModelInOut", "JNodes_OutVideoInfo", "JNodes_ParseDynamicPrompts", "JNodes_ParseParametersToGlobalList", @@ -1758,24 +7601,38 @@ "JNodes_SamplerSelectorWithString", "JNodes_SaveImageWithOutput", "JNodes_SaveVideo", + "JNodes_SaveVideoWithOptions", "JNodes_SchedulerSelectorWithString", "JNodes_SearchAndReplace", "JNodes_SearchAndReplaceFromFile", "JNodes_SearchAndReplaceFromList", + "JNodes_SelectRandomFileFromDirectory", + "JNodes_SeparateStringByDelimiters", + "JNodes_SetMetadataA1111", "JNodes_SetNegativePromptInMetaData", "JNodes_SetPositivePromptInMetaData", "JNodes_SplitAndJoin", "JNodes_StringLiteral", + "JNodes_SubdirectorySelector", "JNodes_SyncedStringLiteral", "JNodes_TokenCounter", "JNodes_TrimAndStrip", "JNodes_UploadVideo", + "JNodes_UploadVisualMedia", "JNodes_VaeSelectorWithString" ], { "title_aux": "ComfyUI-JNodes" } ], + "https://github.com/Jash-Vora/ComfyUI-GarmentDiT": [ + [ + "GarmentEnhancementNode" + ], + { + "title_aux": "FitDiT" + } + ], "https://github.com/JcandZero/ComfyUI_GLM4Node": [ [ "GLM3_turbo_CHAT", @@ -1794,6 +7651,14 @@ "title_aux": "Rembg Background Removal Node for ComfyUI" } ], + "https://github.com/Jelosus2/comfyui-vae-reflection": [ + [ + "AddReflectionToVAE" + ], + { + "title_aux": "ComfyUI VAE Reflection" + } + ], "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": [ [ "JOJR_RandomSize" @@ -1806,14 +7671,106 @@ "title_aux": "Random Size" } ], + "https://github.com/JettHu/ComfyUI-TCD": [ + [ + "TCDModelSamplingDiscrete" + ], + { + "title_aux": "ComfyUI-TCD" + } + ], "https://github.com/JettHu/ComfyUI_TGate": [ [ - "TGateApply" + "TGateApply", + "TGateApplyAdvanced", + "TGateApplySimple" ], { "title_aux": "ComfyUI_TGate" } ], + "https://github.com/JiSenHua/ComfyUI-TD": [ + [ + "Comfy3DPacktoTD", + "Hy3DtoTD", + "ImagetoTD", + "ImagetoTD(JPEG)", + "LoadTDImage", + "Tripo3DtoTD", + "TripoSRtoTD", + "VideotoTD" + ], + { + "title_aux": "ComfyUI-TD" + } + ], + "https://github.com/Jint8888/Comfyui_JTnodes": [ + [ + "JT Find Text From Excel", + "JT Read From Excel", + "JTBrightness", + "JTImagesavetopath", + "JTSaveTextToExcel", + "JTSaveTextToFile", + "JTcounter", + "SiliconflowFree" + ], + { + "title_aux": "Comfyui_JTnodes" + } + ], + "https://github.com/JoeNavark/comfyui_custom_sigma_editor": [ + [ + "CustomSplineSigma", + "SigmaJoiner" + ], + { + "title_aux": "Custom Graph Sigma for ComfyUI" + } + ], + "https://github.com/JohanK66/ComfyUI-WebhookImage": [ + [ + "Notif-Webhook" + ], + { + "title_aux": "ComfyUI WebhookImage" + } + ], + "https://github.com/JohnDoeSmithee/ComfyUI-SoX-Mixdown": [ + [ + "SoxMixNode" + ], + { + "title_aux": "ComfyUI-SoX-Mixdown" + } + ], + "https://github.com/Jokimbe/ComfyUI-DrawThings-gRPC": [ + [ + "DrawThingsControlNet", + "DrawThingsHints", + "DrawThingsLoRA", + "DrawThingsNegative", + "DrawThingsPositive", + "DrawThingsPrompt", + "DrawThingsRefiner", + "DrawThingsSampler", + "DrawThingsUpscaler" + ], + { + "title_aux": "ComfyUI-DrawThings-gRPC" + } + ], + "https://github.com/Jonseed/ComfyUI-Detail-Daemon": [ + [ + "DetailDaemonGraphSigmasNode", + "DetailDaemonSamplerNode", + "LyingSigmaSampler", + "MultiplySigmas" + ], + { + "title_aux": "ComfyUI-Detail-Daemon" + } + ], "https://github.com/Jordach/comfy-plasma": [ [ "JDC_AutoContrast", @@ -1837,12 +7794,207 @@ "title_aux": "comfy-plasma" } ], - "https://github.com/Kaharos94/ComfyUI-Saveaswebp": [ + "https://github.com/JosefKuchar/ComfyUI-AdvancedTiling": [ [ - "Save_as_webp" + "AdvancedTiling", + "AdvancedTilingSettings", + "AdvancedTilingVAEDecode" ], { - "title_aux": "ComfyUI-Saveaswebp" + "title_aux": "ComfyUI-AdvancedTiling" + } + ], + "https://github.com/JosephThomasParker/ComfyUI-DrawThingsWrapper": [ + [ + "DrawThingsGenerateFromPipeline", + "DrawThingsImg2Img", + "DrawThingsImg2ImgPipeline", + "DrawThingsPipelineAddControl", + "DrawThingsPipelineAddCustom", + "DrawThingsPipelineAddLora", + "DrawThingsTxt2Img", + "DrawThingsTxt2ImgPipeline" + ], + { + "title_aux": "ComfyUI-DrawThingsWrapper" + } + ], + "https://github.com/Julian-adv/WildDivide": [ + [ + "Attention couple wild divide", + "Comfy Divide", + "WildPromptGenerator", + "WildcardDivide", + "WildcardEncode" + ], + { + "author": "Julian Adventurer.", + "description": "This node is used to encode a wildcard string.", + "nickname": "WildDivide", + "title": "Wild Divide", + "title_aux": "Wild Divide" + } + ], + "https://github.com/JustLateNightAI/KeywordImageBlocker": [ + [ + "TagKeywordBlocker" + ], + { + "title_aux": "KeywordImageBlocker" + } + ], + "https://github.com/Juste-Leo2/Canary-ComfyUI": [ + [ + "Canary180mFlashASRNode", + "Canary180mFlashTranslateFromENNode", + "Canary180mFlashTranslateToENNode", + "CanaryASRNode", + "CanaryFlashASRNode", + "CanaryFlashTranslateFromENNode", + "CanaryFlashTranslateToENNode", + "CanaryModelLoader", + "CanaryTranslateFromENNode", + "CanaryTranslateToENNode" + ], + { + "title_aux": "Canary-ComfyUI" + } + ], + "https://github.com/Juste-Leo2/USO_ComfyUI": [ + [ + "USOLoader", + "USOSampler" + ], + { + "title_aux": "USO Nodes for ComfyUI" + } + ], + "https://github.com/JustinMatters/comfyUI-JMNodes": [ + [ + "JMBinaryNot", + "JMIntegerToBooleans", + "JMNumberList", + "JMSWitchablePrompt" + ], + { + "title_aux": "ComfyUI JMNodes" + } + ], + "https://github.com/KAVVATARE/ComfyUI-Light-N-Color": [ + [ + "ControlNetSwitch", + "FluxLightingAndColor", + "FluxSamplerPuLID", + "ImageSwitch", + "LatentSwitch", + "LoadInputOutputImage" + ], + { + "title_aux": " ComfyUI-Light-N-Color" + } + ], + "https://github.com/KAVVATARE/ComfyUI_RightEyeDisparity": [ + [ + "RightEyeImageNode", + "VideoRightEyeNode" + ], + { + "title_aux": "RightEyeDisparity" + } + ], + "https://github.com/KERRY-YUAN/ComfyUI_Float_Animator": [ + [ + "Float_Animator" + ], + { + "title_aux": "ComfyUI_Float_Animator" + } + ], + "https://github.com/KERRY-YUAN/ComfyUI_Simple_Executor": [ + [ + "NodeAutoSampler", + "NodeImagePre", + "NodeImageResize" + ], + { + "title_aux": "NodeSimpleExecutor" + } + ], + "https://github.com/KERRY-YUAN/ComfyUI_Spark_TTS": [ + [ + "Spark_TTS_Clone", + "Spark_TTS_Creation" + ], + { + "title_aux": "ComfyUI_Spark_TTS" + } + ], + "https://github.com/KLL535/ComfyUI_SimpleButcher": [ + [ + "Simple Auto Bypass", + "Simple Extract Lora From Text", + "Simple Image Saver (as Forge)", + "Simple Load Image With Metadata", + "Simple Load Images from Dir", + "Simple Load Line From Text File", + "Simple Lora Loader", + "Simple Remove Think" + ], + { + "title_aux": "ComfyUI_SimpleButcher" + } + ], + "https://github.com/KY-2000/ComfyUI_PuLID_Flux_ll_FaceNet": [ + [ + "ApplyPulidFlux", + "FixPulidFluxPatch", + "PulidFluxEvaClipLoader", + "PulidFluxFaceDetector", + "PulidFluxFaceNetLoader", + "PulidFluxInsightFaceLoader", + "PulidFluxModelLoader", + "PulidFluxOptions" + ], + { + "title_aux": "ComfyUI_PuLID_Flux_ll_FaceNet" + } + ], + "https://github.com/KY-2000/RES4LYF-tester-loop": [ + [ + "DoubleFloatRangeLoop", + "DoubleIntRangeLoop", + "RES4LYFComboLoop", + "RES4LYFSamplerLoop", + "RES4LYFSchedulerLoop", + "SingleFloatLoop", + "SingleIntLoop" + ], + { + "title_aux": "RES4LYF-tester-loop" + } + ], + "https://github.com/KY-2000/comfyui-ksampler-tester-loop": [ + [ + "AllParametersLoop", + "AllParametersLoopAdvanced", + "FloatRangeLoop", + "ParametersRangeLoop", + "SamplerLoop", + "SamplerLoopAdvanced", + "SamplerSchedulerLoop", + "SamplerSchedulerLoopAdvanced", + "SchedulerLoop" + ], + { + "title_aux": "comfyui-ksampler-tester-loop" + } + ], + "https://github.com/KY-2000/comfyui-save-image-enhanced": [ + [ + "SaveImageEnhancedNode" + ], + { + "title_aux": "comfyui-save-image-enhanced" } ], "https://github.com/Kangkang625/ComfyUI-paint-by-example": [ @@ -1854,19 +8006,166 @@ "title_aux": "ComfyUI-Paint-by-Example" } ], + "https://github.com/KarmaSwint/ComfyUI-KarmaNodes": [ + [ + "Karma-Film-Grain", + "Karma-KSampler-Cycle", + "Karma-Kolors", + "Karma_Film_Grain", + "Karma_Kolors" + ], + { + "title_aux": "KarmaNodes" + } + ], + "https://github.com/Kayarte/AudioDriven-Latent-Space-Tools-for-ComfyUI": [ + [ + "AdvancedNoisePatterns", + "AudioNoiseMapper", + "LibrosaAnalysisNode", + "NoiseToLatentConverter" + ], + { + "title_aux": "AudioDriven-Latent-Space-Tools-for-ComfyUI" + } + ], + "https://github.com/Kayarte/GeoNodes/raw/refs/heads/main/GISDetectionNode.py": [ + [ + "GISDetectionNode" + ], + { + "title_aux": "GeoNodes" + } + ], + "https://github.com/Kesin11/ComfyUI-list-filter": [ + [ + "list_filter_FilterImageListByIndexList", + "list_filter_FilterStringListByIndexList", + "list_filter_FindAnyStrings", + "list_filter_FindNotAnyStrings", + "list_filter_StringToIndex", + "random_normal_dist" + ], + { + "title_aux": "ComfyUI-list-filter" + } + ], + "https://github.com/KewkLW/ComfyUI-kewky_tools": [ + [ + "CLIPInterrogator", + "FormattedPromptNode", + "ImageBatcher", + "LoadImagePlus", + "LoadVideoPlus", + "TensorDebugPlus", + "TextAppendNode", + "TextSearchNode", + "VRAM_Debug_Plus" + ], + { + "title_aux": "ComfyUI-kewky_tools" + } + ], + "https://github.com/Kidev/ComfyUI-Fisheye-effects": [ + [ + "Defisheye", + "Fisheye" + ], + { + "title_aux": "ComfyUI Fisheye Effects Nodes" + } + ], + "https://github.com/KohakuBlueleaf/HDM-ext": [ + [ + "HDMCameraParam", + "HDMLoader", + "HDMTreadGamma" + ], + { + "title_aux": "HDM-ext" + } + ], + "https://github.com/KohakuBlueleaf/z-tipo-extension": [ + [ + "TIPO", + "TIPOFormat", + "TIPOOperation" + ], + { + "title_aux": "TIPO-extension" + } + ], + "https://github.com/KoreTeknology/ComfyUI-Nai-Production-Nodes-Pack": [ + [ + "Brightness Image", + "ColorMatch2", + "Contrast Image", + "Get Text", + "Image Difference", + "ImageConcatenate", + "ImageDesaturate", + "ImageExtend", + "ImageFlip", + "ImageRotate", + "LoadImageNai", + "Math Operation", + "NoteAdvanced", + "Set Text" + ], + { + "title_aux": "ComfyUI Production Nodes Pack" + } + ], + "https://github.com/KoreTeknology/ComfyUI-Universal-Styler": [ + [ + "\ud83d\udee1\ufe0f Load Scripts from Database", + "\ud83d\udee1\ufe0f Save Script to Database (In progress)", + "\ud83d\udee1\ufe0f Set Main Channel" + ], + { + "title_aux": "ComfyUI Universal Styler" + } + ], + "https://github.com/Koren-cy/FlowCV": [ + [ + "Example" + ], + { + "title_aux": "FlowCV" + } + ], "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": [ [ "ACN_AdvancedControlNetApply", + "ACN_AdvancedControlNetApplySingle", + "ACN_AdvancedControlNetApplySingle_v2", + "ACN_AdvancedControlNetApply_v2", + "ACN_ControlNet++InputNode", + "ACN_ControlNet++LoaderAdvanced", + "ACN_ControlNet++LoaderSingle", + "ACN_ControlNetLoaderAdvanced", "ACN_ControlNetLoaderWithLoraAdvanced", + "ACN_CtrLoRALoader", + "ACN_CustomControlNetWeightsFlux", + "ACN_CustomControlNetWeightsSD15", + "ACN_CustomT2IAdapterWeights", "ACN_DefaultUniversalWeights", + "ACN_DiffControlNetLoaderAdvanced", + "ACN_ExtrasMiddleMult", "ACN_ReferenceControlNet", "ACN_ReferenceControlNetFinetune", "ACN_ReferencePreprocessor", + "ACN_ScaledSoftControlNetWeights", + "ACN_SoftControlNetWeightsSD15", + "ACN_SoftT2IAdapterWeights", "ACN_SparseCtrlIndexMethodNode", "ACN_SparseCtrlLoaderAdvanced", "ACN_SparseCtrlMergedLoaderAdvanced", "ACN_SparseCtrlRGBPreprocessor", "ACN_SparseCtrlSpreadMethodNode", + "ACN_SparseCtrlWeightExtras", + "ACN_TimestepKeyframeFromStrengthList", + "ACN_TimestepKeyframeInterpolation", "ControlNetLoaderAdvanced", "CustomControlNetWeights", "CustomT2IAdapterWeights", @@ -1897,6 +8196,7 @@ "ADE_AdjustWeightIndivAttnAdd", "ADE_AdjustWeightIndivAttnMult", "ADE_AdjustWeightIndivMult", + "ADE_AncestralOptions", "ADE_AnimateDiffCombine", "ADE_AnimateDiffKeyframe", "ADE_AnimateDiffLoRALoader", @@ -1913,36 +8213,108 @@ "ADE_AnimateDiffUnload", "ADE_ApplyAnimateDiffModel", "ADE_ApplyAnimateDiffModelSimple", + "ADE_ApplyAnimateDiffModelWithCameraCtrl", + "ADE_ApplyAnimateDiffModelWithPIA", "ADE_ApplyAnimateLCMI2VModel", + "ADE_AttachLoraHookToCLIP", + "ADE_AttachLoraHookToConditioning", "ADE_BatchedContextOptions", + "ADE_CFGExtrasPAG", + "ADE_CFGExtrasPAGSimple", + "ADE_CFGExtrasRescaleCFG", + "ADE_CFGExtrasRescaleCFGSimple", + "ADE_CameraCtrlAnimateDiffKeyframe", + "ADE_CameraManualPoseAppend", + "ADE_CameraPoseAdvanced", + "ADE_CameraPoseBasic", + "ADE_CameraPoseCombo", + "ADE_CombineLoraHooks", + "ADE_CombineLoraHooksEight", + "ADE_CombineLoraHooksFour", + "ADE_ConditioningCombine", + "ADE_ConditioningSetMask", + "ADE_ConditioningSetMaskAndCombine", + "ADE_ConditioningSetUnmaskedAndCombine", + "ADE_ContextExtras_ContextRef", + "ADE_ContextExtras_ContextRef_Keyframe", + "ADE_ContextExtras_ContextRef_KeyframeFromList", + "ADE_ContextExtras_ContextRef_KeyframeInterpolation", + "ADE_ContextExtras_ContextRef_ModeFirst", + "ADE_ContextExtras_ContextRef_ModeIndexes", + "ADE_ContextExtras_ContextRef_ModeSliding", + "ADE_ContextExtras_ContextRef_TuneAttn", + "ADE_ContextExtras_ContextRef_TuneAttnAdain", + "ADE_ContextExtras_NaiveReuse", + "ADE_ContextExtras_NaiveReuse_Keyframe", + "ADE_ContextExtras_NaiveReuse_KeyframeFromList", + "ADE_ContextExtras_NaiveReuse_KeyframeInterpolation", + "ADE_ContextExtras_Set", "ADE_CustomCFG", "ADE_CustomCFGKeyframe", + "ADE_CustomCFGKeyframeFromList", + "ADE_CustomCFGKeyframeInterpolation", + "ADE_CustomCFGKeyframeSimple", + "ADE_CustomCFGSimple", "ADE_EmptyLatentImageLarge", "ADE_InjectI2VIntoAnimateDiffModel", + "ADE_InjectPIAIntoAnimateDiffModel", + "ADE_InputPIA_Multival", + "ADE_InputPIA_PaperPresets", "ADE_IterationOptsDefault", "ADE_IterationOptsFreeInit", "ADE_LoadAnimateDiffModel", + "ADE_LoadAnimateDiffModelWithCameraCtrl", "ADE_LoadAnimateLCMI2VModel", + "ADE_LoadCameraPoses", + "ADE_LoadCameraPosesFromPath", "ADE_LoopedUniformContextOptions", "ADE_LoopedUniformViewOptions", - "ADE_MaskedLoadLora", + "ADE_LoraHookKeyframe", + "ADE_LoraHookKeyframeFromStrengthList", + "ADE_LoraHookKeyframeInterpolation", + "ADE_MultivalConvertToMask", "ADE_MultivalDynamic", + "ADE_MultivalDynamicFloatInput", + "ADE_MultivalDynamicFloats", "ADE_MultivalScaledMask", + "ADE_NoiseCalibration", "ADE_NoiseLayerAdd", "ADE_NoiseLayerAddWeighted", + "ADE_NoiseLayerNormalizedSum", "ADE_NoiseLayerReplace", + "ADE_NoisedImageInjectOptions", + "ADE_NoisedImageInjection", + "ADE_PIA_AnimateDiffKeyframe", + "ADE_PairedConditioningCombine", + "ADE_PairedConditioningSetMask", + "ADE_PairedConditioningSetMaskAndCombine", + "ADE_PairedConditioningSetUnmaskedAndCombine", + "ADE_PerturbedAttentionGuidanceMultival", "ADE_RawSigmaSchedule", + "ADE_RegisterLoraHook", + "ADE_RegisterLoraHookModelOnly", + "ADE_RegisterModelAsLoraHook", + "ADE_RegisterModelAsLoraHookModelOnly", + "ADE_ReplaceCameraParameters", + "ADE_ReplaceOriginalPoseAspectRatio", + "ADE_RescaleCFGMultival", + "ADE_SetLoraHookKeyframe", "ADE_SigmaSchedule", "ADE_SigmaScheduleSplitAndCombine", + "ADE_SigmaScheduleToSigmas", "ADE_SigmaScheduleWeightedAverage", "ADE_SigmaScheduleWeightedAverageInterp", "ADE_StandardStaticContextOptions", "ADE_StandardStaticViewOptions", "ADE_StandardUniformContextOptions", "ADE_StandardUniformViewOptions", + "ADE_TimestepsConditioning", "ADE_UpscaleAndVAEEncode", "ADE_UseEvolvedSampling", "ADE_ViewsOnlyContextOptions", + "ADE_VisualizeContextOptionsK", + "ADE_VisualizeContextOptionsKAdv", + "ADE_VisualizeContextOptionsSCustom", "AnimateDiffLoaderV1", "CheckpointLoaderSimpleWithNoiseSelect" ], @@ -1952,6 +8324,7 @@ ], "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite": [ [ + "VHS_AudioToVHSAudio", "VHS_BatchManager", "VHS_DuplicateImages", "VHS_DuplicateLatents", @@ -1961,9 +8334,12 @@ "VHS_GetMaskCount", "VHS_LoadAudio", "VHS_LoadAudioUpload", + "VHS_LoadImagePath", "VHS_LoadImages", "VHS_LoadImagesPath", "VHS_LoadVideo", + "VHS_LoadVideoFFmpeg", + "VHS_LoadVideoFFmpegPath", "VHS_LoadVideoPath", "VHS_MergeImages", "VHS_MergeLatents", @@ -1972,11 +8348,18 @@ "VHS_SelectEveryNthImage", "VHS_SelectEveryNthLatent", "VHS_SelectEveryNthMask", + "VHS_SelectFilename", + "VHS_SelectImages", + "VHS_SelectLatents", + "VHS_SelectLatest", + "VHS_SelectMasks", "VHS_SplitImages", "VHS_SplitLatents", "VHS_SplitMasks", + "VHS_Unbatch", "VHS_VAEDecodeBatched", "VHS_VAEEncodeBatched", + "VHS_VHSAudioToAudio", "VHS_VideoCombine", "VHS_VideoInfo", "VHS_VideoInfoLoaded", @@ -1986,6 +8369,61 @@ "title_aux": "ComfyUI-VideoHelperSuite" } ], + "https://github.com/Koushakur/ComfyUI-DenoiseChooser": [ + [ + "DenoiseChooser|Koushakur" + ], + { + "title_aux": "ComfyUI-DenoiseChooser" + } + ], + "https://github.com/KunmyonChoi/ComfyUI_S3_direct": [ + [ + "Direct Load Image From S3", + "Direct Save Image To S3", + "Save VHS Video to S3" + ], + { + "title_aux": "ComfyUI_S3_direct" + } + ], + "https://github.com/Kurdknight/Kurdknight_comfycheck": [ + [ + "SystemCheck", + "SystemViz" + ], + { + "title_aux": "KurdKnight ComfyUI System Check Node" + } + ], + "https://github.com/KwaiVGI/ComfyUI-KLingAI-API": [ + [ + "Client", + "Effects", + "Image Generator", + "Image2Video", + "KLingAI Preview Video", + "Lip Sync", + "Lip Sync Audio Input", + "Lip Sync Text Input", + "Text2Video", + "Video Extend", + "Virtual Try On" + ], + { + "title_aux": "ComfyUI-KLingAI-API" + } + ], + "https://github.com/Ky11le/draw_tools": [ + [ + "DetectInnerBox", + "PasteIntoFrame", + "TextBoxAutoWrap" + ], + { + "title_aux": "draw_tools" + } + ], "https://github.com/KytraScript/ComfyUI_KytraWebhookHTTP": [ [ "SendToDiscordWebhook" @@ -1994,6 +8432,107 @@ "title_aux": "ComfyUI_KytraWebhookHTTP" } ], + "https://github.com/KytraScript/ComfyUI_MatAnyone_Kytra": [ + [ + "Kytra_Images_To_RGB", + "MatAnyoneVideoMatting" + ], + { + "title_aux": "ComfyUI_MatAnyone_Kytra" + } + ], + "https://github.com/L33chKing/comfyui-tag-frequency-weighter": [ + [ + "TagFrequencyWeighter" + ], + { + "title_aux": "Tag Frequency Weighter for ComfyUI" + } + ], + "https://github.com/LAOGOU-666/ComfyUI-LG_HotReload": [ + [ + "HotReload_Terminal" + ], + { + "title_aux": "ComfyUI-LG_HotReload" + } + ], + "https://github.com/LAOGOU-666/ComfyUI_LG_FFT": [ + [ + "LG_FFTNode", + "LG_IFFTNode" + ], + { + "title_aux": "ComfyUI_LG_FFT" + } + ], + "https://github.com/LAOGOU-666/Comfyui-LG_GroupExecutor": [ + [ + "GroupExecutorRepeater", + "GroupExecutorSender", + "GroupExecutorSingle", + "ImageListRepeater", + "ImageListSplitter", + "LG_AccumulatePreview", + "LG_FastPreview", + "LG_ImageReceiver", + "LG_ImageSender", + "MaskListRepeater", + "MaskListSplitter" + ], + { + "title_aux": "Comfyui-LG_GroupExecutor" + } + ], + "https://github.com/LAOGOU-666/Comfyui-LG_Relight": [ + [ + "LG_Relight", + "LG_Relight_Basic", + "LG_Relight_Ultra" + ], + { + "title_aux": "Comfyui-LG_Relight" + } + ], + "https://github.com/LAOGOU-666/Comfyui-Memory_Cleanup": [ + [ + "RAMCleanup", + "VRAMCleanup" + ], + { + "title_aux": "Comfyui-Memory_Cleanup" + } + ], + "https://github.com/LAOGOU-666/Comfyui_LG_Tools": [ + [ + "BridgePreviewNode", + "CachePreviewBridge", + "ColorAdjustment", + "FastCanvas", + "FastCanvasComposite", + "FastCanvasTool", + "GroupSwitcher", + "IPAdapterWeightTypes", + "ImageCropper", + "ImageSelector", + "ImageSizeAdjustment", + "InspyrenetRembgLoader", + "InspyrenetRembgProcess", + "LG_FloatRange", + "LG_InstallDependencies", + "LG_LatentBatchToList", + "LG_LoadImage", + "LG_Noise", + "LG_PipManager", + "LG_SaveImage", + "LazySwitch1way", + "LazySwitch2way", + "MuterSwitcher" + ], + { + "title_aux": "Comfyui_LG_Tools" + } + ], "https://github.com/LEv145/images-grid-comfy-plugin": [ [ "GridAnnotation", @@ -2006,6 +8545,71 @@ "title_aux": "ImagesGrid" } ], + "https://github.com/LK-168/comfyui_imgutils": [ + [ + "BBoxFilter", + "BBoxToMaskNode", + "CensorWithMask", + "ImgutilsAutoSegmenter", + "ImgutilsBBoxSegmenter", + "ImgutilsGenericDetector", + "MaskAttributeNodeLK", + "MaskCombineNodeLK", + "MaskEdgeNodeLK", + "MaskHelperLK", + "MaskInfoNodeLK", + "MaskMorphologyNodeLK", + "MaskToBBoxNode", + "SAMLoaderLK", + "SAMPredictorNode" + ], + { + "title_aux": "comfyui_imgutils" + } + ], + "https://github.com/LKbaba/ComfyUI-TuZi-Flux-Kontext": [ + [ + "FluxKontext_ImageToImage", + "FluxKontext_MultiImageToImage", + "FluxKontext_TextToImage" + ], + { + "title_aux": "ComfyUI-TuZi-Flux-Kontext" + } + ], + "https://github.com/LamEmil/ComfyUI_ASCIIArtNode": [ + [ + "ASCIIAnimationGenerator", + "ASCIIArtGenerator", + "ColorASCIIAnimationGenerator", + "RealisticColorASCIIAnimationGenerator", + "SequentialTwoPassTypingColorASCIIAnimation", + "TwoPassTypingColorASCIIAnimation", + "VideoToColorStaticASCIIArt", + "VideoToDynamicColorASCIIArt" + ], + { + "title_aux": "ComfyUI ASCII Art Nodes" + } + ], + "https://github.com/LaoMaoBoss/ComfyUI-WBLESS": [ + [ + "Inversed Switch", + "Switch" + ], + { + "title_aux": "ComfyUI-WBLESS" + } + ], + "https://github.com/LargeModGames/comfyui-smart-lora-downloader": [ + [ + "LoRAAutoDownloader", + "WorkflowLoRAScanner" + ], + { + "title_aux": "ComfyUI LoRA Auto Downloader" + } + ], "https://github.com/LarryJane491/Image-Captioning-in-ComfyUI": [ [ "LoRA Caption Load", @@ -2025,6 +8629,46 @@ "title_aux": "Lora-Training-in-Comfy" } ], + "https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer": [ + [ + "Texturaizer_ApplyControlNets", + "Texturaizer_ApplyStyleToPrompt", + "Texturaizer_CachedCNLoader", + "Texturaizer_CachedCheckpointLoader", + "Texturaizer_ClipEncodeSwitchVersion", + "Texturaizer_CombinedConditioningFromColors", + "Texturaizer_ExtractCNData", + "Texturaizer_GenerateNoise", + "Texturaizer_GetCNData", + "Texturaizer_GetClipModelName", + "Texturaizer_GetFluxGuidance", + "Texturaizer_GetIPAdapterData", + "Texturaizer_GetImageData", + "Texturaizer_GetJsonData", + "Texturaizer_GetLoraData", + "Texturaizer_GetMaterialTileData", + "Texturaizer_GetModelName", + "Texturaizer_GetPromptData", + "Texturaizer_GetRenderData", + "Texturaizer_GetSamplerData", + "Texturaizer_GetSegData", + "Texturaizer_GetStyleData", + "Texturaizer_GetVAEName", + "Texturaizer_IPAdapterEmbeds", + "Texturaizer_KSamplerAdvanced", + "Texturaizer_Placeholder", + "Texturaizer_PowerLoraLoader", + "Texturaizer_SendImage", + "Texturaizer_SetGlobalDir", + "Texturaizer_SigmasSelector", + "Texturaizer_SwitchAny", + "Texturaizer_SwitchLazy", + "Texturaizer_UseSDXL" + ], + { + "title_aux": "ComfyUI-Texturaizer" + } + ], "https://github.com/Layer-norm/comfyui-lama-remover": [ [ "LamaRemover", @@ -2034,6 +8678,24 @@ "title_aux": "Comfyui lama remover" } ], + "https://github.com/LeanModels/ComfyUI-DFloat11": [ + [ + "DFloat11ModelLoader" + ], + { + "title_aux": "ComfyUI-DFloat11" + } + ], + "https://github.com/Legorobotdude/ComfyUI-VariationLab": [ + [ + "CFGExplorer", + "CheckpointExplorer", + "StepExplorer" + ], + { + "title_aux": "ComfyUI-VariationLab" + } + ], "https://github.com/Lerc/canvas_tab": [ [ "Canvas_Tab", @@ -2047,6 +8709,349 @@ "title_aux": "Canvas Tab" } ], + "https://github.com/LevelPixel/ComfyUI-LevelPixel": [ + [ + "AnyToText|LP", + "BoolToInt|LP", + "BoolToString|LP", + "CLIP Text Encode Translate [LP]", + "CLIPTextEncodeTranslate|LP", + "Calculate Target Size By Mask [LP]", + "CalculateTargetSizeByMask|LP", + "ComboToText|LP", + "Convert Any To Text [LP]", + "Convert Bool To Int [LP]", + "Convert Bool To String [LP]", + "Convert Combo To Text [LP]", + "Convert Float To Int [LP]", + "Convert Float To String [LP]", + "Convert Int To Bool [LP]", + "Convert Int To Float [LP]", + "Convert Int To String [LP]", + "Convert String To Bool [LP]", + "Convert String To Combo [LP]", + "Convert String To Float [LP]", + "Convert String To Int [LP]", + "Convert String To Number [LP]", + "Count Objects [LP]", + "CountObjects|LP", + "Cropped Aspect Size Parameters [LP]", + "Cropped Forsed Size Parameters [LP]", + "Cropped Free Size Parameters [LP]", + "Cropped Ranged Size Parameters [LP]", + "CroppedAspectSizeParameters|LP", + "CroppedForsedSizeParameters|LP", + "CroppedFreeSizeParameters|LP", + "CroppedRangedSizeParameters|LP", + "Delay [LP]", + "Delay|LP", + "Extend Factor Parameters [LP]", + "ExtendFactorParameters|LP", + "Fast Checker Pattern [LP]", + "FastCheckerPattern|LP", + "File Counter [LP]", + "FileCounter|LP", + "Find Value From File [LP]", + "FindValueFromFile|LP", + "FloatToInt|LP", + "FloatToString|LP", + "Get ComfyUI Folder Path [LP]", + "Get ComfyUI HTTP Folder Path [LP]", + "Get Filename By Index In Folder [LP]", + "Get Iterator Data From Image Folders [LP]", + "Get Iterator Data From Videos [LP]", + "GetComfyUIFolderPath|LP", + "GetComfyUIHttpFolderPath|LP", + "GetFilenameByIndexInFolder|LP", + "GetIteratorDataImageFolders|LP", + "GetIteratorDataVideos|LP", + "Hard Unload All Models [LP]", + "HardModelUnloader|LP", + "HundredthsSimpleFloatSlider|LP", + "Image Data Iterator [LP]", + "Image Loader From Path [LP]", + "Image Overlay [LP]", + "ImageDataIterator|LP", + "ImageLoaderFromPath|LP", + "ImageOverlay|LP", + "Inpaint Crop [LP]", + "Inpaint Stitch [LP]", + "InpaintCrop|LP", + "InpaintStitch|LP", + "IntToBool|LP", + "IntToFloat|LP", + "IntToString|LP", + "Iterator [LP]", + "Iterator|LP", + "Keep Only English Tags [LP]", + "Keep Only English Words [LP]", + "KeepOnlyEnglishTags|LP", + "KeepOnlyEnglishWords|LP", + "Load Image [LP]", + "Load LoRA Tag [LP]", + "LoadImage|LP", + "LoraTagLoader|LP", + "ModelUnloader|LP", + "Override CLIP Device [LP]", + "Override CLIP Vision Device [LP]", + "Override VAE Device [LP]", + "OverrideCLIPDevice|LP", + "OverrideCLIPVisionDevice|LP", + "OverrideVAEDevice|LP", + "Pipe In [LP]", + "Pipe Out [LP]", + "Pipe [LP]", + "PipeIn|LP", + "PipeOut|LP", + "Pipe|LP", + "Preview Image Bridge [LP]", + "PreviewImageForConditions|LP", + "Remove Banned Tags From Tags [LP]", + "Remove Banned Tags From Text [LP]", + "Remove Duplicate Tags [LP]", + "RemoveBannedTagsFromTags|LP", + "RemoveBannedTagsFromText|LP", + "RemoveDuplicateTags|LP", + "Resize Image To Target Size [LP]", + "Resize Image and Masks [LP]", + "ResizeImageAndMasks|LP", + "ResizeImageToTargetSize|LP", + "Resorting Tags [LP]", + "ResortingTags|LP", + "Seed [LP]", + "Seed|LP", + "Show Text Bridge [LP]", + "Show Text [LP]", + "ShowTextBridge|LP", + "ShowText|LP", + "Simple Float Slider - Hundredths Step [LP]", + "Simple Float Slider - Tenths Step [LP]", + "Simple Float Slider [LP]", + "SimpleFloatSlider|LP", + "Soft Full Clean RAM and VRAM [LP]", + "Soft Unload Models Data [LP]", + "SoftFullCleanRAMAndVRAM|LP", + "SoftModelUnloader|LP", + "Split Compound Text [LP]", + "SplitCompoundText|LP", + "String Cycler [LP]", + "String [LP]", + "StringCycler|LP", + "StringToBool|LP", + "StringToCombo|LP", + "StringToFloat|LP", + "StringToInt|LP", + "StringToNumber|LP", + "String|LP", + "Tag Category Filter [LP]", + "Tag Category Keeper [LP]", + "Tag Category Remover [LP]", + "Tag Category [LP]", + "Tag Merger [LP]", + "Tag Remover [LP]", + "Tag Replace [LP]", + "Tag Switcher [LP]", + "TagCategoryFilter|LP", + "TagCategoryKeeper|LP", + "TagCategoryRemover|LP", + "TagCategory|LP", + "TagMerger|LP", + "TagRemover|LP", + "TagReplace|LP", + "TagSwitcher|LP", + "TenthsSimpleFloatSlider|LP", + "Text Choice Parser [LP]", + "Text Replace [LP]", + "Text To List [LP]", + "Text Translate [LP]", + "Text [LP]", + "TextChoiceParser|LP", + "TextReplace|LP", + "TextToList|LP", + "TextTranslateManualAll|LP", + "TextTranslateManual|LP", + "TextTranslate|LP", + "Text|LP", + "Unload Model [LP]" + ], + { + "title_aux": "ComfyUI Level Pixel" + } + ], + "https://github.com/LevelPixel/ComfyUI-LevelPixel-Advanced": [ + [ + "Autotagger [LP]", + "Autotagger|LP", + "Color Input [LP]", + "ColorInput|LP", + "Image Remove Background (BiRefNet) [LP]", + "Image Remove Background (RMBG) [LP]", + "Image Remove Background (rembg) [LP]", + "ImageRemoveBackgroundBiRefNet|LP", + "ImageRemoveBackgroundRMBG|LP", + "ImageRemoveBackground|LP", + "LLM Advanced [LP]", + "LLM Loader [LP]", + "LLM Sampler [LP]", + "LLMAdvanced|LP", + "LLMLoader|LP", + "LLMSampler|LP", + "LLava Advanced [LP]", + "LLava Clip Loader [LP]", + "LLava Loader [LP]", + "LLava Sampler Advanced [LP]", + "LLava Sampler Simple [LP]", + "LLava Simple [LP]", + "LLavaAdvanced|LP", + "LLavaClipLoader|LP", + "LLavaLoader|LP", + "LLavaSamplerAdvanced|LP", + "LLavaSamplerSimple|LP", + "LLavaSimple|LP", + "Multimodal Generator Advanced [LP]", + "MultimodalGeneratorAdvanced|LP", + "Recognize Anything (RAM) [LP]", + "RecognizeAnything(RAM)|LP" + ], + { + "title_aux": "ComfyUI Level Pixel Advanced" + } + ], + "https://github.com/Lhyejin/ComfyUI-Fill-Image-for-Outpainting": [ + [ + "FillImageForOutpainting" + ], + { + "title_aux": "ComfyUI-Fill-Image-for-Outpainting" + } + ], + "https://github.com/LiJT/ComfyUI-Gemini-Prompt-Generator-JT": [ + [ + "GeminiPromptGeneratorJT" + ], + { + "title_aux": "Gemini prompt generator JT version" + } + ], + "https://github.com/Light-x02/ComfyUI-FluxSettingsNode": [ + [ + "DisableNoise", + "FluxSettingsNode" + ], + { + "title_aux": "Flux Settings Node" + } + ], + "https://github.com/Light-x02/ComfyUI-Image-Metadata-Nodes": [ + [ + "ImageMetadataLoader", + "ImageMetadataSaver" + ], + { + "title_aux": "Image Metadata Nodes" + } + ], + "https://github.com/Light-x02/ComfyUI_Crop_Image_By_Lightx02": [ + [ + "CropImageByLightx02" + ], + { + "title_aux": "Crop Image by Lightx02" + } + ], + "https://github.com/LightSketch-ai/ComfyUI-LivePortraitNode": [ + [ + "LightSketch Live Portrait", + "Preview Video" + ], + { + "title_aux": "ComfyUI-LivePortraitNode (Replicate API)" + } + ], + "https://github.com/Lightricks/ComfyUI-LTXVideo": [ + [ + "AddLatentGuide", + "ImageToCPU", + "LTXAttentioOverride", + "LTXAttentionBank", + "LTXAttnOverride", + "LTXFetaEnhance", + "LTXFlowEditCFGGuider", + "LTXFlowEditSampler", + "LTXForwardModelSamplingPred", + "LTXPerturbedAttention", + "LTXPrepareAttnInjections", + "LTXQ8Patch", + "LTXRFForwardODESampler", + "LTXRFReverseODESampler", + "LTXReverseModelSamplingPred", + "LTXVAdainLatent", + "LTXVAddGuideAdvanced", + "LTXVApplySTG", + "LTXVBaseSampler", + "LTXVExtendSampler", + "LTXVFilmGrain", + "LTXVInContextSampler", + "LTXVLatentUpsampler", + "LTXVLinearOverlapLatentTransition", + "LTXVLoopingSampler", + "LTXVMultiPromptProvider", + "LTXVPatcherVAE", + "LTXVPreprocessMasks", + "LTXVPromptEnhancer", + "LTXVPromptEnhancerLoader", + "LTXVQ8LoraModelLoader", + "LTXVSelectLatents", + "LTXVSetVideoLatentNoiseMasks", + "LTXVTiledSampler", + "LTXVTiledVAEDecode", + "ModifyLTXModel", + "STGAdvancedPresets", + "STGGuiderAdvanced", + "STGGuiderNode", + "Set VAE Decoder Noise" + ], + { + "title_aux": "ComfyUI-LTXVideo" + } + ], + "https://github.com/Limbicnation/ComfyUI-RandomSeedGenerator": [ + [ + "AdvancedSeedGenerator" + ], + { + "title_aux": "ComfyUI-RandomSeedGenerator" + } + ], + "https://github.com/Limbicnation/ComfyUI-TransparencyBackgroundRemover": [ + [ + "AutoGrabCutRemover", + "GrabCutRefinement", + "TransparencyBackgroundRemover", + "TransparencyBackgroundRemoverBatch" + ], + { + "title_aux": "Transparency Background Remover" + } + ], + "https://github.com/Limbicnation/ComfyUIDepthEstimation": [ + [ + "DepthEstimationNode" + ], + { + "title_aux": "Depth Estimation Node" + } + ], + "https://github.com/Limbicnation/ComfyUI_FaceDetectionNode": [ + [ + "FaceDetectionNode", + "custom_nodes" + ], + { + "nodename_pattern": "FaceDetectionNode", + "title_aux": "ComfyUI Face Detection Node" + } + ], "https://github.com/Limitex/ComfyUI-Calculation": [ [ "CenterCalculation", @@ -2075,12 +9080,36 @@ "title_aux": "ComfyUI-Diffusers" } ], + "https://github.com/Ling-APE/ComfyUI-PixelResolutionCalculator": [ + [ + "LatentSizeToPixelSize", + "PixelResolutionCalculator" + ], + { + "title_aux": "ComfyUI-PixelResolutionCalculator" + } + ], + "https://github.com/LingSss9/comfyui-merge": [ + [ + "LoadLoRAMenu", + "MergeLoRAsKohyaSSLike", + "OnlyLoadLoRAsModel", + "SaveLoRAModels" + ], + { + "author": "cyberblackcat", + "description": "This extension provides some nodes to support merge lora, adjust Lora Block Weight.", + "nickname": "CBC", + "title": "merge", + "title_aux": "comfyui-merge" + } + ], "https://github.com/Loewen-Hob/rembg-comfyui-node-better": [ [ "Image Remove Background (rembg)" ], { - "title_aux": "Rembg Background Removal Node for ComfyUI" + "title_aux": "Rembg Background Removal Node for ComfyUI (Better)" } ], "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame": [ @@ -2103,6 +9132,73 @@ "title_aux": "ComfyUI-RawSaver" } ], + "https://github.com/LoveEatCandy/COMFYUI-ReplacePartOfImage": [ + [ + "ReplacePartOfImage" + ], + { + "title_aux": "COMFYUI-ReplacePartOfImage" + } + ], + "https://github.com/Lovzu/ComfyUI-KittenTTS": [ + [ + "KittenTTS" + ], + { + "title_aux": "KittenTTS Node for Voice Generation" + } + ], + "https://github.com/Ltamann/ComfyUI-TBG-ETUR": [ + [ + "EdgePadNode", + "TBG_masked_attention" + ], + { + "title_aux": "TBG_Enhanced Tiled Upscaler & Refiner FLUX PRO" + } + ], + "https://github.com/Ltamann/ComfyUI-TBG-Takeaways": [ + [ + "BasicSchedulerNormalized", + "LogSigmaSamplerNode", + "LogSigmaStepSamplerNode", + "ModelSamplingFluxGradual", + "PolyExponentialSigmaAdder", + "TBG_FluxKontextStabilizer" + ], + { + "title_aux": "TBG\u2019s ComfyUI Development Takeaways" + } + ], + "https://github.com/LucipherDev/ComfyUI-AniDoc": [ + [ + "AniDocLoader", + "AniDocSampler", + "GetAniDocControlnetImages", + "LoadCoTracker" + ], + { + "title_aux": "ComfyUI-AniDoc" + } + ], + "https://github.com/LucipherDev/ComfyUI-Golden-Noise": [ + [ + "GoldenNoise" + ], + { + "title_aux": "ComfyUI-Golden-Noise" + } + ], + "https://github.com/LucipherDev/ComfyUI-TangoFlux": [ + [ + "TangoFluxLoader", + "TangoFluxSampler", + "TangoFluxVAEDecodeAndPlay" + ], + { + "title_aux": "ComfyUI-TangoFlux" + } + ], "https://github.com/Ludobico/ComfyUI-ScenarioPrompt": [ [ "ScenarioPrompt" @@ -2119,77 +9215,13 @@ "title_aux": "Anime Character Segmentation node for comfyui" } ], - "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes": [ + "https://github.com/LyazS/comfyui-nettools": [ [ - "AIO_Preprocessor", - "AnimalPosePreprocessor", - "AnimeFace_SemSegPreprocessor", - "AnimeLineArtPreprocessor", - "BAE-NormalMapPreprocessor", - "BinaryPreprocessor", - "CannyEdgePreprocessor", - "ColorPreprocessor", - "DWPreprocessor", - "DensePosePreprocessor", - "DepthAnythingPreprocessor", - "DiffusionEdge_Preprocessor", - "FacialPartColoringFromPoseKps", - "FakeScribblePreprocessor", - "HEDPreprocessor", - "HintImageEnchance", - "ImageGenResolutionFromImage", - "ImageGenResolutionFromLatent", - "ImageIntensityDetector", - "ImageLuminanceDetector", - "InpaintPreprocessor", - "LayeredDiffusionApply", - "LayeredDiffusionCondApply", - "LayeredDiffusionCondJointApply", - "LayeredDiffusionDecode", - "LayeredDiffusionDecodeRGBA", - "LayeredDiffusionDecodeSplit", - "LayeredDiffusionDiffApply", - "LayeredDiffusionJointApply", - "LeReS-DepthMapPreprocessor", - "LineArtPreprocessor", - "LineartStandardPreprocessor", - "M-LSDPreprocessor", - "Manga2Anime_LineArt_Preprocessor", - "MaskOptFlow", - "MediaPipe-FaceMeshPreprocessor", - "MeshGraphormer-DepthMapPreprocessor", - "MiDaS-DepthMapPreprocessor", - "MiDaS-NormalMapPreprocessor", - "ModelMergeBlockNumber", - "ModelMergeSDXL", - "ModelMergeSDXLDetailedTransformers", - "ModelMergeSDXLTransformers", - "ModelSamplerTonemapNoiseTest", - "OneFormer-ADE20K-SemSegPreprocessor", - "OneFormer-COCO-SemSegPreprocessor", - "OpenposePreprocessor", - "PiDiNetPreprocessor", - "PixelPerfectResolution", - "PromptExpansion", - "ReferenceOnlySimple", - "RescaleClassifierFreeGuidanceTest", - "SAMPreprocessor", - "SavePoseKpsAsJsonFile", - "ScribblePreprocessor", - "Scribble_XDoG_Preprocessor", - "SemSegPreprocessor", - "ShufflePreprocessor", - "TEEDPreprocessor", - "TilePreprocessor", - "TonemapNoiseWithRescaleCFG", - "UniFormer-SemSegPreprocessor", - "Unimatch_OptFlowPreprocessor", - "Zoe-DepthMapPreprocessor", - "Zoe_DepthAnythingPreprocessor" + "NTL_LoadImagesBase64", + "NTL_SendImagesWebSocket" ], { - "author": "tstandley", - "title_aux": "ComfyUI Nodes for Inference.Core" + "title_aux": "net tool node for comfyui" } ], "https://github.com/M1kep/ComfyLiterals": [ @@ -2280,17 +9312,127 @@ "title_aux": "KepPromptLang" } ], + "https://github.com/MDMAchine/ComfyUI_MD_Nodes": [ + [ + "ACE_LatentVisualizer", + "APGGuiderForked", + "AdvancedAudioPreviewAndSave", + "AdvancedMediaSave", + "HybridAdaptiveSigmas", + "MasteringChainNode", + "NoiseDecayScheduler_Custom", + "PingPongSampler_Custom_FBG", + "PingPongSampler_Custom_Lite", + "SceneGeniusAutocreator", + "SeedSaver", + "UniversalGuardian" + ], + { + "title_aux": "MD Nodes" + } + ], "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes": [ [ + "AudioVisualizer", + "LoraTagLoader", + "ResolutionSelector", + "StringCleaning", + "StringTextExtractor", + "StringTextSplitter", + "TiktokenTokenizer", + "WildcardProcessor", "\u26d4 Generate Negative Prompt", - "\u2728 Groq LLM API", + "\u2702\ufe0f String Text Extractor", + "\u2702\ufe0f String Text Splitter", + "\u2728\ud83c\udf10 Groq ALM API - Translate [EN only]", + "\u2728\ud83d\udcac Groq LLM API", + "\u2728\ud83d\udcdd Groq ALM API - Transcribe", + "\u2728\ud83d\udcf7 Groq VLM API", + "\ud83c\udfb5\ud83d\udcca Audio Visualizer", + "\ud83c\udff7\ufe0f LoRA Loader Prompt Tags", "\ud83d\udcbe Save Text File With Path", - "\ud83d\uddbc\ufe0f Download Image from URL" + "\ud83d\udcc1 Get File Path", + "\ud83d\udcc5 Format Date Time", + "\ud83d\udcd0 Resolution Image Size Selector", + "\ud83d\udcdd Wildcard Processor", + "\ud83d\udd20 Tiktoken Tokenizer Info", + "\ud83d\uddbc\ufe0f Download Image from URL", + "\ud83d\uddbc\ufe0f+\ud83d\udcdd Load Text-Image Pair (Single)", + "\ud83d\uddbc\ufe0f+\ud83d\udcdd Load Text-Image Pairs (List)", + "\ud83d\uddbc\ufe0f\ud83d\udcca Metadata Extractor", + "\ud83e\uddf9 String Cleaning" ], { "title_aux": "ComfyUI-mnemic-nodes" } ], + "https://github.com/Makeezi/ComfyUI-promptLAB": [ + [ + "PromptLAB" + ], + { + "title_aux": "ComfyUI-promptLAB" + } + ], + "https://github.com/MakkiShizu/ComfyUI-MakkiTools": [ + [ + "AnyImageStitch_makki", + "AnyImagetoConditioning_flux_kontext_makki", + "AutoLoop_create_pseudo_loop_video_makki", + "BatchLoraLoader_makki", + "Environment_INFO_makki", + "GetImageNthCount_makki", + "ImageChannelSeparate_makki", + "ImageCountConcatenate_makki", + "ImageHeigthStitch_makki", + "ImageWidthStitch_makki", + "Image_Resize_makki", + "MergeImageChannels_makki", + "Prism_Mirage_makki", + "int_calculate_statistics_makki", + "random_any_makki", + "show_type_makki", + "timer_makki", + "translator_m2m100_makki", + "translators_makki" + ], + { + "title_aux": "ComfyUI-MakkiTools" + } + ], + "https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards": [ + [ + "makitextwildcards", + "makiwildcards", + "makiwildcards_Advanced", + "textconcatenate", + "textconcatenate_v2" + ], + { + "title_aux": "ComfyUI-Prompt-Wildcards" + } + ], + "https://github.com/MakkiShizu/ComfyUI-Qwen2_5-VL": [ + [ + "BatchImageLoaderToLocalFiles", + "DownloadAndLoadQwen2_5_VLModel", + "Qwen2_5_VL_Run", + "Qwen2_5_VL_Run_Advanced" + ], + { + "title_aux": "ComfyUI-Qwen2_5-VL" + } + ], + "https://github.com/MakkiShizu/comfyui_reimgsize": [ + [ + "Cropimg", + "Reimgsize", + "Resizebyratio" + ], + { + "title_aux": "comfyui_reimgsize" + } + ], "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes": [ [ "Image Remove Background (rembg)" @@ -2312,6 +9454,39 @@ "title_aux": "ComfyI2I" } ], + "https://github.com/MarcusNyne/m9-prompts-comfyui": [ + [ + "ScramblePrompts_m9", + "TweakWeights_m9" + ], + { + "title_aux": "m9-prompts-comfyui" + } + ], + "https://github.com/MariusKM/ComfyUI-BadmanNodes": [ + [ + "BadmanBrightness", + "BadmanCLIPTextEncodeSDXLRegion", + "BadmanDesaturate", + "BadmanDilateErodeMask", + "BadmanIO", + "BadmanIntUtil", + "BadmanMaskBlur", + "BadmanStringSelect", + "BadmanStringToInteger", + "BadmanWildCardProcessor", + "Badman_Blend", + "Badman_ColorTransferLab", + "Badman_Concat_String", + "Badman_HexGenerator", + "Badman_PalletteGenerator", + "Badman_Print", + "Badman_String" + ], + { + "title_aux": "ComfyUI-BadmanNodes" + } + ], "https://github.com/MarkoCa1/ComfyUI-Text": [ [ "CombinationText", @@ -2320,7 +9495,7 @@ "ShowText" ], { - "title_aux": "ComfyUI_Text" + "title_aux": "ComfyUI-Text" } ], "https://github.com/MarkoCa1/ComfyUI_Segment_Mask": [ @@ -2331,6 +9506,295 @@ "title_aux": "ComfyUI_Segment_Mask" } ], + "https://github.com/Marksusu/ComfyUI_MTCLIPEncode": [ + [ + "MTCLIPEncode" + ], + { + "title_aux": "ComfyUI_MTCLIPEncode" + } + ], + "https://github.com/MartinDeanMoriarty/ComfyUI-DeanLogic": [ + [ + "ImageCount", + "ImageInputSwitch", + "ImageOutputSwitch", + "Int Compare" + ], + { + "title_aux": "ComfyUI-DeanLogic" + } + ], + "https://github.com/MaruPelkar/comfyui-conditioning-resizer": [ + [ + "ConditioningResizer" + ], + { + "title_aux": "ComfyUI Conditioning Resizer" + } + ], + "https://github.com/Mason-McGough/ComfyUI-Mosaica": [ + [ + "ApplyLUTToLabelImage", + "KMeans", + "LoadLUTFromMatplotlib", + "MeanShift", + "RandomLUT", + "Watershed" + ], + { + "title_aux": "Mosaica" + } + ], + "https://github.com/MasterDenis/VAE-Decode-Switch": [ + [ + "VAEDecodeSwitcher" + ], + { + "title_aux": "VAE Decode Switch for ComfyUI" + } + ], + "https://github.com/Mattabyte/ComfyUI-SecureApiCall": [ + [ + "SaveLatentToS3", + "SaveVideoFilesS3", + "SecureAPI-SecureAPI", + "SecureAPI-SecureAPI-AWS" + ], + { + "title_aux": "ComfyUI Secure API Call" + } + ], + "https://github.com/Maxed-Out-99/ComfyUI-MaxedOut": [ + [ + "Crop Image By Mask", + "Flux Empty Latent Image", + "Flux Image Scale To Total Pixels (Flux Safe)", + "Flux Resolution Selector", + "FluxResolutionMatcher", + "Image Scale To Total Pixels (SDXL Safe)", + "LatentHalfMasks", + "Load Image Batch MXD", + "LoadImageWithPromptsMXD", + "LoadLatent_WithParams", + "LoadLatents_FromFolder_WithParams", + "Place Image By Mask", + "Prompt With Guidance (Flux)", + "SaveLatentMXD", + "Sdxl Empty Latent Image", + "Sdxl Resolution Selector", + "Wan2_2EmptyLatentImageMXD" + ], + { + "title_aux": "ComfyUI-MaxedOut" + } + ], + "https://github.com/Maxed-Out-99/ComfyUI-SmartModelLoaders-MXD": [ + [ + "CLIPLoaderUnified", + "DualCLIPLoaderUnified", + "QuadrupleCLIPLoaderUnified", + "TripleCLIPLoaderUnified", + "UNETLoaderUnified" + ], + { + "title_aux": "ComfyUI-SmartModelLoaders-MXD" + } + ], + "https://github.com/McKlinton2/comfyui-mcklinton-pack": [ + [ + "ColormaskNode", + "LoadFilteredImageBatch", + "MultiLayerComposeNode", + "SaveTextArrayToFiles" + ], + { + "title_aux": "ComfyUI McKlinton Pack \u2014 Mask Node" + } + ], + "https://github.com/Mcmillian/ComfyUI-SimpleToolsNodes": [ + [ + "GetModelStep", + "GlmPromptNode" + ], + { + "title_aux": "SimpleToolsNodes" + } + ], + "https://github.com/MeeeyoAI/ComfyUI_StringOps": [ + [ + "AddPrefixSuffix", + "AddPrefixSuffixToLines", + "BatchReplaceStrings", + "CheckSubstringPresence", + "CompareInt", + "ConditionalTextOutput", + "CountOccurrences", + "CustomCrop", + "DecodePreview", + "ExtractAndCombineLines", + "ExtractBeforeAfter", + "ExtractLinesByIndex", + "ExtractSpecificData", + "ExtractSpecificLines", + "ExtractSubstring", + "ExtractSubstringByIndices", + "FileCopyCutNode", + "FileDeleteNode", + "FileListAndSuffix", + "FileNameReplacer", + "FilterLinesBySubstrings", + "FilterLinesByWordCount", + "FindExcelData", + "FindFirstLineContent", + "FloatToInteger", + "GenerateNumbers", + "GenerateVideoPrompt", + "GenericImageLoader", + "GetCurrentTime", + "GetFloatParam", + "GetIntParam", + "GetRandomIntegerInRange", + "ImageAdjuster", + "ImageOverlayAlignment", + "LoadAndAdjustImage", + "MultiParamInputNode", + "NumberExtractor", + "ProcessString", + "RandomLineFromText", + "ReadExcelData", + "ReadExcelRowOrColumnDiff", + "ReadWebNode", + "RemoveContentBetweenChars", + "ReplaceMultiple", + "ReplaceNthOccurrence", + "SaveImagEX", + "SelectionParameter", + "ShuffleTextLines", + "SimpleRandomSeed", + "SimpleTextReplacer", + "SingleTextInput", + "SplitAndExtractText", + "SplitStringByDelimiter", + "TextConcatenation", + "TextConcatenator", + "TextConditionCheck", + "TextToImage", + "TextToList", + "WriteExcelData", + "WriteExcelImage", + "WriteToTxtFile" + ], + { + "title_aux": "ComfyUI_StringOps" + } + ], + "https://github.com/Meettya/ComfyUI-OneForOne": [ + [ + "OFO Image Fit" + ], + { + "title_aux": "ComfyUI-OneForOne" + } + ], + "https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform": [ + [ + "VideoReportData", + "VideoReportGenerate", + "VideoReportPull" + ], + { + "title_aux": "ComfyUI ZhipuAI Platform" + } + ], + "https://github.com/MicheleGuidi/ComfyUI-Contextual-SAM2": [ + [ + "Sam2ContextSegmentation", + "Sam2TiledSegmentation" + ], + { + "title_aux": "ComfyUI-Computer-Vision" + } + ], + "https://github.com/MiddleKD/ComfyUI-denoise-mask-scheduler": [ + [ + "ApplyDenoiseMaskSchedulerWithSigma", + "ApplyDenoiseMaskSchedulerWithStep", + "DynamicImageResize" + ], + { + "title_aux": "ComfyUI-denoise-mask-scheduler" + } + ], + "https://github.com/MiddleKD/ComfyUI-mem-safe-wrapper": [ + [ + "MakeModelMemorySafe-safewrapper", + "ResetModelPatcher-safewrapper", + "SimpleDummyModel-safewrapper", + "SimpleDummyRun-safewrapper" + ], + { + "title_aux": "ComfyUI-mem-safe-wrapper" + } + ], + "https://github.com/MiddleKD/ComfyUI-productfix": [ + [ + "ApplyLatentInjection", + "DetailTransferAdd", + "DetailTransferLatentAdd", + "DynamicImageResize", + "GetTextMask", + "ResetModelPatcherCalculateWeight", + "VQDecoder", + "VQEncoder", + "VQLoader" + ], + { + "title_aux": "ComfyUI-productfix" + } + ], + "https://github.com/MijnSpam/ComfyUI_SwapAndScale": [ + [ + "SwapAndScale" + ], + { + "title_aux": "Comfy swap and scale" + } + ], + "https://github.com/MijnSpam/UploadToPushOver": [ + [ + "UploadToPushOver" + ], + { + "title_aux": "Upload to PushOver" + } + ], + "https://github.com/MilitantHitchhiker/MilitantHitchhiker-SwitchbladePack": [ + [ + "FluxModelSave_v2", + "FluxQuantNode", + "GODARCScheduler", + "GroqAPIPromptEnhancer", + "IntegratedRandomPromptGenerator", + "ModelAnalyserNode", + "TextAppender_v2" + ], + { + "author": "Militant Hitchhiker", + "description": "Militant Hitchhiker's multi-function nodes.", + "nickname": "Switchblade", + "title": "Switchblade Pack", + "title_aux": "MilitantHitchhiker-SwitchbladePack" + } + ], + "https://github.com/Mintbeer96/ComfyUI-KerasOCR": [ + [ + "KerasOCR" + ], + { + "title_aux": "ComfyUI-KerasOCR" + } + ], "https://github.com/Miosp/ComfyUI-FBCNN": [ [ "JPEG artifacts removal FBCNN" @@ -2339,7 +9803,16 @@ "title_aux": "ComfyUI-FBCNN" } ], - "https://github.com/MitoshiroPJ/comfyui_slothful_attention": [ + "https://github.com/MitoshiroPJ/ComfyUI_save_image_sdli": [ + [ + "PreviewSdlImage", + "SaveSdlImage" + ], + { + "title_aux": "ComfyUI SaveImage SDLI" + } + ], + "https://github.com/MitoshiroPJ/comfyui_nearsighted_attention": [ [ "NearSightedAttention", "NearSightedAttentionSimple", @@ -2347,44 +9820,210 @@ "SlothfulAttention" ], { - "title_aux": "ComfyUI Slothful Attention" + "title_aux": "ComfyUI Nearsighted Attention" + } + ], + "https://github.com/Miyuutsu/comfyui-save-vpred": [ + [ + "CheckpointSaveVpred" + ], + { + "author": "miyuu", + "description": "Used to save SDXL V-Prediction models directly with correct tensors.", + "nickname": "vpred-save", + "title": "vpred-save", + "title_aux": "comfyui-save-vpred" + } + ], + "https://github.com/MohammadAboulEla/ComfyUI-iTools": [ + [ + "iToolsAddOverlay", + "iToolsCheckerBoard", + "iToolsCompareImage", + "iToolsGridFiller", + "iToolsKSampler", + "iToolsLineLoader", + "iToolsLoadImagePlus", + "iToolsLoadImages", + "iToolsLoadRandomImage", + "iToolsPreviewImage", + "iToolsPreviewText", + "iToolsPromptLoader", + "iToolsPromptRecord", + "iToolsPromptSaver", + "iToolsPromptStyler", + "iToolsPromptStylerExtra", + "iToolsRegexNode", + "iToolsTextReplacer", + "iToolsVaePreview" + ], + { + "title_aux": "ComfyUI-iTools" } ], "https://github.com/MokkaBoss1/ComfyUI_Mokkaboss1": [ [ + "AnimeCosplayDir", "AspectRatioCondition", + "ChooseImage", "Colors", + "CombinedCrop", "ConnectFloat", "ConnectImage", "ConnectInteger", + "ConnectInteger2", "ConnectLatent", "ConnectString", + "CycleInteger", + "DirSelector", "DoubleClipTextEncode", + "DoubleConditioningMixer", "EmbeddingLoader", + "FilmCharDir", + "FlexEmptyLatent", + "FloatEvaluate", + "FuseImages", + "FuseImages2", "HashText", "HueSatLum", + "HueShift", "ImageDimensions", + "ImageDimensionsBatch", + "ImageOverlayResized", + "ImageResizeLong", + "ImageZigzag", "IndoorBackgrounds", + "IndoorDir", + "IntEvaluate", "IntFloatDict", "IntStringDict", + "JsonSearch", + "KillWorkflow", "LandscapeBackgrounds", + "LandscapeDir", + "LinEqEval", + "MakeupStylesDir", + "Mbsampler", "OptimalCrop", + "Overlay", + "PhotomontageA", + "PhotomontageB", + "PhotomontageC", + "PostSamplerCrop", + "PresetLoad", + "PresetRemove", + "PresetSave", + "PromptSwitcher", + "QuadClipTextEncode", + "RandomString", "SDXLEmptyLatent", + "SavePrompt", "SaveWithMetaData", + "SaveWithMetaData2", + "SearchReplace", "SimplePrompts", + "SpecificStylesDir", + "SplitImages", + "StringJoin", "TimeStamp", + "TintnShift", "TricolorComposition", "WorkflowSettings", "WrapText", "X_In_a_Dress", "X_In_a_Suit", "X_In_a_Suit)", - "ZoomCrop" + "ZoomCrop", + "imageborder" ], { "title_aux": "Node Pack mostly for manipulating strings and integers" } ], + "https://github.com/MontagenAI/ComfyUI-Montagen": [ + [ + "MontagenAudioAdapter", + "MontagenAudioConvertResourceAdapter", + "MontagenAudioListAdapter", + "MontagenCreateTimeline", + "MontagenEdgeTTSNode", + "MontagenFishAudioCloneNode", + "MontagenFishAudioTTSNode", + "MontagenImageAdapter", + "MontagenImageListAdapter", + "MontagenRenderTimeline", + "MontagenResourceConvertAudioAdapter", + "MontagenSRTListParser", + "MontagenStickerAdapter", + "MontagenStickerListAdapter", + "MontagenTextAdapter", + "MontagenTextListAdapter", + "MontagenVideoAdapter", + "MontagenVideoListAdapter" + ], + { + "title_aux": "ComfyUI-Montagen" + } + ], + "https://github.com/MoonHugo/ComfyUI-BAGEL-Hugo": [ + [ + "BagelByHugo" + ], + { + "title_aux": "ComfyUI-BAGEL-Hugo" + } + ], + "https://github.com/MoonHugo/ComfyUI-BiRefNet-Hugo": [ + [ + "BiRefNet_Hugo" + ], + { + "title_aux": "ComfyUI-BiRefNet-Hugo" + } + ], + "https://github.com/MoonHugo/ComfyUI-FFmpeg": [ + [ + "AddAudio", + "AddImgWatermark", + "AddTextWatermark", + "ExtractAudio", + "Frames2Video", + "ImageCopy", + "ImagePath2Tensor", + "ImagesSave", + "LoadImageFromDir", + "MergingVideoByPlenty", + "MergingVideoByTwo", + "MultiCuttingVideo", + "PipVideo", + "SingleCuttingVideo", + "StitchingVideo", + "Video2Frames", + "VideoFlip", + "VideoPlayback", + "VideoTransition" + ], + { + "title_aux": "ComfyUI-FFmpeg" + } + ], + "https://github.com/MoonHugo/ComfyUI-StableAudioOpen": [ + [ + "Text2Audio" + ], + { + "title_aux": "ComfyUI-StableAudioOpen" + } + ], + "https://github.com/MovieLabs/comfyui-movielabs-util": [ + [ + "PublishAsset", + "PublishBlender" + ], + { + "title_aux": "MovieLabs ComfyUI Nodes for Publishing Workflow" + } + ], "https://github.com/MrForExample/ComfyUI-3D-Pack": [ [], { @@ -2399,6 +10038,27 @@ "title_aux": "ComfyUI-AnimateAnyone-Evolved" } ], + "https://github.com/MrSamSeen/ComfyUI_SSBeforeAfterNode": [ + [ + "SSBeforeAndAfterVideo", + "SSBeforeAndAfterVideoWithDepthMap" + ], + { + "title_aux": "ComfyUI_SSBeforeAfterNode" + } + ], + "https://github.com/MrSamSeen/ComfyUI_SSStereoscope": [ + [ + "SBS_External_Depthmap_by_SamSeen", + "SBS_Image_Uploader", + "SBS_V2_by_SamSeen", + "SBS_Video_Combiner", + "SBS_Video_Uploader" + ], + { + "title_aux": "SideBySide_Stereoscope" + } + ], "https://github.com/Munkyfoot/ComfyUI-TextOverlay": [ [ "Text Overlay" @@ -2407,6 +10067,227 @@ "title_aux": "ComfyUI-TextOverlay" } ], + "https://github.com/MushroomFleet/ComfyUI-DJZ-POML": [ + [ + "ZenkaiPOMLProcessor", + "ZenkaiPOMLTemplate" + ], + { + "title_aux": "Zenkai-POML for ComfyUI" + } + ], + "https://github.com/MuziekMagie/ComfyUI-Matchering": [ + [ + "Matchering", + "MatcheringAdvanced", + "MatcheringLimiterConfig" + ], + { + "title_aux": "ComfyUI-Matchering" + } + ], + "https://github.com/MzMaXaM/ComfyUi-MzMaXaM": [ + [ + "KSamplerWithVAE", + "SelectLatentSize1MP", + "SelectLatentSize2MP", + "TextEncode3in1", + "UpscaleImageBy1_5x", + "UpscaleLatentBy1_5x", + "selectLatentSizePlus" + ], + { + "title_aux": "ComfyUi-MzMaXaM" + } + ], + "https://github.com/N3rd00d/ComfyUI-Paint3D-Nodes": [ + [ + "3D_GenerateDepthImage", + "3D_GenerateInpaintMask", + "3D_GenerateInpaintUVMapMask", + "3D_GeneratePreviewVideo", + "3D_LoadMeshModel", + "3D_Projection", + "3D_SaveUVMapImage", + "3D_TrainConfig", + "3D_TrainConfigPipe" + ], + { + "title_aux": "ComfyUI-Paint3D-Nodes" + } + ], + "https://github.com/NHLStenden/ComfyUI-ImageBag": [ + [ + "EnhancedImageColourTransferNode" + ], + { + "title_aux": "ComfyUI-ImageBag" + } + ], + "https://github.com/NMWave/ComfyUI-Nader-Tagging": [ + [ + "Load Text List", + "Split Sentences", + "Split Tags", + "Tag Alternating Combiner", + "Tag Duplicate Remover", + "Token Counter" + ], + { + "title_aux": "Image Captioning and Tagging Assistor Nodes" + } + ], + "https://github.com/NVIDIAGameWorks/ComfyUI-RTX-Remix": [ + [ + "RTXRemixCloseProject", + "RTXRemixCreateLayer", + "RTXRemixDefineLayerId", + "RTXRemixDeleteFile", + "RTXRemixEndContext", + "RTXRemixGetDefaultDirectory", + "RTXRemixGetEditTarget", + "RTXRemixGetLayers", + "RTXRemixGetLoadedProject", + "RTXRemixGetTextures", + "RTXRemixIngestTexture", + "RTXRemixInvertBool", + "RTXRemixLayerType", + "RTXRemixLayerTypes", + "RTXRemixMuteLayer", + "RTXRemixOpenProject", + "RTXRemixRemoveLayer", + "RTXRemixRestAPIDetails", + "RTXRemixSaveLayer", + "RTXRemixSetEditTarget", + "RTXRemixSetTexture", + "RTXRemixStartContext", + "RTXRemixStrToList", + "RTXRemixStringConcatenate", + "RTXRemixStringConstant", + "RTXRemixSwitch", + "RTXRemixTextureTypeToUSDAttribute", + "RTXRemixTexturesType", + "RTXRemixTexturesTypes" + ], + { + "title_aux": "ComfyUI-RTX-Remix" + } + ], + "https://github.com/NakamuraShippo/ComfyUI-NS-ManySliders": [ + [ + "NS_ManySliders" + ], + { + "title_aux": "ComfyUI-NS-ManySliders" + } + ], + "https://github.com/NakamuraShippo/ComfyUI-NS-PromptList": [ + [ + "NS-PromptList" + ], + { + "title_aux": "ComfyUI-PromptList" + } + ], + "https://github.com/NakamuraShippo/ComfyUI-NS-Util": [ + [ + "AlbedoMapGenerator", + "NS-FlexPreset", + "NS-ManySliders", + "NS-PromptList", + "NS-ToonFilter", + "SimpleLLMAddDocument", + "SimpleLLMAddMemory", + "SimpleLLMAgent", + "SimpleLLMAgentToTool", + "SimpleLLMAgentWithRules", + "SimpleLLMChainOfThought", + "SimpleLLMConfigClaude", + "SimpleLLMConfigGemini", + "SimpleLLMConfigOllama", + "SimpleLLMConfigOpenAI", + "SimpleLLMDisplayText", + "SimpleLLMLoadWorkflow", + "SimpleLLMMemoryBank", + "SimpleLLMMergeText", + "SimpleLLMRAGQuery", + "SimpleLLMRunPrompt", + "SimpleLLMStringViewer", + "SimpleLLMTextInput", + "SimpleLLMTextOutput", + "SimpleLLMVectorStore" + ], + { + "title_aux": "ComfyUI-NS-Util" + } + ], + "https://github.com/NeoDroleDeGueule/comfyui-image-mixer": [ + [ + "ImageLatentMixer" + ], + { + "title_aux": "comfyui-image-mixer" + } + ], + "https://github.com/NeoGriever/ComfyUI-NeoGriever": [ + [ + "NGs_BetterCLIPTextEncode", + "NGs_Checkerboard_Generator", + "NGs_Create_Solid_Color", + "NGs_Discord_Webhook", + "NGs_Fill_with_Color", + "NGs_Image_Progress_Bar", + "NGs_Multimask_Read", + "NGs_Multimask_Write", + "NGs_ResolutionProvider", + "NGs_Sliders_FLOAT", + "NGs_Sliders_INT", + "NGs_Sliders_PERCENTAGECUT", + "NGs_String_Operator", + "NGs_String_Squisher", + "NGs_Tag_Source", + "NGs_TextBox_JOIN", + "NGs_TextBox_SIMPLE", + "NGs_TextBox_x2", + "NGs_TextBox_x3", + "NGs_Text_Cut_String" + ], + { + "title_aux": "ComfyUI - NeoGriever" + } + ], + "https://github.com/NeonLightning/neonllama": [ + [ + "OllamaPromptFromIdea" + ], + { + "title_aux": "neonllama" + } + ], + "https://github.com/NeuralSamurAI/ComfyUI-Dimensional-Latent-Perlin": [ + [ + "NoisyLatentPerlinD" + ], + { + "title_aux": "Dimensional Latent Perlin for ComfyUI" + } + ], + "https://github.com/NeuralSamurAI/ComfyUI-FluxPseudoNegativePrompt": [ + [ + "FluxPseudoNegativeNode" + ], + { + "title_aux": "FluxPseudoNegative" + } + ], + "https://github.com/NeuralSamurAI/ComfyUI-PromptJSON": [ + [ + "PromptJSON" + ], + { + "title_aux": "PromptJSON Node for ComfyUI" + } + ], "https://github.com/NeuralSamurAI/Comfyui-Superprompt-Unofficial": [ [ "SuperPrompterNode" @@ -2415,6 +10296,49 @@ "title_aux": "SuperPrompter Node for ComfyUI" } ], + "https://github.com/NeuroSenko/ComfyUI_LLM_SDXL_Adapter": [ + [ + "ApplyLLMToSDXLAdapter", + "LLMAdapterLoader", + "LLMAdapterLoaderCustom", + "LLMGGUFModelLoader", + "LLMModelLoader", + "LLMTextEncoder", + "T5GEMMALoader", + "T5GEMMATextEncoder" + ], + { + "title_aux": "ComfyUI LLM SDXL Adapter" + } + ], + "https://github.com/NewNoviceChen/ComfyUI-XingLiu": [ + [ + "Image2ImageByAlpha", + "Image2ImageCustom", + "Image2ImageCustomAlpha", + "MakeAuth", + "MakeControlNet", + "MakeHiResFix", + "MakeLora", + "MergeControlNet", + "MergeLora", + "Text2ImageByAlpha", + "Text2ImageCustom", + "Text2ImageCustomAlpha", + "UploadLibLib" + ], + { + "title_aux": "ComfyUI-XingLiu" + } + ], + "https://github.com/NguynHungNguyen/Segment-Bedroom-Interior": [ + [ + "BedroomFurnitureMask" + ], + { + "title_aux": "Segment Any Bedroom Interior" + } + ], "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite": [ [ "LatentTravel" @@ -2423,9 +10347,36 @@ "title_aux": "ComfyUI_TravelSuite" } ], + "https://github.com/Nikosis/ComfyUI-Nikosis-Nodes": [ + [ + "AspectRatioNikosis", + "PromptCameraAngleSelectorNikosis", + "PromptMultipleStylesSelectorNikosis", + "TextConcatenateNikosis" + ], + { + "title_aux": "ComfyUI-Nikosis-Nodes" + } + ], + "https://github.com/Nikosis/ComfyUI-Nikosis-Preprocessors": [ + [ + "DepthAnythingV2Nikosis", + "EdgePreprocessorNikosis", + "LaplacianPreprocessorNikosis", + "LineArtPreprocessorNikosis", + "LineArtSketchPreprocessorNikosis" + ], + { + "title_aux": "ComfyUI-Nikosis-Preprocessors" + } + ], "https://github.com/NimaNzrii/comfyui-photoshop": [ [ - "PhotoshopToComfyUI" + "\ud83d\udd39 Photoshop RemoteConnection", + "\ud83d\udd39ClipPass", + "\ud83d\udd39Photoshop ComfyUI Plugin", + "\ud83d\udd39SendTo Photoshop Plugin", + "\ud83d\udd39modelPass" ], { "title_aux": "comfyui-photoshop" @@ -2447,6 +10398,14 @@ "title_aux": "ComfyUi-NoodleWebcam" } ], + "https://github.com/Njbx/ComfyUI-LTX13B-Blockswap": [ + [ + "LTXBlockswap" + ], + { + "title_aux": "ComfyUI-LTX13B-Blockswap" + } + ], "https://github.com/Nlar/ComfyUI_CartoonSegmentation": [ [ "AnimeSegmentation", @@ -2462,6 +10421,16 @@ "title_aux": "ComfyUI_CartoonSegmentation" } ], + "https://github.com/Nojahhh/ComfyUI_GLM4_Wrapper": [ + [ + "GLM-4 Inferencing", + "GLM-4 Model Loader", + "GLM-4 Prompt Enhancer" + ], + { + "title_aux": "ComfyUI GLM-4 Wrapper" + } + ], "https://github.com/NotHarroweD/Harronode": [ [ "Harronode" @@ -2602,6 +10571,50 @@ "title_aux": "ComfyUI-N-Nodes" } ], + "https://github.com/NyaFuP/ComfyUI_Preview_Selector": [ + [ + "NFPreviewSelector" + ], + { + "title_aux": "NF Preview Selector" + } + ], + "https://github.com/NyaamZ/efficiency-nodes-ED": [ + [ + "Context To BasicPipe", + "Context To DetailerPipe", + "Detailer (SEGS) \ud83d\udcacED", + "Efficient Loader \ud83d\udcacED", + "Embedding Stacker \ud83d\udcacED", + "Ext Model Input \ud83d\udcacED", + "FaceDetailer \ud83d\udcacED", + "Get Booru Tag \ud83d\udcacED", + "Int Holder \ud83d\udcacED", + "KSampler (Efficient) \ud83d\udcacED", + "KSampler Text \ud83d\udcacED", + "LoRA Stacker \ud83d\udcacED", + "Load Image \ud83d\udcacED", + "MaskDetailer \ud83d\udcacED", + "Refiner Script \ud83d\udcacED", + "Regional Processor \ud83d\udcacED", + "Regional Script \ud83d\udcacED", + "Regional Stacker \ud83d\udcacED", + "SUPIR Model Loader \ud83d\udcacED", + "SUPIR Sampler \ud83d\udcacED", + "Save Image \ud83d\udd14ED", + "Simple Text \ud83d\udcacED", + "TIPO Script \ud83d\udcacED", + "Ultimate SD Upscale \ud83d\udcacED", + "Wildcard Encode \ud83d\udcacED" + ], + { + "author": "NyaamZ", + "description": "Expansion of Efficiency Nodes for ComfyUI. Significant UX improvements.", + "nickname": "Efficiency Nodes ED", + "title": "Efficiency Nodes ExtendeD", + "title_aux": "Efficiency Nodes ExtendeD" + } + ], "https://github.com/Off-Live/ComfyUI-off-suite": [ [ "Apply CLAHE", @@ -2627,12 +10640,50 @@ "title_aux": "ComfyUI-off-suite" } ], - "https://github.com/Onierous/QRNG_Node_ComfyUI/raw/main/qrng_node.py": [ + "https://github.com/OneThingAI/ComfyUI_Onething_CV": [ [ - "QRNG_Node_CSV" + "OneThingAI ImageToText" ], { - "title_aux": "QRNG_Node_ComfyUI" + "title_aux": "ComfyUI OneThing CV Node" + } + ], + "https://github.com/OneThingAI/ComfyUI_Onething_Image": [ + [ + "OneThingAILoader" + ], + { + "title_aux": "ComfyUI OneThing AI Node" + } + ], + "https://github.com/Onionman61/ComfyUI-ModelScope-Kontext": [ + [ + "ModelScopeKontextAPI" + ], + { + "title_aux": "ComfyUI ModelScope Kontext API Node" + } + ], + "https://github.com/OpalSky-AI/OpalSky_Nodes": [ + [ + "PromptAssistantOpalSky", + "StringSwitchOpalSky", + "string_switch_opalsky" + ], + { + "title_aux": "OpalSky Nodes" + } + ], + "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex": [ + [ + "Pipe From Parameters", + "Pipe To Parameters", + "Prompt Tidy", + "Text Switch 2 Way", + "Text With Context" + ], + { + "title_aux": "ComfyUI-Simple-Of-Complex" } ], "https://github.com/PCMonsterx/ComfyUI-CSV-Loader": [ @@ -2652,6 +10703,76 @@ "title_aux": "ComfyUI-CSV-Loader" } ], + "https://github.com/PICOPON/ComfyUI-API-OpenAI-Node": [ + [ + "OpenAINode" + ], + { + "title_aux": "ComfyUI OpenAI Node" + } + ], + "https://github.com/Pablerdo/ComfyUI-MultiCutAndDrag": [ + [ + "BatchImageToMask", + "LoadImageFromBase64", + "LoadImagesFromBase64Array", + "MapTrajectoriesToSegmentedMasks", + "MultiCutAndDragOnPath" + ], + { + "title_aux": "ComfyUI-MultiCutAndDrag" + } + ], + "https://github.com/Pablerdo/ComfyUI-ResizeZeptaPayload": [ + [ + "ResizeImageBatch", + "ResizeTrajectories" + ], + { + "title_aux": "ComfyUI-ResizeZeptaPayload" + } + ], + "https://github.com/Pablerdo/ComfyUI-StableVirtualCameraWrapper": [ + [ + "SVCFly", + "SVCFly_Bash" + ], + { + "title_aux": "Stable Virtual Camera" + } + ], + "https://github.com/Pablerdo/ComfyUI-ZeptaframePromptMerger": [ + [ + "MergePrompts" + ], + { + "title_aux": "ComfyUI-ZeptaframePromptMerger" + } + ], + "https://github.com/PanicTitan/ComfyUI-Fooocus-V2-Expansion": [ + [ + "FooocusV2Expansion" + ], + { + "title_aux": "ComfyUI-Fooocus-V2-Expansion" + } + ], + "https://github.com/PanicTitan/ComfyUI-Gallery": [ + [ + "GalleryNode" + ], + { + "title_aux": "ComfyUI-Gallery" + } + ], + "https://github.com/Parameshvadivel/ComfyUI-SVGview": [ + [ + "SVGPreview" + ], + { + "title_aux": "ComfyUI-SVGview" + } + ], "https://github.com/ParisNeo/lollms_nodes_suite": [ [ "Artbot", @@ -2674,6 +10795,30 @@ "title_aux": "ComfyUI-Malefish-Custom-Scripts" } ], + "https://github.com/PauldeLavallaz/comfyui_claude_prompt_generator": [ + [ + "ClaudeCustomPrompt" + ], + { + "title_aux": "Claude Prompt Generator" + } + ], + "https://github.com/PenguinTeo/Comfyui-GeminiBanana": [ + [ + "GeminiFlash25Node" + ], + { + "title_aux": "GeminiBanana for ComfyUI" + } + ], + "https://github.com/PenguinTeo/Comfyui-TextEditor-Penguin": [ + [ + "PenguinTextOnImage" + ], + { + "title_aux": "Comfyui-TextEditor-Penguin" + } + ], "https://github.com/Pfaeff/pfaeff-comfyui": [ [ "AstropulsePixelDetector", @@ -2686,37 +10831,287 @@ "title_aux": "pfaeff-comfyui" } ], - "https://github.com/Pos13/comfyui-cyclist": [ + "https://github.com/Phando/ComfyUI-PhandoNodes": [ [ - "CyclistCompare", - "CyclistMathFloat", - "CyclistMathInt", - "CyclistTimer", - "CyclistTimerStop", - "CyclistTypeCast", - "Interrupt", - "LoopManager", - "MemorizeConditioning", - "MemorizeFloat", - "MemorizeInt", - "MemorizeString", - "OverrideImage", - "OverrideLatent", - "OverrideModel", - "RecallConditioning", - "RecallFloat", - "RecallInt", - "RecallString", - "ReloadImage", - "ReloadLatent", - "ReloadModel" + "SearchBySubstring", + "TextConcatenateDynamic" ], { - "author": "Pos13", - "description": "This extension provides tools to iterate generation results between runs. In general, it's for cycles.", - "nickname": "comfyui-cyclist", - "title": "Cyclist", - "title_aux": "Cyclist" + "title_aux": "ComfyUI-PhandoNodes" + } + ], + "https://github.com/Pheat-AI/Remade_nodes": [ + [ + "Batch Enlarged Overlay", + "Batch Image Blend by Mask", + "Batch Image Overlay", + "CannyImageCropper", + "MaskBoundingBox", + "Place Canny On Canvas", + "REMADE Batch Color Blend", + "REMADE Batch Image Blend", + "REMADE Batch Image Composite Masked", + "REMADE Batch Image Select Channel", + "Remove Black To Transparent", + "Shrink Canny Image" + ], + { + "title_aux": "Remade_nodes" + } + ], + "https://github.com/PiggyDance/ComfyUI_OpenCV": [ + [ + "OpenCV_CvtColor", + "OpenCV_GaussianBlur", + "OpenCV_MedianBlur" + ], + { + "title_aux": "ComfyUI_OpenCV" + } + ], + "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-SaveMP3": [ + [ + "SaveAudioAsMP3" + ], + { + "title_aux": "ComfyUI-LikeSpiderAI-SaveMP3" + } + ], + "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-UI": [ + [ + "AudioExport" + ], + { + "title_aux": "ComfyUI-LikeSpiderAI-UI" + } + ], + "https://github.com/Pirog17000/Pirogs-Nodes": [ + [ + "BatchCropFromMaskSimple", + "BatchUncropSimple", + "BlurByMask", + "BlurMask", + "CropImage", + "CropMaskByBBox", + "DSLRNoise", + "GradientMaskGenerator", + "ImageBlendByMask", + "ImageScalePro", + "InvertMask", + "KSamplerMultiSeed", + "KSamplerMultiSeedPlus", + "LensSimulatedBloom", + "PreviewImageQueue", + "PromptRandomizer", + "StringCombine", + "TestResetButton", + "Watermark" + ], + { + "title_aux": "Pirog's Nodes for ComfyUI" + } + ], + "https://github.com/PixelFunAI/ComfyUI_PixelFun": [ + [ + "HunyuanLoadAndEditLoraBlocks", + "HunyuanLoadFromBlockCache", + "HunyuanLoraFromJson", + "HunyuanLoraFromPrompt" + ], + { + "title_aux": "Hunyuan LoRA Loader Nodes" + } + ], + "https://github.com/PixelML/ComfyUI-PixelML-CustomNodes": [ + [ + "AgenticflowAIVariable", + "BooleanInput_PixelML", + "FloatInput_PixelML", + "IntegerInput_PixelML", + "LoadImageFromURL_PixelML", + "SaveImage_PixelML", + "StringInput_PixelML" + ], + { + "title_aux": "PixelML ComfyUI Nodes" + } + ], + "https://github.com/PnthrLeo/comfyUI-PL-data-tools": [ + [ + "AreasGenerator", + "BatchImageGetter", + "CloseImagesSearcher" + ], + { + "title_aux": "comfyUI-PL-data-tools" + } + ], + "https://github.com/Poseidon-fan/ComfyUI-RabbitMQ-Publisher": [ + [ + "Publish Image To RabbitMQ" + ], + { + "title_aux": "ComfyUI-RabbitMQ-Publisher" + } + ], + "https://github.com/Positliver/comfyui-zegr": [ + [ + "ZEGR_ALI_UF", + "ZEGR_LF", + "ZEGR_WD" + ], + { + "title_aux": "comfyui-zegr" + } + ], + "https://github.com/PowerHouseMan/ComfyUI-AdvancedLivePortrait": [ + [ + "AdvancedLivePortrait", + "ExpData", + "ExpressionEditor", + "LoadExpData", + "PrintExpData:", + "SaveExpData" + ], + { + "title_aux": "ComfyUI-AdvancedLivePortrait" + } + ], + "https://github.com/PressWagon/ComfyUI-StringsAndThings": [ + [ + "DebugString", + "FormatConcatStrings", + "FormattingSingle", + "FourierAnalysisNode", + "ImageDifference", + "MosaicEffectNode", + "PWLoraNameCollector", + "PWLoraSelector", + "TextEmbeddingsInterrogator" + ], + { + "title_aux": "ComfyUI-StringsAndThings" + } + ], + "https://github.com/ProGamerGov/ComfyUI_preview360panorama": [ + [ + "PanoramaVideoViewerNode", + "PanoramaViewerNode" + ], + { + "title_aux": "Preview 360 Panorama for ComfyUI" + } + ], + "https://github.com/ProGamerGov/ComfyUI_pytorch360convert": [ + [ + "Apply Circular Padding Model", + "Apply Circular Padding VAE", + "Create 180 To 360 Mask", + "Create Pole Mask", + "Create Seam Mask", + "Crop 360 to 180 Equirectangular", + "Crop Image with Coords", + "Crop Stereo to Monoscopic", + "Cubemap to Equirectangular", + "Equirectangular Mask to Face", + "Equirectangular Rotation", + "Equirectangular to Cubemap", + "Equirectangular to Face", + "Equirectangular to Perspective", + "Face Mask to Equirectangular", + "Face to Equirectangular", + "Mask Equirectangular Rotation", + "Masked Diff C2E", + "Merge Monoscopic into Stereo", + "Pad 180 to 360 Equirectangular", + "Paste Image with Coords", + "Roll Image Axes", + "Roll Mask Axes", + "Split Cubemap Faces", + "Stack Cubemap Faces" + ], + { + "title_aux": "ComfyUI_pytorch360convert" + } + ], + "https://github.com/PrunaAI/ComfyUI_pruna": [ + [ + "CacheModelAdaptive", + "CacheModelAuto", + "CacheModelPeriodic", + "PrunaCompileModel" + ], + { + "title_aux": "Pruna nodes for ComfyUI" + } + ], + "https://github.com/Pseudotools/Pseudocomfy": [ + [ + "PseudoApplyDenseDiffusionSDXL", + "PseudoApplyIPAdaperSDXL", + "PseudoConcatStrings", + "PseudoFloatToInt", + "PseudoIPAdapterUnifiedLoaderClone", + "PseudoLoadModelSnapshot", + "PseudoMaskAggregate", + "PseudoMaskBlur", + "PseudoMaskClamp", + "PseudoMaskInvert", + "PseudoMaskRemap", + "PseudoMaskReshape", + "PseudoPreviewStrings", + "PseudoProcessEnvironmentalPrompts", + "PseudoProcessImagePrompt", + "PseudoProcessMaterialPrompts", + "PseudoRemapNormalizedFloat", + "PseudoSaveImageWithEmbeddedMasks", + "PseudoUnpackModelSnapshot" + ], + { + "title_aux": "Pseudocomfy" + } + ], + "https://github.com/Pun0110/ComfyUI-CSV-Styler": [ + [ + "PT.CSV Styler" + ], + { + "title_aux": "CSV Styler" + } + ], + "https://github.com/Q-Bug4/Comfyui-Qb-DateNodes": [ + [ + "DateTimeFormatterNode" + ], + { + "title_aux": "Comfyui-Qb-Date-Nodes" + } + ], + "https://github.com/Q-Bug4/Comfyui-Simple-Json-Node": [ + [ + "JSONArrayIteratorNode", + "JSONGeneratorNode", + "JSONKeyCheckerNode", + "JSONLengthNode", + "JSONMergeNode", + "JSONModifierNode", + "JSONObjectIteratorNode", + "JSONParserNode", + "JSONStringifierNode", + "RandomJSONValueNode" + ], + { + "title_aux": "Simple JSON Parser Node for ComfyUI" + } + ], + "https://github.com/Q-Bug4/comfyui-qbug-batch": [ + [ + "CrossJoinSelector", + "ListFiles", + "NoPreviewSaveImage" + ], + { + "title_aux": "comfyui-qbug-batch" } ], "https://github.com/QaisMalkawi/ComfyUI-QaisHelper": [ @@ -2733,6 +11128,135 @@ "title_aux": "ComfyUI-Qais-Helper" } ], + "https://github.com/QijiTec/ComfyUI-RED-UNO": [ + [ + "REDUNOGenerate", + "REDUNOModelLoader" + ], + { + "title_aux": "ComfyUI-RED-UNO" + } + ], + "https://github.com/R5-Revo/llm-node-comfyui": [ + [ + "UniversalLLMNode" + ], + { + "title_aux": "Universal LLM Node for ComfyUI" + } + ], + "https://github.com/RUiNtheExtinct/comfyui-save-file-extended": [ + [ + "LoadAudioExtended", + "LoadImageExtended", + "LoadVideoExtended", + "SaveAudioExtended", + "SaveAudioMP3Extended", + "SaveAudioOpusExtended", + "SaveImageExtended", + "SaveVideoExtended", + "SaveWEBMExtended" + ], + { + "title_aux": "comfyui-save-file-extended" + } + ], + "https://github.com/Raapys/ComfyUI-LatentGC_Aggressive": [ + [ + "LatentGC" + ], + { + "title_aux": "LatentGC Aggressive" + } + ], + "https://github.com/RainyN0077/ComfyUI-PromptSE": [ + [ + "PromptSE" + ], + { + "title_aux": "ComfyUI-PromptSE" + } + ], + "https://github.com/RamonGuthrie/ComfyUI-RBG-ImageStitchPlus": [ + [ + "RBGImageStitchPlus", + "RBGPadPro" + ], + { + "title_aux": "ComfyUI-RBG-ImageStitchPlus" + } + ], + "https://github.com/Raykosan/ComfyUI_RS-SaturationNode": [ + [ + "RS_SaturationSwitch" + ], + { + "title_aux": "ComfyUI_RS-SaturationNode" + } + ], + "https://github.com/Raykosan/ComfyUI_RaykoStudio": [ + [ + "RS_RusTextOverlay" + ], + { + "title_aux": "ComfyUI_RaykoStudio" + } + ], + "https://github.com/RaymondProduction/comfyui-zerna-pack": [ + [ + "CLIPDynamicPromptEncoder //Zerna Pack", + "DynamicPromptInjector //Zerna Pack", + "LastImage //Zerna Pack", + "UnzipPrompt //Zerna Pack" + ], + { + "author": "Raymond", + "description": "A set of nodes for batch processing of text and images.", + "nickname": "Zerna Pack", + "title": "Zerna Pack", + "title_aux": "Zerna Pack" + } + ], + "https://github.com/ReBeating/ComfyUI-Artist-Selector": [ + [ + "LoadArtistTag" + ], + { + "title_aux": "ComfyUI-Artist-Selector" + } + ], + "https://github.com/RegulusAlpha/ComfyUI-DynPromptSimplified": [ + [ + "DynPromptExpand" + ], + { + "title_aux": "ComfyUI Dynamic Prompting Simplified" + } + ], + "https://github.com/ReinerBforartists/comfyui_auto_prompt_schedule": [ + [ + "AutoPromptSchedule" + ], + { + "title_aux": "Auto Prompt Schedule" + } + ], + "https://github.com/ReinerBforartists/comfyui_text_line_combine": [ + [ + "CombineTextLines" + ], + { + "title_aux": "ComfyUI_Text_Line_Combine" + } + ], + "https://github.com/Reithan/negative_rejection_steering": [ + [ + "NRS" + ], + { + "title_aux": "Negative Rejection Steering" + } + ], "https://github.com/RenderRift/ComfyUI-RenderRiftNodes": [ [ "AnalyseMetadata", @@ -2746,6 +11270,133 @@ "title_aux": "ComfyUI-RenderRiftNodes" } ], + "https://github.com/RhizoNymph/ComfyUI-CLIPSlider": [ + [ + "CLIPSlider" + ], + { + "title_aux": "ComfyUI-CLIPSlider" + } + ], + "https://github.com/RhizoNymph/ComfyUI-ColorWheel": [ + [ + "AccurateColorWheelNode" + ], + { + "title_aux": "ComfyUI-ColorWheel" + } + ], + "https://github.com/RhizoNymph/ComfyUI-Latte": [ + [ + "LatteVideoGenerator" + ], + { + "title_aux": "ComfyUI-Latte" + } + ], + "https://github.com/RiceRound/ComfyUI_CryptoCat": [ + [ + "CryptoCatImage", + "DecodeCryptoNode", + "ExcuteCryptoNode", + "RandomSeedNode", + "SaveCryptoBridgeNode", + "SaveCryptoNode" + ], + { + "title_aux": "ComfyUI Compression and Encryption Node" + } + ], + "https://github.com/RiceRound/ComfyUI_RiceRound": [ + [ + "RiceRoundAdvancedChoiceNode", + "RiceRoundBooleanNode", + "RiceRoundDecryptNode", + "RiceRoundDownloadImageAndMaskNode", + "RiceRoundDownloadImageNode", + "RiceRoundDownloadMaskNode", + "RiceRoundEncryptNode", + "RiceRoundFloatNode", + "RiceRoundImageBridgeNode", + "RiceRoundImageNode", + "RiceRoundImageUrlNode", + "RiceRoundInputTextNode", + "RiceRoundIntNode", + "RiceRoundMaskBridgeNode", + "RiceRoundOutputBooleanNode", + "RiceRoundOutputFloatNode", + "RiceRoundOutputImageBridgeNode", + "RiceRoundOutputImageNode", + "RiceRoundOutputIntNode", + "RiceRoundOutputMaskBridgeNode", + "RiceRoundOutputTextNode", + "RiceRoundRandomSeedNode", + "RiceRoundSimpleChoiceNode", + "RiceRoundSimpleImageNode", + "RiceRoundStrToBooleanNode", + "RiceRoundStrToFloatNode", + "RiceRoundStrToIntNode", + "RiceRoundUploadImageNode" + ], + { + "title_aux": "RiceRound Cloud Node" + } + ], + "https://github.com/Rinsanga1/comfyui-florence2xy": [ + [ + "Florence2toCoordinatesButxy", + "LoadImageWithName" + ], + { + "title_aux": "comfyui-florence2xy" + } + ], + "https://github.com/Rizzlord/ComfyUI-RizzNodes": [ + [ + "RizzAnything", + "RizzBatchImageLoader", + "RizzBlur", + "RizzChannelPack", + "RizzClean", + "RizzCropAndScaleFromMask", + "RizzDynamicPromptGenerator", + "RizzEditImage", + "RizzLoadLatestImage", + "RizzLoadLatestMesh", + "RizzModelBatchLoader", + "RizzPasteAndUnscale", + "RizzUpscaleImageBatch" + ], + { + "title_aux": "ComfyUI-RizzNodes" + } + ], + "https://github.com/RodrigoSKohl/ComfyUI-Panoramic-ImgStitcher": [ + [ + "Image Stitching Node" + ], + { + "title_aux": "Panoramic Image Stitcher" + } + ], + "https://github.com/RodrigoSKohl/InteriorDesign-for-ComfyUI": [ + [ + "Control Items", + "Image Normalize", + "Interior Design Segmentator" + ], + { + "title_aux": "Interior Design for Comfyui" + } + ], + "https://github.com/RodrigoSKohl/comfyui-tryoff-anyone": [ + [ + "TryOffAnyoneNode" + ], + { + "title_aux": "TryOff Anyone" + } + ], "https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control": [ [ "LatentAddTransform", @@ -2772,19 +11423,62 @@ "title_aux": "Advanced Latent Control" } ], + "https://github.com/Ron-Digital/ComfyUI-SceneGenerator": [ + [ + "Scene Generator" + ], + { + "title_aux": "ComfyUI-SceneGenerator" + } + ], + "https://github.com/Runware/ComfyUI-Runware": [ + [ + "Runware API Manager", + "Runware Background Removal", + "Runware ControlNet", + "Runware ControlNet Combine", + "Runware ControlNet PreProcessor", + "Runware DeepCache", + "Runware Embedding Search", + "Runware Embeddings Combine", + "Runware IPAdapter", + "Runware IPAdapters Combine", + "Runware Image Caption", + "Runware Image Inference", + "Runware Image Masking", + "Runware Image Upscaler", + "Runware Imagen Inference", + "Runware Kontext Inference", + "Runware Lora Combine", + "Runware Lora Search", + "Runware Model Search", + "Runware Multi Inference", + "Runware Outpaint", + "Runware PhotoMaker V2", + "Runware Reference Images", + "Runware Refiner", + "Runware TeaCache", + "Runware VAE Search" + ], + { + "title_aux": "Runware.ai ComfyUI Inference API Integration" + } + ], "https://github.com/Ryuukeisyou/comfyui_face_parsing": [ [ + "BBoxDecompose(FaceParsing)", + "BBoxDetect(FaceParsing)", + "BBoxDetectorLoader(FaceParsing)", "BBoxListItemSelect(FaceParsing)", "BBoxResize(FaceParsing)", "ColorAdjust(FaceParsing)", - "FaceBBoxDetect(FaceParsing)", - "FaceBBoxDetectorLoader(FaceParsing)", "FaceParse(FaceParsing)", "FaceParsingModelLoader(FaceParsing)", "FaceParsingProcessorLoader(FaceParsing)", "FaceParsingResultsParser(FaceParsing)", "GuidedFilter(FaceParsing)", "ImageCropWithBBox(FaceParsing)", + "ImageCropWithBBoxList(FaceParsing)", "ImageInsertWithBBox(FaceParsing)", "ImageListSelect(FaceParsing)", "ImagePadWithBBox(FaceParsing)", @@ -2794,10 +11488,15 @@ "LatentCropWithBBox(FaceParsing)", "LatentInsertWithBBox(FaceParsing)", "LatentSize(FaceParsing)", + "MaskBatchComposite(FaceParsing)", + "MaskBlackOut(FaceParsing)", + "MaskBorderDissolve(FaceParsing)", + "MaskBorderDissolveAdvanced(FaceParsing)", "MaskComposite(FaceParsing)", - "MaskListComposite(FaceParsing)", + "MaskCropWithBBox(FaceParsing)", + "MaskInsertWithBBox(FaceParsing)", "MaskListSelect(FaceParsing)", - "MaskToBBox(FaceParsing)", + "MaskToBBoxList(FaceParsing)", "SkinDetectTraditional(FaceParsing)" ], { @@ -2811,12 +11510,107 @@ "ImageLoadFromBase64(IOHelpers)", "ImageSaveAsBase64(IOHelpers)", "ImageSaveToPath(IOHelpers)", - "TypeConversion(IOHelpers)" + "TypeConversion(IOHelpers)", + "VHSFileNamesToStrings(IOHelpers)" ], { "title_aux": "comfyui_io_helpers" } ], + "https://github.com/S4MUEL-404/ComfyUI-Prepack": [ + [ + "PrepackGetPipe", + "PrepackKsampler", + "PrepackLoras", + "PrepackModelDualCLIP", + "PrepackModelSingleCLIP", + "PrepackSeed", + "PrepackSetPipe" + ], + { + "title_aux": "ComfyUI Prepack" + } + ], + "https://github.com/S4MUEL-404/ComfyUI-S4Motion": [ + [ + "\ud83d\udc80Motion Config", + "\ud83d\udc80Motion Distortion", + "\ud83d\udc80Motion Mask", + "\ud83d\udc80Motion Opacity", + "\ud83d\udc80Motion Position", + "\ud83d\udc80Motion Position On Path", + "\ud83d\udc80Motion Rotation", + "\ud83d\udc80Motion Scale", + "\ud83d\udc80Motion Shake" + ], + { + "title_aux": "ComfyUI S4Motion" + } + ], + "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Image": [ + [ + "CombineImageBatch", + "GetImageBatch", + "ImageAdjustment", + "ImageBlendWithAlpha", + "ImageBoard", + "ImageColor", + "ImageCombine", + "ImageCropToFit", + "ImageFromBase64", + "ImageGetColor", + "ImageMaskExpand", + "ImageOverlay", + "ImagePalette", + "ImagePalette631", + "ImagePrimaryColor", + "ImageResize", + "ImageTilingPattern", + "ImageToBase64", + "SetImageBatch" + ], + { + "title_aux": "ComfyUI S4Tool Image" + } + ], + "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Text": [ + [ + "S4Tools Text Basic", + "S4Tools Text Font Base64", + "S4Tools Text Font URL", + "S4Tools Text Font file", + "S4Tools Text Style" + ], + { + "title_aux": "ComfyUI S4Tool Text" + } + ], + "https://github.com/SEkINVR/ComfyUI-SaveAs": [ + [ + "ComfyUISaveAs" + ], + { + "title_aux": "ComfyUI SaveAS" + } + ], + "https://github.com/SKBv0/ComfyUI_SKBundle": [ + [ + "AspectRatioAdvanced", + "DisplayEverything", + "ImageComparer", + "LensFlare", + "MultiFloat", + "MultiTextNode", + "PaintPro", + "SKB_AnySwitch", + "SeamlessTexture", + "TextBox", + "TitlePlus" + ], + { + "title_aux": "ComfyUI SKBundle" + } + ], "https://github.com/SLAPaper/ComfyUI-Image-Selector": [ [ "ImageDuplicator", @@ -2854,25 +11648,251 @@ "ImageScaleToMin", "LoadAesteticModel", "MD5ImageHashNode", + "NSFWClassifierNode", "SamplerPropertiesNode", "ScoreConverterNode", "SeedIncrementerNode", "SegformerNode", "SegformerNodeMasks", "SegformerNodeMergeSegments", - "StepCfgIncrementNode" + "StepCfgIncrementNode", + "WatermarkDetectionNode" ], { "title_aux": "ComfyUI-LexTools" } ], - "https://github.com/SadaleNet/CLIPTextEncodeA1111-ComfyUI/raw/master/custom_nodes/clip_text_encoder_a1111.py": [ + "https://github.com/SS-snap/ComfyUI-Ad_scheduler": [ [ - "CLIPTextEncodeA1111", - "RerouteTextForCLIPTextEncodeA1111" + "AD_Scheduler" ], { - "title_aux": "ComfyUI A1111-like Prompt Custom Node Solution" + "title_aux": "ComfyUI-Ad-scheduler" + } + ], + "https://github.com/SS-snap/ComfyUI-LBW_flux": [ + [ + "LoraBlockWeight_Flux" + ], + { + "title_aux": "ComfyUI-LBW_flux" + } + ], + "https://github.com/SS-snap/ComfyUI-Snap_Processing": [ + [ + "AreaCalculator", + "PyQtCanvasNode", + "Snapload" + ], + { + "title_aux": "Snap Processing for Comfyui" + } + ], + "https://github.com/SS-snap/Comfyui_SSsnap_pose-Remapping": [ + [ + "ApplyPoseScalesToFrames", + "CalculatePoseScales", + "ConvertPoseToStandardFormat", + "RenderKps" + ], + { + "title_aux": "Comfyui_SSsnap_pose-Remapping" + } + ], + "https://github.com/SXQBW/ComfyUI-Qwen": [ + [ + "Qwen2_Chat_Zho", + "Qwen2_ModelLoader_Zho", + "Qwen2_Zho" + ], + { + "title_aux": "ComfyUI-Qwen" + } + ], + "https://github.com/SXQBW/ComfyUI-Qwen-Omni": [ + [ + "QwenOmniCombined", + "VideoUploader" + ], + { + "title_aux": "ComfyUI-Qwen-Omni" + } + ], + "https://github.com/SXQBW/ComfyUI-Qwen-VL": [ + [ + "QwenVisionParser" + ], + { + "title_aux": "ComfyUI-Qwen-VL" + } + ], + "https://github.com/Saganaki22/ComfyUI-dotWaveform": [ + [ + "DottedWaveformVisualizer" + ], + { + "title_aux": "dotWaveform" + } + ], + "https://github.com/SamKhoze/ComfyUI-DeepFuze": [ + [ + "DeepFuze Save", + "DeepFuzeAdavance", + "DeepFuzeFaceSwap", + "DeepfuzePreview", + "LLM_node", + "PlayBackAudio", + "TTS_generation" + ], + { + "title_aux": "DeepFuze" + } + ], + "https://github.com/SamTyurenkov/comfyui-vace-preprocessors": [ + [ + "CombineLayoutTracksNode", + "VideoLayoutTrackAnnotatorNode" + ], + { + "title_aux": "comfyui_vace_preprocessors" + } + ], + "https://github.com/SamTyurenkov/comfyui_chatgpt": [ + [ + "ChatGPTImageEditNode", + "ChatGPTImageGenerationNode", + "ImageToBase64" + ], + { + "title_aux": "comfyui_chatgpt" + } + ], + "https://github.com/San4itos/ComfyUI-Save-Images-as-Video": [ + [ + "ConvertVideoFFmpeg_san4itos", + "LoadVideoByPath_san4itos", + "SaveFramesToVideoFFmpeg_san4itos" + ], + { + "title_aux": "Save Images to Video (FFmpeg) for ComfyUI" + } + ], + "https://github.com/SanDiegoDude/ComfyUI-DeepStereo": [ + [ + "ColorPickerNode", + "DepthMapProcessor", + "ImageEffectsTransformer", + "ImageResizeAndTransform", + "MiDaSDepthEstimator", + "ProceduralTextureGenerator", + "RandomDotStereogramGenerator", + "RandomNoiseGenerator", + "StereogramGenerator", + "TextureTransformer" + ], + { + "title_aux": "ComfyUI-DeepStereo" + } + ], + "https://github.com/SanDiegoDude/ComfyUI-Kontext-API": [ + [ + "FalKontextMaxMultiImageNode", + "KontextAPINode" + ], + { + "title_aux": "ComfyUI-Kontext-API" + } + ], + "https://github.com/SanDiegoDude/ComfyUI-SaveAudioMP3": [ + [ + "SaveAudioMP3" + ], + { + "title_aux": "ComfyUI-SaveAudioMP3" + } + ], + "https://github.com/Santodan/santodan-custom-nodes-comfyui": [ + [ + "LoRACachePreloader", + "RandomLoRACustom", + "RandomLoRAFolder" + ], + { + "title_aux": "Santodan Random LoRA Node" + } + ], + "https://github.com/Saquib764/omini-kontext": [ + [ + "NunchakuOminiKontextPatch", + "OminiKontextConditioning", + "OminiKontextEditor", + "OminiKontextModelPatch", + "OminiQwenImageEditModelPatch" + ], + { + "title_aux": "Omini Kontext" + } + ], + "https://github.com/SaturMars/ComfyUI-NVVFR": [ + [ + "NVVFR" + ], + { + "title_aux": "ComfyUI-NVVFR" + } + ], + "https://github.com/SaturMars/ComfyUI-QwenImageLoraConverter": [ + [ + "QwenLoraConverterNode" + ], + { + "title_aux": "ComfyUI Qwen LoRA Converter Node" + } + ], + "https://github.com/SayanoAI/Comfy-RVC": [ + [ + "Any2ListNode", + "AudioBatchValueNode", + "AudioInfoNode", + "AudioTranscriptionNode", + "BatchedTranscriptionEncoderNode", + "DownloadAudio", + "ImageRepeatInterleavedNode", + "LatentRepeatInterleavedNode", + "List2AnyNode", + "LoadHubertModel", + "LoadPitchExtractionParams", + "LoadRVCModelNode", + "LoadWhisperModelNode", + "MergeAudioNode", + "MergeImageBatches", + "MergeLatentBatches", + "MuseAudioFeatureExtractionNode", + "MuseImageFeatureExtractionNode", + "MuseTalkNode", + "ProcessAudioNode", + "RVC-Studio.LoadAudio", + "RVC-Studio.PreviewAudio", + "RVCNode", + "RVCProcessDatasetNode", + "RVCTrainModelNode", + "RVCTrainParamsNode", + "SimpleMathNode", + "SliceNode", + "SortImagesNode", + "UVR5Node", + "ZipNode" + ], + { + "title_aux": "Comfy-RVC" + } + ], + "https://github.com/Sayene/comfyui-base64-to-image-size": [ + [ + "LoadImageFromBase64Size" + ], + { + "title_aux": "comfyui-base64-to-image-size" } ], "https://github.com/Scholar01/ComfyUI-Keyframe": [ @@ -2885,8 +11905,33 @@ "title_aux": "SComfyUI-Keyframe" } ], + "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader": [ + [ + "CombinedDiffusersLoader", + "DiffusersClipLoader", + "DiffusersUNETLoader", + "DiffusersVAELoader" + ], + { + "title_aux": "ComfyUI-DiffusersLoader" + } + ], + "https://github.com/ScreamingHawk/comfyui-ollama-prompt-encode": [ + [ + "OllamaCLIPTextEncode", + "OllamaPromptGenerator" + ], + { + "author": "Michael Standen", + "description": "Use AI to generate prompts and perform CLIP text encoding", + "nickname": "Ollama Prompt Encode", + "title": "Ollama Prompt Encode", + "title_aux": "Ollama Prompt Encode" + } + ], "https://github.com/SeaArtLab/ComfyUI-Long-CLIP": [ [ + "LongCLIPTextEncodeFlux", "SeaArtLongClip", "SeaArtLongXLClipMerge" ], @@ -2894,6 +11939,51 @@ "title_aux": "ComfyUI-Long-CLIP" } ], + "https://github.com/SeanScripts/ComfyUI-PixtralLlamaMolmoVision": [ + [ + "AutoVisionModelLoader", + "JoinString", + "LlamaVisionGenerateText", + "LlamaVisionModelLoader", + "MolmoGenerateText", + "MolmoModelLoader", + "ParseBoundingBoxes", + "ParsePoints", + "PixtralGenerateText", + "PixtralImageEncode", + "PixtralModelLoader", + "PixtralTextEncode", + "PlotPoints", + "RegexFindAll", + "RegexSearch", + "RegexSplitString", + "RegexSubstitution", + "SelectIndex", + "SliceList" + ], + { + "title_aux": "ComfyUI-PixtralLlamaMolmoVision" + } + ], + "https://github.com/SeanScripts/ComfyUI-Unload-Model": [ + [ + "UnloadAllModels", + "UnloadModel" + ], + { + "title_aux": "ComfyUI-Unload-Model" + } + ], + "https://github.com/SeargeDP/ComfyUI_Searge_LLM": [ + [ + "Searge_AdvOptionsNode", + "Searge_LLM_Node", + "Searge_Output_Node" + ], + { + "title_aux": "Searge-LLM for ComfyUI v1.0" + } + ], "https://github.com/SeargeDP/SeargeSDXL": [ [ "SeargeAdvancedParameters", @@ -2974,178 +12064,28 @@ "title_aux": "SeargeSDXL" } ], - "https://github.com/Seedsa/Fooocus_Nodes": [ + "https://github.com/Sekiun/ComfyUI-WebpToPNGSequence": [ [ - "BasicScheduler", - "CLIPLoader", - "CLIPMergeSimple", - "CLIPSave", - "CLIPSetLastLayer", - "CLIPTextEncode", - "CLIPTextEncodeSDXL", - "CLIPTextEncodeSDXLRefiner", - "CLIPVisionEncode", - "CLIPVisionLoader", - "Canny", - "CheckpointLoader", - "CheckpointLoaderSimple", - "CheckpointSave", - "ConditioningAverage", - "ConditioningCombine", - "ConditioningConcat", - "ConditioningSetArea", - "ConditioningSetAreaPercentage", - "ConditioningSetMask", - "ConditioningSetTimestepRange", - "ConditioningZeroOut", - "ControlNetApply", - "ControlNetApplyAdvanced", - "ControlNetLoader", - "CropMask", - "DiffControlNetLoader", - "DiffusersLoader", - "DualCLIPLoader", - "EmptyImage", - "EmptyLatentImage", - "ExponentialScheduler", - "FeatherMask", - "FlipSigmas", - "Fooocus ApplyImagePrompt", - "Fooocus Controlnet", - "Fooocus ImagePrompt", - "Fooocus Inpaint", - "Fooocus KSampler", - "Fooocus Loader", - "Fooocus LoraStack", - "Fooocus PipeOut", - "Fooocus PreKSampler", - "Fooocus Styles", - "Fooocus Upscale", - "Fooocus detailerFix", - "Fooocus negative", - "Fooocus positive", - "Fooocus preDetailerFix", - "Fooocus samLoaderPipe", - "Fooocus ultralyticsDetectorPipe", - "FreeU", - "FreeU_V2", - "GLIGENLoader", - "GLIGENTextBoxApply", - "GrowMask", - "HyperTile", - "HypernetworkLoader", - "ImageBatch", - "ImageBlend", - "ImageBlur", - "ImageColorToMask", - "ImageCompositeMasked", - "ImageCrop", - "ImageInvert", - "ImageOnlyCheckpointLoader", - "ImageOnlyCheckpointSave", - "ImagePadForOutpaint", - "ImageQuantize", - "ImageScale", - "ImageScaleBy", - "ImageScaleToTotalPixels", - "ImageSharpen", - "ImageToMask", - "ImageUpscaleWithModel", - "InpaintModelConditioning", - "InvertMask", - "JoinImageWithAlpha", - "KSampler", - "KSamplerAdvanced", - "KSamplerSelect", - "KarrasScheduler", - "LatentAdd", - "LatentBatch", - "LatentBatchSeedBehavior", - "LatentBlend", - "LatentComposite", - "LatentCompositeMasked", - "LatentCrop", - "LatentFlip", - "LatentFromBatch", - "LatentInterpolate", - "LatentMultiply", - "LatentRotate", - "LatentSubtract", - "LatentUpscale", - "LatentUpscaleBy", - "LoadImage", - "LoadImageMask", - "LoadLatent", - "LoraLoader", - "LoraLoaderModelOnly", - "MaskComposite", - "MaskToImage", - "ModelMergeAdd", - "ModelMergeBlocks", - "ModelMergeSimple", - "ModelMergeSubtract", - "ModelSamplingContinuousEDM", - "ModelSamplingDiscrete", - "PatchModelAddDownscale", - "PerpNeg", - "PhotoMakerEncode", - "PhotoMakerLoader", - "PolyexponentialScheduler", - "PorterDuffImageComposite", - "PreviewImage", - "RebatchImages", - "RebatchLatents", - "RepeatImageBatch", - "RepeatLatentBatch", - "RescaleCFG", - "SDTurboScheduler", - "SD_4XUpscale_Conditioning", - "SVD_img2vid_Conditioning", - "SamplerCustom", - "SamplerDPMPP_2M_SDE", - "SamplerDPMPP_SDE", - "SaveAnimatedPNG", - "SaveAnimatedWEBP", - "SaveImage", - "SaveLatent", - "SelfAttentionGuidance", - "SetLatentNoiseMask", - "SolidMask", - "SplitImageWithAlpha", - "SplitSigmas", - "StableZero123_Conditioning", - "StableZero123_Conditioning_Batched", - "StyleModelApply", - "StyleModelLoader", - "TomePatchModel", - "UNETLoader", - "UpscaleModelLoader", - "VAEDecode", - "VAEDecodeTiled", - "VAEEncode", - "VAEEncodeForInpaint", - "VAEEncodeTiled", - "VAELoader", - "VAESave", - "VPScheduler", - "VideoLinearCFGGuidance", - "unCLIPCheckpointLoader", - "unCLIPConditioning" + "WebpToPngSequence" ], { - "title_aux": "ComfyUI Fooocus Nodes" + "title_aux": "ComfyUI-WebpToPNGSequence" } ], - "https://github.com/Ser-Hilary/SDXL_sizing/raw/main/conditioning_sizing_for_SDXL.py": [ + "https://github.com/Semper-Sursum/HF-Flux-ComfyUI": [ [ - "get_aspect_from_image", - "get_aspect_from_ints", - "sizing_node", - "sizing_node_basic", - "sizing_node_unparsed" + "HuggingFaceTextToImage" ], { - "title_aux": "SDXL_sizing" + "title_aux": "HF-Flux-ComfyUI" + } + ], + "https://github.com/ServiceStack/comfy-asset-downloader": [ + [ + "AssetDownloader" + ], + { + "title_aux": "ComfyUI Asset Downloader" } ], "https://github.com/Shadetail/ComfyUI_Eagleshadow": [ @@ -3160,12 +12100,322 @@ "Round Float to String", "SaveImageToFolder", "Select ControlNet", + "Select Model 20", "Simple Load Image Batch" ], { "title_aux": "Eagleshadow Custom Nodes" } ], + "https://github.com/Shakker-Labs/ComfyUI-IPAdapter-Flux": [ + [ + "ApplyIPAdapterFlux", + "ApplyIPAdapterFluxAdvanced", + "IPAdapterFluxLoader", + "IPAdapterFluxLoaderAdvanced" + ], + { + "title_aux": "ComfyUI-IPAdapter-Flux" + } + ], + "https://github.com/Shannooty/ComfyUI-Timer-Nodes": [ + [ + "TimerStart", + "TimerStringConcat" + ], + { + "title_aux": "ComfyUI Timer Nodes" + } + ], + "https://github.com/Shellishack/comfyui-remote-media-loaders": [ + [ + "LoadRemoteAudio", + "LoadRemoteImage", + "LoadRemoteVideo" + ], + { + "title_aux": "ComfyUI Remote Media Loaders" + } + ], + "https://github.com/SherryXieYuchen/ComfyUI-Image-Inpainting": [ + [ + "CropImageByRect", + "INPAINT_ColorCorrection", + "INPAINT_CropImage", + "INPAINT_InpaintingWithModel", + "INPAINT_LoadModel", + "INPAINT_PasteBackCropImage", + "INPAINT_VAEDecode", + "INPAINT_VAEEncode", + "ImagePostprocess", + "ImagePreprocess" + ], + { + "title_aux": "ComfyUI-Image-Inpainting" + } + ], + "https://github.com/Shiba-2-shiba/ComfyUI-Magcache-for-SDXL": [ + [ + "MagCacheSDXL", + "MagCacheSDXLCalibration" + ], + { + "title_aux": "ComfyUI-Magcache-for-SDXL" + } + ], + "https://github.com/Shiba-2-shiba/ComfyUI_DiffusionModel_fp8_converter": [ + [ + "ClipFP8ConverterNode", + "ModelFP8ConverterNode" + ], + { + "title_aux": "ComfyUI_DiffusionModel_fp8_converter" + } + ], + "https://github.com/Shiba-2-shiba/ComfyUI_FreeU_V2_timestepadd": [ + [ + "FreeU_V2_timestepadd" + ], + { + "title_aux": "ComfyUI_FreeU_V2_timestepadd" + } + ], + "https://github.com/Shiba-2-shiba/comfyui-color-ascii-art-node": [ + [ + "ASCIIArtNodeV3" + ], + { + "title_aux": "ComfyUI-color-ascii-art-node" + } + ], + "https://github.com/Shibiko-AI/ShibikoAI-ComfyUI-Tools": [ + [ + "BboxInsertImage", + "BboxSplit", + "Cascade", + "ImageFilters", + "Luts", + "LutsAdvanced", + "RemoveAreaByMask", + "RemoveBackground", + "SeedGenerator", + "Waifu2x" + ], + { + "title_aux": "Shibiko AI ComfyUI Tools" + } + ], + "https://github.com/ShinChven/sc-comfy-nodes": [ + [ + "Rescale Node", + "Width & Height" + ], + { + "title_aux": "ShinChven's Custom Nodes Package" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Apply_Style_Model_Adjust": [ + [ + "ApplyStyleModelAdjust" + ], + { + "title_aux": "Apply Style Model Adjust for ComfyUI" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-AstralAnimator": [ + [ + "AstralAnimator" + ], + { + "title_aux": "ComfyUI-AstralAnimator" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Audio_Quality_Enhancer": [ + [ + "AudioQualityEffects", + "AudioQualityEnhancer" + ], + { + "title_aux": "ComfyUI-Audio_Quality_Enhancer" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-CohernetVideoSampler": [ + [ + "CohernetVideoSampler" + ], + { + "title_aux": "ComfyUI Coherent Video Sampler Node" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-DeepSeek_R1-Chat": [ + [ + "ComfyUIDeepSeekChat" + ], + { + "title_aux": "ComfyUI DeepSeek_R1 Chat Node" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-EmptyHunyuanLatent": [ + [ + "EmptyHunyuanLatentForImage", + "EmptyHunyuanLatentForVideo" + ], + { + "title_aux": "ComfyUI-EmptyHunyuanLatent" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-FramePackWrapper_Plus": [ + [ + "DownloadAndLoadFramePackModel", + "FramePackFindNearestBucket", + "FramePackLoraSelect", + "FramePackSampler", + "FramePackSampler_F1", + "FramePackTimestampedTextEncode", + "FramePackTorchCompileSettings", + "LoadFramePackModel" + ], + { + "title_aux": "ComfyUI-FramePackWrapper_Plus" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-FreeMemory": [ + [ + "FreeMemoryCLIP", + "FreeMemoryImage", + "FreeMemoryLatent", + "FreeMemoryModel", + "FreeMemoryString" + ], + { + "title_aux": "ComfyUI-FreeMemory" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-FreeVC_wrapper": [ + [ + "FreeVC Voice Conversion" + ], + { + "title_aux": "ComfyUI-FreeVC_wrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Gemini_Flash_2.0_Exp": [ + [ + "AudioRecorder", + "GeminiFlash" + ], + { + "title_aux": "ComfyUI-Gemini_Flash_2.0_Exp" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Gemini_TTS": [ + [ + "GeminiTTS" + ], + { + "title_aux": "ComfyUI-Gemini_TTS" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-HiggsAudio_Wrapper": [ + [ + "HiggsAudio", + "LoadHiggsAudioModel", + "LoadHiggsAudioPrompt", + "LoadHiggsAudioSystemPrompt", + "LoadHiggsAudioTokenizer" + ], + { + "title_aux": "ComfyUI-HiggsAudio_Wrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave": [ + [ + "EmptyVideoLatentForHunyuan", + "HunyuanVideoSamplerSave", + "ImageMotionInfluance", + "ResizeImageForHunyuan" + ], + { + "title_aux": "ComfyUI-HunyuanVideoSamplerSave" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoStyler": [ + [ + "HunyuanVideoStyler" + ], + { + "title_aux": "ComfyUI-HunyuanVideoStyler" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-ImageMotionGuider": [ + [ + "ImageMotionGuider" + ], + { + "title_aux": "ComfyUI-ImageMotionGuider" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Janus_pro_vision": [ + [ + "UnifiedVisionAnalyzer", + "VisionModelLoader" + ], + { + "title_aux": "ComfyUI Janus Pro Vision" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-JoyHallo_wrapper": [ + [ + "JoyHallo_wrapper" + ], + { + "title_aux": "ComfyUI-JoyHallo_wrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-LatentSyncWrapper": [ + [ + "LatentSyncNode", + "VideoLengthAdjuster" + ], + { + "title_aux": "ComfyUI-LatentSyncWrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-NanoBanano": [ + [ + "ComfyUI_NanoBanana" + ], + { + "title_aux": "ComfyUI-NanoBanano" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Orpheus-TTS": [ + [ + "OrpheusAudioEffects", + "OrpheusGenerate", + "OrpheusModelLoader" + ], + { + "title_aux": "ComfyUI-Orpheus-TTS" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-PS_Flatten_Image": [ + [ + "FlattenImage" + ], + { + "title_aux": "ComfyUI-PS_Flatten_Image" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-PixArt_XL": [ + [ + "PA_BaseModelLoader_fromhub", + "PA_Generation" + ], + { + "title_aux": "ComfyUI-PixArt_XL" + } + ], "https://github.com/ShmuelRonen/ComfyUI-SVDResizer": [ [ "SVDRsizer" @@ -3174,6 +12424,148 @@ "title_aux": "ComfyUI-SVDResizer" } ], + "https://github.com/ShmuelRonen/ComfyUI-ThinkSound_Wrapper": [ + [ + "ThinkSoundFeatureUtilsLoader", + "ThinkSoundModelLoader", + "ThinkSoundSampler" + ], + { + "title_aux": "ComfyUI-ThinkSound_Wrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Veo2-Experimental": [ + [ + "VeoTextToVideo", + "VeoToVHS", + "VeoVideoPreview" + ], + { + "title_aux": "ComfyUI-Veo2-Experimental" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-VideoUpscale_WithModel": [ + [ + "Free_Video_Memory", + "Video_Upscale_With_Model" + ], + { + "title_aux": "ComfyUI-VideoUpscale_WithModel" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-WanVideoKsampler": [ + [ + "WanVideoKsampler" + ], + { + "title_aux": "ComfyUI-WanVideoKsampler" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_ChatterBox_Voice": [ + [ + "ChatterBoxVoiceCapture", + "ChatterBoxVoiceTTS", + "ChatterBoxVoiceVC" + ], + { + "title_aux": "ComfyUI_ChatterBox_Voice" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_Flux_1.1_RAW_API": [ + [ + "FluxPro11WithFinetune" + ], + { + "title_aux": "ComfyUI Flux 1.1 Ultra & Raw Node" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_Gemini_Flash": [ + [ + "Gemini_Flash_002" + ], + { + "title_aux": "ComfyUI_Gemini_Flash" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_Hedra": [ + [ + "HedraImageToVideo" + ], + { + "title_aux": "ComfyUI Hedra Node" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_pixtral_large": [ + [ + "ComfyUIPixtralLarge", + "MultiImagesInput", + "preview_text" + ], + { + "title_aux": "ComfyUI Pixtral Large Extension" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_pixtral_vision": [ + [ + "ComfyUIPixtralVision", + "MultiImagesInput", + "preview_text" + ], + { + "title_aux": "ComfyUI_pixtral_vision" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_wav2lip": [ + [ + "LoadAudio", + "Wav2Lip" + ], + { + "title_aux": "Wav2Lip Node for ComfyUI" + } + ], + "https://github.com/ShmuelRonen/DJ_VideoAudioMixer": [ + [ + "DJ_VideoAudioMixer" + ], + { + "title_aux": "DJ_VideoAudioMixer" + } + ], + "https://github.com/ShmuelRonen/FluxKontextCreator": [ + [ + "FluxKontextCreator", + "FluxKontextCreatorExperimental" + ], + { + "title_aux": "Flux Kontext Creator for ComfyUI" + } + ], + "https://github.com/ShmuelRonen/comfyui-openai_fm": [ + [ + "OpenAIFMNode" + ], + { + "title_aux": "comfyui-openai_fm" + } + ], + "https://github.com/ShmuelRonen/google_moogle": [ + [ + "googletrans" + ], + { + "title_aux": "Google Moogle" + } + ], + "https://github.com/ShmuelRonen/multi-lora-stack": [ + [ + "MultiLoRAStack", + "MultiLoRAStackModelOnly" + ], + { + "title_aux": "multi-lora-stack" + } + ], "https://github.com/Shraknard/ComfyUI-Remover": [ [ "Remover" @@ -3184,9 +12576,11 @@ ], "https://github.com/Siberpone/lazy-pony-prompter": [ [ + "LPP_Danbooru", "LPP_Deleter", "LPP_Derpibooru", "LPP_E621", + "LPP_Loader_Danbooru", "LPP_Loader_Derpibooru", "LPP_Loader_E621", "LPP_Saver" @@ -3195,12 +12589,194 @@ "title_aux": "Lazy Pony Prompter" } ], - "https://github.com/Smuzzies/comfyui_chatbox_overlay/raw/main/chatbox_overlay.py": [ + "https://github.com/Siempreflaco/ComfyUI-NCNodes": [ [ - "Chatbox Overlay" + "Load3DMesh", + "NCAudioRecorderNode", + "NCImageProcessor", + "NCIncrementINT", + "NCLineCounter" ], { - "title_aux": "Chatbox Overlay node for ComfyUI" + "title_aux": "ComfyUI-NCNodes" + } + ], + "https://github.com/Sieyalixnet/ComfyUI_Textarea_Loaders": [ + [ + "CheckPointLoader_Text", + "EmptyLatentImage_Text", + "LoRALoader_Text", + "LoadImage_Text" + ], + { + "title_aux": "ComfyUI_Textarea_Loaders" + } + ], + "https://github.com/SignalCha1n/comfyui-ComfySnap": [ + [ + "FaceAvoidRandomY", + "LowQualityDigitalLook", + "SnapBasicFilters", + "SnapTextOverlay" + ], + { + "title_aux": "Snap Style Nodes for ComfyUI" + } + ], + "https://github.com/SijieMei/ComfyUI-promptHistory": [ + [ + "PromptHistory" + ], + { + "title_aux": "ComfyUI-Prompt-History" + } + ], + "https://github.com/SilverAndJade/comfyui-silver-nodes": [ + [ + "SilverFileTextLoader", + "SilverFlickrRandomImage", + "SilverFolderFilePathLoader", + "SilverFolderImageLoader", + "SilverFolderVideoLoader", + "SilverLoraModelLoader", + "SilverRandomFromList", + "SilverStringReplacer", + "SilverUrlImageLoader", + "SilverWebImageLoader" + ], + { + "title_aux": "ComfyUI Silver Nodes" + } + ], + "https://github.com/Simlym/comfyui-prompt-helper": [ + [ + "PromptProcessor" + ], + { + "title_aux": "ComfyUI Prompt Helper" + } + ], + "https://github.com/SimonHeese/ComfyUI_AnimationNodes/raw/refs/heads/main/animated_offset_pad.py": [ + [ + "AnimatedOffsetPadding" + ], + { + "title_aux": "ComfyUI_AnimationNodes" + } + ], + "https://github.com/Sinphaltimus/comfyui_fedcoms_node_pack": [ + [ + "EnhancedModelMetadataReader", + "ModelDataExtractor", + "ModelMetadataReader" + ], + { + "title_aux": "comfyui_fedcoms_node_pack" + } + ], + "https://github.com/SipherAGI/comfyui-animatediff": [ + [ + "AnimateDiffCombine", + "AnimateDiffLoraLoader", + "AnimateDiffModuleLoader", + "AnimateDiffSampler", + "AnimateDiffSlidingWindowOptions", + "ImageSizeAndBatchSize", + "LoadVideo" + ], + { + "title_aux": "AnimateDiff" + } + ], + "https://github.com/SlackinJack/asyncdiff_comfyui": [ + [ + "ADADSampler", + "ADControlNetLoader", + "ADIPAdapterLoader", + "ADLoraLoader", + "ADModelLoader", + "ADMultiLoraCombiner", + "ADPipelineConfig", + "ADSDSampler", + "ADSDUpscaleSampler", + "ADSVDSampler", + "ADSchedulerSelector" + ], + { + "title_aux": "asyncdiff_comfyui" + } + ], + "https://github.com/SlackinJack/distrifuser_comfyui": [ + [ + "DFPipelineConfig", + "DFSampler" + ], + { + "title_aux": "distrifuser_comfyui" + } + ], + "https://github.com/SleeeepyZhou/ComfyUI-CNtranslator": [ + [ + "CNtranslator", + "TextShow" + ], + { + "title_aux": "CNtranslator" + } + ], + "https://github.com/Slickytail/ComfyUI-InstantX-IPAdapter-SD3": [ + [ + "ApplyIPAdapterSD3", + "IPAdapterSD3Loader" + ], + { + "title_aux": "ComfyUI-InstantX-IPAdapter-SD3" + } + ], + "https://github.com/Slickytail/ComfyUI-RegionalAdaptiveSampling": [ + [ + "RegionalAdaptiveSampling" + ], + { + "title_aux": "ComfyUI-RegionalAdaptiveSampling" + } + ], + "https://github.com/Smirnov75/ComfyUI-mxToolkit": [ + [ + "mxSeed", + "mxSlider", + "mxSlider2D", + "mxStop" + ], + { + "title_aux": "ComfyUI-mxToolkit" + } + ], + "https://github.com/Smuzzies/comfyui_meme_maker": [ + [ + "MemeMaker" + ], + { + "title_aux": "comfyui_meme_maker" + } + ], + "https://github.com/SoftMeng/ComfyUI-DeepCache-Fix": [ + [ + "DeepCache_Fix" + ], + { + "title_aux": "ComfyUI-DeepCache-Fix" + } + ], + "https://github.com/SoftMeng/ComfyUI-PIL": [ + [ + "PIL Effects (Mexx)", + "PIL Merge Image (Mexx)", + "PIL Remove Black Dots (Mexx)", + "PIL TITLE (Mexx)" + ], + { + "title_aux": "ComfyUI-PIL" } ], "https://github.com/SoftMeng/ComfyUI_ImageToText": [ @@ -3228,6 +12804,14 @@ "title_aux": "ComfyUI_Mexx_Styler" } ], + "https://github.com/SongGuo11/ComfyUI-SaveAnything-SG11": [ + [ + "SG11_SaveAnything" + ], + { + "title_aux": "ComfyUI SaveAnything Node (SG11)" + } + ], "https://github.com/Sorcerio/MBM-Music-Visualizer": [ [ "id", @@ -3244,22 +12828,154 @@ "title_aux": "MBM's Music Visualizer" } ], - "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid": [ + "https://github.com/SozeInc/ComfyUI-Mobile": [ [ - "SVD_txt2vid_ConditioningwithLatent" + "Mobile_Settings_Launcher_Data", + "Send Notification (Mobile)", + "Settings Launcher (Mobile)", + "Ultimate Concat (Mobile)" ], { - "title_aux": "Text to video for Stable Video Diffusion in ComfyUI" + "title_aux": "ComfyUI-Mobile" + } + ], + "https://github.com/SozeInc/ComfyUI_Soze": [ + [ + "Alpha Crop and Position Image", + "CSV Reader", + "CSV Reader X Checkpoint", + "CSV Reader X Lora", + "CSV Writer", + "Checkpoint File Loader", + "ComfyDeploy API Boolean Parameters", + "ComfyDeploy API Float Parameters", + "ComfyDeploy API Image Parameters", + "ComfyDeploy API Int Parameters", + "ComfyDeploy API Mixed Parameters", + "ComfyDeploy API Node", + "ComfyDeploy API String Parameters", + "ElevenLabs Voice Retriever", + "Empty Images", + "Get Most Common Image Colors", + "Image Batch Process Switch", + "Image List Loader", + "Image Overlay", + "Is Input In List", + "Is String Empty", + "Load Image", + "Load Image From URL", + "Load Images From Folder", + "Lora File Loader", + "Multiline Concatenate Strings", + "Output Filename", + "Pad Mask", + "Prompt Cache", + "Range(Num Steps) - Float", + "Range(Num Steps) - Int", + "Range(Step) - Float", + "Range(Step) - Int", + "Shrink Image", + "Special Character Replacer", + "Text Contains (Return Bool)", + "Text Contains (Return String)", + "Variable Image Builder", + "XY Any", + "XY Image" + ], + { + "title_aux": "Quality of Life Nodes for ComfyUI" + } + ], + "https://github.com/SparknightLLC/ComfyUI-ConditionalInterrupt": [ + [ + "Conditional Interrupt" + ], + { + "title_aux": "ComfyUI-ConditionalInterrupt" + } + ], + "https://github.com/SparknightLLC/ComfyUI-GPENO": [ + [ + "GPENO Face Restoration" + ], + { + "author": "yangxy (yangtao9009@gmail.com)", + "title_aux": "ComfyUI-GPENO" + } + ], + "https://github.com/SparknightLLC/ComfyUI-ImageAutosize": [ + [ + "ImageAutosize" + ], + { + "title_aux": "ComfyUI-ImageAutosize" + } + ], + "https://github.com/SparknightLLC/ComfyUI-ImageAutotone": [ + [ + "ImageAutotone" + ], + { + "title_aux": "ComfyUI-ImageAutotone" + } + ], + "https://github.com/SparknightLLC/ComfyUI-LatentClamp": [ + [ + "LatentClamp" + ], + { + "title_aux": "ComfyUI-LatentClamp" + } + ], + "https://github.com/SparknightLLC/ComfyUI-MaskArbiter": [ + [ + "GroundingDinoSAM2SegmentList", + "MaskArbiter" + ], + { + "title_aux": "ComfyUI-MaskArbiter" + } + ], + "https://github.com/SparknightLLC/ComfyUI-WeightedRandomChoice": [ + [ + "WeightedRandomChoice" + ], + { + "title_aux": "ComfyUI-WeightedRandomChoice" + } + ], + "https://github.com/SpenserCai/ComfyUI-FunAudioLLM": [ + [ + "CosyVoiceCrossLingualNode", + "CosyVoiceInstructNode", + "CosyVoiceLoadSpeakerModelFromUrlNode", + "CosyVoiceLoadSpeakerModelNode", + "CosyVoiceSFTNode", + "CosyVoiceSaveSpeakerModelNode", + "CosyVoiceZeroShotNode", + "SenseVoiceNode" + ], + { + "title_aux": "ComfyUI-FunAudioLLM" } ], "https://github.com/Stability-AI/ComfyUI-SAI_API": [ [ + "Stability Conservative Upscale", + "Stability Control Sketch", + "Stability Control Structure", + "Stability Control Style", "Stability Creative Upscale", + "Stability Erase", + "Stability Fast Upscale", "Stability Image Core", + "Stability Image Ultra", "Stability Inpainting", "Stability Outpainting", "Stability Remove Background", + "Stability Replace Background and Relight", "Stability SD3", + "Stability Search And Recolor", "Stability Search and Replace" ], { @@ -3276,6 +12992,396 @@ "title_aux": "stability-ComfyUI-nodes" } ], + "https://github.com/StableLlama/ComfyUI-basic_data_handling": [ + [ + "Basic data handling: Boolean And", + "Basic data handling: Boolean Nand", + "Basic data handling: Boolean Nor", + "Basic data handling: Boolean Not", + "Basic data handling: Boolean Or", + "Basic data handling: Boolean Xor", + "Basic data handling: CastToBoolean", + "Basic data handling: CastToDict", + "Basic data handling: CastToFloat", + "Basic data handling: CastToInt", + "Basic data handling: CastToList", + "Basic data handling: CastToSet", + "Basic data handling: CastToString", + "Basic data handling: CompareLength", + "Basic data handling: ContinueFlow", + "Basic data handling: DataListAll", + "Basic data handling: DataListAny", + "Basic data handling: DataListAppend", + "Basic data handling: DataListContains", + "Basic data handling: DataListCount", + "Basic data handling: DataListCreate", + "Basic data handling: DataListCreateFromBoolean", + "Basic data handling: DataListCreateFromFloat", + "Basic data handling: DataListCreateFromInt", + "Basic data handling: DataListCreateFromString", + "Basic data handling: DataListEnumerate", + "Basic data handling: DataListExtend", + "Basic data handling: DataListFilter", + "Basic data handling: DataListFilterSelect", + "Basic data handling: DataListFirst", + "Basic data handling: DataListGetItem", + "Basic data handling: DataListIndex", + "Basic data handling: DataListInsert", + "Basic data handling: DataListLast", + "Basic data handling: DataListLength", + "Basic data handling: DataListMax", + "Basic data handling: DataListMin", + "Basic data handling: DataListPop", + "Basic data handling: DataListPopRandom", + "Basic data handling: DataListRange", + "Basic data handling: DataListRemove", + "Basic data handling: DataListReverse", + "Basic data handling: DataListSetItem", + "Basic data handling: DataListSlice", + "Basic data handling: DataListSort", + "Basic data handling: DataListSum", + "Basic data handling: DataListToList", + "Basic data handling: DataListToSet", + "Basic data handling: DataListZip", + "Basic data handling: DictCompare", + "Basic data handling: DictContainsKey", + "Basic data handling: DictCreate", + "Basic data handling: DictCreateFromBoolean", + "Basic data handling: DictCreateFromFloat", + "Basic data handling: DictCreateFromInt", + "Basic data handling: DictCreateFromItemsDataList", + "Basic data handling: DictCreateFromItemsList", + "Basic data handling: DictCreateFromLists", + "Basic data handling: DictCreateFromString", + "Basic data handling: DictExcludeKeys", + "Basic data handling: DictFilterByKeys", + "Basic data handling: DictFromKeys", + "Basic data handling: DictGet", + "Basic data handling: DictGetKeysValues", + "Basic data handling: DictGetMultiple", + "Basic data handling: DictInvert", + "Basic data handling: DictItems", + "Basic data handling: DictKeys", + "Basic data handling: DictLength", + "Basic data handling: DictMerge", + "Basic data handling: DictPop", + "Basic data handling: DictPopItem", + "Basic data handling: DictPopRandom", + "Basic data handling: DictRemove", + "Basic data handling: DictSet", + "Basic data handling: DictSetDefault", + "Basic data handling: DictUpdate", + "Basic data handling: DictValues", + "Basic data handling: Equal", + "Basic data handling: ExecutionOrder", + "Basic data handling: FloatAdd", + "Basic data handling: FloatAsIntegerRatio", + "Basic data handling: FloatCreate", + "Basic data handling: FloatDivide", + "Basic data handling: FloatDivideSafe", + "Basic data handling: FloatFromHex", + "Basic data handling: FloatHex", + "Basic data handling: FloatIsInteger", + "Basic data handling: FloatMultiply", + "Basic data handling: FloatPower", + "Basic data handling: FloatRound", + "Basic data handling: FloatSubtract", + "Basic data handling: FlowSelect", + "Basic data handling: ForceCalculation", + "Basic data handling: GreaterThan", + "Basic data handling: GreaterThanOrEqual", + "Basic data handling: IfElifElse", + "Basic data handling: IfElse", + "Basic data handling: IntAdd", + "Basic data handling: IntBitCount", + "Basic data handling: IntBitLength", + "Basic data handling: IntCreate", + "Basic data handling: IntCreateWithBase", + "Basic data handling: IntDivide", + "Basic data handling: IntDivideSafe", + "Basic data handling: IntFromBytes", + "Basic data handling: IntModulus", + "Basic data handling: IntMultiply", + "Basic data handling: IntPower", + "Basic data handling: IntSubtract", + "Basic data handling: IntToBytes", + "Basic data handling: IsNull", + "Basic data handling: LessThan", + "Basic data handling: LessThanOrEqual", + "Basic data handling: ListAll", + "Basic data handling: ListAny", + "Basic data handling: ListAppend", + "Basic data handling: ListContains", + "Basic data handling: ListCount", + "Basic data handling: ListCreate", + "Basic data handling: ListCreateFromBoolean", + "Basic data handling: ListCreateFromFloat", + "Basic data handling: ListCreateFromInt", + "Basic data handling: ListCreateFromString", + "Basic data handling: ListEnumerate", + "Basic data handling: ListExtend", + "Basic data handling: ListFirst", + "Basic data handling: ListGetItem", + "Basic data handling: ListIndex", + "Basic data handling: ListInsert", + "Basic data handling: ListLast", + "Basic data handling: ListLength", + "Basic data handling: ListMax", + "Basic data handling: ListMin", + "Basic data handling: ListPop", + "Basic data handling: ListPopRandom", + "Basic data handling: ListRange", + "Basic data handling: ListRemove", + "Basic data handling: ListReverse", + "Basic data handling: ListSetItem", + "Basic data handling: ListSlice", + "Basic data handling: ListSort", + "Basic data handling: ListSum", + "Basic data handling: ListToDataList", + "Basic data handling: ListToSet", + "Basic data handling: MathAbs", + "Basic data handling: MathAcos", + "Basic data handling: MathAsin", + "Basic data handling: MathAtan", + "Basic data handling: MathAtan2", + "Basic data handling: MathCeil", + "Basic data handling: MathCos", + "Basic data handling: MathDegrees", + "Basic data handling: MathE", + "Basic data handling: MathExp", + "Basic data handling: MathFloor", + "Basic data handling: MathFormula", + "Basic data handling: MathLog", + "Basic data handling: MathLog10", + "Basic data handling: MathMax", + "Basic data handling: MathMin", + "Basic data handling: MathPi", + "Basic data handling: MathRadians", + "Basic data handling: MathSin", + "Basic data handling: MathSqrt", + "Basic data handling: MathTan", + "Basic data handling: NotEqual", + "Basic data handling: NumberInRange", + "Basic data handling: PathAbspath", + "Basic data handling: PathBasename", + "Basic data handling: PathCommonPrefix", + "Basic data handling: PathDirname", + "Basic data handling: PathExists", + "Basic data handling: PathExpandVars", + "Basic data handling: PathGetCwd", + "Basic data handling: PathGetExtension", + "Basic data handling: PathGetSize", + "Basic data handling: PathGlob", + "Basic data handling: PathIsAbsolute", + "Basic data handling: PathIsDir", + "Basic data handling: PathIsFile", + "Basic data handling: PathJoin", + "Basic data handling: PathListDir", + "Basic data handling: PathLoadImageRGB", + "Basic data handling: PathLoadImageRGBA", + "Basic data handling: PathLoadMaskFromAlpha", + "Basic data handling: PathLoadMaskFromGreyscale", + "Basic data handling: PathLoadStringFile", + "Basic data handling: PathNormalize", + "Basic data handling: PathRelative", + "Basic data handling: PathSaveImageRGB", + "Basic data handling: PathSaveImageRGBA", + "Basic data handling: PathSaveStringFile", + "Basic data handling: PathSetExtension", + "Basic data handling: PathSplit", + "Basic data handling: PathSplitExt", + "Basic data handling: RegexFindallDataList", + "Basic data handling: RegexFindallList", + "Basic data handling: RegexGroupDict", + "Basic data handling: RegexSearchGroupsDataList", + "Basic data handling: RegexSearchGroupsList", + "Basic data handling: RegexSplitDataList", + "Basic data handling: RegexSplitList", + "Basic data handling: RegexSub", + "Basic data handling: RegexTest", + "Basic data handling: SetAdd", + "Basic data handling: SetAll", + "Basic data handling: SetAny", + "Basic data handling: SetContains", + "Basic data handling: SetCreate", + "Basic data handling: SetCreateFromBoolean", + "Basic data handling: SetCreateFromFloat", + "Basic data handling: SetCreateFromInt", + "Basic data handling: SetCreateFromString", + "Basic data handling: SetDifference", + "Basic data handling: SetDiscard", + "Basic data handling: SetEnumerate", + "Basic data handling: SetIntersection", + "Basic data handling: SetIsDisjoint", + "Basic data handling: SetIsSubset", + "Basic data handling: SetIsSuperset", + "Basic data handling: SetLength", + "Basic data handling: SetPop", + "Basic data handling: SetPopRandom", + "Basic data handling: SetRemove", + "Basic data handling: SetSum", + "Basic data handling: SetSymmetricDifference", + "Basic data handling: SetToDataList", + "Basic data handling: SetToList", + "Basic data handling: SetUnion", + "Basic data handling: StringCapitalize", + "Basic data handling: StringCasefold", + "Basic data handling: StringCenter", + "Basic data handling: StringComparison", + "Basic data handling: StringConcat", + "Basic data handling: StringCount", + "Basic data handling: StringDataListJoin", + "Basic data handling: StringDecode", + "Basic data handling: StringEncode", + "Basic data handling: StringEndswith", + "Basic data handling: StringEscape", + "Basic data handling: StringExpandtabs", + "Basic data handling: StringFind", + "Basic data handling: StringFormatMap", + "Basic data handling: StringIn", + "Basic data handling: StringIsAlnum", + "Basic data handling: StringIsAlpha", + "Basic data handling: StringIsAscii", + "Basic data handling: StringIsDecimal", + "Basic data handling: StringIsDigit", + "Basic data handling: StringIsIdentifier", + "Basic data handling: StringIsLower", + "Basic data handling: StringIsNumeric", + "Basic data handling: StringIsPrintable", + "Basic data handling: StringIsSpace", + "Basic data handling: StringIsTitle", + "Basic data handling: StringIsUpper", + "Basic data handling: StringLength", + "Basic data handling: StringListJoin", + "Basic data handling: StringLjust", + "Basic data handling: StringLower", + "Basic data handling: StringLstrip", + "Basic data handling: StringRemoveprefix", + "Basic data handling: StringRemovesuffix", + "Basic data handling: StringReplace", + "Basic data handling: StringRfind", + "Basic data handling: StringRjust", + "Basic data handling: StringRsplitDataList", + "Basic data handling: StringRsplitList", + "Basic data handling: StringRstrip", + "Basic data handling: StringSplitDataList", + "Basic data handling: StringSplitList", + "Basic data handling: StringSplitlinesDataList", + "Basic data handling: StringSplitlinesList", + "Basic data handling: StringStartswith", + "Basic data handling: StringStrip", + "Basic data handling: StringSwapcase", + "Basic data handling: StringTitle", + "Basic data handling: StringUnescape", + "Basic data handling: StringUpper", + "Basic data handling: StringZfill", + "Basic data handling: SwitchCase", + "Basic data handling: TimeAddDelta", + "Basic data handling: TimeDelta", + "Basic data handling: TimeDifference", + "Basic data handling: TimeExtract", + "Basic data handling: TimeFormat", + "Basic data handling: TimeNow", + "Basic data handling: TimeParse", + "Basic data handling: TimeSubtractDelta", + "Basic data handling: TimeToUnix", + "Basic data handling: UnixToTime" + ], + { + "title_aux": "Basic data handling" + } + ], + "https://github.com/StarAsh042/ComfyUI_RollingArtist": [ + [ + "RollingArtist" + ], + { + "title_aux": "ComfyUI_RollingArtist" + } + ], + "https://github.com/StarMagicAI/comfyui_tagger": [ + [ + "DownloadAndLoadFlorence2Lora_jsonL", + "DownloadAndLoadFlorence2Model_jsonL", + "Florence2ModelLoader_jsonL", + "Florence2Run_jsonL", + "batch_text_save_jsonL" + ], + { + "title_aux": "ComfyUI-tagger" + } + ], + "https://github.com/Starnodes2024/ComfyUI_StarBetaNodes": [ + [ + "StarApplyOverlayDepth", + "StarOllamaSysprompterJC", + "StarQwenEditEncoder", + "StarQwenImageEditInputs", + "StarQwenImageRatio", + "StarQwenWanRatio", + "StarSaveFolderString" + ], + { + "title_aux": "ComfyUI_StarBetaNodes" + } + ], + "https://github.com/Starnodes2024/ComfyUI_StarNodes": [ + [ + "AdaptiveDetailEnhancement", + "DetailStarDaemon", + "FluxFillSampler", + "FluxStartSettings", + "Fluxstarsampler", + "OllamaModelChooser", + "SD35StartSettings", + "SDXLStartSettings", + "SDstarsampler", + "Star Face Loader", + "Star3LoRAs", + "StarConditioningLoader", + "StarConditioningSaver", + "StarDeleteSamplerSettings", + "StarDenoiseSlider", + "StarDivisibleDimension", + "StarEasyTextStorage", + "StarFiveWildcards", + "StarFrameFromVideo", + "StarGridCaptionsBatcher", + "StarGridComposer", + "StarGridImageBatcher", + "StarIconExporter", + "StarImageLoader1by1", + "StarImageSwitch", + "StarImageSwitch2", + "StarInfiniteYouAdvancedPatchMaker", + "StarInfiniteYouApply", + "StarInfiniteYouFaceSwapMod", + "StarInfiniteYouPatch", + "StarInfiniteYouPatchCombine", + "StarInfiniteYouSaver", + "StarLatentSwitch", + "StarLoadSamplerSettings", + "StarNewsScraper", + "StarPSDSaver", + "StarPSDSaver2", + "StarPaletteExtractor", + "StarRandomImageLoader", + "StarSavePanoramaJPEG", + "StarSaveSamplerSettings", + "StarTextFilter", + "StarTextInput", + "StarWildcardsAdvanced", + "Star_Image2Latent", + "Star_Show_Last_Frame", + "Starnodes_Aspect_Ratio", + "Starnodes_Aspect_Ratio_Advanced", + "Starnodes_Aspect_Video_Ratio", + "Starupscale" + ], + { + "title_aux": "ComfyUI_StarNodes" + } + ], "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": [ [ "Ood_CXH" @@ -3284,6 +13390,14 @@ "title_aux": "ComfyUI_OOTDiffusion_CXH" } ], + "https://github.com/StartHua/ComfyUI_PCDMs": [ + [ + "PCDMS_CXH" + ], + { + "title_aux": "ComfyUI_PCDMs" + } + ], "https://github.com/StartHua/ComfyUI_Seg_VITON": [ [ "segformer_agnostic", @@ -3295,6 +13409,44 @@ "title_aux": "ComfyUI_Seg_VITON" } ], + "https://github.com/StartHua/Comfyui_CXH_DeepLX": [ + [ + "CXH_DeepLX_Free", + "CXH_DeepLX_translate" + ], + { + "title_aux": "Comfyui_CXH_DeepLX" + } + ], + "https://github.com/StartHua/Comfyui_CXH_FluxLoraMerge": [ + [ + "CXH_Lora_Merge" + ], + { + "title_aux": "Comfyui_CXH_FluxLoraMerge" + } + ], + "https://github.com/StartHua/Comfyui_CXH_Phi_3.5": [ + [ + "CXH_Phi_Run", + "CXH_Phi_chat_load", + "CXH_Phi_chat_min", + "CXH_Phi_load" + ], + { + "title_aux": "Comfyui_CXH_Phi_3.5" + } + ], + "https://github.com/StartHua/Comfyui_Gemini2": [ + [ + "CXH_Gemini2_TX", + "CXH_Gemini2_Vision", + "CXH_Local_Prompt" + ], + { + "title_aux": "Comfyui_Gemini2" + } + ], "https://github.com/StartHua/Comfyui_joytag": [ [ "CXH_JoyTag" @@ -3305,24 +13457,64 @@ ], "https://github.com/StartHua/Comfyui_segformer_b2_clothes": [ [ - "segformer_b2_clothes" + "segformer_b2_clothes", + "segformer_b3_fashion" ], { "title_aux": "comfyui_segformer_b2_clothes" } ], + "https://github.com/Steudio/ComfyUI_Steudio": [ + [ + "Combine Tiles", + "Display UI", + "Divide Image and Select Tile", + "Divide and Conquer Algorithm", + "Load Images into List", + "Ratio Calculator", + "Ratio to Size", + "Seed Shifter", + "Sequence Generator", + "Simple Config" + ], + { + "title_aux": "ComfyUI Steudio" + } + ], + "https://github.com/Style-Mosaic/dino-x-comfyui-node": [ + [ + "DinoxDetector" + ], + { + "title_aux": "ComfyUI DINO-X Detector Node" + } + ], "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": [ [ - "Cross Fade Image Batches (SuperBeasts.AI)", - "Deflicker (SuperBeasts.AI)", + "Deflicker - Experimental (SuperBeasts.AI)", "HDR Effects (SuperBeasts.AI)", + "Image Batch Manager (SuperBeasts.AI)", "Make Resized Mask Batch (SuperBeasts.AI)", - "Pixel Deflicker (SuperBeasts.AI)" + "Mask Batch Manager (SuperBeasts.AI)", + "Pixel Deflicker - Experimental (SuperBeasts.AI)", + "SB Load Model (SuperBeasts.AI)", + "String List Manager (SuperBeasts.AI)", + "Super Pop Color Adjustment (SuperBeasts.AI)", + "Super Pop Residual Blend (SuperBeasts.AI)" ], { "title_aux": "ComfyUI-SuperBeasts" } ], + "https://github.com/SuperMasterBlasterLaser/ComfyUI_YOLO_Classifiers": [ + [ + "YOLO Classifier Model Loader", + "YOLO Classify" + ], + { + "title_aux": "ComfyUI_YOLO_Classifiers" + } + ], "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes": [ [ "CR 8 Channel In", @@ -3544,31 +13736,69 @@ ], "https://github.com/Sxela/ComfyWarp": [ [ + "ApplyMask", + "ApplyMaskConditional", + "ApplyMaskLatent", + "ApplyMaskLatentConditional", + "ExtractFlowAndMixConsistencyMaps", "ExtractOpticalFlow", + "FixedQueue", + "KeyframedFlowApplication", "LoadFrame", "LoadFrameFromDataset", "LoadFrameFromFolder", "LoadFramePairFromDataset", "LoadFrameSequence", "MakeFrameDataset", + "MakePaths", "MixConsistencyMaps", "OffsetNumber", + "RenderVideo", "ResizeToFit", "SaveFrame", + "SchedulerFloat", + "SchedulerInt", + "SchedulerString", "WarpFrame" ], { "title_aux": "ComfyWarp" } ], - "https://github.com/TGu-97/ComfyUI-TGu-utils": [ + "https://github.com/SykkoAtHome/ComfyUI_FaceProcessor": [ [ - "MPNReroute", - "MPNSwitch", - "PNSwitch" + "FaceFitAndRestore", + "FaceTracker", + "FaceWrapper", + "HighPassFilter", + "ImageFeeder" ], { - "title_aux": "TGu Utilities" + "title_aux": "Face Processor for ComfyUI" + } + ], + "https://github.com/T-Ph525/ComfyUI-Underage-Filter": [ + [ + "AgeCheckerNode", + "MultiTypeGateNode", + "UnderageFilterNode" + ], + { + "title_aux": "Underage Filter" + } + ], + "https://github.com/TFL-TFL/ComfyUI_Text_Translation": [ + [ + "Get_Translator", + "Text", + "Text_Concatenate", + "Text_Switch", + "Text_Translation", + "Text_Translation_V2", + "Text_Translation_V2_Full" + ], + { + "title_aux": "ComfyUI_Text_Translation" } ], "https://github.com/THtianhao/ComfyUI-FaceChain": [ @@ -3624,9 +13854,40 @@ "title_aux": "comfyUI_TJ_NormalLighting" } ], + "https://github.com/TKRLAB/ComfyUI_Prompt_List_JSON": [ + [ + "ComfyUI_Prompt_JSON" + ], + { + "author": "TKRLAB", + "description": "ComfyUI JSON-based prompt management tool.", + "title": "ComfyUI_Prompt_List_JSON", + "title_aux": "Prompt List JSON" + } + ], + "https://github.com/TMElyralab/Comfyui-MusePose": [ + [ + "filenamestring", + "musepose", + "museposealign" + ], + { + "title_aux": "Comfyui-MusePose" + } + ], + "https://github.com/TRI3D-LC/ComfyUI-MiroBoard": [ + [ + "add-image-miro-board" + ], + { + "title_aux": "ComfyUI-MiroBoard" + } + ], "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": [ [ + "TRI3D_CutByMaskAspectRatio", "get_histogram_limits", + "main_light_layer", "main_scaled_paste", "simple_rescale_histogram", "tri3d-HistogramEqualization", @@ -3635,14 +13896,22 @@ "tri3d-adjust-neck", "tri3d-atr-parse", "tri3d-atr-parse-batch", + "tri3d-bgremove-mega", + "tri3d-clean_mask", + "tri3d-clear-memory", "tri3d-clipdrop-bgremove-api", + "tri3d-clipdrop-bgreplace-api", "tri3d-composite-image-splitter", "tri3d-dwpose", "tri3d-extract-hand", + "tri3d-extract-masks-batch", "tri3d-extract-parts-batch", "tri3d-extract-parts-batch2", "tri3d-extract-parts-mask-batch", + "tri3d-extract-pascal-parts-batch", + "tri3d-extract_pose_part", "tri3d-face-recognise", + "tri3d-flexible_color_extract", "tri3d-float-to-image", "tri3d-fuzzification", "tri3d-get_histogram_limits", @@ -3651,30 +13920,198 @@ "tri3d-image-mask-2-box", "tri3d-image-mask-box-2-image", "tri3d-interaction-canny", + "tri3d-levindabhi-cloth-seg", "tri3d-load-pose-json", + "tri3d-load_AEMatter_Model", "tri3d-luminosity-match", "tri3d-main_transparent_background", + "tri3d-photoroom-bgremove-api", "tri3d-pose-adaption", "tri3d-pose-to-image", "tri3d-position-hands", "tri3d-position-parts-batch", + "tri3d-position-pascal-parts-batch", "tri3d-recolor-mask", "tri3d-recolor-mask-LAB_space", "tri3d-recolor-mask-LAB_space_manual", "tri3d-recolor-mask-RGB_space", "tri3d-renormalize_array", + "tri3d-run_AEMatter_inference", "tri3d-scaled-paste", + "tri3d-scaled-paste_unsafe", "tri3d-simple_bg_swap", "tri3d-simple_rescale_histogram", "tri3d-skin-feathered-padded-mask", - "tri3d-swap-pixels" + "tri3d-swap-pixels", + "tri3d_CutByMaskAspectRatio", + "tri3d_H_Stack_Images", + "tri3d_Image_extend", + "tri3d_MaskAreaPercentage", + "tri3d_NSFWFilter", + "tri3d_NarrowfyImage", + "tri3d_Remove_Small_Mask_Islands", + "tri3d_SaveFlattenedPoseKpsAsJsonFile", + "tri3d_SaveImage_absolute", + "tri3d_SaveText_absolute", + "tri3d_Skip_HeadMask", + "tri3d_Skip_HeadMask_AddNeck", + "tri3d_Skip_LipMask", + "tri3d_SmartBox", + "tri3d_Smart_Depth", + "tri3d_StringContains", + "tri3d_Wait_And_Read_File", + "tri3d_extract_facer_mask", + "tri3d_fill_mask", + "tri3d_is_only_trouser", + "tri3d_position_pose_part" ], { "title_aux": "tri3d-comfyui-nodes" } ], + "https://github.com/TTPlanetPig/Comfyui_Hunyuan3D": [ + [ + "GifImageViewerNode", + "Hunyuan3DNode", + "SquareImage" + ], + { + "title_aux": "Comfyui_Hunyuan3D" + } + ], + "https://github.com/TTPlanetPig/Comfyui_JC2": [ + [ + "ExtraOptionsNode", + "ExtraOptionsNode_Beta", + "JoyCaption2", + "JoyCaption2_simple", + "JoyCaptionBetaOne_Full", + "JoyCaptionBetaOne_Simple" + ], + { + "title_aux": "Comfyui_JC2" + } + ], + "https://github.com/TTPlanetPig/Comfyui_Object_Detect_QWen_VL": [ + [ + "BBoxesToSAM2", + "DownloadAndLoadQwenModel", + "QwenVLDetection" + ], + { + "title_aux": "ComfyUI Qwen2.5-VL Object Detection Node" + } + ], + "https://github.com/TTPlanetPig/Comfyui_Object_Migration": [ + [ + "TTP_Expand_And_Mask", + "TTP_text_mix" + ], + { + "title_aux": "Clothing Migration Kit" + } + ], + "https://github.com/TTPlanetPig/Comfyui_TTP_CN_Preprocessor": [ + [ + "TTPlanet_Tile_Preprocessor_GF", + "TTPlanet_Tile_Preprocessor_Simple", + "TTPlanet_Tile_Preprocessor_cufoff", + "TTPlanet_inpainting_Preprecessor" + ], + { + "title_aux": "for comfyui image proprocessor" + } + ], + "https://github.com/TTPlanetPig/Comfyui_TTP_Toolset": [ + [ + "TTP_CoordinateSplitter", + "TTP_Expand_And_Mask", + "TTP_Image_Assy", + "TTP_Image_Tile_Batch", + "TTP_Tile_image_size", + "TTP_condsetarea_merge", + "TTP_condsetarea_merge_test", + "TTP_condtobatch", + "TTP_text_mix", + "TTPlanet_Tile_Preprocessor_Simple", + "TeaCacheHunyuanVideoSampler" + ], + { + "title_aux": "Comfyui_TTP_Toolset" + } + ], + "https://github.com/TTPlanetPig/TTP_Comfyui_FramePack_SE": [ + [ + "TTPlanet_FramePack" + ], + { + "title_aux": "TTP_Comfyui_FramePack_SE" + } + ], + "https://github.com/TW-CUI/TW-CUI-Util": [ + [ + "TWCUI_Util_CommonSDXLResolutions", + "TWCUI_Util_FloatLiteral", + "TWCUI_Util_GenerationParameters", + "TWCUI_Util_GenerationPrompts", + "TWCUI_Util_IntLiteral", + "TWCUI_Util_ModelVAELORALoader", + "TWCUI_Util_ModelVAELoader", + "TWCUI_Util_MultilineStringLiteral", + "TWCUI_Util_SaveImage", + "TWCUI_Util_SaveImageAdvanced", + "TWCUI_Util_StringLiteral" + ], + { + "title_aux": "TW-CUI-Util" + } + ], + "https://github.com/TZOOTZ/ComfyUI-TZOOTZ_VHS": [ + [ + "TZOOTZ_VHSNode" + ], + { + "title_aux": "TZOOTZ VHS Effect Node" + } + ], + "https://github.com/TaiTair/comfyui-simswap": [ + [ + "Simswap", + "SimswapBuildFaceModel", + "SimswapFaceSwapOpt", + "SimswapImageDublicator", + "SimswapLoadFaceModel", + "SimswapMaskHelper", + "SimswapOptions", + "SimswapRestoreFace", + "SimswapSaveFaceModel" + ], + { + "title_aux": "Simswap Node for ComfyUI" + } + ], + "https://github.com/Taithrah/ComfyUI_Fens_Simple_Nodes": [ + [ + "FensTokenCounter", + "OptiEmptyLatent" + ], + { + "title_aux": "Fens-Simple-Nodes" + } + ], + "https://github.com/Taremin/comfyui-prompt-config": [ + [ + "PromptEdit", + "PromptGenerationConfig" + ], + { + "title_aux": "comfyui-prompt-config" + } + ], "https://github.com/Taremin/comfyui-prompt-extranetworks": [ [ + "PromptControlNetApply", + "PromptControlNetPrepare", "PromptExtraNetworks" ], { @@ -3693,12 +14130,23 @@ "title_aux": "ComfyUI String Tools" } ], + "https://github.com/Taremin/webui-monaco-prompt": [ + [ + "WebuiMonacoPromptFind", + "WebuiMonacoPromptReplace" + ], + { + "title_aux": "WebUI Monaco Prompt" + } + ], "https://github.com/TeaCrab/ComfyUI-TeaNodes": [ [ "TC_ColorFill", + "TC_CropTo", "TC_EqualizeCLAHE", "TC_ImageResize", "TC_ImageScale", + "TC_KorniaGamma", "TC_RandomColorFill", "TC_SizeApproximation" ], @@ -3718,12 +14166,34 @@ "title_aux": "ComfyS3" } ], + "https://github.com/TemryL/ComfyUI-IDM-VTON": [ + [ + "IDM-VTON", + "PipelineLoader" + ], + { + "title_aux": "ComfyUI-IDM-VTON [WIP]" + } + ], + "https://github.com/Temult/TWanSigmaGraph": [ + [ + "TWanSigmaGraph" + ], + { + "title_aux": "TWanSigmaGraph" + } + ], "https://github.com/TencentQQGYLab/ComfyUI-ELLA": [ [ + "CombineClipEllaEmbeds", + "ConcatConditionEllaEmbeds", "ConditionToEllaEmbeds", "ELLALoader", "EllaApply", "EllaCombineEmbeds", + "EllaEncode", + "EllaTextEncode", + "SetEllaTimesteps", "T5TextEncode #ELLA", "T5TextEncoderLoader #ELLA" ], @@ -3731,6 +14201,31 @@ "title_aux": "ComfyUI-ELLA" } ], + "https://github.com/Tensor-Art/ComfyUI_TENSOR_ART": [ + [ + "TA_AIToolsNode", + "TA_ExecuteNode", + "TA_UploadImageNode" + ], + { + "title_aux": "ComfyUI_TENSOR_ART" + } + ], + "https://github.com/TensorKaze/ComfyUI-TkNodes": [ + [ + "FluxAdvancedSampler", + "FluxLatentSampler", + "LoadImageAndScaleToTotalPixels", + "LoadModelAndUpscaleImage", + "MultiLatentSelector", + "MultiModelLoader", + "RepeatLatentBatchOptional", + "VAEEncodeOptional" + ], + { + "title_aux": "ComfyUI-TkNodes" + } + ], "https://github.com/TheBarret/ZSuite": [ [ "ZSuite: Prompter", @@ -3753,12 +14248,95 @@ "title_aux": "comfyui-upscale-by-model" } ], + "https://github.com/TheLustriVA/ComfyUI-Image-Size-Tools": [ + [ + "FluxResolutionNode", + "ImageSizeDetectorNode", + "SD15ResolutionNode", + "SDXLResolutionNode", + "WAN21AdvancedResolutionNode", + "WAN21ResolutionNode" + ], + { + "title_aux": "ComfyUI Image Size Tool" + } + ], + "https://github.com/TheMistoAI/ComfyUI-Anyline": [ + [ + "AnyLinePreprocessor" + ], + { + "title_aux": "Anyline" + } + ], + "https://github.com/TheWhykiki/Whykiki-ComfyUIToolset": [ + [ + "SequentialImageLoaderV8" + ], + { + "title_aux": "Whykiki ComfyUI Toolset" + } + ], + "https://github.com/ThepExcel/aiangelgallery-comfyui": [ + [ + "ThepExcel_AiAngel_MultilineTextChoiceNode" + ], + { + "title_aux": "Multiline Text Choice Node for ComfyUI" + } + ], + "https://github.com/ThereforeGames/ComfyUI-Unprompted": [ + [ + "Unprompted", + "UnpromptedSetRack" + ], + { + "title_aux": "ComfyUI-Unprompted" + } + ], + "https://github.com/TiamaTiramisu/risutools": [ + [ + "CheckFileNamePrefixExists", + "LoadImageFromText", + "LoadLastFileNamePrefix", + "UUIDGenerator" + ], + { + "title_aux": "RisuTools" + } + ], + "https://github.com/TinyBeeman/ComfyUI-TinyBee": [ + [ + "Filter Existing Files", + "Filter List", + "Filter Words", + "Get File List", + "Get List From File", + "Incrementer", + "Indexed Entry", + "List Count", + "Process Path Name", + "Random Entry", + "Randomize List", + "Replace List", + "Sort List" + ], + { + "title_aux": "ComfyUI-TinyBee" + } + ], "https://github.com/TinyTerra/ComfyUI_tinyterraNodes": [ [ - "ttN busIN", - "ttN busOUT", + "ttN KSampler_v2", + "ttN advPlot combo", + "ttN advPlot images", + "ttN advPlot merge", + "ttN advPlot range", + "ttN advPlot string", + "ttN advanced xyPlot", "ttN compareInput", "ttN concat", + "ttN conditioning", "ttN debugInput", "ttN float", "ttN hiresfixScale", @@ -3773,34 +14351,78 @@ "ttN pipeIN", "ttN pipeKSampler", "ttN pipeKSamplerAdvanced", + "ttN pipeKSamplerAdvanced_v2", "ttN pipeKSamplerSDXL", + "ttN pipeKSamplerSDXL_v2", + "ttN pipeKSampler_v2", "ttN pipeLoader", "ttN pipeLoaderSDXL", + "ttN pipeLoaderSDXL_v2", + "ttN pipeLoader_v2", "ttN pipeLoraStack", "ttN pipeOUT", "ttN seed", - "ttN seedDebug", "ttN text", "ttN text3BOX_3WAYconcat", "ttN text7BOX_concat", + "ttN textCycleLine", "ttN textDebug", + "ttN textOutput", + "ttN tinyLoader", "ttN xyPlot" ], { "author": "tinyterra", - "description": "This extension offers various pipe nodes, fullscreen image viewer based on node history, dynamic widgets, interface customization, and more.", - "nickname": "ttNodes", + "description": "This extension offers extensive xyPlot, various pipe nodes, fullscreen image viewer based on node history, dynamic widgets, interface customization, and more.", + "nickname": "\ud83c\udf0f", "nodename_pattern": "^ttN ", "title": "tinyterraNodes", - "title_aux": "tinyterraNodes" + "title_aux": "ComfyUI_tinyterraNodes" } ], - "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler": [ + "https://github.com/Tlant/ComfyUI-OllamaPromptsGeneratorTlant": [ [ - "menus" + "LoadImageAndExtractMetadataTlant", + "LoadRandomTxtFileTlant", + "LoadRandomTxtFileTlantV2", + "LoadRandomTxtFileTlantV3", + "LoadSequencedTxtFileTlant", + "LoadSpecificTxtFileTlant", + "OllamaPromptsGeneratorTlant", + "OllamaSimpleTextGeneratorTlant", + "RandomImageLoaderTlant", + "ReasoningLLMOutputCleaner", + "SaveImagePairForKontext", + "StringFormatterTlant" ], { - "title_aux": "ComfyUI_MileHighStyler" + "title_aux": "ComfyUI-OllamaPromptsGeneratorTlant" + } + ], + "https://github.com/ToTheBeginning/ComfyUI-DreamO": [ + [ + "ApplyDreamO", + "DreamOProcessorLoader", + "DreamORefEncode" + ], + { + "title_aux": "DreamO Comfyui" + } + ], + "https://github.com/Tr1dae/ComfyUI-Dequality": [ + [ + "Dequality" + ], + { + "title_aux": "ComfyUI-Dequality" + } + ], + "https://github.com/Trgtuan10/ComfyUI_YoloSegment_Mask": [ + [ + "Object Mask" + ], + { + "title_aux": "ComfyUI_YoloSegment_Mask" } ], "https://github.com/Tropfchen/ComfyUI-Embedding_Picker": [ @@ -3820,13 +14442,47 @@ "title_aux": "YARS: Yet Another Resolution Selector" } ], + "https://github.com/TrophiHunter/ComfyUI_Photography_Nodes": [ + [ + "Bloom", + "Bloom Lens Flares", + "Chromatic Aberration", + "Contrast Adaptive Sharpening", + "Contrast Brightness", + "Depth of Field", + "Get Watermark", + "Halation", + "Lens Dirt", + "Lens Distortion", + "Levels Adjustment", + "Lut", + "Manga Toner", + "Monitor Filter", + "Multi Scale Contrast", + "NTSC Filter", + "Noise", + "Physically Accurate Lens Dirt", + "Pixel Art", + "Saturation Vibrance", + "Sensor Dust", + "Sharpen Simple", + "Sharpen Unsharp Mask", + "Tint", + "VHS Chroma Smear", + "VHS Degrade", + "Vignette Effect", + "Watermark" + ], + { + "title_aux": "Photography Nodes" + } + ], "https://github.com/Trung0246/ComfyUI-0246": [ [ "0246.Beautify", "0246.BoxRange", "0246.CastReroute", "0246.Cloud", - "0246.Convert", "0246.Count", "0246.Highway", "0246.HighwayBatch", @@ -3837,7 +14493,6 @@ "0246.Loop", "0246.Merge", "0246.Meta", - "0246.Pick", "0246.RandomInt", "0246.Script", "0246.ScriptNode", @@ -3866,6 +14521,14 @@ "title_aux": "ComfyUI Neural Network Latent Upscale" } ], + "https://github.com/TylerZoro/SD3-Scaling": [ + [ + "SD3ImageScaleToTotalPixels" + ], + { + "title_aux": "SD3-Scaling" + } + ], "https://github.com/Umikaze-job/select_folder_path_easy": [ [ "SelectFolderPathEasy" @@ -3874,23 +14537,290 @@ "title_aux": "select_folder_path_easy" } ], + "https://github.com/Urabewe/ComfyUI-CountS2VExtend": [ + [ + "CountVideoExtendS2VNode" + ], + { + "title_aux": "ComfyUI Video Extend Counter" + } + ], "https://github.com/VAST-AI-Research/ComfyUI-Tripo": [ [ - "TripoAPIImageToMeshNode", - "TripoAPITextToMeshNode", - "TripoGLBViewer" + "TripoAPIDraft", + "TripoAnimateRetargetNode", + "TripoAnimateRigNode", + "TripoConvertNode", + "TripoMeshCompletion", + "TripoMeshSegmentation", + "TripoRefineModel", + "TripoSmartLowPoly", + "TripoStylizeModel", + "TripoTextureModel" ], { "title_aux": "Tripo for ComfyUI" } ], - "https://github.com/WASasquatch/ASTERR": [ + "https://github.com/VK/vk-nodes": [ [ - "ASTERR", - "SaveASTERR" + "PrepareJobs", + "SketchyText", + "SketchyThumbnail", + "TiledConfigNode", + "TiledCropNode", + "TiledRenderNode", + "TiledSetupNode", + "VKLoadAudio" ], { - "title_aux": "ASTERR" + "title_aux": "VK Nodes" + } + ], + "https://github.com/Vaibhavs10/ComfyUI-DDUF": [ + [ + "DDUFLoader", + "DiffusersModelMakeup", + "DiffusersPipelineLoader", + "DiffusersSchedulerLoader", + "DiffusersSimpleSampler" + ], + { + "title_aux": "ComfyUI-DDUF" + } + ], + "https://github.com/VangengLab/ComfyUI-LivePortrait_v2": [ + [ + "LivePortraitProcess_animal" + ], + { + "title_aux": "ComfyUI-LivePortrait_v2" + } + ], + "https://github.com/VangengLab/ComfyUI-LivePortrait_v3": [ + [ + "LivePortraitp2p" + ], + { + "title_aux": "ComfyUI-LivePortrait_v3" + } + ], + "https://github.com/Vaporbook/ComfyUI-SaveImage-PP": [ + [ + "SaveImagePP" + ], + { + "title_aux": "ComfyUI-SaveImage-PP" + } + ], + "https://github.com/Verolelb/ComfyUI-Qwen-Aspect-Ratio": [ + [ + "QwenAspectRatioSelectorLatent" + ], + { + "title_aux": "ComfyUI-Qwen-Aspect-Ratio" + } + ], + "https://github.com/VertexAnomaly/ComfyUI_ImageSentinel": [ + [ + "ImageSentinel" + ], + { + "title_aux": "ComfyUI_ImageSentinel" + } + ], + "https://github.com/VertexStudio/roblox-comfyui-nodes": [ + [ + "FirstLetterNode", + "FlowNodes", + "MirrorEffectNode", + "SaveImageNode", + "ScaleImageNode", + "SwitchImageNode", + "SwitchTextNode", + "TextToImageNode" + ], + { + "title_aux": "roblox-comfyui-nodes" + } + ], + "https://github.com/VikramxD/VEnhancer-ComfyUI-Wrapper": [ + [ + "MultiGPUInference", + "MultiGPUVEnhancerLoader", + "SingleGPUInference", + "SingleGPUVEnhancerLoader", + "VideoLoader", + "VideoSaver" + ], + { + "title_aux": "VEnhancer ComfyUI Extension" + } + ], + "https://github.com/Visionatrix/ComfyUI-Gemini": [ + [ + "ConcatText_Zho", + "DisplayText_Zho", + "Gemini_15P_API_S_Advance_Zho", + "Gemini_15P_API_S_Chat_Advance_Zho", + "Gemini_API_Chat_Zho", + "Gemini_API_S_Chat_Zho", + "Gemini_API_S_Vsion_ImgURL_Zho", + "Gemini_API_S_Zho", + "Gemini_API_Vsion_ImgURL_Zho", + "Gemini_API_Zho", + "Gemini_FileUpload_API_S_Zho", + "Gemini_File_API_S_Zho" + ], + { + "title_aux": "ComfyUI-Gemini" + } + ], + "https://github.com/Visionatrix/ComfyUI-RemoteVAE": [ + [ + "RemoteVAEDecode" + ], + { + "title_aux": "ComfyUI-RemoteVAE" + } + ], + "https://github.com/Visionatrix/ComfyUI-Visionatrix": [ + [ + "StyleAlignedBatchAlign", + "VixCheckboxLogic", + "VixDictionaryConvert", + "VixDictionaryGet", + "VixDictionaryNew", + "VixDictionaryUpdate", + "VixDynamicLoraDefinition", + "VixImageFilters", + "VixMultilineText", + "VixTextConcatenate", + "VixTextReplace", + "VixUiAspectRatioSelector", + "VixUiCheckbox", + "VixUiCheckboxLogic", + "VixUiList", + "VixUiListLogic", + "VixUiPrompt", + "VixUiRangeFloat", + "VixUiRangeInt", + "VixUiRangeScaleFloat", + "VixUiWorkflowMetadata" + ], + { + "title_aux": "ComfyUI-Visionatrix" + } + ], + "https://github.com/VraethrDalkr/ComfyUI-ProgressiveBlend": [ + [ + "ProgressiveColorMatchBlend", + "ProgressiveImageBatchBlend" + ], + { + "title_aux": "ComfyUI-ProgressiveBlend" + } + ], + "https://github.com/VrchStudio/comfyui-web-viewer": [ + [ + "VrchAnyOSCControlNode", + "VrchAudioChannelLoaderNode", + "VrchAudioConcatNode", + "VrchAudioEmotionVisualizerNode", + "VrchAudioFrequencyBandAnalyzerNode", + "VrchAudioGenresNode", + "VrchAudioMusic2EmotionNode", + "VrchAudioRecorderNode", + "VrchAudioSaverNode", + "VrchAudioVisualizerNode", + "VrchAudioWebViewerNode", + "VrchBPMDetectorNode", + "VrchBooleanKeyControlNode", + "VrchChannelOSCControlNode", + "VrchChannelX4OSCControlNode", + "VrchDelayNode", + "VrchDelayOSCControlNode", + "VrchFloatKeyControlNode", + "VrchFloatOSCControlNode", + "VrchFloatRemapNode", + "VrchGamepadLoaderNode", + "VrchImageChannelLoaderNode", + "VrchImageFlipBookWebViewerNode", + "VrchImagePreviewBackgroundNewNode", + "VrchImagePreviewBackgroundNode", + "VrchImageSaverNode", + "VrchImageSwitchOSCControlNode", + "VrchImageWebSocketChannelLoaderNode", + "VrchImageWebSocketFilterSettingsNode", + "VrchImageWebSocketSettingsNode", + "VrchImageWebSocketSimpleWebViewerNode", + "VrchImageWebSocketWebViewerNode", + "VrchImageWebViewerNode", + "VrchInstantQueueKeyControlNode", + "VrchIntKeyControlNode", + "VrchIntOSCControlNode", + "VrchIntRemapNode", + "VrchJsonUrlLoaderNode", + "VrchJsonWebSocketChannelLoaderNode", + "VrchJsonWebSocketSenderNode", + "VrchLatentWebSocketChannelLoaderNode", + "VrchLatentWebSocketSenderNode", + "VrchMicLoaderNode", + "VrchMidiDeviceLoaderNode", + "VrchModelWebViewerNode", + "VrchOSCControlSettingsNode", + "VrchQRCodeNode", + "VrchSwitchOSCControlNode", + "VrchTextConcatOSCControlNode", + "VrchTextKeyControlNode", + "VrchTextSrtPlayerNode", + "VrchTextSwitchOSCControlNode", + "VrchTriggerToggleNode", + "VrchTriggerToggleX4Node", + "VrchTriggerToggleX8Node", + "VrchVideoWebViewerNode", + "VrchWebSocketServerNode", + "VrchWebViewerNode", + "VrchXYOSCControlNode", + "VrchXYZOSCControlNode", + "VrchXboxControllerNode" + ], + { + "title_aux": "ComfyUI Web Viewer" + } + ], + "https://github.com/VykosX/ControlFlowUtils": [ + [ + "Cycle", + "CycleContinue", + "CycleEnd", + "DataMonitor", + "FallbackAnyBatch", + "FallbackImagePreviewer", + "FolderSearch", + "GarbageCollector", + "HaltExecution", + "IfConditionSelector", + "ImageResolutionAdjust", + "InvertCondition", + "LoopClose", + "LoopOpen", + "LoraSelector", + "MemoryStorage", + "ModelSelector", + "NullInput", + "NullOutput", + "ReadTextFile", + "SaveTextFile", + "SimpleToggle", + "StringOperation", + "UniversalSwitch", + "UnloadModels", + "VAESelector", + "Wait" + ], + { + "title_aux": "ControlFlowUtils" } ], "https://github.com/WASasquatch/ComfyUI_Preset_Merger": [ @@ -3949,229 +14879,284 @@ "KSamplerSeq", "KSamplerSeq2", "VAEEncodeForInpaint (WAS)", - "VividSharpen" + "VividSharpen", + "VividSharpenV2" ], { "title_aux": "WAS_Extras" } ], - "https://github.com/WASasquatch/was-node-suite-comfyui": [ + "https://github.com/WASasquatch/face-upscaling-and-seamless-embedding": [ [ - "BLIP Analyze Image", - "BLIP Model Loader", - "Blend Latents", - "Boolean To Text", - "Bounded Image Blend", - "Bounded Image Blend with Mask", - "Bounded Image Crop", - "Bounded Image Crop with Mask", - "Bus Node", - "CLIP Input Switch", - "CLIP Vision Input Switch", - "CLIPSeg Batch Masking", - "CLIPSeg Masking", - "CLIPSeg Model Loader", - "CLIPTextEncode (BlenderNeko Advanced + NSP)", - "CLIPTextEncode (NSP)", - "Cache Node", - "Checkpoint Loader", - "Checkpoint Loader (Simple)", - "Conditioning Input Switch", - "Constant Number", - "Control Net Model Input Switch", - "Convert Masks to Images", - "Create Grid Image", - "Create Grid Image from Batch", - "Create Morph Image", - "Create Morph Image from Path", - "Create Video from Path", - "Debug Number to Console", - "Dictionary to Console", - "Diffusers Hub Model Down-Loader", - "Diffusers Model Loader", - "Export API", - "Image Analyze", - "Image Aspect Ratio", - "Image Batch", - "Image Blank", - "Image Blend", - "Image Blend by Mask", - "Image Blending Mode", - "Image Bloom Filter", - "Image Bounds", - "Image Bounds to Console", - "Image Canny Filter", - "Image Chromatic Aberration", - "Image Color Palette", - "Image Crop Face", - "Image Crop Location", - "Image Crop Square Location", - "Image Displacement Warp", - "Image Dragan Photography Filter", - "Image Edge Detection Filter", - "Image Film Grain", - "Image Filter Adjustments", - "Image Flip", - "Image Generate Gradient", - "Image Gradient Map", - "Image High Pass Filter", - "Image History Loader", - "Image Input Switch", - "Image Levels Adjustment", - "Image Load", - "Image Lucy Sharpen", - "Image Median Filter", - "Image Mix RGB Channels", - "Image Monitor Effects Filter", - "Image Nova Filter", - "Image Padding", - "Image Paste Crop", - "Image Paste Crop by Location", - "Image Paste Face", - "Image Perlin Noise", - "Image Perlin Power Fractal", - "Image Pixelate", - "Image Power Noise", - "Image Rembg (Remove Background)", - "Image Remove Background (Alpha)", - "Image Remove Color", - "Image Resize", - "Image Rotate", - "Image Rotate Hue", - "Image SSAO (Ambient Occlusion)", - "Image SSDO (Direct Occlusion)", - "Image Save", - "Image Seamless Texture", - "Image Select Channel", - "Image Select Color", - "Image Shadows and Highlights", - "Image Size to Number", - "Image Stitch", - "Image Style Filter", - "Image Threshold", - "Image Tiled", - "Image Transpose", - "Image Voronoi Noise Filter", - "Image fDOF Filter", - "Image to Latent Mask", - "Image to Noise", - "Image to Seed", - "Images to Linear", - "Images to RGB", - "Inset Image Bounds", - "Integer place counter", - "KSampler (WAS)", - "KSampler Cycle", - "Latent Batch", - "Latent Input Switch", - "Latent Noise Injection", - "Latent Size to Number", - "Latent Upscale by Factor (WAS)", - "Load Cache", - "Load Image Batch", - "Load Lora", - "Load Text File", - "Logic Boolean", - "Logic Boolean Primitive", - "Logic Comparison AND", - "Logic Comparison OR", - "Logic Comparison XOR", - "Logic NOT", - "Lora Input Switch", - "Lora Loader", - "Mask Arbitrary Region", - "Mask Batch", - "Mask Batch to Mask", - "Mask Ceiling Region", - "Mask Crop Dominant Region", - "Mask Crop Minority Region", - "Mask Crop Region", - "Mask Dilate Region", - "Mask Dominant Region", - "Mask Erode Region", - "Mask Fill Holes", - "Mask Floor Region", - "Mask Gaussian Region", - "Mask Invert", - "Mask Minority Region", - "Mask Paste Region", - "Mask Smooth Region", - "Mask Threshold Region", - "Masks Add", - "Masks Combine Batch", - "Masks Combine Regions", - "Masks Subtract", - "MiDaS Depth Approximation", - "MiDaS Mask Image", - "MiDaS Model Loader", - "Model Input Switch", - "Number Counter", - "Number Input Condition", - "Number Input Switch", - "Number Multiple Of", - "Number Operation", - "Number PI", - "Number to Float", - "Number to Int", - "Number to Seed", - "Number to String", - "Number to Text", - "Prompt Multiple Styles Selector", - "Prompt Styles Selector", - "Random Number", - "SAM Image Mask", - "SAM Model Loader", - "SAM Parameters", - "SAM Parameters Combine", - "Samples Passthrough (Stat System)", - "Save Text File", - "Seed", - "String to Text", - "Tensor Batch to Image", - "Text Add Token by Input", - "Text Add Tokens", - "Text Compare", - "Text Concatenate", - "Text Contains", - "Text Dictionary Convert", - "Text Dictionary Get", - "Text Dictionary Keys", - "Text Dictionary New", - "Text Dictionary To Text", - "Text Dictionary Update", - "Text File History Loader", - "Text Find and Replace", - "Text Find and Replace Input", - "Text Find and Replace by Dictionary", - "Text Input Switch", - "Text List", - "Text List Concatenate", - "Text List to Text", - "Text Load Line From File", - "Text Multiline", - "Text Parse A1111 Embeddings", - "Text Parse Noodle Soup Prompts", - "Text Parse Tokens", - "Text Random Line", - "Text Random Prompt", - "Text Shuffle", - "Text String", - "Text String Truncate", - "Text to Conditioning", - "Text to Console", - "Text to Number", - "Text to String", - "True Random.org Number Generator", - "Upscale Model Loader", - "Upscale Model Switch", - "VAE Input Switch", - "Video Dump Frames", - "Write to GIF", - "Write to Video", - "unCLIP Checkpoint Loader" + "FUSEGenericKSampler", + "FUSEKSampler", + "FUSESamplerMaskOptions", + "FUSEYOLOSettings" ], { - "title_aux": "WAS Node Suite" + "title_aux": "FUSE Face Enhancer" + } + ], + "https://github.com/WUYUDING2583/ComfyUI-Save-Image-Callback": [ + [ + "Save Image With Callback" + ], + { + "title_aux": "Save Image With Callback" + } + ], + "https://github.com/WX-NPS1598/ComfyUI-Auto_Crop_By_NPS": [ + [ + "AutoCropByNPS" + ], + { + "title_aux": "Auto Crop By NPS" + } + ], + "https://github.com/WaddingtonHoldings/ComfyUI-InstaSD": [ + [ + "GPTImage1Generate", + "InstaCBoolean", + "InstaCFloat", + "InstaCInteger", + "InstaCLoadImageFromS3", + "InstaCLoraLoader", + "InstaCSaveImageToS3", + "InstaCSeed", + "InstaCText", + "InstaCTextML", + "InstaLoadImageLocal", + "InstaLoadImageWithMask", + "InstaPromptMultipleStyleSelector", + "InstaPromptStyleSelector", + "LoadVideo", + "PreViewVideo" + ], + { + "title_aux": "InstaSD nodes for ComfyUI" + } + ], + "https://github.com/WainWong/ComfyUI-Loop-image": [ + [ + "CyberEve_BatchImageLoopClose", + "CyberEve_BatchImageLoopOpen", + "CyberEve_LoopIndexSwitch", + "CyberEve_MaskMerge", + "CyberEve_MaskSegmentation", + "CyberEve_SingleImageLoopClose", + "CyberEve_SingleImageLoopOpen" + ], + { + "title_aux": "ComfyUI-Loop-image" + } + ], + "https://github.com/Wakfull33/ComfyUI-SaveImageCivitAI": [ + [ + "SaveCivitai" + ], + { + "title_aux": "ComfyUI-SaveImageCivitAI" + } + ], + "https://github.com/WangPengxing/ComfyUI_WPX_Node": [ + [ + "AnimalContour", + "AnimalContourSilhouette", + "CircleContour", + "DetermineRowsAndCols", + "PenetrateStyle", + "RectangleContour", + "SplitMaskElements", + "SplitStickers" + ], + { + "title_aux": "ComfyUI WPX Nodes" + } + ], + "https://github.com/WarpedAnimation/ComfyUI-WarpedToolset": [ + [ + "ClipLoaderGGUF", + "DualClipLoaderGGUF", + "GGUFRun", + "GGUFSave", + "GGUFUndo", + "LoaderGGUF", + "LoaderGGUFAdvanced", + "QuadrupleClipLoaderGGUF", + "TENSORBoost", + "TENSORCut", + "TripleClipLoaderGGUF", + "VaeGGUF", + "WarpedBasicGuider", + "WarpedBundleAllVideoImages", + "WarpedBundleVideoImages", + "WarpedCLIPLoader", + "WarpedCLIPVisionLoader", + "WarpedCheckpointLoader", + "WarpedClipLoaderGGUF", + "WarpedCreateEmptyImageBatch", + "WarpedCreateEmptyLatentBatch", + "WarpedCreateSpecialImageBatch", + "WarpedDualCLIPLoader", + "WarpedDualClipLoaderGGUF", + "WarpedDualEncoder", + "WarpedDualGuider", + "WarpedFramepackLoraSelectBatch", + "WarpedFramepackMultiLoraSelect", + "WarpedFramepackMultiLoraSelectExt", + "WarpedFramepackSampler", + "WarpedFramepackSamplerScripted", + "WarpedGetImageFromVideo", + "WarpedGetTwoImagesFromVideo", + "WarpedHunyuanImageToVideo", + "WarpedHunyuanLoraAvgMerge", + "WarpedHunyuanLoraBatchMerge", + "WarpedHunyuanLoraConvert", + "WarpedHunyuanLoraConvertKeys", + "WarpedHunyuanLoraConvertKeys2", + "WarpedHunyuanLoraMerge", + "WarpedHunyuanMultiLoraAvgMerge", + "WarpedHunyuanMultiLoraLoader", + "WarpedHunyuanMultiLoraMerge", + "WarpedHunyuanMultiLoraMixer", + "WarpedHunyuanMultiLoraMixerExt", + "WarpedHunyuanVideoLoraLoader", + "WarpedImageNoiseAugmentation", + "WarpedImageScaleToSide", + "WarpedLeapfusionHunyuanI2V", + "WarpedLoadFramePackModel", + "WarpedLoadImages", + "WarpedLoadLorasBatchByPrefix", + "WarpedLoadVideosBatch", + "WarpedLoaderGGUF", + "WarpedLoraKeysAndMetadataReader", + "WarpedLoraReSave", + "WarpedModifyCaptionFile", + "WarpedMultiLoraLoader", + "WarpedNumericalConversion", + "WarpedReverseImageBatch", + "WarpedSamplerCustomAdv", + "WarpedSamplerCustomAdvLatent", + "WarpedSamplerCustomScripted", + "WarpedSamplerScripts12", + "WarpedSamplerScripts16", + "WarpedSamplerScripts20", + "WarpedSamplerScripts30", + "WarpedSamplerScripts40", + "WarpedSamplerScripts5", + "WarpedSamplerScripts8", + "WarpedSaveAnimatedPng", + "WarpedSaveImageCaption", + "WarpedUpscaleWithModel", + "WarpedVAELoader", + "WarpedWanImageToVideo", + "WarpedWanLoadAndEditLoraBlocks", + "WarpedWanLoraMerge" + ], + { + "title_aux": "ComfyUI-WarpedToolset" + } + ], + "https://github.com/WaveSpeedAI/wavespeed-comfyui": [ + [ + "WaveSpeedAI BytedanceSeedanceLiteI2VNode", + "WaveSpeedAI BytedanceSeedanceLiteT2VNode", + "WaveSpeedAI BytedanceSeedanceProI2VNode", + "WaveSpeedAI BytedanceSeedanceProT2VNode", + "WaveSpeedAI Client", + "WaveSpeedAI DiaTTSNode", + "WaveSpeedAI Flux Image2Image", + "WaveSpeedAI Flux Loras", + "WaveSpeedAI Flux Text2Image", + "WaveSpeedAI FluxControlLoraCannyNode", + "WaveSpeedAI FluxControlLoraDepthNode", + "WaveSpeedAI FluxControlnetUnionPro2_0Node", + "WaveSpeedAI FluxDevFillNode", + "WaveSpeedAI FluxDevLoraNode", + "WaveSpeedAI FluxDevLoraUltraFastNode", + "WaveSpeedAI FluxDevNode", + "WaveSpeedAI FluxDevUltraFastNode", + "WaveSpeedAI FluxProReduxNode", + "WaveSpeedAI FluxReduxDevNode", + "WaveSpeedAI FluxSchnellLoraNode", + "WaveSpeedAI FluxSchnellNode", + "WaveSpeedAI FramepackNode", + "WaveSpeedAI GhibliNode", + "WaveSpeedAI GoogleVeo3FastNode", + "WaveSpeedAI GoogleVeo3Node", + "WaveSpeedAI HidreamE1FullNode", + "WaveSpeedAI HidreamI1DevNode", + "WaveSpeedAI HidreamI1FullNode", + "WaveSpeedAI Hunyuan3DV2MultiViewNode", + "WaveSpeedAI HunyuanCustomRef2V480pNode", + "WaveSpeedAI HunyuanCustomRef2V720pNode", + "WaveSpeedAI HunyuanVideoI2VNode", + "WaveSpeedAI HunyuanVideoT2VNode", + "WaveSpeedAI InstantCharacterNode", + "WaveSpeedAI KwaivgiKlingV16I2VProNode", + "WaveSpeedAI KwaivgiKlingV16I2VStandardNode", + "WaveSpeedAI KwaivgiKlingV16T2VStandardNode", + "WaveSpeedAI KwaivgiKlingV21I2vMasterNode", + "WaveSpeedAI KwaivgiKlingV21I2vProNode", + "WaveSpeedAI KwaivgiKlingV21I2vStandardNode", + "WaveSpeedAI KwaivgiKlingV21T2vMasterNode", + "WaveSpeedAI LtxVideoV097I2V480pNode", + "WaveSpeedAI LtxVideoV097I2V720pNode", + "WaveSpeedAI MMAudioV2Node", + "WaveSpeedAI Magi124bNode", + "WaveSpeedAI Minimax Image2Video", + "WaveSpeedAI MinimaxVideo01Node", + "WaveSpeedAI NightmareAIRealESRGANNode", + "WaveSpeedAI Preview Video", + "WaveSpeedAI SDXLLoraNode", + "WaveSpeedAI SDXLNode", + "WaveSpeedAI Save Audio", + "WaveSpeedAI SeedEditV3Node", + "WaveSpeedAI SeedreamV3Node", + "WaveSpeedAI SkyReelsV1Node", + "WaveSpeedAI Step1xEditNode", + "WaveSpeedAI UnoNode", + "WaveSpeedAI Upload Audio", + "WaveSpeedAI Upload Image", + "WaveSpeedAI Upload Video", + "WaveSpeedAI Veo2I2vNode", + "WaveSpeedAI Veo2T2vNode", + "WaveSpeedAI ViduImageToVideo20Node", + "WaveSpeedAI ViduReferenceToVideo20Node", + "WaveSpeedAI ViduStartEndToVideo20Node", + "WaveSpeedAI Wan Image2Video", + "WaveSpeedAI Wan Loras", + "WaveSpeedAI Wan Text2Video", + "WaveSpeedAI Wan2114BVaceNode", + "WaveSpeedAI Wan21I2V480pLoraNode", + "WaveSpeedAI Wan21I2V480pLoraUltraFastNode", + "WaveSpeedAI Wan21I2V480pNode", + "WaveSpeedAI Wan21I2V480pUltraFastNode", + "WaveSpeedAI Wan21I2V720pLoraNode", + "WaveSpeedAI Wan21I2V720pLoraUltraFastNode", + "WaveSpeedAI Wan21I2V720pNode", + "WaveSpeedAI Wan21I2V720pUltraFastNode", + "WaveSpeedAI Wan21T2V480pLoraNode", + "WaveSpeedAI Wan21T2V480pLoraUltraFastNode", + "WaveSpeedAI Wan21T2V480pUltraFastNode", + "WaveSpeedAI Wan21T2V720pLoraNode", + "WaveSpeedAI Wan21T2V720pLoraUltraFastNode", + "WaveSpeedAI Wan21T2V720pNode", + "WaveSpeedAI Wan21T2V720pUltraFastNode" + ], + { + "title_aux": "wavespeed-comfyui" + } + ], + "https://github.com/WeChatCV/Stand-In_Preprocessor_ComfyUI": [ + [ + "ApplyFaceProcessor", + "FaceOnlyModeSwitch", + "FaceProcessorLoader", + "VideoFramePreprocessor" + ], + { + "title_aux": "Stand-In Official Preprocessor ComfyUI Nodes" } ], "https://github.com/WebDev9000/WebDev9000-Nodes": [ @@ -4183,16 +15168,184 @@ "title_aux": "WebDev9000-Nodes" } ], + "https://github.com/Wenaka2004/ComfyUI-TagClassifier": [ + [ + "LLMProcessingNode" + ], + { + "title_aux": "ComfyUI-TagClassifier" + } + ], + "https://github.com/What-a-stupid-username/comfyui-InversedSampler": [ + [ + "SamplerInversedEulerNode" + ], + { + "title_aux": "comfyui_InversedSampler" + } + ], "https://github.com/Wicloz/ComfyUI-Simply-Nodes": [ [ "WF_ConditionalLoraLoader", + "WF_FixupPixelArt", "WF_MultilineText", "WF_RandomStyle", "WF_ResolutionSDXL", "WF_TextFlow" ], { - "title_aux": "ComfyUI-Simply-Nodes" + "title_aux": "ComfyUI Simply Nodes" + } + ], + "https://github.com/Windecay/ComfyUI-ReservedVRAM": [ + [ + "ReservedVRAMSetter" + ], + { + "title_aux": "ComfyUI-ReservedVRAM" + } + ], + "https://github.com/Windecay/ComfyUI-SDupcaleTiledSize": [ + [ + "SDupscaleTiledSize" + ], + { + "title_aux": "ComfyUI-SDupcaleTiledSize" + } + ], + "https://github.com/X-School-Academy/X-FluxAgent": [ + [ + "X-FluxAgent.AICodeGenNode", + "X-FluxAgent.OpenAIChatnNode", + "X-FluxAgent.RichTextNode", + "X-FluxAgent.SaveTextNode" + ], + { + "title_aux": "X-FluxAgent" + } + ], + "https://github.com/X-T-E-R/ComfyUI-EasyCivitai-XTNodes": [ + [ + "CheckpointLoaderSimpleWithPreviews", + "CivitaiCheckpointLoaderSimple", + "CivitaiLoraLoader", + "CivitaiLoraLoaderStacked", + "CivitaiLoraLoaderStackedAdvanced", + "LoraLoaderStackedAdvancedWithPreviews", + "LoraLoaderStackedWithPreviews", + "LoraLoaderWithPreviews", + "XTNodesCleanPrompt", + "XTNodesPromptConcatenate" + ], + { + "title_aux": "ComfyUI Easy Civitai (XTNodes)" + } + ], + "https://github.com/XLabs-AI/x-flux-comfyui": [ + [ + "ApplyAdvancedFluxControlNet", + "ApplyAdvancedFluxIPAdapter", + "ApplyFluxControlNet", + "ApplyFluxIPAdapter", + "FluxLoraLoader", + "LoadFluxControlNet", + "LoadFluxIPAdapter", + "XlabsSampler" + ], + { + "title_aux": "x-flux-comfyui" + } + ], + "https://github.com/XWAVEart/comfyui-xwave-xlitch-nodes": [ + [ + "XWAVECellularNoiseNode", + "XWAVEPixelate", + "XWaveChromaticAberration", + "XWaveColorChannelManipulation", + "XWaveColorFilter", + "XWaveColorShiftExpansion", + "XWaveCurvedHueShift", + "XWaveGaussianBlur", + "XWaveHistogramGlitch", + "XWaveJPEGArtifacts", + "XWaveNoiseEffect", + "XWavePosterize", + "XWaveRGBChannelShift", + "XWaveSharpen" + ], + { + "title_aux": "ComfyUI XWAVE Nodes" + } + ], + "https://github.com/XchanBik/ComfyUI_SimpleBridgeNode": [ + [ + "LoraTextLoader", + "SimpleBridgeLoadNode", + "SimpleBridgeStoreNode" + ], + { + "description": "A custom node for ComfyUI to store and retrieve data dynamically.", + "nickname": "SimpleBridgeNode", + "title": "SimpleBridgeNode", + "title_aux": "ComfyUI_SimpleBridgeNode" + } + ], + "https://github.com/Xclbr7/ComfyUI-Merlin": [ + [ + "GeminiPromptExpander", + "Magic Photo Prompter \ud83e\ude84" + ], + { + "title_aux": "ComfyUI-Merlin: Magic Photo Prompter" + } + ], + "https://github.com/Xiangyu-CAS/HandFixer": [ + [ + "MediapipeHandNode" + ], + { + "title_aux": "HandFixer" + } + ], + "https://github.com/XieJunchen/comfyUI_LLM": [ + [ + "AppendImagesToBatch", + "CloudImageUploadNode", + "CloudImagesToVideoAndUpload", + "CloudVideoUploadNode", + "ComfyUI_LLM_Ollama", + "CreateEmptyImageBatch", + "DeepSeek_Online", + "GetFirstImageFromBatch", + "GetVideoClipByIndex", + "LoadGifFromLocal", + "LoadImgFromUrl", + "RemoveFirstOrLastImageFromBatch", + "SplitVideoByFrames", + "StringArrayFormatter", + "StringArrayIndexer" + ], + { + "title_aux": "comfyUI_LLM" + } + ], + "https://github.com/Xkipper/ComfyUI_SkipperNodes": [ + [ + "Embedding Stack", + "Simple Box" + ], + { + "title_aux": "ComfyUI_SkipperNodes" + } + ], + "https://github.com/XmYx/ComfyUI-SmolLM3": [ + [ + "SmolLM3ModelLoader", + "SmolLM3Sampler", + "SmolLM3SimpleGenerate" + ], + { + "title_aux": "ComfyUI-SmolLM3" } ], "https://github.com/XmYx/deforum-comfy-nodes": [ @@ -4239,48 +15392,6 @@ "title_aux": "Xycuno Oobabooga" } ], - "https://github.com/YMC-GitHub/ymc-node-suite-comfyui": [ - [ - "canvas-util-cal-size", - "conditioning-util-input-switch", - "cutoff-region-util", - "hks-util-cal-denoise-step", - "img-util-get-image-size", - "img-util-switch-input-image", - "io-image-save", - "io-text-save", - "io-util-file-list-get", - "io-util-file-list-get-text", - "number-util-random-num", - "pipe-util-to-basic-pipe", - "region-util-get-by-center-and-size", - "region-util-get-by-lt", - "region-util-get-crop-location-from-center-size-text", - "region-util-get-pad-out-location-by-size", - "text-preset-colors", - "text-util-join-text", - "text-util-loop-text", - "text-util-path-list", - "text-util-prompt-add-prompt", - "text-util-prompt-adv-dup", - "text-util-prompt-adv-search", - "text-util-prompt-del", - "text-util-prompt-dup", - "text-util-prompt-join", - "text-util-prompt-search", - "text-util-prompt-shuffle", - "text-util-prompt-std", - "text-util-prompt-unweight", - "text-util-random-text", - "text-util-search-text", - "text-util-show-text", - "text-util-switch-text", - "xyz-util-txt-to-int" - ], - { - "title_aux": "ymc-node-suite-comfyui" - } - ], "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes": [ [ "Example", @@ -4294,6 +15405,98 @@ "title_aux": "ComfyUI-TacoNodes" } ], + "https://github.com/YRIKKA/ComfyUI-InferenceTimeScaling": [ + [ + "InferenceTimeScaler", + "LoadCLIPScoreVerifier", + "LoadImageRewardVerifier", + "LoadQwenVLMVerifier" + ], + { + "title_aux": "ComfyUI-InferenceTimeScaling" + } + ], + "https://github.com/Yahweasel/ComfyUI-MinDalle": [ + [ + "MinDalleNode" + ], + { + "title_aux": "ComfyUI-MinDalle" + } + ], + "https://github.com/Yanick112/ComfyUI-ToSVG": [ + [ + "TS_ImageQuantize", + "TS_ImageToSVGStringBW_Potracer", + "TS_ImageToSVGStringBW_Vtracer", + "TS_ImageToSVGStringColor_Vtracer", + "TS_SVGBytesIOToString", + "TS_SVGPathSimplify", + "TS_SVGStringPreview", + "TS_SVGStringToImage", + "TS_SVGStringToSVGBytesIO", + "TS_SaveSVGString" + ], + { + "title_aux": "ComfyUI-ToSVG" + } + ], + "https://github.com/YaroslavIv/comfyui_swd": [ + [ + "SwDSelector" + ], + { + "title_aux": "SwD Preset Selector for ComfyUI" + } + ], + "https://github.com/YarvixPA/ComfyUI-YarvixPA": [ + [ + "ApplyStyleModelEnhanced", + "ApplyStyleModelSimple", + "BatchImagesNode", + "FrameCalculator", + "FrameCalculatorAudio", + "InpaintConditioningNode", + "InpaintFluxKontextConditioning", + "Prepimg2Vid", + "RemoveBackgroundNode", + "StitchImages", + "StitchImagesAndMask", + "TextFieldNode", + "UnstitchImages", + "UnstitchImagesAndMask", + "UpscaleImageWithModel" + ], + { + "title_aux": "ComfyUI-YarvixPA" + } + ], + "https://github.com/YaserJaradeh/comfyui-yaser-nodes": [ + [ + "Float", + "GeneralSwitch", + "ImageColorMatch", + "ImageSizeBySide", + "IterativeUpscaleWithModelsNode", + "LoraLoaderStack" + ], + { + "title_aux": "Yaser-nodes for ComfyUI" + } + ], + "https://github.com/Yeq6X/ComfyUI-image-to-video-inserter": [ + [ + "Base64ListToImages", + "Base64VideoToImages", + "CreateBlankFrames", + "ImageFrameSelector", + "ImagesToBase64Video", + "MultiImageInserter" + ], + { + "title_aux": "ComfyUI Image to Video Inserter" + } + ], "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI": [ [ "MergeBlockWeighted" @@ -4302,6 +15505,387 @@ "title_aux": "MergeBlockWeighted_fo_ComfyUI" } ], + "https://github.com/Yo1up/Diffusion-Model-Detailer": [ + [ + "Detailer" + ], + { + "title_aux": "Diffusion-Model-Detailer" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-AniSora": [ + [ + "AniSora", + "AniSoraPrompt", + "LoadAniSoraModel", + "SaveAniSora" + ], + { + "title_aux": "ComfyUI-AniSora" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-AudioX": [ + [ + "AudioXPrompt", + "Condition", + "Generate", + "LoadAudioXAudio", + "LoadAudioXModel", + "LoadAudioXVideo", + "SaveAudioXAudio" + ], + { + "title_aux": "Yuan-ManX/ComfyUI-AudioX" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Bagel": [ + [ + "BagelPrompt", + "ImageEditing", + "ImageGeneration", + "ImageThinkEditing", + "ImageThinkGeneration", + "ImageUnderstanding", + "LoadBAGELModel", + "LoadEditImage" + ], + { + "title_aux": "ComfyUI-Bagel" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-ChatterboxTTS": [ + [ + "ChatterboxAudioPrompt", + "ChatterboxPrompt", + "ChatterboxTTS", + "ChatterboxVC", + "LoadChatterboxAudio", + "LoadChatterboxTTSModel", + "LoadChatterboxTargetAudio", + "LoadChatterboxVCModel", + "SaveChatterboxAudio" + ], + { + "title_aux": "ComfyUI-ChatterboxTTS" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Cobra": [ + [ + "ColorizeImage", + "DrawColorHint", + "ExtractLineArt", + "GetColorValue", + "LoadCobraModel" + ], + { + "title_aux": "ComfyUI-Cobra" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Dia": [ + [ + "DiaTTS", + "InputDiaText", + "LoadDiaAudio", + "LoadDiaModel", + "SaveDiaAudio" + ], + { + "title_aux": "ComfyUI-Dia" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Direct3D-S2": [ + [ + "Direct3DS2", + "LoadDirect3DS2Image", + "LoadDirect3DS2Model", + "SaveDirect3DS2Mesh" + ], + { + "title_aux": "ComfyUI-Direct3D-S2" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-HiDream-I1": [ + [ + "GenerateHiDreamImage", + "LoadHiDreamModel", + "SaveHiDreamImage" + ], + { + "title_aux": "ComfyUI-HiDream-I1" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-HiggsAudio": [ + [ + "HiggsAudio", + "LoadHiggsAudioModel", + "LoadHiggsAudioPrompt", + "LoadHiggsAudioSystemPrompt", + "LoadHiggsAudioTokenizer", + "SaveHiggsAudio" + ], + { + "title_aux": "ComfyUI-HiggsAudio" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Hunyuan3D-2.1": [ + [ + "Hunyuan3DShapeGeneration", + "Hunyuan3DTexureSynthsis", + "LoadHunyuan3DImage", + "LoadHunyuan3DModel" + ], + { + "title_aux": "ComfyUI-Hunyuan3D-2.1" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-HunyuanPortrait": [ + [ + "HunyuanPortrait", + "LoadHunyuanPortraitConfig", + "LoadHunyuanPortraitImage", + "LoadHunyuanPortraitVideo" + ], + { + "title_aux": "ComfyUI-HunyuanPortrait" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Kimi-VL": [ + [ + "KimiVL", + "LoadKimiVLImage", + "LoadKimiVLModel", + "SaveKimiVLText" + ], + { + "title_aux": "ComfyUI-Kimi-VL" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-LLaMA-Mesh": [ + [ + "Apply Gradient Color", + "Chat LLaMa Mesh", + "Visualize Mesh" + ], + { + "title_aux": "ComfyUI-LLaMA-Mesh" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-LayerAnimate": [ + [ + "LayerAnimateNode", + "LoadImages", + "LoadPretrainedModel" + ], + { + "title_aux": "ComfyUI-LayerAnimate" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-LiveCC": [ + [ + "LiveCC", + "LiveCCPrompt", + "LoadLiveCCModel", + "LoadLiveCCVideo", + "SaveLiveCCText" + ], + { + "title_aux": "ComfyUI-LiveCC" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Matrix-Game": [ + [ + "GameVideoGenerator", + "LoadDiTModel", + "LoadGameImage", + "LoadMouseIcon", + "LoadTextEncoderModel", + "LoadVAEModel", + "MatrixGameOutput" + ], + { + "title_aux": "ComfyUI-Matrix-Game" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-MoviiGen": [ + [ + "LoadMoviiGenModel", + "MoviiGen", + "MoviiGenPrompt", + "SaveMoviiGen" + ], + { + "title_aux": "ComfyUI-MoviiGen" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Multiverse": [ + [ + "PlayGame" + ], + { + "title_aux": "ComfyUI-Multiverse" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Muyan-TTS": [ + [ + "Generate", + "InputText", + "LoadMuyanTTSModel", + "LoadRefAudio", + "PromptText", + "SaveMuyanTTSAudio" + ], + { + "title_aux": "ComfyUI-Muyan-TTS" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-OmniGen2": [ + [ + "LoadOmniGen2Image", + "LoadOmniGen2Model", + "OmniGen2" + ], + { + "title_aux": "ComfyUI-OmniGen2" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-OrpheusTTS": [ + [ + "Long Text Generation", + "Single Text Generation" + ], + { + "title_aux": "ComfyUI-OrpheusTTS" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-PhotoDoodle": [ + [ + "PhotoDoodle Gen" + ], + { + "title_aux": "ComfyUI-PhotoDoodle" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-PosterCraft": [ + [ + "LoadCustomTransformer", + "LoadPipeline", + "LoadPosterCraftPrompt", + "LoadQwenModel", + "PosterCraft", + "SavePosterCraft" + ], + { + "title_aux": "ComfyUI-PosterCraft" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-SkyReels-A2": [ + [ + "A2Prompt", + "A2VideoGenerator", + "CombineImages", + "LoadA2Model", + "NegativePrompt", + "ReferenceImages", + "SaveVideo" + ], + { + "title_aux": "ComfyUI-SkyReels-A2" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-SkyworkUniPic": [ + [ + "Image2Text", + "ImageEditing", + "LoadSkyworkUniPicCheckpoint", + "LoadSkyworkUniPicConfig", + "LoadSkyworkUniPicImage", + "LoadSkyworkUniPicPrompt", + "SaveSkyworkUniPicEditImage", + "SaveSkyworkUniPicImage", + "Text2Image" + ], + { + "title_aux": "ComfyUI-SkyworkUniPic" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-SoundHub": [ + [ + "Load Audio", + "Preview Audio", + "Save Audio" + ], + { + "title_aux": "ComfyUI-SoundHub" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Step1X-3D": [ + [ + "GeometryGeneration", + "GeometryLabelGeneration", + "LoadInputImage", + "LoadStep1X3DGeometryLabelModel", + "LoadStep1X3DGeometryModel", + "LoadStep1X3DTextureModel", + "LoadUntexturedMesh", + "SaveTexturedMesh", + "SaveUntexturedMesh", + "TexureSynthsis" + ], + { + "title_aux": "ComfyUI-Step1X-3D" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-StyleStudio": [ + [ + "StyleStudio Image Stylization" + ], + { + "title_aux": "ComfyUI-StyleStudio" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-ThinkSound": [ + [ + "LoadCaption", + "LoadCoTDescription", + "LoadOThinkSoundVideo", + "ThinkSound" + ], + { + "title_aux": "ComfyUI-ThinkSound" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-UNO": [ + [ + "ConfigSave", + "ImageConcat", + "ImagePathLoader", + "ImageSave", + "UNOGenerator", + "UNOParams" + ], + { + "title_aux": "ComfyUI-UNO" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Vui": [ + [ + "LoadVuiModel", + "LoadVuiPrompt", + "SaveVui", + "Vui" + ], + { + "title_aux": "ComfyUI-Vui" + } + ], + "https://github.com/Yukinoshita-Yukinoe/ComfyUI-Qwen-Node": [ + [ + "QwenAPILLMNode" + ], + { + "title_aux": "ComfyUI-Qwen-Node" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": [ [ "APISR_Lterative_Zho", @@ -4312,6 +15896,14 @@ "title_aux": "APISR IN COMFYUI" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Animated-optical-illusions": [ + [ + "AOI_Processing_Zho" + ], + { + "title_aux": "ComfyUI-Animated-optical-illusions" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery": [ [ "ArtGallery_Zho", @@ -4334,13 +15926,14 @@ "title_aux": "ComfyUI-BRIA_AI-RMBG" } ], - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DeepSeek-JanusPro": [ [ - "BiRefNet_ModelLoader_Zho", - "BiRefNet_Zho" + "Janus_ImageGeneration", + "Janus_ModelLoader", + "Janus_MultimodalUnderstanding" ], { - "title_aux": "ComfyUI-BiRefNet-ZHO" + "title_aux": "ComfyUI-DeepSeek-JanusPro" } ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": [ @@ -4353,25 +15946,6 @@ "title_aux": "DepthFM IN COMFYUI" } ], - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": [ - [ - "ConcatText_Zho", - "DisplayText_Zho", - "Gemini_15P_API_S_Advance_Zho", - "Gemini_15P_API_S_Chat_Advance_Zho", - "Gemini_API_Chat_Zho", - "Gemini_API_S_Chat_Zho", - "Gemini_API_S_Vsion_ImgURL_Zho", - "Gemini_API_S_Zho", - "Gemini_API_Vsion_ImgURL_Zho", - "Gemini_API_Zho", - "Gemini_FileUpload_API_S_Zho", - "Gemini_File_API_S_Zho" - ], - { - "title_aux": "ComfyUI-Gemini" - } - ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID": [ [ "IDBaseModelLoader_fromhub", @@ -4386,6 +15960,16 @@ "title_aux": "ComfyUI-InstantID" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini": [ + [ + "Phi3mini_4k_Chat_Zho", + "Phi3mini_4k_ModelLoader_Zho", + "Phi3mini_4k_Zho" + ], + { + "title_aux": "Phi-3-mini in ComfyUI" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": [ [ "BaseModel_Loader_fromhub", @@ -4464,6 +16048,16 @@ "title_aux": "ComfyUI-Text_Image-Composite [WIP]" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-UltraEdit-ZHO": [ + [ + "UltraEdit_Generation_Zho", + "UltraEdit_ModelLoader_Zho", + "UltraEdit_ModelLoader_local_Zho" + ], + { + "title_aux": "ComfyUI-UltraEdit-ZHO" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM": [ [ "ESAM_ModelLoader_Zho", @@ -4483,6 +16077,42 @@ "title_aux": "comfyui-portrait-master-zh-cn" } ], + "https://github.com/ZXL-Xinram/ComfyUI-AutoFlow": [ + [ + "AutoFlowPathJoiner", + "AutoFlowPathParser", + "AutoFlowPathValidator", + "AutoFlowStringCase", + "AutoFlowStringConcat", + "AutoFlowStringFormat", + "AutoFlowStringMultiConcat", + "AutoFlowStringReplace", + "AutoFlowStringSplit", + "AutoFlowTimestampFormatter", + "AutoFlowTimestampGenerator" + ], + { + "title_aux": "ComfyUI-AutoFlow" + } + ], + "https://github.com/ZZXYWQ/ComfyUI-ZZXYWQ": [ + [ + "StreamRecorder", + "VideoFormatConverter", + "ZZX_PaintsUndo" + ], + { + "title_aux": "ZZX Nodes" + } + ], + "https://github.com/Zachary116699/ComfyUI-LoadImageWithMetaDataEx": [ + [ + "ZLoadImageWithMetaDataFP" + ], + { + "title_aux": "ComfyUI_LoadImageWithMetaDataEx" + } + ], "https://github.com/ZaneA/ComfyUI-ImageReward": [ [ "ImageRewardLoader", @@ -4492,17 +16122,166 @@ "title_aux": "ImageReward" } ], + "https://github.com/Zar4X/ComfyUI-Batch-Process": [ + [ + "ImageBatchLoader", + "ImageBatchSaver", + "LoraBatchLoader", + "SimpleImageTagger", + "TXTBatchLoader", + "TextModifyTool" + ], + { + "title_aux": "ComfyUI-Batch-Process" + } + ], + "https://github.com/Zar4X/ComfyUI-Image-Resizing": [ + [ + "CalculateAspectRatioExtension", + "CalculateUpscaleFactor", + "CalculateUpscaleRounds", + "ExtendCanvasByPercentage", + "ExtendCanvasByPercentage (ZX)", + "ImageAspectRatioExtractor", + "ImageCropByPercentage", + "ImageResolutionExtractor", + "MaskCropByPercentage", + "ResizeToMultiple" + ], + { + "title_aux": "ComfyUI-Image-Resizing" + } + ], + "https://github.com/Zch6111/AI_Text_Comfyui": [ + [ + "AutoPromptGeneratorNode", + "GeminiImageToPrompt", + "SmartAutoPromptNode" + ], + { + "title_aux": "AI_Text_Comfyui" + } + ], + "https://github.com/ZeDarkAdam/ComfyUI-Embeddings-Tools": [ + [ + "EmbeddingsNameLoader", + "EmbendingList" + ], + { + "title_aux": "ComfyUI-Embeddings-Tools" + } + ], + "https://github.com/Zehong-Ma/ComfyUI-MagCache": [ + [ + "CompileModel", + "MagCache", + "MagCacheCalibration" + ], + { + "title_aux": "ComfyUI-MagCache" + } + ], + "https://github.com/Zeks/comfyui-rapidfire": [ + [ + "BracketEscaper", + "CachedCheckpoint", + "CsvWriterNode", + "HyperTile //Inspire", + "ImmatureImageCounter", + "ImmatureImageDataLoader", + "KSampler //Inspire", + "KSamplerAdvanced //Inspire", + "KSamplerAdvancedPipe //Inspire", + "KSamplerAdvancedProgress //Inspire", + "KSamplerPipe //Inspire", + "KSamplerProgress //Inspire", + "MultiModelAdvancedKsampler", + "MultiModelCheckpointIterator", + "MultiModelPromptSaver", + "MultiModelPromptSaverIterative", + "MultiModelPromptSaverIterativeFirst", + "Ranbooru", + "RandomCharacterSelector", + "RandomNoise //Inspire", + "RapidSchedulerCombo", + "RapidSchedulerSelector", + "ScheduledCFGGuider //Inspire", + "ScheduledPerpNegCFGGuider //Inspire", + "StringHasher" + ], + { + "title_aux": "comfyui-rapidfire" + } + ], + "https://github.com/ZeroSpaceStudios/ComfyUI-ZSNodes": [ + [ + "ZS_BoundingBoxCrop", + "ZS_SaveImage" + ], + { + "title_aux": "ComfyUI-ZSNodes" + } + ], + "https://github.com/a-l-e-x-d-s-9/ComfyUI-SaveCheckpointWithMetadata": [ + [ + "SaveCheckpointWithMetadata" + ], + { + "title_aux": "Save Checkpoint with Metadata" + } + ], + "https://github.com/a-und-b/ComfyUI_Delay": [ + [ + "Add Delay" + ], + { + "title_aux": "ComfyUI_Delay" + } + ], + "https://github.com/a-und-b/ComfyUI_IC-Light-v2_fal": [ + [ + "ICLightV2" + ], + { + "title_aux": "IC-Light V2 (fal.ai)" + } + ], + "https://github.com/a-und-b/ComfyUI_JSON_Helper": [ + [ + "JSONStringToObjectNode" + ], + { + "title_aux": "ComfyUI_JSON_Helper" + } + ], + "https://github.com/a-und-b/ComfyUI_LoRA_from_URL": [ + [ + "Load LoRA From URL" + ], + { + "title_aux": "ComfyUI_LoRA_from_URL" + } + ], + "https://github.com/a-und-b/ComfyUI_MaskAreaCondition": [ + [ + "MaskAreaCondition", + "SelectData" + ], + { + "title_aux": "ComfyUI Mask Area Condition" + } + ], "https://github.com/a1lazydog/ComfyUI-AudioScheduler": [ [ "AmplitudeToGraph", "AmplitudeToNumber", "AudioToAmplitudeGraph", + "AudioToAudioData", "AudioToFFTs", "BatchAmplitudeSchedule", "ClipAmplitude", "FloatArrayToGraph", "GateNormalizedAmplitude", - "LoadAudio", "NormalizeAmplitude", "NormalizedAmplitudeDrivenString", "NormalizedAmplitudeToGraph", @@ -4513,6 +16292,22 @@ "title_aux": "ComfyUI-AudioScheduler" } ], + "https://github.com/abdozmantar/ComfyUI-DeepExtract": [ + [ + "VocalAndSoundRemoverNode" + ], + { + "title_aux": "DeepExtract" + } + ], + "https://github.com/aburahamu/ComfyUI-IsNiceParts": [ + [ + "NiceHand" + ], + { + "title_aux": "ComfyUI-IsNiceParts" + } + ], "https://github.com/aburahamu/ComfyUI-RequestsPoster": [ [ "GetImageFromSD3byI2I", @@ -4527,6 +16322,7 @@ ], "https://github.com/abyz22/image_control": [ [ + "abyz22_AddPrompt", "abyz22_Convertpipe", "abyz22_Editpipe", "abyz22_FirstNonNull", @@ -4536,7 +16332,9 @@ "abyz22_ImpactWildcardEncode_GetPrompt", "abyz22_Ksampler", "abyz22_Padding Image", + "abyz22_RandomMask", "abyz22_RemoveControlnet", + "abyz22_ResizeOpenpose", "abyz22_SaveImage", "abyz22_SetQueue", "abyz22_ToBasicPipe", @@ -4544,10 +16342,12 @@ "abyz22_blend_onecolor", "abyz22_blendimages", "abyz22_bypass", + "abyz22_censoring", "abyz22_drawmask", "abyz22_lamaInpaint", "abyz22_lamaPreprocessor", "abyz22_makecircles", + "abyz22_path_generator", "abyz22_setimageinfo", "abyz22_smallhead" ], @@ -4555,6 +16355,19 @@ "title_aux": "image_control" } ], + "https://github.com/acorderob/sd-webui-prompt-postprocessor": [ + [ + "ACBPPPSelectVariable", + "ACBPromptPostProcessor" + ], + { + "author": "ACB", + "description": "Node for processing prompts. Includes the following options: send to negative prompt, set variables, if/elif/else command for conditional content, wildcards and choices.", + "nickname": "ACB PPP", + "title": "Prompt Post Processor", + "title_aux": "Prompt PostProcessor" + } + ], "https://github.com/adbrasi/ComfyUI-TrashNodes-DownloadHuggingface": [ [ "DownloadLinkChecker", @@ -4577,6 +16390,37 @@ "title_aux": "DynamicPrompts Custom Nodes" } ], + "https://github.com/adigayung/ComfyUI-Translator": [ + [ + "CLIP Text Encode (Auto Translate)", + "Prompt Text (Auto Translate)" + ], + { + "title_aux": "ComfyUI-Translator" + } + ], + "https://github.com/adrianschubek/comfyui-zeug": [ + [ + "ZeugBool", + "ZeugCleanGpuPass", + "ZeugFloat", + "ZeugFloatToStr", + "ZeugInt", + "ZeugIntToStr", + "ZeugIntToWxH", + "ZeugJoinStr", + "ZeugJoinStrList", + "ZeugPrintPass", + "ZeugSplitStrList", + "ZeugStr", + "ZeugStrToFloat", + "ZeugStrToInt", + "ZeugWxHToInt" + ], + { + "title_aux": "comfyui-zeug" + } + ], "https://github.com/adriflex/ComfyUI_Blender_Texdiff": [ [ "ViewportColor", @@ -4628,12 +16472,155 @@ "title_aux": "ComfyUI-styles-all" } ], + "https://github.com/aesethtics/ComfyUI-Utilitools": [ + [ + "UtilAdd", + "UtilAspectRatio", + "UtilBatchController", + "UtilBooleanAND", + "UtilBooleanNOT", + "UtilBooleanOR", + "UtilCalculator", + "UtilConstantFloat", + "UtilConstantInt", + "UtilConstantString", + "UtilCounter", + "UtilDateTimestamp", + "UtilDivide", + "UtilFloatToInt", + "UtilIfThenElse", + "UtilImageDimensions", + "UtilIntToFloat", + "UtilListCreate", + "UtilListIndex", + "UtilMultiply", + "UtilPassthrough", + "UtilStringReplace", + "UtilSubtract", + "UtilSwitch", + "UtilTextConcat", + "UtilWhateverToString" + ], + { + "title_aux": "ComfyUI Utilitools Nodes" + } + ], + "https://github.com/agilly1989/ComfyUI_agilly1989_motorway": [ + [ + "MotorwayFloat", + "MotorwayInt", + "MotorwaySeed", + "MotorwayStr", + "MotorwayStrMulti" + ], + { + "title_aux": "ComfyUI_agilly1989_motorway" + } + ], + "https://github.com/ahernandezmiro/ComfyUI-GCP_Storage_tools": [ + [ + "GCPReadImageNode", + "GCPWriteImageNode" + ], + { + "title_aux": "ComfyUI-GCP_Storage_tools" + } + ], + "https://github.com/ai-liam/comfyui-liam": [ + [ + "AiStoreAzureGPTLiam", + "GetBetterDepthImage", + "LiamLibDisplayText", + "LiamLibFillImage", + "LiamLibImageToGray", + "LiamLibLoadImage", + "LiamLibMergeText", + "LiamLibSaveImg", + "LiamLibSaveText", + "OllamaApiTNodeLiam", + "PreviewReliefImage", + "SpeechRecognitionLiam", + "SpeechSynthesisLiam" + ], + { + "title_aux": "LiamUtil" + } + ], "https://github.com/ai-liam/comfyui_liam_util": [ [ "LiamLoadImage" ], { - "title_aux": "LiamUtil" + "title_aux": "LiamUtil (single node)" + } + ], + "https://github.com/ai-shizuka/ComfyUI-tbox": [ + [ + "AnimalPosePreprocessor", + "BatchManager", + "CannyPreprocessor", + "ConstrainImageNode", + "DWPosePreprocessor", + "DWPreprocessor", + "DensePosePreprocessor", + "GFPGANNode", + "ImageLoader", + "ImageResize", + "ImageSaver", + "ImageSize", + "ImagesSaver", + "LineArtPreprocessor", + "LineartStandardPreprocessor", + "MaskAddNode", + "MiDaSDepthPreprocessor", + "PurgeVRAMNode", + "VideoInfo", + "VideoLoader", + "VideoSaver", + "WatermarkNode" + ], + { + "author": "tstandley", + "title_aux": "ComfyUI-tbox" + } + ], + "https://github.com/aiaiaikkk/ComfyUI-Curve": [ + [ + "CameraRawEnhanceNode", + "CameraRawToneCurveNode", + "ColorGradingNode", + "CurvePresetNode", + "GaussianBlurNode", + "HistogramAnalysisNode", + "PhotoshopCurveNode", + "PhotoshopHSLNode", + "PhotoshopLevelsNode" + ], + { + "title_aux": "ComfyUI-Curve" + } + ], + "https://github.com/aiaiaikkk/comfyui-api-image-edit": [ + [ + "APIImageEditNode" + ], + { + "title_aux": "ComfyUI API Image Edit" + } + ], + "https://github.com/aiaiaikkk/super-prompt-canvas": [ + [ + "AdvancedBackgroundRemoval", + "BackgroundRemovalSettings", + "CustomModelPromptGenerator", + "KontextSuperPrompt", + "LRPGCanvas", + "OllamaKontextPromptGenerator", + "OllamaServiceManager", + "TextGenWebUIFluxKontextEnhancer" + ], + { + "title_aux": "super-prompt-canvas" } ], "https://github.com/aianimation55/ComfyUI-FatLabels": [ @@ -4644,6 +16631,403 @@ "title_aux": "Comfy UI FatLabels" } ], + "https://github.com/aiartvn/A2V_Multi_Image_Composite": [ + [ + "A2V_Multi_Image_Composite" + ], + { + "title_aux": "A2V Multi Image Composite" + } + ], + "https://github.com/aicuai/aicu-comfyui-stability-ai-api": [ + [ + "Preview3DModel", + "Save3DModel", + "StabilityControlSketch", + "StabilityControlStructure", + "StabilityControlStyle", + "StabilityEdit", + "StabilityImageCore", + "StabilityImageSD3", + "StabilityImageToVideo", + "StabilityImageUltra", + "StabilityUpscaleConservative", + "StabilityUpscaleCreative", + "StabilityUpscaleFast", + "StableFast3D", + "StablePointAware3D" + ], + { + "title_aux": "aicu-comfyui-stability-ai-api" + } + ], + "https://github.com/aidec/Comfyui_TextBatch_aidec": [ + [ + "ImageFilenameProcessor", + "ImageInfoExtractor", + "ImageQueueProcessor", + "LoadImagesFromDirBatch", + "PathParser", + "TextBatch", + "TextQueueProcessor", + "TextSplitCounter" + ], + { + "title_aux": "Comfyui_TextBatch_aidec" + } + ], + "https://github.com/aidenli/ComfyUI_NYJY": [ + [ + "BailianChat", + "BailianChatOption", + "BailianVL", + "BailianVLOption", + "CivitaiPrompt", + "CommonLLMChat", + "ConvertAnyToString", + "ConvertStringToNumber", + "CustomLatentImage-NYJY", + "CustomLatentImageSimple", + "FloatSlider-NYJY", + "FluxProOnline", + "GetItemFromList", + "JoyCaption", + "JoyCaptionAlpha1Online", + "JoyCaptionAlpha2Online", + "JoyTag", + "JsonDumps", + "JsonGetValueByKeys", + "JsonLoads", + "ReadFileToString", + "SplitString", + "Translate" + ], + { + "title_aux": "ComfyUI_NYJY" + } + ], + "https://github.com/aigc-apps/EasyAnimate": [ + [ + "CameraBasicFromChaoJie", + "CameraCombineFromChaoJie", + "CameraJoinFromChaoJie", + "CameraTrajectoryFromChaoJie", + "CreateTrajectoryBasedOnKJNodes", + "EasyAnimateI2VSampler", + "EasyAnimateT2VSampler", + "EasyAnimateV2VSampler", + "EasyAnimateV5_I2VSampler", + "EasyAnimateV5_T2VSampler", + "EasyAnimateV5_V2VSampler", + "EasyAnimate_TextBox", + "ImageMaximumNode", + "LoadEasyAnimateLora", + "LoadEasyAnimateModel", + "TextBox" + ], + { + "title_aux": "Video Generation Nodes for EasyAnimate" + } + ], + "https://github.com/aigc-apps/VideoX-Fun": [ + [ + "CameraBasicFromChaoJie", + "CameraCombineFromChaoJie", + "CameraJoinFromChaoJie", + "CameraTrajectoryFromChaoJie", + "CogVideoXFunInpaintSampler", + "CogVideoXFunT2VSampler", + "CogVideoXFunV2VSampler", + "CreateTrajectoryBasedOnKJNodes", + "FunCompile", + "FunRiflex", + "FunTextBox", + "ImageMaximumNode", + "LoadCogVideoXFunLora", + "LoadCogVideoXFunModel", + "LoadWan2_2FunLora", + "LoadWan2_2FunModel", + "LoadWan2_2Lora", + "LoadWan2_2Model", + "LoadWanFunLora", + "LoadWanFunModel", + "LoadWanLora", + "LoadWanModel", + "VideoToCanny", + "VideoToDepth", + "VideoToOpenpose", + "Wan2_2FunInpaintSampler", + "Wan2_2FunT2VSampler", + "Wan2_2FunV2VSampler", + "Wan2_2I2VSampler", + "Wan2_2T2VSampler", + "WanFunInpaintSampler", + "WanFunT2VSampler", + "WanFunV2VSampler", + "WanI2VSampler", + "WanT2VSampler" + ], + { + "title_aux": "VideoX-Fun" + } + ], + "https://github.com/aimerib/ComfyUI_HigherBitDepthSaveImage": [ + [ + "SaveImageHigherBitDepth" + ], + { + "title_aux": "ComfyUI-HigherBitDepthSaveImage" + } + ], + "https://github.com/ainewsto/Comfyui-chatgpt-api": [ + [ + "ComfyuiChatGPTApi", + "Comfyui_gpt_image_1", + "Comfyui_gpt_image_1_edit" + ], + { + "title_aux": "Comfyui-chatgpt-api" + } + ], + "https://github.com/ainewsto/Comfyui-google-veo2-api": [ + [ + "ComfyuiGoogleVeo2" + ], + { + "title_aux": "Comfyui-google-veo2-api" + } + ], + "https://github.com/ainewsto/Comfyui_Comfly_v2": [ + [ + "ComflyChatGPTApi", + "ComflyGeminiAPI", + "ComflyJimengApi", + "ComflyJimengVideoApi", + "ComflySeededit", + "Comfly_Doubao_Seededit", + "Comfly_Doubao_Seedream", + "Comfly_Flux_Kontext", + "Comfly_Flux_Kontext_Edit", + "Comfly_Flux_Kontext_bfl", + "Comfly_Googel_Veo3", + "Comfly_MiniMax_video", + "Comfly_Mj", + "Comfly_Mj_swap_face", + "Comfly_Mju", + "Comfly_Mjv", + "Comfly_gpt_image_1", + "Comfly_gpt_image_1_edit", + "Comfly_kling_image2video", + "Comfly_kling_multi_image2video", + "Comfly_kling_text2video", + "Comfly_lip_sync", + "Comfly_mj_video", + "Comfly_mj_video_extend", + "Comfly_mjstyle", + "Comfly_nano_banana", + "Comfly_nano_banana_edit", + "Comfly_nano_banana_fal", + "Comfly_qwen_image", + "Comfly_qwen_image_edit", + "Comfly_upload", + "Comfly_video_extend" + ], + { + "title_aux": "Comfyui_Comfly_v2" + } + ], + "https://github.com/ainewsto/comfyui-labs-google": [ + [ + "ComfyUI-ImageFx", + "ComfyUI-Whisk", + "ComfyUI-Whisk-Prompts" + ], + { + "title_aux": "comfyui-labs-google" + } + ], + "https://github.com/aisabervisionlab/ComfyUI_merge_ASVL": [ + [ + "ASVL" + ], + { + "title_aux": "ComfyUI_merge_ASVL" + } + ], + "https://github.com/aistudynow/Comfyui-HunyuanFoley": [ + [ + "HunyuanDependenciesLoader", + "HunyuanFoleySampler", + "HunyuanFoleyTorchCompile", + "HunyuanModelLoader", + "SelectAudioFromBatch" + ], + { + "title_aux": "Comfyui-HunyuanFoley" + } + ], + "https://github.com/ajbergh/comfyui-ethnicity_hairstyle_clip_encoder": [ + [ + "CLIPTextEncodeWithExtras" + ], + { + "title_aux": "comfyui-ethnicity_hairstyle_clip_encoder" + } + ], + "https://github.com/akatz-ai/ComfyUI-AKatz-Nodes": [ + [ + "AK_AdjustDepthmapBrightness", + "AK_AdjustListSize", + "AK_AnimatedDilationMaskLinear", + "AK_AudioFramesyncSchedule", + "AK_AudioreactiveDilateMaskInfinite", + "AK_AudioreactiveDilationMask", + "AK_AudioreactiveDynamicDilationMask", + "AK_BinaryAmplitudeGate", + "AK_BlobTrack", + "AK_BrightnessToFloatList", + "AK_ConvertListToFloatList", + "AK_DilateMaskLinearInfinite", + "AK_FadeBetweenBatches", + "AK_FlexFeatureToFloatList", + "AK_FloatListToDilateMaskSchedule", + "AK_FloatListToFlexFeature", + "AK_IPAdapterCustomWeights", + "AK_KeyframeScheduler", + "AK_LagChop", + "AK_ListToNumpyFloatArray", + "AK_MakeDepthmapSeamless", + "AK_NormalizeMaskImage", + "AK_RescaleFloatList", + "AK_ScaleMask", + "AK_ScheduledBinaryComparison", + "AK_ShrinkNumSequence", + "AK_SplitImageBatch", + "AK_VideoSpeedAdjust", + "Scale Mask Node" + ], + { + "author": "akatz", + "description": "Custom node pack for nodes I use in my workflows.", + "nickname": "Akatz Custom Nodes", + "title": "Akatz Custom Nodes", + "title_aux": "Akatz Custom Nodes" + } + ], + "https://github.com/akatz-ai/ComfyUI-Basic-Math": [ + [ + "BasicMath", + "BooleanInput", + "BooleanLogic", + "BooleanUnary", + "FloatComparison", + "FloatInput", + "IntMath", + "IntegerComparison", + "IntegerInput", + "MathConstants", + "NumberClamp", + "NumberComparison", + "NumberInRange", + "NumberLerp", + "NumberRound", + "PreciseFloatInput", + "StringComparison", + "StringInput", + "ToBool", + "ToFloat", + "ToInt", + "ToString", + "UnaryMath" + ], + { + "title_aux": "ComfyUI-Basic-Math" + } + ], + "https://github.com/akatz-ai/ComfyUI-DepthCrafter-Nodes": [ + [ + "DepthCrafter", + "DownloadAndLoadDepthCrafterModel" + ], + { + "author": "akatz", + "description": "Custom nodes for use with DepthCrafter. Create consistent depth maps for your videos.", + "nickname": "DepthCrafter Nodes", + "title": "DepthCrafter Nodes", + "title_aux": "DepthCrafter Nodes" + } + ], + "https://github.com/akatz-ai/ComfyUI-Depthflow-Nodes": [ + [ + "Depthflow", + "DepthflowEffectColor", + "DepthflowEffectDOF", + "DepthflowEffectInpaint", + "DepthflowEffectVignette", + "DepthflowMotionArc", + "DepthflowMotionCosine", + "DepthflowMotionLinear", + "DepthflowMotionPresetCircle", + "DepthflowMotionPresetDolly", + "DepthflowMotionPresetHorizontal", + "DepthflowMotionPresetOrbital", + "DepthflowMotionPresetVertical", + "DepthflowMotionPresetZoom", + "DepthflowMotionSetTarget", + "DepthflowMotionSine", + "DepthflowMotionTriangle" + ], + { + "author": "akatz", + "description": "Custom nodes for use with Tremeschin's Depthflow library.", + "nickname": "Depthflow Nodes", + "title": "Depthflow Nodes", + "title_aux": "\ud83c\udf0a Depthflow Nodes" + } + ], + "https://github.com/akatz-ai/ComfyUI-X-Portrait-Nodes": [ + [ + "DownloadXPortraitModel", + "XPortrait" + ], + { + "author": "akatz", + "description": "Custom nodes for use with X-Portrait. Animate portraits with an input video and a reference image.", + "nickname": "X-Portrait Nodes", + "title": "X-Portrait Nodes", + "title_aux": "ComfyUI-X-Portrait-Nodes" + } + ], + "https://github.com/akierson/ComfyUI-textnodes": [ + [ + "Prompt Truncate", + "Tidy Tags" + ], + { + "title_aux": "ComfyUI-textnodes" + } + ], + "https://github.com/akierson/comfyui-colornodes": [ + [ + "Color Picker", + "Color to Hex", + "Color to RGB", + "Image Replace Color", + "Invert Color" + ], + { + "title_aux": "comfyui-colornodes" + } + ], + "https://github.com/al-swaiti/All-IN-ONE-style": [ + [ + "ComfyUIStyler", + "menus" + ], + { + "title_aux": "All-IN-ONE-style" + } + ], "https://github.com/al-swaiti/ComfyUI-CascadeResolutions": [ [ "CascadeResolutions" @@ -4652,29 +17036,240 @@ "title_aux": "ComfyUI-CascadeResolutions" } ], - "https://github.com/alexopus/ComfyUI-Image-Saver": [ + "https://github.com/al-swaiti/ComfyUI-OllamaGemini": [ [ - "Cfg Literal (Image Saver)", - "Checkpoint Loader with Name (Image Saver)", - "Float Literal (Image Saver)", - "Image Saver", - "Int Literal (Image Saver)", - "Sampler Selector (Image Saver)", - "Scheduler Selector (Image Saver)", - "Seed Generator (Image Saver)", - "String Literal (Image Saver)", - "Width/Height Literal (Image Saver)" + "ClaudeAPI", + "GeminiAPI", + "GeminiBRIA_RMBG", + "GeminiBRIA_RMBG_Safe", + "GeminiCLIPSeg", + "GeminiCombineSegMasks", + "GeminiComfyUIStyler", + "GeminiConvertRasterToVector", + "GeminiFLUXResolutions", + "GeminiImageGenerator", + "GeminiSVGPreview", + "GeminiSaveSVG", + "GeminiSaveText", + "GeminiSmartPromptGenerator", + "GeminiTextSplitter", + "ListAvailableModels", + "OllamaAPI", + "OpenAIAPI", + "QwenAPI", + "style_menus" ], { - "title_aux": "ComfyUI Image Saver" + "title_aux": "GeminiOllama ComfyUI Extension" } ], - "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer": [ + "https://github.com/alFrame/ComfyUI-AF-EditGeneratedPrompt": [ [ - "LLaVaDescriber" + "AF_Edit_Generated_Prompt" ], { - "title_aux": "ComfyUI-LLaVA-Describer" + "title_aux": "AF - Edit Generated Prompt" + } + ], + "https://github.com/alanhuang67/ComfyUI-FAI-Node": [ + [ + "FAIDynamicMask", + "FAIScaleScheduler", + "FAI_Voronoi_Generator" + ], + { + "title_aux": "FAI-Node" + } + ], + "https://github.com/alastor-666-1933/caching_to_not_waste": [ + [ + "caching_condition", + "caching_controlnet", + "caching_from_combined_images", + "caching_image", + "caching_mask", + "caching_text", + "caching_wildcard_list" + ], + { + "title_aux": "Caching to not Waste" + } + ], + "https://github.com/alchemine/comfyui-alchemine-pack": [ + [ + "DanbooruPopularPostsTagsRetriever", + "DanbooruPostTagsRetriever", + "DanbooruRelatedTagsRetriever", + "FilterSubtags", + "FilterTags", + "FixBreakAfterTIPO", + "GeminiInference", + "OllamaInference", + "ProcessTags", + "ReplaceUnderscores", + "SignalSwitch", + "TextEditingInference", + "TokenAnalyzer", + "WidthHeight" + ], + { + "title_aux": "ComfyUI-Alchemine-Pack" + } + ], + "https://github.com/aleolidev/comfy_kaizen_package": [ + [ + "KaizenImageComposite" + ], + { + "title_aux": "Kaizen Package" + } + ], + "https://github.com/alessandroperilli/OCS_Nodes": [ + [ + "OCS_CloudImageSize", + "OCS_ImageListFilter", + "OCS_ImageSaver", + "OCS_LocalImageSize", + "OCS_LocalVideoSize", + "OCS_ModelDownloader" + ], + { + "title_aux": "Open Creative Studio Nodes" + } + ], + "https://github.com/alessandrozonta/ComfyUI-CenterNode": [ + [ + "BBoxCrop" + ], + { + "title_aux": "ComfyUI-CenterNode" + } + ], + "https://github.com/alessandrozonta/ComfyUI-Layers": [ + [ + "LayersSaver - Save Layer", + "LayersSaver - Save Layer From Images" + ], + { + "title_aux": "Save Layers Node for ComfyUI" + } + ], + "https://github.com/alessandrozonta/ComfyUI-OpenPose": [ + [ + "OpenPose - Get poses" + ], + { + "author": "joe", + "title_aux": "OpenPose Node" + } + ], + "https://github.com/alessandrozonta/ComfyUI-PoseDirection": [ + [ + "OpenPose - Get direction" + ], + { + "title_aux": "ComfyUI-PoseDirection" + } + ], + "https://github.com/alessandrozonta/Comfyui-LoopLoader": [ + [ + "LoadLoopImagesFromDir" + ], + { + "title_aux": "Comfyui-LoopLoader" + } + ], + "https://github.com/alexcong/ComfyUI_QwenVL": [ + [ + "Qwen2.5", + "Qwen2.5VL" + ], + { + "title_aux": "Qwen2-VL wrapper for ComfyUI" + } + ], + "https://github.com/alexgenovese/ComfyUI-UNO-Flux": [ + [ + "UNOGenerate", + "UNOModelLoader" + ], + { + "title_aux": "ComfyUI UNO Nodes" + } + ], + "https://github.com/alexgenovese/ComfyUI_HF_Servelress_Inference": [ + [ + "HF_QuestionAnswer", + "Job_Caption", + "Joy_caption", + "Joy_caption_load" + ], + { + "author": "Alex Genovese", + "description": "Huggingface Api Serverless request", + "nickname": "alexgenovese", + "title": "Huggingface Api Serverless", + "title_aux": "Huggingface Api Serverless" + } + ], + "https://github.com/alexisrolland/ComfyUI-Blender": [ + [ + "BlenderInputBoolean", + "BlenderInputCombo", + "BlenderInputFloat", + "BlenderInputGroup", + "BlenderInputInt", + "BlenderInputLoad3D", + "BlenderInputLoadCheckpoint", + "BlenderInputLoadDiffusionModel", + "BlenderInputLoadImage", + "BlenderInputLoadLora", + "BlenderInputSeed", + "BlenderInputString", + "BlenderInputStringMultiline", + "BlenderOutputDownload3D", + "BlenderOutputSaveGlb", + "BlenderOutputSaveImage" + ], + { + "title_aux": "ComfyUI-Blender" + } + ], + "https://github.com/alexisrolland/ComfyUI-Phi": [ + [ + "LoadPhi", + "LoadPhiMultimodal", + "LoadPhiVision", + "RunPhi", + "RunPhiMultimodal", + "RunPhiVision" + ], + { + "title_aux": "ComfyUI-Phi" + } + ], + "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer": [ + [ + "InputText", + "JsonPropertyExtractorNode", + "OllamaCaptionerExtraOptions", + "OllamaImageCaptioner", + "OllamaImageDescriber", + "OllamaTextDescriber", + "ShowText", + "TextTransformer" + ], + { + "title_aux": "ComfyUI-Ollama-Describer" + } + ], + "https://github.com/alpertunga-bile/image-caption-comfyui": [ + [ + "Image Caption Node", + "Insert Prompt Node" + ], + { + "title_aux": "image-caption-comfyui" } ], "https://github.com/alpertunga-bile/prompt-generator-comfyui": [ @@ -4740,6 +17335,7 @@ "Noise from Palette [Dream]", "Palette Color Align [Dream]", "Palette Color Shift [Dream]", + "Random Prompt Words [Dream]", "Sample Image Area as Palette [Dream]", "Sample Image as Palette [Dream]", "Saw Curve [Dream]", @@ -4819,6 +17415,19 @@ "title_aux": "CLIP Directional Prompt Attention" } ], + "https://github.com/andygill/comfyui-sunflower-nodes": [ + [ + "DepthViewToIsometric", + "DisparityToDepthView", + "EquirectangularToRectilinear", + "ImageChannelSelect", + "MaskChannelSelect", + "ResizeDown" + ], + { + "title_aux": "comfyui-sunflower-nodes" + } + ], "https://github.com/angeloshredder/StableCascadeResizer": [ [ "CascadeResize" @@ -4827,16 +17436,184 @@ "title_aux": "StableCascadeResizer" } ], - "https://github.com/antrobot1234/antrobots-comfyUI-nodepack": [ + "https://github.com/angree/ComfyUI-Q_GLB_Material_Modifier": [ [ - "composite", - "crop", - "paste", - "preview_mask", - "scale" + "QManualGLBMaterialModifier", + "QPresetGLBMaterialModifier" ], { - "title_aux": "antrobots ComfyUI Nodepack" + "title_aux": "Q GLB Material Modifier" + } + ], + "https://github.com/angree/ComfyUI-Q_find-mask-size": [ + [ + "QImageCropCalculator" + ], + { + "title_aux": "Q Find Mask Size" + } + ], + "https://github.com/anhkhoatranle30/Handy-Nodes-ComfyUI": [ + [ + "Custom Save Image //Handy" + ], + { + "author": "Khoa Tran", + "description": "This extension offers various handy nodes.", + "nickname": "Handy-Nodes-ComfyUI", + "title": "Handy-Nodes-ComfyUI", + "title_aux": "Handy Node ComfyUI" + } + ], + "https://github.com/annewj023/Comfyui_google_nano": [ + [ + "GoogleNanoNode" + ], + { + "title_aux": "Google Nano" + } + ], + "https://github.com/apeirography/DaimalyadNodes": [ + [ + "DaimalyadModelDownloader", + "DaimalyadWildcardProcessor" + ], + { + "title_aux": "DaimalyadNodes" + } + ], + "https://github.com/arcum42/ComfyUI_SageUtils": [ + [ + "SageSetWildcardText", + "Sage_AdvSamplerInfo", + "Sage_CLIPLoaderFromInfo", + "Sage_CLIPSelector", + "Sage_CacheMaintenance", + "Sage_CheckLorasForUpdates", + "Sage_CheckpointSelector", + "Sage_ChromaCLIPLoaderFromInfo", + "Sage_CleanText", + "Sage_CollectKeywordsFromLoraStack", + "Sage_ConditioningZeroOut", + "Sage_ConstructLLMPrompt", + "Sage_ConstructLLMPromptExtra", + "Sage_ConstructMetadata", + "Sage_ConstructMetadataFlexible", + "Sage_ConstructMetadataLite", + "Sage_CropImage", + "Sage_CubiqImageResize", + "Sage_DualCLIPSelector", + "Sage_DualCLIPTextEncode", + "Sage_DualCLIPTextEncodeLumina2", + "Sage_EmptyLatentImagePassthrough", + "Sage_FloatToStr", + "Sage_FreeMemory", + "Sage_FreeU2", + "Sage_GetFileHash", + "Sage_GuessResolutionByRatio", + "Sage_Halt", + "Sage_HiDreamE1_Instruction", + "Sage_IntToStr", + "Sage_JoinText", + "Sage_KSampler", + "Sage_KSamplerAudioDecoder", + "Sage_KSamplerTiledDecoder", + "Sage_LMStudioLLMPromptText", + "Sage_LMStudioLLMPromptVision", + "Sage_LMStudioLLMPromptVisionRefine", + "Sage_LastLoraInfo", + "Sage_LoadImage", + "Sage_LoadImageTextSetFromFolderNode", + "Sage_LoadModelFromInfo", + "Sage_Load_Dataset_From_Folder", + "Sage_LogicalSwitch", + "Sage_LoraStack", + "Sage_LoraStackInfoDisplay", + "Sage_LoraStackLoader", + "Sage_ModelInfo", + "Sage_ModelInfoDisplay", + "Sage_ModelLoraStackLoader", + "Sage_ModelReport", + "Sage_ModelShiftOnly", + "Sage_ModelShifts", + "Sage_MultiModelPicker", + "Sage_OllamaLLMPromptText", + "Sage_OllamaLLMPromptVision", + "Sage_OllamaLLMPromptVisionRefine", + "Sage_PonyPrefix", + "Sage_PonyStyle", + "Sage_QuadCLIPSelector", + "Sage_QuickLoraStack", + "Sage_QuickNineLoraStack", + "Sage_QuickResPicker", + "Sage_QuickSixLoraStack", + "Sage_ReferenceImage", + "Sage_SamplerInfo", + "Sage_SamplerSelector", + "Sage_SaveImageWithMetadata", + "Sage_SaveText", + "Sage_SchedulerSelector", + "Sage_SetText", + "Sage_SetTextWithInt", + "Sage_SixLoraStack", + "Sage_TextRandomLine", + "Sage_TextSelectLine", + "Sage_TextSubstitution", + "Sage_TextSwitch", + "Sage_TextWeight", + "Sage_TilingInfo", + "Sage_TrainingCaptionsToConditioning", + "Sage_TripleCLIPSelector", + "Sage_TripleJoinText", + "Sage_TripleLoraStack", + "Sage_TripleQuickLoraStack", + "Sage_UNETLoRALoader", + "Sage_UNETLoaderFromInfo", + "Sage_UNETSelector", + "Sage_UnetClipVaeToModelInfo", + "Sage_VAELoaderFromInfo", + "Sage_VAESelector", + "Sage_ViewAnything", + "Sage_ViewNotes" + ], + { + "title_aux": "Sage Utils" + } + ], + "https://github.com/asaddi/ComfyUI-YALLM-node": [ + [ + "LLMChat", + "LLMMinP", + "LLMModel", + "LLMPrependAppend", + "LLMProvider", + "LLMTemperature", + "LLMTextLatch", + "LLMTopK", + "LLMTopP" + ], + { + "title_aux": "ComfyUI-YALLM-node" + } + ], + "https://github.com/asaddi/YALLM-LlamaVision": [ + [ + "LLMSamplerSettings", + "LlamaVisionChat", + "LlamaVisionModel" + ], + { + "title_aux": "YALLM-LlamaVision" + } + ], + "https://github.com/asagi4/ComfyUI-Adaptive-Guidance": [ + [ + "AdaptiveGuidance", + "AdaptiveProjectedGuidance", + "PerpNegAdaptiveGuidanceGuider" + ], + { + "title_aux": "Adaptive Guidance for ComfyUI" } ], "https://github.com/asagi4/ComfyUI-CADS": [ @@ -4847,29 +17624,46 @@ "title_aux": "ComfyUI-CADS" } ], - "https://github.com/asagi4/comfyui-prompt-control": [ + "https://github.com/asagi4/ComfyUI-NPNet": [ [ - "EditableCLIPEncode", - "FilterSchedule", - "LoRAScheduler", - "PCApplySettings", - "PCPromptFromSchedule", - "PCScheduleSettings", - "PCSplitSampling", - "PCWrapGuider", - "PromptControlSimple", - "PromptToSchedule", - "ScheduleToCond", - "ScheduleToModel" + "NPNetGoldenNoise" ], { - "title_aux": "ComfyUI prompt control" + "title_aux": "ComfyUI NPNet (Golden Noise)" + } + ], + "https://github.com/asagi4/comfyui-prompt-control": [ + [ + "PCAddMaskToCLIP", + "PCAddMaskToCLIPMany", + "PCAttentionCoupleBatchNegative", + "PCExtractScheduledPrompt", + "PCLazyLoraLoader", + "PCLazyLoraLoaderAdvanced", + "PCLazyTextEncode", + "PCLazyTextEncodeAdvanced", + "PCLoraHooksFromText", + "PCMacroExpand", + "PCSaveExpandedWorkflow", + "PCSetLogLevel", + "PCSetPCTextEncodeSettings", + "PCTextEncode", + "PCTextEncodeWithRange" + ], + { + "author": "asagi4", + "description": "Control LoRA and prompt scheduling, advanced text encoding, regional prompting, and much more, through your text prompt. Generates dynamic graphs that are literally identical to handcrafted noodle soup.", + "nickname": "ComfyUI Prompt Control", + "title": "ComfyUI Prompt Control", + "title_aux": "ComfyUI Prompt Control" } ], "https://github.com/asagi4/comfyui-utility-nodes": [ [ + "MUConditioningCutoff", "MUForceCacheClear", "MUJinjaRender", + "MURemoveControlNet", "MUReplaceModelWeights", "MUSimpleWildcard" ], @@ -4877,6 +17671,30 @@ "title_aux": "asagi4/comfyui-utility-nodes" } ], + "https://github.com/asdrabael/Hunyuan-Multi-Lora-Loader": [ + [ + "HunyuanMultiLoraLoader", + "HunyuanMultiLoraLoaderWrapper" + ], + { + "title_aux": "Hunyuan-Multi-Lora-Loader" + } + ], + "https://github.com/asutermo/ComfyUI-Flux-TryOff": [ + [ + "TryOffFluxFillModelNode", + "TryOffFluxFillPipelineNode", + "TryOffModelNode", + "TryOffQuantizerNode", + "TryOffRunNode", + "TryOnOffModelNode", + "TryOnOffRunNode", + "TryOnRunNode" + ], + { + "title_aux": "ComfyUI-Flux-TryOff" + } + ], "https://github.com/aszc-dev/ComfyUI-CoreMLSuite": [ [ "Core ML Converter", @@ -4891,6 +17709,64 @@ "title_aux": "Core ML Suite for ComfyUI" } ], + "https://github.com/atluslin/comfyui_arcane_style_trans": [ + [ + "Arcane_style_trans" + ], + { + "title_aux": "comfyui_arcane_style_trans" + } + ], + "https://github.com/attashe/ComfyUI-FluxRegionAttention": [ + [ + "BBoxToMaskNode", + "BoundingBoxNode", + "CLIPDebug", + "FluxRegionBBOX", + "FluxRegionMask", + "RegionAttention", + "VisualizeBBoxesNode" + ], + { + "title_aux": "ComfyUI-FluxRegionAttention" + } + ], + "https://github.com/audioscavenger/ComfyUI-Thumbnails": [ + [ + "LoadImage" + ], + { + "author": "AudioscavengeR", + "description": "Load Image thumbnails and show input subfolders.", + "nickname": "LoadImageThumbnails", + "title": "LoadImageThumbnails", + "title_aux": "ComfyUI-Thumbnails" + } + ], + "https://github.com/audioscavenger/save-image-extended-comfyui": [ + [ + "SaveImageExtended" + ], + { + "author": "AudioscavengeR", + "description": "1 custom node to save your pictures in various folders and formats.", + "nickname": "Save Image Extended", + "title": "Save Image Extended", + "title_aux": "Save Image Extended for ComfyUI" + } + ], + "https://github.com/austinbrown34/ComfyUI-IO-Helpers": [ + [ + "EncodedPromptFromFile", + "EncodedPromptToFile", + "IO_LoadImage", + "SampledLatentsFromFile", + "SampledLatentsToFile" + ], + { + "title_aux": "ComfyUI-IO-Helpers" + } + ], "https://github.com/avatechai/avatar-graph-comfyui": [ [ "ApplyMeshTransformAsShapeKey", @@ -4918,6 +17794,80 @@ "title_aux": "Avatar Graph" } ], + "https://github.com/avenstack/ComfyUI-AV-FunASR": [ + [ + "AVASRTimestamp", + "AVFormat2Subtitle", + "AVSaveSubtitles", + "AVSpeechTimestamp" + ], + { + "title_aux": "ComfyUI-AV-FunASR" + } + ], + "https://github.com/avenstack/ComfyUI-AV-LatentSync": [ + [ + "AVLatentSync", + "AVVideoLengthAdjuster" + ], + { + "title_aux": "ComfyUI-AV-LatentSync" + } + ], + "https://github.com/avenstack/ComfyUI-AV-MegaTTS3": [ + [ + "AVMegaTTS3", + "AVPromptInit" + ], + { + "title_aux": "ComfyUI-AV-MegaTTS3" + } + ], + "https://github.com/avocadori/ComfyUI-load-image-prompt-lora": [ + [ + "YAMLImageCycler", + "YAMLImageCyclerSimple", + "YAMLLoRAExtractor", + "YAMLLoRALoader", + "YAMLLoRASelector" + ], + { + "title_aux": "ComfyUI-load-image-prompt-lora" + } + ], + "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock": [ + [ + "Amazon Bedrock - Luma AI Ray Video", + "Amazon Bedrock - Nova Canvas Background Prompt Replace", + "Amazon Bedrock - Nova Canvas Generate Image", + "Amazon Bedrock - Nova Canvas Generate Variations", + "Amazon Bedrock - Nova Reel Video", + "Amazon Bedrock - SD3 & SD3.5 Large | Image to Image", + "Amazon Bedrock - Stability AI Models | Text to Image", + "Bedrock - Claude", + "Bedrock - Claude Multimodal", + "Bedrock - Nova", + "Bedrock - SDXL", + "Bedrock - Titan Inpainting", + "Bedrock - Titan Outpainting", + "Bedrock - Titan Text to Image", + "Bedrock - Titan Variation", + "Image From S3", + "Image From URL", + "Image OCR By Textract", + "Image OCR By Textract V2", + "Image OCR By Textract V3", + "Image OCR by PaddleOCR", + "Image To S3", + "JSON Text Extraction", + "Prompt Regex Remove", + "Prompt Template", + "Prompt Template with Two Inputs" + ], + { + "title_aux": "Amazon Bedrock nodes for ComfyUI" + } + ], "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes": [ [ "HaojihuiClipScoreFakeImageProcessor", @@ -4931,23 +17881,247 @@ "title_aux": "ComfyUI-ClipScore-Nodes" } ], + "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes": [ + [ + "GetImageSize", + "HaojihuiHPSv2ImageProcessor", + "HaojihuiHPSv2ImageScore", + "HaojihuiHPSv2ImageScores", + "HaojihuiHPSv2Loader", + "HaojihuiHPSv2SaveAnimatedWEBP", + "HaojihuiHPSv2SaveImage", + "HaojihuiHPSv2SaveWEBP", + "HaojihuiHPSv2SaveWebpImage", + "HaojihuiHPSv2TextProcessor", + "SaveImageWebp", + "ScaleShort" + ], + { + "title_aux": "ComfyUI-HPSv2-Nodes" + } + ], + "https://github.com/babe-and-spencer-enterprises/base-comfyui-node": [ + [ + "UploadToBaseNode" + ], + { + "title_aux": "ComfyUI Upload to BASE Node" + } + ], + "https://github.com/bablueza/ComfyUI-Vaja-Ai4thai": [ + [ + "ShowText", + "Vaja Synthesis Api" + ], + { + "title_aux": "Vaja TextToSpeech Node for ComfyUI" + } + ], + "https://github.com/babydjac/comfyui-grok-prompts": [ + [ + "Flux", + "PonyXL" + ], + { + "title_aux": "ComfyUI Grok Prompts" + } + ], + "https://github.com/babydjac/comfyui-smart-scaler": [ + [ + "AspectRatioAdjuster", + "BatchFrameProcessor", + "DynamicResolutionSelector", + "ImageMetadataExtractor", + "SizeParser", + "SmartAspectScaler", + "WanVideoFrameScaler" + ], + { + "title_aux": "ComfyUI Smart Scaler" + } + ], + "https://github.com/badayvedat/ComfyUI-fal-Connector": [ + [ + "RemoteCheckpointLoader_fal", + "RemoteLoraLoader_fal" + ], + { + "title_aux": "ComfyUI-fal-Connector" + } + ], "https://github.com/badjeff/comfyui_lora_tag_loader": [ [ "LoraTagLoader" ], { - "title_aux": "LoRA Tag Loader for ComfyUI" + "title_aux": "badjeff/LoRA Tag Loader for ComfyUI" + } + ], + "https://github.com/badxprogramm/ComfyUI-GradientBlur": [ + [ + "GradientBlur" + ], + { + "title_aux": "GradientBlurNode for ComfyUI" + } + ], + "https://github.com/baicai99/ComfyUI-FrameSkipping": [ + [ + "FrameSelector", + "FrameSkipping", + "FrameTruncating", + "IntOperationsNode", + "MaskFrameSkipping", + "MaskGenerator", + "MaskSelector" + ], + { + "title_aux": "ComfyUI-FrameSkipping" + } + ], + "https://github.com/bananasss00/ComfyUI-SP-Nodes": [ + [ + "BoolSwitchOutStr", + "CivitaiPrompts", + "ComfyuiRuntimeArgs", + "FaceScatter", + "FaceScatter2", + "FluxInspireLbw_Batch", + "FluxInspireLbw_BlockVectorPreset", + "GodnessMerger_Apply", + "GodnessMerger_InputBlocks", + "GodnessMerger_InputBlocksExperimental", + "GodnessMerger_LabelEmb", + "GodnessMerger_MiddleBlock", + "GodnessMerger_MiddleBlockExperimental", + "GodnessMerger_NoiseInjection", + "GodnessMerger_Out", + "GodnessMerger_OutputBlocks", + "GodnessMerger_OutputBlocksExperimental", + "GodnessMerger_RAW_Apply", + "GodnessMerger_TimeEmbed", + "ImageMonitor", + "ImgMetaValueExtractor", + "LoraLoaderByPath", + "LoraLoaderFromFolder", + "LoraLoaderOnlyModelByPath", + "NoiseInjectionEssentialsHookProvider", + "PreviewImageWEBP", + "PromptChecker", + "RandomPromptFromBook", + "Random_Model_Merge", + "SD3BlocksMultiply", + "SD3Multiply", + "SP-CheckpointSave", + "SP-UnetSave", + "SP_AnyPipe10", + "SP_AnyPipe15", + "SP_AnyPipe20", + "SP_AnyPipe30", + "SP_AnyPipe40", + "SP_AnyPipe5", + "SP_AnyPipe50", + "SP_DDInpaint_Pipe", + "SP_DictValue", + "SP_DynamicCombo", + "SP_FlorenceCaption", + "SP_FluxFastMergePatchFP8 [Experimental]", + "SP_FluxLoader", + "SP_FluxUnsampler", + "SP_FluxUnsampler_ForwardODESampler", + "SP_FluxUnsampler_InverseSampler", + "SP_HiresGen", + "SP_HiresGen_Dynamic", + "SP_HiresGen_HiresCfg", + "SP_HiresGen_Sharpen", + "SP_HunyuanLoader", + "SP_ImpactSwitchCombo", + "SP_KSampler", + "SP_KSamplerSelect", + "SP_KoboldCpp", + "SP_KoboldCppWithContext", + "SP_KoboldCpp_BannedTokens", + "SP_KoboldCpp_OverrideCfg", + "SP_ListAny", + "SP_ModelLoader", + "SP_Name_Checkpoint", + "SP_Name_Clip", + "SP_Name_ClipVision", + "SP_Name_ControlNet", + "SP_Name_StyleModel", + "SP_Name_Unet", + "SP_Name_UpscaleModel", + "SP_Name_Vae", + "SP_Pass", + "SP_Pipe", + "SP_Pipe_ToBasicPipe", + "SP_SD3Loader", + "SP_SDLoader", + "SP_SetPipeModelType", + "SP_Supir", + "SP_SupirSampler", + "SP_SupirSampler_DPMPP2M", + "SP_SupirSampler_EDM", + "SP_SwitchBooleanAny", + "SP_UnlistValues", + "SP_WebsocketSendImage", + "SP_XYGrid", + "SP_XYValues", + "ScatterParams", + "ScatterParamsBatch", + "SendTelegramChatBot", + "StrToCombo", + "TextSplitJoinByDelimiter" + ], + { + "author": "SeniorPioner", + "description": "Node Pack: PromptChecker for token toggling, KoboldCPP API, ModelMerging, Telegram-Bot-API, and more", + "nickname": "SP-Nodes", + "title": "SP-Nodes", + "title_aux": "SP-Nodes" + } + ], + "https://github.com/bananasss00/ComfyUI-flux_fill_patcher": [ + [ + "ApplyFluxFillPatch" + ], + { + "title_aux": "ComfyUI-flux_fill_patcher" } ], "https://github.com/banodoco/steerable-motion": [ [ "BatchCreativeInterpolation", - "IpaConfiguration" + "IpaConfiguration", + "RemoveAndInterpolateFrames", + "VideoContinuationGenerator", + "VideoFrameExtractorAndMaskGenerator", + "WanInputFrameNumber", + "WanVideoBlender" ], { "title_aux": "Steerable Motion" } ], + "https://github.com/banqingyuan/ComfyUI-text-replace": [ + [ + "ChatOverlayNode", + "ExtractJsonNode", + "ImageEraseNode", + "OCRLocNode" + ], + { + "title_aux": "ComfyUI-text-replace" + } + ], + "https://github.com/bartly/Comfyui_babel_removebg_api": [ + [ + "BabelRemovebg" + ], + { + "title_aux": "Babel Removebg Api Node for ComfyUI" + } + ], "https://github.com/bash-j/mikey_nodes": [ [ "AddMetaData", @@ -4957,6 +18131,7 @@ "Batch Resize Image for SDXL", "Checkpoint Loader Simple Mikey", "CheckpointHash", + "CheckpointSaveModelOnly", "CinematicLook", "Empty Latent Ratio Custom SDXL", "Empty Latent Ratio Select SDXL", @@ -4965,6 +18140,7 @@ "FileNamePrefix", "FileNamePrefixDateDirFirst", "Float to String", + "GetSubdirectories", "HaldCLUT", "Image Caption", "ImageBorder", @@ -4979,8 +18155,13 @@ "Mikey Sampler Base Only Advanced", "Mikey Sampler Tiled", "Mikey Sampler Tiled Base Only", + "MikeyLatentTileSampler", + "MikeyLatentTileSamplerCustom", "MikeySamplerTiledAdvanced", "MikeySamplerTiledAdvancedBaseOnly", + "ModelMergePixArtSigmaXL2_1024MS", + "ModelMergeTrainDiff", + "ModelMergeTrainDiffPixartSigmaXL2_1024MS", "MosaicExpandImage", "OobaPrompt", "PresetRatioSelector", @@ -4991,7 +18172,9 @@ "Range Float", "Range Integer", "Ratio Advanced", + "RemoveTextBetween", "Resize Image for SDXL", + "SD3TextConditioningWithOptionsOnePrompt", "SRFloatPromptInput", "SRIntPromptInput", "SRStringPromptInput", @@ -5008,6 +18191,7 @@ "TextCombinations", "TextCombinations3", "TextConcat", + "TextPadderMikey", "TextPreserve", "Upscale Tile Calculator", "Wildcard Processor", @@ -5018,27 +18202,203 @@ "title_aux": "Mikey Nodes" } ], + "https://github.com/bbaudio-2025/ComfyUI-SuperUltimateVaceTools": [ + [ + "CustomCropArea", + "CustomRefineOption", + "NAGParamtersSetting", + "RefineTest", + "RegionalBatchPrompt", + "SuperUltimateVACEUpscale", + "VACEControlImageCombine", + "VACEPromptCheckTotalFrame", + "VACEPromptCombine", + "VaceLongVideo" + ], + { + "title_aux": "ComfyUI-SuperUltimateVaceTools" + } + ], + "https://github.com/bbtaivi/ComfyUI-Aiv-Param": [ + [ + "AivParam" + ], + { + "title_aux": "AIV ComfyUI Node" + } + ], + "https://github.com/bear2b/comfyui-argo-nodes": [ + [ + "ColorMatrixGPU", + "LoadGridFromURL", + "SaveGridToS3" + ], + { + "title_aux": "ColorMatrixGPU Node for ComfyUI" + } + ], "https://github.com/bedovyy/ComfyUI_NAIDGenerator": [ [ + "ColorizeNAID", + "DeclutterNAID", + "EmotionNAID", "GenerateNAID", "Img2ImgOptionNAID", "InpaintingOptionNAID", + "LineArtNAID", "MaskImageToNAID", "ModelOptionNAID", + "NetworkOptionNAID", "PromptToNAID", + "RemoveBGNAID", + "SketchNAID", + "V4BasePrompt", + "V4NegativePrompt", "VibeTransferOptionNAID" ], { "title_aux": "ComfyUI_NAIDGenerator" } ], - "https://github.com/biegert/ComfyUI-CLIPSeg/raw/main/custom_nodes/clipseg.py": [ + "https://github.com/bemoregt/ComfyUI_CustomNode_Image2Spectrum": [ [ - "CLIPSeg", - "CombineSegMasks" + "Image_Spectrum" ], { - "title_aux": "CLIPSeg" + "title_aux": "ComfyUI_CustomNode_Image2Spectrum" + } + ], + "https://github.com/benda1989/CosyVoice2_ComfyUI": [ + [ + "CosyVoice3s", + "CosyVoiceCrossLingual", + "CosyVoiceLoader", + "CosyVoiceNLControl", + "CosyVoiceSonic", + "Text2" + ], + { + "title_aux": "GKK\u00b7CosyVoice" + } + ], + "https://github.com/benda1989/Sonic_ComfyUI": [ + [ + "SonicLoader", + "SonicSimper", + "SonicSpeechs" + ], + { + "title_aux": "GKK\u00b7Sonic" + } + ], + "https://github.com/benjamin-bertram/Comfyui_OIDN_Denoiser": [ + [ + "OIDNDenoiser" + ], + { + "title_aux": "ComfyUI OIDN Denoiser" + } + ], + "https://github.com/benjiyaya/ComfyUI-HunyuanVideoImagesGuider": [ + [ + "Hunyuan Video Image To Guider" + ], + { + "title_aux": "ComfyUI-HunyuanVideoImagesGuider" + } + ], + "https://github.com/benjiyaya/ComfyUI-KokoroTTS": [ + [ + "Kokoro TextToSpeech" + ], + { + "title_aux": "ComfyUI-KokoroTTS" + } + ], + "https://github.com/benstaniford/comfy-contact-sheet-image-loader": [ + [ + "ContactSheetImageLoader" + ], + { + "title_aux": "Comfy Contact Sheet Image Loader" + } + ], + "https://github.com/benstaniford/comfy-image-switch": [ + [ + "ImageSwitchNode", + "SwitchAnyValid" + ], + { + "title_aux": "ComfyUI Image Switch Node" + } + ], + "https://github.com/benstaniford/comfy-load-last-image": [ + [ + "LoadMostRecentImage" + ], + { + "title_aux": "ComfyUI Load Most Recent Image Node" + } + ], + "https://github.com/benstaniford/comfy-lora-loader-with-triggerdb": [ + [ + "LoRaLoaderWithTriggerDB" + ], + { + "title_aux": "LoRa Loader with Trigger Database" + } + ], + "https://github.com/benstaniford/comfy-prompt-db": [ + [ + "PromptDB", + "PromptStack" + ], + { + "title_aux": "Prompt Database for ComfyUI" + } + ], + "https://github.com/bentoml/comfy-pack": [ + [ + "CPackInputAny", + "CPackInputFile", + "CPackInputImage", + "CPackInputInt", + "CPackInputString", + "CPackOutputAudio", + "CPackOutputFile", + "CPackOutputImage", + "CPackOutputTextFile", + "CPackOutputVideo", + "CPackOutputZip", + "CPackOutputZipSwitch" + ], + { + "title_aux": "Comfy-Pack" + } + ], + "https://github.com/bhvbhushan/ComfyUI-LoRABlockWeight": [ + [ + "HierarchicalLoRAWeightEditor", + "NunchakuHierarchicalLoRALoader" + ], + { + "title_aux": "ComfyUI LoRA Block Weight Loader" + } + ], + "https://github.com/big-mon/ComfyUI-ResolutionPresets": [ + [ + "ResolutionPresetsSDXL" + ], + { + "title_aux": "ComfyUI-ResolutionPresets" + } + ], + "https://github.com/bikiam/ComfyUI_WhisperSRT": [ + [ + "WhisperAudioToSRTText" + ], + { + "title_aux": "ComfyUI_WhisperSRT" } ], "https://github.com/bilal-arikan/ComfyUI_TextAssets": [ @@ -5049,26 +18409,287 @@ "title_aux": "ComfyUI_TextAssets" } ], - "https://github.com/bkunbargi/BrevImage/raw/main/BrevLoadImage.py": [ + "https://github.com/billwuhao/ComfyUI_ACE-Step": [ [ - "BrevImage" + "ACELoRALoader", + "ACEModelLoader", + "ACEStepEdit", + "ACEStepExtend", + "ACEStepGen", + "ACEStepRepainting", + "GenerationParameters", + "LyricsLangSwitch", + "MultiLineLyrics", + "MultiLinePromptACES" ], { - "title_aux": "BrevImage" + "title_aux": "ComfyUI_ACE-Step" + } + ], + "https://github.com/billwuhao/ComfyUI_AudioTools": [ + [ + "AddSubtitlesToVideo", + "AdjustAudio", + "AudioAddWatermark", + "AudioConcatenate", + "AudioDenoising", + "AudioRecorderAT", + "ClearVoiceRun", + "LoadAudioMW", + "MergeAudioMW", + "MinimalPauseNode", + "MultiLinePromptAT", + "MusicSeparation", + "RemoveSilence", + "SpeechSeparation", + "StringEditNode", + "TrimAudio" + ], + { + "title_aux": "ComfyUI_AudioTools" + } + ], + "https://github.com/billwuhao/ComfyUI_CSM": [ + [ + "CSMDialogRun", + "CSMSpeakersPreview", + "MultiLineText" + ], + { + "title_aux": "ComfyUI_CSM" + } + ], + "https://github.com/billwuhao/ComfyUI_DiffRhythm": [ + [ + "DiffRhythmRun", + "MultiLineLyricsDR" + ], + { + "title_aux": "ComfyUI_DiffRhythm_MW" + } + ], + "https://github.com/billwuhao/ComfyUI_EraX-WoW-Turbo": [ + [ + "EraXWoWRUN", + "WhisperTurboRun" + ], + { + "title_aux": "MW-ComfyUI_EraX-WoW-Turbo" + } + ], + "https://github.com/billwuhao/ComfyUI_IndexTTS": [ + [ + "IndexSpeakersPreview", + "IndexTTSRun", + "MultiLinePromptIndex" + ], + { + "title_aux": "ComfyUI_IndexTTS" + } + ], + "https://github.com/billwuhao/ComfyUI_KokoroTTS_MW": [ + [ + "KokoroRun", + "KokoroZHRun", + "MultiLinePromptKK" + ], + { + "title_aux": "ComfyUI_KokoroTTS_MW" + } + ], + "https://github.com/billwuhao/ComfyUI_MegaTTS3": [ + [ + "MegaTTS3Run", + "MegaTTS3SpeakersPreview", + "MultiLinePromptMG" + ], + { + "title_aux": "MW-ComfyUI_MegaTTS3" + } + ], + "https://github.com/billwuhao/ComfyUI_NotaGen": [ + [ + "NotaGenRun" + ], + { + "title_aux": "ComfyUI_NotaGen" + } + ], + "https://github.com/billwuhao/ComfyUI_OneButtonPrompt": [ + [ + "LoadImageAndPromptFromURL", + "LoadImageFromURL", + "LoadPrompt", + "StringEditNodeOBP" + ], + { + "title_aux": "MW-ComfyUI_OneButtonPrompt" + } + ], + "https://github.com/billwuhao/ComfyUI_OuteTTS": [ + [ + "OuteTTSRun" + ], + { + "title_aux": "MW-ComfyUI_OuteTTS" + } + ], + "https://github.com/billwuhao/ComfyUI_PortraitTools": [ + [ + "AlignFace", + "BeautifyPhoto", + "DetectCropFace", + "IDPhotos", + "ImageWatermark", + "LoadImageMW" + ], + { + "title_aux": "MW-ComfyUI_PortraitTools" + } + ], + "https://github.com/billwuhao/ComfyUI_SOME": [ + [ + "SomeSing2Midi" + ], + { + "title_aux": "ComfyUI_SOME" + } + ], + "https://github.com/billwuhao/ComfyUI_SparkTTS": [ + [ + "AudioRecorderSpark", + "SparkTTSClone", + "SparkTTSRun" + ], + { + "title_aux": "ComfyUI_SparkTTS" + } + ], + "https://github.com/billwuhao/ComfyUI_StepAudioTTS": [ + [ + "AudioRecorder", + "StepAudioClone", + "StepAudioRun" + ], + { + "title_aux": "ComfyUI_StepAudioTTS" + } + ], + "https://github.com/billwuhao/ComfyUI_gemmax": [ + [ + "GemmaxRun", + "QuickMTRun" + ], + { + "title_aux": "MW-ComfyUI_gemmax" + } + ], + "https://github.com/billwuhao/ComfyUI_parakeet-tdt": [ + [ + "ParakeetASRRun" + ], + { + "title_aux": "ComfyUI_parakeet-tdt" + } + ], + "https://github.com/billwuhao/Comfyui_HeyGem": [ + [ + "HeyGemRun" + ], + { + "title_aux": "Comfyui_HeyGem" + } + ], + "https://github.com/birdneststream/ComfyUI-Mircify": [ + [ + "IRC Art Converter", + "IRC PNG Exporter", + "IRC Text Saver" + ], + { + "title_aux": "ComfyUI-Mircify" + } + ], + "https://github.com/bitaffinity/ComfyUI_HF_Inference": [ + [ + "Classification", + "FeatureExtraction", + "Generation", + "ObjectDetection", + "QuestionAnswering", + "Segmentation", + "TextToImage", + "Translation" + ], + { + "title_aux": "ComfyUI_HF_Inference" + } + ], + "https://github.com/black-forest-labs/bfl-comfy-nodes": [ + [ + "FLUX 1.0 [canny]", + "FLUX 1.0 [canny] Finetuned", + "FLUX 1.0 [depth]", + "FLUX 1.0 [depth] Finetuned", + "FLUX 1.0 [dev]", + "FLUX 1.0 [fill]", + "FLUX 1.0 [fill] Finetuned", + "FLUX 1.0 [pro]", + "FLUX 1.0 [pro] Finetuned", + "FLUX 1.1 [pro]", + "FLUX 1.1 [ultra]", + "FLUX 1.1 [ultra] Finetuned" + ], + { + "title_aux": "Black Forest Labs API Nodes" + } + ], + "https://github.com/blackcodetavern/ComfyUI-Benripack": [ + [ + "AnimationExtractor", + "CharacterPipe", + "Load3DModel" + ], + { + "title_aux": "ComfyUI-Benripack" + } + ], + "https://github.com/blepping/ComfyUI-ApplyResAdapterUnet": [ + [ + "ApplyResAdapterUnet" + ], + { + "title_aux": "ComfyUI-ApplyResAdapterUnet" } ], "https://github.com/blepping/ComfyUI-bleh": [ [ + "BlehBlockCFG", "BlehBlockOps", + "BlehCFGInitSampler", + "BlehCast", "BlehDeepShrink", + "BlehDisableNoise", "BlehDiscardPenultimateSigma", + "BlehEnsurePreviewer", "BlehForceSeedSampler", + "BlehGlobalSageAttention", "BlehHyperTile", + "BlehImageAsLatent", "BlehInsaneChainSampler", + "BlehLatentAsImage", + "BlehLatentBlend", "BlehLatentOps", "BlehLatentScaleBy", "BlehModelPatchConditional", - "BlehRefinerAfter" + "BlehModelPatchFastTerminate", + "BlehPlug", + "BlehRefinerAfter", + "BlehSageAttentionSampler", + "BlehSetSamplerPreset", + "BlehSetSigmas", + "BlehTAEVideoDecode", + "BlehTAEVideoEncode" ], { "title_aux": "ComfyUI-bleh" @@ -5076,19 +18697,150 @@ ], "https://github.com/blepping/ComfyUI-sonar": [ [ + "FreeUExtreme", + "FreeUExtremeConfig", "NoisyLatentLike", + "SONAR_CUSTOM_NOISE to NOISE", "SamplerConfigOverride", "SamplerSonarDPMPPSDE", "SamplerSonarEuler", "SamplerSonarEulerA", + "SonarAdvanced1fNoise", + "SonarAdvancedCollatzNoise", + "SonarAdvancedDistroNoise", + "SonarAdvancedPowerLawNoise", + "SonarAdvancedPyramidNoise", + "SonarAdvancedVoronoiNoise", + "SonarApplyLatentOperationCFG", + "SonarBlendedNoise", + "SonarChannelNoise", + "SonarCompositeNoise", "SonarCustomNoise", + "SonarCustomNoiseAdv", + "SonarCustomNoiseParameters", "SonarGuidanceConfig", - "SonarPowerNoise" + "SonarGuidedNoise", + "SonarLatentOperationAdvanced", + "SonarLatentOperationFilteredNoise", + "SonarLatentOperationNoise", + "SonarLatentOperationQuantileFilter", + "SonarLatentOperationSetSeed", + "SonarModulatedNoise", + "SonarNoiseImage", + "SonarNormalizeNoiseToScale", + "SonarPatternBreakNoise", + "SonarPerDimNoise", + "SonarPowerFilter", + "SonarPowerFilterNoise", + "SonarPowerNoise", + "SonarPreviewFilter", + "SonarQuantileFilteredNoise", + "SonarRandomNoise", + "SonarRepeatedNoise", + "SonarResizedNoise", + "SonarResizedNoiseAdv", + "SonarRippleFilteredNoise", + "SonarScatternetFilteredNoise", + "SonarScheduledNoise", + "SonarShuffledNoise", + "SonarSplitNoiseChain", + "SonarWaveletCFG", + "SonarWaveletFilteredNoise", + "SonarWaveletNoise" ], { "title_aux": "ComfyUI-sonar" } ], + "https://github.com/blepping/comfyui_jankdiffusehigh": [ + [ + "DiffuseHighParam", + "DiffuseHighSampler" + ], + { + "title_aux": "comfyui_jankdiffusehigh" + } + ], + "https://github.com/blepping/comfyui_jankhidiffusion": [ + [ + "ApplyMSWMSAAttention", + "ApplyMSWMSAAttentionSimple", + "ApplyRAUNet", + "ApplyRAUNetSimple" + ], + { + "title_aux": "comfyui_jankhidiffusion" + } + ], + "https://github.com/blepping/comfyui_overly_complicated_sampling": [ + [ + "OCS ApplyFilterImage", + "OCS ApplyFilterLatent", + "OCS Group", + "OCS ModelSetMaxSigma", + "OCS MultiParam", + "OCS Param", + "OCS Sampler", + "OCS SimpleRestartSchedule", + "OCS Substeps", + "OCSNoise Conditioning", + "OCSNoise ExpressionFilteredNoise", + "OCSNoise ImmiscibleReference", + "OCSNoise OverrideSamplerNoise", + "OCSNoise PerlinAdvanced", + "OCSNoise PerlinSimple", + "OCSNoise to SONAR_CUSTOM_NOISE" + ], + { + "title_aux": "comfyui_overly_complicated_sampling" + } + ], + "https://github.com/blird/ComfyUI-Wanify": [ + [ + "AdaptiveImageResize" + ], + { + "title_aux": "ComfyUI-Wanify: Adaptive Image Resize Node" + } + ], + "https://github.com/blob8/ComfyUI_sloppy-comic": [ + [ + "Generate Comic", + "LLM API Request" + ], + { + "title_aux": "ComfyUI_sloppy-comic" + } + ], + "https://github.com/blovett80/ComfyUI-PixelDojo": [ + [ + "PixelDojoAPI" + ], + { + "title_aux": "ComfyUI-PixelDojo" + } + ], + "https://github.com/blueraincoatli/comfyUI_SillyNodes": [ + [ + "BooleanJumper|SillyNode", + "CloseErrorWindowNode|SillyNode", + "QueueSequence|SillyNode", + "Screenshots|SillyNode", + "dummyInput|SillyNode", + "dummyInput|blueraincoat" + ], + { + "title_aux": "comfyUI_SillyNodes" + } + ], + "https://github.com/bluevisor/ComfyUI_PS_Blend_Node": [ + [ + "PSBlendNode" + ], + { + "title_aux": "ComfyUI_PS_Blend_Node" + } + ], "https://github.com/bmad4ever/comfyui_ab_samplercustom": [ [ "AB SamplerCustom (experimental)" @@ -5097,139 +18849,6 @@ "title_aux": "comfyui_ab_sampler" } ], - "https://github.com/bmad4ever/comfyui_bmad_nodes": [ - [ - "AdaptiveThresholding", - "Add String To Many", - "AddAlpha", - "AdjustRect", - "AnyToAny", - "BoundingRect (contours)", - "BuildColorRangeAdvanced (hsv)", - "BuildColorRangeHSV (hsv)", - "CLAHE", - "CLIPEncodeMultiple", - "CLIPEncodeMultipleAdvanced", - "ChameleonMask", - "CheckpointLoader (dirty)", - "CheckpointLoaderSimple (dirty)", - "Color (RGB)", - "Color (hexadecimal)", - "Color Clip", - "Color Clip (advanced)", - "Color Clip ADE20k", - "ColorDictionary", - "ColorDictionary (custom)", - "Conditioning (combine multiple)", - "Conditioning (combine selective)", - "Conditioning Grid (cond)", - "Conditioning Grid (string)", - "Conditioning Grid (string) Advanced", - "Contour To Mask", - "Contours", - "ControlNetHadamard", - "ControlNetHadamard (manual)", - "ConvertImg", - "CopyMakeBorder", - "CreateRequestMetadata", - "DistanceTransform", - "Draw Contour(s)", - "EqualizeHistogram", - "ExtendColorList", - "ExtendCondList", - "ExtendFloatList", - "ExtendImageList", - "ExtendIntList", - "ExtendLatentList", - "ExtendMaskList", - "ExtendModelList", - "ExtendStringList", - "FadeMaskEdges", - "Filter Contour", - "FindComplementaryColor", - "FindThreshold", - "FlatLatentsIntoSingleGrid", - "Framed Mask Grab Cut", - "Framed Mask Grab Cut 2", - "FromListGet1Color", - "FromListGet1Cond", - "FromListGet1Float", - "FromListGet1Image", - "FromListGet1Int", - "FromListGet1Latent", - "FromListGet1Mask", - "FromListGet1Model", - "FromListGet1String", - "FromListGetColors", - "FromListGetConds", - "FromListGetFloats", - "FromListGetImages", - "FromListGetInts", - "FromListGetLatents", - "FromListGetMasks", - "FromListGetModels", - "FromListGetStrings", - "Get Contour from list", - "Get Models", - "Get Prompt", - "HypernetworkLoader (dirty)", - "ImageBatchToList", - "InRange (hsv)", - "Inpaint", - "Input/String to Int Array", - "KMeansColor", - "Load 64 Encoded Image", - "LoraLoader (dirty)", - "MaskGrid N KSamplers Advanced", - "MaskOuterBlur", - "Merge Latent Batch Gridwise", - "MonoMerge", - "MorphologicOperation", - "MorphologicSkeletoning", - "NaiveAutoKMeansColor", - "OtsuThreshold", - "RGB to HSV", - "Rect Grab Cut", - "Remap", - "RemapBarrelDistortion", - "RemapFromInsideParabolas", - "RemapFromQuadrilateral (homography)", - "RemapInsideParabolas", - "RemapInsideParabolasAdvanced", - "RemapPinch", - "RemapReverseBarrelDistortion", - "RemapStretch", - "RemapToInnerCylinder", - "RemapToOuterCylinder", - "RemapToQuadrilateral", - "RemapWarpPolar", - "Repeat Into Grid (image)", - "Repeat Into Grid (latent)", - "RequestInputs", - "SampleColorHSV", - "Save Image (api)", - "SeamlessClone", - "SeamlessClone (simple)", - "SetRequestStateToComplete", - "String", - "String to Float", - "String to Integer", - "ToColorList", - "ToCondList", - "ToFloatList", - "ToImageList", - "ToIntList", - "ToLatentList", - "ToMaskList", - "ToModelList", - "ToStringList", - "UnGridify (image)", - "VAEEncodeBatch" - ], - { - "title_aux": "Bmad Nodes" - } - ], "https://github.com/bmad4ever/comfyui_lists_cartesian_product": [ [ "AnyListCartesianProduct" @@ -5240,7 +18859,12 @@ ], "https://github.com/bmad4ever/comfyui_quilting": [ [ + "GuessQuiltingBlockSize_Bmad", + "ImageQuiltingSeamlessMB_Bmad", + "ImageQuiltingSeamlessSB_Bmad", "ImageQuilting_Bmad", + "LatentQuiltingSeamlessMB_Bmad", + "LatentQuiltingSeamlessSB_Bmad", "LatentQuilting_Bmad" ], { @@ -5265,14 +18889,140 @@ ], "https://github.com/bobmagicii/comfykit-custom-nodes": [ [ + "LoraStackFiveSimple", + "LoraThree", "LoraWithMeta", + "TypecasterClip", + "TypecasterCond", "TypecasterImage", - "TypecasterLatent" + "TypecasterLatent", + "TypecasterModel", + "TypecasterVae" ], { "title_aux": "ComfyKit Custom Nodes" } ], + "https://github.com/bollerdominik/ComfyUI-load-lora-from-url": [ + [ + "LoadLoraFromUrlOrPath", + "LoadVideoLoraFromUrlOrPath", + "LoadVideoLoraFromUrlOrPathSelect" + ], + { + "title_aux": "ComfyUI-load-lora-from-url" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-Allegro": [ + [ + "AllegroDecoder", + "AllegroEncoder", + "AllegroSampler", + "AllegroTI2VEncoder", + "AllegroTI2VSampler", + "AllegroTextEncoder", + "LoadAllegroModel", + "LoadAllegroTI2VModel" + ], + { + "title_aux": "ComfyUI-Allegro" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-DisPose": [ + [ + "DisPoseDecoder", + "DisPoseLoader", + "DisPoseSampler" + ], + { + "title_aux": "ComfyUI-DisPose" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-MagicDance": [ + [ + "LoadMagicDanceModel", + "MagicDanceDecoder", + "MagicDanceEncoder", + "MagicDanceSampler" + ], + { + "title_aux": "ComfyUI-MagicDance" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-Open-Sora-I2V": [ + [ + "OpenSoraDecoder", + "OpenSoraEncoder", + "OpenSoraLoader", + "OpenSoraSampler", + "OpenSoraTextEncoder" + ], + { + "title_aux": "ComfyUI-Open-Sora-I2V" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan": [ + [ + "OpenSoraPlan0LoaderT2V", + "OpenSoraPlan1LoaderT2V", + "OpenSoraPlan2LoaderI2V", + "OpenSoraPlan2LoaderT2V", + "OpenSoraPlan2SamplerI2V", + "OpenSoraPlan3LoaderI2V", + "OpenSoraPlan3LoaderT2V", + "OpenSoraPlan3SamplerI2V", + "OpenSoraPlanDecoder", + "OpenSoraPlanPromptRefiner", + "OpenSoraPlanSamplerT2V" + ], + { + "title_aux": "ComfyUI-OpenSoraPlan" + } + ], + "https://github.com/bombless/comfyUI-RememberingUtils": [ + [ + "RememberLastSeed", + "ShowLastSeed", + "ShowLastText" + ], + { + "title_aux": "Remembering utils" + } + ], + "https://github.com/bongsang/ComfyUI-Bongsang": [ + [ + "AnyInfo", + "RgbChannel" + ], + { + "title_aux": "ComfyUI-Bongsang" + } + ], + "https://github.com/boredofnames/ComfyUI-ntfy": [ + [ + "Ntfy", + "SaveImageAndNtfy" + ], + { + "title_aux": "ComfyUI-ntfy" + } + ], + "https://github.com/boricuapab/ComfyUI-Bori-JsonSetGetConverter": [ + [ + "Bori Json Get Set Convert" + ], + { + "title_aux": "ComfyUI-Bori-JsonSetGetConverter" + } + ], + "https://github.com/boricuapab/ComfyUI-Bori-QwenImageResolutions": [ + [ + "Bori Qwen Image Resolution" + ], + { + "title_aux": "ComfyUI-Bori-QwenImageResolutions" + } + ], "https://github.com/bradsec/ComfyUI_ResolutionSelector": [ [ "ResolutionSelector" @@ -5281,21 +19031,65 @@ "title_aux": "ResolutionSelector for ComfyUI" } ], + "https://github.com/bradsec/ComfyUI_StringEssentials": [ + [ + "StringMultiReplace", + "StringPreview", + "StringStrip", + "StringTextbox" + ], + { + "title_aux": "ComfyUI_StringEssentials" + } + ], "https://github.com/braintacles/braintacles-comfyui-nodes": [ [ "CLIPTextEncodeSDXL-Multi-IO", "CLIPTextEncodeSDXL-Pipe", "Empty Latent Image from Aspect-Ratio", - "Random Find and Replace", - "VAE Decode Pipe", - "VAE Decode Tiled Pipe", - "VAE Encode Pipe", - "VAE Encode Tiled Pipe" + "Interval Sampler", + "Random Find and Replace" ], { "title_aux": "braintacles-nodes" } ], + "https://github.com/brantje/ComfyUI-api-tools": [ + [ + "SimpleGenImageInterface" + ], + { + "title_aux": "ComfyUI-api-tools" + } + ], + "https://github.com/brantje/ComfyUI_MagicQuill": [ + [ + "MagicQuill" + ], + { + "author": "Zichen LIU (https://zliucz.github.io/) and Yue YU (https://bruceyyu.github.io/)", + "description": "Official ComfyUI Implementations for Paper - MagicQuill: An Intelligent Interactive Image Editing System", + "nickname": "MagicQuill nodes", + "title": "MagicQuill", + "title_aux": "ComfyUI-MagicQuill" + } + ], + "https://github.com/brayevalerien/ComfyUI-SplitString": [ + [ + "Split String" + ], + { + "title_aux": "ComfyUI-splitstring" + } + ], + "https://github.com/brayevalerien/ComfyUI-resynthesizer": [ + [ + "Resynthesize" + ], + { + "title_aux": "ComfyUI Resynthesizer" + } + ], "https://github.com/brianfitzgerald/style_aligned_comfy": [ [ "StyleAlignedBatchAlign", @@ -5322,6 +19116,16 @@ "title_aux": "comfyui-fitsize" } ], + "https://github.com/brucew4yn3rp/ComfyUI_SelectiveMetadata": [ + [ + "Multiline String", + "Save Image (Selective Metadata)", + "SaveImage" + ], + { + "title_aux": "Save Image with Selective Metadata" + } + ], "https://github.com/bruefire/ComfyUI-SeqImageLoader": [ [ "VFrame Loader With Mask Editor", @@ -5331,6 +19135,15 @@ "title_aux": "ComfyUI Sequential Image Loader" } ], + "https://github.com/budihartono/comfyui-aspect-ratio-presets": [ + [ + "CAS Empty Latent Aspect Ratio Axis", + "CAS Empty Latent Aspect Ratio Preset" + ], + { + "title_aux": "CAS Aspect Ratio Presets Node for ComfyUI" + } + ], "https://github.com/budihartono/comfyui_otonx_nodes": [ [ "OTX Integer Multiple Inputs 4", @@ -5345,6 +19158,107 @@ "title_aux": "Otonx's Custom Nodes" } ], + "https://github.com/bugltd/ComfyLab-Pack": [ + [ + "Convert to Any (lab)", + "File Queue (lab)", + "Format: Multiline (lab)", + "Format: String (lab)", + "Generic Queue (lab)", + "Image Queue (lab)", + "Image: Downscale to Total Pixels (lab)", + "Input: Boolean (lab)", + "Input: Float (lab)", + "Input: Folder (lab)", + "Input: Integer (lab)", + "Input: Multiline (lab)", + "Input: String (lab)", + "List: Checkpoints (lab)", + "List: Limit (lab)", + "List: LoRAs (lab)", + "List: Merge (lab)", + "List: Random Seeds (lab)", + "List: Samplers (lab)", + "List: Schedulers (lab)", + "List: from Elements (lab)", + "List: from File (backend) (lab)", + "List: from Multiline (lab)", + "List: from String (lab)", + "Load Image (RGBA) (lab)", + "Output Config: Load (lab)", + "Output Config: Retrieve (backend) (lab)", + "Plot Config: Grid (lab)", + "Plot Config: Header/Footer (lab)", + "Resolution to Dimensions (lab)", + "Save Text File (lab)", + "Sleep (lab)", + "XY Plot: Queue (lab)", + "XY Plot: Render (lab)", + "XY Plot: Split Data (lab)" + ], + { + "nodename_pattern": " \\(lab\\)$", + "title_aux": "ComfyLab Pack" + } + ], + "https://github.com/burnsbert/ComfyUI-EBU-LMStudio": [ + [ + "EbuLMStudioBrainstormer", + "EbuLMStudioLoadModel", + "EbuLMStudioMakeRequest", + "EbuLMStudioUnload", + "EbuLMStudioUnloadGuider" + ], + { + "title_aux": "EBU LMStudio LLM Integration" + } + ], + "https://github.com/burnsbert/ComfyUI-EBU-PromptHelper": [ + [ + "EbuPromptHelperCharacterDescriberFemale", + "EbuPromptHelperCharacterDescriberMale", + "EbuPromptHelperCombineTwoStrings", + "EbuPromptHelperConsumeListItem", + "EbuPromptHelperCurrentDateTime", + "EbuPromptHelperListSampler", + "EbuPromptHelperLoadFileAsString", + "EbuPromptHelperRandomColorPalette", + "EbuPromptHelperRandomize", + "EbuPromptHelperReplace", + "EbuPromptHelperSeasonWeatherTimeOfDay", + "EbuPromptHelperTruncate" + ], + { + "title_aux": "EBU PromptHelper" + } + ], + "https://github.com/burnsbert/ComfyUI-EBU-Workflow": [ + [ + "EbuAppendToFile", + "EbuDecodeNewLines", + "EbuEncodeNewLines", + "EbuFileListCache", + "EbuGetImageAspectRatio", + "EbuImageWaitForImage", + "EbuModelWaitForImage", + "EbuReadFromFile", + "EbuScalingResolution", + "EbuScalingTile", + "EbuStringWaitForImage", + "EbuUniqueFileName" + ], + { + "title_aux": "EBU Workflow" + } + ], + "https://github.com/bvhari/ComfyUI_CFGStar": [ + [ + "CFGStar" + ], + { + "title_aux": "ComfyUI_CFGStar" + } + ], "https://github.com/bvhari/ComfyUI_ImageProcessing": [ [ "BilateralFilter", @@ -5359,12 +19273,12 @@ "title_aux": "ImageProcessing" } ], - "https://github.com/bvhari/ComfyUI_LatentToRGB": [ + "https://github.com/bvhari/ComfyUI_PerpCFG": [ [ - "LatentToRGB" + "PerpCFG" ], { - "title_aux": "LatentToRGB" + "title_aux": "ComfyUI_PerpCFG" } ], "https://github.com/bvhari/ComfyUI_PerpWeight": [ @@ -5377,12 +19291,7 @@ ], "https://github.com/bvhari/ComfyUI_SUNoise": [ [ - "SamplerDPM2Ancestral_SUN", - "SamplerDPMPP2SAncestral_SUN", - "SamplerDPMPP_2M_SDE_SUN", - "SamplerDPMPP_3M_SDE_SUN", - "SamplerDPMPP_SDE_SUN", - "SamplerEulerAncestral_SUN", + "SUNoiseLatent", "SamplersSUNoise", "SamplersSUNoiseAdvanced" ], @@ -5390,12 +19299,416 @@ "title_aux": "ComfyUI_SUNoise" } ], - "https://github.com/catscandrive/comfyui-imagesubfolders/raw/main/loadImageWithSubfolders.py": [ + "https://github.com/bytedance/ComfyUI-HyperLoRA": [ [ - "LoadImagewithSubfolders" + "HyperLoRAApplyLoRA", + "HyperLoRABaseCond", + "HyperLoRAConfig", + "HyperLoRAFaceAttr", + "HyperLoRAGenerateBaseLoRA", + "HyperLoRAGenerateIDLoRA", + "HyperLoRAIDCond", + "HyperLoRALoader", + "HyperLoRASaveLoRA", + "HyperLoRAUniGenerateIDLoRA", + "HyperLoRAUniLoader" ], { - "title_aux": "Image loader with subfolders" + "title_aux": "ComfyUI-HyperLoRA" + } + ], + "https://github.com/bytedance/ComfyUI_InfiniteYou": [ + [ + "FaceCombine", + "FaceSwap_InfiniteYou", + "InfiniteYouApply" + ], + { + "title_aux": "ComfyUI_InfiniteYou" + } + ], + "https://github.com/c0ffymachyne/ComfyUI_BeatByte": [ + [ + "BytebeatSynth" + ], + { + "title_aux": "Bytebeat Synthesizer: Composing with Operators" + } + ], + "https://github.com/c0ffymachyne/ComfyUI_SignalProcessing": [ + [ + "SignalProcessingBaxandall3BandEQ", + "SignalProcessingBaxandallEQ", + "SignalProcessingCompressor", + "SignalProcessingConvolutionReverb", + "SignalProcessingFilter", + "SignalProcessingHarmonicsEnhancer", + "SignalProcessingLimiter", + "SignalProcessingLoadAudio", + "SignalProcessingLoudness", + "SignalProcessingMixdown", + "SignalProcessingNormalizer", + "SignalProcessingPadSynth", + "SignalProcessingPadSynthChoir", + "SignalProcessingPaulStretch", + "SignalProcessingPitchShifter", + "SignalProcessingSaturation", + "SignalProcessingSpectrogram", + "SignalProcessingStereoWidening", + "SignalProcessingWaveform" + ], + { + "title_aux": "ComfyUI Signal Processing" + } + ], + "https://github.com/cake-ml/tiny-sana-preview": [ + [ + "TinySanaPreview" + ], + { + "title_aux": "TinySanaPreview" + } + ], + "https://github.com/calcuis/gguf": [ + [ + "AudioEncoderLoaderGGUF", + "ClipLoaderGGUF", + "DualClipLoaderGGUF", + "GGUFRun", + "GGUFSave", + "GGUFUndo", + "LoaderGGUF", + "LoaderGGUFAdvanced", + "QuadrupleClipLoaderGGUF", + "TENSORBoost", + "TENSORCut", + "TripleClipLoaderGGUF", + "VaeGGUF" + ], + { + "preemptions": [ + "LoaderGGUF", + "ClipLoaderGGUF", + "DualClipLoaderGGUF", + "TripleClipLoaderGGUF", + "LoaderGGUFAdvanced", + "GGUFSave" + ], + "title_aux": "gguf" + } + ], + "https://github.com/caleboleary/ComfyUI-Arc2Face": [ + [ + "Arc2FaceEncoderLoader", + "Arc2FaceFaceExtractor", + "Arc2FaceGenerator", + "Arc2FaceImageGridGenerator", + "Arc2FaceImg2ImgGenerator", + "Arc2FaceUNetLoader" + ], + { + "title_aux": "Arc2Face ComfyUI Node Library" + } + ], + "https://github.com/camenduru/ComfyUI-TostAI": [ + [ + "SendToTostAI" + ], + { + "title_aux": "ComfyUI-TostAI" + } + ], + "https://github.com/cardenluo/ComfyUI-Apt_Preset": [ + [ + "AD_DrawSchedule", + "AD_ImageExpandBatch", + "AD_MaskExpandBatch", + "AD_batch_replace", + "AD_font2img", + "AD_pingpong_vedio", + "AD_sch_IPA", + "AD_sch_image_merge", + "AD_sch_latent", + "AD_sch_mask", + "AD_sch_prompt_adv", + "AD_sch_prompt_basic", + "AD_sch_prompt_stack", + "AD_sch_value", + "AD_slice_Condi", + "AI_GLM4", + "AI_Ollama", + "Amp_audio_Normalized", + "Amp_drive_String", + "Amp_drive_mask", + "Amp_drive_value", + "Apply_CN_union", + "Apply_ControlNetStack", + "Apply_IPA", + "Apply_IPA_SD3", + "Apply_LoRAStack", + "Apply_Redux", + "Apply_adv_CN", + "Apply_condiStack", + "Apply_latent", + "Apply_textStack", + "CN_preset1_Unpack", + "CN_preset1_pack", + "Data_Highway", + "Data_basic", + "Data_bus_chx", + "Data_chx_Merge", + "Data_presetData", + "Data_preset_save", + "Data_sampleData", + "Data_select", + "IO_adjust_image", + "IO_clear_cache", + "IO_input_any", + "IO_inputbasic", + "IO_load_anyimage", + "IO_save_image", + "IO_video_encode", + "IPA_XL_PromptInjection", + "IPA_clip_vision", + "IPA_dapterSD3LOAD", + "Image_Channel_Apply", + "Image_Channel_Extract", + "Image_Channel_RemoveAlpha", + "Image_Pair_Merge", + "Image_Pair_crop", + "Image_Resize2", + "Image_Resize_sum", + "Image_Upscaletile", + "Image_batch_composite", + "Image_batch_select", + "Image_pad_outfill", + "Image_solo_crop", + "Image_solo_stitch", + "Image_transform_layer", + "Image_transform_solo", + "Mask_Detect_label", + "Mask_Remove_bg", + "Mask_face_detect", + "Mask_image2mask", + "Mask_math", + "Mask_splitMask", + "Mask_splitMask_by_color", + "Mask_split_mulMask", + "Mask_transform_sum", + "Model_Preset_Unpack", + "Model_Preset_pack", + "Stack_CN_union", + "Stack_ControlNet", + "Stack_IPA", + "Stack_IPA_SD3", + "Stack_LoRA", + "Stack_Redux", + "Stack_WanCameralToVideo", + "Stack_WanFirstLastFrameToVideo", + "Stack_WanFunControlToVideo", + "Stack_WanFunInpaintToVideo", + "Stack_WanImageToVideo", + "Stack_WanVaceToVideo", + "Stack_adv_CN", + "Stack_condi", + "Stack_latent", + "Stack_pre_Mark", + "Stack_sample_data", + "Stack_text", + "basicIn_Sampler", + "basicIn_Scheduler", + "basicIn_Seed", + "basicIn_color", + "basicIn_float", + "basicIn_int", + "basicIn_string", + "basic_Ksampler_adv", + "basic_Ksampler_custom", + "basic_Ksampler_full", + "basic_Ksampler_mid", + "basic_Ksampler_simple", + "batch_BatchGetByIndex", + "batch_BatchSlice", + "batch_MergeBatch", + "chx_IPA_XL", + "chx_IPA_adv", + "chx_IPA_apply_combine", + "chx_IPA_basic", + "chx_IPA_faceID", + "chx_IPA_faceID_adv", + "chx_IPA_region_combine", + "chx_Ksampler_Kontext", + "chx_Ksampler_Kontext_adv", + "chx_Ksampler_Kontext_inpaint", + "chx_Ksampler_VisualStyle", + "chx_Ksampler_dual_area", + "chx_Ksampler_dual_paint", + "chx_Ksampler_inpaint", + "chx_Ksampler_mix", + "chx_Ksampler_refine", + "chx_Ksampler_texture", + "chx_StyleModelApply", + "chx_Style_Redux", + "chx_YC_LG_Redux", + "chx_ksampler_Deforum_sch", + "chx_ksampler_tile", + "chx_latent_adjust", + "color_Local_Gray", + "color_OneColor_keep", + "color_OneColor_replace", + "color_adjust_HDR", + "color_adjust_HSL", + "color_adjust_WB_balance", + "color_adjust_light", + "color_match_adv", + "color_selector", + "color_tool", + "creat_any_List", + "creat_any_batch", + "creat_image_batch", + "creat_image_batch_input", + "creat_mask_batch", + "creat_mask_batch_input", + "create_AD_mask", + "create_Mask_match_shape", + "create_Mask_visual_tag", + "create_RadialGradient", + "create_lineGradient", + "create_mask_array", + "create_mask_solo", + "create_mulcolor_img", + "excel_Prompter", + "excel_VedioPrompt", + "excel_column_diff", + "excel_imgEditor_helper", + "excel_insert_image", + "excel_qwen_artistic", + "excel_qwen_font", + "excel_read", + "excel_row_diff", + "excel_search_data", + "excel_write_data", + "img_effect_CircleWarp", + "img_effect_Liquify", + "img_effect_Load", + "img_effect_Stretch", + "img_effect_WaveWarp", + "latent_Image2Noise", + "latent_chx_noise", + "latent_ratio", + "lay_ImageGrid", + "lay_MaskGrid", + "lay_compare_img", + "lay_edge_cut", + "lay_fill_inpaint", + "lay_image_grid_note", + "lay_images_free_layout", + "lay_imgCanvas", + "lay_text_sum", + "lay_texture_Offset", + "list_ListGetByIndex", + "list_ListSlice", + "list_MergeList", + "list_num_range", + "list_sch_Value", + "load_FLUX", + "load_GGUF", + "load_SD35", + "load_basic", + "math_Remap_data", + "math_calculate", + "model_Regional", + "model_Style_Align", + "model_adjust_color", + "model_diff_inpaint", + "pack_Pack", + "pack_Unpack", + "param_preset_Unpack", + "param_preset_pack", + "photoshop_preset_Unpack", + "photoshop_preset_pack", + "pre_Flex2", + "pre_Kontext", + "pre_Kontext_mul", + "pre_QwenEdit", + "pre_controlnet", + "pre_controlnet_union", + "pre_guide", + "pre_ic_light_sd15", + "pre_latent_light", + "pre_mul_Mulcondi", + "pre_qwen_controlnet", + "pre_sample_data", + "sampler_DynamicTileMerge", + "sampler_DynamicTileSplit", + "sampler_enhance", + "sch_Prompt", + "sch_Value", + "sch_image", + "sch_mask", + "sch_split_text", + "sch_text", + "stack_Mask2color", + "stack_sum_pack", + "sum_create_chx", + "sum_editor", + "sum_latent", + "sum_load_adv", + "sum_lora", + "sum_stack_AD", + "sum_stack_Wan", + "sum_stack_all", + "sum_stack_image", + "text_SuperPrompter", + "text_free_wildcards", + "text_mul_Join", + "text_mul_Split", + "text_mul_remove", + "text_mul_replace", + "text_stack_wildcards", + "text_sum", + "type_AnyCast", + "type_Anyswitch", + "type_BasiPIPE", + "type_BatchToList", + "type_Image_Batch2List", + "type_Image_List2Batch", + "type_ListToBatch", + "type_Mask_Batch2List", + "type_Mask_List2Batch", + "type_text_list2batch", + "unpack_box2", + "view_Data", + "view_GetLength", + "view_GetShape", + "view_GetWidgetsValues", + "view_Mask_And_Img", + "view_bridge_Text", + "view_bridge_image", + "view_combo", + "view_latent", + "view_mask", + "view_node_Script" + ], + { + "title_aux": "ComfyUI-Apt_Preset" + } + ], + "https://github.com/casterpollux/MiniMax-bmo": [ + [ + "MinimaxRemoverBMO" + ], + { + "nodename_pattern": "MiniMax.*BMO|BMO.*MiniMax", + "title_aux": "MiniMax Video Object Remover Suite" + } + ], + "https://github.com/catboxanon/comfyui_stealth_pnginfo": [ + [ + "CatboxAnonSaveImageStealth" + ], + { + "title_aux": "comfyui_stealth_pnginfo" } ], "https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life": [ @@ -5418,6 +19731,7 @@ ], "https://github.com/cdb-boop/comfyui-image-round": [ [ + "ComfyUI_Image_Round__CircularCrop", "ComfyUI_Image_Round__ImageCropAdvanced", "ComfyUI_Image_Round__ImageRound", "ComfyUI_Image_Round__ImageRoundAdvanced" @@ -5426,19 +19740,124 @@ "title_aux": "comfyui-image-round" } ], - "https://github.com/celsojr2013/comfyui_simpletools/raw/main/google_translator.py": [ + "https://github.com/cdxOo/comfyui-text-node-with-comments": [ [ - "GoogleTranslator" + "text-node-with-comments" + ], + { + "title_aux": "Text Node With Comments (@cdxoo)" + } + ], + "https://github.com/cedarconnor/ComfyUI_HunyuanWorld": [ + [ + "HYW_Config", + "HYW_MeshAnalyzer", + "HYW_MeshExport", + "HYW_MeshProcessor", + "HYW_MetadataManager", + "HYW_ModelLoader", + "HYW_PanoGen", + "HYW_PanoGenBatch", + "HYW_PanoInpaint_Advanced", + "HYW_PanoInpaint_Scene", + "HYW_PanoInpaint_Sky", + "HYW_PanoramaValidator", + "HYW_PerspectiveToPanoramaMask", + "HYW_RuntimeFromStock", + "HYW_SeamlessWrap360", + "HYW_SettingsLoader", + "HYW_ShiftPanorama", + "HYW_SkyMaskGenerator", + "HYW_TextureBaker", + "HYW_Thumbnailer", + "HYW_WorldReconstructor" + ], + { + "title_aux": "ComfyUI HunyuanWorld - Professional 3D World Generation" + } + ], + "https://github.com/cedarconnor/comfyui-BatchNameLoop": [ + [ + "Batch Image Iterator", + "Batch Image Loader", + "Batch Image Saver", + "Batch Image Single Saver" + ], + { + "title_aux": "ComfyUI Batch Name Loop" + } + ], + "https://github.com/cedarconnor/comfyui-LatLong": [ + [ + "Equirectangular Crop 180", + "Equirectangular Crop Square", + "Equirectangular Perspective Extract", + "Equirectangular Processor", + "Equirectangular Rotate", + "Equirectangular To Cubemap" + ], + { + "title_aux": "ComfyUI LatLong - Equirectangular Image Processing Nodes" + } + ], + "https://github.com/cedarconnor/upsampler": [ + [ + "Upsampler Dynamic Upscale", + "Upsampler Precise Upscale", + "Upsampler Smart Upscale" + ], + { + "title_aux": "ComfyUI Upsampler Nodes" + } + ], + "https://github.com/celoron/ComfyUI-VisualQueryTemplate": [ + [ + "VisualQueryTemplateNode" + ], + { + "title_aux": "ComfyUI-VisualQueryTemplate" + } + ], + "https://github.com/celsojr2013/comfyui_jamworks_client": [ + [ + "Jamworks_Download", + "Jamworks_Login", + "Shell_Command" + ], + { + "title_aux": "comfyui_jamworks_client" + } + ], + "https://github.com/celsojr2013/comfyui_simpletools": [ + [ + "GoogleTranslator", + "Parameters", + "ResolutionSolver" ], { "title_aux": "ComfyUI SimpleTools Suit" } ], + "https://github.com/cenzijing/ComfyUI-Markmap": [ + [ + "MarkmapNode", + "ReadHtmlNode" + ], + { + "title_aux": "ComfyUI-Markmap" + } + ], "https://github.com/cerspense/ComfyUI_cspnodes": [ [ + "DepthToNormalMap", + "GetMP4Prompt", "ImageDirIterator", + "IncrementEveryN", "Modelscopet2v", "Modelscopev2v", + "RemapRange", + "ResizeByImage", + "SplitImageChannels", "VidDirIterator" ], { @@ -5453,6 +19872,63 @@ "title_aux": "ComfyUI LLaVA Captioner" } ], + "https://github.com/cganimitta/ComfyUI_CGAnimittaTools": [ + [ + "CGA_BlackBorderCrop", + "CGA_BlenderBridge", + "CGA_ColorToGrayscale", + "CGA_ExtractFromList", + "CGA_FrameExtraction\ud83c\udf9e\ufe0f", + "CGA_ListSubfolders", + "CGA_NegativeSelector", + "CGA_TxtReaderNode" + ], + { + "title_aux": "ComfyUI_CGAnimittaTools" + } + ], + "https://github.com/chakib-belgaid/ComfyUI-autosize": [ + [ + "CustomAutoSize", + "SDXLAutoSize" + ], + { + "title_aux": "ComfyUI-autosize" + } + ], + "https://github.com/chakib-belgaid/Comfyui_Prompt_styler": [ + [ + "Prompt_Styler" + ], + { + "title_aux": "ComfyUI Style Plugin" + } + ], + "https://github.com/chandlergis/ComfyUI-IMG_Query": [ + [ + "ImageRequestNode" + ], + { + "title_aux": "ComfyUI-IMG_Query" + } + ], + "https://github.com/chandlergis/ComfyUI_EmojiOverlay": [ + [ + "Image Emoji Overlay" + ], + { + "title_aux": "ComfyUI_EmojiOverlay" + } + ], + "https://github.com/changwook987/ComfyUI-Small-Utility": [ + [ + "Eval", + "RandomEmptyLatent" + ], + { + "title_aux": "ComfyUI-Small-Utility" + } + ], "https://github.com/chaojie/ComfyUI-AniPortrait": [ [ "AniPortraitLoader", @@ -5580,6 +20056,25 @@ "title_aux": "ComfyUI-Img2Img-Turbo" } ], + "https://github.com/chaojie/ComfyUI-LaVIT": [ + [ + "VHS_FILENAMES_STRING_LaVIT", + "VideoLaVITI2I", + "VideoLaVITI2V", + "VideoLaVITI2VLong", + "VideoLaVITLoader", + "VideoLaVITT2V", + "VideoLaVITT2VLong", + "VideoLaVITUnderstandingImage", + "VideoLaVITUnderstandingLoader", + "VideoLaVITUnderstandingVideo", + "VideoLaVITVideoDetokenizerLoader", + "VideoLaVITVideoReconstruction" + ], + { + "title_aux": "ComfyUI-LaVIT" + } + ], "https://github.com/chaojie/ComfyUI-LightGlue": [ [ "LightGlue Loader", @@ -5722,6 +20217,17 @@ "title_aux": "ComfyUI-RAFT" } ], + "https://github.com/chaojie/ComfyUI-SimDA": [ + [ + "SimDALoader", + "SimDARun", + "SimDATrain", + "VHS_FILENAMES_STRING_SimDA" + ], + { + "title_aux": "ComfyUI-SimDA" + } + ], "https://github.com/chaojie/ComfyUI-Trajectory": [ [ "Trajectory_Canvas_Tab" @@ -5734,8 +20240,20 @@ "title_aux": "ComfyUI-Trajectory" } ], + "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention": [ + [ + "StringList", + "VEXAGuidance", + "VEXALoader", + "VEXARun" + ], + { + "title_aux": "ComfyUI-Video-Editing-X-Attention" + } + ], "https://github.com/chaojie/ComfyUI-dust3r": [ [ + "CameraPoseVideo", "Dust3rLoader", "Dust3rRun" ], @@ -5779,6 +20297,7 @@ "chaosaiart_Any_Switch", "chaosaiart_Any_Switch_Big_Number", "chaosaiart_Any_Switch_small", + "chaosaiart_AutoNone_Switch_small", "chaosaiart_CheckpointLoader", "chaosaiart_CheckpointPrompt", "chaosaiart_CheckpointPrompt2", @@ -5828,6 +20347,7 @@ "chaosaiart_controlnet_weidgth", "chaosaiart_convert", "chaosaiart_convert_Prompt", + "chaosaiart_deepseek_fix", "chaosaiart_forPreview", "chaosaiart_image_loop", "chaosaiart_img2gif", @@ -5851,6 +20371,160 @@ "title_aux": "Chaosaiart-Nodes" } ], + "https://github.com/charlyad142/ComfyUI_Charly_FitToAspectNode": [ + [ + "Charly FitToAspectNode" + ], + { + "title_aux": "ComfyUI Charly FitToAspectNode" + } + ], + "https://github.com/charlyad142/ComfyUI_bfl_api_pro_nodes": [ + [ + "BFL Canny Control", + "BFL Depth Control", + "BFL Flux Kontext", + "BFL Flux Ultra", + "BFL Image Expander", + "BFL Image Generator", + "BFL Inpainting" + ], + { + "title_aux": "ComfyUI BFL API Pro Nodes" + } + ], + "https://github.com/chaserhkj/ComfyUI-Chaser-nodes": [ + [ + "EvalFloatExpr", + "EvalIntExpr", + "LoadImageFromWebDAV", + "UploadImagesToWebDAV", + "UploadWebMToWebDAV" + ], + { + "title_aux": "Chaser's Custom Nodes" + } + ], + "https://github.com/checkbins/checkbin-comfy": [ + [ + "Checkbin Get Image Bin", + "Checkbin Get String Bin", + "Checkbin Save Image Bin", + "Checkbin Save String Bin", + "Checkbin Start Run", + "Checkbin Submit Bin" + ], + { + "title_aux": "checkbin-comfy" + } + ], + "https://github.com/chenbaiyujason/ComfyUI_StepFun": [ + [ + "CombineStrings", + "JSONParser", + "StepFunClient", + "TextImageChat", + "VideoChat", + "VideoFileUploader" + ], + { + "title_aux": "ComfyUI-SCStepFun" + } + ], + "https://github.com/chenlongming/ComfyUI_Spectral": [ + [ + "Calculate", + "KMeans", + "LoadEnvi", + "LoadSpectral", + "Plot" + ], + { + "title_aux": "ComfyUI_Spectral" + } + ], + "https://github.com/chenpipi0807/ComfyUI-Index-TTS": [ + [ + "AudioCleanupNode", + "IndexTTSNode", + "IndexTTSProNode", + "NovelTextStructureNode", + "TimbreAudioLoader" + ], + { + "author": "ComfyUI-Index-TTS", + "description": "ComfyUI\u63a5\u53e3\u7684\u5de5\u4e1a\u7ea7\u96f6\u6837\u672c\u6587\u672c\u5230\u8bed\u97f3\u5408\u6210\u7cfb\u7edf", + "title": "IndexTTS for ComfyUI", + "title_aux": "ComfyUI-Index-TTS" + } + ], + "https://github.com/chenpipi0807/ComfyUI_NSFW_Godie": [ + [ + "NSFWFilterNode" + ], + { + "title_aux": "ComfyUI NSFW Filter" + } + ], + "https://github.com/chenpipi0807/Comfyui-Qwen-image-edit-CharacterConsistency": [ + [ + "TextEncodeQwenImageEditEnhanced" + ], + { + "title_aux": "Comfyui-Qwen-image-edit-CharacterConsistency" + } + ], + "https://github.com/chenpipi0807/PIP_ArtisticWords": [ + [ + "PIP Artistic Text Generator", + "PIP ArtisticWords Fusion", + "PIP ColorPicker", + "PIP SVG Recorder", + "PIP Text Preview", + "PIPAdvancedColorAnalyzer", + "PIPColorPicker", + "PIPColorWheel" + ], + { + "title_aux": "PIP Artistic Words for ComfyUI" + } + ], + "https://github.com/cherninlab/logo-generator-comfyui": [ + [ + "GoogleFontsLogo" + ], + { + "title_aux": "Logo Generator Node for ComfyUI" + } + ], + "https://github.com/chesnokovivan/ComfyUI-Novakid": [ + [ + "Novakid Styler" + ], + { + "title_aux": "ComfyUI-Novakid" + } + ], + "https://github.com/chflame163/ComfyUI_CatVTON_Wrapper": [ + [ + "CatVTONWrapper" + ], + { + "author": "chflame", + "description": "CatVTON warpper for ComfyUI", + "nickname": "CatVTON_Wrapper", + "title": "CatVTON_Wrapper", + "title_aux": "ComfyUI_CatVTON_Wrapper" + } + ], + "https://github.com/chflame163/ComfyUI_CogView4_Wrapper": [ + [ + "CogView4" + ], + { + "title_aux": "ComfyUI_CogView4_Wrapper" + } + ], "https://github.com/chflame163/ComfyUI_FaceSimilarity": [ [ "Face Similarity" @@ -5859,103 +20533,277 @@ "title_aux": "ComfyUI Face Similarity" } ], + "https://github.com/chflame163/ComfyUI_Janus_Wrapper": [ + [ + "JanusImage2Text", + "JanusTextToImage", + "LoadJanusModel" + ], + { + "title_aux": "ComfyUI_Janus_Wrapper" + } + ], "https://github.com/chflame163/ComfyUI_LayerStyle": [ [ + "LayerColor: AutoAdjust", + "LayerColor: AutoAdjustV2", "LayerColor: AutoBrightness", "LayerColor: Brightness & Contrast", + "LayerColor: BrightnessContrastV2", "LayerColor: Color of Shadow & Highlight", "LayerColor: ColorAdapter", + "LayerColor: ColorBalance", + "LayerColor: ColorTemperature", + "LayerColor: ColorofShadowHighlightV2", "LayerColor: Exposure", "LayerColor: Gamma", "LayerColor: HSV", "LayerColor: LAB", "LayerColor: LUT Apply", + "LayerColor: Levels", + "LayerColor: Negative", "LayerColor: RGB", "LayerColor: YUV", + "LayerFilter: AddGrain", "LayerFilter: ChannelShake", "LayerFilter: ColorMap", "LayerFilter: Film", + "LayerFilter: FilmV2", "LayerFilter: GaussianBlur", + "LayerFilter: GaussianBlurV2", "LayerFilter: HDREffects", + "LayerFilter: HalfTone", "LayerFilter: LightLeak", "LayerFilter: MotionBlur", "LayerFilter: Sharp & Soft", "LayerFilter: SkinBeauty", "LayerFilter: SoftLight", "LayerFilter: WaterColor", - "LayerMask: BiRefNetUltra", + "LayerMask: BlendIf Mask", "LayerMask: CreateGradientMask", + "LayerMask: ImageToMask", + "LayerMask: LoadSegformerModel", "LayerMask: MaskBoxDetect", - "LayerMask: MaskByDifferent", + "LayerMask: MaskBoxExtend", + "LayerMask: MaskByColor", "LayerMask: MaskEdgeShrink", "LayerMask: MaskEdgeUltraDetail", "LayerMask: MaskEdgeUltraDetail V2", "LayerMask: MaskGradient", + "LayerMask: MaskGrain", "LayerMask: MaskGrow", "LayerMask: MaskInvert", "LayerMask: MaskMotionBlur", "LayerMask: MaskPreview", "LayerMask: MaskStroke", - "LayerMask: PersonMaskUltra", - "LayerMask: PersonMaskUltra V2", "LayerMask: PixelSpread", "LayerMask: RemBgUltra", "LayerMask: RmBgUltra V2", - "LayerMask: SegmentAnythingUltra", - "LayerMask: SegmentAnythingUltra V2", + "LayerMask: SegformerB2ClothesUltra", + "LayerMask: SegformerClothesPipelineLoader", + "LayerMask: SegformerClothesSetting", + "LayerMask: SegformerFashionPipelineLoader", + "LayerMask: SegformerFashionSetting", + "LayerMask: SegformerUltraV2", + "LayerMask: SegformerUltraV3", "LayerMask: Shadow & Highlight Mask", + "LayerMask: ShadowHighlightMaskV2", "LayerStyle: ColorOverlay", + "LayerStyle: ColorOverlay V2", "LayerStyle: DropShadow", + "LayerStyle: DropShadow V2", + "LayerStyle: DropShadow V3", + "LayerStyle: Gradient Map", "LayerStyle: GradientOverlay", + "LayerStyle: GradientOverlay V2", "LayerStyle: InnerGlow", + "LayerStyle: InnerGlow V2", "LayerStyle: InnerShadow", + "LayerStyle: InnerShadow V2", "LayerStyle: OuterGlow", + "LayerStyle: OuterGlow V2", "LayerStyle: Stroke", + "LayerStyle: Stroke V2", + "LayerUtility: AnyRerouter", + "LayerUtility: BatchSelector", + "LayerUtility: Boolean", + "LayerUtility: BooleanOperator", + "LayerUtility: BooleanOperatorV2", + "LayerUtility: CheckMask", + "LayerUtility: CheckMaskV2", + "LayerUtility: ChoiceTextPreset", "LayerUtility: ColorImage", "LayerUtility: ColorImage V2", + "LayerUtility: ColorName", "LayerUtility: ColorPicker", "LayerUtility: CropBoxResolve", "LayerUtility: CropByMask", "LayerUtility: CropByMask V2", + "LayerUtility: CropByMask V3", "LayerUtility: ExtendCanvas", - "LayerUtility: GetColorTone", - "LayerUtility: GetColorToneV2", + "LayerUtility: ExtendCanvasV2", + "LayerUtility: Float", + "LayerUtility: FluxKontextImageScale", "LayerUtility: GetImageSize", + "LayerUtility: GetMainColors", + "LayerUtility: GetMainColorsV2", "LayerUtility: GradientImage", "LayerUtility: GradientImage V2", - "LayerUtility: ImageAutoCrop", - "LayerUtility: ImageAutoCrop V2", + "LayerUtility: GrayValue", + "LayerUtility: HLFrequencyDetailRestore", + "LayerUtility: HSV Value", + "LayerUtility: ICMask", + "LayerUtility: ICMaskCropBack", + "LayerUtility: If", "LayerUtility: ImageBlend", + "LayerUtility: ImageBlend V2", "LayerUtility: ImageBlendAdvance", + "LayerUtility: ImageBlendAdvance V2", + "LayerUtility: ImageBlendAdvance V3", "LayerUtility: ImageChannelMerge", "LayerUtility: ImageChannelSplit", "LayerUtility: ImageCombineAlpha", "LayerUtility: ImageHub", "LayerUtility: ImageMaskScaleAs", + "LayerUtility: ImageMaskScaleAsV2", "LayerUtility: ImageOpacity", + "LayerUtility: ImageReel", + "LayerUtility: ImageReelComposit", "LayerUtility: ImageRemoveAlpha", - "LayerUtility: ImageRewardFilter", "LayerUtility: ImageScaleByAspectRatio", "LayerUtility: ImageScaleByAspectRatio V2", "LayerUtility: ImageScaleRestore", "LayerUtility: ImageScaleRestore V2", "LayerUtility: ImageShift", - "LayerUtility: LaMa", + "LayerUtility: ImageTaggerSave", + "LayerUtility: ImageTaggerSaveV2", + "LayerUtility: Integer", "LayerUtility: LayerImageTransform", "LayerUtility: LayerMaskTransform", + "LayerUtility: LoadImagesFromPath", + "LayerUtility: LoadVQAModel", + "LayerUtility: NameToColor", + "LayerUtility: NumberCalculator", + "LayerUtility: NumberCalculatorV2", "LayerUtility: PrintInfo", - "LayerUtility: PromptEmbellish", - "LayerUtility: PromptTagger", + "LayerUtility: PurgeVRAM", + "LayerUtility: PurgeVRAM V2", + "LayerUtility: QueueStop", + "LayerUtility: RGB Value", + "LayerUtility: RandomGenerator", + "LayerUtility: RandomGeneratorV2", "LayerUtility: RestoreCropBox", + "LayerUtility: RoundedRectangle", + "LayerUtility: Seed", "LayerUtility: SimpleTextImage", + "LayerUtility: String", + "LayerUtility: StringCondition", + "LayerUtility: SwitchCase", + "LayerUtility: TextBox", "LayerUtility: TextImage", + "LayerUtility: TextImage V2", "LayerUtility: TextJoin", + "LayerUtility: TextJoinV2", + "LayerUtility: TextPreseter", + "LayerUtility: VQAPrompt", "LayerUtility: XY to Percent" ], { + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", "title_aux": "ComfyUI Layer Style" } ], + "https://github.com/chflame163/ComfyUI_LayerStyle_Advance": [ + [ + "LayerMask: BBoxJoin", + "LayerMask: BenUltra", + "LayerMask: BiRefNetUltra", + "LayerMask: BiRefNetUltraV2", + "LayerMask: DrawBBoxMask", + "LayerMask: DrawBBoxMaskV2", + "LayerMask: EVFSAMUltra", + "LayerMask: Florence2Ultra", + "LayerMask: HumanPartsUltra", + "LayerMask: LoadBenModel", + "LayerMask: LoadBiRefNetModel", + "LayerMask: LoadBiRefNetModelV2", + "LayerMask: LoadFlorence2Model", + "LayerMask: LoadSAM2Model", + "LayerMask: LoadSegmentAnythingModels", + "LayerMask: MaskByDifferent", + "LayerMask: MediapipeFacialSegment", + "LayerMask: ObjectDetectorFL2", + "LayerMask: ObjectDetectorGemini", + "LayerMask: ObjectDetectorGeminiV2", + "LayerMask: ObjectDetectorMask", + "LayerMask: ObjectDetectorYOLO8", + "LayerMask: ObjectDetectorYOLOWorld", + "LayerMask: PersonMaskUltra", + "LayerMask: PersonMaskUltra V2", + "LayerMask: SAM2Ultra", + "LayerMask: SAM2UltraV2", + "LayerMask: SAM2VideoUltra", + "LayerMask: SegmentAnythingUltra", + "LayerMask: SegmentAnythingUltra V2", + "LayerMask: SegmentAnythingUltra V3", + "LayerMask: TransparentBackgroundUltra", + "LayerMask: YoloV8Detect", + "LayerUtility: AddBlindWaterMark", + "LayerUtility: Collage", + "LayerUtility: CreateQRCode", + "LayerUtility: DecodeQRCode", + "LayerUtility: DeepSeekAPI", + "LayerUtility: DeepSeekAPIV2", + "LayerUtility: Florence2Image2Prompt", + "LayerUtility: Gemini", + "LayerUtility: GeminiImageEdit", + "LayerUtility: GeminiV2", + "LayerUtility: GetColorTone", + "LayerUtility: GetColorToneV2", + "LayerUtility: ImageAutoCrop", + "LayerUtility: ImageAutoCrop V2", + "LayerUtility: ImageAutoCrop V3", + "LayerUtility: ImageRewardFilter", + "LayerUtility: JimengI2IAPI", + "LayerUtility: JoyCaption2", + "LayerUtility: JoyCaption2ExtraOptions", + "LayerUtility: JoyCaption2Split", + "LayerUtility: JoyCaptionBeta1", + "LayerUtility: JoyCaptionBeta1ExtraOptions", + "LayerUtility: LaMa", + "LayerUtility: LlamaVision", + "LayerUtility: LoadJoyCaption2Model", + "LayerUtility: LoadJoyCaptionBeta1Model", + "LayerUtility: LoadPSD", + "LayerUtility: LoadSmolLM2Model", + "LayerUtility: LoadSmolVLMModel", + "LayerUtility: PhiPrompt", + "LayerUtility: PromptEmbellish", + "LayerUtility: PromptTagger", + "LayerUtility: QWenImage2Prompt", + "LayerUtility: SD3NegativeConditioning", + "LayerUtility: SaveImagePlus", + "LayerUtility: SaveImagePlusV2", + "LayerUtility: ShowBlindWaterMark", + "LayerUtility: SmolLM2", + "LayerUtility: SmolVLM", + "LayerUtility: UserPromptGeneratorReplaceWord", + "LayerUtility: UserPromptGeneratorTxt2ImgPrompt", + "LayerUtility: UserPromptGeneratorTxt2ImgPromptWithReference", + "LayerUtility: ZhipuGLM4", + "LayerUtility: ZhipuGLM4V" + ], + { + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", + "title_aux": "ComfyUI_LayerStyle_Advance" + } + ], "https://github.com/chflame163/ComfyUI_MSSpeech_TTS": [ [ "Input Trigger", @@ -5967,6 +20815,14 @@ "title_aux": "ComfyUI_MSSpeech_TTS" } ], + "https://github.com/chflame163/ComfyUI_OmniGen_Wrapper": [ + [ + "dzOmniGenWrapper" + ], + { + "title_aux": "ComfyUI_OmniGen_Wrapper" + } + ], "https://github.com/chflame163/ComfyUI_WordCloud": [ [ "ComfyWordCloud", @@ -5981,6 +20837,7 @@ [ "ConditionText", "ConditionTextMulti", + "ConditionTextPrompts", "ImageAddText", "ImageSimpleResize", "ImageSizeInfo", @@ -6012,28 +20869,130 @@ "title_aux": "Comfy-Topaz" } ], - "https://github.com/chrisgoringe/cg-image-picker": [ + "https://github.com/chou18194766xx/comfyui-EncryptSave": [ [ - "Preview Chooser", - "Preview Chooser Fabric" + "EncryptSaveAES" + ], + { + "title_aux": "comfyui-EncryptSave" + } + ], + "https://github.com/chou18194766xx/comfyui_EncryptPreview": [ + [ + "EncryptPreviewImage" + ], + { + "title_aux": "comfyui_EncryptPreview" + } + ], + "https://github.com/chri002/ComfyUI_depthMapOperation": [ + [ + "CleanPoints (KDTree)", + "CloudPointsInfo", + "CubeLimit", + "Export to PLY", + "ImageToPoints", + "ImageToPoints (Legacy)", + "ImageToPoints (Torch)", + "Import PLY", + "InterpolatePoints (KDTree)", + "PointsToImage (Orthographic)", + "PointsToImage (Projection)", + "PointsToImage advance (DEBUG)", + "PointsToImage advance (Orthographic)", + "PointsToImage advance (Projection)", + "TransformPoints" + ], + { + "title_aux": "ComfyUI_depthMapOperation" + } + ], + "https://github.com/chris-arsenault/ComfyUI-AharaNodes": [ + [ + "FrameSegmenter", + "FrameSegmenterIndexer", + "RepeatSampler", + "RepeatSamplerConfigNode", + "RepeatSamplerConfigPatchLatent", + "RepeatSamplerConfigPatchModel" + ], + { + "title_aux": "ComfyUI-AharaNodes" + } + ], + "https://github.com/chris-the-wiz/EmbeddingsCurveEditor_ComfyUI": [ + [ + "Embeddings Curve Editor" + ], + { + "title_aux": "EmbeddingsCurveEditor_ComfyUI" + } + ], + "https://github.com/chrisfreilich/virtuoso-nodes": [ + [ + "BlackAndWhite", + "BlendIf", + "BlendModes", + "ColorBalance", + "ColorBalanceAdvanced", + "GaussianBlur", + "GaussianBlurDepth", + "HueSat", + "HueSatAdvanced", + "LensBlur", + "LensBlurDepth", + "Levels", + "MergeRGB", + "MotionBlur", + "MotionBlurDepth", + "SelectiveColor", + "SolidColor", + "SolidColorHSV", + "SolidColorRGB", + "SplitRGB" + ], + { + "author": "Chris Freilich", + "description": "This extension provides a \"Levels\" node.", + "nickname": "Virtuoso Pack - Contrast", + "title": "Virtuoso Pack - Contrast", + "title_aux": "Virtuoso Nodes for ComfyUI" + } + ], + "https://github.com/chrisgoringe/cg-image-filter": [ + [ + "Any List to String", + "Batch from Image List", + "Image Filter", + "Image List From Batch", + "Mask Image Filter", + "Masked Section", + "Pick from List", + "Split String by Commas", + "String List from Strings", + "String to Float", + "String to Int", + "Text Image Filter", + "Text Image Filter with Extras" ], { "author": "chrisgoringe", - "description": "Custom nodes that preview images and pause the workflow to allow the user to select one or more to progress", - "nickname": "Image Chooser", - "title": "Image Chooser", - "title_aux": "Image chooser" + "description": "A custom node that pauses the flow while you choose which image or images to pass on to the rest of the workflow. Simplified and improved version of cg-image-picker.", + "nickname": "Image Filter", + "title": "Image Filter", + "title_aux": "Image Filter" } ], - "https://github.com/chrisgoringe/cg-noise": [ + "https://github.com/chrisgoringe/cg-noisetools": [ [ - "Hijack", - "KSampler Advanced with Variations", - "KSampler with Variations", - "UnHijack" + "Batch Noise Simulate", + "Mix Noise", + "Seperable Batch Noise", + "Shape Noise", + "Split Sigmas with Rewind" ], { - "title_aux": "Variation seeds" + "title_aux": "Noise variation and batch noise tools" } ], "https://github.com/chrisgoringe/cg-use-everywhere": [ @@ -6045,6 +21004,197 @@ "title_aux": "Use Everywhere (UE Nodes)" } ], + "https://github.com/chrissy0/chris-comfyui-nodes": [ + [ + "PadImageSquare" + ], + { + "title_aux": "chris-comfyui-nodes" + } + ], + "https://github.com/christian-byrne/audio-separation-nodes-comfyui": [ + [ + "AudioCombine", + "AudioCrop", + "AudioGetTempo", + "AudioSeparation", + "AudioSpeedShift", + "AudioTempoMatch", + "AudioVideoCombine" + ], + { + "title_aux": "audio-separation-nodes-comfyui" + } + ], + "https://github.com/christian-byrne/claude-code-comfyui-nodes": [ + [ + "ClaudeCodeArguments", + "ClaudeCodeContext", + "ClaudeCodeExecute", + "ClaudeCodeMCP", + "ClaudeCodeMemory", + "ClaudeCodeReader", + "ClaudeCodeTools", + "ClaudeRedditScraper" + ], + { + "title_aux": "Claude Code ComfyUI Nodes" + } + ], + "https://github.com/christian-byrne/img2colors-comfyui-node": [ + [ + "bmy_Img2ColorNode" + ], + { + "author": "christian-byrne", + "description": "", + "nickname": "img2color", + "title": "Img2Color Node - Detect and describe color palettes in images", + "title_aux": "Img2color - Extract Colors from Image" + } + ], + "https://github.com/christian-byrne/img2txt-comfyui-nodes": [ + [ + "img2txt BLIP/Llava Multimodel Tagger" + ], + { + "author": "christian-byrne", + "title": "Img2Txt auto captioning", + "title_aux": "img2txt-comfyui-nodes" + } + ], + "https://github.com/christian-byrne/size-match-compositing-nodes": [ + [ + "Composite Alpha Layer", + "Size Match Images/Masks" + ], + { + "title_aux": "Node - Size Matcher" + } + ], + "https://github.com/christian-byrne/youtube-dl-comfyui": [ + [ + "YoutubeDL" + ], + { + "title_aux": "youtube-dl-comfyui" + } + ], + "https://github.com/chuchu114514/comfyui_proportion_solver": [ + [ + "ProportionSolver", + "ProportionSolverAdvanced" + ], + { + "title_aux": "comfyui_proportion_solver" + } + ], + "https://github.com/chuchu114514/comfyui_text_list_stepper": [ + [ + "TextListProcessor_Gemini" + ], + { + "title_aux": "comfyui_text_list_stepper" + } + ], + "https://github.com/chyer/Chye-ComfyUI-Toolset": [ + [ + "CYHARRHalationNode", + "CYHChromaticAberrationNode", + "CYHFilmGrainNode", + "CYHFolderFilenameBuilderNode", + "CYHGlobalColorGradingNode", + "CYHLatentFluxAspectRatio", + "CYHLatentPhoneAspectRatio", + "CYHLatentQwenAspectRatio", + "CYHLatentSDXLAspectRatio", + "CYHLatentSocialAspectRatio", + "CYHLatentVideoAspectRatio", + "CYHPreviewVideo", + "CYHResolutionMultiplierNode", + "CYHTextFileEditorNode", + "CYHTextFileLoaderNode", + "PromptEnhancer", + "PromptEnhancerEditable", + "PromptToolsSetup" + ], + { + "title_aux": "Chye ComfyUI Toolset" + } + ], + "https://github.com/ciga2011/ComfyUI-MarkItDown": [ + [ + "WIZ_AUDIO2MARKDOWN", + "WIZ_EXCEL2MARKDOWN", + "WIZ_HTML2MARKDOWN", + "WIZ_IMAGE2MARKDOWN", + "WIZ_IPYNB2MARKDOWN", + "WIZ_LLM_CLIENT", + "WIZ_MARKITDOWN", + "WIZ_PDF2MARKDOWN", + "WIZ_POWERPOINT2MARKDOWN", + "WIZ_WORD2MARKDOWN" + ], + { + "title_aux": "ComfyUI MarkItDown" + } + ], + "https://github.com/ciga2011/ComfyUI-Pollinations": [ + [ + "PollinationsNode" + ], + { + "title_aux": "ComfyUI Pollinations" + } + ], + "https://github.com/ciga2011/ComfyUI-PromptOptimizer": [ + [ + "PromptOptimizer" + ], + { + "title_aux": "ComfyUI Prompt Optimizer" + } + ], + "https://github.com/ciri/comfyui-model-downloader": [ + [ + "Auto Model Downloader", + "CivitAI Downloader", + "HF Downloader" + ], + { + "title_aux": "ComfyUI Model Downloader" + } + ], + "https://github.com/citronlegacy/ComfyUI-CitronNodes": [ + [ + "GetDateTime", + "nodes", + "project" + ], + { + "title_aux": "ComfyUI-CitronNodes" + } + ], + "https://github.com/city96/ComfyUI-GGUF": [ + [ + "CLIPLoaderGGUF", + "DualCLIPLoaderGGUF", + "QuadrupleCLIPLoaderGGUF", + "TripleCLIPLoaderGGUF", + "UnetLoaderGGUF", + "UnetLoaderGGUFAdvanced" + ], + { + "preemptions": [ + "CLIPLoaderGGUF", + "DualCLIPLoaderGGUF", + "TripleCLIPLoaderGGUF", + "UnetLoaderGGUF", + "UnetLoaderGGUFAdvanced" + ], + "title_aux": "ComfyUI-GGUF" + } + ], "https://github.com/city96/ComfyUI_ColorMod": [ [ "CV2Tonemap", @@ -6056,6 +21206,7 @@ "ColorModEdges", "ColorModMove", "ColorModPivot", + "ColorspaceConvert", "HDRCreate", "HDRExposureFusion", "LoadImageHDR", @@ -6085,13 +21236,32 @@ "DiTCondLabelEmpty", "DiTCondLabelSelect", "DitCheckpointLoader", + "EmptyDCAELatentImage", + "EmptySanaLatentImage", "ExtraVAELoader", + "GemmaLoader", + "GemmaTextEncode", + "HYDiTCheckpointLoader", + "HYDiTSrcSizeCond", + "HYDiTTextEncode", + "HYDiTTextEncodeSimple", + "HYDiTTextEncoderLoader", + "MiaoBiCLIPLoader", + "MiaoBiDiffusersLoader", + "OverrideCLIPDevice", + "OverrideVAEDevice", "PixArtCheckpointLoader", + "PixArtCheckpointLoaderSimple", "PixArtControlNetCond", "PixArtLoraLoader", "PixArtResolutionCond", "PixArtResolutionSelect", + "PixArtT5FromSD3CLIP", "PixArtT5TextEncode", + "SanaCheckpointLoader", + "SanaResolutionCond", + "SanaResolutionSelect", + "SanaTextEncode", "T5TextEncode", "T5v11Loader" ], @@ -6120,15 +21290,6 @@ "title_aux": "ComfyUI_NetDist" } ], - "https://github.com/city96/SD-Advanced-Noise": [ - [ - "LatentGaussianNoise", - "MathEncode" - ], - { - "title_aux": "SD-Advanced-Noise" - } - ], "https://github.com/city96/SD-Latent-Interposer": [ [ "LatentInterposer" @@ -6145,22 +21306,287 @@ "title_aux": "SD-Latent-Upscaler" } ], - "https://github.com/civitai/comfy-nodes": [ + "https://github.com/civen-cn/ComfyUI-PaddleOcr": [ + [ + "OcrBlur", + "OcrBoxMask", + "OcrImageText" + ], + { + "title_aux": "ComfyUI-PaddleOcr" + } + ], + "https://github.com/civen-cn/ComfyUI-Whisper-Translator": [ + [ + "Add Subtitles To FramesX", + "Apply WhisperX" + ], + { + "title_aux": "ComfyUI Whisper Translator" + } + ], + "https://github.com/civitai/civitai_comfy_nodes": [ [ "CivitAI_Checkpoint_Loader", "CivitAI_Lora_Loader" ], { - "title_aux": "comfy-nodes" + "title_aux": "Civitai Comfy Nodes" + } + ], + "https://github.com/cjj198909/comfy_openai_image_api_azure": [ + [ + "OpenAI Image API" + ], + { + "title_aux": "OpenAI/Azure OpenAI Image API" + } + ], + "https://github.com/claptrap0/ComfyUI_LLM_Hub": [ + [ + "Generated_Output", + "LLM_Hub", + "LLM_Settings" + ], + { + "title_aux": "ComfyUI_LLM_Hub" + } + ], + "https://github.com/claussteinmassl/ComfyUI-CS-CustomNodes": [ + [ + "CS Transform" + ], + { + "title_aux": "CS Transform Node for ComfyUI" + } + ], + "https://github.com/cleanlii/comfyui-dalle-integration": [ + [ + "DalleImageEdit", + "DalleImageGeneration", + "DalleImageVariation" + ], + { + "title_aux": "DalleImageNodes - OpenAI DALL\u00b7E Nodes for ComfyUI" + } + ], + "https://github.com/clhui/ComfyUi-clh-Tool": [ + [ + "EchartGraph_clh", + "EchartOptionByPath_clh", + "EchartOption_clh", + "INTConstant_clh", + "JavaScript_clh", + "JoinStringMulti_clh", + "MathExpression_clh", + "SetRedis|clh", + "ShowText_clh", + "SomethingToString_clh", + "String2FatLabels_clh", + "String2Image_clh", + "StringConstant_clh" + ], + { + "author": "Dr.Lt.Data", + "description": "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler.", + "nickname": "CLH Simple Tool", + "title": "CLH simple Tool", + "title_aux": "Clh Tool for ComfyUI" + } + ], + "https://github.com/clouddreamfly/ComfyUI-PromptWrapper": [ + [ + "CombinePrompt", + "CustomPrompt", + "DrawStylePrompt", + "GeneratePrompt", + "InputPrompt", + "LightPrompt", + "MultiCombinePrompt", + "MultiReplacePrompt", + "NegativePrompt", + "PortraitCosmeticPrompt", + "PortraitFashionPrompt", + "PortraitPosePrompt", + "PortraitPrompt", + "PortraitSkinPrompt", + "PreviewPrompt", + "PromptTranslation", + "RandomLinePrompt", + "RandomsPrompt", + "RandomsWeightPrompt", + "ReplacePrompt", + "SavePrompt", + "SceneryPrompt" + ], + { + "title_aux": "ComfyUI-PromptWrapper" + } + ], + "https://github.com/cloudkoala/comfyui-koala": [ + [ + "AspectRatioLatentNode", + "SaveImageAnywhere", + "SaveMeshAnywhere" + ], + { + "title_aux": "comfyui-koala" + } + ], + "https://github.com/cluny85/ComfyUI-Scripting-Tools": [ + [ + "EnhancedUUIDGeneratorNode", + "UUIDGeneratorNode" + ], + { + "title_aux": "ComfyUI-Scripting-Tools" + } + ], + "https://github.com/cmdicely/simple_image_to_palette": [ + [ + "Example" + ], + { + "title_aux": "Simple Image To Palette" + } + ], + "https://github.com/cnnmmd/comfyui_xoxxox_cnnmmd": [ + [ + "Xoxxox_CnvDat", + "Xoxxox_CnvSen", + "Xoxxox_CnvTxt", + "Xoxxox_CnvVce", + "Xoxxox_DlyGet", + "Xoxxox_DlySet", + "Xoxxox_GenImg", + "Xoxxox_GenTxt", + "Xoxxox_GetAud", + "Xoxxox_GetDir", + "Xoxxox_GetDis", + "Xoxxox_GetImg", + "Xoxxox_GetMem", + "Xoxxox_GetTxt", + "Xoxxox_IniFlw", + "Xoxxox_LogNum", + "Xoxxox_LogTxt", + "Xoxxox_PutTxt", + "Xoxxox_RcvVce", + "Xoxxox_RepTxt", + "Xoxxox_RunFlw", + "Xoxxox_SenSlc", + "Xoxxox_SenTxt", + "Xoxxox_SetAud", + "Xoxxox_SetDir", + "Xoxxox_SetDis", + "Xoxxox_SetImg", + "Xoxxox_SetMem", + "Xoxxox_SetNil", + "Xoxxox_SetTxt", + "Xoxxox_SndVce", + "Xoxxox_SwtImg", + "Xoxxox_TrnBak" + ], + { + "title_aux": "cnnmmd: comfyui_xoxxox_cnnmmd" + } + ], + "https://github.com/codeprimate/ComfyUI-MaskContourProcessor": [ + [ + "MaskContourProcessor" + ], + { + "title_aux": "ComfyUI Mask Contour Processor" + } + ], + "https://github.com/comfy-deploy/comfyui-llm-toolkit": [ + [ + "APIKeyInput", + "AudioDurationFrames", + "BFLProviderNode", + "BananaTaskGenerator", + "BlankImage", + "CheckImageEmpty", + "ConfigGenerateImage", + "ConfigGenerateImageBFL", + "ConfigGenerateImageFluxDev", + "ConfigGenerateImageGemini", + "ConfigGenerateImageOpenAI", + "ConfigGenerateImagePortrait", + "ConfigGenerateImageSeedanceEditV3", + "ConfigGenerateMusic", + "ConfigGenerateSpeech", + "ConfigGenerateVideo", + "ConfigGenerateVideoHailuoI2VPro", + "ConfigGenerateVideoHailuoI2VStandard", + "ConfigGenerateVideoHailuoT2VPro", + "ConfigGenerateVideoHailuoT2VStandard", + "ConfigGenerateVideoKlingI2VMaster", + "ConfigGenerateVideoKlingI2VPro", + "ConfigGenerateVideoKlingI2VStandard", + "ConfigGenerateVideoSeedanceProI2V", + "ConfigGenerateVideoSeedanceProT2V", + "ConfigGenerateVideoVeo2I2V", + "ConfigGenerateVideoVeo2T2V", + "ConfigGenerateVideoVeo3", + "ConfigGenerateVideoVeo3Fast", + "Display_Text", + "FramesToSeconds", + "GeminiProviderNode", + "GenerateImage", + "GenerateLyrics", + "GenerateMusic", + "GenerateSpeech", + "GenerateVideo", + "GroqProviderNode", + "HighLowSNR", + "ImageComparer", + "JoinStringsMulti", + "LLMPromptManager", + "LLMToolkitProviderSelector", + "LLMToolkitTextGenerator", + "LLMToolkitTextGeneratorStream", + "LoadAudioFromPath", + "LoadVideoFromPath", + "LocalTransformersProviderNode", + "LocalVLLMProviderNode", + "OpenAIProviderNode", + "PlayRandomSound", + "PreviewImageLogic", + "PreviewOutputs", + "PreviewVideo", + "PromptManager", + "ResolutionSelector", + "StylePromptGenerator", + "SunoProviderSelector", + "SwitchAny", + "SwitchAnyRoute", + "SwitchAnyRoute_wANY", + "SwitchAny_wANY", + "SystemPromptTaskGenerator", + "TestAPIKeyContext", + "UpscaleVideo", + "WaveSpeedProviderNode" + ], + { + "author": "ComfyDeploy", + "description": "llm toolkit", + "nickname": "llm_toolkit", + "title": "llm toolkit", + "title_aux": "ComfyUI LLM Toolkit" } ], "https://github.com/comfyanonymous/ComfyUI": [ [ "AddNoise", "AlignYourStepsScheduler", + "AudioEncoderEncode", + "AudioEncoderLoader", "BasicGuider", "BasicScheduler", + "BetaSamplingScheduler", "CFGGuider", + "CFGNorm", + "CFGZeroStar", "CLIPLoader", "CLIPMergeAdd", "CLIPMergeSimple", @@ -6169,6 +21595,12 @@ "CLIPSetLastLayer", "CLIPTextEncode", "CLIPTextEncodeControlnet", + "CLIPTextEncodeFlux", + "CLIPTextEncodeHiDream", + "CLIPTextEncodeHunyuanDiT", + "CLIPTextEncodeLumina2", + "CLIPTextEncodePixArtAlpha", + "CLIPTextEncodeSD3", "CLIPTextEncodeSDXL", "CLIPTextEncodeSDXLRefiner", "CLIPVisionEncode", @@ -6182,13 +21614,19 @@ "ConditioningConcat", "ConditioningSetArea", "ConditioningSetAreaPercentage", + "ConditioningSetAreaPercentageVideo", "ConditioningSetAreaStrength", "ConditioningSetMask", "ConditioningSetTimestepRange", + "ConditioningStableAudio", "ConditioningZeroOut", "ControlNetApply", "ControlNetApplyAdvanced", + "ControlNetApplySD3", + "ControlNetInpaintingAliMamaApply", "ControlNetLoader", + "CosmosImageToVideoLatent", + "CosmosPredict2ImageToVideoLatent", "CropMask", "DiffControlNetLoader", "DifferentialDiffusion", @@ -6196,36 +21634,71 @@ "DisableNoise", "DualCFGGuider", "DualCLIPLoader", + "EmptyCosmosLatentVideo", + "EmptyHunyuanLatentVideo", "EmptyImage", + "EmptyLTXVLatentVideo", + "EmptyLatentAudio", + "EmptyLatentHunyuan3Dv2", "EmptyLatentImage", + "EmptyMochiLatentVideo", + "EmptySD3LatentImage", "ExponentialScheduler", + "ExtendIntermediateSigmas", "FeatherMask", "FlipSigmas", + "FluxDisableGuidance", + "FluxGuidance", + "FluxKontextImageScale", + "FluxKontextMaxImageNode", + "FluxKontextMultiReferenceLatentMethod", + "FluxKontextProImageNode", + "FluxProCannyNode", + "FluxProDepthNode", + "FluxProExpandNode", + "FluxProFillNode", + "FluxProImageNode", + "FluxProUltraImageNode", + "FreSca", "FreeU", "FreeU_V2", + "GITSScheduler", "GLIGENLoader", "GLIGENTextBoxApply", + "GeminiImageNode", + "GeminiInputFiles", + "GeminiNode", + "GetImageSize", "GrowMask", + "Hunyuan3Dv2Conditioning", + "Hunyuan3Dv2ConditioningMultiView", + "HunyuanImageToVideo", "HyperTile", "HypernetworkLoader", + "ImageAddNoise", "ImageBatch", "ImageBlend", "ImageBlur", "ImageColorToMask", "ImageCompositeMasked", "ImageCrop", + "ImageFlip", "ImageFromBatch", "ImageInvert", "ImageOnlyCheckpointLoader", "ImageOnlyCheckpointSave", "ImagePadForOutpaint", "ImageQuantize", + "ImageRGBToYUV", + "ImageRotate", "ImageScale", "ImageScaleBy", "ImageScaleToTotalPixels", "ImageSharpen", + "ImageStitch", "ImageToMask", "ImageUpscaleWithModel", + "ImageYUVToRGB", "InpaintModelConditioning", "InstructPixToPixConditioning", "InvertMask", @@ -6234,54 +21707,176 @@ "KSamplerAdvanced", "KSamplerSelect", "KarrasScheduler", + "KlingCameraControlI2VNode", + "KlingCameraControlT2VNode", + "KlingCameraControls", + "KlingDualCharacterVideoEffectNode", + "KlingImage2VideoNode", + "KlingImageGenerationNode", + "KlingLipSyncAudioToVideoNode", + "KlingLipSyncTextToVideoNode", + "KlingSingleImageVideoEffectNode", + "KlingStartEndFrameNode", + "KlingTextToVideoNode", + "KlingVideoExtendNode", + "KlingVirtualTryOnNode", + "LTXVAddGuide", + "LTXVConditioning", + "LTXVCropGuides", + "LTXVImgToVideo", + "LTXVPreprocess", + "LTXVScheduler", + "LaplaceScheduler", "LatentAdd", + "LatentApplyOperation", + "LatentApplyOperationCFG", "LatentBatch", "LatentBatchSeedBehavior", "LatentBlend", "LatentComposite", "LatentCompositeMasked", + "LatentConcat", "LatentCrop", + "LatentCut", "LatentFlip", "LatentFromBatch", "LatentInterpolate", "LatentMultiply", + "LatentOperationSharpen", + "LatentOperationTonemapReinhard", "LatentRotate", "LatentSubtract", "LatentUpscale", "LatentUpscaleBy", + "Load3D", + "Load3DAnimation", + "LoadAudio", "LoadImage", "LoadImageMask", + "LoadImageOutput", + "LoadImageSetFromFolderNode", + "LoadImageTextSetFromFolderNode", "LoadLatent", "LoraLoader", "LoraLoaderModelOnly", + "LoraModelLoader", + "LoraSave", + "LossGraphNode", + "LotusConditioning", + "LumaConceptsNode", + "LumaImageModifyNode", + "LumaImageNode", + "LumaImageToVideoNode", + "LumaReferenceNode", + "LumaVideoNode", + "Mahiro", "MaskComposite", + "MaskPreview", "MaskToImage", + "MinimaxHailuoVideoNode", + "MinimaxImageToVideoNode", + "MinimaxSubjectToVideoNode", + "MinimaxTextToVideoNode", + "ModelComputeDtype", "ModelMergeAdd", + "ModelMergeAuraflow", "ModelMergeBlocks", + "ModelMergeCosmos14B", + "ModelMergeCosmos7B", + "ModelMergeCosmosPredict2_14B", + "ModelMergeCosmosPredict2_2B", + "ModelMergeFlux1", + "ModelMergeLTXV", + "ModelMergeMochiPreview", + "ModelMergeQwenImage", "ModelMergeSD1", "ModelMergeSD2", + "ModelMergeSD35_Large", + "ModelMergeSD3_2B", "ModelMergeSDXL", "ModelMergeSimple", "ModelMergeSubtract", + "ModelMergeWAN2_1", + "ModelPatchLoader", + "ModelSamplingAuraFlow", "ModelSamplingContinuousEDM", + "ModelSamplingContinuousV", "ModelSamplingDiscrete", + "ModelSamplingFlux", + "ModelSamplingLTXV", + "ModelSamplingSD3", "ModelSamplingStableCascade", + "ModelSave", + "MoonvalleyImg2VideoNode", + "MoonvalleyTxt2VideoNode", + "MoonvalleyVideo2VideoNode", "Morphology", + "OpenAIChatConfig", + "OpenAIChatNode", + "OpenAIDalle2", + "OpenAIDalle3", + "OpenAIGPTImage1", + "OpenAIInputFiles", + "OptimalStepsScheduler", "PatchModelAddDownscale", "PerpNeg", "PerpNegGuider", "PerturbedAttentionGuidance", "PhotoMakerEncode", "PhotoMakerLoader", + "PikaImageToVideoNode2_2", + "PikaScenesV2_2", + "PikaStartEndFrameNode2_2", + "PikaTextToVideoNode2_2", + "Pikadditions", + "Pikaffects", + "Pikaswaps", + "PixverseImageToVideoNode", + "PixverseTemplateNode", + "PixverseTextToVideoNode", + "PixverseTransitionVideoNode", "PolyexponentialScheduler", "PorterDuffImageComposite", + "Preview3D", + "Preview3DAnimation", + "PreviewAny", + "PreviewAudio", "PreviewImage", + "QuadrupleCLIPLoader", + "QwenImageDiffsynthControlnet", "RandomNoise", "RebatchImages", "RebatchLatents", + "RecordAudio", + "RecraftColorRGB", + "RecraftControls", + "RecraftCreativeUpscaleNode", + "RecraftCrispUpscaleNode", + "RecraftImageInpaintingNode", + "RecraftImageToImageNode", + "RecraftRemoveBackgroundNode", + "RecraftReplaceBackgroundNode", + "RecraftStyleV3DigitalIllustration", + "RecraftStyleV3InfiniteStyleLibrary", + "RecraftStyleV3LogoRaster", + "RecraftStyleV3RealisticImage", + "RecraftTextToImageNode", + "RecraftTextToVectorNode", + "RecraftVectorizeImageNode", + "ReferenceLatent", + "RenormCFG", "RepeatImageBatch", "RepeatLatentBatch", "RescaleCFG", + "ResizeAndPadImage", + "Rodin3D_Detail", + "Rodin3D_Regular", + "Rodin3D_Sketch", + "Rodin3D_Smooth", + "RunwayFirstLastFrameNode", + "RunwayImageToVideoNodeGen3a", + "RunwayImageToVideoNodeGen4", + "RunwayTextToImageNode", "SDTurboScheduler", "SD_4XUpscale_Conditioning", "SV3D_Conditioning", @@ -6290,35 +21885,118 @@ "SamplerCustomAdvanced", "SamplerDPMAdaptative", "SamplerDPMPP_2M_SDE", + "SamplerDPMPP_2S_Ancestral", "SamplerDPMPP_3M_SDE", "SamplerDPMPP_SDE", + "SamplerER_SDE", "SamplerEulerAncestral", + "SamplerEulerAncestralCFGPP", "SamplerLMS", + "SamplerSASolver", + "SamplingPercentToSigma", "SaveAnimatedPNG", "SaveAnimatedWEBP", + "SaveAudio", + "SaveAudioMP3", + "SaveAudioOpus", + "SaveGLB", "SaveImage", "SaveImageWebsocket", "SaveLatent", + "SaveLoRANode", + "SaveSVGNode", "SelfAttentionGuidance", + "SetFirstSigma", "SetLatentNoiseMask", + "SetUnionControlNetType", + "SkipLayerGuidanceDiT", + "SkipLayerGuidanceDiTSimple", + "SkipLayerGuidanceSD3", "SolidMask", "SplitImageWithAlpha", "SplitSigmas", - "StableCascade_EmptyLatentImage", - "StableCascade_StageB_Conditioning", - "StableCascade_StageC_VAEEncode", - "StableCascade_SuperResolutionControlnet", + "SplitSigmasDenoise", "StableZero123_Conditioning", "StableZero123_Conditioning_Batched", + "StubConstantImage", + "StubFloat", + "StubImage", + "StubInt", + "StubMask", "StyleModelApply", "StyleModelLoader", + "T5TokenizerOptions", + "TCFG", + "TestAccumulateNode", + "TestAccumulationGetItemNode", + "TestAccumulationGetLengthNode", + "TestAccumulationHeadNode", + "TestAccumulationSetItemNode", + "TestAccumulationTailNode", + "TestAccumulationToListNode", + "TestAsyncBatchProcessing", + "TestAsyncConcurrentLimit", + "TestAsyncError", + "TestAsyncLazyCheck", + "TestAsyncProgressUpdate", + "TestAsyncResourceUser", + "TestAsyncTimeout", + "TestAsyncValidation", + "TestAsyncValidationError", + "TestBoolOperationNode", + "TestCustomIsChanged", + "TestCustomValidation1", + "TestCustomValidation2", + "TestCustomValidation3", + "TestCustomValidation4", + "TestCustomValidation5", + "TestDynamicAsyncGeneration", + "TestDynamicDependencyCycle", + "TestExecutionBlocker", + "TestFloatConditions", + "TestForLoopClose", + "TestForLoopOpen", + "TestIntConditions", + "TestIntMathOperation", + "TestIsChangedWithConstants", + "TestLazyMixImages", + "TestListToAccumulationNode", + "TestMakeListNode", + "TestMixedExpansionReturns", + "TestOutputNodeWithSocketOutput", + "TestParallelSleep", + "TestSamplingInExpansion", + "TestSleep", + "TestStringConditions", + "TestSyncError", + "TestSyncProgressUpdate", + "TestToBoolNode", + "TestVariadicAverage", + "TestWhileLoopClose", + "TestWhileLoopOpen", + "TextEncodeHunyuanVideo_ImageToVideo", + "TextEncodeQwenImageEdit", "ThresholdMask", "TomePatchModel", + "TorchCompileModel", + "TrainLoraNode", + "TripleCLIPLoader", + "TripoConversionNode", + "TripoImageToModelNode", + "TripoMultiviewToModelNode", + "TripoRefineNode", + "TripoRetargetNode", + "TripoRigNode", + "TripoTextToModelNode", + "TripoTextureNode", "UNETLoader", "UpscaleModelLoader", "VAEDecode", + "VAEDecodeAudio", + "VAEDecodeHunyuan3D", "VAEDecodeTiled", "VAEEncode", + "VAEEncodeAudio", "VAEEncodeForInpaint", "VAEEncodeTiled", "VAELoader", @@ -6326,6 +22004,10 @@ "VPScheduler", "VideoLinearCFGGuidance", "VideoTriangleCFGGuidance", + "VoxelToMesh", + "VoxelToMeshBasic", + "WanCameraEmbedding", + "WebcamCapture", "unCLIPCheckpointLoader", "unCLIPConditioning" ], @@ -6333,6 +22015,16 @@ "title_aux": "ComfyUI" } ], + "https://github.com/comfyanonymous/ComfyUI_TensorRT": [ + [ + "DYNAMIC_TRT_MODEL_CONVERSION", + "STATIC_TRT_MODEL_CONVERSION", + "TensorRTLoader" + ], + { + "title_aux": "TensorRT Node for ComfyUI" + } + ], "https://github.com/comfyanonymous/ComfyUI_experiments": [ [ "ModelMergeBlockNumber", @@ -6348,6 +22040,51 @@ "title_aux": "ComfyUI_experiments" } ], + "https://github.com/comfyuistudio/ComfyUI-Studio-nodes": [ + [ + "AspectRatioImageSize", + "AspectRatioResizeImage", + "MarkdownModelNote" + ], + { + "title_aux": "ComfyUI-Studio-nodes" + } + ], + "https://github.com/comnote-max/builmenlabo": [ + [ + "GeminiPoseAnalyzer", + "LlamaCppAIO", + "LlamaCppCompleteUnload", + "LlamaCppGenerate", + "LlamaCppLoader", + "LlamaCppMemoryInfo", + "LlamaCppSafeUnload", + "LlamaCppUnload", + "MultiControlNetLoader", + "PromptTranslator" + ], + { + "nodename_pattern": "builmenlabo", + "title_aux": "ComfyUI builmenlabo - Unified Package" + } + ], + "https://github.com/concarne000/ComfyUI-Stacker": [ + [ + "StackPopFloat", + "StackPopImage", + "StackPopInt", + "StackPopObject", + "StackPopString", + "StackPushFloat", + "StackPushImage", + "StackPushInt", + "StackPushObject", + "StackPushString" + ], + { + "title_aux": "ComfyUI-Stacker" + } + ], "https://github.com/concarne000/ConCarneNode": [ [ "BingImageGrabber", @@ -6358,6 +22095,18 @@ "title_aux": "ConCarneNode" } ], + "https://github.com/conquestace/ComfyUI-ImageUploader": [ + [ + "ImageUploader" + ], + { + "author": "ConquestAce", + "description": "Upload to temporary websites with API.", + "nickname": "Image Uploader", + "title": "Image Uploader", + "title_aux": "Image Uploader" + } + ], "https://github.com/coreyryanhanson/ComfyQR": [ [ "comfy-qr-by-image-size", @@ -6378,6 +22127,23 @@ "title_aux": "ComfyQR-scanning-nodes" } ], + "https://github.com/coulterj/comfyui-svg-visual-normalize": [ + [ + "SVGVisualBoundsNormalize" + ], + { + "title_aux": "ComfyUI SVG Visual Normalize & Margin Node" + } + ], + "https://github.com/cozy-comfyui/cozy_comm": [ + [ + "CozyDiscordPost" + ], + { + "nodename_pattern": " \\(cozy\\)", + "title_aux": "Cozy Communication" + } + ], "https://github.com/cozymantis/cozy-utils-comfyui-nodes": [ [ "Cozy Sampler Options" @@ -6405,6 +22171,31 @@ "title_aux": "Cozy Reference Pose Generator" } ], + "https://github.com/cr7Por/ComfyUI_DepthFlow": [ + [ + "DepthFlowSimple" + ], + { + "title_aux": "ComfyUI_DepthFlow" + } + ], + "https://github.com/craig-tanaka/comfyui_animeseg": [ + [ + "AdvancedAnimeSeg", + "SimpleAnimeSeg" + ], + { + "title_aux": "ComfyUI Anime Segmentation Nodes v1.1.0" + } + ], + "https://github.com/crave33/RenesStuffDanbooruTagGet": [ + [ + "DanbooruTagFetcher" + ], + { + "title_aux": "RenesStuffDanboruTagGet" + } + ], "https://github.com/crystian/ComfyUI-Crystools": [ [], { @@ -6416,11 +22207,34 @@ "title_aux": "Crystools" } ], + "https://github.com/cuban044/ComfyUI-Veo3-Experimental": [ + [ + "Veo3TextToVideo", + "Veo3ToVHS", + "Veo3VideoPreview" + ], + { + "title_aux": "[Unofficial] ComfyUI-Veo3-Experimental" + } + ], + "https://github.com/cubiq/Block_Patcher_ComfyUI": [ + [ + "FluxBlockPatcherSampler", + "FluxBlockShareKV", + "PlotBlockParams" + ], + { + "title_aux": "Flux blocks patcher sampler" + } + ], "https://github.com/cubiq/ComfyUI_FaceAnalysis": [ [ + "FaceAlign", "FaceAnalysisModels", "FaceBoundingBox", - "FaceEmbedDistance" + "FaceEmbedDistance", + "FaceSegmentation", + "FaceWarp" ], { "title_aux": "Face Analysis for ComfyUI" @@ -6432,15 +22246,28 @@ "IPAdapter", "IPAdapterAdvanced", "IPAdapterBatch", + "IPAdapterClipVisionEnhancer", + "IPAdapterClipVisionEnhancerBatch", "IPAdapterCombineEmbeds", + "IPAdapterCombineParams", + "IPAdapterCombineWeights", "IPAdapterEmbeds", + "IPAdapterEmbedsBatch", "IPAdapterEncoder", "IPAdapterFaceID", + "IPAdapterFaceIDKolors", + "IPAdapterFromParams", "IPAdapterInsightFaceLoader", "IPAdapterLoadEmbeds", "IPAdapterMS", "IPAdapterModelLoader", "IPAdapterNoise", + "IPAdapterPreciseComposition", + "IPAdapterPreciseCompositionBatch", + "IPAdapterPreciseStyleTransfer", + "IPAdapterPreciseStyleTransferBatch", + "IPAdapterPromptScheduleFromWeightsStrategy", + "IPAdapterRegionalConditioning", "IPAdapterSaveEmbeds", "IPAdapterStyleComposition", "IPAdapterStyleCompositionBatch", @@ -6450,9 +22277,48 @@ "IPAdapterUnifiedLoaderCommunity", "IPAdapterUnifiedLoaderFaceID", "IPAdapterWeights", + "IPAdapterWeightsFromStrategy", "PrepImageForClipVision" ], { + "preemptions": [ + "IPAAdapterFaceIDBatch", + "IPAdapter", + "IPAdapterAdvanced", + "IPAdapterBatch", + "IPAdapterClipVisionEnhancer", + "IPAdapterClipVisionEnhancerBatch", + "IPAdapterCombineEmbeds", + "IPAdapterCombineParams", + "IPAdapterCombineWeights", + "IPAdapterEmbeds", + "IPAdapterEmbedsBatch", + "IPAdapterEncoder", + "IPAdapterFaceID", + "IPAdapterFromParams", + "IPAdapterInsightFaceLoader", + "IPAdapterLoadEmbeds", + "IPAdapterMS", + "IPAdapterModelLoader", + "IPAdapterNoise", + "IPAdapterPreciseComposition", + "IPAdapterPreciseCompositionBatch", + "IPAdapterPreciseStyleTransfer", + "IPAdapterPreciseStyleTransferBatch", + "IPAdapterPromptScheduleFromWeightsStrategy", + "IPAdapterRegionalConditioning", + "IPAdapterSaveEmbeds", + "IPAdapterStyleComposition", + "IPAdapterStyleCompositionBatch", + "IPAdapterTiled", + "IPAdapterTiledBatch", + "IPAdapterUnifiedLoader", + "IPAdapterUnifiedLoaderCommunity", + "IPAdapterUnifiedLoaderFaceID", + "IPAdapterWeights", + "IPAdapterWeightsFromStrategy", + "PrepImageForClipVision" + ], "title_aux": "ComfyUI_IPAdapter_plus" } ], @@ -6470,26 +22336,29 @@ "title_aux": "ComfyUI InstantID (Native Support)" } ], - "https://github.com/cubiq/ComfyUI_SimpleMath": [ - [ - "SimpleMath", - "SimpleMathDebug" - ], - { - "title_aux": "Simple Math" - } - ], "https://github.com/cubiq/ComfyUI_essentials": [ [ + "ApplyCLIPSeg+", "BatchCount+", "CLIPTextEncodeSDXL+", + "ConditioningCombineMultiple+", "ConsoleDebug+", "DebugTensorShape+", + "DisplayAny", "DrawText+", "ExtractKeyframes+", + "FluxAttentionSeeker+", + "FluxBlocksBuster+", + "FluxSamplerParams+", "GetImageSize+", + "GuidanceTimestepping+", "ImageApplyLUT+", + "ImageBatchMultiple+", + "ImageBatchToList+", "ImageCASharpening+", + "ImageColorMatch+", + "ImageColorMatchAdobe+", + "ImageComposite+", "ImageCompositeFromMaskBatch+", "ImageCrop+", "ImageDesaturate+", @@ -6497,37 +22366,113 @@ "ImageExpandBatch+", "ImageFlip+", "ImageFromBatch+", + "ImageHistogramMatch+", "ImageListToBatch+", "ImagePosterize+", + "ImagePreviewFromLatent+", + "ImageRandomTransform+", + "ImageRemoveAlpha+", "ImageRemoveBackground+", "ImageResize+", "ImageSeamCarving+", + "ImageSmartSharpen+", + "ImageTile+", + "ImageToDevice+", + "ImageUntile+", + "InjectLatentNoise+", "KSamplerVariationsStochastic+", "KSamplerVariationsWithNoise+", + "LoadCLIPSegModels+", + "LorasForFluxParams+", "MaskBatch+", "MaskBlur+", "MaskBoundingBox+", "MaskExpandBatch+", + "MaskFix+", "MaskFlip+", "MaskFromBatch+", "MaskFromColor+", + "MaskFromList+", "MaskFromRGBCMYBW+", "MaskFromSegmentation+", "MaskPreview+", "MaskSmooth+", "ModelCompile+", - "NoiseFromImage~", + "ModelSamplingSD3Advanced+", + "NoiseFromImage+", "PixelOEPixelize+", + "PlotParameters+", "RemBGSession+", "RemoveLatentMask+", + "SD3AttentionSeekerLG+", + "SD3AttentionSeekerT5+", + "SD3NegativeConditioning+", "SDXLEmptyLatentSizePicker+", + "SamplerSelectHelper+", + "SchedulerSelectHelper+", + "SimpleComparison+", + "SimpleCondition+", "SimpleMath+", - "TransitionMask+" + "SimpleMathBoolean+", + "SimpleMathCondition+", + "SimpleMathDual+", + "SimpleMathFloat+", + "SimpleMathInt+", + "SimpleMathPercent+", + "SimpleMathSlider+", + "SimpleMathSliderLowRes+", + "TextEncodeForSamplerParams+", + "TransitionMask+", + "TransparentBGSession+" ], { "title_aux": "ComfyUI Essentials" } ], + "https://github.com/cubiq/PuLID_ComfyUI": [ + [ + "ApplyPulid", + "ApplyPulidAdvanced", + "PulidEvaClipLoader", + "PulidInsightFaceLoader", + "PulidModelLoader" + ], + { + "title_aux": "PuLID_ComfyUI" + } + ], + "https://github.com/cuongloveit/comfy_http_request": [ + [ + "Send Http Request", + "Send Http request" + ], + { + "title_aux": "comfy_http_request" + } + ], + "https://github.com/curiousjp/ComfyUI-MaskBatchPermutations": [ + [ + "CombinatorialDetailer", + "FlattenAgainstOriginal", + "PermuteMaskBatch" + ], + { + "title_aux": "ComfyUI-MaskBatchPermutations" + } + ], + "https://github.com/cyberhirsch/seb_nodes": [ + [ + "AspectRatioSeb", + "DepthInpaintSeb", + "SaveImageSeb", + "SwitchMasksSeb", + "SwitchSeb", + "UnifiedPrompterSeb" + ], + { + "title_aux": "Seb Nodes" + } + ], "https://github.com/czcz1024/Comfyui-FaceCompare": [ [ "FaceCompare" @@ -6540,16 +22485,272 @@ "title_aux": "Face Compare" } ], + "https://github.com/da2el-ai/ComfyUI-d2-send-eagle": [ + [ + "D2 Send Eagle" + ], + { + "author": "da2el", + "description": "Send images to Eagle, an image management application", + "title": "D2 Send Eagle", + "title_aux": "D2 Send Eagle" + } + ], + "https://github.com/da2el-ai/ComfyUI-d2-size-selector": [ + [ + "D2_SizeSelector" + ], + { + "author": "da2el", + "description": "Easy select image size", + "title": "D2 Size Selector", + "title_aux": "D2 Size Selector" + } + ], + "https://github.com/da2el-ai/ComfyUI-d2-steps": [ + [ + "D2 Refiner Steps", + "D2 Refiner Steps A1111", + "D2 Refiner Steps Tester" + ], + { + "author": "da2el", + "description": "Calculate the steps for the refiner", + "title": "D2 Steps", + "title_aux": "D2 Steps" + } + ], + "https://github.com/da2el-ai/ComfyUI-d2-xyplot-utils": [ + [ + "D2 Checkpoint List", + "D2 Checkpoint Loader", + "D2 Multi Output", + "D2 Prompt SR", + "D2 Regex Switcher" + ], + { + "author": "da2el", + "description": "A parameter output node compatible with qq-nodes-comfyui. It outputs parameters such as Prompt S/R and seed.", + "title": "D2 XYPlot Utils", + "title_aux": "D2 XYPlot Utils" + } + ], + "https://github.com/da2el-ai/D2-SavePSD-ComfyUI": [ + [ + "D2 Apply Alpha Channel", + "D2 Extract Alpha", + "D2 Save PSD" + ], + { + "author": "da2el", + "description": "", + "title": "D2 Save PSD", + "title_aux": "D2-SavePSD-ComfyUI" + } + ], + "https://github.com/da2el-ai/D2-nodes-ComfyUI": [ + [ + "D2 Any Delivery", + "D2 Checkpoint Loader", + "D2 Controlnet Loader", + "D2 Cut By Mask", + "D2 EmptyImage Alpha", + "D2 Filename Template", + "D2 Filename Template2", + "D2 Folder Image Queue", + "D2 Get Image Size", + "D2 Grid Image", + "D2 Image Mask Stack", + "D2 Image Resize", + "D2 Image Stack", + "D2 KSampler", + "D2 KSampler(Advanced)", + "D2 List To String", + "D2 Load Folder Images", + "D2 Load Image", + "D2 Load Lora", + "D2 Model and CLIP Merge SDXL", + "D2 Mosaic Filter", + "D2 Multi Output", + "D2 Paste By Mask", + "D2 Pipe", + "D2 Preview Image", + "D2 Prompt", + "D2 Refiner Steps", + "D2 Refiner Steps A1111", + "D2 Refiner Steps Tester", + "D2 Regex Replace", + "D2 Regex Switcher", + "D2 Resize Calculator", + "D2 Save Image", + "D2 Save Image Eagle", + "D2 Send File Eagle", + "D2 Size Selector", + "D2 Token Counter", + "D2 XY Annotation", + "D2 XY Folder Images", + "D2 XY Grid Image", + "D2 XY List To Plot", + "D2 XY Model List", + "D2 XY Plot", + "D2 XY Plot Easy", + "D2 XY Plot Easy Mini", + "D2 XY Prompt SR", + "D2 XY Prompt SR2", + "D2 XY Seed", + "D2 XY Seed2", + "D2 XY String To Plot", + "D2 XY Upload Image" + ], + { + "author": "da2el", + "description": "A Collection of Handy Custom Nodes for ComfyUI", + "title": "D2 Nodes", + "title_aux": "D2 Nodes ComfyUI" + } + ], + "https://github.com/dadoirie/ComfyUI_Dados_Nodes": [ + [ + "DN_CSVMultiDropDownNode", + "DN_JoyTaggerNode", + "DN_MiaoshouAITaggerNode", + "DN_MultilineString", + "DN_PromptSectionsExtractor", + "DN_SmolVLMNode", + "DN_TextConcatenateNode", + "DN_TextDropDownNode", + "DN_WildcardPromptEditorNode", + "DN_WildcardSelectorComposerV2", + "DN_WildcardsProcessor", + "PinterestFetch", + "inactivePinterestImageNode" + ], + { + "author": "Dado", + "description": "Node with dynamic text inputs for concatenation", + "title": "Text Concatenator", + "title_aux": "ComfyUI_Dados_Nodes" + } + ], + "https://github.com/daehwa00/ComfyUI-NanoBananaAPI": [ + [ + "NanoBanana API\ud83c\udf4c" + ], + { + "title_aux": "ComfyUI-NanoBananaAPI" + } + ], + "https://github.com/dafeng012/comfyui-imgmake": [ + [ + "LoadImageListPlus", + "LoadImagesFromPath_lp", + "SaveImage_lp", + "SelectImageName", + "VideoKeyFramesExtractor", + "ebsynth_hecheng", + "ebsynth_main", + "ebsynth_process", + "image2mask", + "video2image" + ], + { + "title_aux": "comfyui-imgmake" + } + ], "https://github.com/dagthomas/comfyui_dagthomas": [ [ - "CSL", - "CSVPromptGenerator", - "PromptGenerator" + "APNLatent", + "CustomPromptLoader", + "DynamicStringCombinerNode", + "FileReaderNode", + "FlexibleStringMergerNode", + "GPT4MiniNode", + "GPT4VisionNode", + "GeminiCustomVision", + "GeminiTextOnly", + "Gpt4CustomVision", + "Gpt4VisionCloner", + "OllamaNode", + "OllamaVisionNode", + "PGSD3LatentGenerator", + "PhiCustomModelInference", + "PhiModelInference", + "PhiModelLoader", + "PromptGenerator", + "RandomIntegerNode", + "SentenceMixerNode", + "StringMergerNode" ], { "title_aux": "SDXL Auto Prompter" } ], + "https://github.com/danTheMonk/comfyui-int-and-float": [ + [ + "FloatToInt", + "IntToFloat" + ], + { + "title_aux": "ComfyUI Int and Float Conversion Nodes" + } + ], + "https://github.com/danger-electrodes/ComfyUI_Fawfluencer_Nodes": [ + [ + "FawfaceModelSpreadsheetRealismNode", + "FawfakeAuthenticImageSaveNode", + "FawfluxencerNode", + "FawfulizedAddImagesToImageList", + "FawfulizedEmptyImageList", + "FawfulizedHunyuanAddNoise", + "FawfulizedHunyuanBasicGuider", + "FawfulizedHunyuanBasicScheduler", + "FawfulizedHunyuanBetaSamplingScheduler", + "FawfulizedHunyuanCFGGuider", + "FawfulizedHunyuanControlNetApply", + "FawfulizedHunyuanControlNetApplyAdvanced", + "FawfulizedHunyuanControlNetLoader", + "FawfulizedHunyuanDiffControlNetLoader", + "FawfulizedHunyuanDisableNoise", + "FawfulizedHunyuanDualCFGGuider", + "FawfulizedHunyuanExponentialScheduler", + "FawfulizedHunyuanFlipSigmas", + "FawfulizedHunyuanKSamplerSelect", + "FawfulizedHunyuanKarrasScheduler", + "FawfulizedHunyuanLaplaceScheduler", + "FawfulizedHunyuanLatentVideo", + "FawfulizedHunyuanPolyexponentialScheduler", + "FawfulizedHunyuanRandomNoise", + "FawfulizedHunyuanSDTurboScheduler", + "FawfulizedHunyuanSamplerCustom", + "FawfulizedHunyuanSamplerCustomAdvanced", + "FawfulizedHunyuanSamplerDPMAdaptative", + "FawfulizedHunyuanSamplerDPMPP_2M_SDE", + "FawfulizedHunyuanSamplerDPMPP_2S_Ancestral", + "FawfulizedHunyuanSamplerDPMPP_3M_SDE", + "FawfulizedHunyuanSamplerDPMPP_SDE", + "FawfulizedHunyuanSamplerEulerAncestral", + "FawfulizedHunyuanSamplerEulerAncestralCFGPP", + "FawfulizedHunyuanSamplerLMS", + "FawfulizedHunyuanSetFirstSigma", + "FawfulizedHunyuanSetLatentNoiseMask", + "FawfulizedHunyuanSplitSigmas", + "FawfulizedHunyuanSplitSigmasDenoise", + "FawfulizedHunyuanVPScheduler", + "Img2ImgFawfluencerNodeSDXL" + ], + { + "title_aux": "ComfyUI_Fawfluencer_Nodes" + } + ], + "https://github.com/daniabib/ComfyUI_ProPainter_Nodes": [ + [ + "ProPainterInpaint", + "ProPainterOutpaint" + ], + { + "title_aux": "ComfyUI ProPainter Nodes" + } + ], "https://github.com/daniel-lewis-ab/ComfyUI-Llama": [ [ "Call LLM Advanced", @@ -6583,6 +22784,7 @@ ], "https://github.com/darkpixel/darkprompts": [ [ + "DarkAnyToString", "DarkCheckpointRandomizer", "DarkCheckpointSwitcher", "DarkCombine", @@ -6590,18 +22792,64 @@ "DarkFaceIndexShuffle", "DarkFolders", "DarkLoRALoader", + "DarkLoraStackFromString", + "DarkPopLoraFromStack", "DarkPrompt" ], { "title_aux": "DarkPrompts" } ], - "https://github.com/davask/ComfyUI-MarasIT-Nodes": [ + "https://github.com/darth-veitcher/comfydv": [ [ - "MarasitAnyBusNode" + "CircuitBreaker", + "FormatString", + "ModelUnloader", + "RandomChoice" ], { - "title_aux": "\ud83d\udc30 MarasIT Nodes" + "author": "Darth Veitcher", + "description": "This collection of nodes provides string formatting, random choices, model memory management, and other quality of life improvements.", + "nickname": "DV Nodes", + "title": "Comfy DV Nodes", + "title_aux": "Comfy DV" + } + ], + "https://github.com/daryltucker/ComfyUI-LoadFiles": [ + [ + "CountLines", + "ListFilenames", + "LoadImages" + ], + { + "title_aux": "ComfyUI-LoadFiles" + } + ], + "https://github.com/dasilva333/ComfyUI_ContrastingColor": [ + [ + "ContrastingComplementaryColor|pysssss" + ], + { + "title_aux": "ComfyUI_ContrastingColor" + } + ], + "https://github.com/dasilva333/ComfyUI_HunyuanVideo-Foley": [ + [ + "HunyuanFoleyAudio" + ], + { + "title_aux": "ComfyUI HunyuanVideo-Foley Custom Node" + } + ], + "https://github.com/dasilva333/ComfyUI_MarkdownImage": [ + [ + "CreateDialogImage", + "CreateDialogImageV2", + "CreateMarkdownImage", + "CreateMarkdownImageV2" + ], + { + "title_aux": "ComfyUI_MarkdownImage" } ], "https://github.com/dave-palt/comfyui_DSP_imagehelpers": [ @@ -6612,32 +22860,71 @@ "title_aux": "comfyui_DSP_imagehelpers" } ], - "https://github.com/dawangraoming/ComfyUI_ksampler_gpu/raw/main/ksampler_gpu.py": [ + "https://github.com/davidgressett/comfyui-systemlevel": [ [ - "KSamplerAdvancedGPU", - "KSamplerGPU" + "CartesianCSVNode" ], { - "title_aux": "KSampler GPU" + "title_aux": "CartesianCSVNode for ComfyUI" + } + ], + "https://github.com/daxcay/ComfyUI-DataSet": [ + [ + "DataSet_ClaudeAIChat", + "DataSet_ClaudeAIChatImage", + "DataSet_ConceptManager", + "DataSet_CopyFiles", + "DataSet_FindAndReplace", + "DataSet_GroqChat", + "DataSet_GroqChatImage", + "DataSet_LoadImage", + "DataSet_OpenAIChat", + "DataSet_OpenAIChatImage", + "DataSet_OpenAIChatImageBatch", + "DataSet_PathSelector", + "DataSet_SaveImage", + "DataSet_SaveImagePro", + "DataSet_TextFilesLoad", + "DataSet_TextFilesLoadFromList", + "DataSet_TextFilesSave", + "DataSet_TriggerWords", + "DataSet_Visualizer" + ], + { + "author": "Daxton Caylor", + "description": "Data Research, Preparation, and Manipulation Nodes for Model Trainers, Artists, Designers, and Animators.", + "nickname": "ComfyUI-DataSet", + "title": "ComfyUI-DataSet", + "title_aux": "ComfyUI-DataSet" } ], "https://github.com/daxcay/ComfyUI-JDCN": [ [ + "JDCN_AnyCheckpointLoader", "JDCN_AnyFileList", "JDCN_AnyFileListHelper", "JDCN_AnyFileListRandom", "JDCN_AnyFileSelector", + "JDCN_BatchCounter", + "JDCN_BatchCounterAdvance", + "JDCN_BatchImageLoadFromDir", "JDCN_BatchImageLoadFromList", "JDCN_BatchLatentLoadFromDir", "JDCN_BatchLatentLoadFromList", "JDCN_BatchSaveLatent", + "JDCN_BoolInt", + "JDCN_EnableDisable", "JDCN_FileMover", "JDCN_ImageSaver", "JDCN_ListToString", + "JDCN_LoadImage", "JDCN_ReBatch", "JDCN_SeamlessExperience", + "JDCN_ShowAny", "JDCN_SplitString", + "JDCN_StringManipulator", "JDCN_StringToList", + "JDCN_SwapInputs", "JDCN_TXTFileSaver", "JDCN_VHSFileMover" ], @@ -6649,21 +22936,78 @@ "title_aux": "ComfyUI-JDCN" } ], - "https://github.com/daxthin/DZ-FaceDetailer": [ + "https://github.com/daxcay/ComfyUI-TG": [ [ - "DZ_Face_Detailer" + "TG_ImageSaver" ], { - "title_aux": "DZ-FaceDetailer" + "author": "Daxton Caylor", + "description": "This node enables someone to run comfyui in telegram.", + "nickname": "ComfyUI-TG", + "title": "ComfyUI-TG", + "title_aux": "ComfyUI-TG" + } + ], + "https://github.com/daxcay/ComfyUI-WA": [ + [ + "WA_ImageSaver" + ], + { + "author": "Daxton Caylor", + "description": "This node enables someone to run comfyui in whatsapp.", + "nickname": "ComfyUI-WA", + "title": "ComfyUI-WA", + "title_aux": "ComfyUI-WA" + } + ], + "https://github.com/daxcay/ComfyUI-YouTubeVideoPlayer": [ + [ + "YouTubeVideoPlayer" + ], + { + "author": "Daxton Caylor & Jerry Davos", + "description": "YouTube Video Player in Comfy.", + "nickname": "ComfyUI-YouTubeVideoPlayer", + "title": "ComfyUI-YouTubeVideoPlayer", + "title_aux": "ComfyUI-YouTubeVideoPlayer" + } + ], + "https://github.com/dchatel/comfyui_davcha": [ + [ + "ApplyMask", + "ConditioningCompress", + "DStack", + "DavchaCLIPMergeSimple", + "DavchaCLIPTextEncode", + "DavchaConditioningConcat", + "DavchaEmptyLatentImage", + "DavchaLLM", + "DavchaLLMAdvanced", + "DavchaLoadLLM", + "DavchaLoadVideo", + "DavchaMaskImage", + "DavchaModelMergeSD1", + "DavchaModelMergeSDXL", + "DavchaModelMergeSimple", + "DavchaPop", + "PadAndResize", + "PercentPadding", + "ResizeCropFit", + "SmartMask", + "SoftErosion", + "StringScheduleHelper" + ], + { + "title_aux": "comfyui_davcha" } ], "https://github.com/dchatel/comfyui_facetools": [ [ - "AlignFaces", + "BiSeNetMask", "CropFaces", "DetectFaces", - "FaceDetails", "GenderFaceFilter", + "JonathandinuMask", "MergeWarps", "OrderedFaceFilter", "WarpFacesBack" @@ -6672,6 +23016,40 @@ "title_aux": "comfyui_facetools" } ], + "https://github.com/denfrost/Den_ComfyUI_Workflow": [ + [ + "Den_BatchIndex_AS", + "Den_CropImage_AS", + "Den_Eval_AS", + "Den_FaceRestoreCFWithModel", + "Den_GPTLoaderSimple_llama", + "Den_GPTSampler_llama", + "Den_ImageMixMasked_As", + "Den_ImageToLatentSpace", + "Den_ImageToMask_AS", + "Den_Int2Any_AS", + "Den_LatentAdd_AS", + "Den_LatentMixMasked_As", + "Den_LatentMix_AS", + "Den_LatentToImages_AS", + "Den_LoadLatent_AS", + "Den_MapRange_AS", + "Den_MaskToImage_AS", + "Den_Math_AS", + "Den_NoiseImage_AS", + "Den_Number2Float_AS", + "Den_Number2Int_AS", + "Den_Number_AS", + "Den_SVD_img2vid", + "Den_SaveLatent_AS", + "Den_TextToImage_AS", + "Den_TextWildcardList_AS", + "Increment_AS" + ], + { + "title_aux": "Den_ComfyUI_Workflows" + } + ], "https://github.com/deroberon/StableZero123-comfyui": [ [ "SDZero ImageSplit", @@ -6693,6 +23071,15 @@ "title_aux": "demofusion-comfyui" } ], + "https://github.com/dfghsdh/ComfyUI_FluxPromptGen": [ + [ + "FluxImageCaptionNode", + "FluxPromptGeneratorNode" + ], + { + "title_aux": "ComfyUI_FluxPromptGen" + } + ], "https://github.com/dfl/comfyui-clip-with-break": [ [ "AdvancedCLIPTextEncodeWithBreak", @@ -6703,7 +23090,7 @@ "description": "CLIP text encoder that does BREAK prompting like A1111", "nickname": "CLIP with BREAK", "title": "CLIP with BREAK syntax", - "title_aux": "CLIP with BREAK syntax" + "title_aux": "comfyui-clip-with-break" } ], "https://github.com/dfl/comfyui-tcd-scheduler": [ @@ -6716,6 +23103,14 @@ "title_aux": "ComfyUI-TCD-scheduler" } ], + "https://github.com/diStyApps/ComfyUI-disty-Flow": [ + [ + "Flow" + ], + { + "title_aux": "Flow - Streamlined Way to ComfyUI" + } + ], "https://github.com/diStyApps/ComfyUI_FrameMaker": [ [ "FrameMaker", @@ -6725,6 +23120,29 @@ "title_aux": "ComfyUI Frame Maker" } ], + "https://github.com/dicksensei69/comfyui_loops": [ + [ + "LoopImageNode" + ], + { + "title_aux": "ComfyUI Loops" + } + ], + "https://github.com/dicksondickson/ComfyUI-Dickson-Nodes": [ + [ + "DicksonColorMatch", + "DicksonLoadImage", + "Dickson_TTP_Preprocessor_Simple", + "Dickson_TTP_Preprocessor_cufoff", + "Dickson_TTP_Tile_Preprocessor_GF" + ], + { + "description": "This is a set of custom nodes that I've either written myself or adapted from other authors for my own convenience. Currently includes color matching node forked from StableSR and TTPlanet's controlnet preprocessor. https://github.com/dicksondickson", + "nickname": "Dickson Nodes", + "title": "Dickson Nodes", + "title_aux": "ComfyUI-Dickson-Nodes" + } + ], "https://github.com/digitaljohn/comfyui-propost": [ [ "ProPostApplyLUT", @@ -6737,18 +23155,70 @@ "title_aux": "ComfyUI-ProPost" } ], + "https://github.com/dimtion/comfyui-raw-image": [ + [ + "Load Raw Image" + ], + { + "title_aux": "ComfyUI-Raw-Image" + } + ], "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector": [ [ "PixelArtAddDitherPattern", "PixelArtDetectorConverter", "PixelArtDetectorSave", "PixelArtDetectorToImage", - "PixelArtLoadPalettes" + "PixelArtLoadPalettes", + "PixelArtPaletteGenerator" ], { "title_aux": "ComfyUI PixelArt Detector" } ], + "https://github.com/dimtoneff/ComfyUI-VL-Nodes": [ + [ + "GGUF_VLM_ImageToText", + "GGUF_VLM_ModelLoader", + "InternVL3_5_ImageToText", + "InternVL3_5_ModelLoader", + "KeyeModelLoader", + "KeyeNode", + "LFM2TransformerImageToText", + "LFM2TransformerModelLoader", + "LoadImagesFromDirBatch_VL", + "LoadImagesFromDirList_VL", + "Ovis25ImageToText", + "Ovis25ModelLoader", + "OvisU1ImageCaption", + "OvisU1VLModelLoader", + "TextSave_VL", + "VLNodesFreeMemoryAPI" + ], + { + "title_aux": "ComfyUI-VL-Nodes" + } + ], + "https://github.com/diodiogod/TTS-Audio-Suite": [ + [ + "AudioAnalyzerNode", + "AudioAnalyzerOptionsNode", + "CharacterVoicesNode", + "ChatterBoxEngineNode", + "ChatterBoxF5TTSEditOptions", + "F5TTSEngineNode", + "HiggsAudioEngineNode", + "MouthMovementAnalyzer", + "UnifiedTTSSRTNode", + "UnifiedTTSTextNode", + "UnifiedVoiceChangerNode", + "VibeVoiceEngineNode", + "VisemeDetectionOptionsNode" + ], + { + "title_aux": "TTS Audio Suite" + } + ], "https://github.com/diontimmer/ComfyUI-Vextra-Nodes": [ [ "Add Text To Image", @@ -6768,6 +23238,18 @@ "title_aux": "ComfyUI-Vextra-Nodes" } ], + "https://github.com/discopixel-studio/comfyui-discopixel": [ + [ + "PhotoroomRemoveBG" + ], + { + "author": "Anson Kao", + "description": "A small collection of custom nodes for use with ComfyUI, by Discopixel", + "nickname": "ComfyUI Discopixel", + "title": "ComfyUI Discopixel", + "title_aux": "PhotoRoom Nodes by Discopixel" + } + ], "https://github.com/discus0434/comfyui-caching-embeddings": [ [ "CachingCLIPTextEncode" @@ -6776,8 +23258,17 @@ "title_aux": "ComfyUI Caching Embeddings" } ], + "https://github.com/discus0434/comfyui-flux-accelerator": [ + [ + "\ud83c\udf6dFluxAccelerator" + ], + { + "title_aux": "ComfyUI Flux Accelerator" + } + ], "https://github.com/djbielejeski/a-person-mask-generator": [ [ + "APersonFaceLandmarkMaskGenerator", "APersonMaskGenerator" ], { @@ -6896,6 +23387,38 @@ "title_aux": "ComfyUI-Keyframed" } ], + "https://github.com/dorpxam/ComfyUI-FramePack-F1-T2V": [ + [ + "FramePackF1T2VLoraStack", + "FramePackF1T2VSampler", + "FramePackF1T2VSamplerSettings", + "FramePackF1T2VTextEncode", + "FramePackF1T2VUserSettings" + ], + { + "title_aux": "ComfyUI-FramePack-F1-T2V" + } + ], + "https://github.com/dorpxam/ComfyUI-LTXVideoLoRA": [ + [ + "LTXVLoRABlockEdit", + "LTXVLoRALoader", + "LTXVLoRASelector" + ], + { + "title_aux": "ComfyUI-LTXVideoLoRA" + } + ], + "https://github.com/doubletwisted/ComfyUI-Deadline-Plugin": [ + [ + "DeadlineSeed", + "DeadlineSubmit" + ], + { + "nodename_pattern": "DeadlineSubmitNode", + "title_aux": "ComfyUI Deadline Submission" + } + ], "https://github.com/drago87/ComfyUI_Dragos_Nodes": [ [ "file_padding", @@ -6907,6 +23430,79 @@ "title_aux": "ComfyUI_Dragos_Nodes" } ], + "https://github.com/dreamhartley/ComfyUI_show_seed": [ + [ + "Show Seed" + ], + { + "title_aux": "ComfyUI_show_seed" + } + ], + "https://github.com/drmbt/comfyui-dreambait-nodes": [ + [ + "AudioInfoPlus", + "BoolPlusPlus", + "CompareImageSimilarity", + "DRMBT_AspectPadImageForOutpainting", + "DRMBT_LoadMedia", + "DRMBT_MultiMinMax", + "DRMBT_String_Item_Menu", + "DictToOutputs", + "DownloadAndLoadMiniCPMV", + "DrawMana", + "DrawText", + "DreambaitFolderOpener", + "DynamicDictionary", + "DynamicStringConcatenate", + "ImageFrameBlend", + "ImageResizeFaceAware", + "ListItemExtract", + "ListItemSelector", + "LoadAudioPlus", + "MiniCPMVNode", + "MusicGen", + "NormalizeAudio", + "NumberPlusPlus", + "NumberRemap", + "Qwen2AudioInstruct", + "ShotHistory", + "StringToDict", + "SwitchDuo", + "TextBoxStyle", + "TextLineSelect", + "TextLinesToList", + "TextMargins", + "TextPlusPlus", + "TextShadow" + ], + { + "title_aux": "comfyui-dreambait-nodes" + } + ], + "https://github.com/drozbay/ComfyUI-WanVaceAdvanced": [ + [ + "VaceAdvancedModelPatch", + "VaceStrengthTester", + "WanVacePhantomDual", + "WanVacePhantomDualV2", + "WanVacePhantomExperimental", + "WanVacePhantomExperimentalV2", + "WanVacePhantomSimple", + "WanVacePhantomSimpleV2", + "WanVaceToVideoLatent" + ], + { + "title_aux": "ComfyUI-WanVaceAdvanced" + } + ], + "https://github.com/drphero/comfyui_prompttester": [ + [ + "PromptTester" + ], + { + "title_aux": "ComfyUI-PromptTester" + } + ], "https://github.com/drustan-hawk/primitive-types": [ [ "float", @@ -6918,6 +23514,108 @@ "title_aux": "primitive-types" } ], + "https://github.com/dseditor/ComfyUI-ListHelper": [ + [ + "AudioListCombine", + "AudioListGenerator", + "AudioToFrameCount", + "CeilDivide", + "FrameMatch", + "LoadVideoPath", + "MergeVideoFilename", + "NumberListGenerator", + "OpenRouterLLM", + "PromptListGenerator", + "SaveVideoPath" + ], + { + "title_aux": "ComfyUI-ListHelper" + } + ], + "https://github.com/dseditor/ComfyUI-ScheduledTask": [ + [ + "DailyPromptScheduler", + "ShutdownNode", + "TimeToSeedList" + ], + { + "title_aux": "ComfyUI-ScheduledTask" + } + ], + "https://github.com/dseditor/ComfyUI-Thread": [ + [ + "PublishThread", + "StartWithLongLiveToken", + "ThreadPublishVideo", + "ThreadsHistory" + ], + { + "title_aux": "ComfyUI-Thread" + } + ], + "https://github.com/duchamps0305/comfyui-white-extractor": [ + [ + "WhitePercentage" + ], + { + "title_aux": "comfyui-white-extractor" + } + ], + "https://github.com/ducido/ObjectFusion_ComfyUI_nodes": [ + [ + "Custom ESAM_ModelLoader_Zho", + "Custom Generate Stable Diffsution Prompt With LLM", + "Custom Yoloworld_ESAM_Zho", + "Custom Yoloworld_ModelLoader_Zho", + "ObjectCrop" + ], + { + "title_aux": "ObjectFusion_ComfyUI_nodes" + } + ], + "https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node/raw/refs/heads/main/merge_embed.py": [ + [ + "EmbeddingMerger" + ], + { + "title_aux": "Embedding Merge for ComfyUI" + } + ], + "https://github.com/dymokomi/comfyui_dygen": [ + [ + "AdaptiveColorCircles", + "AdaptiveColorLines", + "AdaptiveColorRectangles", + "BinaryPatternStamper", + "DYImageCluster", + "DYImageMasks", + "DYImagePalette", + "DYImageQuantize", + "ImageListToGrid", + "ImageScaler", + "RandomLines" + ], + { + "title_aux": "comfyui_dygen" + } + ], + "https://github.com/dzqdzq/ComfyUI-crop-alpha": [ + [ + "FastAlphaCropper", + "ShrinkImage" + ], + { + "title_aux": "ComfyUI-crop-alpha" + } + ], + "https://github.com/e-tier-newbie/ComfyUI-E-Tier-TextSaver": [ + [ + "E_TierTextSaver" + ], + { + "title_aux": "ComfyUI-E-Tier-TextSaver" + } + ], "https://github.com/e7mac/ComfyUI-ShadertoyGL": [ [ "ColorChannelOffset", @@ -6928,7 +23626,7 @@ "title_aux": "ComfyUI-ShadertoyGL" } ], - "https://github.com/ealkanat/comfyui_easy_padding": [ + "https://github.com/ealkanat/comfyui-easy-padding": [ [ "comfyui-easy-padding" ], @@ -6936,30 +23634,246 @@ "title_aux": "ComfyUI Easy Padding" } ], - "https://github.com/edenartlab/eden_comfy_pipelines": [ + "https://github.com/eastoc/ComfyUI_SemanticSAM": [ [ - "CLIP_Interrogator", - "ConvertToGrayscale", - "Eden_Bool", - "Eden_Compare", - "Eden_DebugPrint", - "Eden_Float", - "Eden_Int", - "Eden_String", - "HistogramMatching", - "IMG_blender", - "IMG_padder", - "IMG_resolution_multiple_of", - "IMG_scaler", - "IMG_unpadder", - "If ANY execute A else B", - "LatentTypeConversion", - "LoadRandomImage", - "SaveImageAdvanced", - "VAEDecode_to_folder" + "PointPrompt", + "SemanticSAMLoader", + "SemanticSAMSegment" ], { - "title_aux": "eden_comfy_pipelines" + "title_aux": "Semantic-SAM" + } + ], + "https://github.com/ebrinz/ComfyUI-MusicGen-HF": [ + [ + "AudioOutputToConditioningQueue", + "BPMDurationInput", + "ConditioningQueueManager", + "HuggingFaceMusicGen", + "LoadAudioStandalone", + "LoopingAudioPreview", + "MusicGenAudioToFile", + "ProfessionalLoopTransition", + "SaveAudioStandalone", + "SmoothAudioQueue", + "custom_nodes" + ], + { + "title_aux": "ComfyUI-MusicGen-HF" + } + ], + "https://github.com/edelvarden/ComfyUI-Display-Value": [ + [ + "DisplayValue" + ], + { + "title_aux": "ComfyUI-Display-Value" + } + ], + "https://github.com/edenartlab/eden_comfy_pipelines": [ + [ + "AnimatedShapeMaskNode", + "Animation_RGB_Mask", + "AspectPadImageForOutpainting", + "CLIP_Interrogator", + "ConvertToGrayscale", + "DepthSlicer", + "Eden_AllMediaLoader", + "Eden_Bool", + "Eden_BoolBinaryOperation", + "Eden_Compare", + "Eden_Debug_Anything", + "Eden_DepthSlice_MaskVideo", + "Eden_DetermineFrameCount", + "Eden_FaceToMask", + "Eden_Face_Crop", + "Eden_Float", + "Eden_FloatToInt", + "Eden_GPTPromptEnhancer", + "Eden_GPTStructuredOutput", + "Eden_IMG_padder", + "Eden_IMG_unpadder", + "Eden_ImageMaskComposite", + "Eden_Image_Math", + "Eden_Int", + "Eden_IntToFloat", + "Eden_MaskBoundingBox", + "Eden_MaskCombiner", + "Eden_Math", + "Eden_RGBA_to_RGB", + "Eden_RandomFilepathSampler", + "Eden_RandomNumberSampler", + "Eden_RandomPromptFromFile", + "Eden_Regex_Replace", + "Eden_RepeatLatentBatch", + "Eden_Save_Param_Dict", + "Eden_Seed", + "Eden_String", + "Eden_StringHash", + "Eden_StringReplace", + "Eden_gpt4_node", + "Eden_randbool", + "Extend_Sequence", + "FolderScanner", + "GetRandomFile", + "Get_Prefixed_Imgs", + "HistogramMatching", + "IMG_blender", + "IMG_resolution_multiple_of", + "IMG_scaler", + "IP_Adapter_Settings_Distribution", + "If ANY execute A else B", + "ImageDescriptionNode", + "ImageFolderIterator", + "KeyframeBlender", + "LatentTypeConversion", + "Linear_Combine_IP_Embeds", + "LoadImagesByFilename", + "LoadRandomImage", + "Load_Embeddings_From_Folder", + "MaskFromRGB_KMeans", + "MaskedRegionVideoExport", + "OrganicFillNode", + "ParallaxZoom", + "Random_Style_Mixture", + "SDAnyConverter", + "SDTypeConverter", + "SaveImageAdvanced", + "SavePosEmbeds", + "VAEDecode_to_folder", + "VideoFrameSelector", + "WidthHeightPicker" + ], + { + "title_aux": "Eden.art nodesuite" + } + ], + "https://github.com/edenartlab/sd-lora-trainer": [ + [ + "Eden_LoRa_trainer" + ], + { + "title_aux": "Eden.art LoRa Trainer" + } + ], + "https://github.com/educator-art/ComfyUI-Load-DirectoryFiles": [ + [ + "Load Images and Prompts from Directory", + "Load Images and Prompts from Directory(Advanced)" + ], + { + "title_aux": "ComfyUI-Load-DirectoryFiles" + } + ], + "https://github.com/educator-art/ComfyUI-gpt-oss-PromptDesigner": [ + [ + "Load gpt-oss Prompt Designer" + ], + { + "title_aux": "ComfyUI-gpt-oss-PromptDesigner" + } + ], + "https://github.com/eg0pr0xy/comfyui_noisegen": [ + [ + "AudioAnalyzer", + "AudioMixer", + "AudioSave", + "BandLimitedNoise", + "ChaosNoiseMix", + "ConvolutionReverb", + "FeedbackProcessor", + "GranularProcessor", + "GranularSequencer", + "HarshFilter", + "MicrosoundSculptor", + "ModulationMatrix", + "MultiDistortion", + "NoiseGenerator", + "PerlinNoise", + "SpectralProcessor", + "SpectrumAnalyzer", + "TrueChaos" + ], + { + "title_aux": "ComfyUI-NoiseGen" + } + ], + "https://github.com/einhorn13/ComfyUI-ImageProcessUtilities": [ + [ + "CombineCoords", + "CropByCoords", + "ImageTiler", + "ImageUntiler", + "PasteByCoords", + "ReorderBatch", + "SplitCoords", + "StringToIntegers" + ], + { + "title_aux": "ComfyUI-ImageProcessUtilities" + } + ], + "https://github.com/emojiiii/ComfyUI_Emojiiii_Custom_Nodes": [ + [ + "BatchImageProcessor", + "Caption", + "CaptionDownload", + "KolorsMultiTextEncode", + "MultiTextEncode" + ], + { + "title_aux": "ComfyUI_Emojiiii_Custom_Nodes" + } + ], + "https://github.com/envy-ai/ComfyUI-ConDelta": [ + [ + "ApplyConDelta", + "ApplyConDeltaAutoScale", + "CFGlessNegativePrompt", + "ClampConDelta", + "ConditioningAddConDelta", + "ConditioningAddConDeltaAutoScale", + "ConditioningAverageMultiple", + "ConditioningGetNoise", + "ConditioningGetRandom", + "ConditioningScale", + "ConditioningSubtract", + "ExtendedConditioningAverage", + "GetConDeltaFromPrompt", + "HardClampConDelta", + "LoadConditioningDelta", + "MaskConDelta", + "QuickConDelta", + "SaveConditioningDelta", + "ThresholdConditioning" + ], + { + "title_aux": "ComfyUI-ConDelta" + } + ], + "https://github.com/eric183/ComfyUI-Only": [ + [ + "ArchiveImageLoader", + "LatentLoaderAdvanced", + "WorkflowImageFileLoader", + "WorkflowJSONParser" + ], + { + "title_aux": "ComfyUI-Only" + } + ], + "https://github.com/erosDiffusion/ComfyUI-enricos-nodes": [ + [ + "Compositor3", + "CompositorColorPicker", + "CompositorConfig3", + "CompositorMasksOutputV3", + "CompositorTools3", + "CompositorTransformsOutV3", + "ImageColorSampler" + ], + { + "title_aux": "ComfyUI-enricos-nodes" } ], "https://github.com/evanspearman/ComfyMath": [ @@ -6986,6 +23900,7 @@ "CM_IntToNumber", "CM_IntUnaryCondition", "CM_IntUnaryOperation", + "CM_NearestSDXLExtendedResolution", "CM_NearestSDXLResolution", "CM_NumberBinaryCondition", "CM_NumberBinaryOperation", @@ -6993,6 +23908,7 @@ "CM_NumberToInt", "CM_NumberUnaryCondition", "CM_NumberUnaryOperation", + "CM_SDXLExtendedResolution", "CM_SDXLResolution", "CM_Vec2BinaryCondition", "CM_Vec2BinaryOperation", @@ -7020,19 +23936,419 @@ "title_aux": "ComfyMath" } ], - "https://github.com/fearnworks/ComfyUI_FearnworksNodes/raw/main/fw_nodes.py": [ + "https://github.com/excelwong/ComfyUI-PromptComposer": [ + [ + "PromptComposer" + ], + { + "title_aux": "ComfyUI Prompt Composer" + } + ], + "https://github.com/exdysa/comfyui-selector": [ + [ + "RecourseAny", + "RecourseCkpt", + "RecourseImage", + "RecoursePolar", + "RecourseStrings", + "SelInClip", + "SelInFloat", + "SelInGuider", + "SelInInt", + "SelInLatent", + "SelInModel", + "SelInPolar", + "SelInSampler", + "SelInSigmas", + "SelInVae", + "SelOutCLIP", + "SelOutModel", + "SelOutPolar", + "Selector", + "Selector Advanced", + "Selector Hub" + ], + { + "author": "\"\u02f6\ud835\udfa2\u292c\u2ad2\u2d56s\u143c\u02f6\"", + "description": "\"EXDYSA. Selector and Recourse. Presets & failsafes. Work flow.\"", + "nickname": "\"Selector\"", + "title": "\"Selector\"", + "title_aux": "comfyui-selector" + } + ], + "https://github.com/exectails/comfyui-et_dynamicprompts": [ + [ + "ETDynamicPrompt" + ], + { + "title_aux": "Dynamic Prompts" + } + ], + "https://github.com/exectails/comfyui-et_infoutils": [ + [ + "ETInspectTextNode", + "ETIntBoxNode", + "ETPresentImageNode", + "ETShowDataNode", + "ETStringBoxNode", + "ETTextBoxNode", + "ETTokenCountNode" + ], + { + "title_aux": "Info Utils" + } + ], + "https://github.com/exectails/comfyui-et_stringutils": [ + [ + "ETATOI", + "ETITOA", + "ETJoinTextNode", + "ETReplaceTextNode", + "ETSplitTextNode", + "ETSwitchTextNode", + "ETTextFormatter10Node", + "ETTextFormatter2Node", + "ETTextFormatter5Node" + ], + { + "title_aux": "String Utils" + } + ], + "https://github.com/ez-af/ComfyUI-EZ-AF-Nodes": [ + [ + "EZ_CSV_Loader", + "EZ_Extract_Prompt", + "EZ_Find_Replace", + "EZ_Input", + "EZ_Prompt_Loader", + "EZ_Switch", + "EZ_Tag_Loader", + "EZ_Test", + "EZ_Text_Concat", + "EZ_Text_to_Size" + ], + { + "title_aux": "ComfyUI-EZ-AF-Nodes" + } + ], + "https://github.com/facok/ComfyUI-HunyuanVideoMultiLora": [ + [ + "HunyuanVideoLoraLoader" + ], + { + "title_aux": "ComfyUI-HunyuanVideoMultiLora" + } + ], + "https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo": [ + [ + "TeaCacheHunyuanVideoSampler_FOK" + ], + { + "title_aux": "ComfyUI-TeaCacheHunyuanVideo" + } + ], + "https://github.com/fairy-root/ComfyUI-GLHF": [ + [ + "glhf_chat" + ], + { + "title_aux": "ComfyUI-GLHF" + } + ], + "https://github.com/fairy-root/ComfyUI-OpenAI-FM": [ + [ + "OpenAIFMNode" + ], + { + "title_aux": "ComfyUI-OpenAI-FM" + } + ], + "https://github.com/fairy-root/ComfyUI-Show-Text": [ + [ + "ShowText" + ], + { + "title_aux": "ComfyUI-Show-Text" + } + ], + "https://github.com/fairy-root/Flux-Prompt-Generator": [ + [ + "FluxPromptGenerator" + ], + { + "title_aux": "Flux Prompt Generator for ComfyUI" + } + ], + "https://github.com/fairy-root/comfyui-ollama-llms": [ + [ + "ConcatenateText", + "llava", + "ollama" + ], + { + "title_aux": "Ollama and Llava Vision integration for ComfyUI" + } + ], + "https://github.com/fallingmeteorite/nsfw-image-check-comfyui": [ + [ + "NsfwAreaCoverNode", + "NsfwCheckNode" + ], + { + "title_aux": "nsfw-image-check-comfyui" + } + ], + "https://github.com/fashn-AI/ComfyUI-FASHN": [ + [ + "FASHN" + ], + { + "title_aux": "FASHN Virtual Try-On" + } + ], + "https://github.com/fat-tire/comfyui-unified-media-suite": [ + [ + "MediaLoad", + "MediaMerge", + "MediaSave" + ], + { + "title_aux": "ComfyUI Unified Media Suite" + } + ], + "https://github.com/fblissjr/ComfyUI-DatasetHelper": [ + [ + "DatasetBatchNode" + ], + { + "title_aux": "ComfyUI Dataset Helper & Batch Node" + } + ], + "https://github.com/fblissjr/ComfyUI-EmbeddingPipelineAnalytics": [ + [ + "EmbeddingAnalyzer", + "EmbeddingPipelineCapture" + ], + { + "title_aux": "ComfyUI-EmbeddingPipelineAnalytics" + } + ], + "https://github.com/fblissjr/ComfyUI-QwenImageWanBridge": [ + [ + "DenoiseCurveVisualizer", + "LatentStatisticsMonitor", + "MinimalKeyframeV2V", + "QwenCheckpointLoaderSimple", + "QwenCompareEncoders", + "QwenDebugTextEncoder", + "QwenDiffusionModelLoader", + "QwenEliGenController", + "QwenEliGenMaskCreator", + "QwenFrameLoader", + "QwenImageEditAdvanced", + "QwenImageEditLatentPrepare", + "QwenImageEditProcessor", + "QwenImageEditSimple", + "QwenImageEditUnified", + "QwenImageIterativeSampler", + "QwenImageResolutionHelper", + "QwenImageSamplerAdvanced", + "QwenImageSamplerWrapper", + "QwenImageVAEEncode", + "QwenLowresFixNode", + "QwenModelValidator", + "QwenMultiFrameComplete", + "QwenMultiFrameEncoder", + "QwenMultiFrameWrapper", + "QwenOptimalResolution", + "QwenPromptFormatter", + "QwenPromptInterpolator", + "QwenPromptInterpolatorBatch", + "QwenResolutionSelector", + "QwenTemplateBuilder", + "QwenTemplateBuilderV2", + "QwenTemplateConnector", + "QwenTextEncoderLoader", + "QwenToNativeLatentBridge", + "QwenTokenInfo", + "QwenVAELoader", + "QwenVAENormalizer", + "QwenVLCLIPLoader", + "QwenVLLoader", + "QwenVLTextEncoder", + "QwenVisionPatchEncoder", + "QwenWANCompareLatents", + "QwenWANConditioningDebug", + "QwenWANKeyframeEditor", + "QwenWANKeyframeExtractor", + "QwenWANLatentDebug" + ], + { + "title_aux": "ComfyUI-QwenImageWanBridge" + } + ], + "https://github.com/fblissjr/ComfyUI-WanActivationEditor": [ + [ + "WanVideoActivationEditor", + "WanVideoAdvancedActivationEditor", + "WanVideoBlockActivationBuilder", + "WanVideoBlockActivationViewer", + "WanVideoBlockStrengthBuilder", + "WanVideoDirectInjector", + "WanVideoEmbeddingAmplifier", + "WanVideoEmbeddingAnalyzer", + "WanVideoEmbeddingDatabase", + "WanVideoGuidanceController", + "WanVideoInjectionTester", + "WanVideoLatentEncoder", + "WanVideoLatentInjector", + "WanVideoNoiseController", + "WanVideoProjectionBooster", + "WanVideoSequentialMixer", + "WanVideoStrengthVisualizer", + "WanVideoVectorArithmetic", + "WanVideoVectorDifference", + "WanVideoVectorInterpolation" + ], + { + "title_aux": "ComfyUI-WanActivationEditor" + } + ], + "https://github.com/fblissjr/ComfyUI-WanSeamlessFlow": [ + [ + "WanAdaptiveFlow", + "WanBlendVisualize", + "WanEmbeddingPrevizCanvas", + "WanMinimalCanvasTest", + "WanSmartBlend" + ], + { + "title_aux": "wanvideo - seamless flow" + } + ], + "https://github.com/fblissjr/shrug-prompter": [ + [ + "AccumulationNodeCompat", + "AdvancedVLMSampler", + "AnyTypePassthrough", + "AutoMemoryManager", + "DualProviderConfig", + "GlobalMemoryCleanup", + "ImageToAny", + "LoopAwareResponseIterator", + "LoopAwareVLMAccumulator", + "LoopSafeAccumulator", + "PromptTemplateLoader", + "RemoteTextEncoder", + "RobustImageRangeExtractor", + "SeedPromptGenerator", + "ShrugPrompter", + "SmartImageRangeExtractor", + "TextCleanup", + "TextListCleanup", + "TextListIndexer", + "TextListToString", + "TwoRoundVLMPrompter", + "VLMImagePassthrough", + "VLMImageProcessor", + "VLMImageResizer", + "VLMPrompterFast", + "VLMProviderConfig", + "VLMResponseExtractor", + "VLMResultCollector", + "VLMResultIterator", + "VLMResultsToGeneric", + "VLMStyleRewriter", + "VideoFramePairExtractor", + "VideoSegmentAssembler" + ], + { + "title_aux": "Shrug-Prompter: Unified VLM Integration for ComfyUI" + } + ], + "https://github.com/fcanfora/comfyui-camera-tools": [ + [ + "Load3DAnimation_Adv", + "Load3D_Adv", + "LoadCameraFromFile", + "Preview3D_Adv", + "Preview3D_AdvAnimation_Adv" + ], + { + "title_aux": "comfyui-camera-tools" + } + ], + "https://github.com/fchangjun/Comfyui_MultiSaveImage": [ + [ + "MultiSaveImage", + "SimpleLLMNode" + ], + { + "title_aux": "MultiSaveImage Node" + } + ], + "https://github.com/fearnworks/ComfyUI_FearnworksNodes": [ [ "Count Files in Directory (FW)", "Count Tokens (FW)", + "CountTokens", + "FileCountInDirectory", "Token Count Ranker(FW)", - "Trim To Tokens (FW)" + "TokenCountRanker", + "Trim To Tokens (FW)", + "TrimToTokens" ], { - "title_aux": "Fearnworks Custom Nodes" + "title_aux": "Fearnworks Nodes" + } + ], + "https://github.com/feffy380/comfyui-chroma-cache": [ + [ + "ChromaCache" + ], + { + "title_aux": "Chroma Cache" + } + ], + "https://github.com/feixuetuba/Spleeter": [ + [ + "Spleeter" + ], + { + "title_aux": "Spleeter" + } + ], + "https://github.com/felixszeto/ComfyUI-RequestNodes": [ + [ + "Chainable Upload Image", + "ChainableUploadImage", + "Form Post Request Node", + "FormPostRequestNode", + "Get Request Node", + "GetRequestNode", + "Image To Base64 Node", + "Image To Blob Node", + "ImageToBase64Node", + "ImageToBlobNode", + "Key/Value Node", + "KeyValueNode", + "Post Request Node", + "PostRequestNode", + "Rest Api Node", + "RestApiNode", + "Retry Settings Node", + "RetrySettingNode", + "String Replace Node", + "StringReplaceNode" + ], + { + "title_aux": "ComfyUI-RequestNodes" } ], "https://github.com/fexli/fexli-util-node-comfyui": [ [ + "FEAnyToDict", + "FEAnyToString", "FEBCPrompt", "FEBatchGenStringBCDocker", "FEColor2Image", @@ -7041,15 +24357,21 @@ "FEDataPacker", "FEDataUnpacker", "FEDeepClone", + "FEDictCombine", "FEDictPacker", "FEDictUnpacker", + "FEEncLoraAutoLoader", + "FEEncLoraAutoLoaderStack", "FEEncLoraLoader", "FEExtraInfoAdd", "FEGenStringBCDocker", "FEGenStringGPT", + "FEGenStringNBus", "FEImageNoiseGenerate", "FEImagePadForOutpaint", "FEImagePadForOutpaintByImage", + "FEInterruptCondition", + "FELoadImageQQUrl", "FEOperatorIf", "FEPythonStrOp", "FERandomBool", @@ -7067,6 +24389,38 @@ "title_aux": "fexli-util-node-comfyui" } ], + "https://github.com/fexploit/ComfyUI-AutoLabel": [ + [ + "AutoLabel" + ], + { + "title_aux": "ComfyUI-AutoLabel" + } + ], + "https://github.com/fexploit/ComfyUI-AutoTrimBG": [ + [ + "RonLayers/TrimBg: RonLayersTrimBgUltraV2" + ], + { + "title_aux": "ComfyUI-AutoTrimBG" + } + ], + "https://github.com/fexploit/ComfyUI-Classifier": [ + [ + "ClassifierNode" + ], + { + "title_aux": "ComfyUI-Classifier" + } + ], + "https://github.com/fidecastro/comfyui-llamacpp-client": [ + [ + "LlamaCppClient" + ], + { + "title_aux": "comfyui-llamacpp-client" + } + ], "https://github.com/filipemeneses/comfy_pixelization": [ [ "Pixelization" @@ -7075,33 +24429,221 @@ "title_aux": "Pixelization" } ], + "https://github.com/filliptm/ComfyUI_FL-Trainer": [ + [ + "FL_ImageCaptionSaver", + "FL_KohyaSSAdvConfig", + "FL_KohyaSSDatasetConfig", + "FL_KohyaSSInitWorkspace", + "FL_KohyaSSTrain", + "FL_Kohya_EasyTrain", + "FL_LoadImagesFromDirectoryPath", + "FL_SliderLoraAdvConfig", + "FL_SliderLoraDatasetConfig", + "FL_SliderLoraInitWorkspace", + "FL_SliderLoraTrain" + ], + { + "title_aux": "ComfyUI_FL-Trainer" + } + ], + "https://github.com/filliptm/ComfyUI_Fill-ChatterBox": [ + [ + "FL_ChatterboxDialogTTS", + "FL_ChatterboxTTS", + "FL_ChatterboxVC" + ], + { + "title_aux": "ComfyUI_Fill-ChatterBox" + } + ], "https://github.com/filliptm/ComfyUI_Fill-Nodes": [ [ + "FL_API_Base64_ImageLoader", + "FL_API_ImageSaver", + "FL_AnimeLineExtractor", + "FL_ApplyMask", "FL_Ascii", - "FL_AudioConverter", - "FL_AudioFrameCalculator", - "FL_AudioPreview", + "FL_BatchAlign", + "FL_BlackFrameReject", + "FL_BulkPDFLoader", + "FL_BulletHellGame", + "FL_CaptionSaver_V2", + "FL_CaptionToCSV", + "FL_ClipScanner", "FL_CodeNode", + "FL_ColorPicker", + "FL_Dalle3", "FL_DirectoryCrawl", + "FL_Dither", + "FL_Fal_Kontext", + "FL_Fal_Pixverse", + "FL_Fal_Seedance_i2v", + "FL_Float", + "FL_FractalKSampler", + "FL_GPT_Image1", + "FL_GPT_Image1_ADV", + "FL_GPT_Text", + "FL_GPT_Vision", + "FL_GeminiImageEditor", + "FL_GeminiImageGenADV", + "FL_GeminiTextAPI", + "FL_GeminiVideoCaptioner", + "FL_Glitch", + "FL_GoogleCloudStorage", + "FL_GoogleDriveDownloader", + "FL_GoogleDriveImageDownloader", + "FL_GradGenerator", + "FL_HFDatasetDownloader", + "FL_HFHubModelUploader", + "FL_HF_Character", + "FL_HF_UploaderAbsolute", + "FL_HalftonePattern", + "FL_Hedra_API", + "FL_HexagonalPattern", + "FL_HunyuanDelight", + "FL_ImageAddNoise", + "FL_ImageAddToBatch", + "FL_ImageAdjuster", + "FL_ImageAspectCropper", + "FL_ImageBatch", + "FL_ImageBatchToGrid", + "FL_ImageBatchToImageList", + "FL_ImageBlank", + "FL_ImageCaptionLayout", + "FL_ImageCaptionLayoutPDF", "FL_ImageCaptionSaver", + "FL_ImageCollage", + "FL_ImageCrop", "FL_ImageDimensionDisplay", - "FL_ImageDurationSync", + "FL_ImageListToImageBatch", + "FL_ImageNotes", "FL_ImagePixelator", - "FL_ImageRandomizer" + "FL_ImageRandomizer", + "FL_ImageSelector", + "FL_ImageSlicer", + "FL_ImagesToPDF", + "FL_InfiniteZoom", + "FL_InpaintCrop", + "FL_Inpaint_Stitch", + "FL_JS", + "FL_KSamplerXYZPlot", + "FL_KsamplerBasic", + "FL_KsamplerPlus", + "FL_KsamplerPlusV2", + "FL_KsamplerSettings", + "FL_LoadImage", + "FL_MadLibGenerator", + "FL_Math", + "FL_MirrorAndAppendCaptions", + "FL_ModelInspector", + "FL_NFTGenerator", + "FL_NodeLoader", + "FL_NodePackLoader", + "FL_OllamaCaptioner", + "FL_PDFEncryptor", + "FL_PDFImageExtractor", + "FL_PDFLoader", + "FL_PDFMerger", + "FL_PDFSaver", + "FL_PDFTextExtractor", + "FL_PDFToImages", + "FL_Padding", + "FL_PaddingRemover", + "FL_PaperDrawn", + "FL_PasteByMask", + "FL_PasteOnCanvas", + "FL_PathTypeChecker", + "FL_PixVerseAPI", + "FL_PixelArtShader", + "FL_PixelSort", + "FL_ProResVideo", + "FL_PromptBasic", + "FL_PromptMulti", + "FL_PromptSelector", + "FL_RandomNumber", + "FL_RetroEffect", + "FL_Ripple", + "FL_RunwayAct2", + "FL_RunwayImageAPI", + "FL_SDUltimate_Slices", + "FL_SamplerStrings", + "FL_SaveAndDisplayImage", + "FL_SaveCSV", + "FL_SaveImages", + "FL_SaveWebM", + "FL_SaveWebPImage(SaveImage)", + "FL_SchedulerStrings", + "FL_SendToDiscordWebhook", + "FL_SeparateMaskComponents", + "FL_Shadertoy", + "FL_SimpleGPTVision", + "FL_Switch", + "FL_Switch_Big", + "FL_SystemCheck", + "FL_TetrisGame", + "FL_TextOverlayNode", + "FL_TextToPDF", + "FL_TimeLine", + "FL_UnloadAllModels", + "FL_UnloadModel", + "FL_UpscaleModel", + "FL_VideoBatchSplitter", + "FL_VideoCadence", + "FL_VideoCadenceCompile", + "FL_VideoCaptionSaver", + "FL_VideoCropMask", + "FL_VideoCrossfade", + "FL_VideoCut", + "FL_VideoRecompose", + "FL_VideoTrim", + "FL_WF_Agent", + "FL_WanFirstLastFrameToVideo", + "FL_WordFrequencyGraph", + "FL_ZipDirectory", + "FL_ZipSave", + "GradientImageGenerator", + "SaveWebPImage" ], { "title_aux": "ComfyUI_Fill-Nodes" } ], - "https://github.com/fitCorder/fcSuite/raw/main/fcSuite.py": [ + "https://github.com/flamacore/ComfyUI-YouTubeUploader": [ [ - "fcFloat", - "fcFloatMatic", - "fcHex", - "fcInteger" + "YouTubeAuthNode", + "YouTubeUploaderNode" ], { - "title_aux": "fcSuite" + "title_aux": "ComfyUI YouTube Uploader" + } + ], + "https://github.com/florestefano1975/ComfyUI-Advanced-Sequence-Seed": [ + [ + "AdvancedSequenceSeedNode" + ], + { + "title_aux": "Advanced Sequence Seed Generator" + } + ], + "https://github.com/florestefano1975/ComfyUI-CogVideoX": [ + [ + "CogVideoX Image-2-Video Extended", + "CogVideoX Save Video" + ], + { + "title_aux": "ComfyUI-CogVideoX" + } + ], + "https://github.com/florestefano1975/ComfyUI-HiDiffusion": [ + [ + "HiDiffusionSD15", + "HiDiffusionSD21", + "HiDiffusionSDXL", + "HiDiffusionSDXLTurbo" + ], + { + "title_aux": "ComfyUI HiDiffusion" } ], "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite": [ @@ -7121,7 +24663,12 @@ ], "https://github.com/florestefano1975/comfyui-portrait-master": [ [ - "PortraitMaster" + "PortraitMaster", + "PortraitMasterBaseCharacter", + "PortraitMasterMakeup", + "PortraitMasterPromptStyler", + "PortraitMasterSkinDetails", + "PortraitMasterStylePose" ], { "title_aux": "comfyui-portrait-master" @@ -7176,6 +24723,30 @@ "title_aux": "ComfyUI-Flowty-TripoSR" } ], + "https://github.com/fluffydiveX/ComfyUI-hvBlockswap": [ + [ + "hvBlockSwap" + ], + { + "title_aux": "ComfyUI-hvBlockswap" + } + ], + "https://github.com/flybirdxx/ComfyUI-SDMatte": [ + [ + "SDMatteApply" + ], + { + "title_aux": "ComfyUI-SDMatte" + } + ], + "https://github.com/flycarl/ComfyUI-Pixelate": [ + [ + "ComfyUIPixelate" + ], + { + "title_aux": "ComfyUI-Pixelate" + } + ], "https://github.com/flyingshutter/As_ComfyUI_CustomNodes": [ [ "BatchIndex_AS", @@ -7205,6 +24776,52 @@ "title_aux": "As_ComfyUI_CustomNodes" } ], + "https://github.com/fmatray/ComfyUI_BattlemapGrid": [ + [ + "Battlemap Grid", + "Compass", + "Map Generator", + "Map Generator(Outdoors)" + ], + { + "title_aux": "ComfyUI_BattlemapGrid" + } + ], + "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler": [ + [ + "HyperSDXL1StepUnetScheduler" + ], + { + "title_aux": "ComfyUI-HyperSDXL1StepUnetScheduler (ByteDance)" + } + ], + "https://github.com/fofr/ComfyUI-Prompter-fofrAI": [ + [ + "List sampler \ud83e\udeb4", + "Prompt from template \ud83e\udeb4" + ], + { + "title_aux": "ComfyUI-Prompter-fofrAI" + } + ], + "https://github.com/fofr/comfyui-basic-auth": [ + [ + "BasicAuthSetup" + ], + { + "title_aux": "ComfyUI-Basic-Auth" + } + ], + "https://github.com/fofr/comfyui-fofr-toolkit": [ + [ + "Incrementer \ud83e\udeb4", + "Width and height for scaling image to ideal resolution \ud83e\udeb4", + "Width and height from aspect ratio \ud83e\udeb4" + ], + { + "title_aux": "comfyui-fofr-toolkit" + } + ], "https://github.com/forever22777/comfyui-self-guidance": [ [ "CLIPConditioning", @@ -7215,6 +24832,14 @@ "title_aux": "Self-Guidance nodes" } ], + "https://github.com/fotobudka-team/comfyui-ai-faces": [ + [ + "PhotoVerification" + ], + { + "title_aux": "ComfyUI AI Faces - Photo Verification Node" + } + ], "https://github.com/foxtrot-roger/comfyui-rf-nodes": [ [ "LogBool", @@ -7250,11 +24875,28 @@ "title_aux": "RF Nodes" } ], + "https://github.com/fpgaminer/joycaption_comfyui": [ + [ + "JJC_JoyCaption", + "JJC_JoyCaption_Custom" + ], + { + "title_aux": "JoyCaption Nodes" + } + ], + "https://github.com/fplu/comfyui_lama_with_refiner": [ + [ + "INPAINT_InpaintWithLaMaRefinerModel", + "INPAINT_LoadInpaintLaMaModel" + ], + { + "title_aux": "lama_with_refiner" + } + ], "https://github.com/frankchieng/ComfyUI_Aniportrait": [ [ "AniPortrait_Audio2Video", "AniPortrait_Audio_Path", - "AniPortrait_Generate_Ref_Pose", "AniPortrait_LoadVideoPath", "AniPortrait_Pose_Gen_Video", "AniPortrait_Ref_Image_Path", @@ -7266,12 +24908,241 @@ ], "https://github.com/frankchieng/ComfyUI_MagicClothing": [ [ - "MagicClothing_Generate" + "MagicClothing_Animatediff", + "MagicClothing_Generate", + "MagicClothing_Inpainting" ], { "title_aux": "ComfyUI_MagicClothing" } ], + "https://github.com/frankchieng/ComfyUI_llm_easyanimiate": [ + [], + { + "nodename_pattern": "^FrankChiengEasyAnimate", + "title_aux": "ComfyUI_llm_easyanimiate" + } + ], + "https://github.com/fredconex/ComfyUI-SongBloom": [ + [ + "SongBloomGenerate", + "SongBloomModelLoader" + ], + { + "title_aux": "SongBloom" + } + ], + "https://github.com/fredconex/ComfyUI-SoundFlow": [ + [ + "SoundFlow_Concatenator", + "SoundFlow_DuckCompressor", + "SoundFlow_Equalizer", + "SoundFlow_Fade", + "SoundFlow_GainPitchControl", + "SoundFlow_GetLength", + "SoundFlow_Mixer", + "SoundFlow_PreviewAudio", + "SoundFlow_SetLength", + "SoundFlow_SilenceTrimmer", + "SoundFlow_SimpleCompressor", + "SoundFlow_TrimAudio" + ], + { + "title_aux": "ComfyUI-SoundFlow" + } + ], + "https://github.com/fredconex/ComfyUI-SyncEdit": [ + [ + "SyncTextEditor" + ], + { + "title_aux": "Sync Edit" + } + ], + "https://github.com/fredhopp/comfyui-flipflopnodes": [ + [ + "FF Group Positioner", + "FF Load Image with Metadata", + "FF Text" + ], + { + "title_aux": "comfyui-flipflopnodes" + } + ], + "https://github.com/freelifehacker/ComfyUI-ImgMask2PNG": [ + [ + "ImageMask2PNG" + ], + { + "title_aux": "ComfyUI-ImgMask2PNG" + } + ], + "https://github.com/fsdymy1024/ComfyUI_fsdymy": [ + [ + "IPAdapterLayerWeight", + "Preview Image Without Metadata", + "PreviewImageWithoutMetadata", + "Save Image Without Metadata", + "SaveImageWithoutMetadata", + "ShowText", + "ZhiPuAiNode" + ], + { + "title_aux": "ComfyUI_fsdymy" + } + ], + "https://github.com/fssorc/ComfyUI_FFT": [ + [ + "FFTNode", + "FindFFTSpot", + "InvertFFTNode", + "InvertFFTWithMask" + ], + { + "title_aux": "ComfyUI_FFT" + } + ], + "https://github.com/fssorc/ComfyUI_FaceShaper": [ + [ + "FaceAlignmentCropper", + "FaceShaper", + "FaceShaperComposite", + "FaceShaperCropper", + "FaceShaperFaceMask", + "FaceShaperLoadInsightFaceCropper", + "FaceShaperLoadMediaPipeCropper", + "FaceShaperMatchV2", + "FaceShaperModels", + "FaceShaperShowLandMarks" + ], + { + "title_aux": "ComfyUI_FaceShaper" + } + ], + "https://github.com/fssorc/ComfyUI_RopeWrapper": [ + [ + "RopeVideoCombine", + "RopeWrapper_DetectNode", + "RopeWrapper_FaceRestore", + "RopeWrapper_LoadModels", + "RopeWrapper_LoadSwapInfo", + "RopeWrapper_OptionNode", + "RopeWrapper_SaveSwapInfo", + "RopeWrapper_SwapNode", + "RopeWrapper_SwapNodeTEST" + ], + { + "title_aux": "ComfyUI_RopeWrapper" + } + ], + "https://github.com/fssorc/ComfyUI_pose_inter": [ + [ + "GenTPose", + "PoseModify", + "Pose_Inter", + "Pose_Inter_V2" + ], + { + "title_aux": "ComfyUI_pose_inter" + } + ], + "https://github.com/fuselayer/comfyui-mosaic-blur": [ + [ + "ImageMosaic" + ], + { + "title_aux": "comfyui-mosaic-blur" + } + ], + "https://github.com/g0kuvonlange/ComfyUI-Load-From-URL": [ + [ + "Load LoRA From URL", + "Load LoRAs from JSON", + "Load Video From URL" + ], + { + "title_aux": "ComfyUI Load From URL" + } + ], + "https://github.com/gabe-init/ComfyUI-11labs": [ + [ + "ElevenLabsNode" + ], + { + "title_aux": "ComfyUI-11labs" + } + ], + "https://github.com/gabe-init/ComfyUI-Google-Image-Search": [ + [ + "GoogleImageSearchNode" + ], + { + "title_aux": "ComfyUI-Google-Image-Search" + } + ], + "https://github.com/gabe-init/ComfyUI-Openrouter_node": [ + [ + "OpenRouterNode" + ], + { + "title_aux": "ComfyUI OpenRouter Node" + } + ], + "https://github.com/gabe-init/ComfyUI-String-Similarity": [ + [ + "StringSimilarity" + ], + { + "title_aux": "ComfyUI-String-Similarity" + } + ], + "https://github.com/game4d/ComfyUI-BDsInfiniteYou": [ + [ + "InfiniteYou_Image", + "InfiniteYou_Load" + ], + { + "title_aux": "ComfyUI-BDsInfiniteYou" + } + ], + "https://github.com/gasparuff/CustomSelector": [ + [ + "CustomSelector" + ], + { + "title_aux": "comfyui-customselector" + } + ], + "https://github.com/gelasdev/ComfyUI-FLUX-BFL-API": [ + [ + "FluxConfig_BFL", + "FluxDeleteFinetune_BFL", + "FluxDevRedux_BFL", + "FluxDev_BFL", + "FluxFinetuneDetails_BFL", + "FluxFinetuneStatus_BFL", + "FluxFinetune_BFL", + "FluxKontextMax_BFL", + "FluxKontextPro_BFL", + "FluxMyFinetunes_BFL", + "FluxPro11Redux_BFL", + "FluxPro11UltraFinetune_BFL", + "FluxPro11UltraRedux_BFL", + "FluxPro11Ultra_BFL", + "FluxPro11_BFL", + "FluxProCannyFinetune_BFL", + "FluxProCanny_BFL", + "FluxProDepthFinetune_BFL", + "FluxProDepth_BFL", + "FluxProFillFinetune_BFL", + "FluxProFill_BFL", + "FluxProFinetune_BFL", + "FluxPro_BFL" + ], + { + "title_aux": "ComfyUI-FLUX-BFL-API" + } + ], "https://github.com/gemell1/ComfyUI_GMIC": [ [ "GmicCliWrapper", @@ -7281,61 +25152,35 @@ "title_aux": "ComfyUI_GMIC" } ], - "https://github.com/get-salt-AI/SaltAI": [ + "https://github.com/geocine/geocine-comfyui": [ [ - "LLMChat", - "LLMChatEngine", - "LLMChatMessageConcat", - "LLMChatMessages", - "LLMChatMessagesAdv", - "LLMComplete", - "LLMDirectoryReader", - "LLMHtmlComposer", - "LLMHtmlRepair", - "LLMJSONQueryEngine", - "LLMJsonComposer", - "LLMJsonRepair", - "LLMMarkdownComposer", - "LLMMarkdownRepair", - "LLMNotionReader", - "LLMPostProcessDocuments", - "LLMQueryEngine", - "LLMQueryEngineAdv", - "LLMRegexCreator", - "LLMRegexRepair", - "LLMRssReaderNode", - "LLMSemanticSplitterNodeParser", - "LLMSentenceSplitterNodeCreator", - "LLMServiceContextAdv", - "LLMServiceContextDefault", - "LLMSimpleWebPageReader", - "LLMSummaryIndex", - "LLMTrafilaturaWebReader", - "LLMTreeIndex", - "LLMVectorStoreIndex", - "LLMYamlComposer", - "LLMYamlRepair", - "OPAC", - "OPAC2Floats", - "OPACList2ExecList", - "OPACListVariance", - "OPACPerlinSettings", - "OPACTransformImages", - "OPCSLayerExtractor", - "OPCScheduler", - "OpenAIModel", - "ParallaxMotion", - "SAIPrimitiveConverter", - "SAIStringRegexSearchMatch", - "SAIStringRegexSearchReplace", - "SaltAIStableVideoDiffusion", - "SaltInfo", - "SaltInput", - "SaltOutput", - "ScheduledImageAdjust" + "Image Scale", + "Image Selector", + "LoRA Name List", + "Prompt Text", + "Seed to Noise", + "ShowTextNode", + "Text Replace" ], { - "title_aux": "SaltAI-Open-Resources" + "title_aux": "geocine-comfyui" + } + ], + "https://github.com/georgitsenov/ComfyUI-R2": [ + [ + "S3SaveNode" + ], + { + "title_aux": "ComfyUI S3 Save Node" + } + ], + "https://github.com/ggarra13/ComfyUI-mrv2": [ + [ + "mrv2AnnotationsImageNode", + "mrv2SaveEXRImage" + ], + { + "title_aux": "ComfyUI-mrv2" } ], "https://github.com/giriss/comfy-image-saver": [ @@ -7354,13 +25199,122 @@ "title_aux": "Save Image with Generation Metadata" } ], + "https://github.com/gisu/comfyui-foxpack": [ + [ + "Add_To_List", + "BaseSamplerSetup", + "Big_Prompter", + "Change_Entries_In_A_List", + "Change_Entry_From_List", + "CheckpointMetaExtractor", + "CheckpointSelector", + "Complete_Setup", + "Convert_Into", + "Negate_Boolean", + "Optional_Value_Override", + "OverrideSamplerSetup", + "Override_Value_If_Unset", + "Pick_Value_From_Dict", + "Pick_Values_From_List", + "Refine_Prompt", + "Refine_Setup", + "Remap_Values", + "Remove_Values_From_List", + "Select_By_Index", + "Select_Line_By_Index", + "Select_String_By_Index", + "SetupSelector", + "Show_Type", + "Split_Entry_In_2Chunks", + "Split_Entry_In_4Chunks", + "Split_Entry_In_6Chunks", + "Split_Entry_In_8Chunks", + "Step_Denoise", + "UniversalLatentHelper", + "Universal_VAE_Loader" + ], + { + "title_aux": "foxpack" + } + ], + "https://github.com/gitadmini/comfyui_extractstoryboards": [ + [ + "Example", + "ExtractStoryboards_xuhuan1024", + "IntBatchSize_xuhuan1024", + "IntBatch_xuhuan1024" + ], + { + "title_aux": "ExtractStoryboards" + } + ], + "https://github.com/githubYiheng/ComfyUI_Change_IMAGE_BOREDER": [ + [ + "ChangeImageBorder" + ], + { + "title_aux": "ComfyUI_Change_IMAGE_BOREDER" + } + ], + "https://github.com/githubYiheng/ComfyUI_GetFileNameFromURL": [ + [ + "GetFileNameFromURL" + ], + { + "title_aux": "ComfyUI_GetFileNameFromURL" + } + ], + "https://github.com/githubYiheng/comfyui_kmeans_filter": [ + [ + "ImageKmeansFilter" + ], + { + "title_aux": "comfyui_kmeans_filter" + } + ], + "https://github.com/githubYiheng/comfyui_meanshift_filter": [ + [ + "ImageMeanshiftFilter" + ], + { + "title_aux": "comfyui_meanshift_filter" + } + ], + "https://github.com/githubYiheng/comfyui_private_postprocessor": [ + [ + "ImageCPostprocessor", + "PrivateImageMask" + ], + { + "title_aux": "comfyui_private_postprocessor" + } + ], "https://github.com/glibsonoran/Plush-for-ComfyUI": [ [ + "AI Chooser", + "Add Parameters", "AdvPromptEnhancer", + "Custom API Key", "DalleImage", "Enhancer", + "GPT Image", + "Gemini Image", + "Image Mixer", + "Imagen Image", "ImgTextSwitch", + "Load Remote Models", + "LoadText|plush", + "Model-CLIP Output Switch", + "ParseJSON", "Plush-Exif Wrangler", + "Random Image Output", + "Random Mixer", + "Random Output", + "Remove Text", + "SaveText|plush", + "Tagger", + "Text (Any)", + "Type Converter", "mulTextSwitch" ], { @@ -7369,16 +25323,35 @@ ], "https://github.com/glifxyz/ComfyUI-GlifNodes": [ [ + "FilmGrain", + "FluxReduxFloatRamp", "GlifConsistencyDecoder", "GlifPatchConsistencyDecoderTiled", + "GlifVariable", + "HFHubEmbeddingLoader", "HFHubLoraLoader", + "ImagePaddingAdvanced", "ImageToMultipleOf", + "LoraLoaderFromURL", "SDXLAspectRatio" ], { "title_aux": "ComfyUI-GlifNodes" } ], + "https://github.com/glitchinthemetrix16/ComfyUI-Roop": [ + [ + "RoopBatchFaceSwap", + "RoopFaceSwap", + "RoopFaceSwapVideo", + "RoopFaceSwapWithEnhancer", + "RoopSendWebhookFile", + "RoopSendWebhookImage" + ], + { + "title_aux": "ComfyUI Roop Custom Nodes" + } + ], "https://github.com/glowcone/comfyui-base64-to-image": [ [ "LoadImageFromBase64" @@ -7387,6 +25360,85 @@ "title_aux": "Load Image From Base64 URI" } ], + "https://github.com/glowcone/comfyui-string-converter": [ + [ + "StringToFloat", + "StringToInt" + ], + { + "title_aux": "String Converter" + } + ], + "https://github.com/gmorks/ComfyUI-Animagine-Prompt": [ + [ + "AnimaginePrompt", + "MultiWildcardLoader", + "MultilineTextInput", + "TextFileLoader" + ], + { + "title_aux": "ComfyUI-Animagine-Prompt" + } + ], + "https://github.com/gmorks/ComfyUI-SendToDiscord": [ + [ + "PreviewImageWithDiscord" + ], + { + "title_aux": "ComfyUI-SendToDiscord" + } + ], + "https://github.com/goburiin/nsfwrecog-comfyui": [ + [ + "NSFWDetectorNode" + ], + { + "title_aux": "nsfwrecog-comfyui" + } + ], + "https://github.com/godmt/ComfyUI-IP-Composer": [ + [ + "IPCompConceptMerge", + "IPCompConceptSubspace", + "IPCompLoadOpenCLIP", + "IPLoadConceptSubspace", + "IPSaveConceptSubspace" + ], + { + "title_aux": "ComfyUI-IP-Composer" + } + ], + "https://github.com/godmt/ComfyUI-List-Utils": [ + [ + "GODMT_AnyCast", + "GODMT_AnyToDict", + "GODMT_BatchGetByIndex", + "GODMT_BatchItemCast", + "GODMT_BatchSlice", + "GODMT_BatchToList", + "GODMT_CreateArange", + "GODMT_CreateBatch", + "GODMT_CreateLinspace", + "GODMT_CreateList", + "GODMT_CreateRange", + "GODMT_Exec", + "GODMT_GetLength", + "GODMT_GetShape", + "GODMT_GetWidgetsValues", + "GODMT_ListDir", + "GODMT_ListGetByIndex", + "GODMT_ListSlice", + "GODMT_ListToBatch", + "GODMT_MergeBatch", + "GODMT_MergeList", + "GODMT_Pack", + "GODMT_SplitString", + "GODMT_Unpack" + ], + { + "title_aux": "ComfyUI-List-Utils" + } + ], "https://github.com/godspede/ComfyUI_Substring": [ [ "SubstringTheory" @@ -7419,29 +25471,83 @@ "title_aux": "ComfyUI-Texture-Simple" } ], + "https://github.com/gokayfem/ComfyUI-fal-API": [ + [ + "CombinedVideoGeneration_fal", + "FluxDev_fal", + "FluxGeneral_fal", + "FluxLoraTrainer_fal", + "FluxLora_fal", + "FluxPro11_fal", + "FluxProKontextMulti_fal", + "FluxProKontextTextToImage_fal", + "FluxProKontext_fal", + "FluxPro_fal", + "FluxSchnell_fal", + "FluxUltra_fal", + "Hidreamfull_fal", + "HunyuanVideoLoraTrainer_fal", + "Ideogramv3_fal", + "Imagen4Preview_fal", + "KlingMaster_fal", + "KlingPro10_fal", + "KlingPro16_fal", + "Kling_fal", + "LLM_fal", + "LoadVideoURL", + "LtxVideoTrainer_fal", + "LumaDreamMachine_fal", + "MiniMaxSubjectReference_fal", + "MiniMaxTextToVideo_fal", + "MiniMax_fal", + "Recraft_fal", + "RunwayGen3_fal", + "Sana_fal", + "SeedEditV3_fal", + "SeedanceImageToVideo_fal", + "SeedanceTextToVideo_fal", + "Upscaler_fal", + "VLM_fal", + "Veo2ImageToVideo_fal", + "Veo3_fal", + "VideoUpscaler_fal", + "WanLoraTrainer_fal", + "WanPro_fal" + ], + { + "title_aux": "ComfyUI-fal-API" + } + ], "https://github.com/gokayfem/ComfyUI_VLM_nodes": [ [ "AudioLDM2Node", "ChatMusician", "CreativeArtPromptGenerator", - "Internlm", "Joytag", "JsonToText", "KeywordExtraction", "Kosmos2model", "LLMLoader", + "LLMOptionalMemoryFreeAdvanced", + "LLMOptionalMemoryFreeSimple", "LLMPromptGenerator", "LLMSampler", "LLava Loader Simple", + "LLavaOptionalMemoryFreeAdvanced", + "LLavaOptionalMemoryFreeSimple", "LLavaPromptGenerator", "LLavaSamplerAdvanced", "LLavaSamplerSimple", "LlavaClipLoader", "MCLLaVAModel", + "MiniCPMNode", + "MolmoNode", "MoonDream", "Moondream2model", + "Paligemma", "PlayMusic", "PromptGenerateAPI", + "Qwen2VLNode", "SaveAudioNode", "SimpleText", "StructuredOutput", @@ -7453,6 +25559,353 @@ "title_aux": "VLM_nodes" } ], + "https://github.com/goldwins520/Comfyui_saveimg2webdav": [ + [ + "SaveFileToWebDAV", + "SaveImageToWebDAV" + ], + { + "title_aux": "Save Image To Webdav" + } + ], + "https://github.com/gonzalu/ComfyUI_YFG_Comical": [ + [ + "Image10Switcher_node", + "Image15Switcher_node", + "Image20Switcher_node", + "Image3Switcher_node", + "Image5Switcher_node", + "MonoClip_node", + "PixelArt_node", + "RandomOrgTrueRandomNumber_node", + "VAEDecodePreview_node", + "image2contrastMask_node", + "image2imbgg_node", + "image_halftone", + "image_histograms_node", + "image_histograms_node_compact", + "images_side_by_side", + "imgbbLoader_node", + "smartCheckpointLoader_node", + "storeURL_node", + "textMaskOverlay_node" + ], + { + "author": "Manny Gonzalez", + "description": "Utility custom nodes for special effects, image manipulation and quality of life tools.", + "nickname": "\ud83d\udc2f YFG Comical Nodes", + "title": "\ud83d\udc2f YFG Comical Nodes", + "title_aux": "\ud83d\ude38 YFG Comical Nodes" + } + ], + "https://github.com/gorillaframeai/GF_nodes": [ + [ + "GFrbmg2", + "GFrbmg2Plus" + ], + { + "title_aux": "GFrbmg2" + } + ], + "https://github.com/gorillaframeai/GF_translate": [ + [ + "GFDeepTranslate", + "GFJsonTranslate" + ], + { + "title_aux": "GF_translate" + } + ], + "https://github.com/greengerong/ComfyUI-JanusPro-PL": [ + [ + "JanusProImageGenerator", + "JanusProImageUnderstanding", + "JanusProModelLoader" + ], + { + "title_aux": "Janus-Pro ComfyUI Plugin" + } + ], + "https://github.com/gremlation/ComfyUI-ImageLabel": [ + [ + "gremlation:ComfyUI-ImageLabel:ImageLabel" + ], + { + "title_aux": "ComfyUI-ImageLabel" + } + ], + "https://github.com/gremlation/ComfyUI-JMESPath": [ + [ + "gremlation:ComfyUI-JMESPath" + ], + { + "title_aux": "ComfyUI-JMESPath" + } + ], + "https://github.com/gremlation/ComfyUI-ViewData": [ + [ + "gremlation:ComfyUI-ViewData:ViewData" + ], + { + "title_aux": "ComfyUI-ViewData" + } + ], + "https://github.com/gremlation/ComfyUI-jq": [ + [ + "gremlation:ComfyUI-jq" + ], + { + "title_aux": "ComfyUI-jq" + } + ], + "https://github.com/griptape-ai/ComfyUI-Griptape": [ + [ + "Griptape Agent Config: Amazon Bedrock Drivers", + "Griptape Agent Config: Amazon Bedrock [DEPRECATED]", + "Griptape Agent Config: Anthropic Drivers", + "Griptape Agent Config: Anthropic [DEPRECATED]", + "Griptape Agent Config: Azure OpenAI Drivers", + "Griptape Agent Config: Azure OpenAI [DEPRECATED]", + "Griptape Agent Config: Cohere Drivers", + "Griptape Agent Config: Custom Structure", + "Griptape Agent Config: Environment Variables", + "Griptape Agent Config: Expand", + "Griptape Agent Config: Google Drivers", + "Griptape Agent Config: Google [DEPRECATED]", + "Griptape Agent Config: Griptape Cloud", + "Griptape Agent Config: Grok Drivers", + "Griptape Agent Config: Groq Drivers", + "Griptape Agent Config: HuggingFace Drivers", + "Griptape Agent Config: HuggingFace [DEPRECATED]", + "Griptape Agent Config: LM Studio Drivers", + "Griptape Agent Config: LM Studio [DEPRECATED]", + "Griptape Agent Config: Ollama Drivers", + "Griptape Agent Config: Ollama [DEPRECATED]", + "Griptape Agent Config: OpenAI Compatible Drivers", + "Griptape Agent Config: OpenAI Compatible [DEPRECATED]", + "Griptape Agent Config: OpenAI Drivers", + "Griptape Agent Config: OpenAI [DEPRECATED]", + "Griptape Audio Transcription Driver: Groq", + "Griptape Audio Transcription Driver: OpenAI", + "Griptape Code: Run Griptape Cloud Structure", + "Griptape Code: Run Python [DEPRECATED]", + "Griptape Combine: Merge Dictionary", + "Griptape Combine: Merge Inputs", + "Griptape Combine: Merge Texts", + "Griptape Combine: RAG Module List", + "Griptape Combine: Rules List", + "Griptape Combine: String List", + "Griptape Combine: Tool List", + "Griptape Config: Environment Variables", + "Griptape Convert: Agent to Tool", + "Griptape Convert: Text to CLIP Encode", + "Griptape Convert: Text to Combo", + "Griptape Create: Agent", + "Griptape Create: Agent from Config", + "Griptape Create: CLIP Text Encode", + "Griptape Create: Image Inpainting Variation", + "Griptape Create: Image Variation", + "Griptape Create: Image from Text", + "Griptape Create: Key Value Pair", + "Griptape Create: Rules", + "Griptape Create: Text", + "Griptape Display: Artifact", + "Griptape Display: Data as Text", + "Griptape Display: Dictionary", + "Griptape Display: Image", + "Griptape Display: Text", + "Griptape Display: Text as Markdown", + "Griptape Driver: Amazon Bedrock Stable Diffusion", + "Griptape Driver: Amazon Bedrock Titan", + "Griptape Driver: Azure OpenAI Image Generation", + "Griptape Driver: Black Forest Labs Image Generation", + "Griptape Driver: Leonardo.AI", + "Griptape Driver: OpenAI Compatible Image Generation", + "Griptape Driver: OpenAI Image Generation", + "Griptape Embedding Driver: Amazon Bedrock Titan", + "Griptape Embedding Driver: Amazon SageMaker Jumpstart", + "Griptape Embedding Driver: Azure OpenAI", + "Griptape Embedding Driver: Cohere", + "Griptape Embedding Driver: Google", + "Griptape Embedding Driver: HuggingFace", + "Griptape Embedding Driver: LM Studio", + "Griptape Embedding Driver: Ollama", + "Griptape Embedding Driver: OpenAI", + "Griptape Embedding Driver: OpenAI Compatible", + "Griptape Embedding Driver: Voyage AI", + "Griptape End Workflow", + "Griptape Expand: Agent Nodes", + "Griptape Load: Audio", + "Griptape Load: Image From URL", + "Griptape Load: Text", + "Griptape Prompt Driver: Amazon Bedrock", + "Griptape Prompt Driver: Amazon SageMaker Jumpstart", + "Griptape Prompt Driver: Anthropic", + "Griptape Prompt Driver: Azure OpenAI", + "Griptape Prompt Driver: Cohere", + "Griptape Prompt Driver: Google", + "Griptape Prompt Driver: Griptape Cloud", + "Griptape Prompt Driver: Grok", + "Griptape Prompt Driver: Groq", + "Griptape Prompt Driver: HuggingFace", + "Griptape Prompt Driver: LM Studio", + "Griptape Prompt Driver: Ollama", + "Griptape Prompt Driver: OpenAI", + "Griptape Prompt Driver: OpenAI Compatible", + "Griptape RAG Query: Translate Module", + "Griptape RAG Rerank: Text Chunks Module", + "Griptape RAG Response: Footnote Prompt Module", + "Griptape RAG Response: Prompt Module", + "Griptape RAG Response: Text Chunks Module", + "Griptape RAG Retrieve: Text Loader Module", + "Griptape RAG Retrieve: Vector Store Module", + "Griptape RAG: Engine", + "Griptape Replace: Rulesets on Agent", + "Griptape Replace: Tools on Agent", + "Griptape Rerank Driver: Cohere", + "Griptape Rerank Driver: Local", + "Griptape Retrieve: Cloud Ruleset", + "Griptape Run: Agent", + "Griptape Run: Audio Transcription", + "Griptape Run: Cloud Assistant", + "Griptape Run: Image Description", + "Griptape Run: Parallel Image Description", + "Griptape Run: Parallel Prompt Task", + "Griptape Run: Prompt Task", + "Griptape Run: Task", + "Griptape Run: Text Extraction", + "Griptape Run: Text Summary", + "Griptape Run: Text to Speech", + "Griptape Run: Tool Task", + "Griptape Run: Toolkit Task", + "Griptape Save: Text", + "Griptape Set: Default Agent", + "Griptape Start Workflow", + "Griptape Text To Speech Driver: ElevenLabs", + "Griptape Text To Speech Driver: OpenAI", + "Griptape Tool: Audio Transcription", + "Griptape Tool: Calculator", + "Griptape Tool: DateTime", + "Griptape Tool: Extraction", + "Griptape Tool: FileManager", + "Griptape Tool: Griptape Cloud KnowledgeBase", + "Griptape Tool: Prompt Summary", + "Griptape Tool: Query", + "Griptape Tool: RAG", + "Griptape Tool: Text to Speech", + "Griptape Tool: VectorStore", + "Griptape Tool: WebScraper", + "Griptape Tool: WebSearch", + "Griptape Util: Create Agent Modelfile", + "Griptape Util: Create Model from Modelfile", + "Griptape Util: Remove Ollama Model", + "Griptape Util: Switch Node", + "Griptape Vector Store Driver: Amazon OpenSearch", + "Griptape Vector Store Driver: Azure MongoDB", + "Griptape Vector Store Driver: Griptape Cloud", + "Griptape Vector Store Driver: Local", + "Griptape Vector Store Driver: Marqo", + "Griptape Vector Store Driver: MongoDB Atlas", + "Griptape Vector Store Driver: PGVector", + "Griptape Vector Store Driver: Pinecone", + "Griptape Vector Store Driver: Qdrant", + "Griptape Vector Store Driver: Redis", + "Griptape Vector Store: Add Text", + "Griptape Vector Store: Query", + "Griptape WebSearch Driver: DuckDuckGo", + "Griptape WebSearch Driver: Exa", + "Griptape WebSearch Driver: Google", + "Griptape WebSearch Driver: Serper", + "Griptape WebSearch Driver: Tavily" + ], + { + "author": "Jason Schleifer", + "description": "This extension offers various nodes that allow you to work with LLMs using the Griptape Python Framework (https://griptape.ai)", + "nickname": "ComfyUI-Griptape", + "title": "ComfyUI Griptape Nodes", + "title_aux": "ComfyUI Griptape Nodes" + } + ], + "https://github.com/grmchn/ComfyUI-ProportionChanger": [ + [ + "PoseJSONToPoseKeypoint", + "PoseKeypointPreview", + "ProportionChangerDWPoseDetector", + "ProportionChangerDWPoseRender", + "ProportionChangerInterpolator", + "ProportionChangerKeypointDenoiser", + "ProportionChangerKeypointDenoiserAdvanced", + "ProportionChangerParams", + "ProportionChangerReference" + ], + { + "title_aux": "ComfyUI Utilitools Nodes" + } + ], + "https://github.com/grovergol/comfyui-grover-nodes": [ + [ + "OpenPathNode" + ], + { + "title_aux": "ComfyUI Grover Nodes" + } + ], + "https://github.com/gseth/ControlAltAI-Nodes": [ + [ + "BooleanBasic", + "BooleanReverse", + "ChooseUpscaleModel", + "FluxAttentionCleanup", + "FluxAttentionControl", + "FluxControlNetApply", + "FluxResolutionNode", + "FluxSampler", + "FluxUnionControlNetApply", + "GetImageSizeRatio", + "HiDreamResolutionNode", + "IntegerSettings", + "IntegerSettingsAdvanced", + "NoisePlusBlend", + "PerturbationTexture", + "RegionMaskConditioning", + "RegionMaskGenerator", + "RegionMaskProcessor", + "RegionMaskValidator", + "RegionOverlayVisualizer", + "TextBridge", + "ThreeWaySwitch", + "TwoWaySwitch" + ], + { + "title_aux": "ControlAltAI Nodes" + } + ], + "https://github.com/gsusgg/ComfyUI_CozyGen": [ + [ + "CozyGenDynamicInput", + "CozyGenOutput" + ], + { + "title_aux": "ComfyUI-CozyGen" + } + ], + "https://github.com/gt732/ComfyUI-DreamWaltz-G": [ + [ + "DreamWaltzGStageOneTrainer", + "DreamWaltzGStageTwoTrainer" + ], + { + "title_aux": "ComfyUI-DreamWaltz-G" + } + ], + "https://github.com/guerreiro/comfyg-switch": [ + [ + "ComfygSwitch" + ], + { + "title_aux": "Comfyg Switch" + } + ], "https://github.com/guill/abracadabra-comfyui": [ [ "AbracadabraNode", @@ -7462,13 +25915,25 @@ "title_aux": "abracadabra-comfyui" } ], - "https://github.com/guoyk93/yk-node-suite-comfyui": [ + "https://github.com/guyaton/guy-nodes-comfyui": [ [ - "YKImagePadForOutpaint", - "YKMaskToImage" + "GuyRecommendedLatentResCalc" ], { - "title_aux": "y.k.'s ComfyUI node suite" + "title_aux": "guy-nodes-comfyui" + } + ], + "https://github.com/gvfarns/comfyui_gvf": [ + [ + "CheckpointLoaderWithName", + "CropToAspectRatio", + "CropToAspectRatioMinMax", + "IfElseFloat", + "IfElseInt", + "StringContains" + ], + { + "title_aux": "comfyui_gvf" } ], "https://github.com/hackkhai/ComfyUI-Image-Matting": [ @@ -7481,32 +25946,83 @@ "title_aux": "ComfyUI-Image-Matting" } ], - "https://github.com/hay86/ComfyUI_AceNodes": [ + "https://github.com/hanoixan/ComfyUI-DataBeast": [ [ - "ACE_AudioLoad", - "ACE_AudioPlay", - "ACE_AudioSave", - "ACE_Float", - "ACE_ImageColorFix", - "ACE_ImageConstrain", - "ACE_ImageQA", - "ACE_ImageRemoveBackground", - "ACE_Integer", - "ACE_Seed", - "ACE_Text", - "ACE_TextConcatenate", - "ACE_TextGoogleTranslate", - "ACE_TextInputSwitch2Way", - "ACE_TextInputSwitch4Way", - "ACE_TextInputSwitch8Way", - "ACE_TextList", - "ACE_TextPreview", - "ACE_TextSelector", - "ACE_TextToResolution", - "ACE_TextTranslate" + "DBConvertToBoolean //DataBeast", + "DBConvertToFloat //DataBeast", + "DBConvertToInt //DataBeast", + "DBConvertToString //DataBeast", + "DBFloatExpression //DataBeast", + "DBGetBatchList //DataBeast", + "DBGetItem //DataBeast", + "DBLoadData //DataBeast", + "DBStringExpression //DataBeast" ], { - "title_aux": "ComfyUI AceNodes" + "author": "hanoixan", + "description": "This extension provides nodes for controlling data-driven processing in Comfy-UI", + "nickname": "DataBeast", + "title": "DataBeast", + "title_aux": "ComfyUI DataBeast" + } + ], + "https://github.com/hao-ai-lab/FastVideo": [ + [ + "DITConfig", + "InferenceArgs", + "LoadImagePath", + "TextEncoderConfig", + "VAEConfig", + "VideoGenerator" + ], + { + "title_aux": "ComfyUI-FastVideo" + } + ], + "https://github.com/haohaocreates/ComfyUI-HH-Image-Selector": [ + [ + "Image Selector" + ], + { + "title_aux": "ComfyUI-HH-Image-Selector" + } + ], + "https://github.com/hassan-sd/comfyui-image-prompt-loader": [ + [ + "ImagePromptLoader", + "apt", + "author", + "category", + "description", + "files", + "install_type", + "js_path", + "license", + "name", + "nodename_pattern", + "pip", + "preemptions", + "reference", + "repository", + "tags", + "title_aux", + "version" + ], + { + "title_aux": "ComfyUI Image & Prompt Loader" + } + ], + "https://github.com/havvk/ComfyUI_AIIA": [ + [ + "AIIA_E2E_Speaker_Diarization", + "AIIA_FloatProcess_InMemory", + "AIIA_FloatProcess_ToDisk", + "AIIA_GenerateSpeakerSegments", + "AIIA_Utils_Image_Concanate", + "AIIA_VideoCombine" + ], + { + "title_aux": "ComfyUI_AIIA" } ], "https://github.com/hay86/ComfyUI_DDColor": [ @@ -7525,6 +26041,22 @@ "title_aux": "ComfyUI Dreamtalk" } ], + "https://github.com/hay86/ComfyUI_Hallo": [ + [ + "D_HalloNode" + ], + { + "title_aux": "ComfyUI Hallo" + } + ], + "https://github.com/hay86/ComfyUI_LatentSync": [ + [ + "D_LatentSyncNode" + ], + { + "title_aux": "ComfyUI LatentSync" + } + ], "https://github.com/hay86/ComfyUI_MiniCPM-V": [ [ "D_MiniCPM_VQA" @@ -7536,37 +26068,362 @@ "https://github.com/hay86/ComfyUI_OpenVoice": [ [ "D_OpenVoice_STS", - "D_OpenVoice_TTS" + "D_OpenVoice_TTS", + "D_OpenVoice_TTS_V2" ], { "title_aux": "ComfyUI OpenVoice" } ], + "https://github.com/hayd-zju/ICEdit-ComfyUI-official": [ + [ + "SaveImageWebsocket" + ], + { + "title_aux": "ICEdit-ComfyUI-official" + } + ], + "https://github.com/hayde0096/Comfyui-EasySettingpipes": [ + [ + "ConvertAny", + "SamplerSetup", + "SamplerSetupUnpack" + ], + { + "title_aux": "EasySettingpipes" + } + ], + "https://github.com/hben35096/ComfyUI-ReplenishNodes": [ + [ + "Batch Image Blend", + "FLOAT Output", + "Fill Alpha", + "Get Batch Count", + "Image Align", + "Image Blend BG", + "Integer Output", + "Load CLIP Name", + "Load Ckpt Name", + "Load Lora Name", + "Load Sampler Name", + "Load Scheduler Name", + "Load UNET Name", + "Mask Levels Adjust", + "Multi Line Text", + "Multiple Image Blend", + "Multiple Image Blend 2", + "Preview Image-JPEG", + "Reference Resize", + "Seed Output", + "To JPEG", + "To RGB" + ], + { + "title_aux": "ComfyUI-ReplenishNodes" + } + ], + "https://github.com/heheok/comfyui_wan2.1_vace_infinite_helpers": [ + [ + "CyclicCharacterAndBackgroundPrompt", + "LatestVideoFromFolder", + "PrepareControlVideo" + ], + { + "title_aux": "comfyui_wan2.1_vace_infinite_helpers" + } + ], + "https://github.com/hekmon/comfyui-checkpoint-extract": [ + [ + "CLIPModelSaver", + "VAEModelSaver" + ], + { + "title_aux": "comfyui-checkpoint-extract" + } + ], + "https://github.com/hekmon/comfyui-openai-api": [ + [ + "OAIAPIChatCompletion", + "OAIAPIClient", + "OAIAPIDebug", + "OAIAPIDeveloperRole", + "OAIAPIExtraBody", + "OAIAPIFrequencyPenalty", + "OAIAPIMaxTokens", + "OAIAPIPresencePenalty", + "OAIAPISeed", + "OAIAPITemperature", + "OAIAPITopP" + ], + { + "title_aux": "ComfyUI OpenAI API" + } + ], "https://github.com/heshengtao/comfyui_LLM_party": [ [ + "About_us", + "AmapRegeoTool", + "AmapWeatherTool", + "Browser_display", + "CLIPTextEncode_party", + "Combine_Videos_party", + "Dingding", + "Dingding_tool", + "EasyOCR_advance", + "EasyOCR_choose", + "FeishuDownloadAudio", + "FeishuDownloadImage", + "FeishuGetHistory", + "FeishuSendMsg", + "FileOnlineDelete_gitee", + "FileOnlineStorage_gitee", + "FilePathExists", + "FolderCleaner", + "GGUFLoader", + "GeocodeTool", + "Image2Video_party", + "Images2Image", + "KG_csv_toolkit_developer", + "KG_csv_toolkit_user", + "KG_json_toolkit_developer", + "KG_json_toolkit_user", + "KG_neo_toolkit_developer", + "KG_neo_toolkit_user", + "KSampler_party", "LLM", + "LLM_api_loader", "LLM_local", + "LLM_local_loader", + "LLavaLoader", + "LorapathLoader", + "Lorebook", + "Mcp_tool", + "RSS_loader", + "RSS_tool", + "SpeedChange", + "URL2IMG", + "VAEDecode_party", + "accuweather_tool", + "advance_ebd_tool", + "aisuite_loader", + "any2str", + "any_switcher", + "api_function", + "api_tool", + "arxiv_tool", + "bing_loader", + "bing_tool", + "bool_logic", + "browser_use_tool", + "check_text", "check_web_tool", "classify_function", + "classify_function_plus", "classify_persona", + "classify_persona_plus", + "clear_file", + "clear_model", + "custom_persona", + "custom_string_format", + "dall_e_tool", + "discord_bot", + "discord_file_monitor", + "discord_send", + "duckduckgo_loader", + "duckduckgo_tool", + "easy_GGUFLoader", + "easy_LLM_api_loader", + "easy_LLM_local_loader", + "easy_LLavaLoader", + "easy_load_llm_lora", + "easy_vlmLoader", "ebd_tool", + "embeddings_function", + "end_anything", "end_dialog", + "end_workflow", + "extra_parameters", + "feishu", + "feishu_tool", "file_combine", "file_combine_plus", + "file_path_iterator", + "files_read_tool", + "fish_tts", + "fish_whisper", + "flux_persona", + "genai_api_loader", + "get_string", + "github_tool", + "google_loader", "google_tool", + "got_ocr", + "gpt_sovits", + "graph_md_to_html", + "html2img_function", + "ic_lora_persona", + "image_iterator", + "img2path", + "img_hosting", + "interpreter_function", "interpreter_tool", + "interrupt_loop", + "json2text", + "json_extractor", + "json_get_value", + "json_iterator", + "json_parser", + "json_writing", + "keyword_tool", + "list_append", + "list_append_plus", + "list_extend", + "list_extend_plus", + "listen_audio", + "load_SQL_memo", + "load_bool", + "load_ebd", + "load_excel", "load_file", + "load_file_folder", + "load_float", + "load_img_path", + "load_int", + "load_keyword", + "load_llm_lora", + "load_memo", + "load_name", + "load_openai_ebd", "load_persona", + "load_redis_memo", + "load_url", + "load_wikipedia", + "md_to_excel", + "md_to_html", + "mini_error_correction", + "mini_flux_prompt", + "mini_flux_tag", + "mini_intent_recognition", + "mini_ocr", + "mini_party", + "mini_sd_prompt", + "mini_sd_tag", + "mini_story", + "mini_summary", + "mini_translate", + "none2false", + "omost_decode", + "omost_json2py", + "omost_setting", + "open_url_function", + "open_url_tool", + "openai_dall_e", + "openai_ebd_tool", + "openai_tts", + "openai_whisper", + "parameter_combine", + "parameter_combine_plus", + "parameter_function", + "path2img_tool", + "red_book_text_persona", + "replace_string", + "save_SQL_memo", + "save_ebd_database", + "save_memo", + "save_openai_ebd", + "save_redis_memo", + "savepersona", + "searxng_tool", + "send_to_wechat_official", + "show_text_party", + "sql_tool", + "srt2txt", + "start_anything", "start_dialog", + "start_workflow", + "story_json_tool", + "str2float", + "str2int", + "string_combine", + "string_combine_plus", + "string_logic", + "substring", + "svg2html", + "svg2img_function", + "text2json", + "text2parameters", + "text_iterator", + "text_writing", + "time_sleep", "time_tool", "tool_combine", "tool_combine_plus", - "weather_tool" + "translate_persona", + "txt2srt", + "url2img_tool", + "vlmLoader", + "weekday_tool", + "whisper_local", + "wikipedia_tool", + "work_wechat", + "work_wechat_tool", + "workflow_tool", + "workflow_transfer", + "workflow_transfer_v2" ], { "title_aux": "comfyui_LLM_party" } ], + "https://github.com/heshengtao/comfyui_LLM_schools": [ + [ + "CausalLM_trainer", + "IA3_Arguments", + "LLM_Arguments", + "Lora_or_adapter_Arguments", + "P_or_Prompt_Arguments", + "Prefix_Arguments", + "download_dataset", + "get_dataset_name", + "split_dataset" + ], + { + "title_aux": "comfyui_LLM_schools" + } + ], + "https://github.com/hexxacubic/ComfyUI-Prompt_Library": [ + [ + "Double_Prompt_Encode", + "Multi_Wildcard_Loader", + "Prompt_Extender", + "Prompt_Library", + "Simple_Prompt_Library" + ], + { + "title_aux": "ComfyUI-Prompt_Library" + } + ], + "https://github.com/hgabha/WWAA-CustomNodes": [ + [ + "WWAA-BuildString", + "WWAA-LineCount", + "WWAA_AdvancedGridLayoutNode", + "WWAA_AdvancedTextFileReader", + "WWAA_DitherNode", + "WWAA_GBCamera", + "WWAA_GridLayoutNode", + "WWAA_ImageLoader", + "WWAA_ImageToTextFile", + "WWAA_IndexGridLayoutNode", + "WWAA_NestedLoopCounter", + "WWAA_PromptWriter", + "WWAA_SearchReplaceText", + "WWAA_Switch_Int" + ], + { + "title_aux": "WWAA-CustomNodes" + } + ], "https://github.com/hhhzzyang/Comfyui_Lama": [ [ "LamaApply", @@ -7577,6 +26434,23 @@ "title_aux": "Comfyui-Lama" } ], + "https://github.com/hiderminer/ComfyUI-HM-Utilities": [ + [ + "AutoCropImage", + "NormalizeImageWithRectangle" + ], + { + "title_aux": "ComfyUI-HM-Tools" + } + ], + "https://github.com/hieuck/ComfyUI-BiRefNet": [ + [ + "BiRefNet" + ], + { + "title_aux": "ComfyUI-BiRefNet-Fix utils" + } + ], "https://github.com/hiforce/comfyui-hiforce-plugin": [ [ "HfBoolSwitchKSampleStatus", @@ -7610,13 +26484,105 @@ "title_aux": "ComfyUI 3D Pose Editor" } ], - "https://github.com/holchan/ComfyUI-ModelDownloader": [ + "https://github.com/hmwl/ComfyUI_zip": [ [ - "LoRADownloader", - "ModelDownloader" + "CleanFolders", + "CompressImages", + "UnzipToInput" ], { - "title_aux": "ComfyUI-ModelDownloader" + "title_aux": "ComfyUI_zip" + } + ], + "https://github.com/hnmr293/comfyui-savemem": [ + [ + "SaveImagesMemory", + "SaveLatentsMemory" + ], + { + "title_aux": "ComfyUI-SaveMem" + } + ], + "https://github.com/hodanajan/optimal-crop-resolution": [ + [ + "AspectRatioCalculator", + "ResolutionMatcher" + ], + { + "title_aux": "optimal-crop-resolution" + } + ], + "https://github.com/hoveychen/ComfyUI-MusePose-Remaster": [ + [ + "musepose_getposes", + "musepose_inference" + ], + { + "title_aux": "ComfyUI-MusePose-Remaster" + } + ], + "https://github.com/huagetai/ComfyUI-Gaffer": [ + [ + "ApplyICLight", + "CalculateNormalMap", + "GrayScaler", + "ICLightModelLoader", + "LightSource" + ], + { + "title_aux": "comfyui's gaffer(ComfyUI native implementation of IC-Light. )" + } + ], + "https://github.com/huagetai/ComfyUI_LightGradient": [ + [ + "ImageGradient", + "MaskGradient" + ], + { + "title_aux": "Light Gradient for ComfyUI" + } + ], + "https://github.com/huanngzh/ComfyUI-MVAdapter": [ + [ + "BiRefNet", + "ControlImagePreprocessor", + "ControlNetModelLoader", + "CustomLoraModelLoader", + "DiffusersMVModelMakeup", + "DiffusersMVPipelineLoader", + "DiffusersMVSampler", + "DiffusersMVSchedulerLoader", + "DiffusersMVVaeLoader", + "ImagePreprocessor", + "LdmPipelineLoader", + "LdmVaeLoader", + "ViewSelector" + ], + { + "title_aux": "ComfyUI-MVAdapter" + } + ], + "https://github.com/hubentu/ComfyUI-loras-loader": [ + [ + "DynamicLoRALoader", + "ImageBatchToImageList", + "LoRAStringAdapter", + "MultiLoRAnameLoader", + "MultiLoraLoader", + "MultiTriggerLoader" + ], + { + "title_aux": "Multiple LoRA Loader for ComfyUI" + } + ], + "https://github.com/huchenlei/ComfyUI-IC-Light-Native": [ + [ + "ICLightApplyMaskGrey", + "ICLightAppply", + "VAEEncodeArgMax" + ], + { + "title_aux": "ComfyUI-IC-Light-Native" } ], "https://github.com/huchenlei/ComfyUI-layerdiffuse": [ @@ -7634,6 +26600,14 @@ "title_aux": "ComfyUI-layerdiffuse (layerdiffusion)" } ], + "https://github.com/huchenlei/ComfyUI-openpose-editor": [ + [ + "huchenlei.LoadOpenposeJSON" + ], + { + "title_aux": "ComfyUI-openpose-editor" + } + ], "https://github.com/huchenlei/ComfyUI_DanTagGen": [ [ "PromptDanTagGen" @@ -7642,6 +26616,31 @@ "title_aux": "ComfyUI_DanTagGen" } ], + "https://github.com/huchenlei/ComfyUI_densediffusion": [ + [ + "DenseDiffusionAddCondNode", + "DenseDiffusionApplyNode" + ], + { + "title_aux": "ComfyUI DenseDiffusion" + } + ], + "https://github.com/huchenlei/ComfyUI_omost": [ + [ + "OmostDenseDiffusionLayoutNode", + "OmostGreedyBagsTextEmbeddingNode", + "OmostLLMChatNode", + "OmostLLMHTTPServerNode", + "OmostLLMLoaderNode", + "OmostLayoutCondNode", + "OmostLoadCanvasConditioningNode", + "OmostLoadCanvasPythonCodeNode", + "OmostRenderCanvasConditioningNode" + ], + { + "title_aux": "ComfyUI_omost" + } + ], "https://github.com/hughescr/ComfyUI-OpenPose-Keypoint-Extractor": [ [ "Openpose Keypoint Extractor" @@ -7650,6 +26649,54 @@ "title_aux": "OpenPose Keypoint Extractor" } ], + "https://github.com/hugobb/FastGAN-ComfyUI-Node": [ + [ + "GenerateImages", + "LoadFastGAN", + "LoadLatent", + "SampleLatent", + "SaveLatent" + ], + { + "title_aux": "fastgan-comfyui" + } + ], + "https://github.com/huixingyun/ComfyUI-HX-Captioner": [ + [ + "HXOllamaCaptioner" + ], + { + "title_aux": "ComfyUI-HX-Captioner" + } + ], + "https://github.com/huixingyun/ComfyUI-HX-Pimg": [ + [ + "SaveImageWithPromptsWebsocket" + ], + { + "title_aux": "ComfyUI-HX-Pimg" + } + ], + "https://github.com/hujuying/ComfyUI-ModelScope-API": [ + [ + "ModelScopeImageEditNode", + "ModelScopeImageNode", + "ModelScopeTextNode", + "ModelScopeVisionNode" + ], + { + "title_aux": "ComfyUI ModelScope API Node" + } + ], + "https://github.com/hunzmusic/ComfyUI-IG2MV": [ + [ + "DiffusersIGMVModelMakeup", + "DiffusersIGMVSampler" + ], + { + "title_aux": "ComfyUI-IG2MV" + } + ], "https://github.com/hustille/ComfyUI_Fooocus_KSampler": [ [ "KSampler With Refiner (Fooocus)" @@ -7671,15 +26718,275 @@ "title_aux": "hus' utils for ComfyUI" } ], - "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo": [ + "https://github.com/huwenkai26/comfyui-remove-text": [ [ - "EagleImageNode", - "SDXLPromptStyler", - "SDXLPromptStylerAdvanced", - "SDXLResolutionPresets" + "ImageRemoveText" ], { - "title_aux": "Eagle PNGInfo" + "title_aux": "ComfyUI Text Remove Node" + } + ], + "https://github.com/hvppycoding/comfyui-json-prompt-renderer": [ + [ + "ExtractJSON", + "TemplateRenderFromJSON" + ], + { + "title_aux": "json prompt renderer" + } + ], + "https://github.com/hvppycoding/comfyui-random-sampler-scheduler-steps": [ + [ + "RandomSamplerSchedulerSteps" + ], + { + "title_aux": "RandomSamplerSchedulerSteps for ComfyUI" + } + ], + "https://github.com/hwhaocool/ComfyUI-Select-Any": [ + [ + "SelectAnyValues" + ], + { + "title_aux": "ComfyUI-Select-Any" + } + ], + "https://github.com/hybskgks28275/ComfyUI-hybs-nodes": [ + [ + "Random Resolution Selector", + "Resolution Selector", + "Seed List Generator" + ], + { + "title_aux": "ComfyUI-hybs-nodes" + } + ], + "https://github.com/hyunamy/comfy-ui-on-complete-email-me": [ + [ + "OnCompleteEmailMe", + "OnCompletePlaySound", + "OnCompleteWebhook" + ], + { + "title_aux": "Comfy-UI on-complete-email-me" + } + ], + "https://github.com/iDAPPA/ComfyUI-AMDGPUMonitor": [ + [ + "AMDGPUMonitor" + ], + { + "title_aux": "AMD GPU Monitor for ComfyUI" + } + ], + "https://github.com/iFREEGROUP/comfyui-undistort": [ + [ + "IG_LoadCheckerboardImageForCalibrateCamera", + "IG_MatrixAndDistCoefToText", + "IG_Undistort" + ], + { + "title_aux": "comfyui-undistort" + } + ], + "https://github.com/iacoposk8/ComfyUI-Fooocus-Inpaint-Wrapper": [ + [ + "AlignYourStepsScheduler", + "BasicScheduler", + "CLIPLoader", + "CLIPMergeSimple", + "CLIPSave", + "CLIPSetLastLayer", + "CLIPTextEncode", + "CLIPTextEncodeSDXL", + "CLIPTextEncodeSDXLRefiner", + "CLIPVisionEncode", + "CLIPVisionLoader", + "Canny", + "CheckpointLoader", + "CheckpointLoaderSimple", + "CheckpointSave", + "ConditioningAverage", + "ConditioningCombine", + "ConditioningConcat", + "ConditioningSetArea", + "ConditioningSetAreaPercentage", + "ConditioningSetMask", + "ConditioningSetTimestepRange", + "ConditioningZeroOut", + "ControlNetApply", + "ControlNetApplyAdvanced", + "ControlNetLoader", + "CropMask", + "DiffControlNetLoader", + "DiffusersLoader", + "DualCLIPLoader", + "EmptyImage", + "EmptyLatentImage", + "ExponentialScheduler", + "FeatherMask", + "FlipSigmas", + "FooocusInpaintWrapper", + "FreeU", + "FreeU_V2", + "GLIGENLoader", + "GLIGENTextBoxApply", + "GrowMask", + "HyperTile", + "HypernetworkLoader", + "ImageBatch", + "ImageBlend", + "ImageBlur", + "ImageColorToMask", + "ImageCompositeMasked", + "ImageCrop", + "ImageInvert", + "ImageOnlyCheckpointLoader", + "ImageOnlyCheckpointSave", + "ImagePadForOutpaint", + "ImageQuantize", + "ImageScale", + "ImageScaleBy", + "ImageScaleToTotalPixels", + "ImageSharpen", + "ImageToMask", + "ImageUpscaleWithModel", + "InpaintModelConditioning", + "InvertMask", + "JoinImageWithAlpha", + "KSampler", + "KSamplerAdvanced", + "KSamplerSelect", + "KarrasScheduler", + "LatentAdd", + "LatentBatch", + "LatentBatchSeedBehavior", + "LatentBlend", + "LatentComposite", + "LatentCompositeMasked", + "LatentCrop", + "LatentFlip", + "LatentFromBatch", + "LatentInterpolate", + "LatentMultiply", + "LatentRotate", + "LatentSubtract", + "LatentUpscale", + "LatentUpscaleBy", + "LoadImage", + "LoadImageMask", + "LoadLatent", + "LoraLoader", + "LoraLoaderModelOnly", + "MaskComposite", + "MaskToImage", + "ModelMergeAdd", + "ModelMergeBlocks", + "ModelMergeSimple", + "ModelMergeSubtract", + "ModelSamplingContinuousEDM", + "ModelSamplingDiscrete", + "PatchModelAddDownscale", + "PerpNeg", + "PhotoMakerEncode", + "PhotoMakerLoader", + "PolyexponentialScheduler", + "PorterDuffImageComposite", + "PreviewImage", + "RebatchImages", + "RebatchLatents", + "RepeatImageBatch", + "RepeatLatentBatch", + "RescaleCFG", + "SDTurboScheduler", + "SD_4XUpscale_Conditioning", + "SVD_img2vid_Conditioning", + "SamplerCustom", + "SamplerDPMPP_2M_SDE", + "SamplerDPMPP_SDE", + "SamplerTCD", + "SaveAnimatedPNG", + "SaveAnimatedWEBP", + "SaveImage", + "SaveLatent", + "SelfAttentionGuidance", + "SetLatentNoiseMask", + "SolidMask", + "SplitImageWithAlpha", + "SplitSigmas", + "StableZero123_Conditioning", + "StableZero123_Conditioning_Batched", + "StyleModelApply", + "StyleModelLoader", + "TomePatchModel", + "UNETLoader", + "UpscaleModelLoader", + "VAEDecode", + "VAEDecodeTiled", + "VAEEncode", + "VAEEncodeForInpaint", + "VAEEncodeTiled", + "VAELoader", + "VAESave", + "VPScheduler", + "VideoLinearCFGGuidance", + "unCLIPCheckpointLoader", + "unCLIPConditioning" + ], + { + "title_aux": "ComfyUI Fooocus Inpaint Wrapper" + } + ], + "https://github.com/iacoposk8/xor_pickle_nodes": [ + [ + "DecryptXORText", + "Load XOR Pickle From File", + "Save XOR Pickle To File" + ], + { + "title_aux": "ComfyUI XOR Text & Pickle Nodes" + } + ], + "https://github.com/ialhabbal/OcclusionMask": [ + [ + "BatchLoadImages", + "ImageOcclusion" + ], + { + "title_aux": "OcclusionMask" + } + ], + "https://github.com/iamandeepsandhu/ComfyUI-NSFW-Check": [ + [ + "NSFWScore" + ], + { + "title_aux": "NSFW Check for ComfyUI" + } + ], + "https://github.com/icesun963/ComfyUI_HFDownLoad": [ + [ + "Apply EasyOCR V2", + "HFDownLoad_Tool", + "LayerMask: SegmentAnythingUltra V2.1", + "LayerUtility: LaMa V2" + ], + { + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", + "title_aux": "HFDownLoad Node for ComfyUI" + } + ], + "https://github.com/ichabodcole/ComfyUI-Ichis-Pack": [ + [ + "ICHIS_Aspect_Ratio_Plus", + "ICHIS_Extract_Tags", + "ICHIS_Text_Selector" + ], + { + "title_aux": "ComfyUI-Ichis-Pack" } ], "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words": [ @@ -7700,25 +27007,260 @@ "title_aux": "ComfyUI-Lora-Auto-Trigger-Words" } ], + "https://github.com/iemesowum/ComfyUI_IsaacNodes": [ + [ + "I_AmplitudeToWeights", + "I_BinaryAmplitudeGate", + "I_UnmixAudio", + "I_WeightsListToWeights" + ], + { + "author": "Isaac Emesowum", + "description": "This extension offers automatic drums extraction from audio files, as well as a few helper nodes to support my audio synchronization AnimateDiff workflows.", + "nickname": "Isaac's Nodes", + "title": "Isaac's Nodes", + "title_aux": "Isaac's Nodes" + } + ], + "https://github.com/if-ai/ComfyUI-IF_AI_Dreamtalk": [ + [ + "IF_DreamTalk" + ], + { + "title_aux": "IF_Dreamtalk" + } + ], + "https://github.com/if-ai/ComfyUI-IF_AI_HFDownloaderNode": [ + [ + "IF_HFDownload", + "IF_HFDownloadNode" + ], + { + "title_aux": "IF_AI_HFDownloaderNode" + } + ], + "https://github.com/if-ai/ComfyUI-IF_AI_ParlerTTSNode": [ + [ + "IF_ParlerTTS" + ], + { + "title_aux": "IF_ParlerTTSNode" + } + ], "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode": [ [ "IF_WhisperSpeech" ], { - "title_aux": "ComfyUI-IF_AI_WishperSpeechNode" + "title_aux": "IF_AI_WishperSpeechNode" } ], "https://github.com/if-ai/ComfyUI-IF_AI_tools": [ [ "IF_ChatPrompt", + "IF_DisplayOmni", "IF_DisplayText", + "IF_DisplayTextWildcard", "IF_ImagePrompt", + "IF_JoinText", + "IF_LoadImagesS", "IF_PromptMkr", "IF_SaveText", - "IF_saveText" + "IF_StepCounter", + "IF_TextTyper", + "IF_VisualizeGraph", + "IF_tools_LoadImagesS" ], { - "title_aux": "ComfyUI-IF_AI_tools" + "title_aux": "IF_AI_tools" + } + ], + "https://github.com/if-ai/ComfyUI-IF_DatasetMkr": [ + [ + "IF_DatasetMkr", + "IF_HyDatasetMkr" + ], + { + "title_aux": "IF_DatasetMkr" + } + ], + "https://github.com/if-ai/ComfyUI-IF_Gemini": [ + [ + "IFGeminiNode", + "IFPromptCombiner", + "IFTaskPromptManager" + ], + { + "title_aux": "IF_Gemini" + } + ], + "https://github.com/if-ai/ComfyUI-IF_LLM": [ + [ + "IF_DisplayText", + "IF_JoinText", + "IF_LLM", + "IF_LLM_DisplayOmni", + "IF_LLM_DisplayText", + "IF_LLM_DisplayTextWildcard", + "IF_LLM_JoinText", + "IF_LLM_ListModels", + "IF_LLM_LoadImagesS", + "IF_LLM_SaveText", + "IF_LLM_TextTyper", + "IF_LoadImagesS", + "IF_TextTyper", + "IF_saveText", + "ListModelsNode" + ], + { + "title_aux": "IF_LLM" + } + ], + "https://github.com/if-ai/ComfyUI-IF_MemoAvatar": [ + [ + "IF_MemoAvatar", + "IF_MemoCheckpointLoader" + ], + { + "title_aux": "IF_MemoAvatar" + } + ], + "https://github.com/if-ai/ComfyUI-IF_Trellis": [ + [ + "IF_TrellisCheckpointLoader", + "IF_TrellisImageTo3D" + ], + { + "title_aux": "IF_Trellis" + } + ], + "https://github.com/if-ai/ComfyUI-IF_VideoPrompts": [ + [ + "VideoPromptNode" + ], + { + "title_aux": "IF_VideoPrompts" + } + ], + "https://github.com/if-ai/ComfyUI-WanResolutionSelector": [ + [ + "VideoResolutionSelector" + ], + { + "title_aux": "ComfyUI-WanResolutionSelector" + } + ], + "https://github.com/if-ai/ComfyUI-yt_dl": [ + [ + "YouTubeDownloader" + ], + { + "title_aux": "ComfyUI-yt_dl" + } + ], + "https://github.com/if-ai/ComfyUI_HunyuanVideoFoley": [ + [ + "HunyuanVideoFoley", + "HunyuanVideoFoleyDependenciesLoader", + "HunyuanVideoFoleyGeneratorAdvanced", + "HunyuanVideoFoleyModelLoader", + "HunyuanVideoFoleyTorchCompile" + ], + { + "title_aux": "ComfyUI HunyuanVideo-Foley" + } + ], + "https://github.com/if-ai/ComfyUI_IF_AI_LoadImages": [ + [ + "IF_LoadImagesS" + ], + { + "title_aux": "IF_AI_LoadImages" + } + ], + "https://github.com/ifmylove2011/comfyui-missed-tool": [ + [ + "ImageQueueLoader", + "LoadImageA", + "LoraLoad", + "LoraMerge", + "LoraSaver", + "ScaleMultilplePixels", + "TrimBG", + "TrimBGAdvanced", + "TxtSave" + ], + { + "title_aux": "comfyui-missed-tool" + } + ], + "https://github.com/ihmily/ComfyUI-Light-Tool": [ + [ + "Light-Tool: AddBackground", + "Light-Tool: AddBackgroundV2", + "Light-Tool: BoundingBoxCropping", + "Light-Tool: Calculate", + "Light-Tool: ConvertNumType", + "Light-Tool: CropImage", + "Light-Tool: DeserializeJsonString", + "Light-Tool: GetImageSize", + "Light-Tool: GetImagesCount", + "Light-Tool: Hex2RGB", + "Light-Tool: ImageConcat", + "Light-Tool: ImageMaskApply", + "Light-Tool: ImageOverlay", + "Light-Tool: ImageToMask", + "Light-Tool: InputText", + "Light-Tool: InputTextList", + "Light-Tool: InvertMask", + "Light-Tool: IsTransparent", + "Light-Tool: KeyValue", + "Light-Tool: LoadImage", + "Light-Tool: LoadImageFromURL", + "Light-Tool: LoadImagesFromDir", + "Light-Tool: LoadMetadataFromURL", + "Light-Tool: LoadVideo", + "Light-Tool: MaskBoundingBoxCropping", + "Light-Tool: MaskContourExtractor", + "Light-Tool: MaskImageToTransparent", + "Light-Tool: MaskToImage", + "Light-Tool: MorphologicalTF", + "Light-Tool: PhantomTankEffect", + "Light-Tool: PreviewVideo", + "Light-Tool: RGB2Hex", + "Light-Tool: RGB2RGBA", + "Light-Tool: RGBA2RGB", + "Light-Tool: ResizeImage", + "Light-Tool: ResizeImageByMaxSize", + "Light-Tool: ResizeImageByRatio", + "Light-Tool: ResizeImageV2", + "Light-Tool: SaveMetadata", + "Light-Tool: SaveToAliyunOSS", + "Light-Tool: SaveVideo", + "Light-Tool: ScaleImage", + "Light-Tool: SerializeJsonObject", + "Light-Tool: ShowText", + "Light-Tool: SimpleImageOverlay", + "Light-Tool: SimpleTextConnect", + "Light-Tool: SolidColorBackground", + "Light-Tool: TextConnect", + "Light-Tool: UpscaleImage" + ], + { + "author": "Hmily", + "description": "An awesome light tool nodes for ComfyUI.", + "nickname": "ComfyUI-Light-Tool", + "title": "ComfyUI-Light-Tool", + "title_aux": "ComfyUI-Light-Tool" + } + ], + "https://github.com/illuminatianon/comfyui-csvwildcards": [ + [ + "CSVWildcardNode", + "DisplayTextNode" + ], + { + "title_aux": "CSV Wildcard Node for ComfyUI" } ], "https://github.com/imb101/ComfyUI-FaceSwap": [ @@ -7729,6 +27271,148 @@ "title_aux": "FaceSwap" } ], + "https://github.com/infinigence/ComfyUI-Infinigence-Nodes": [ + [ + "DrawTextNode", + "Qwen2.5VL_api" + ], + { + "title_aux": "ComfyUI-Infinigence-Nodes" + } + ], + "https://github.com/inflamously/comfyui-prompt-enhancer": [ + [ + "PROMPT_ENHANCER", + "PROMPT_ENHANCER_CHAIN_CONTROL", + "PROMPT_ENHANCER_CHAIN_RANDOM", + "PROMPT_ENHANCER_REPROMPT" + ], + { + "title_aux": "comfyui-prompt-enhancer" + } + ], + "https://github.com/injet-zhou/comfyui_extra_api": [ + [ + "SimpleGenImageInterface" + ], + { + "title_aux": "comfyui_extra_api" + } + ], + "https://github.com/inventorado/ComfyUI_NNT": [ + [ + "NntAnalyzeInferenceMetrics", + "NntAnalyzeModel", + "NntCompileModel", + "NntDatasetToImageTensor", + "NntDatasetToTargetTensor", + "NntDatasetToTensor", + "NntDatasetToTextTensor", + "NntDefineActivationLayer", + "NntDefineAlibiPositionalBias", + "NntDefineConvLayer", + "NntDefineDenseLayer", + "NntDefineFlattenLayer", + "NntDefineGRULayer", + "NntDefineLSTMLayer", + "NntDefineLinearAttention", + "NntDefineLocalAttention", + "NntDefineMultiheadAttention", + "NntDefineNormLayer", + "NntDefinePoolingLayer", + "NntDefinePositionalEncoding", + "NntDefineRNNLayer", + "NntDefineReformerAttention", + "NntDefineRelativePositionBias", + "NntDefineReshapeLayer", + "NntDefineRotaryPositionalEmbedding", + "NntDefineTransformerEncoderLayer", + "NntDefineTransformerXLAttention", + "NntDefineVanillaAttention", + "NntEditModelLayers", + "NntEvaluatePredictions", + "NntFileLoader", + "NntFineTuneModel", + "NntHuggingFaceDataLoader", + "NntImageToTensor", + "NntInference", + "NntInputLayer", + "NntLoadModel", + "NntMergeExtendModel", + "NntPlotTensors", + "NntRandomTensorGenerator", + "NntSHAPSummaryNode", + "NntSaveModel", + "NntShowLayerStack", + "NntShowModelInfo", + "NntTensorElementToImage", + "NntTensorOperations", + "NntTensorSlice", + "NntTensorToText", + "NntTextBatchProcessor", + "NntTextToTensor", + "NntTimeSeriesDataLoader", + "NntTorchvisionDataLoader", + "NntTorchvisionDatasets", + "NntTrainModel", + "NntTrainingHyperparameters", + "NntVisualizeConfidenceScores", + "NntVisualizeGraph", + "NntVisualizePredictionMetrics", + "NntVisualizeTrainingMetrics" + ], + { + "title_aux": "ComfyUI Neural Network Toolkit NNT " + } + ], + "https://github.com/irreveloper/ComfyUI-DSD": [ + [ + "DSDGeminiPromptEnhancer", + "DSDImageGenerator", + "DSDModelDownloader", + "DSDModelLoader", + "DSDModelSelector", + "DSDResizeSelector" + ], + { + "title_aux": "ComfyUI-DSD" + } + ], + "https://github.com/isaac-mcfadyen/ComfyUI-QwenClip": [ + [ + "CLIPSetQwenImageEditPrompt", + "CLIPSetQwenImagePrompt" + ], + { + "title_aux": "ComfyUI-QwenClip" + } + ], + "https://github.com/iwanders/ComfyUI_nodes": [ + [ + "IW_JsonPickItem", + "IW_ModelHook", + "IW_StringConcat", + "IW_StringFromInt", + "IW_StringNode", + "IW_StringPrint", + "IW_StringReplace", + "IW_StringSave", + "IW_TokenizerVocab" + ], + { + "title_aux": "iwanders/ComfyUI_nodes" + } + ], + "https://github.com/jacklukai/ComfyUI_DeployCash": [ + [ + "DeployCash", + "DeployCash_saveImage", + "DeployCash_textInput" + ], + { + "title_aux": "ComfyUI_DeployCash" + } + ], "https://github.com/jags111/ComfyUI_Jags_Audiotools": [ [ "BatchJoinAudio", @@ -7802,7 +27486,6 @@ "YoloSEGdetectionNode", "YoloSegNode", "color_drop", - "my unique name", "xy_Tiling_KSampler" ], { @@ -7859,6 +27542,281 @@ "title_aux": "Efficiency Nodes for ComfyUI Version 2.0+" } ], + "https://github.com/jaimitoes/ComfyUI_Wan2_1_lora_trainer": [ + [ + "MusubiCompileSettings", + "MusubiMemorySettings", + "MusubiSamplingSettings", + "WanCacheLatents", + "WanCacheTextEncoder", + "WanDatasetConfig", + "WanLoRATrainer" + ], + { + "title_aux": "ComfyUI_Wan2_1_lora_trainer" + } + ], + "https://github.com/jakechai/ComfyUI-JakeUpgrade": [ + [ + "Animation Prompt JK", + "Animation Value JK", + "Base Image Parameters Extract JK", + "Base Model Parameters Extract JK", + "Base Model Parameters JK", + "Base Model Parameters SD3API JK", + "Base Model Pipe Extract JK", + "Base Model Pipe JK", + "Bool Binary And JK", + "Bool Binary OR JK", + "CM_BoolBinaryOperation JK", + "CM_BoolToInt JK", + "CM_BoolUnaryOperation JK", + "CM_BreakoutVec2 JK", + "CM_BreakoutVec3 JK", + "CM_BreakoutVec4 JK", + "CM_ComposeVec2 JK", + "CM_ComposeVec3 JK", + "CM_ComposeVec4 JK", + "CM_FillVec2 JK", + "CM_FillVec3 JK", + "CM_FillVec4 JK", + "CM_FloatBinaryCondition JK", + "CM_FloatBinaryOperation JK", + "CM_FloatToInt JK", + "CM_FloatToNumber JK", + "CM_FloatUnaryCondition JK", + "CM_FloatUnaryOperation JK", + "CM_IntBinaryCondition JK", + "CM_IntBinaryOperation JK", + "CM_IntToBool JK", + "CM_IntToFloat JK", + "CM_IntToNumber JK", + "CM_IntUnaryCondition JK", + "CM_IntUnaryOperation JK", + "CM_NumberBinaryCondition JK", + "CM_NumberBinaryOperation JK", + "CM_NumberToFloat JK", + "CM_NumberToInt JK", + "CM_NumberUnaryCondition JK", + "CM_NumberUnaryOperation JK", + "CM_PromptCombine_JK", + "CM_StringBinaryCondition_JK", + "CM_Vec2BinaryCondition JK", + "CM_Vec2BinaryOperation JK", + "CM_Vec2FloatOperation_JK", + "CM_Vec2ToFloatBinaryOperation JK", + "CM_Vec2ToFloatUnaryOperation JK", + "CM_Vec2UnaryCondition JK", + "CM_Vec2UnaryOperation JK", + "CM_Vec3BinaryCondition JK", + "CM_Vec3BinaryOperation JK", + "CM_Vec3FloatOperation_JK", + "CM_Vec3ToFloatBinaryOperation JK", + "CM_Vec3ToFloatUnaryOperation JK", + "CM_Vec3UnaryCondition JK", + "CM_Vec3UnaryOperation JK", + "CM_Vec4BinaryCondition JK", + "CM_Vec4BinaryOperation JK", + "CM_Vec4FloatOperation_JK", + "CM_Vec4ToFloatBinaryOperation JK", + "CM_Vec4ToFloatUnaryOperation JK", + "CM_Vec4UnaryCondition JK", + "CM_Vec4UnaryOperation JK", + "CR Apply ControlNet JK", + "CR Apply LoRA Stack JK", + "CR Apply LoRA Stack Model Only JK", + "CR Apply Multi-ControlNet Adv JK", + "CR Apply Multi-ControlNet JK", + "CR Aspect Ratio JK", + "CR Boolean JK", + "CR Clip Input Switch JK", + "CR Conditioning Input Switch JK", + "CR ControlNet Input Switch JK", + "CR ControlNet Loader JK", + "CR ControlNet Stack Input Switch JK", + "CR Float Input Switch JK", + "CR Guider Input Switch JK", + "CR Image Input Switch JK", + "CR Impact Pipe Input Switch JK", + "CR Int Input Switch JK", + "CR Latent Input Switch JK", + "CR LoRA Stack JK", + "CR LoRA Stack Model Only JK", + "CR Load LoRA JK", + "CR Mask Input Switch JK", + "CR Mesh Input Switch JK", + "CR Model Input Switch JK", + "CR Multi-ControlNet Param Stack JK", + "CR Multi-ControlNet Stack JK", + "CR Noise Input Switch JK", + "CR Orbit Pose Input Switch JK", + "CR Pipe Input Switch JK", + "CR Ply Input Switch JK", + "CR SD1.5 Aspect Ratio JK", + "CR SD3 Aspect Ratio JK", + "CR SDXL Aspect Ratio JK", + "CR Sampler Input Switch JK", + "CR Sigmas Input Switch JK", + "CR Text Input Switch JK", + "CR TriMesh Input Switch JK", + "CR VAE Input Switch JK", + "Ckpt Loader JK", + "Color Grading JK", + "Create Loop Schedule List", + "Detailer Parameters JK", + "Embedding Picker JK", + "Embedding Picker Multi JK", + "Empty Latent Color JK", + "Evaluate Examples JK", + "Evaluate Floats JK", + "Evaluate Ints JK", + "Evaluate Strings JK", + "Get OrbitPoses From List JK", + "Get Size JK", + "Guidance Default JK", + "HintImageEnchance JK", + "Hy3D Cam Config 20to21 JK", + "IPAAdapterFaceIDBatch", + "IPAdapter", + "IPAdapterAdvanced", + "IPAdapterBatch", + "IPAdapterClipVisionEnhancer", + "IPAdapterClipVisionEnhancerBatch", + "IPAdapterCombineEmbeds", + "IPAdapterCombineParams", + "IPAdapterCombineWeights", + "IPAdapterEmbeds", + "IPAdapterEmbedsBatch", + "IPAdapterEncoder", + "IPAdapterFaceID", + "IPAdapterFaceIDKolors", + "IPAdapterFromParams", + "IPAdapterInsightFaceLoader", + "IPAdapterLoadEmbeds", + "IPAdapterMS", + "IPAdapterModelLoader", + "IPAdapterNoise", + "IPAdapterPreciseComposition", + "IPAdapterPreciseCompositionBatch", + "IPAdapterPreciseStyleTransfer", + "IPAdapterPreciseStyleTransferBatch", + "IPAdapterPromptScheduleFromWeightsStrategy", + "IPAdapterRegionalConditioning", + "IPAdapterSaveEmbeds", + "IPAdapterStyleComposition", + "IPAdapterStyleCompositionBatch", + "IPAdapterTiled", + "IPAdapterTiledBatch", + "IPAdapterUnifiedLoader", + "IPAdapterUnifiedLoaderCommunity", + "IPAdapterUnifiedLoaderFaceID", + "IPAdapterWeights", + "IPAdapterWeightsFromStrategy", + "Image Crop By Mask Resolution Grp JK", + "Image Crop by Mask Params JK", + "Image Crop by Mask Resolution JK", + "Image Remove Alpha JK", + "Image Resize Mode JK", + "Image Upscale Parameters Extract JK", + "Inject Noise Params JK", + "Is Mask Empty JK", + "Ksampler Adv Parameters Default JK", + "Ksampler Parameters Default JK", + "Ksampler Parameters JK", + "Latent Crop Offset JK", + "Latent Upscale Parameters Extract JK", + "Load Image With Alpha JK", + "Load Image With Metadata JK", + "Load String List From JSON JK", + "Make Image Grid JK", + "Metadata Pipe Extract JK", + "Metadata Pipe JK", + "NodesState JK", + "Noise Injection Parameters JK", + "Noise Injection Pipe Extract JK", + "OpenDWPose_JK", + "Orbit Poses JK", + "OrbitLists to OrbitPoses JK", + "OrbitPoses to OrbitLists JK", + "Pipe End JK", + "PrepImageForClipVision", + "Project Setting JK", + "Random Beats JK", + "Refine 1 Parameters Extract JK", + "Refine 2 Parameters Extract JK", + "Refine Model Parameters JK", + "Refine Pipe Extract JK", + "Refine Pipe JK", + "Remove Input JK", + "Reroute Ckpt JK", + "Reroute List JK", + "Reroute Resize JK", + "Reroute Sampler JK", + "Reroute String JK", + "Reroute Upscale JK", + "Reroute Vae JK", + "Rough Outline JK", + "SD3 Prompts Switch JK", + "SDXL Target Res JK", + "SDXLPromptStylerAll", + "SDXLPromptStylerHorror", + "SDXLPromptStylerMisc", + "SDXLPromptStylerbyArtist", + "SDXLPromptStylerbyCamera", + "SDXLPromptStylerbyComposition", + "SDXLPromptStylerbyCyberpunkSurrealism", + "SDXLPromptStylerbyDepth", + "SDXLPromptStylerbyDiva", + "SDXLPromptStylerbyEnvironment", + "SDXLPromptStylerbyFantasySetting", + "SDXLPromptStylerbyFilter", + "SDXLPromptStylerbyFocus", + "SDXLPromptStylerbyFooocus", + "SDXLPromptStylerbyImpressionism", + "SDXLPromptStylerbyLighting", + "SDXLPromptStylerbyMarc", + "SDXLPromptStylerbyMileHigh", + "SDXLPromptStylerbyMood", + "SDXLPromptStylerbyMre", + "SDXLPromptStylerbyMythicalCreature", + "SDXLPromptStylerbyOriginal", + "SDXLPromptStylerbyQuantumRealism", + "SDXLPromptStylerbySai", + "SDXLPromptStylerbySteamPunkRealism", + "SDXLPromptStylerbySubject", + "SDXLPromptStylerbySurrealism", + "SDXLPromptStylerbyTheme", + "SDXLPromptStylerbyTimeofDay", + "SDXLPromptStylerbyTwri", + "SDXLPromptStylerbyWyvern", + "SDXLPromptbyCelticArt", + "SDXLPromptbyContemporaryNordicArt", + "SDXLPromptbyFashionArt", + "SDXLPromptbyGothicRevival", + "SDXLPromptbyIrishFolkArt", + "SDXLPromptbyRomanticNationalismArt", + "SDXLPromptbySportsArt", + "SDXLPromptbyStreetArt", + "SDXLPromptbyVikingArt", + "SDXLPromptbyWildlifeArt", + "Sampler Loader JK", + "Save Image with Metadata Flow JK", + "Save Image with Metadata JK", + "Save String List To JSON JK", + "Scale To Resolution JK", + "Split Image Grid JK", + "String To Combo JK", + "Tiling Mode JK", + "Upscale Method JK", + "Upscale Model Loader JK", + "Upscale Model Parameters Extract JK", + "Upscale Model Parameters JK", + "Vae Loader JK" + ], + { + "title_aux": "ComfyUI-JakeUpgrade" + } + ], "https://github.com/jamal-alkharrat/ComfyUI_rotate_image": [ [ "RotateImage" @@ -7867,13 +27825,264 @@ "title_aux": "ComfyUI_rotate_image" } ], + "https://github.com/jamesWalker55/comfyui-p2ldgan": [ + [ + "P2LDGAN" + ], + { + "title_aux": "ComfyUI - P2LDGAN Node" + } + ], "https://github.com/jamesWalker55/comfyui-various": [ - [], + [ + "BatchLoadImage", + "BatchSaveImage", + "GroupInfoExtractFloat", + "GroupInfoExtractInt", + "GroupLoadBatchImages", + "GroupLoadImage", + "JWAudioBlend", + "JWAudioSaveToPath", + "JWDatetimeString", + "JWImageBatchCount", + "JWImageContrast", + "JWImageExtractFromBatch", + "JWImageFlip", + "JWImageLevels", + "JWImageLoadRGB", + "JWImageLoadRGBA", + "JWImageLoadRGBA From Clipboard", + "JWImageLoadRGBFromClipboard", + "JWImageLoadRGBIfExists", + "JWImageMix", + "JWImageResize", + "JWImageResizeByFactor", + "JWImageResizeByLongerSide", + "JWImageResizeByShorterSide", + "JWImageResizeToSquare", + "JWImageSaturation", + "JWImageSaveToPath", + "JWImageSequenceExtractFromBatch", + "JWImageStackChannels", + "JWInfoHashExtractFloat", + "JWInfoHashExtractInteger", + "JWInfoHashExtractString", + "JWInfoHashFromInfoHashList", + "JWInfoHashFromRangedInfo", + "JWInfoHashListExtractStringList", + "JWInfoHashListFromRangedInfo", + "JWInfoHashPrint", + "JWLoadAudio", + "JWLoadImageSequence", + "JWLoadImagesFromString", + "JWLoopImageSequence", + "JWMaskLikeImageSize", + "JWMaskResize", + "JWMaskSequenceApplyToLatent", + "JWMaskSequenceFromMask", + "JWMaskSequenceJoin", + "JWPrintFloat", + "JWPrintImage", + "JWPrintInteger", + "JWPrintLatent", + "JWPrintMask", + "JWPrintString", + "JWRangedInfoCalculateSubBatch", + "JWReferenceOnly", + "JWSaveImageSequence", + "JWStringListCLIPEncode", + "JWStringListFromString", + "JWStringListFromStrings", + "JWStringListJoin", + "JWStringListRepeat", + "JWStringListToFormatedString", + "JWStringListToString", + "JWUncropCrop", + "JWUncropNewRect", + "JWUncropUncrop", + "JamesLoadImageGroup", + "RAFTEstimate", + "RAFTFlowToImage", + "RAFTLoadFlowFromEXRChannels", + "RCReceiveFloat", + "RCReceiveFloatList", + "RCReceiveInt", + "RCReceiveIntList", + "RCReceiveLatent", + "RCSendLatent" + ], { "nodename_pattern": "^JW", "title_aux": "Various ComfyUI Nodes by Type" } ], + "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils": [ + [ + "PaintingCoder::DynamicImageCombiner", + "PaintingCoder::DynamicMaskCombiner", + "PaintingCoder::ImageLatentCreator", + "PaintingCoder::ImageLatentCreatorPlus", + "PaintingCoder::ImageResolutionAdjuster", + "PaintingCoder::ImageSizeCreator", + "PaintingCoder::ImageSizeCreatorPlus", + "PaintingCoder::ImageSwitch", + "PaintingCoder::ImageToBase64", + "PaintingCoder::LatentSwitch", + "PaintingCoder::MaskPreview", + "PaintingCoder::MaskSwitch", + "PaintingCoder::MultilineTextInput", + "PaintingCoder::OutputToTextConverter", + "PaintingCoder::RemoveEmptyLinesAndLeadingSpaces", + "PaintingCoder::ShowTextPlus", + "PaintingCoder::SimpleTextInput", + "PaintingCoder::TextCombiner", + "PaintingCoder::TextSwitch", + "PaintingCoder::WebImageLoader" + ], + { + "title_aux": "Painting Coder Utils" + } + ], + "https://github.com/jasonjgardner/comfui-substance-designer-integration": [ + [ + "SubstanceBatchProcessor", + "SubstanceCooker", + "SubstanceInfoExtractor", + "SubstanceParameterController", + "SubstanceRenderer" + ], + { + "title_aux": "ComfyUI Substance Designer Integration Plugin" + } + ], + "https://github.com/jax-explorer/ComfyUI-InstantCharacter": [ + [ + "InstantCharacterGenerate", + "InstantCharacterLoadModel", + "InstantCharacterLoadModelFromLocal" + ], + { + "title_aux": "ComfyUI-InstantCharacter" + } + ], + "https://github.com/jax-explorer/ComfyUI-VideoBasic": [ + [ + "VideoBasicLoadVideo", + "VideoBasicMergeVideo", + "VideoBasicVideoSave", + "VideoBasicVideoUpscaleWithModel" + ], + { + "title_aux": "ComfyUI-VideoBasic" + } + ], + "https://github.com/jax-explorer/ComfyUI-VideoBasicLatentSync": [ + [ + "VideoBasicLatentSyncLengthAdjuster", + "VideoBasicLatentSyncNode" + ], + { + "title_aux": "ComfyUI-VideoBasicLatentSync" + } + ], + "https://github.com/jax-explorer/ComfyUI-easycontrol": [ + [ + "EasyControlGenerate", + "EasyControlLoadFlux", + "EasyControlLoadLora", + "EasyControlLoadMultiLora", + "EasyControlLoadStyleLora", + "EasyControlLoadStyleLoraFromCivitai" + ], + { + "title_aux": "ComfyUI-easycontrol" + } + ], + "https://github.com/jax-explorer/comfyui-model-dynamic-loader": [ + [ + "ComfyOnlineSaveFile", + "ComfyOnlineUploadAnything", + "EmbeddingLoader", + "LoadCheckpointFromCivitAI", + "LoadHunyuanLoraFromCivitAI", + "LoadHunyuanLoraFromComfyOnline", + "LoadHunyuanLoraFromHF", + "LoadImageFromURL", + "LoadLoraFromCivitAI", + "LoadLoraFromComfyOnline", + "LoadLoraFromHF", + "LoadLoraFromHFWithToken", + "LoadWanVideoLoraFromCivitAI", + "LoadWanVideoLoraFromComfyOnline", + "LoadWanVideoLoraFromHF", + "SaveAudioAsWav", + "SaveText" + ], + { + "title_aux": "comfyui-model-dynamic-loader" + } + ], + "https://github.com/jax-explorer/fast_video_comfyui": [ + [ + "FastImageListToImageBatch" + ], + { + "title_aux": "fast_video_comfyui" + } + ], + "https://github.com/jeffrey2212/ComfyUI-PonyCharacterPrompt": [ + [ + "Pony Character Prompt Picker" + ], + { + "title_aux": "Pony Character Prompt Picker for ComfyUI" + } + ], + "https://github.com/jeffy5/comfyui-faceless-node": [ + [ + "FacelessFaceRestore", + "FacelessFaceSwap", + "FacelessLoadImageUrl", + "FacelessLoadVideo", + "FacelessLoadVideoImages", + "FacelessLoadVideoUrl", + "FacelessMergeVideos", + "FacelessRemoveBackground", + "FacelessSaveVideo", + "FacelessUploadVideo", + "FacelessVideoFaceRestore", + "FacelessVideoFaceSwap", + "FacelessVideoRemoveBackground" + ], + { + "title_aux": "Faceless Node for ComfyUI" + } + ], + "https://github.com/jerrylongyan/ComfyUI-My-Mask": [ + [ + "MaskToBottonHalfConvexMask", + "MaskToConvexMask" + ], + { + "title_aux": "ComfyUI-My-Mask" + } + ], + "https://github.com/jerrywap/ComfyUI_LoadImageFromHttpURL": [ + [ + "LoadImageFromHttpURL" + ], + { + "title_aux": "ComfyUI_LoadImageFromHttpURL" + } + ], + "https://github.com/jerrywap/ComfyUI_UploadToWebhookHTTP": [ + [ + "UploadToWebHookHTTP" + ], + { + "title_aux": "ComfyUI_UploadToWebhookHTTP" + } + ], "https://github.com/jesenzhang/ComfyUI_StreamDiffusion": [ [ "StreamDiffusion_Loader", @@ -7883,6 +28092,57 @@ "title_aux": "ComfyUI_StreamDiffusion" } ], + "https://github.com/jhj0517/ComfyUI-Moondream-Gaze-Detection": [ + [ + "(Down)Load Moondream Model", + "Gaze Detection", + "Gaze Detection Video" + ], + { + "title_aux": "ComfyUI-Moondream-Gaze-Detection" + } + ], + "https://github.com/jhj0517/ComfyUI-jhj-Kokoro-Onnx": [ + [ + "(Down)Load Kokoro Model", + "Kokoro Audio Generator" + ], + { + "title_aux": "ComfyUI jhj Kokoro Onnx" + } + ], + "https://github.com/jiafuzeng/comfyui-LatentSync": [ + [ + "LatentSyncNode" + ], + { + "title_aux": "LatentSync" + } + ], + "https://github.com/jialuw0830/flux_api_comfyui_plugin": [ + [ + "FluxAPINode", + "KontextAPINode", + "QwenAPINode", + "nodes" + ], + { + "title_aux": "Eigen AI FLUX API Plugin" + } + ], + "https://github.com/jiaqianjing/ComfyUI-MidjourneyHub": [ + [ + "GPTImageEditNode", + "GPTImageGenerateNode", + "MidjourneyActionNode", + "MidjourneyBatchActionNode", + "MidjourneyBlendNode", + "MidjourneyImagineNode" + ], + { + "title_aux": "ComfyUI-MidjourneyHub" + } + ], "https://github.com/jiaxiangc/ComfyUI-ResAdapter": [ [ "ResAdapterLoader" @@ -7891,6 +28151,34 @@ "title_aux": "ResAdapter for ComfyUI" } ], + "https://github.com/jinanlongen/ComfyUI-Prompt-Expander": [ + [ + "PromptExpanderNode" + ], + { + "title_aux": "ComfyUI Prompt Expander Node" + } + ], + "https://github.com/jinchanz/ComfyUI-ADIC": [ + [ + "ADIC_COMMON_API", + "AliCloudOSSUpload", + "ImageTranslateAPI", + "ImageTranslateParamsBuilder", + "ImageTranslateResultExtractor", + "LoadImagesFromUrls", + "MaletteFluxKontextImageScale", + "MaletteImageConcatFromBatch", + "MaletteImageStitch", + "MaletteReferenceLatent", + "MarketImageGenerateWithPolling", + "PythonCodeExecutor", + "StringToJsonArray" + ], + { + "title_aux": "ComfyUI-ADIC" + } + ], "https://github.com/jitcoder/lora-info": [ [ "ImageFromURL", @@ -7915,24 +28203,234 @@ [ "CLIPTextEncodeWithStats", "OpenPoseEditorAdv", - "SaveImgAdv" + "SaveImgAdv", + "SolidMaskAdv" ], { "title_aux": "ULTools for ComfyUI" } ], + "https://github.com/jn-jairo/jn_comfyui": [ + [ + "JN_AreaAround", + "JN_AreaInfo", + "JN_AreaNormalize", + "JN_AreaToMask", + "JN_AreaWidthHeight", + "JN_AreaXY", + "JN_AudioArrayToBatch", + "JN_AudioAutoTune", + "JN_AudioBatchToArray", + "JN_AudioCompare", + "JN_AudioConcatenation", + "JN_AudioGetChannels", + "JN_AudioInfo", + "JN_AudioNoiseReduction", + "JN_AudioNormalize", + "JN_AudioPitch", + "JN_AudioPlot", + "JN_AudioReverberation", + "JN_AudioSampleRate", + "JN_AudioSetChannels", + "JN_AudioSlice", + "JN_AudioSpeed", + "JN_AudioSplitChannels", + "JN_AudioStackChannels", + "JN_AudioTempo", + "JN_AudioTrimSilence", + "JN_AudioVolume", + "JN_Blip", + "JN_BlipLoader", + "JN_BooleanOperation", + "JN_Condition", + "JN_CoolDown", + "JN_CoolDownOutput", + "JN_DatetimeFormat", + "JN_DatetimeInfo", + "JN_DatetimeNow", + "JN_Dump", + "JN_DumpOutput", + "JN_Exec", + "JN_ExecOutput", + "JN_FaceCrop", + "JN_FaceRestoreModelLoader", + "JN_FaceRestoreWithModel", + "JN_FirstActive", + "JN_Flow", + "JN_FlowOutput", + "JN_ImageAddBackground", + "JN_ImageAddMask", + "JN_ImageBatch", + "JN_ImageCenterArea", + "JN_ImageCrop", + "JN_ImageGrid", + "JN_ImageInfo", + "JN_ImageRemoveBackground", + "JN_ImageSharpness", + "JN_ImageSquare", + "JN_ImageToMask", + "JN_ImageUncrop", + "JN_KSampler", + "JN_KSamplerAdvancedParams", + "JN_KSamplerFaceRestoreParams", + "JN_KSamplerResizeInputParams", + "JN_KSamplerResizeMaskAreaParams", + "JN_KSamplerResizeOutputParams", + "JN_KSamplerSeamlessParams", + "JN_KSamplerTileParams", + "JN_KeyValue", + "JN_LoadAudioDirectory", + "JN_LoadImageDirectory", + "JN_LogicOperation", + "JN_MaskBatch", + "JN_MaskInfo", + "JN_MaskToArea", + "JN_MaskToImage", + "JN_MathOperation", + "JN_MathOperationArray", + "JN_MeowHrtfAudio3d", + "JN_MeowHrtfModel", + "JN_MeowHrtfPosition", + "JN_MeowLoadVoice", + "JN_MeowSaveVoice", + "JN_MeowSentenceSplit", + "JN_MeowTts", + "JN_MeowTtsAudioToContext", + "JN_MeowTtsCoarse", + "JN_MeowTtsDecode", + "JN_MeowTtsFine", + "JN_MeowTtsLoadContext", + "JN_MeowTtsModel", + "JN_MeowTtsModelCoarse", + "JN_MeowTtsModelEncodec", + "JN_MeowTtsModelFine", + "JN_MeowTtsModelHubert", + "JN_MeowTtsModelSemantic", + "JN_MeowTtsSaveContext", + "JN_MeowTtsSemantic", + "JN_MeowTtsTokenizerHubert", + "JN_MeowVc", + "JN_MeowVcConvertVoice", + "JN_MeowVcEncodeSource", + "JN_MeowVcEncodeTarget", + "JN_MeowVcLoadSpeaker", + "JN_MeowVcModelFreeVC", + "JN_MeowVcModelWavLM", + "JN_MeowVcSaveSpeaker", + "JN_PreviewAudio", + "JN_PreviewImage", + "JN_PreviewMask", + "JN_PrimitiveArrayInfo", + "JN_PrimitiveBatchToArray", + "JN_PrimitiveBoolean", + "JN_PrimitiveFloat", + "JN_PrimitiveInt", + "JN_PrimitivePrompt", + "JN_PrimitiveString", + "JN_PrimitiveStringMultiline", + "JN_PrimitiveStringToArray", + "JN_PrimitiveToArray", + "JN_PrimitiveToBoolean", + "JN_PrimitiveToFloat", + "JN_PrimitiveToInt", + "JN_PrimitiveToString", + "JN_RemBGSession", + "JN_SaveAudio", + "JN_SaveImage", + "JN_Seamless", + "JN_SeamlessBorder", + "JN_SeamlessBorderCrop", + "JN_SelectItem", + "JN_Sleep", + "JN_SleepOutput", + "JN_SliceOperation", + "JN_StopIf", + "JN_StopIfOutput", + "JN_TensorInfo", + "JN_TextConcatenation", + "JN_TextReplace", + "JN_TimedeltaFormat", + "JN_TimedeltaInfo" + ], + { + "title_aux": "JNComfy" + } + ], + "https://github.com/jnxmx/ComfyUI_HuggingFace_Downloader": [ + [ + "Hugging Face Download Folder", + "Hugging Face Download Model" + ], + { + "title_aux": "ComfyUI_HuggingFace_Downloader" + } + ], + "https://github.com/joanna910225/comfyui-housekeeper": [ + [ + "housekeeper-alignment", + "housekeeper-alignment-cmd", + "vue-basic" + ], + { + "title_aux": "HouseKeeper" + } + ], + "https://github.com/joeriben/ai4artsed_comfyui_nodes": [ + [ + "ai4artsed_conditioning_fusion", + "ai4artsed_image_analysis", + "ai4artsed_openrouter_key", + "ai4artsed_prompt_interception", + "ai4artsed_random_artform_generator", + "ai4artsed_random_instruction_generator", + "ai4artsed_random_language_selector", + "ai4artsed_stabilitai_key", + "ai4artsed_switch_promptsafety", + "ai4artsed_t5_clip_fusion", + "ai4artsed_text_remix", + "ai4artsed_vector_dimension_eliminator" + ], + { + "title_aux": "AI4ArtsEd Nodes" + } + ], + "https://github.com/john-mnz/ComfyUI-Inspyrenet-Rembg": [ + [ + "InspyrenetRembg", + "InspyrenetRembgAdvanced" + ], + { + "title_aux": "ComfyUI-Inspyrenet-Rembg" + } + ], "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative": [ [ "LCMScheduler", "SamplerLCMAlternative", - "SamplerLCMCycle" + "SamplerLCMCycle", + "SamplerLCMDualNoise", + "SamplerLCMDuoFusion", + "SamplerLCMParallel" ], { "title_aux": "ComfyUI-sampler-lcm-alternative" } ], + "https://github.com/joosthel/ComfyUI-CVOverlay": [ + [ + "CV_AestheticOverlay", + "CV_BlobTracker", + "CV_ModelLoader", + "CV_ObjectDetector" + ], + { + "title_aux": "ComfyUI-CVOverlay" + } + ], "https://github.com/jordoh/ComfyUI-Deepface": [ [ + "AverageList", + "DeepfaceAnalyze", "DeepfaceExtractFaces", "DeepfaceVerify" ], @@ -7940,6 +28438,66 @@ "title_aux": "ComfyUI Deepface" } ], + "https://github.com/joreyaesh/comfyui_scroll_over_textarea": [ + [ + "ScrollOverTextareaDummyNode" + ], + { + "title_aux": "ComfyUI Scroll Over Textarea" + } + ], + "https://github.com/joreyaesh/comfyui_touchpad_scroll_controller.enableTouchpadScroll": [ + [ + "TouchpadScrollControllerDummyNode" + ], + { + "title_aux": "ComfyUI Touchpad Scroll Controller" + } + ], + "https://github.com/jqy-yo/Comfyui-BBoxLowerMask2": [ + [ + "BBoxLowerMask2" + ], + { + "title_aux": "BBoxLowerMask2" + } + ], + "https://github.com/jqy-yo/comfyui-gemini-nodes": [ + [ + "GeminiFieldExtractor", + "GeminiImageBatchProcessor", + "GeminiImageEditor", + "GeminiImageGenADV", + "GeminiImageProcessor", + "GeminiJSONExtractor", + "GeminiJSONParser", + "GeminiStructuredOutput", + "GeminiTextAPI", + "GeminiVideoCaptioner", + "GeminiVideoGenerator", + "UnofficialGeminiAPI", + "UnofficialGeminiStreamAPI" + ], + { + "title_aux": "ComfyUI Gemini Nodes" + } + ], + "https://github.com/jroc22/ComfyUI-CSV-prompt-builder": [ + [ + "BuildPromptFromCSV" + ], + { + "title_aux": "ComfyUI-CSV-prompt-builder" + } + ], + "https://github.com/jstit/comfyui_custom_node_image": [ + [ + "ImageCropCircle" + ], + { + "title_aux": "comfyui_custom_node_image" + } + ], "https://github.com/jtrue/ComfyUI-JaRue": [ [ "Text2Image_jru", @@ -7950,13 +28508,387 @@ "title_aux": "ComfyUI-JaRue" } ], - "https://github.com/jtydhr88/ComfyUI-InstantMesh": [ + "https://github.com/jtrue/ComfyUI-Rect": [ [ - "InstantMeshLoader", - "InstantMeshRun" + "RectCrop", + "RectFill", + "RectMask", + "RectSelect" ], { - "title_aux": "ComfyUI-InstantMesh" + "description": "Rectangle selection and utilities for ComfyUI (modular).", + "nickname": "Rect", + "title": "Rect", + "title_aux": "ComfyUI-Rect" + } + ], + "https://github.com/jtrue/ComfyUI-WordEmbeddings": [ + [ + "WordEmbeddingsEquation", + "WordEmbeddingsExplorer", + "WordEmbeddingsInterpolator", + "WordEmbeddingsLoader", + "WordEmbeddingsLocalModelLoader", + "WordEmbeddingsTokenAxis", + "WordEmbeddingsTokenAxis2D", + "WordEmbeddingsTokenAxis3D", + "WordEmbeddingsTokenCentrality", + "WordEmbeddingsTokenNeighbors" + ], + { + "nodename_pattern": "_jru$", + "title_aux": "ComfyUI-WordEmbeddings" + } + ], + "https://github.com/jtydhr88/ComfyUI-AudioMass": [ + [ + "ComfyUIAudioMass" + ], + { + "title_aux": "ComfyUI-AudioMass" + } + ], + "https://github.com/jtydhr88/ComfyUI-Hunyuan3D-1-wrapper": [ + [ + "Hunyuan3D V1 - Image Loader", + "Hunyuan3D V1 - Image2Views", + "Hunyuan3D V1 - Image2Views Pipeline Load", + "Hunyuan3D V1 - Text2Image", + "Hunyuan3D V1 - Text2Image Pipeline Load", + "Hunyuan3D V1 - Views2Mesh", + "Hunyuan3D V1 - Views2Mesh Pipeline Load" + ], + { + "title_aux": "ComfyUI-Hunyuan3D-1-wrapper" + } + ], + "https://github.com/jtydhr88/ComfyUI-LayerDivider": [ + [ + "LayerDivider - Color Base", + "LayerDivider - Divide Layer", + "LayerDivider - Load SAM Mask Generator", + "LayerDivider - Segment Mask" + ], + { + "title_aux": "ComfyUI LayerDivider" + } + ], + "https://github.com/jtydhr88/ComfyUI-OpenCut": [ + [ + "ComfyUIOpenCut" + ], + { + "title_aux": "ComfyUI-OpenCut" + } + ], + "https://github.com/juddisjudd/ComfyUI-BawkNodes": [ + [ + "BawkSampler", + "DiffusionModelLoader", + "FluxImageSaver", + "FluxWildcardEncode" + ], + { + "title_aux": "Bawk Nodes Collection" + } + ], + "https://github.com/judian17/ComfyUI-Extract_Flux_Lora": [ + [ + "ExtractFluxLoRA" + ], + { + "title_aux": "ComfyUI-Extract_Flux_Lora" + } + ], + "https://github.com/judian17/ComfyUI-JoyCaption-beta-one-hf-llava-Prompt_node": [ + [ + "JoyCaptionOllamaExtraOptions", + "JoyCaptionOllamaPrompter" + ], + { + "title_aux": "ComfyUI-JoyCaption-beta-one-hf-llava-Prompt_node" + } + ], + "https://github.com/judian17/ComfyUI-UniWorld-jd17": [ + [ + "UniWorldEncoderNode", + "UniWorldScheduler", + "UniWorldSiglipEncoder", + "UniWorld_T5_CLIP_Encoder" + ], + { + "title_aux": "ComfyUI-UniWorld-jd17" + } + ], + "https://github.com/judian17/ComfyUI-joycaption-beta-one-GGUF": [ + [ + "JJC_JoyCaption_Custom_GGUF", + "JJC_JoyCaption_GGUF", + "JJC_JoyCaption_GGUF_ExtraOptions" + ], + { + "title_aux": "ComfyUI JoyCaption-Beta-GGUF Node" + } + ], + "https://github.com/judian17/ComfyUI_ZIM": [ + [ + "MaskToBbox_ZIM", + "MaskToPoints_ZIM", + "ZimSegment" + ], + { + "title_aux": "ComfyUI_ZIM" + } + ], + "https://github.com/juehackr/comfyui_fk_server": [ + [ + "FK_3dpose", + "FK_Node", + "FK_ShowBaseNode" + ], + { + "title_aux": "comfyui_fk_server" + } + ], + "https://github.com/jurdnf/ComfyUI-JurdnsIterativeNoiseKSampler": [ + [ + "KSamplerIterativeNoise" + ], + { + "title_aux": "ComfyUI-JurdnsIterativeNoiseKsampler" + } + ], + "https://github.com/jurdnf/ComfyUI-JurdnsModelSculptor": [ + [ + "ModelSculptorFlux", + "ModelSculptorSD3", + "ModelSculptorSDXL" + ], + { + "title_aux": "ComfyUI-JurdnsModelSculptor" + } + ], + "https://github.com/jurdnisglobby/ComfyUI-Jurdns-Groq-Node": [ + [ + "JurdnsGroqAPIPromptEnhancer" + ], + { + "title_aux": "Jurdns Groq API Node" + } + ], + "https://github.com/justUmen/Bjornulf_custom_nodes": [ + [ + "Bjornulf_APIGenerateCivitAI", + "Bjornulf_APIGenerateCivitAIAddLORA", + "Bjornulf_APIGenerateFalAI", + "Bjornulf_APIGenerateFlux", + "Bjornulf_APIGenerateGPT4o", + "Bjornulf_APIGenerateStability", + "Bjornulf_AddLineNumbers", + "Bjornulf_AllLoraSelector", + "Bjornulf_AnythingToFloat", + "Bjornulf_AnythingToInt", + "Bjornulf_AnythingToText", + "Bjornulf_ApiDynamicTextInputs", + "Bjornulf_AudioPreview", + "Bjornulf_AudioVideoSync", + "Bjornulf_BoundingRectangleMask", + "Bjornulf_BoundingRectangleMaskBlur", + "Bjornulf_CharacterDescriptionGenerator", + "Bjornulf_CivitAILoraSelector", + "Bjornulf_CivitAILoraSelectorHunyuan", + "Bjornulf_CivitAILoraSelectorPONY", + "Bjornulf_CivitAILoraSelectorSD15", + "Bjornulf_CivitAILoraSelectorSDXL", + "Bjornulf_CivitAIModelSelectorFLUX_D", + "Bjornulf_CivitAIModelSelectorFLUX_S", + "Bjornulf_CivitAIModelSelectorPony", + "Bjornulf_CivitAIModelSelectorSD15", + "Bjornulf_CivitAIModelSelectorSDXL", + "Bjornulf_CombineBackgroundOverlay", + "Bjornulf_CombineImages", + "Bjornulf_CombineTexts", + "Bjornulf_CombineTextsByLines", + "Bjornulf_CombineVideoAudio", + "Bjornulf_ConcatVideos", + "Bjornulf_ConcatVideosFromList", + "Bjornulf_ConditionalSwitch", + "Bjornulf_ConvertVideo", + "Bjornulf_DisplayNote", + "Bjornulf_EmptyVideoLatentWithSingle", + "Bjornulf_ExecuteWorkflowNode", + "Bjornulf_FFmpegConfig", + "Bjornulf_FaceSettings", + "Bjornulf_FixFace", + "Bjornulf_FourImageViewer", + "Bjornulf_FreeVRAM", + "Bjornulf_GlobalSeedManager", + "Bjornulf_GrayscaleTransform", + "Bjornulf_GreenScreenToTransparency", + "Bjornulf_HiResFix", + "Bjornulf_HorizontalCutAndShift", + "Bjornulf_HuggingFaceDownloader", + "Bjornulf_IfElse", + "Bjornulf_ImageBlend", + "Bjornulf_ImageDetails", + "Bjornulf_ImageMaskCutter", + "Bjornulf_ImageNote", + "Bjornulf_ImageNoteLoadImage", + "Bjornulf_ImageUpscaleWithModelTransparency", + "Bjornulf_ImagesListToVideo", + "Bjornulf_JSONImagePromptExtractor", + "Bjornulf_KokoroTTS", + "Bjornulf_LargestMaskOnly", + "Bjornulf_LatentResolutionSelector", + "Bjornulf_LineSelector", + "Bjornulf_ListLooper", + "Bjornulf_ListLooperCharacter", + "Bjornulf_ListLooperOutfitFemale", + "Bjornulf_ListLooperOutfitMale", + "Bjornulf_ListLooperScene", + "Bjornulf_ListLooperStyle", + "Bjornulf_ListSelector", + "Bjornulf_LoadCivitAILinks", + "Bjornulf_LoadFromBase64", + "Bjornulf_LoadGlobalVariables", + "Bjornulf_LoadImageWithTransparency", + "Bjornulf_LoadImageWithTransparencyFromPath", + "Bjornulf_LoadImagesFromSelectedFolder", + "Bjornulf_LoadTensor", + "Bjornulf_LoadTextFromFolder", + "Bjornulf_LoadTextFromPath", + "Bjornulf_LoadTextPickMeGlobal", + "Bjornulf_LoaderLoraWithPath", + "Bjornulf_LoopAllLines", + "Bjornulf_LoopBasicBatch", + "Bjornulf_LoopCombosSamplersSchedulers", + "Bjornulf_LoopFloat", + "Bjornulf_LoopImages", + "Bjornulf_LoopInteger", + "Bjornulf_LoopIntegerSequential", + "Bjornulf_LoopLinesSequential", + "Bjornulf_LoopLoraSelector", + "Bjornulf_LoopModelClipVae", + "Bjornulf_LoopModelSelector", + "Bjornulf_LoopRandomSeed", + "Bjornulf_LoopSamplers", + "Bjornulf_LoopSchedulers", + "Bjornulf_LoopTexts", + "Bjornulf_LoopWriteText", + "Bjornulf_LoraSelectorHunyuan", + "Bjornulf_LoraSelectorWanVideo", + "Bjornulf_MatchTextToInput", + "Bjornulf_MathNode", + "Bjornulf_MergeImagesHorizontally", + "Bjornulf_MergeImagesVertically", + "Bjornulf_ModelClipVaeSelector", + "Bjornulf_MultiOpenAIVisionNode", + "Bjornulf_OllamaConfig", + "Bjornulf_OllamaImageVision", + "Bjornulf_OllamaSystemJobSelector", + "Bjornulf_OllamaSystemPersonaSelector", + "Bjornulf_OllamaTalk", + "Bjornulf_OllamaVisionPromptSelector", + "Bjornulf_OpenAIVisionNode", + "Bjornulf_PassPreviewImage", + "Bjornulf_PauseResume", + "Bjornulf_PickInput", + "Bjornulf_PickMe", + "Bjornulf_PlayAudio", + "Bjornulf_PreviewFirstImage", + "Bjornulf_PurgeCLIPNode", + "Bjornulf_RandomFloatNode", + "Bjornulf_RandomImage", + "Bjornulf_RandomIntNode", + "Bjornulf_RandomLineFromInput", + "Bjornulf_RandomLoraSelector", + "Bjornulf_RandomModelClipVae", + "Bjornulf_RandomModelSelector", + "Bjornulf_RandomTexts", + "Bjornulf_ReassembleImageGrid", + "Bjornulf_RemoteTextEncodingWithCLIPs", + "Bjornulf_RemoteVAEDecoderNode", + "Bjornulf_RemoteVAEDecoderNodeTiled", + "Bjornulf_RemoveTransparency", + "Bjornulf_ResizeImage", + "Bjornulf_ResizeImagePercentage", + "Bjornulf_SaveBjornulfLobeChat", + "Bjornulf_SaveGlobalVariables", + "Bjornulf_SaveImagePath", + "Bjornulf_SaveImageToFolder", + "Bjornulf_SaveTensors", + "Bjornulf_SaveText", + "Bjornulf_SaveTmpAudio", + "Bjornulf_SaveTmpImage", + "Bjornulf_SaveTmpVideo", + "Bjornulf_ScramblerCharacter", + "Bjornulf_SelectImageFromList", + "Bjornulf_ShowFloat", + "Bjornulf_ShowInt", + "Bjornulf_ShowJson", + "Bjornulf_ShowStringText", + "Bjornulf_ShowText", + "Bjornulf_SpeechToText", + "Bjornulf_SplitImageGrid", + "Bjornulf_StyleSelector", + "Bjornulf_SwitchAnything", + "Bjornulf_SwitchText", + "Bjornulf_TextAnalyzer", + "Bjornulf_TextGenerator", + "Bjornulf_TextGeneratorCharacterCreature", + "Bjornulf_TextGeneratorCharacterFemale", + "Bjornulf_TextGeneratorCharacterMale", + "Bjornulf_TextGeneratorCharacterObject", + "Bjornulf_TextGeneratorCharacterPose", + "Bjornulf_TextGeneratorOutfitFemale", + "Bjornulf_TextGeneratorOutfitMale", + "Bjornulf_TextGeneratorScene", + "Bjornulf_TextGeneratorStyle", + "Bjornulf_TextGeneratorText2Video", + "Bjornulf_TextReplace", + "Bjornulf_TextSplitin10", + "Bjornulf_TextSplitin5", + "Bjornulf_TextToAnything", + "Bjornulf_TextToSpeech", + "Bjornulf_TextToStringAndSeed", + "Bjornulf_TextToVariable", + "Bjornulf_ToDoList", + "Bjornulf_VideoDetails", + "Bjornulf_VideoLatentResolutionSelector", + "Bjornulf_VideoPingPong", + "Bjornulf_VideoPreview", + "Bjornulf_VideoTextGenerator", + "Bjornulf_VideoToImagesList", + "Bjornulf_WriteText", + "Bjornulf_WriteTextAdvanced", + "Bjornulf_WriteTextPickMe", + "Bjornulf_WriteTextPickMeChain", + "Bjornulf_WriteTextPickMeGlobal", + "Bjornulf_XTTSConfig", + "Bjornulf_imagesToVideo", + "Bjornulf_loadImageBase64Transparency", + "Bjornulf_ollamaLoader" + ], + { + "title_aux": "Bjornulf_custom_nodes" + } + ], + "https://github.com/justin-vt/ComfyUI-brushstrokes": [ + [ + "OpenCVBrushStrokesNode", + "PILBrushStrokesNode", + "WandBrushStrokesNode" + ], + { + "title_aux": "ComfyUI-brushstrokes" + } + ], + "https://github.com/k-komarov/comfyui-bunny-cdn-storage": [ + [ + "Save Image to BunnyStorage" + ], + { + "title_aux": "comfyui-bunny-cdn-storage" } ], "https://github.com/ka-puna/comfyui-yanc": [ @@ -7966,23 +28898,113 @@ "YANC.GetWidgetValueString", "YANC.IntegerCaster", "YANC.MultilineString", + "YANC.SaveImageWEBP", "YANC.TruncateString" ], { "title_aux": "comfyui-yanc" } ], + "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats": [ + [ + "DDSSaveImage", + "ExtendedSaveImage" + ], + { + "title_aux": "Extended Image Formats for ComfyUI" + } + ], + "https://github.com/kaaskoek232/ComfyUI-MemoryManagement": [ + [ + "AutoMemoryCleanup", + "MemoryCleanup", + "MemoryLeakDetector", + "MemoryMonitor", + "SmartMemoryManager", + "VRAMOptimizer", + "VRAMUnload" + ], + { + "title_aux": "ComfyUI-MemoryManagement" + } + ], "https://github.com/kadirnar/ComfyUI-Transformers": [ [ - "DepthEstimationPipeline", + "DepthEstimationInference", "ImageClassificationPipeline", "ImageSegmentationPipeline", + "LoadDepthModel", "ObjectDetectionPipeline" ], { "title_aux": "ComfyUI-Transformers" } ], + "https://github.com/kadirnar/ComfyUI-YOLO": [ + [ + "BBoxToCoco", + "BBoxToXYWH", + "BBoxVisNode", + "CocoToNumber", + "ConvertToDict", + "CustomUltralyticsModelLoader", + "GetImageSize", + "ImageResizeAdvanced", + "UltralyticsInference", + "UltralyticsModelLoader", + "UltralyticsVisualization", + "ViewText" + ], + { + "title_aux": "ComfyUI-YOLO" + } + ], + "https://github.com/kael558/ComfyUI-GGUF-FantasyTalking": [ + [ + "CLIPLoaderGGUF", + "DownloadAndLoadWav2VecModel", + "FantasyTalkingModelLoader", + "FantasyTalkingWav2VecEmbeds", + "LoadWanVideoT5TextEncoderGGUF", + "ReCamMasterPoseVisualizer", + "UnetLoaderGGUF", + "UnetLoaderGGUF_LowVRAM", + "WanVideoATITracks", + "WanVideoATITracksVisualize", + "WanVideoATI_comfy", + "WanVideoControlnet", + "WanVideoControlnetLoader", + "WanVideoDiffusionForcingSampler", + "WanVideoFunCameraEmbeds", + "WanVideoReCamMasterCameraEmbed", + "WanVideoReCamMasterDefaultCamera", + "WanVideoReCamMasterGenerateOrbitCamera", + "WanVideoUni3C_ControlnetLoader", + "WanVideoUni3C_embeds", + "WanVideoUniAnimateDWPoseDetector", + "WanVideoUniAnimatePoseInput" + ], + { + "title_aux": "ComfyUI-GGUF-FantasyTalking" + } + ], + "https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl": [ + [ + "ReduxAdvanced", + "StyleModelApplySimple" + ], + { + "title_aux": "Advanced Reflux control" + } + ], + "https://github.com/kaipard/comfyui-auto-latent-size": [ + [ + "AutoAspectLatent" + ], + { + "title_aux": "Auto Aspect Latent Generator" + } + ], "https://github.com/kale4eat/ComfyUI-path-util": [ [ "path_util_PathAbspath", @@ -8002,6 +29024,8 @@ "https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit": [ [ "SDT_AudioProperty", + "SDT_BSRoFormerApply", + "SDT_BSRoFormerLoader", "SDT_ConcatAudio", "SDT_CutAudio", "SDT_DemucsApply", @@ -8012,22 +29036,26 @@ "SDT_FasterWhisperTextFromSegments", "SDT_FasterWhisperTranscribe", "SDT_GriffinLim", + "SDT_HighpassBiquad", "SDT_JoinAudio", + "SDT_KotobaWhisperListSegments", + "SDT_KotobaWhisperLoaderLong", + "SDT_KotobaWhisperLoaderShort", + "SDT_KotobaWhisperSegmentProperty", + "SDT_KotobaWhisperTranscribeLong", + "SDT_KotobaWhisperTranscribeShort", "SDT_LFCC", "SDT_LoadAudio", "SDT_LoadAudios", + "SDT_LowpassBiquad", "SDT_MFCC", "SDT_MakeSilenceAudio", + "SDT_MelBandRoformerLoader", "SDT_MelSpectrogram", - "SDT_NemoAsrListSegments", - "SDT_NemoAsrListSubwords", "SDT_NemoAsrLoader", - "SDT_NemoAsrSegmentProperty", - "SDT_NemoAsrSubwordProperty", "SDT_NemoAsrTranscribe", "SDT_NueAsrLoader", "SDT_NueAsrTranscribe", - "SDT_PlayAudio", "SDT_PlotMelFilterBank", "SDT_PlotPitch", "SDT_PlotSpecgram", @@ -8035,7 +29063,6 @@ "SDT_PlotWaveForm", "SDT_ResampleAudio", "SDT_SaveAudio", - "SDT_SaveAudioWithSequentialNumbering", "SDT_SilenceAudio", "SDT_SileroVADApply", "SDT_SileroVADCollectChunks", @@ -8091,6 +29118,115 @@ "title_aux": "ComfyUI-text-file-util" } ], + "https://github.com/kambara/ComfyUI-PromptPalette": [ + [ + "PromptPalette" + ], + { + "title_aux": "ComfyUI-PromptPalette" + } + ], + "https://github.com/kanibus/kanibus": [ + [ + "AIDepthControl", + "AdvancedTrackingPro", + "BodyPoseEstimator", + "EmotionAnalyzer", + "HandTracking", + "KanibusMaster", + "LandmarkPro468", + "MultiControlNetApply", + "NeuralPupilTracker", + "NormalMapGenerator", + "ObjectSegmentation", + "SmartFacialMasking", + "TemporalSmoother", + "VideoFrameLoader" + ], + { + "title_aux": "KANIBUS - Advanced Eye Tracking ControlNet System" + } + ], + "https://github.com/kantsche/ComfyUI-MixMod": [ + [ + "MixModBandFFTGuiderNode", + "MixModDepthGuiderNode", + "MixModDynamicMaskAlternativeGuiderNode", + "MixModDynamicMaskGuiderNode", + "MixModFFTGuiderNode", + "MixModGuiderComponentNode", + "MixModGuiderComponentPipelineNode", + "MixModGuiderNode", + "MixModHighResGuiderNode", + "MixModOptionsMaskNode", + "MixModOptionsScaleNode", + "MixModOptionsSchedulerNode", + "MixModPipelineNode" + ], + { + "author": "Kantsche", + "description": "Model Mixture Guider", + "nickname": "MixMod", + "title": "ComfyUI-MixMod", + "title_aux": "ComfyUI-MixMod" + } + ], + "https://github.com/kappa54m/ComfyUI_Usability": [ + [ + "KLoadImageByPath", + "KLoadImageByPathAdvanced", + "KLoadImageDedup" + ], + { + "title_aux": "ComfyUI Usability" + } + ], + "https://github.com/karas17/ComfyUI-Camera-Watermark": [ + [ + "CameraWatermarkNode", + "ImageLoaderWithEXIF" + ], + { + "title_aux": "ComfyUI Camera Watermark" + } + ], + "https://github.com/karthikg-09/ComfyUI-Vton-Mask": [ + [ + "ComfyUIVtonMaskGenerator", + "ComfyUIVtonMaskLoader" + ], + { + "title_aux": "ComfyUI-Vton-Mask" + } + ], + "https://github.com/kasukanra/ComfyUI_StringToHex": [ + [ + "ColorNameToHex" + ], + { + "title_aux": "ComfyUI_StringToHex" + } + ], + "https://github.com/katalist-ai/comfyUI-nsfw-detection": [ + [ + "NudenetDetector" + ], + { + "title_aux": "comfyUI-nsfw-detection" + } + ], + "https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess": [ + [ + "QuickImageSequenceProcess" + ], + { + "author": "kazeyori", + "description": "A ComfyUI plugin for efficient image sequence processing. Features frame insertion, duplication, and removal with intuitive controls.", + "nickname": "QuickSeq", + "title": "Quick Image Sequence Process", + "title_aux": "ComfyUI-QuickImageSequenceProcess" + } + ], "https://github.com/kealiu/ComfyUI-S3-Tools": [ [ "Load Image From S3", @@ -8100,6 +29236,58 @@ "title_aux": "ComfyUI Load and Save file to S3" } ], + "https://github.com/kealiu/ComfyUI-Zero123-Porting": [ + [ + "Zero123: Image Preprocess", + "Zero123: Image Rotate in 3D" + ], + { + "title_aux": "ComfyUI-Zero123-Porting" + } + ], + "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans": [ + [ + "ZeST: Grayout Subject" + ], + { + "title_aux": "ComfyUI-ZeroShot-MTrans" + } + ], + "https://github.com/keit0728/ComfyUI-Image-Toolkit": [ + [ + "AlphaFlatten", + "AlphaToGrayscale", + "AntialiasingImage", + "BinarizeImage", + "BinarizeImageUsingOtsu", + "BrightnessTransparency", + "GrayscaleImage", + "RemoveWhiteBackgroundNoise" + ], + { + "title_aux": "ComfyUI-Image-Toolkit" + } + ], + "https://github.com/keit0728/ComfyUI-keitNodes": [ + [ + "AspectRatioResolutionFinder", + "M2MTranslator", + "PixelLimitResizer", + "WanVideoOptimalResizer", + "WanVideoResolutionFinder" + ], + { + "title_aux": "ComfyUI-keitNodes" + } + ], + "https://github.com/keit0728/ComfyUI-musubi-tuner": [ + [ + "MusubiTunerWanGenerateVideo" + ], + { + "title_aux": "ComfyUI-musubi-tuner" + } + ], "https://github.com/kenjiqq/qq-nodes-comfyui": [ [ "Any List", @@ -8108,17 +29296,35 @@ "Axis Pack", "Axis To Any", "Axis Unpack", - "Image Accumulator End", - "Image Accumulator Start", "Load Lines From Text File", "Slice List", "Text Splitter", + "XY Grid Accumulator", "XY Grid Helper" ], { "title_aux": "qq-nodes-comfyui" } ], + "https://github.com/kevinmcmahondev/comfyui-kmcdev-image-filter-adjustments": [ + [ + "ImageBlankAlpha", + "ImageBlendMask", + "ImageFilterAdjustments", + "ImageMixColorByMask" + ], + { + "title_aux": "KMCDev Nodes" + } + ], + "https://github.com/kevinmcmahondev/comfyui-skin-tone-detector": [ + [ + "SkinToneDetector" + ], + { + "title_aux": "Skin Tone Detector for ComfyUI" + } + ], "https://github.com/kft334/Knodes": [ [ "Image(s) To Websocket (Base64)", @@ -8130,6 +29336,27 @@ "title_aux": "Knodes" } ], + "https://github.com/khanhlvg/vertex-ai-comfyui-nodes": [ + [ + "Chirp", + "Gemini", + "GeminiImage", + "ImagenComputedMaskConfig", + "ImagenMaskEditing", + "Imagen_Product_Recontext", + "Imagen_T2I", + "Lyria", + "PreviewVideo", + "Veo2", + "Veo2Extend", + "Veo3", + "Veo_Prompt_Writer", + "Virtual_Try_On" + ], + { + "title_aux": "[Unofficial] Vertex AI Custom Nodes for ComfyUI" + } + ], "https://github.com/kijai/ComfyUI-ADMotionDirector": [ [ "ADMD_AdditionalModelSelect", @@ -8172,12 +29399,58 @@ "https://github.com/kijai/ComfyUI-CCSR": [ [ "CCSR_Model_Select", - "CCSR_Upscale" + "CCSR_Upscale", + "DownloadAndLoadCCSRModel" ], { "title_aux": "ComfyUI-CCSR" } ], + "https://github.com/kijai/ComfyUI-CogVideoXWrapper": [ + [ + "CogVideoContextOptions", + "CogVideoControlNet", + "CogVideoDecode", + "CogVideoEnhanceAVideo", + "CogVideoImageEncode", + "CogVideoImageEncodeFunInP", + "CogVideoLatentPreview", + "CogVideoLoraSelect", + "CogVideoLoraSelectComfy", + "CogVideoSampler", + "CogVideoTextEncode", + "CogVideoTextEncodeCombine", + "CogVideoTransformerEdit", + "CogVideoXFasterCache", + "CogVideoXFunResizeToClosestBucket", + "CogVideoXModelLoader", + "CogVideoXTeaCache", + "CogVideoXTorchCompileSettings", + "CogVideoXVAELoader", + "DownloadAndLoadCogVideoControlNet", + "DownloadAndLoadCogVideoGGUFModel", + "DownloadAndLoadCogVideoModel", + "DownloadAndLoadToraModel", + "ToraEncodeOpticalFlow", + "ToraEncodeTrajectory" + ], + { + "title_aux": "ComfyUI CogVideoX Wrapper" + } + ], + "https://github.com/kijai/ComfyUI-ControlNeXt-SVD": [ + [ + "ControlNextDecode", + "ControlNextDiffusersScheduler", + "ControlNextGetPoses", + "ControlNextSVDApply", + "ControlNextSampler", + "DownloadAndLoadControlNeXt" + ], + { + "title_aux": "ComfyUI nodes for ControlNext-SVD v2" + } + ], "https://github.com/kijai/ComfyUI-DDColor": [ [ "DDColor_Colorize" @@ -8186,6 +29459,15 @@ "title_aux": "ComfyUI-DDColor" } ], + "https://github.com/kijai/ComfyUI-DepthAnythingV2": [ + [ + "DepthAnything_V2", + "DownloadAndLoadDepthAnythingV2Model" + ], + { + "title_aux": "ComfyUI-DepthAnythingV2" + } + ], "https://github.com/kijai/ComfyUI-DiffusionLight": [ [ "chrome_ball_to_envmap", @@ -8197,9 +29479,18 @@ ], "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper": [ [ + "DownloadAndLoadCLIPModel", + "DownloadAndLoadCLIPVisionModel", + "DownloadAndLoadDynamiCrafterCNModel", + "DownloadAndLoadDynamiCrafterModel", "DynamiCrafterBatchInterpolation", + "DynamiCrafterCNLoader", + "DynamiCrafterControlnetApply", "DynamiCrafterI2V", - "DynamiCrafterModelLoader" + "DynamiCrafterLoadInitNoise", + "DynamiCrafterModelLoader", + "ToonCrafterDecode", + "ToonCrafterInterpolation" ], { "title_aux": "ComfyUI-DynamiCrafterWrapper" @@ -8207,6 +29498,8 @@ ], "https://github.com/kijai/ComfyUI-ELLA-wrapper": [ [ + "diffusers_model_loader", + "diffusers_sampler", "ella_model_loader", "ella_sampler", "ella_t5_embeds" @@ -8215,6 +29508,71 @@ "title_aux": "ComfyUI-ELLA-wrapper" } ], + "https://github.com/kijai/ComfyUI-Florence2": [ + [ + "DownloadAndLoadFlorence2Lora", + "DownloadAndLoadFlorence2Model", + "Florence2ModelLoader", + "Florence2Run" + ], + { + "preemptions": [ + "DownloadAndLoadFlorence2Lora", + "DownloadAndLoadFlorence2Model", + "Florence2ModelLoader", + "Florence2Run" + ], + "title_aux": "ComfyUI-Florence2" + } + ], + "https://github.com/kijai/ComfyUI-FluxTrainer": [ + [ + "ExtractFluxLoRA", + "FluxKohyaInferenceSampler", + "FluxTrainAndValidateLoop", + "FluxTrainBlockSelect", + "FluxTrainEnd", + "FluxTrainLoop", + "FluxTrainModelSelect", + "FluxTrainResume", + "FluxTrainSave", + "FluxTrainSaveModel", + "FluxTrainValidate", + "FluxTrainValidationSettings", + "FluxTrainerLossConfig", + "InitFluxLoRATraining", + "InitFluxTraining", + "InitSD3LoRATraining", + "InitSDXLLoRATraining", + "OptimizerConfig", + "OptimizerConfigAdafactor", + "OptimizerConfigProdigy", + "OptimizerConfigProdigyPlusScheduleFree", + "SD3ModelSelect", + "SD3TrainValidationSettings", + "SDXLModelSelect", + "SDXLTrainValidate", + "SDXLTrainValidationSettings", + "TrainDatasetAdd", + "TrainDatasetGeneralConfig", + "TrainDatasetRegularization", + "TrainNetworkConfig", + "UploadToHuggingFace", + "VisualizeLoss" + ], + { + "title_aux": "ComfyUI Flux Trainer" + } + ], + "https://github.com/kijai/ComfyUI-GIMM-VFI": [ + [ + "DownloadAndLoadGIMMVFIModel", + "GIMMVFI_interpolate" + ], + { + "title_aux": "ComfyUI-GIMM-VFI" + } + ], "https://github.com/kijai/ComfyUI-Geowizard": [ [ "geowizard_model_loader", @@ -8224,9 +29582,77 @@ "title_aux": "Geowizard depth and normal estimation in ComfyUI" } ], + "https://github.com/kijai/ComfyUI-HFRemoteVae": [ + [ + "HFRemoteVAE", + "HFRemoteVAEDecode" + ], + { + "title_aux": "ComfyUI-HFRemoteVae" + } + ], + "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper": [ + [ + "DownloadAndLoadHyVideoTextEncoder", + "HunyuanVideoFresca", + "HunyuanVideoSLG", + "HyVideoBlockSwap", + "HyVideoCFG", + "HyVideoContextOptions", + "HyVideoCustomPromptTemplate", + "HyVideoDecode", + "HyVideoEmptyTextEmbeds", + "HyVideoEncode", + "HyVideoEncodeKeyframes", + "HyVideoEnhanceAVideo", + "HyVideoGetClosestBucketSize", + "HyVideoI2VEncode", + "HyVideoInverseSampler", + "HyVideoLatentPreview", + "HyVideoLoopArgs", + "HyVideoLoraBlockEdit", + "HyVideoLoraSelect", + "HyVideoModelLoader", + "HyVideoPromptMixSampler", + "HyVideoReSampler", + "HyVideoSTG", + "HyVideoSampler", + "HyVideoTeaCache", + "HyVideoTextEmbedBridge", + "HyVideoTextEmbedsLoad", + "HyVideoTextEmbedsSave", + "HyVideoTextEncode", + "HyVideoTextImageEncode", + "HyVideoTorchCompileSettings", + "HyVideoVAELoader" + ], + { + "title_aux": "ComfyUI-HunyuanVideoWrapper" + } + ], + "https://github.com/kijai/ComfyUI-IC-Light": [ + [ + "BackgroundScaler", + "CalculateNormalsFromImages", + "DetailTransfer", + "ICLightConditioning", + "LightSource", + "LoadAndApplyICLightUnet", + "LoadHDRImage" + ], + { + "title_aux": "ComfyUI-IC-Light" + } + ], "https://github.com/kijai/ComfyUI-KJNodes": [ [ "AddLabel", + "AppendInstanceDiffusionTracking", + "AppendStringsToList", + "ApplyRifleXRoPE_HunuyanVideo", + "ApplyRifleXRoPE_WanVideo", + "AudioConcatenate", + "BOOLConstant", "BatchCLIPSeg", "BatchCropFromMask", "BatchCropFromMaskAdvanced", @@ -8234,7 +29660,10 @@ "BatchUncropAdvanced", "BboxToInt", "BboxVisualize", + "CFGZeroStarAndInit", "CameraPoseVisualizer", + "CheckpointLoaderKJ", + "CheckpointPerturbWeights", "ColorMatch", "ColorToMask", "CondPassThrough", @@ -8247,47 +29676,113 @@ "CreateFadeMask", "CreateFadeMaskAdvanced", "CreateFluidMask", + "CreateGradientFromCoords", "CreateGradientMask", + "CreateInstanceDiffusionTracking", "CreateMagicMask", + "CreateShapeImageOnPath", "CreateShapeMask", + "CreateShapeMaskOnPath", "CreateTextMask", + "CreateTextOnPath", "CreateVoronoiMask", "CrossFadeImages", + "CrossFadeImagesMulti", + "CustomControlNetWeightsFluxFromList", "CustomSigmas", - "DummyLatentOut", + "CutAndDragOnPath", + "DiTBlockLoraLoader", + "DifferentialDiffusionAdvanced", + "DiffusionModelLoaderKJ", + "DiffusionModelSelector", + "DownloadAndLoadCLIPSeg", + "DrawInstanceDiffusionTracking", + "DummyOut", + "EmptyLatentImageCustomPresets", "EmptyLatentImagePresets", + "FastPreview", "FilterZeroMasksAndCorrespondingImages", "FlipSigmasAdjusted", "FloatConstant", "FloatToMask", - "GLIGENTextBoxApplyBatch", + "FloatToSigmas", + "FluxBlockLoraSelect", + "GLIGENTextBoxApplyBatchCoords", "GenerateNoise", "GetImageRangeFromBatch", + "GetImageSizeAndCount", "GetImagesFromBatchIndexed", + "GetLatentRangeFromBatch", + "GetLatentSizeAndCount", "GetLatentsFromBatchIndexed", + "GetMaskSizeAndCount", + "GradientToFloat", "GrowMaskWithBlur", + "HunyuanVideoBlockLoraSelect", + "HunyuanVideoEncodeKeyframesToCond", "INTConstant", + "ImageAddMulti", "ImageAndMaskPreview", + "ImageBatchFilter", + "ImageBatchJoinWithTransition", + "ImageBatchMulti", "ImageBatchRepeatInterleaving", "ImageBatchTestPattern", "ImageConcanate", + "ImageConcatFromBatch", + "ImageConcatMulti", + "ImageCropByMask", + "ImageCropByMaskAndResize", + "ImageCropByMaskBatch", "ImageGrabPIL", "ImageGridComposite2x2", "ImageGridComposite3x3", + "ImageGridtoBatch", + "ImageNoiseAugmentation", "ImageNormalize_Neg1_To_1", "ImagePadForOutpaintMasked", + "ImagePadForOutpaintTargetSize", + "ImagePadKJ", + "ImagePass", + "ImagePrepForICLora", + "ImageResizeKJ", + "ImageResizeKJv2", + "ImageTensorList", "ImageTransformByNormalizedAmplitude", + "ImageUncropByMask", "ImageUpscaleWithModelBatched", "InjectNoiseToLatent", "InsertImageBatchByIndexes", "InsertImagesToBatchIndexed", + "InsertLatentToIndexed", + "InterpolateCoords", "Intrinsic_lora_sampling", + "JoinStringMulti", "JoinStrings", + "LazySwitchKJ", + "LeapfusionHunyuanI2VPatcher", + "LoadAndResizeImage", + "LoadImagesFromFolderKJ", "LoadResAdapterNormalization", + "LoadVideosFromFolder", + "LoraExtractKJ", + "LoraReduceRankKJ", + "MaskBatchMulti", "MaskOrImageToWeight", + "MergeImageChannels", + "ModelPassThrough", + "ModelPatchTorchSettings", + "ModelSaveKJ", + "NormalizedAmplitudeToFloatList", "NormalizedAmplitudeToMask", "OffsetMask", "OffsetMaskByNormalizedAmplitude", + "PadImageBatchInterleaved", + "PatchModelPatcherOrder", + "PathchSageAttentionKJ", + "PlotCoordinates", + "PointsEditor", + "PreviewAnimation", "RemapImageRange", "RemapMaskRange", "ReplaceImagesInBatch", @@ -8295,25 +29790,99 @@ "ReverseImageBatch", "RoundMask", "SV3D_BatchSchedule", + "SaveImageKJ", "SaveImageWithAlpha", + "SaveStringKJ", "ScaleBatchPromptSchedule", + "ScheduledCFGGuidance", + "Screencap_mss", + "SeparateMasks", + "SetShakkerLabsUnionControlNetType", + "ShuffleImageBatch", + "SigmasToFloat", + "SkipLayerGuidanceWanVideo", "Sleep", "SomethingToString", "SoundReactive", "SplineEditor", "SplitBboxes", - "StabilityAPI_SD3", + "SplitImageChannels", "StableZero123_BatchSchedule", "StringConstant", "StringConstantMultiline", + "StringToFloatList", + "StyleModelApplyAdvanced", "Superprompt", + "TimerNodeKJ", + "TorchCompileControlNet", + "TorchCompileCosmosModel", + "TorchCompileLTXModel", + "TorchCompileModelFluxAdvanced", + "TorchCompileModelFluxAdvancedV2", + "TorchCompileModelHyVideo", + "TorchCompileModelQwenImage", + "TorchCompileModelWanVideo", + "TorchCompileModelWanVideoV2", + "TorchCompileVAE", + "TransitionImagesInBatch", + "TransitionImagesMulti", + "VAELoaderKJ", "VRAM_Debug", + "Wan21BlockLoraSelect", + "WanVideoEnhanceAVideoKJ", + "WanVideoNAG", + "WanVideoTeaCacheKJ", + "WebcamCaptureCV2", + "WeightScheduleConvert", + "WeightScheduleExtend", "WidgetToString" ], { "title_aux": "KJNodes for ComfyUI" } ], + "https://github.com/kijai/ComfyUI-KwaiKolorsWrapper": [ + [ + "DownloadAndLoadChatGLM3", + "DownloadAndLoadKolorsModel", + "KolorsSampler", + "KolorsTextEncode", + "LoadChatGLM3" + ], + { + "title_aux": "ComfyUI-KwaiKolorsWrapper" + } + ], + "https://github.com/kijai/ComfyUI-LBMWrapper": [ + [ + "LBMSampler", + "LoadLBMModel" + ], + { + "title_aux": "ComfyUI-LBMWrapper" + } + ], + "https://github.com/kijai/ComfyUI-LLaVA-OneVision": [ + [ + "DownloadAndLoadLLaVAOneVisionModel", + "LLaVA_OneVision_Run", + "OneVisionCaptionFolder", + "SaveCaptionToTextFile" + ], + { + "title_aux": "ComfyUI Llava-OneVision" + } + ], + "https://github.com/kijai/ComfyUI-LVCDWrapper": [ + [ + "LVCDDecoder", + "LVCDSampler", + "LoadLVCDModel" + ], + { + "title_aux": "ComfyUI wrapper nodes for LVCD" + } + ], "https://github.com/kijai/ComfyUI-LaVi-Bridge-Wrapper": [ [ "lavi_bridge_llama_encoder", @@ -8325,11 +29894,54 @@ "title_aux": "ComfyUI-LaVi-Bridge-Wrapper" } ], + "https://github.com/kijai/ComfyUI-LivePortraitKJ": [ + [ + "DownloadAndLoadLivePortraitModels", + "KeypointScaler", + "KeypointsToImage", + "LivePortraitComposite", + "LivePortraitCropper", + "LivePortraitLoadCropper", + "LivePortraitLoadFaceAlignmentCropper", + "LivePortraitLoadMediaPipeCropper", + "LivePortraitProcess", + "LivePortraitRetargeting" + ], + { + "title_aux": "ComfyUI-LivePortraitKJ" + } + ], + "https://github.com/kijai/ComfyUI-Lotus": [ + [ + "LoadLotusModel", + "LotusSampler" + ], + { + "title_aux": "ComfyUI-Lotus" + } + ], + "https://github.com/kijai/ComfyUI-LuminaWrapper": [ + [ + "DownloadAndLoadGemmaModel", + "DownloadAndLoadLuminaModel", + "GemmaSampler", + "LuminaGemmaTextEncode", + "LuminaGemmaTextEncodeArea", + "LuminaT2ISampler", + "LuminaTextAreaAppend" + ], + { + "title_aux": "ComfyUI-LuminaWrapper" + } + ], "https://github.com/kijai/ComfyUI-Marigold": [ [ "ColorizeDepthmap", "MarigoldDepthEstimation", "MarigoldDepthEstimationVideo", + "MarigoldDepthEstimation_v2", + "MarigoldDepthEstimation_v2_video", + "MarigoldModelLoader", "RemapDepth", "SaveImageOpenEXR" ], @@ -8337,6 +29949,65 @@ "title_aux": "Marigold depth estimation in ComfyUI" } ], + "https://github.com/kijai/ComfyUI-MelBandRoFormer": [ + [ + "MelBandRoFormerModelLoader", + "MelBandRoFormerSampler" + ], + { + "title_aux": "ComfyUI-MelBandRoFormer" + } + ], + "https://github.com/kijai/ComfyUI-MimicMotionWrapper": [ + [ + "DiffusersScheduler", + "DownloadAndLoadMimicMotionModel", + "MimicMotionDecode", + "MimicMotionGetPoses", + "MimicMotionSampler" + ], + { + "title_aux": "ComfyUI-MimicMotionWrapper" + } + ], + "https://github.com/kijai/ComfyUI-MoGe": [ + [ + "DownloadAndLoadMoGeModel", + "MoGeProcess" + ], + { + "title_aux": "ComfyUI-MoGe" + } + ], + "https://github.com/kijai/ComfyUI-OpenDiTWrapper": [ + [ + "DownloadAndLoadOpenDiTT5Model", + "DownloadAndLoadOpenSoraModel", + "DownloadAndLoadOpenSoraVAE", + "OpenDiTConditioning", + "OpenDiTSampler", + "OpenSoraDecode", + "OpenSoraEncodeReference" + ], + { + "title_aux": "ComfyUI-OpenDiTWrapper" + } + ], + "https://github.com/kijai/ComfyUI-PyramidFlowWrapper": [ + [ + "PyramidFlowLatentPreview", + "PyramidFlowSampler", + "PyramidFlowTextEncode", + "PyramidFlowTorchCompileSettings", + "PyramidFlowTransformerLoader", + "PyramidFlowVAEDecode", + "PyramidFlowVAEEncode", + "PyramidFlowVAELoader" + ], + { + "title_aux": "ComfyUI PyramidFlow Wrapper" + } + ], "https://github.com/kijai/ComfyUI-SUPIR": [ [ "SUPIR_Upscale", @@ -8346,6 +30017,7 @@ "SUPIR_first_stage", "SUPIR_model_loader", "SUPIR_model_loader_v2", + "SUPIR_model_loader_v2_clip", "SUPIR_sample", "SUPIR_tiles" ], @@ -8353,12 +30025,115 @@ "title_aux": "ComfyUI-SUPIR" } ], - "https://github.com/kijai/ComfyUI-SVD": [ + "https://github.com/kijai/ComfyUI-StableXWrapper": [ [ - "SVDimg2vid" + "DifferenceExtractorNode", + "DownloadAndLoadStableXModel", + "StableXProcessImage" ], { - "title_aux": "ComfyUI-SVD" + "title_aux": "ComfyUI-StableXWrapper" + } + ], + "https://github.com/kijai/ComfyUI-WanVideoWrapper": [ + [ + "CreateCFGScheduleFloatList", + "CreateScheduleFloatList", + "DownloadAndLoadNLFModel", + "DownloadAndLoadWav2VecModel", + "DrawNLFPoses", + "DummyComfyWanModelObject", + "ExtractStartFramesForContinuations", + "FantasyPortraitFaceDetector", + "FantasyPortraitModelLoader", + "FantasyTalkingModelLoader", + "FantasyTalkingWav2VecEmbeds", + "LandmarksToImage", + "LoadVQVAE", + "LoadWanVideoClipTextEncoder", + "LoadWanVideoT5TextEncoder", + "MTVCrafterEncodePoses", + "MultiTalkModelLoader", + "MultiTalkWav2VecEmbeds", + "NLFPredict", + "NormalizeAudioLoudness", + "QwenLoader", + "ReCamMasterPoseVisualizer", + "WanVideoATITracks", + "WanVideoATITracksVisualize", + "WanVideoATI_comfy", + "WanVideoAddControlEmbeds", + "WanVideoAddExtraLatent", + "WanVideoAddFantasyPortrait", + "WanVideoAddMTVMotion", + "WanVideoAddS2VEmbeds", + "WanVideoAddStandInLatent", + "WanVideoApplyNAG", + "WanVideoBlockList", + "WanVideoBlockSwap", + "WanVideoClipVisionEncode", + "WanVideoContextOptions", + "WanVideoControlEmbeds", + "WanVideoControlnet", + "WanVideoControlnetLoader", + "WanVideoDecode", + "WanVideoDiffusionForcingSampler", + "WanVideoEasyCache", + "WanVideoEmptyEmbeds", + "WanVideoEncode", + "WanVideoEnhanceAVideo", + "WanVideoExperimentalArgs", + "WanVideoExtraModelSelect", + "WanVideoFlowEdit", + "WanVideoFreeInitArgs", + "WanVideoFunCameraEmbeds", + "WanVideoImageClipEncode", + "WanVideoImageResizeToClosest", + "WanVideoImageToVideoEncode", + "WanVideoImageToVideoMultiTalk", + "WanVideoLatentReScale", + "WanVideoLoopArgs", + "WanVideoLoraBlockEdit", + "WanVideoLoraSelect", + "WanVideoLoraSelectMulti", + "WanVideoMagCache", + "WanVideoMiniMaxRemoverEmbeds", + "WanVideoModelLoader", + "WanVideoPhantomEmbeds", + "WanVideoPromptExtender", + "WanVideoPromptExtenderSelect", + "WanVideoReCamMasterCameraEmbed", + "WanVideoReCamMasterDefaultCamera", + "WanVideoReCamMasterGenerateOrbitCamera", + "WanVideoRealisDanceLatents", + "WanVideoRoPEFunction", + "WanVideoSLG", + "WanVideoSampler", + "WanVideoScheduler", + "WanVideoSetBlockSwap", + "WanVideoSetLoRAs", + "WanVideoSetRadialAttention", + "WanVideoSigmaToStep", + "WanVideoTeaCache", + "WanVideoTextEmbedBridge", + "WanVideoTextEncode", + "WanVideoTextEncodeCached", + "WanVideoTextEncodeSingle", + "WanVideoTinyVAELoader", + "WanVideoTorchCompileSettings", + "WanVideoUni3C_ControlnetLoader", + "WanVideoUni3C_embeds", + "WanVideoUniAnimateDWPoseDetector", + "WanVideoUniAnimatePoseInput", + "WanVideoVACEEncode", + "WanVideoVACEModelSelect", + "WanVideoVACEStartToEndFrame", + "WanVideoVAELoader", + "WanVideoVRAMManagement", + "Wav2VecModelLoader" + ], + { + "title_aux": "ComfyUI-WanVideoWrapper" } ], "https://github.com/kijai/ComfyUI-depth-fm": [ @@ -8378,6 +30153,36 @@ "title_aux": "ComfyUI-moondream" } ], + "https://github.com/kijai/ComfyUI-segment-anything-2": [ + [ + "DownloadAndLoadSAM2Model", + "Florence2toCoordinates", + "Sam2AutoSegmentation", + "Sam2Segmentation", + "Sam2VideoSegmentation", + "Sam2VideoSegmentationAddPoints" + ], + { + "preemptions": [ + "DownloadAndLoadSAM2Model", + "Florence2toCoordinates", + "Sam2AutoSegmentation", + "Sam2Segmentation", + "Sam2VideoSegmentation", + "Sam2VideoSegmentationAddPoints" + ], + "title_aux": "ComfyUI-segment-anything-2" + } + ], + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Advanced-Watermarks": [ + [ + "KimaraAIBatchImages", + "KimaraAIWatermarker" + ], + { + "title_aux": "Kimara.ai's Advanced Watermarking Tools" + } + ], "https://github.com/kinfolk0117/ComfyUI_GradientDeepShrink": [ [ "GradientPatchModelAddDownscale", @@ -8387,6 +30192,14 @@ "title_aux": "ComfyUI_GradientDeepShrink" } ], + "https://github.com/kinfolk0117/ComfyUI_GridSwapper": [ + [ + "GridSwapper" + ], + { + "title_aux": "Gridswapper" + } + ], "https://github.com/kinfolk0117/ComfyUI_Pilgram": [ [ "Pilgram" @@ -8407,21 +30220,86 @@ "title_aux": "SimpleTiles" } ], + "https://github.com/kk8bit/KayTool": [ + [ + "AB_Images", + "AIO_Translater", + "Abc_Math", + "Baidu_Translater", + "Color_Adjustment", + "Custom_Save_Image", + "Display_Any", + "Image_Composer", + "Image_Cropper", + "Image_Mask_Composer", + "Image_Resizer", + "Image_Size_Extractor", + "Kay_BiRefNet_Loader", + "Load_Image_Folder", + "Mask_Blur_Plus", + "Mask_Filler", + "Preview_Mask", + "Preview_Mask_Plus", + "RemBG_Loader", + "Remove_BG", + "Slider_10", + "Slider_100", + "Slider_1000", + "Strong_Prompt", + "Tencent_Translater", + "Text", + "To_Int" + ], + { + "title_aux": "KayTool" + } + ], "https://github.com/klinter007/klinter_nodes": [ [ - "Filter", - "PresentString", - "PrintFloats", - "SingleString", + "AspectSelector", + "BBoxCropper", + "FolderLoader", + "Json Extractor - klinter", + "LoadImagePlus", + "LoadVideoForExtendingKlinter", + "OutpaintPadding", + "PrepVideoForExtendKlinter", + "SaveAudioPlus", "SizeSelector", + "SpeedRamp", + "YellowBus", + "ZoomOutComposer", "concat", - "concat_klinter", - "whitelist" + "filter", + "nodevalue2stringmulti", + "string_contact_multi" ], { "title_aux": "Klinter_nodes" } ], + "https://github.com/kmlbdh/ComfyUI-kmlbdh-VideoCombine": [ + [ + "DeleteFolderAny", + "KMLBDH_RAMCleaner", + "KMLBDH_VideoCombine" + ], + { + "title_aux": "kmlbdh Video Combine (Smart + Tiled)" + } + ], + "https://github.com/kmlbdh/ComfyUI_LocalLLMNodes": [ + [ + "AddUserLocalKontextPreset", + "ArabicProductDescriptionGenerator", + "LocalKontextPromptGenerator", + "RemoveUserLocalKontextPreset", + "SetLocalLLMServiceConnector" + ], + { + "title_aux": "ComfyUI_LocalLLMNodes" + } + ], "https://github.com/knuknX/ComfyUI-Image-Tools": [ [ "BatchImagePathLoader", @@ -8437,6 +30315,18 @@ "title_aux": "ComfyUI-Image-Tools" } ], + "https://github.com/kohs100/comfyui-ppwc": [ + [ + "PPWCReplace" + ], + { + "author": "Phospholipids", + "description": "This extension offers wildcard prompting works solely in workflow.", + "nickname": "PPWC", + "title": "PPWildCard", + "title_aux": "PPWildCard" + } + ], "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI": [ [ "LLLiteLoader" @@ -8484,6 +30374,107 @@ "title_aux": "komojini-comfyui-nodes" } ], + "https://github.com/kostenickj/jk-comfyui-helpers": [ + [ + "EasyHRFix", + "EasyHRFix_Context", + "JKAnythingToString", + "JKBigContext", + "JKDynamicThresholdingMultiModel", + "JKEasyCheckpointLoader", + "JKEasyDetailer", + "JKEasyDetailer_Context", + "JKEasyKSampler_Context", + "JKEasyUpscaleImage", + "JKEasyWatermark", + "JKInspireSchedulerAdapter", + "JKLilContext", + "JKMultiModelSamplerUnpatch", + "JKStringEmpty", + "JKStringEquals", + "JKStringNotEmpty", + "JKStringNotEquals", + "JKStringToSamplerAdapter" + ], + { + "title_aux": "comfyui-jk-easy-nodes" + } + ], + "https://github.com/kpsss34/ComfyUI-kpsss34": [ + [ + "SD35sLoaderSampler" + ], + { + "title_aux": "ComfyUI kpsss34 Custom Node" + } + ], + "https://github.com/krakenunbound/ComfyUI-KrakenTools": [ + [ + "KrakenFluxEmptyLatentImage", + "KrakenResolutionHelper", + "KrakenUpscaleTileCalc" + ], + { + "title_aux": "ComfyUI-KrakenTools" + } + ], + "https://github.com/krigeta/qwen-image-controlnets-comfyui": [ + [ + "QwenImageBlockwiseControlNetApply", + "QwenImageBlockwiseControlNetLoader", + "QwenImageCannyPreprocessor", + "QwenImageDepthPreprocessor" + ], + { + "title_aux": "qwen-image-controlnets-comfyui" + } + ], + "https://github.com/krmahil/comfyui-hollow-preserve": [ + [ + "RemoveEnclosedMaskedAreas" + ], + { + "title_aux": "Hollow Preserve" + } + ], + "https://github.com/kukuo6666/ComfyUI-Equirect": [ + [ + "CubemapToEquirect", + "EquirectToCubemap" + ], + { + "title_aux": "ComfyUI Equirectangular Tools" + } + ], + "https://github.com/kungful/ComfyUI_to_webui": [ + [ + "BarcodeGeneratorNode", + "Barcode_seed", + "DeepseekNode", + "Go_to_image", + "GradioInputImage", + "GradioTextBad", + "GradioTextOk", + "HuaFloatNode", + "HuaIntNode", + "Hua_CheckpointLoaderSimple", + "Hua_LoraLoader", + "Hua_LoraLoaderModelOnly", + "Hua_Output", + "Hua_UNETLoader", + "Hua_Video_Output", + "Hua_gradio_Seed", + "Hua_gradio_jsonsave", + "Hua_gradio_resolution", + "Huaword", + "Modelhua", + "brucelee", + "\u5c0f\u5b57\u4f53\u8bf4\u660e\uff1a\u6211\u662fcomfyui_hua_boy\u7684model" + ], + { + "title_aux": "ComfyUI_to_webui" + } + ], "https://github.com/kunieone/ComfyUI_alkaid": [ [ "A_EmptyLatentImageLongside", @@ -8506,6 +30497,14 @@ "title_aux": "ComfyUI_alkaid" } ], + "https://github.com/kusurin/ComfyUI-chronophotography": [ + [ + "CreateChronophotography" + ], + { + "title_aux": "ComfyUI-chronophotography" + } + ], "https://github.com/kwaroran/abg-comfyui": [ [ "Remove Image Background (abg)" @@ -8514,6 +30513,74 @@ "title_aux": "abg-comfyui" } ], + "https://github.com/kycg/comfyui-Lora-auto-downloader": [ + [ + "Kw_JsonLoraLoader", + "Kw_Json_Lora_CivitAIDownloader" + ], + { + "title_aux": "Kw_Json_Lora_CivitAIDownloader" + } + ], + "https://github.com/l-comm/WatermarkRemoval": [ + [ + "FindWatermarkNode", + "RemoveWatermarkNode" + ], + { + "author": "l-comm", + "description": "Remove watermark", + "nickname": "Watermark Removal", + "title": "Watermark Removal", + "title_aux": "WatermarkRemoval" + } + ], + "https://github.com/l20richo/ComfyUI-Azure-Blob-Storage": [ + [ + "DownloadFileBLOB", + "LoadImageBLOB", + "SaveImageBLOB", + "SaveVideoFilesBLOB", + "UploadFileBLOB" + ], + { + "title_aux": "ComfyUI-Azure-Blob-Storage" + } + ], + "https://github.com/l3ony2k/comfyui-leon-nodes": [ + [ + "Leon_ByteDance_Image_API_Node", + "Leon_DALLE_Image_API_Node", + "Leon_Flux_Image_API_Node", + "Leon_Flux_Kontext_API_Node", + "Leon_GPT_Image_API_Node", + "Leon_GPT_OSS_API_Node", + "Leon_Google_Image_API_Node", + "Leon_Hypr_Upload_Node", + "Leon_Ideogram_Image_API_Node", + "Leon_Image_Split_4Grid_Node", + "Leon_ImgBB_Upload_Node", + "Leon_LLM_Chat_API_Node", + "Leon_LLM_JSON_API_Node", + "Leon_Luma_AI_Image_API_Node", + "Leon_Midjourney_Describe_API_Node", + "Leon_Midjourney_Proxy_API_Node", + "Leon_Midjourney_Upload_API_Node", + "Leon_Model_Selector_Node", + "Leon_Nano_Banana_API_Node", + "Leon_Qwen_Image_API_Node", + "Leon_Qwen_Image_Edit_API_Node", + "Leon_Recraft_Image_API_Node", + "Leon_StableDiffusion_35_API_Node", + "Leon_StableDiffusion_3_Ultra_API_Node", + "Leon_StableDiffusion_XL_API_Node", + "Leon_String_Combine_Node" + ], + { + "nodename_pattern": "^\ud83e\udd16 Leon", + "title_aux": "Leon's Utility and API Integration Nodes" + } + ], "https://github.com/laksjdjf/Batch-Condition-ComfyUI": [ [ "Batch String", @@ -8524,6 +30591,16 @@ "title_aux": "Batch-Condition-ComfyUI" } ], + "https://github.com/laksjdjf/ComfyUI-Imatrix": [ + [ + "ImatrixUNETLoader", + "LoRAdiff", + "SaveImatrix" + ], + { + "title_aux": "ComfyUI-Imatrix" + } + ], "https://github.com/laksjdjf/LCMSampler-ComfyUI": [ [ "SamplerLCM", @@ -8541,14 +30618,6 @@ "title_aux": "LoRTnoC-ComfyUI" } ], - "https://github.com/laksjdjf/attention-couple-ComfyUI": [ - [ - "Attention couple" - ], - { - "title_aux": "attention-couple-ComfyUI" - } - ], "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI": [ [ "CDTuner", @@ -8559,6 +30628,19 @@ "title_aux": "cd-tuner_negpip-ComfyUI" } ], + "https://github.com/laksjdjf/cgem156-ComfyUI": [ + [ + "GradualLatentSampler", + "LCMSamplerRCFG", + "LoadAestheticShadow", + "PredictAesthetic", + "TCDSampler", + "TextScheduler" + ], + { + "title_aux": "cgem156-ComfyUI\ud83c\udf4c" + } + ], "https://github.com/laksjdjf/pfg-ComfyUI": [ [ "PFG" @@ -8567,28 +30649,621 @@ "title_aux": "pfg-ComfyUI" } ], + "https://github.com/larsupb/LoRA-Merger-ComfyUI": [ + [ + "PM LoRA Apply", + "PM LoRA Loader", + "PM LoRA Merger", + "PM LoRA Resizer", + "PM LoRA SVD Merger", + "PM LoRA Save", + "XY: PM LoRA Modes", + "XY: PM LoRA SVD Rank", + "XY: PM LoRA Strengths" + ], + { + "title_aux": "LoRA Power-Merger ComfyUI" + } + ], + "https://github.com/latenightlabs/ComfyUI-LNL": [ + [ + "LNL_FrameSelectorV3", + "LNL_FrameSelectorV4" + ], + { + "title_aux": "LNL Frame Selector" + } + ], + "https://github.com/lazniak/Head-Orientation-Node-for-ComfyUI---by-PabloGFX": [ + [ + "HeadOrientationNode" + ], + { + "title_aux": "Head-Orientation-Node - by PabloGFX" + } + ], + "https://github.com/lazniak/LiquidTime-Interpolation": [ + [ + "LiquidTime" + ], + { + "title_aux": "LiquidTime - by PabloGFX" + } + ], + "https://github.com/lazniak/comfyui-google-photos-loader": [ + [ + "ContentFilter", + "DatePicker", + "Google Photos Album Lister", + "Google Photos Album Loader", + "Google Photos Album Selector", + "Google Photos Cache Manager", + "Google Photos Clear Cache", + "Google Photos Images Loader", + "Google Photos Login/Logout" + ], + { + "title_aux": "Google Photos Loader - by PabloGFX" + } + ], + "https://github.com/lc03lc/Comfyui_OmniConsistency": [ + [ + "Comfyui_OmniConsistency" + ], + { + "title_aux": "ComfyUI OmniConsistency Nodes" + } + ], + "https://github.com/lceric/comfyui-gpt-image": [ + [ + "GPTImage1Generate" + ], + { + "title_aux": "comfyui-gpt-image" + } + ], + "https://github.com/lebrosoft/ComfyUI-VideoChatWrapper": [ + [ + "AudioCombine", + "ConcatAudio", + "ConvertAudioChannels", + "JoinAudio", + "ResampleAudio", + "SplitAudio", + "VCW_LoadVideo", + "VCW_ModelLoader", + "VCW_VideoSummary" + ], + { + "title_aux": "ComfyUI-VideoChatWrapper" + } + ], + "https://github.com/leeguandong/ComfyUI_1Prompt1Story": [ + [ + "GenerateStoryImage", + "PromptStoryModelLoader" + ], + { + "title_aux": "ComfyUI_1Prompt1Story" + } + ], + "https://github.com/leeguandong/ComfyUI_ChatGen": [ + [ + "ChatGenGenerate", + "ChatGenImageProcessor", + "ChatGenModelLoader" + ], + { + "title_aux": "ComfyUI_ChatGen" + } + ], + "https://github.com/leeguandong/ComfyUI_Cogview4": [ + [ + "CogView4ImageGenerator", + "CogView4ModelLoader" + ], + { + "title_aux": "ComfyUI_Cogview4" + } + ], + "https://github.com/leeguandong/ComfyUI_CompareModelWeights": [ + [ + "CheckPointLoader_Compare", + "CompareModelWeightsDiff", + "CompareModelWeightsDiffNormalized", + "PreviewImageCompareModelWeights" + ], + { + "title_aux": "ComfyUI_CompareModelWeights" + } + ], + "https://github.com/leeguandong/ComfyUI_CrossImageAttention": [ + [ + "AppearanceTransferInference", + "AppearanceTransferModelModelLoader", + "CIAConfig", + "LoadImagePath", + "LoadLatents" + ], + { + "title_aux": "ComfyUI nodes to use CrossImageAttention" + } + ], + "https://github.com/leeguandong/ComfyUI_DeepSeekVL2": [ + [ + "deepseek_vl2_inference", + "deepseek_vl2_model_loader" + ], + { + "title_aux": "ComfyUI_DeepSeekVL2" + } + ], + "https://github.com/leeguandong/ComfyUI_FluxAttentionMask": [ + [ + "AMModelLoader", + "AMSample", + "AttentionMask" + ], + { + "title_aux": "ComfyUI nodes to use AttentionMask" + } + ], + "https://github.com/leeguandong/ComfyUI_FluxClipWeight": [ + [ + "CLIPTextEncodeFluxWeight" + ], + { + "title_aux": "ComfyUI nodes to use FluxClipWeight" + } + ], + "https://github.com/leeguandong/ComfyUI_FluxCustomId": [ + [ + "ApplyCustomIDFlux", + "CustomIDModelLoader" + ], + { + "title_aux": "ComfyUI_FluxCustomId" + } + ], + "https://github.com/leeguandong/ComfyUI_FluxLayerDiffuse": [ + [ + "FluxTransparentI2I", + "FluxTransparentModelLoader", + "FluxTransparentT2I" + ], + { + "title_aux": "ComfyUI_FluxLayerDiffuse" + } + ], + "https://github.com/leeguandong/ComfyUI_Gemma3": [ + [ + "ApplyGemma3", + "Gemma3ModelLoader" + ], + { + "title_aux": "ComfyUI_Gemma3" + } + ], + "https://github.com/leeguandong/ComfyUI_InternVL2": [ + [ + "DynamicPreprocess", + "InternVLHFInference", + "InternVLLMDEPLOYInference", + "InternVLModelLoader" + ], + { + "title_aux": "ComfyUI_InternVL2" + } + ], + "https://github.com/leeguandong/ComfyUI_LLaSM": [ + [ + "LLaSM2Interface", + "LLaSM2ModelLoader", + "LLaSMLoadAudio" + ], + { + "title_aux": "ComfyUI_LLaSM" + } + ], + "https://github.com/leeguandong/ComfyUI_M3Net": [ + [ + "M3Net_Interface", + "M3Net_ModelLoader" + ], + { + "title_aux": "ComfyUI_M3Net" + } + ], + "https://github.com/leeguandong/ComfyUI_MasaCtrl": [ + [ + "DirectSampler", + "MasaCtrlConcatImage", + "MasaCtrlInversion", + "MasaCtrlLoadImage", + "MasaCtrlModelLoader", + "MutualSelfAttentionControlMaskAutoSampler", + "MutualSelfAttentionControlSampler" + ], + { + "title_aux": "ComfyUI nodes to use MasaCtrl" + } + ], + "https://github.com/leeguandong/ComfyUI_QWQ32B": [ + [ + "QwQModelLoader", + "QwQTextGenerator" + ], + { + "title_aux": "ComfyUI_QWQ32B" + } + ], + "https://github.com/leeguandong/ComfyUI_Style_Aligned": [ + [ + "SAControlnet_ModelLoader", + "SADepth", + "SAHandler", + "SAInversion", + "SASDXLControlnetKsampler", + "SASDXLKampler", + "SASDXLTransferKsampler", + "SASDXL_ModelLoader", + "SchedulerLoader" + ], + { + "title_aux": "ComfyUI nodes to use Style-Aligned" + } + ], + "https://github.com/leeguandong/ComfyUI_VideoEditing": [ + [ + "LoadVideo2Images", + "VEdit_ControlNet_ModelLoader", + "VEdit_ModelLoader", + "VEdit_Sampler", + "VEdit_image2canny" + ], + { + "title_aux": "ComfyUI nodes to use VideoEditing" + } + ], + "https://github.com/leeguandong/ComfyUI_VisualAttentionMap": [ + [ + "DecodeLatent", + "HFModelLoader", + "ShowCrossAttn", + "ShowImages", + "ShowSelfAttn", + "Text2ImageInference" + ], + { + "title_aux": "ComfyUI_VisualAttentionMap" + } + ], + "https://github.com/leestuartx/ComfyUI-GG": [ + [ + "AddPaddingToImage", + "ForLoopNode", + "ImageAndTextDescriptionBySeed", + "ImageMetadataExtractor", + "InputNode", + "MetadataExtractBySeed", + "MetadataExtractorBySeed", + "OutputNode", + "ResizeImageProportionally", + "WorkspaceNode" + ], + { + "title_aux": "ComfyUI-GG" + } + ], + "https://github.com/lenskikh/ComfyUI-Prompt-Worker": [ + [ + "Clip and Text -> Encode", + "Prompt Body", + "Prompt Clothes", + "Prompt Merger", + "Prompt Worker", + "Prompt \u0421onstructor" + ], + { + "title_aux": "Propmt Worker" + } + ], + "https://github.com/leoleelxh/Comfy-Topaz-Photo": [ + [ + "ComfyTopazPhoto", + "ComfyTopazPhotoTestAndClean" + ], + { + "title_aux": "Comfy-Topaz-Photo" + } + ], "https://github.com/leoleelxh/ComfyUI-LLMs": [ [ - "\ud83d\uddbc\ufe0f LLMs_Vison_Ali", - "\ud83d\uddbc\ufe0f LLMs_Vison_GLM4", - "\ud83d\uddbc\ufe0f LLMs_Vison_Gemini", - "\ud83d\ude00 LLMs_Chat", - "\ud83d\ude00 LLMs_Chat_GLM4_Only" + "LLMs Chat", + "LLMs Vision Unified", + "LLMs_Vision_Unified" ], { "title_aux": "ComfyUI-LLMs" } ], - "https://github.com/lilly1987/ComfyUI_node_Lilly": [ + "https://github.com/leonardomiramondi/flux-context-comfyui": [ [ - "CheckpointLoaderSimpleText", - "LoraLoaderText", - "LoraLoaderTextRandom", - "Random_Sampler", - "VAELoaderDecode" + "FluxKontextNode" ], { - "title_aux": "simple wildcard for ComfyUI" + "title_aux": "Flux Context ComfyUI Node" + } + ], + "https://github.com/lepiai/ComfyUI-Minitools": [ + [ + "LP-CropTransparentEdges", + "LP-ImageToMaskWithAlpha", + "LP-TranslateToEN", + "LP-color2RGB", + "LP-hex2dec", + "NumericSlider" + ], + { + "title_aux": "ComfyUI-Minitools" + } + ], + "https://github.com/lerignoux/ComfyUI-PechaKucha": [ + [ + "GeneratePowerpoint", + "SplitPrompt" + ], + { + "title_aux": "ComfyUI-PechaKucha" + } + ], + "https://github.com/lerignoux/ComfyUI-Stable3DGen": [ + [ + "Stable3DGenerate3D", + "Stable3DLoadModels", + "Stable3DPreprocessImage" + ], + { + "title_aux": "ComfyUI Stable3DGen" + } + ], + "https://github.com/lgldlk/ComfyUI-PC-ding-dong": [ + [ + "pc ding dong", + "pc ding dong text", + "pc time sleep" + ], + { + "title_aux": "ComfyUI-PC-ding-dong" + } + ], + "https://github.com/lgldlk/ComfyUI-PSD-Replace": [ + [ + "psd replace" + ], + { + "title_aux": "ComfyUI-PSD-Replace" + } + ], + "https://github.com/liangt/comfyui-loadimagewithsubfolder": [ + [ + "LoadImageWithSubfolder" + ], + { + "title_aux": "comfyui-loadimagewithsubfolder" + } + ], + "https://github.com/licyk/ComfyUI-HakuImg": [ + [ + "BlendImage", + "Blur", + "Chromatic", + "Color", + "Curve", + "CustomExif", + "Flip", + "Glow", + "InOutPaint", + "LenDistortion", + "OutlineExpansion", + "PixelOE", + "Pixelize", + "PreResize", + "SaveImageWithCustomExif", + "Sketch", + "TiltShift" + ], + { + "title_aux": "ComfyUI-HakuImg" + } + ], + "https://github.com/licyk/ComfyUI-TCD-Sampler": [ + [ + "TCDScheduler" + ], + { + "title_aux": "ComfyUI-TCD-Sampler" + } + ], + "https://github.com/lihaoyun6/ComfyUI-BlindWatermark": [ + [ + "ApplyBlindWatermark", + "ApplyBlindWatermarkAdvanced", + "DecodeBlindWatermark", + "DecodeBlindWatermarkAdvanced" + ], + { + "title_aux": "ComfyUI-BlindWatermark" + } + ], + "https://github.com/lihaoyun6/ComfyUI-CSV-Random-Picker": [ + [ + "CSVRandomPicker" + ], + { + "title_aux": "ComfyUI-CSV-Random-Picker" + } + ], + "https://github.com/lihaoyun6/ComfyUI-QwenPromptRewriter": [ + [ + "QwenPromptRewriter" + ], + { + "title_aux": "Comfyui-QwenPromptRewriter" + } + ], + "https://github.com/lingha0h/comfyui_kj": [ + [ + "cpm_textInput" + ], + { + "title_aux": "comfyui_kj" + } + ], + "https://github.com/linjian-ufo/ComfyUI_GLM4V_voltspark": [ + [ + "Glm4vBatchNode", + "Glm4vNode" + ], + { + "title_aux": "GLM-4V Image Descriptor" + } + ], + "https://github.com/linjian-ufo/comfyui_deepseek_lj257_update": [ + [ + "DeepSeekChatNode" + ], + { + "title_aux": "DeepSeek Chat Node for ComfyUI" + } + ], + "https://github.com/linksluckytime/comfyui_snacknodes": [ + [ + "ImageInfo", + "ImageScaler", + "TextBox", + "TextProcessor" + ], + { + "title_aux": "comfyui_snacknodes" + } + ], + "https://github.com/linshier/comfyui-remote-tools": [ + [ + "LoadBase64(js)", + "LoadBase64FromRemote", + "SendBase64ToRemote" + ], + { + "title_aux": "comfyui-remote-tools" + } + ], + "https://github.com/lisaks/comfyui-panelforge": [ + [ + "FrameNode", + "PageNode", + "RowNode" + ], + { + "title_aux": "Pixstri ComfyUI Comics" + } + ], + "https://github.com/liuqianhonga/ComfyUI-Html2Image": [ + [ + "CameraWatermark", + "TemplateToImage", + "WebpageScreenshot" + ], + { + "title_aux": "ComfyUI-Html2Image" + } + ], + "https://github.com/liuqianhonga/ComfyUI-Image-Compressor": [ + [ + "BatchImageCompressor", + "ImageCompressor" + ], + { + "title_aux": "ComfyUI-Image-Compressor" + } + ], + "https://github.com/liuqianhonga/ComfyUI-QHNodes": [ + [ + "BatchImageCompressor", + "CameraWatermark", + "DownloadCheckpoint", + "DownloadControlNet", + "DownloadLora", + "DownloadUNET", + "DownloadVAE", + "DynamicExpression", + "FileSave", + "Gemini", + "ImageCompressor", + "ImageCountFromFolder", + "JsonToCSV", + "JsonUnpack", + "LoadImageFromFolder", + "LoadLoraFromFolder", + "LoadPromptsFromFolder", + "PresetSizeLatent", + "SamplerSettings", + "ShowTranslateString", + "StringConverter", + "StringFormatter", + "StringList", + "StringListFromCSV", + "StringListToCSV", + "StringMatcher", + "StringTranslate", + "TemplateToImage", + "TimeFormatter", + "UnifiedPromptGenerator", + "WebpageScreenshot" + ], + { + "title_aux": "ComfyUI-QHNodes" + } + ], + "https://github.com/liuqianhonga/ComfyUI-String-Helper": [ + [ + "JsonToCSV", + "ShowTranslateString", + "StringConverter", + "StringFormatter", + "StringList", + "StringListFromCSV", + "StringListToCSV", + "StringMatcher", + "StringTranslate", + "TimeFormatter" + ], + { + "title_aux": "ComfyUI-String-Helper" + } + ], + "https://github.com/liushuchun/ComfyUI_Lora_List_With_Url_Loader": [ + [ + "LoraListUrlLoader" + ], + { + "title_aux": "ComfyUI_Lora_List_With_Url_Loader" + } + ], + "https://github.com/liusida/ComfyUI-AutoCropFaces": [ + [ + "AutoCropFaces" + ], + { + "title_aux": "ComfyUI-AutoCropFaces" + } + ], + "https://github.com/liusida/ComfyUI-B-LoRA": [ + [ + "LoadBLoRA" + ], + { + "title_aux": "ComfyUI-B-LoRA" } ], "https://github.com/liusida/ComfyUI-Debug": [ @@ -8601,47 +31276,286 @@ "title_aux": "ComfyUI-Debug" } ], - "https://github.com/ljleb/comfy-mecha": [ + "https://github.com/liusida/ComfyUI-Login": [ [ - "Blocks Mecha Hyper", - "Custom Code Mecha Recipe", - "Mecha Merger", - "Model Mecha Recipe" + "LoadImageIncognito" ], { - "title_aux": "comfy-mecha" + "title_aux": "ComfyUI-Login" + } + ], + "https://github.com/liusida/ComfyUI-SD3-nodes": [ + [ + "SD3EmptyLatent", + "SD3LoadCLIPs", + "SD3LoadCheckpoint" + ], + { + "title_aux": "ComfyUI-SD3-nodes" + } + ], + "https://github.com/livepeer/ComfyUI-Stream-Pack": [ + [ + "FaceMeshDrawNode", + "FaceMeshMaskNode", + "FaceMeshNode", + "FeatureBankAttentionProcessor", + "SuperResolutionModelLoader", + "SuperResolutionUpscale" + ], + { + "title_aux": "ComfyUI-Stream-Pack" + } + ], + "https://github.com/ljleb/comfy-mecha": [ + [ + "Already Loaded Model Mecha Recipe", + "Any Model Mecha Recipe", + "Blocks Mecha Hyper", + "Bool Mecha Hyper", + "Float Mecha Hyper", + "Int Mecha Hyper", + "Lora Mecha Recipe", + "Mecha Converter", + "Mecha Deserializer", + "Mecha Merge Method Cache Unit", + "Mecha Merger", + "Mecha Recipe List", + "Mecha Regex Weights", + "Mecha Serializer", + "Mecha Subtract Recipe List", + "Model Mecha Recipe", + "SD1-LDM Mecha Blocks Parameters", + "SDXL-SGM Mecha Blocks Parameters", + "String Mecha Hyper" + ], + { + "title_aux": "Mecha Merge Node Pack" + } + ], + "https://github.com/lks-ai/ComfyUI-StableAudioSampler": [ + [ + "StableAudioConditioning", + "StableAudioLoadModel", + "StableAudioPrompt", + "StableAudioSampler" + ], + { + "author": "lks-ai", + "description": "A Simple integration of Stable Audio Diffusion with knobs and stuff!", + "nickname": "stableaudio", + "title": "StableAudioSampler", + "title_aux": "ComfyUI Stable Audio Open 1.0 Sampler" + } + ], + "https://github.com/lks-ai/anynode": [ + [ + "AnyNode", + "AnyNodeAnthropic", + "AnyNodeCodeViewer", + "AnyNodeExport", + "AnyNodeGemini", + "AnyNodeLocal" + ], + { + "author": "newsbubbles", + "description": "This single node uses an LLM to generate a functionality based on your request. You can make the node do anything.", + "nickname": "AnyNode", + "title": "AnyNode v0.1.1", + "title_aux": "ComfyUI AnyNode: Any Node you ask for" + } + ], + "https://github.com/lldacing/ComfyUI_BEN_ll": [ + [ + "BlurFusionForegroundEstimationForBen", + "GetMaskByBen", + "LoadRembgByBenModel", + "RembgByBen", + "RembgByBenAdvanced" + ], + { + "title_aux": "ComfyUI_BEN_ll" + } + ], + "https://github.com/lldacing/ComfyUI_BiRefNet_ll": [ + [ + "AutoDownloadBiRefNetModel", + "BlurFusionForegroundEstimation", + "GetMaskByBiRefNet", + "LoadRembgByBiRefNetModel", + "RembgByBiRefNet", + "RembgByBiRefNetAdvanced" + ], + { + "title_aux": "ComfyUI_BiRefNet_ll" + } + ], + "https://github.com/lldacing/ComfyUI_Patches_ll": [ + [ + "ApplyFirstBlockCachePatch", + "ApplyFirstBlockCachePatchAdvanced", + "ApplyTeaCachePatch", + "ApplyTeaCachePatchAdvanced", + "DitForwardOverrider", + "FluxForwardOverrider", + "VideoForwardOverrider" + ], + { + "title_aux": "ComfyUI_Patches_ll" + } + ], + "https://github.com/lldacing/ComfyUI_PuLID_Flux_ll": [ + [ + "ApplyPulidFlux", + "FixPulidFluxPatch", + "PulidFluxEvaClipLoader", + "PulidFluxFaceDetector", + "PulidFluxInsightFaceLoader", + "PulidFluxModelLoader", + "PulidFluxOptions" + ], + { + "title_aux": "ComfyUI_PuLID_Flux_ll" + } + ], + "https://github.com/lldacing/ComfyUI_StableDelight_ll": [ + [ + "ApplyStableDelight", + "LoadStableDelightModel" + ], + { + "title_aux": "ComfyUI_StableDelight_ll" + } + ], + "https://github.com/lldacing/ComfyUI_StableHair_ll": [ + [ + "ApplyHairRemover", + "ApplyHairTransfer", + "LoadStableHairRemoverModel", + "LoadStableHairTransferModel" + ], + { + "title_aux": "ComfyUI_StableHair_ll" } ], "https://github.com/lldacing/comfyui-easyapi-nodes": [ [ "Base64ToImage", "Base64ToMask", + "BboxToBbox", + "BboxToCropData", + "BboxesToBboxes", "ColorPicker", + "ConvertToJsonStr", + "ConvertTypeToAny", + "CopyAndRenameFiles", + "CropImageByBbox", + "CropTargetSizeImageByBbox", + "EmptyOutputNode", + "FilterSortDependSubGraphs", + "FilterValueForList", + "ForEachClose", + "ForEachOpen", "GetImageBatchSize", + "GetValueFromJsonObj", + "IfElseForEmptyObject", + "ImageEqual", + "ImageSizeGetter", "ImageToBase64", "ImageToBase64Advanced", + "IndexOfList", + "IndexesOfList", + "InnerIntCompare", + "InnerIntMathOperation", + "InnerLoopClose", "InsightFaceBBOXDetect", "IntToList", "IntToNumber", + "IsNoneOrEmpty", + "IsNoneOrEmptyOptional", "JoinList", "ListMerge", + "ListUnWrapper", + "ListWrapper", + "LoadImageFromLocalPath", "LoadImageFromURL", "LoadImageToBase64", + "LoadJsonStrToList", + "LoadLocalFilePath", + "LoadMaskFromLocalPath", "LoadMaskFromURL", + "MaskByBboxes", "MaskImageToBase64", "MaskToBase64", "MaskToBase64Image", + "MaskToRle", + "NodeListMerge", + "NodeListToList", + "NodeListToListMerge", + "NoneNode", + "ReadTextFromLocalFile", + "RleToMask", + "SDBaseVerNumber", "SamAutoMaskSEGS", + "SamAutoMaskSEGSAdvanced", + "SaveImagesWithoutOutput", + "SaveSingleImageWithoutOutput", + "SaveTextToFileByImagePath", + "SaveTextToLocalFile", + "SelectBbox", + "SelectBboxes", + "ShowBoolean", "ShowFloat", "ShowInt", "ShowNumber", "ShowString", - "StringToList" + "SliceList", + "SortDependSubGraphs", + "SplitStringToList", + "StringArea", + "StringToList", + "TryFreeMemory" ], { "title_aux": "comfyui-easyapi-nodes" } ], + "https://github.com/lo-th/Comfyui_three_js": [ + [ + "ThreeView" + ], + { + "title_aux": "Comfyui_three_js" + } + ], + "https://github.com/logtd/ComfyUI-4DHumans": [ + [ + "LoadDetectron", + "LoadHMR", + "ProcessHumans", + "SelectHuman" + ], + { + "title_aux": "ComfyUI-4DHumans" + } + ], + "https://github.com/logtd/ComfyUI-APGScaling": [ + [ + "APGFunction" + ], + { + "title_aux": "ComfyUI-APGScaling" + } + ], + "https://github.com/logtd/ComfyUI-DiLightNet": [ + [ + "LoadDiLightControlNet", + "PrepareDiLightCond" + ], + { + "title_aux": "ComfyUI-DiLightNet" + } + ], "https://github.com/logtd/ComfyUI-FLATTEN": [ [ "ApplyFlattenAttentionNode", @@ -8655,9 +31569,42 @@ "title_aux": "ComfyUI-FLATTEN" } ], + "https://github.com/logtd/ComfyUI-Fluxtapoz": [ + [ + "AddFluxFlow", + "ApplyFluxRaveAttention", + "ApplyRefFlux", + "ApplyRegionalConds", + "ConfigureModifiedFlux", + "CreateRegionalCond", + "FlowEditForwardSampler", + "FlowEditGuider", + "FlowEditReverseSampler", + "FlowEditSampler", + "FluxAttnOverride", + "FluxDeGuidance", + "FluxForwardODESampler", + "FluxInverseSampler", + "FluxNoiseMixer", + "FluxReverseODESampler", + "InFluxFlipSigmas", + "InFluxModelSamplingPred", + "OutFluxModelSamplingPred", + "PAGAttention", + "PrepareAttnBank", + "RFDoubleBlocksOverride", + "RFSingleBlocksOverride", + "RegionalStyleModelApply", + "SEGAttention" + ], + { + "title_aux": "ComfyUI-Fluxtapoz" + } + ], "https://github.com/logtd/ComfyUI-InstanceDiffusion": [ [ "ApplyScaleUModelNode", + "DownloadInstanceDiffusionModels", "InstanceDiffusionTrackingPrompt", "LoadInstanceFusersNode", "LoadInstancePositionNetModel", @@ -8677,6 +31624,29 @@ "title_aux": "ComfyUI-InversedNoise" } ], + "https://github.com/logtd/ComfyUI-MochiEdit": [ + [ + "MochiPrepareSigmas", + "MochiResampler", + "MochiUnsampler", + "MochiWrapperResampler", + "MochiWrapperSamplerCustom", + "MochiWrapperUnsampler" + ], + { + "title_aux": "ComfyUI-MochiEdit" + } + ], + "https://github.com/logtd/ComfyUI-MotionThiefExperiment": [ + [ + "ApplyRefMotionNode", + "MotionRefSettingsCustomNode", + "MotionRefSettingsDefaultNode" + ], + { + "title_aux": "ComfyUI-MotionThiefExperiment" + } + ], "https://github.com/logtd/ComfyUI-RAVE_ATTN": [ [ "ApplyRaveAttentionNode", @@ -8687,6 +31657,15 @@ "title_aux": "ComfyUI-RAVE Attention" } ], + "https://github.com/logtd/ComfyUI-ReNoise": [ + [ + "ReNoiseModelSamplingPred", + "ReNoiseSampler" + ], + { + "title_aux": "ComfyUI-ReNoise" + } + ], "https://github.com/logtd/ComfyUI-RefSampling": [ [ "ApplyRefContentNode", @@ -8697,6 +31676,51 @@ "title_aux": "ComfyUI-RefSampling" } ], + "https://github.com/logtd/ComfyUI-RefUNet": [ + [ + "ConfigRefMapAdv", + "ConfigureRefNet", + "CreateRefBank", + "CustomRefMapSD1", + "PrepareRefLatents", + "ReadSampler", + "RefModelSamplingPred", + "VisionClipEncode", + "WriteSampler" + ], + { + "title_aux": "ComfyUI-RefUNet" + } + ], + "https://github.com/logtd/ComfyUI-SEGAttention": [ + [ + "SEGAttention" + ], + { + "title_aux": "ComfyUI-SEGAttention" + } + ], + "https://github.com/logtd/ComfyUI-SSREncoder": [ + [ + "ApplySSR", + "EncodeSSRQuery", + "LoadSSRAligner", + "LoadSSRAttention" + ], + { + "title_aux": "ComfyUI-SSREncoder" + } + ], + "https://github.com/logtd/ComfyUI-SeeCoder": [ + [ + "LoadSeeCoder", + "LoadSeeCoderUncond", + "SeecoderEncode" + ], + { + "title_aux": "ComfyUI-SeeCoder" + } + ], "https://github.com/logtd/ComfyUI-TrackingNodes": [ [ "OpenPoseTrackerNode", @@ -8706,6 +31730,58 @@ "title_aux": "Tracking Nodes for Videos" } ], + "https://github.com/logtd/ComfyUI-ViewCrafter": [ + [ + "ApplyViewCrafter", + "LoadViewCrafter", + "ScaleImages" + ], + { + "title_aux": "ComfyUI-ViewCrafter" + } + ], + "https://github.com/lokinou/comfyui-offload-models": [ + [ + "OffloadModel", + "RecallModel" + ], + { + "title_aux": "ComfyUI-Offload-Models" + } + ], + "https://github.com/lonelyowl13/artist_randomizer": [ + [ + "AddRandomArtists", + "TextInput" + ], + { + "title_aux": "Artist tag randomizer for comfyui" + } + ], + "https://github.com/longgui0318/comfyui-common-util": [ + [ + "Added Layer Info To Array", + "Enhanced Random Light Source", + "Float Relay", + "HLFrequencyDetailRestore", + "Hex to Color", + "Image Add Alpha", + "Image Frequency Analyzer", + "Image Relay", + "Image Remove Alpha", + "Image Resize With Padding", + "Init Layer Info Array", + "Int Relay", + "Layer Image Seleted", + "Layer Images IPAdapter Advanced", + "Layer Info Array Fuse", + "Mask Relay", + "String Relay" + ], + { + "title_aux": "comfyui-common-util" + } + ], "https://github.com/longgui0318/comfyui-llm-assistant": [ [ "Chat With LLM", @@ -8716,68 +31792,174 @@ "title_aux": "comfyui-llm-assistant" } ], + "https://github.com/longgui0318/comfyui-magic-clothing": [ + [ + "Add Magic Clothing Attention", + "Change Pipeline Dtype And Device", + "Change Pixel Value Normalization", + "Diffusers Model Makeup &MC", + "Diffusers Scheduler Loader &MC", + "Load Magic Clothing Adapter", + "Load Magic Clothing Model", + "Load Magic Clothing Pipeline", + "Load Magic Clothing Pipeline With Path", + "RUN Magic Clothing Diffusers Model" + ], + { + "title_aux": "comfyui-magic-clothing" + } + ], "https://github.com/longgui0318/comfyui-mask-util": [ [ "Image Adaptive Crop M&R", "Image Adaptive Crop With Mask", + "Image Change DType", "Image Change Device", "Image Resolution Adaptive With X", "Image Resolution Limit With 8K", + "Load Image With Name", + "Mask Change DType", "Mask Change Device", "Mask Selection Of Masks", + "Model Change Device", + "Model Change Device Repeaters", + "Output Image To Input", "Split Masks" ], { "title_aux": "comfyui-mask-util" } ], - "https://github.com/longgui0318/comfyui-oms-diffusion": [ + "https://github.com/lord-lethris/ComfyUI-RPG-Characters": [ [ - "Add Magic Clothing Attention", - "InjectTensorHashLog", - "LOAD OMS", - "Load Magic Clothing Model", - "RUN OMS", - "VAE Mode Choose" + "ModelLikenessSwitch", + "PromptConcatenatorNode", + "PromptConditioningConverter", + "PromptSelectorNode", + "RPGArtStyleSelector", + "RPGCharacterSelector" ], { - "title_aux": "comfyui-oms-diffusion" + "title_aux": "ComfyUI-RPG-Characters" } ], - "https://github.com/lordgasmic/ComfyUI-Wildcards/raw/master/wildcards.py": [ + "https://github.com/lordgasmic/comfyui_save_image_with_options": [ + [ + "SaveImageWithOptions" + ], + { + "title_aux": "comfyui_save_image_with_options" + } + ], + "https://github.com/lordgasmic/comfyui_wildcards": [ [ "CLIPTextEncodeWithWildcards" ], { - "title_aux": "Wildcards" + "title_aux": "comfyui_wildcards" } ], - "https://github.com/lrzjason/ComfyUIJasonNode/raw/main/SDXLMixSampler.py": [ + "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch": [ [ - "SDXLMixSampler" + "InpaintCrop", + "InpaintCropImproved", + "InpaintExtendOutpaint", + "InpaintResize", + "InpaintStitch", + "InpaintStitchImproved" ], { - "title_aux": "ComfyUIJasonNode" + "title_aux": "ComfyUI-Inpaint-CropAndStitch" + } + ], + "https://github.com/lquesada/ComfyUI-Interactive": [ + [ + "InteractiveFloat", + "InteractiveInteger", + "InteractiveReset", + "InteractiveSave", + "InteractiveSeed", + "InteractiveSelector", + "InteractiveSelectorWithParameters", + "InteractiveString", + "InteractiveStringAppend", + "InteractiveStringMultiline", + "InteractiveSwitch", + "InteractiveSwitchWithParameters" + ], + { + "title_aux": "ComfyUI-Interactive" + } + ], + "https://github.com/lquesada/ComfyUI-Prompt-Combinator": [ + [ + "PromptCombinator", + "PromptCombinatorExportGallery", + "PromptCombinatorMerger", + "PromptCombinatorRandomPrompt" + ], + { + "title_aux": "ComfyUI-Prompt-Combinator" + } + ], + "https://github.com/lrzjason/ComfyUI-Watermark-Detection": [ + [ + "WatermarkDetector", + "WatermarkDetectorLoader" + ], + { + "title_aux": "ComfyUI Watermark Detection Node" + } + ], + "https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils": [ + [ + "AddMaskForICLora", + "AutoPatch", + "ConcatContextWindow", + "CreateContextWindow" + ], + { + "title_aux": "Comfyui-In-Context-Lora-Utils" + } + ], + "https://github.com/lrzjason/Comfyui-Kolors-Utils": [ + [ + "SaveKolors", + "SaveWeightAsKolorsUnet" + ], + { + "title_aux": "Comfyui Kolors Utils" + } + ], + "https://github.com/lrzjason/Comfyui-ThinkRemover": [ + [ + "ThinkRemover" + ], + { + "title_aux": "Comfyui-ThinkRemover" } ], "https://github.com/ltdrdata/ComfyUI-Impact-Pack": [ [ "AddMask", + "AnyPipeToBasic", "BasicPipeToDetailerPipe", "BasicPipeToDetailerPipeSDXL", - "BboxDetectorCombined", "BboxDetectorCombined_v2", - "BboxDetectorForEach", "BboxDetectorSEGS", "BitwiseAndMask", "BitwiseAndMaskForEach", + "BlackPatchRetryHookProvider", "CLIPSegDetectorProvider", "CfgScheduleHookProvider", "CombineRegionalPrompts", "CoreMLDetailerHookProvider", + "CustomNoiseDetailerHookProvider", + "CustomSamplerDetailerHookProvider", "DenoiseScheduleHookProvider", "DenoiseSchedulerDetailerHookProvider", "DetailerForEach", + "DetailerForEachAutoRetry", "DetailerForEachDebug", "DetailerForEachDebugPipe", "DetailerForEachPipe", @@ -8795,11 +31977,13 @@ "FromDetailerPipe", "FromDetailerPipeSDXL", "FromDetailerPipe_v2", + "GITSSchedulerFuncProvider", "ImageListToImageBatch", "ImageMaskSwitch", "ImageReceiver", "ImageSender", "ImpactAssembleSEGS", + "ImpactBoolean", "ImpactCombineConditionings", "ImpactCompare", "ImpactConcatConditionings", @@ -8811,12 +31995,15 @@ "ImpactControlNetApplySEGS", "ImpactControlNetClearSEGS", "ImpactConvertDataType", + "ImpactCount_Elts_in_SEGS", "ImpactDecomposeSEGS", "ImpactDilateMask", "ImpactDilateMaskInSEGS", "ImpactDilate_Mask_SEG_ELT", "ImpactDummyInput", "ImpactEdit_SEG_ELT", + "ImpactExecutionOrderController", + "ImpactFlattenMask", "ImpactFloat", "ImpactFrom_SEG_ELT", "ImpactFrom_SEG_ELT_bbox", @@ -8834,30 +32021,41 @@ "ImpactKSamplerAdvancedBasicPipe", "ImpactKSamplerBasicPipe", "ImpactLatentInfo", + "ImpactListBridge", "ImpactLogger", "ImpactLogicalOperators", + "ImpactMakeAnyList", "ImpactMakeImageBatch", "ImpactMakeImageList", + "ImpactMakeMaskBatch", + "ImpactMakeMaskList", "ImpactMakeTileSEGS", "ImpactMinMax", "ImpactNeg", + "ImpactNegativeConditioningPlaceholder", "ImpactNodeSetMuteState", "ImpactQueueTrigger", "ImpactQueueTriggerCountdown", "ImpactRemoteBoolean", "ImpactRemoteInt", + "ImpactSAM2VideoDetectorSEGS", "ImpactSEGSClassify", "ImpactSEGSConcat", + "ImpactSEGSIntersectionFilter", "ImpactSEGSLabelAssign", "ImpactSEGSLabelFilter", + "ImpactSEGSMerge", + "ImpactSEGSNMSFilter", "ImpactSEGSOrderedFilter", "ImpactSEGSPicker", "ImpactSEGSRangeFilter", "ImpactSEGSToMaskBatch", "ImpactSEGSToMaskList", "ImpactScaleBy_BBOX_SEG_ELT", + "ImpactSchedulerAdapter", "ImpactSegsAndMask", "ImpactSegsAndMaskForEach", + "ImpactSelectNthItemOfAnyList", "ImpactSetWidgetValue", "ImpactSimpleDetectorSEGS", "ImpactSimpleDetectorSEGSPipe", @@ -8873,15 +32071,15 @@ "IterativeLatentUpscale", "KSamplerAdvancedProvider", "KSamplerProvider", + "LamaRemoverDetailerHookProvider", "LatentPixelScale", "LatentReceiver", "LatentSender", "LatentSwitch", - "MMDetDetectorProvider", - "MMDetLoader", "MaskDetailerPipe", "MaskListToMaskBatch", - "MaskPainter", + "MaskRectArea", + "MaskRectAreaAdvanced", "MaskToSEGS", "MaskToSEGS_for_AnimateDiff", "MasksToMaskList", @@ -8920,16 +32118,14 @@ "SEGSToImageList", "SEGSUpscaler", "SEGSUpscalerPipe", - "SegmDetectorCombined", "SegmDetectorCombined_v2", - "SegmDetectorForEach", "SegmDetectorSEGS", "Segs Mask", "Segs Mask ForEach", - "SegsMaskCombine", "SegsToCombinedMask", "SetDefaultImageForSEGS", "StepsScheduleHookProvider", + "StringListToString", "SubtractMask", "SubtractMaskForEach", "TiledKSamplerProvider", @@ -8941,21 +32137,38 @@ "TwoSamplersForMask", "TwoSamplersForMaskUpscalerProvider", "TwoSamplersForMaskUpscalerProviderPipe", - "UltralyticsDetectorProvider", "UnsamplerDetailerHookProvider", - "UnsamplerHookProvider" + "UnsamplerHookProvider", + "VariationNoiseDetailerHookProvider", + "WildcardPromptFromString" ], { "author": "Dr.Lt.Data", "description": "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler.", "nickname": "Impact Pack", + "preemptions": [ + "SAMLoader" + ], "title": "Impact Pack", "title_aux": "ComfyUI Impact Pack" } ], + "https://github.com/ltdrdata/ComfyUI-Impact-Subpack": [ + [ + "UltralyticsDetectorProvider" + ], + { + "author": "Dr.Lt.Data", + "description": "This extension provides UltralyticsDetectorProvider node", + "nickname": "Impact Subpack", + "title": "Impact Subpack", + "title_aux": "ComfyUI Impact Subpack" + } + ], "https://github.com/ltdrdata/ComfyUI-Inspire-Pack": [ [ "AnimeLineArt_Preprocessor_Provider_for_SEGS //Inspire", + "ApplyLBW //Inspire", "ApplyRegionalIPAdapters //Inspire", "BindImageListPromptList //Inspire", "CLIPTextEncodeWithWeight //Inspire", @@ -8963,15 +32176,24 @@ "CacheBackendDataList //Inspire", "CacheBackendDataNumberKey //Inspire", "CacheBackendDataNumberKeyList //Inspire", + "CacheBridge //Inspire", "Canny_Preprocessor_Provider_for_SEGS //Inspire", "ChangeImageBatchSize //Inspire", "ChangeLatentBatchSize //Inspire", "CheckpointLoaderSimpleShared //Inspire", + "ColorMapToMasks //Inspire", + "ColorMaskToDepthMask //Inspire", "Color_Preprocessor_Provider_for_SEGS //Inspire", + "CompositeNoise //Inspire", "ConcatConditioningsWithMultiplier //Inspire", + "ConditioningStretch //Inspire", + "ConditioningUpscale //Inspire", "DWPreprocessor_Provider_for_SEGS //Inspire", + "DropItems //Inspire", "FakeScribblePreprocessor_Provider_for_SEGS //Inspire", "FloatRange //Inspire", + "ForeachListBegin //Inspire", + "ForeachListEnd //Inspire", "FromIPAdapterPipe //Inspire", "GlobalSampler //Inspire", "GlobalSeed //Inspire", @@ -8980,6 +32202,7 @@ "IPAdapterModelHelper //Inspire", "ImageBatchSplitter //Inspire", "InpaintPreprocessor_Provider_for_SEGS //Inspire", + "IsCached //Inspire", "KSampler //Inspire", "KSamplerAdvanced //Inspire", "KSamplerAdvancedPipe //Inspire", @@ -8990,15 +32213,19 @@ "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LineArt_Preprocessor_Provider_for_SEGS //Inspire", "ListCounter //Inspire", + "LoadDiffusionModelShared //Inspire", "LoadImage //Inspire", "LoadImageListFromDir //Inspire", "LoadImagesFromDir //Inspire", + "LoadLBW //Inspire", "LoadPromptsFromDir //Inspire", "LoadPromptsFromFile //Inspire", "LoadSinglePromptFromFile //Inspire", + "LoadTextEncoderShared //Inspire", "LoraBlockInfo //Inspire", "LoraLoaderBlockWeight //Inspire", "MakeBasicPipe //Inspire", + "MakeLBW //Inspire", "Manga2Anime_LineArt_Preprocessor_Provider_for_SEGS //Inspire", "MediaPipeFaceMeshDetectorProvider //Inspire", "MediaPipe_FaceMesh_Preprocessor_Provider_for_SEGS //Inspire", @@ -9007,7 +32234,10 @@ "OpenPose_Preprocessor_Provider_for_SEGS //Inspire", "PromptBuilder //Inspire", "PromptExtractor //Inspire", + "RGB_HexToHSV //Inspire", "RandomGeneratorForList //Inspire", + "RandomNoise //Inspire", + "RegionalCFG //Inspire", "RegionalConditioningColorMask //Inspire", "RegionalConditioningSimple //Inspire", "RegionalIPAdapterColorMask //Inspire", @@ -9024,44 +32254,584 @@ "RemoveControlNetFromRegionalPrompts //Inspire", "RetrieveBackendData //Inspire", "RetrieveBackendDataNumberKey //Inspire", + "SaveLBW //Inspire", + "ScheduledCFGGuider //Inspire", + "ScheduledPerpNegCFGGuider //Inspire", "SeedExplorer //Inspire", + "SeedLogger //Inspire", + "SelectNthMask //Inspire", "ShowCachedInfo //Inspire", "StableCascade_CheckpointLoader //Inspire", "TilePreprocessor_Provider_for_SEGS //Inspire", "ToIPAdapterPipe //Inspire", "UnzipPrompt //Inspire", "WildcardEncode //Inspire", + "WorklistToItemList //Inspire", "XY Input: Lora Block Weight //Inspire", "ZipPrompt //Inspire", "Zoe_DepthMap_Preprocessor_Provider_for_SEGS //Inspire" ], { "author": "Dr.Lt.Data", - "description": "This extension provides various nodes to support Lora Block Weight and the Impact Pack.", + "description": "This extension provides various nodes to support Lora Block Weight, Regional Nodes, Backend Cache, Prompt Utils, List Utils and the Impact Pack.", "nickname": "Inspire Pack", "nodename_pattern": "Inspire$", "title": "Inspire Pack", "title_aux": "ComfyUI Inspire Pack" } ], - "https://github.com/m-sokes/ComfyUI-Sokes-Nodes": [ - [ - "Custom Date Format | sokes \ud83e\uddac", - "Latent Switch x9 | sokes \ud83e\uddac" - ], + "https://github.com/ltdrdata/comfyui-connection-helper": [ + [], { - "title_aux": "ComfyUI Sokes Nodes" + "author": "Dr.Lt.Data", + "description": "Helper", + "nickname": "Connection Helper", + "nodename_pattern": "Inspire$", + "title": "ComfyUI Connection Helper", + "title_aux": "ComfyUI Connection Helper" } ], - "https://github.com/m957ymj75urz/ComfyUI-Custom-Nodes/raw/main/clip-text-encode-split/clip_text_encode_split.py": [ + "https://github.com/ltdrdata/was-node-suite-comfyui": [ [ - "RawText", - "RawTextCombine", - "RawTextEncode", - "RawTextReplace" + "BLIP Analyze Image", + "BLIP Model Loader", + "Blend Latents", + "Boolean To Text", + "Bounded Image Blend", + "Bounded Image Blend with Mask", + "Bounded Image Crop", + "Bounded Image Crop with Mask", + "Bus Node", + "CLIP Input Switch", + "CLIP Vision Input Switch", + "CLIPSEG2", + "CLIPSeg Batch Masking", + "CLIPSeg Masking", + "CLIPSeg Model Loader", + "CLIPTextEncode (BlenderNeko Advanced + NSP)", + "CLIPTextEncode (NSP)", + "Cache Node", + "Checkpoint Loader", + "Checkpoint Loader (Simple)", + "Conditioning Input Switch", + "Constant Number", + "Control Net Model Input Switch", + "Convert Masks to Images", + "Create Grid Image", + "Create Grid Image from Batch", + "Create Morph Image", + "Create Morph Image from Path", + "Create Video from Path", + "Debug Number to Console", + "Dictionary to Console", + "Diffusers Hub Model Down-Loader", + "Diffusers Model Loader", + "Export API", + "HSL to Hex", + "Hex to HSL", + "Image Analyze", + "Image Aspect Ratio", + "Image Batch", + "Image Blank", + "Image Blend", + "Image Blend by Mask", + "Image Blending Mode", + "Image Bloom Filter", + "Image Bounds", + "Image Bounds to Console", + "Image Canny Filter", + "Image Chromatic Aberration", + "Image Color Palette", + "Image Crop Face", + "Image Crop Location", + "Image Crop Square Location", + "Image Displacement Warp", + "Image Dragan Photography Filter", + "Image Edge Detection Filter", + "Image Film Grain", + "Image Filter Adjustments", + "Image Flip", + "Image Generate Gradient", + "Image Gradient Map", + "Image High Pass Filter", + "Image History Loader", + "Image Input Switch", + "Image Levels Adjustment", + "Image Load", + "Image Lucy Sharpen", + "Image Median Filter", + "Image Mix RGB Channels", + "Image Monitor Effects Filter", + "Image Nova Filter", + "Image Padding", + "Image Paste Crop", + "Image Paste Crop by Location", + "Image Paste Face", + "Image Perlin Noise", + "Image Perlin Power Fractal", + "Image Pixelate", + "Image Power Noise", + "Image Rembg (Remove Background)", + "Image Remove Background (Alpha)", + "Image Remove Color", + "Image Resize", + "Image Rotate", + "Image Rotate Hue", + "Image SSAO (Ambient Occlusion)", + "Image SSDO (Direct Occlusion)", + "Image Save", + "Image Seamless Texture", + "Image Select Channel", + "Image Select Color", + "Image Send HTTP", + "Image Shadows and Highlights", + "Image Size to Number", + "Image Stitch", + "Image Style Filter", + "Image Threshold", + "Image Tiled", + "Image Transpose", + "Image Voronoi Noise Filter", + "Image fDOF Filter", + "Image to Latent Mask", + "Image to Noise", + "Image to Seed", + "Images to Linear", + "Images to RGB", + "Inset Image Bounds", + "Integer place counter", + "KSampler (WAS)", + "KSampler Cycle", + "Latent Batch", + "Latent Input Switch", + "Latent Noise Injection", + "Latent Size to Number", + "Latent Upscale by Factor (WAS)", + "Load Cache", + "Load Image Batch", + "Load Lora", + "Load Text File", + "Logic Boolean", + "Logic Boolean Primitive", + "Logic Comparison AND", + "Logic Comparison OR", + "Logic Comparison XOR", + "Logic NOT", + "Lora Input Switch", + "Lora Loader", + "Mask Arbitrary Region", + "Mask Batch", + "Mask Batch to Mask", + "Mask Ceiling Region", + "Mask Crop Dominant Region", + "Mask Crop Minority Region", + "Mask Crop Region", + "Mask Dilate Region", + "Mask Dominant Region", + "Mask Erode Region", + "Mask Fill Holes", + "Mask Floor Region", + "Mask Gaussian Region", + "Mask Invert", + "Mask Minority Region", + "Mask Paste Region", + "Mask Rect Area", + "Mask Rect Area (Advanced)", + "Mask Smooth Region", + "Mask Threshold Region", + "Masks Add", + "Masks Combine Batch", + "Masks Combine Regions", + "Masks Subtract", + "MiDaS Depth Approximation", + "MiDaS Mask Image", + "MiDaS Model Loader", + "Model Input Switch", + "Number Counter", + "Number Input Condition", + "Number Input Switch", + "Number Multiple Of", + "Number Operation", + "Number PI", + "Number to Float", + "Number to Int", + "Number to Seed", + "Number to String", + "Number to Text", + "Prompt Multiple Styles Selector", + "Prompt Styles Selector", + "Random Number", + "SAM Image Mask", + "SAM Model Loader", + "SAM Parameters", + "SAM Parameters Combine", + "Samples Passthrough (Stat System)", + "Save Text File", + "Seed", + "String to Text", + "Tensor Batch to Image", + "Text Add Token by Input", + "Text Add Tokens", + "Text Compare", + "Text Concatenate", + "Text Contains", + "Text Dictionary Convert", + "Text Dictionary Get", + "Text Dictionary Keys", + "Text Dictionary New", + "Text Dictionary To Text", + "Text Dictionary Update", + "Text File History Loader", + "Text Find", + "Text Find and Replace", + "Text Find and Replace Input", + "Text Find and Replace by Dictionary", + "Text Input Switch", + "Text List", + "Text List Concatenate", + "Text List to Text", + "Text Load Line From File", + "Text Multiline", + "Text Multiline (Code Compatible)", + "Text Parse A1111 Embeddings", + "Text Parse Noodle Soup Prompts", + "Text Parse Tokens", + "Text Random Line", + "Text Random Prompt", + "Text Shuffle", + "Text Sort", + "Text String", + "Text String Truncate", + "Text to Conditioning", + "Text to Console", + "Text to Number", + "Text to String", + "True Random.org Number Generator", + "Upscale Model Loader", + "Upscale Model Switch", + "VAE Input Switch", + "Video Dump Frames", + "Write to GIF", + "Write to Video", + "unCLIP Checkpoint Loader" ], { - "title_aux": "m957ymj75urz/ComfyUI-Custom-Nodes" + "title_aux": "WAS Node Suite (Revised)" + } + ], + "https://github.com/lthero-big/ComfyUI-GaussianShadingWatermark": [ + [ + "DPR_Extractor", + "DPR_GS_Latent", + "DPR_KSamplerAdvanced" + ], + { + "title_aux": "ComfyUI-GaussianShadingWatermark" + } + ], + "https://github.com/luandev/ComfyUI-CrewAI": [ + [ + "DisplayText", + "\ud83d\udcceCrewAI Agent", + "\ud83d\udcceCrewAI Agent List", + "\ud83d\udcceCrewAI Crew", + "\ud83d\udcceCrewAI LLM Chat GPT", + "\ud83d\udcceCrewAI LLM Hugging Face", + "\ud83d\udcceCrewAI LLM Ollama", + "\ud83d\udcceCrewAI LLM OpenAI", + "\ud83d\udcceCrewAI Task", + "\ud83d\udcceCrewAI Task List", + "\ud83d\udcceCrewAI Text" + ], + { + "title_aux": "ComfyUI CrewAI" + } + ], + "https://github.com/lucak5s/comfyui_gfpgan": [ + [ + "GFPGANRestorer" + ], + { + "title_aux": "ComfyUI GFPGAN" + } + ], + "https://github.com/lucasgattas/comfyui-egregora-divide-and-enhance": [ + [ + "Egregora Algorithm", + "Egregora Analyze Content", + "Egregora Combine", + "Egregora Divide and Select", + "Egregora Preview", + "Egregora Turbo Prompt" + ], + { + "title_aux": "ComfyUI \u00b7 Egregora: Divide & Enhance" + } + ], + "https://github.com/lujiazho/ComfyUI-CatvtonFluxWrapper": [ + [ + "CatvtonFluxSampler", + "LoadCatvtonFlux", + "LoadCatvtonFluxLoRA", + "ModelPrinter" + ], + { + "title_aux": "ComfyUI-CatvtonFluxWrapper" + } + ], + "https://github.com/luke-mino-altherr/ComfyUI-LatentReverb": [ + [ + "LatentReverb" + ], + { + "title_aux": "ComfyUI-Latent-Reverb" + } + ], + "https://github.com/lum3on/ComfyUI-FrameUtilitys": [ + [ + "FrameExtender", + "FrameExtenderAdvanced", + "FrameReplacer", + "GitInstaller" + ], + { + "title_aux": "ComfyUI-FrameUtilitys" + } + ], + "https://github.com/lum3on/ComfyUI-ModelQuantizer": [ + [ + "ControlNetFP8QuantizeNode", + "ControlNetMetadataViewerNode", + "ModelToStateDict", + "QuantizeFP8Format", + "QuantizeModel", + "SaveAsSafeTensor" + ], + { + "title_aux": "ComfyUI-ModelQuantizer" + } + ], + "https://github.com/lum3on/ComfyUI-StableAudioX": [ + [ + "AudioXAdvancedVolumeControl", + "AudioXAudioProcessor", + "AudioXEnhancedTextToAudio", + "AudioXEnhancedTextToMusic", + "AudioXEnhancedVideoToAudio", + "AudioXModelLoader", + "AudioXMultiModalGeneration", + "AudioXPromptHelper", + "AudioXTextToAudio", + "AudioXTextToMusic", + "AudioXVideoAudioCombiner", + "AudioXVideoMuter", + "AudioXVideoToAudio", + "AudioXVideoToMusic", + "AudioXVolumeControl" + ], + { + "title_aux": "ComfyUI-AudioX" + } + ], + "https://github.com/lum3on/ComfyUI_MJ-Scraper": [ + [ + "MJScraper" + ], + { + "title_aux": "ComfyUI Midjourney Scraper Node" + } + ], + "https://github.com/lum3on/comfyui_EdgeTAM": [ + [ + "EdgeTAMVideoTracker", + "InteractiveMaskEditor" + ], + { + "title_aux": "comfyui_EdgeTAM" + } + ], + "https://github.com/lum3on/comfyui_HiDream-Sampler": [ + [ + "HiDreamImg2Img", + "HiDreamSampler", + "HiDreamSamplerAdvanced" + ], + { + "title_aux": "HiDream Sampler" + } + ], + "https://github.com/lum3on/comfyui_LLM_Polymath": [ + [ + "ConceptEraserNode", + "flux_context_preset", + "polymath_SaveAbsolute", + "polymath_StringListPicker", + "polymath_TextSplitter", + "polymath_chat", + "polymath_helper", + "polymath_scraper", + "polymath_settings", + "polymath_text_mask" + ], + { + "title_aux": "comfyui_LLM_Polymath" + } + ], + "https://github.com/lumalabs/ComfyUI-LumaAI-API": [ + [ + "CharacterReference", + "ConcatReferences", + "ImgBBUpload", + "LumaAIClient", + "LumaAddAudio2Video", + "LumaExtendGeneration", + "LumaImage2Video", + "LumaImageGeneration", + "LumaInterpolateGenerations", + "LumaModifyImage", + "LumaPreviewVideo", + "LumaText2Video", + "LumaUpscaleGeneration", + "Reference" + ], + { + "title_aux": "ComfyUI-LumaAI-API" + } + ], + "https://github.com/lxe/ComfyUI-OpenAI-Compat-LLM-Node": [ + [ + "OpenAILLMNode" + ], + { + "title_aux": "ComfyUI OpenAI Compatible LLM Node" + } + ], + "https://github.com/m-sokes/ComfyUI-Sokes-Nodes": [ + [ + "ComfyUI Folder Paths | sokes \ud83e\uddac", + "Current Date & Time | sokes \ud83e\uddac", + "Generate Random Background | sokes \ud83e\uddac", + "Hex Color Swatch | sokes \ud83e\uddac", + "Hex to Color Name | sokes \ud83e\uddac", + "Image Picker | sokes \ud83e\uddac", + "Latent Switch x9 | sokes \ud83e\uddac", + "Load Random Image | sokes \ud83e\uddac", + "Random Hex Color | sokes \ud83e\uddac", + "Random Number | sokes \ud83e\uddac", + "Replace Text with RegEx | sokes \ud83e\uddac", + "Runpod Serverless | sokes \ud83e\uddac", + "Street View Loader | sokes \ud83e\uddac" + ], + { + "title_aux": "ComfyUI Sokes Nodes \ud83e\uddac" + } + ], + "https://github.com/maepopi/Diffusers-in-ComfyUI": [ + [ + "BLoRALoader", + "GenerateImg2Image", + "GenerateInpaintImage", + "GenerateTxt2Image", + "Img2ImgStableDiffusionPipeline", + "InpaintingStableDiffusionPipeline", + "LoRALoader", + "MakeCanny", + "Text2ImgStableDiffusionPipeline" + ], + { + "title_aux": "Diffusers-in-ComfyUI" + } + ], + "https://github.com/magekinnarus/ComfyUI-V-Prediction-Node": [ + [ + "AddParam" + ], + { + "title_aux": "ComfyUI-V-Prediction-Node" + } + ], + "https://github.com/magic-eraser-org/ComfyUI-Unwatermark": [ + [ + "Remove Watermark" + ], + { + "title_aux": "ComfyUI-Unwatermark" + } + ], + "https://github.com/mamorett/ComfyUI_minicpmv4": [ + [ + "GenCheckerImage", + "MiniCPMV4GGUFLoader", + "MiniCPMV4VisionInfer", + "VisionPromptBuilder" + ], + { + "title_aux": "MiniCPM\u2011V\u20114 (GGUF) for ComfyUI" + } + ], + "https://github.com/mang01010/MangoNodePack": [ + [ + "CompositeMangoLoader", + "FluxGuidanceMango", + "FluxSamplerMango", + "ImageSaverMango", + "KSamplerMango", + "LatentImageMango", + "LoraStackMango", + "MangoImageLoader", + "MangoLoader", + "MangoLoader10Loras", + "MangoModelData", + "MangoPromptLoad", + "MangoTriggerExporter", + "PromptEmbedMango", + "PromptMango", + "PromptSave" + ], + { + "title_aux": "Mango Node Pack" + } + ], + "https://github.com/mango-rgb/ComfyUI-Mango-Random-node": [ + [ + "RandomFilePathNode", + "RandomImageNode", + "RandomImagePathNode", + "RandomTextNode", + "RandomVideoPathNode" + ], + { + "title_aux": "ComfyUI-Mango-Random" + } + ], + "https://github.com/mangobyed/ComfyUI_Detection_List": [ + [ + "YOLOv8ObjectDetectionNode" + ], + { + "title_aux": "ComfyUI YOLOv8 Object Detection Node" + } + ], + "https://github.com/manifestations/comfyui-globetrotter": [ + [ + "LoRATrainerNode", + "OllamaLLMNode", + "OllamaVisionNode", + "TextCombinerNode" + ], + { + "title_aux": "ComfyUI Globetrotter Nodes" + } + ], + "https://github.com/manifestations/comfyui-outfit": [ + [ + "OllamaLLMNode", + "PhotoStyleHelperNode", + "PresetPatchApplierNode", + "SimpleOllamaNode" + ], + { + "title_aux": "ComfyUI Outfit Nodes" } ], "https://github.com/mape/ComfyUI-mape-Helpers": [ @@ -9084,6 +32854,109 @@ "title_aux": "ComfyUI-SubjectStyle-CSV" } ], + "https://github.com/marawan206/ComfyUI-FaceCropper": [ + [ + "NodoFaceCropping" + ], + { + "title_aux": "Face Cropper Node (2:3 Ratio)" + } + ], + "https://github.com/marco-zanella/ComfyUI-BooleanExpression": [ + [ + "BooleanExpression.And", + "BooleanExpression.ArithmenticComparison.BinaryComparison", + "BooleanExpression.ArithmenticComparison.EqualTo", + "BooleanExpression.ArithmenticComparison.GreaterThan", + "BooleanExpression.ArithmenticComparison.GreaterThanOrEqualTo", + "BooleanExpression.ArithmenticComparison.LessThan", + "BooleanExpression.ArithmenticComparison.LessThanOrEqualTo", + "BooleanExpression.ArithmenticComparison.NotEqualTo", + "BooleanExpression.BinaryExpression", + "BooleanExpression.ConditionalBranch", + "BooleanExpression.False", + "BooleanExpression.Nand", + "BooleanExpression.Nor", + "BooleanExpression.Not", + "BooleanExpression.Or", + "BooleanExpression.StringComparison.AlphabeticalEqualTo", + "BooleanExpression.StringComparison.AlphabeticalGreaterThan", + "BooleanExpression.StringComparison.AlphabeticalGreaterThanOrEqualTo", + "BooleanExpression.StringComparison.AlphabeticalLessThan", + "BooleanExpression.StringComparison.AlphabeticalLessThanOrEqualTo", + "BooleanExpression.StringComparison.AlphabeticalNotEqualTo", + "BooleanExpression.StringComparison.Contains", + "BooleanExpression.StringComparison.EndsWith", + "BooleanExpression.StringComparison.NotContains", + "BooleanExpression.StringComparison.NotEndsWith", + "BooleanExpression.StringComparison.NotStartsWith", + "BooleanExpression.StringComparison.StartsWith", + "BooleanExpression.StringComparison.StringComparison", + "BooleanExpression.True", + "BooleanExpression.Xor" + ], + { + "title_aux": "ComfyUI-BooleanExpression" + } + ], + "https://github.com/marcoc2/ComfyUI-AnotherUtils": [ + [ + "AdaptiveNoise", + "CIELChNoiseGEGLLike", + "CharacterConstructor", + "CharacterRandomizer", + "CustomCrop", + "FightingGameCharacter", + "ImageTypeDetector", + "LastImage", + "LoadImageRemoveAlpha", + "LoadImagesOriginal", + "MeanCurvatureBlurGEGLLike", + "NearestUpscale", + "PixelArtConverter", + "PixelArtConverterParallel", + "PixelArtNormalizer", + "RGBNoiseGEGLLike", + "RemoveAlpha", + "SmartResize", + "WalkingPoseGenerator" + ], + { + "title_aux": "Image Processing Suite for ComfyUI" + } + ], + "https://github.com/marcoc2/ComfyUI_CogView4-6B_diffusers": [ + [ + "CogView4Generator" + ], + { + "title_aux": "ComfyUI-Cog" + } + ], + "https://github.com/marduk191/ComfyUI-Fluxpromptenhancer": [ + [ + "FluxPromptEnhance" + ], + { + "title_aux": "Flux Prompt Enhance Node for ComfyUI" + } + ], + "https://github.com/marduk191/comfyui-marnodes": [ + [ + "ImageToDevice", + "marduk191_5_text_string", + "marduk191_5way_text_switch", + "marduk191_s_random_latent", + "marduk191_workflow_settings" + ], + { + "author": "\u02f6marduk191", + "description": "marduk191s nodes.", + "nickname": "marduk191 workflow settings", + "title": "marduk191 workflow settings", + "title_aux": "marduk191 workflow settings" + } + ], "https://github.com/marhensa/sdxl-recommended-res-calc": [ [ "RecommendedResCalc" @@ -9092,10 +32965,64 @@ "title_aux": "Recommended Resolution Calculator" } ], + "https://github.com/marklieberman/ComfyUI-Liebs-Picker": [ + [ + "LiebsPicker", + "LiebsPickerSEGS" + ], + { + "title_aux": "ComfyUI-Liebs-Picker" + } + ], + "https://github.com/marklieberman/ComfyUI-Liebs-Title": [ + [ + "LiebsTitleVar" + ], + { + "title_aux": "ComfyUI-Liebs-Title" + } + ], + "https://github.com/marklieberman/ComfyUI-Liebs-Toast": [ + [ + "LiebsToast" + ], + { + "title_aux": "ComfyUI-Liebs-Toast" + } + ], + "https://github.com/markuryy/ComfyUI-Flux-Prompt-Saver": [ + [ + "FluxPromptSaver", + "FluxTextSampler", + "ModelName" + ], + { + "title_aux": "ComfyUI Flux Prompt Saver" + } + ], + "https://github.com/markuryy/ComfyUI-Simple-Video-XY-Plot": [ + [ + "VideoXYPlotSampler" + ], + { + "title_aux": "Video XY Plot" + } + ], + "https://github.com/markuryy/ComfyUI-SuperLoader": [ + [ + "Display String", + "Display String Multiline", + "LoRA Metadata" + ], + { + "title_aux": "Super Loader" + } + ], "https://github.com/martijnat/comfyui-previewlatent": [ [ "PreviewLatent", "PreviewLatentAdvanced", + "PreviewLatentFlux", "PreviewLatentXL" ], { @@ -9112,16 +33039,50 @@ ], "https://github.com/matan1905/ComfyUI-Serving-Toolkit": [ [ + "AlwaysExecute", + "CommandPickerServing", "DiscordServing", + "ServingInputImage", + "ServingInputImageAsLatent", "ServingInputNumber", "ServingInputText", + "ServingInputTextImage", + "ServingMultiImageOutput", "ServingOutput", + "ServingTextOutput", + "TelegramServing", "WebSocketServing" ], { "title_aux": "ComfyUI Serving toolkit" } ], + "https://github.com/matorzhin/milan-nodes-comfyui": [ + [ + "LoadMultipleImagesExtended", + "LoadOneImageExtended" + ], + { + "title_aux": "milan-nodes-comfyui" + } + ], + "https://github.com/mattjohnpowell/comfyui-lmstudio-image-to-text-node": [ + [ + "Expo Lmstudio Image To Text", + "Expo Lmstudio Text Generation", + "Expo Lmstudio Unified", + "ExpoLmstudioImageToText", + "ExpoLmstudioTextGeneration", + "ExpoLmstudioUnified" + ], + { + "author": "Matt John Powell", + "description": "This extension provides three custom nodes for ComfyUI that integrate LM Studio's capabilities:", + "nickname": "LM Studio Nodes", + "title": "LM Studio Nodes for ComfyUI", + "title_aux": "LM Studio Image to Text Node for ComfyUI" + } + ], "https://github.com/mav-rik/facerestore_cf": [ [ "CropFace", @@ -9132,6 +33093,16 @@ "title_aux": "Facerestore CF (Code Former)" } ], + "https://github.com/max-dingsda/OllamaTools": [ + [ + "OllamaPicDescriber", + "OllamaPromptBooster", + "PromptStylist" + ], + { + "title_aux": "OllamaTools for ComfyUI" + } + ], "https://github.com/mbrostami/ComfyUI-HF": [ [ "GPT2Node" @@ -9140,13 +33111,46 @@ "title_aux": "ComfyUI-HF" } ], + "https://github.com/mbrostami/ComfyUI-TITrain": [ + [ + "TextualInversionTraining", + "TextualInversionTrainingSDXL" + ], + { + "title_aux": "ComfyUI-TITrain" + } + ], + "https://github.com/mcDandy/more_math": [ + [ + "mrmth_AudioMathNode", + "mrmth_ConditioningMathNode", + "mrmth_FloatMathNode", + "mrmth_FloatToInt", + "mrmth_ImageMathNode", + "mrmth_IntToFloat", + "mrmth_LatentMathNode", + "mrmth_NoiseMathNode" + ], + { + "title_aux": "More Math" + } + ], "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding": [ [ "DynamicThresholdingFull", "DynamicThresholdingSimple" ], { - "title_aux": "Stable Diffusion Dynamic Thresholding (CFG Scale Fix)" + "title_aux": "Dynamic Thresholding" + } + ], + "https://github.com/meanin2/comfyui-MGnodes": [ + [ + "ImageWatermarkNode", + "TextExtractorNode" + ], + { + "title_aux": "comfyui-MGnodes" } ], "https://github.com/meap158/ComfyUI-Background-Replacement": [ @@ -9174,6 +33178,33 @@ "title_aux": "ComfyUI-Prompt-Expansion" } ], + "https://github.com/mech-tools/comfyui-checkpoint-automatic-config": [ + [ + "CheckpointAutomaticConfig", + "ConfigPipe" + ], + { + "title_aux": "ComfyUI Checkpoint Automatic Config" + } + ], + "https://github.com/mediocreatmybest/ComfyUI-Transformers-Pipeline": [ + [ + "BatchProcessorTpl", + "CaptionExportTpl", + "CaptionGeneratorTpl", + "DebugModelNodeTpl", + "DebugNodeTpl", + "ExifMetadataExtractorTpl", + "Florence2NodeTpl", + "ImageLoaderTpl", + "ModelLoaderTpl", + "PresetModelListTpl", + "TaskListTpl" + ], + { + "title_aux": "ComfyUI-Transformers-Pipeline" + } + ], "https://github.com/melMass/comfy_mtb": [ [ "Animation Builder (mtb)", @@ -9242,6 +33273,83 @@ "title_aux": "MTB Nodes" } ], + "https://github.com/melMass/comfy_oiio": [ + [ + "OIIO_ColorspaceConvert", + "OIIO_ColorspaceMatchFinder", + "OIIO_LoadImage", + "OIIO_SaveImage" + ], + { + "title_aux": "comfy-oiio" + } + ], + "https://github.com/mengqin/ComfyUI-UnetBnbModelLoader": [ + [ + "UnetBnbModelLoader" + ], + { + "title_aux": "Unet Bnb Model Loader" + } + ], + "https://github.com/mephisto83/petty-paint-comfyui-node": [ + [ + "ConvertWhiteToAlpha", + "PPGenerateRandomFloat", + "PPGenerateRandomNumber", + "PPKSamplerAdvanced", + "PPSelectRandomValue", + "PettyImageImageColorToMask", + "PettyPaintAppend", + "PettyPaintApplyLoRAStack", + "PettyPaintArguments", + "PettyPaintBlurs", + "PettyPaintCheckpointLoaderSimple", + "PettyPaintComponent", + "PettyPaintConditioningSetMaskAndCombine", + "PettyPaintControlNetToMasking", + "PettyPaintConvert", + "PettyPaintCountFiles", + "PettyPaintEnsureDirectory", + "PettyPaintExec", + "PettyPaintFakeConvert", + "PettyPaintFileExists", + "PettyPaintImageColorsToMasks", + "PettyPaintImageCompositeMasked", + "PettyPaintImageDims", + "PettyPaintImageMaskCropper", + "PettyPaintImagePlacement", + "PettyPaintImageSave", + "PettyPaintImageStore", + "PettyPaintImageToMask", + "PettyPaintImagesToMasks", + "PettyPaintJsonMap", + "PettyPaintJsonRead", + "PettyPaintJsonReadArray", + "PettyPaintKSampler", + "PettyPaintKSamplerAdvanced", + "PettyPaintLoRAStack", + "PettyPaintLoadImage", + "PettyPaintLoadImageMasks", + "PettyPaintLoadImages", + "PettyPaintMap", + "PettyPaintMasksToImages", + "PettyPaintNot", + "PettyPaintPassThroughNode", + "PettyPaintProcessor", + "PettyPaintRemoveAddText", + "PettyPaintSDTurboScheduler", + "PettyPaintStoryImage", + "PettyPaintText", + "PettyPaintTexts_to_Conditioning", + "PettyPaintToJson", + "PettyPaintVAEDecode", + "SkippableVAEEncode" + ], + { + "title_aux": "petty-paint-comfyui-node" + } + ], "https://github.com/meshmesh-io/ComfyUI-MeshMesh": [ [ "ColorPicker", @@ -9272,6 +33380,117 @@ "title_aux": "mm-comfyui-megamask" } ], + "https://github.com/metal3d/ComfyUI_Human_Parts": [ + [ + "HumanParts" + ], + { + "title_aux": "Human Parts Detector" + } + ], + "https://github.com/metal3d/ComfyUI_M3D_photo_effects": [ + [ + "Bleach Bypass", + "RGB Curve" + ], + { + "title_aux": "M3D photo effects" + } + ], + "https://github.com/metncelik/comfyui_met_suite": [ + [ + "BBOXPadding", + "BBOXResize", + "ImageResizeKeepRatio", + "PrimitiveBBOX", + "RaiseError" + ], + { + "title_aux": "comfyui_met_suite" + } + ], + "https://github.com/mfg637/ComfyUI-ScheduledGuider-Ext": [ + [ + "ArctanScheduler", + "ConcatSigmas", + "CosineScheduler", + "CustomBaseLogarithm", + "CustomExponent", + "GaussianScheduler", + "InvertSigmas", + "LogNormal Scheduler", + "OffsetSigmas", + "Parametric Peak #1", + "PerpNegScheduledCFGGuider", + "PredefinedExponent", + "PredefinedLogarithm", + "ScaleToRange", + "ScheduledCFGGuider", + "SigmasToPower", + "SplitSigmasByValue", + "k/x scheduler" + ], + { + "title_aux": "ComfyUI-ScheduledGuider-Ext" + } + ], + "https://github.com/mgfxer/ComfyUI-FrameFX": [ + [ + "DynamicAnimatedWeightsHelper", + "EdgeFXSourceImages", + "FlorencePromptTravelHelper", + "LivePromptInterpolation", + "MaskSequenceHelper", + "PromptStackManager", + "PromptTravelHelper" + ], + { + "author": "mgfxer", + "description": "This extension provides various frame and mask sequence manipulation tools for animation workflows.", + "nickname": "FrameFX \ud83d\udcab", + "title": "FrameFX", + "title_aux": "ComfyUI-FrameFX" + } + ], + "https://github.com/miaoshouai/ComfyUI-Miaoshouai-Tagger": [ + [ + "Miaoshouai_Caption_Analyzer", + "Miaoshouai_Flux_CLIPTextEncode", + "Miaoshouai_SaveTags", + "Miaoshouai_Tagger" + ], + { + "title_aux": "ComfyUI-Miaoshouai-Tagger" + } + ], + "https://github.com/miaoshouai/ComfyUI-Video-Segmentation": [ + [ + "DownloadAndLoadTransNetModel", + "SelectVideo", + "TransNetV2_Run", + "ZipCompress" + ], + { + "title_aux": "ComfyUI Video Segmentation Node" + } + ], + "https://github.com/michaelgold/ComfyUI-HF-Model-Downloader": [ + [ + "DownloadModel", + "ModelDownloader" + ], + { + "title_aux": "ComfyUI-HF-Model-Downloader" + } + ], + "https://github.com/microbote/ComfyUI-StyledCLIPTextEncode": [ + [ + "StyledCLIPTextEncode" + ], + { + "title_aux": "StyledCLIPTextEncode" + } + ], "https://github.com/mihaiiancu/ComfyUI_Inpaint": [ [ "InpaintMediapipe" @@ -9280,6 +33499,33 @@ "title_aux": "mihaiiancu/Inpaint" } ], + "https://github.com/mikebilly/Transparent-background-comfyUI": [ + [ + "Transparentbackground RemBg" + ], + { + "title_aux": "Transparent-background-comfyUI" + } + ], + "https://github.com/mikeshuangyan/ComfyUI_MqUtils": [ + [ + "MqCheckFP4Support", + "MqIntSwitch", + "MqIntToString", + "MqTextSplitter" + ], + { + "title_aux": "ComfyUI_MqUtils" + } + ], + "https://github.com/mikheys/comfyui-gemini-mikheys": [ + [ + "Nano_Banana" + ], + { + "title_aux": "ComfyUI Nano Banana Node" + } + ], "https://github.com/mikkel/ComfyUI-text-overlay": [ [ "Image Text Overlay" @@ -9296,24 +33542,79 @@ "title_aux": "ComfyUI - Mask Bounding Box" } ], + "https://github.com/mingsky-ai/ComfyUI-MingNodes": [ + [ + "AddWaterMarkNode", + "AdjustBrightnessContrastSaturationNode", + "BaiduTranslateNode", + "ColorBalanceNode", + "ConvertGrayChannelNode", + "HSLColorNode", + "HighlightShadowBrightnessNode", + "ImitationHueNode", + "LightShapeNode", + "RemoveWatermarkNode" + ], + { + "title_aux": "ComfyUI-MingNodes" + } + ], + "https://github.com/mira-6/comfyui-sasolver": [ + [ + "SamplerSASolver", + "SamplerSASolverExperimental" + ], + { + "title_aux": "comfyui-sasolver" + } + ], "https://github.com/mirabarukaso/ComfyUI_Mira": [ [ + "BooleanListInterpreter1", + "BooleanListInterpreter4", + "BooleanListInterpreter8", "CanvasCreatorAdvanced", "CanvasCreatorBasic", "CanvasCreatorSimple", + "CheckpointLoaderSimpleMira", "CreateMaskWithCanvas", "CreateNestedPNGMask", + "CreateSimpleMask", "CreateTillingPNGMask", "CreateWatermarkRemovalMask", + "EightBooleanTrigger", "EightFloats", "EvenOrOdd", + "EvenOrOddList", + "FlatColorQuantization", + "FloatListInterpreter1", + "FloatListInterpreter4", + "FloatListInterpreter8", "FloatMultiplication", "FourBooleanTrigger", "FourFloats", + "FunctionSelectAuto", + "FunctionSwap", + "GzippedBase64ToImage", + "ImageBrightness", + "ImageColorTransferMira", + "ImageContrast", + "ImageGamma", + "ImageGrayscale", + "ImageHUE", + "ImageRGBChannel", + "ImageSaturation", + "ImageSaverMira", + "ImageSharpness", + "ImageToGzippedBase64", + "ImageToneCurve", "IntMultiplication", "IntSubtraction", "IntToFloatMultiplication", + "LoRALoaderWithNameStacker", + "LoRAfromText", "LogicNot", + "NoneToZero", "NumeralToString", "OneFloat", "PngColorMasksToMaskList", @@ -9324,23 +33625,134 @@ "PngRectanglesToMaskList", "RandomNestedLayouts", "RandomTillingLayouts", - "SeedGenerator", + "ReverseImageAndAllImages", + "SN74HC1G86", + "SN74HC86", + "SN74LVC1G125", + "SeedGeneratorMira", "SingleBooleanTrigger", "SixBooleanTrigger", - "SixFloats", + "StackImages", "StepsAndCfg", - "StepsAndCfgAndWH", - "TextBox", + "TextBoxMira", "TextCombinerSix", "TextCombinerTwo", + "TextLoopCombiner", + "TextSwitcherThreeWays", + "TextSwitcherTwoWays", + "TextWildcardSeprator", "TextWithBooleanSwitchAndCommonTextInput", "TwoBooleanTrigger", - "TwoFloats" + "TwoFloats", + "UpscaleImageByModelThenResize", + "illustrious_character_select", + "illustrious_character_select_en", + "llm_prompt_gen_node", + "local_llm_prompt_gen" ], { "title_aux": "ComfyUI_Mira" } ], + "https://github.com/misterjoessef/MLTask_ComfyUI": [ + [ + "FacebookPosterData", + "InstagramPosterData", + "LinkedinPosterData", + "MLTaskUtilsTextImageGenerator", + "PinterestPosterData", + "SocialManMediaToPoster", + "SocialManPostData", + "SocialManPoster", + "TiktokPosterData", + "TwitterPosterData", + "YoutubePosterData" + ], + { + "title_aux": "MLTask_ComfyUI" + } + ], + "https://github.com/mittimi/ComfyUI_mittimiDaisyChainText": [ + [ + "DaisyChainTextMittimi" + ], + { + "author": "mittimi", + "description": "It has the ability to concatenate text.", + "nickname": "mittimiDaisyChainText", + "title": "mittimiDaisyChainText", + "title_aux": "ComfyUI_mittimiDaisyChainText" + } + ], + "https://github.com/mittimi/ComfyUI_mittimiLoadPreset2": [ + [ + "CombineParamDataMittimi", + "LoadImageParamMittimi", + "LoadSetParamMittimi", + "SaveImageParamMittimi", + "SaveParamToPresetMittimi" + ], + { + "author": "mittimi", + "description": "This node can easily switch between models and prompts by saving presets.", + "nickname": "mittimiLoadPreset2", + "title": "mittimiLoadPreset2", + "title_aux": "ComfyUI_mittimiLoadPreset2" + } + ], + "https://github.com/mittimi/ComfyUI_mittimiRecalculateSize": [ + [ + "RecalculateSizeMittimi01" + ], + { + "author": "mittimi", + "description": "Switch between vertical and horizontal values with a single button.", + "nickname": "mittimiWidthHeight", + "title": "mittimiWidthHeight", + "title_aux": "ComfyUI_mittimiRecalculateSize" + } + ], + "https://github.com/mittimi/ComfyUI_mittimiWidthHeight": [ + [ + "WidthHeightMittimi01" + ], + { + "author": "mittimi", + "description": "Switch between vertical and horizontal values with a single button.", + "nickname": "mittimiWidthHeight", + "title": "mittimiWidthHeight", + "title_aux": "ComfyUI_mittimiWidthHeight" + } + ], + "https://github.com/mo230761/InsertAnything-ComfyUI-official": [ + [ + "CropBack", + "CropBackNoScaling", + "FillProcess", + "FillProcessNoScaling", + "MaskOption", + "ReduxProcess" + ], + { + "title_aux": "InsertAnything-ComfyUI-official" + } + ], + "https://github.com/mobilehacker/ComfyUI_format-lora-stack": [ + [ + "FormatLoraStack" + ], + { + "title_aux": "ComfyUI_format-lora-stack" + } + ], + "https://github.com/modelscope/comfyscope": [ + [ + "DashScopeFLUXAPI" + ], + { + "title_aux": "Dashscope FLUX API for ComfyUI" + } + ], "https://github.com/modusCell/ComfyUI-dimension-node-modusCell": [ [ "DimensionProviderFree modusCell", @@ -9351,12 +33763,367 @@ "title_aux": "Preset Dimensions" } ], - "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt": [ + "https://github.com/mohseni-mr/ComfyUI-Mohseni-Kit": [ [ - "Save IMG Prompt" + "FloatPreview" ], { - "title_aux": "SaveImgPrompt" + "title_aux": "ComfyUI Mohseni Kit" + } + ], + "https://github.com/mohsensd1373/comfyui_wordpress": [ + [ + "SaveToWordPressNode" + ], + { + "title_aux": "comfyui_wordpress" + } + ], + "https://github.com/monkeyWie/ComfyUI-FormInput": [ + [ + "BooleanInput_FormInput", + "DisplayText_FormInput", + "TextInput_FormInput" + ], + { + "title_aux": "ComfyUI-FormInput" + } + ], + "https://github.com/moon7star9/ComfyUI_BiRefNet_Universal": [ + [ + "BiRefNet_Loader", + "BiRefNet_Remove_Background" + ], + { + "title_aux": "ComfyUI_BiRefNet_Universal" + } + ], + "https://github.com/moonwhaler/comfyui-seedvr2-tilingupscaler": [ + [ + "SeedVR2TilingUpscaler" + ], + { + "title_aux": "SeedVR2 Tiling Upscaler" + } + ], + "https://github.com/morino-kumasan/comfyui-toml-prompt": [ + [ + "CheckPointLoaderSimpleFromString", + "IntSelector", + "JsonExtractFloat", + "JsonExtractInt", + "JsonExtractString", + "KSamplerFromJsonInfo", + "LatentSelector", + "MultipartCLIPTextEncode", + "MultipleLoraTagLoader", + "PromptLoader", + "SeedGenerator", + "StringConcat", + "StringConcatInt", + "StringPicker", + "StringSelector", + "StringViewer", + "SummaryReader", + "TomlPromptDecode" + ], + { + "title_aux": "comfyui-toml-prompt" + } + ], + "https://github.com/moustafa-nasr/ComfyUI-SimpleLogger": [ + [ + "Log Image", + "LogImageNode" + ], + { + "title_aux": "ComfyUI-SimpleLogger" + } + ], + "https://github.com/moyi7712/ComfyUI_Seamless_Patten": [ + [ + "SeamlessApply", + "SeamlessKSampler", + "SeamlessKSamplerAdvanced", + "SeamlessVae" + ], + { + "title_aux": "ComfyUI_Seamless_Patten" + } + ], + "https://github.com/mr7thing/circle_pattern_processor": [ + [ + "CirclePatternProcessor", + "CirclePatternSVGExporter", + "ImageBinarizer" + ], + { + "title_aux": "Circle Pattern Processor for ComfyUI" + } + ], + "https://github.com/mrchipset/ComfyUI-SaveImageS3": [ + [ + "SaveImageS3" + ], + { + "author": "Mr.Chip", + "description": "This extension offers a custom node to save image to S3-compatible oss.", + "nickname": "SaveImageS3", + "title": "SaveImageS3", + "title_aux": "ComfyUI-SaveImageS3" + } + ], + "https://github.com/mrhan1993/ComfyUI-Fooocus": [ + [ + "AlignYourStepsScheduler", + "BasicScheduler", + "CLIPLoader", + "CLIPMergeSimple", + "CLIPSave", + "CLIPSetLastLayer", + "CLIPTextEncode", + "CLIPTextEncodeSDXL", + "CLIPTextEncodeSDXLRefiner", + "CLIPVisionEncode", + "CLIPVisionLoader", + "Canny", + "CheckpointLoader", + "CheckpointLoaderSimple", + "CheckpointSave", + "ClearVram", + "ConditioningAverage", + "ConditioningCombine", + "ConditioningConcat", + "ConditioningSetArea", + "ConditioningSetAreaPercentage", + "ConditioningSetMask", + "ConditioningSetTimestepRange", + "ConditioningZeroOut", + "ControlNetApply", + "ControlNetApplyAdvanced", + "ControlNetLoader", + "CropMask", + "DiffControlNetLoader", + "DiffusersLoader", + "DualCLIPLoader", + "EmptyImage", + "EmptyLatentImage", + "EnhanceControl", + "EnhanceControls", + "ExponentialScheduler", + "FeatherMask", + "FlipSigmas", + "FooocusSampler", + "FooocusSettings", + "FreeU", + "FreeU_V2", + "GLIGENLoader", + "GLIGENTextBoxApply", + "GrowMask", + "HyperTile", + "HypernetworkLoader", + "ImageBatch", + "ImageBlend", + "ImageBlur", + "ImageColorToMask", + "ImageCompositeMasked", + "ImageCrop", + "ImageInvert", + "ImageOnlyCheckpointLoader", + "ImageOnlyCheckpointSave", + "ImagePadForOutpaint", + "ImagePrompts", + "ImageQuantize", + "ImageScale", + "ImageScaleBy", + "ImageScaleToTotalPixels", + "ImageSharpen", + "ImageToMask", + "ImageUpscaleWithModel", + "InpaintModelConditioning", + "InpaintOutpaint", + "InvertMask", + "JoinImageWithAlpha", + "KSampler", + "KSamplerAdvanced", + "KSamplerSelect", + "KarrasScheduler", + "LatentAdd", + "LatentBatch", + "LatentBatchSeedBehavior", + "LatentBlend", + "LatentComposite", + "LatentCompositeMasked", + "LatentCrop", + "LatentFlip", + "LatentFromBatch", + "LatentInterpolate", + "LatentMultiply", + "LatentRotate", + "LatentSubtract", + "LatentUpscale", + "LatentUpscaleBy", + "LoadImage", + "LoadImageMask", + "LoadLatent", + "LoraLoader", + "LoraLoaderModelOnly", + "LoraStacks", + "MaskComposite", + "MaskToImage", + "ModelMergeAdd", + "ModelMergeBlocks", + "ModelMergeSimple", + "ModelMergeSubtract", + "ModelSamplingContinuousEDM", + "ModelSamplingDiscrete", + "PatchModelAddDownscale", + "PerpNeg", + "PhotoMakerEncode", + "PhotoMakerLoader", + "PolyexponentialScheduler", + "PorterDuffImageComposite", + "PreviewImage", + "RebatchImages", + "RebatchLatents", + "RepeatImageBatch", + "RepeatLatentBatch", + "RescaleCFG", + "SDTurboScheduler", + "SD_4XUpscale_Conditioning", + "SVD_img2vid_Conditioning", + "SamplerCustom", + "SamplerDPMPP_2M_SDE", + "SamplerDPMPP_SDE", + "SamplerTCD", + "SaveAnimatedPNG", + "SaveAnimatedWEBP", + "SaveImage", + "SaveLatent", + "SelfAttentionGuidance", + "SetLatentNoiseMask", + "SolidMask", + "SplitImageWithAlpha", + "SplitSigmas", + "StableZero123_Conditioning", + "StableZero123_Conditioning_Batched", + "StyleModelApply", + "StyleModelLoader", + "TomePatchModel", + "UNETLoader", + "UpscaleModelLoader", + "UpscaleVary", + "VAEDecode", + "VAEDecodeTiled", + "VAEEncode", + "VAEEncodeForInpaint", + "VAEEncodeTiled", + "VAELoader", + "VAESave", + "VPScheduler", + "VideoLinearCFGGuidance", + "unCLIPCheckpointLoader", + "unCLIPConditioning" + ], + { + "author": "Konie", + "title_aux": "ComfyUI-Fooocus" + } + ], + "https://github.com/muhammederem/blip-comfyui": [ + [ + "Blip Processor Node", + "List to Text Node" + ], + { + "title_aux": "BLIP Vision-Language Model Integration" + } + ], + "https://github.com/mullakhmetov/comfyui_dynamic_util_nodes": [ + [ + "ConcatStrings", + "FormatString", + "GetFiles", + "LoadImageByPath", + "StringOutput" + ], + { + "title_aux": "comfyui_dynamic_util_nodes" + } + ], + "https://github.com/muxueChen/ComfyUI_NTCosyVoice": [ + [ + "NTCosyVoiceCrossLingualSampler", + "NTCosyVoiceInstruct2Sampler", + "NTCosyVoiceZeroShotSampler" + ], + { + "title_aux": "CosyVoice2 for ComfyUI" + } + ], + "https://github.com/muzi12888/ComfyUI-PoseKeypoint-Mask": [ + [ + "Image Brightness", + "Openpose Keypoint Mask" + ], + { + "title_aux": "PoseKeypoint Mask" + } + ], + "https://github.com/my-opencode/ComfyUI_IndustrialMagick": [ + [ + "IndustrialMagick", + "IndustrialMagickImageIngest" + ], + { + "title_aux": "ComfyUI_IndustrialMagick" + } + ], + "https://github.com/my-opencode/ComfyUI_KSamplerTimer": [ + [ + "KSamplerTimer" + ], + { + "author": "Ludovic Anterieur", + "description": "This extension provides a wrapper of the native KSampler which outputs generation time.", + "nickname": "\u23f1", + "title": "KSampler (timer)", + "title_aux": "ComfyUI_KSamplerTimer" + } + ], + "https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin": [ + [ + "ShellAgentPluginInputAudio", + "ShellAgentPluginInputBoolean", + "ShellAgentPluginInputFloat", + "ShellAgentPluginInputImage", + "ShellAgentPluginInputInteger", + "ShellAgentPluginInputText", + "ShellAgentPluginInputVideo", + "ShellAgentPluginOutputBoolean", + "ShellAgentPluginOutputFloat", + "ShellAgentPluginOutputInteger", + "ShellAgentPluginOutputText", + "ShellAgentPluginSaveAudio", + "ShellAgentPluginSaveAudios", + "ShellAgentPluginSaveImage", + "ShellAgentPluginSaveImages", + "ShellAgentPluginSaveVideoVHS" + ], + { + "author": "MyShell", + "description": "", + "title": "comfyui-shellagent-plugin", + "title_aux": "ComfyUI-ShellAgent-Plugin" + } + ], + "https://github.com/n0neye/A3D-comfyui-integration": [ + [ + "A3DListener", + "UniqueNodeName" + ], + { + "title_aux": "A3D ComfyUI Integration" } ], "https://github.com/nagolinc/ComfyUI_FastVAEDecorder_SDXL": [ @@ -9367,6 +34134,51 @@ "title_aux": "ComfyUI_FastVAEDecorder_SDXL" } ], + "https://github.com/nagolinc/comfyui_openai_node": [ + [ + "OpenAINode" + ], + { + "title_aux": "comfyui_openai_node" + } + ], + "https://github.com/nako-nakoko/ComfyUI_Mel_Nodes": [ + [ + "AddFileNameonly", + "ResolutionSwitcher", + "Split Image Batch", + "Unet Selector_gguf", + "mel_RandomIntNode", + "mel_TextFilterNode", + "mel_TextSplitNode", + "mel_TextSplitNode2" + ], + { + "title_aux": "ComfyUI_Mel_Nodes" + } + ], + "https://github.com/namtb96/OmniGen2-Simple-Node": [ + [ + "OmniGen2ModelLoader", + "OmniGen2Sampler" + ], + { + "title_aux": "OmniGen2 Simple Node" + } + ], + "https://github.com/narusas/Comfyui-Logic-Support": [ + [ + "BooleanIndexAdder", + "NumberConditionChecker", + "NumberRangeIndex", + "NumberSequenceGenerator", + "StringConcatenator", + "StringSwitchByNumber" + ], + { + "title_aux": "ComfyUI Logic Support" + } + ], "https://github.com/natto-maki/ComfyUI-NegiTools": [ [ "NegiTools_CompositeImages", @@ -9391,20 +34203,242 @@ "title_aux": "ComfyUI-NegiTools" } ], + "https://github.com/nchenevey1/comfyui-gimp-nodes": [ + [ + "NC_LoadImageGIMP", + "NC_LoadMaskGIMP", + "NC_SendImageDimsWebSocketGIMP", + "NC_SendImageWebSocketGIMP" + ], + { + "title_aux": "comfyui-gimp-nodes" + } + ], + "https://github.com/negaga53/comfyui-imgloader": [ + [ + "ImageLoader" + ], + { + "title_aux": "ComfyUI Universal Image Loader" + } + ], + "https://github.com/neggo/comfyui-sambanova": [ + [ + "SambaNova API Node", + "SambaNovaNode" + ], + { + "title_aux": "comfyui-sambanova" + } + ], + "https://github.com/neocrz/comfyui-usetaesd": [ + [ + "DecodeTAESD", + "DecodeTAESDTiled", + "EncodeTAESD", + "EncodeTAESDTiled" + ], + { + "title_aux": "comfyui-usetaesd" + } + ], + "https://github.com/neph1/comfyui-smooth-step-lora-loader": [ + [ + "Smooth_Step_Lora_Loader" + ], + { + "title_aux": "comfyui-smooth-step-lora-loader" + } + ], + "https://github.com/netroxin/comfyui_netro": [ + [ + "CamPromptNode" + ], + { + "title_aux": "comfyui_netro" + } + ], + "https://github.com/neverbiasu/ComfyUI-BAGEL": [ + [ + "BagelImageEdit", + "BagelImageUnderstanding", + "BagelModelLoader", + "BagelMultiImageEdit", + "BagelTextToImage" + ], + { + "title_aux": "ComfyUI-BAGEL" + } + ], + "https://github.com/neverbiasu/ComfyUI-ChatTTS": [ + [ + "ChatTTSLoader", + "ChatTTS_ExtractSpeaker", + "ChatTTS_LoadSpeakerProfile", + "ChatTTS_Sampler", + "ChatTTS_SaveSpeakerProfile", + "ChatTTS_SeedBasedSpeaker", + "ChatTTS_TextNormalizer", + "ChatTTS_TextSplitter" + ], + { + "title_aux": "ComfyUI-ChatTTS" + } + ], + "https://github.com/neverbiasu/ComfyUI-Dashscope": [ + [ + "DashscopeEmoCaller", + "DashscopeLLMLoader", + "DashscopeModelCaller", + "DashscopeOCRCaller", + "DashscopeVLMLoader" + ], + { + "title_aux": "ComfyUI-Dashscope" + } + ], + "https://github.com/neverbiasu/ComfyUI-Image-Captioner": [ + [ + "ImageCaptioner" + ], + { + "title_aux": "ComfyUI-Image-Captioner" + } + ], + "https://github.com/neverbiasu/ComfyUI-Ovis-U1": [ + [ + "OvisU1ImageEdit", + "OvisU1ImageToText", + "OvisU1ModelLoader", + "OvisU1TextToImage" + ], + { + "title_aux": "ComfyUI-Ovis-U1" + } + ], + "https://github.com/neverbiasu/ComfyUI-SAM2": [ + [ + "GroundingDinoModelLoader (segment anything2)", + "GroundingDinoSAM2Segment (segment anything2)", + "InvertMask (segment anything)", + "IsMaskEmpty", + "SAM2ModelLoader (segment anything2)" + ], + { + "title_aux": "ComfyUI SAM2(Segment Anything 2)" + } + ], + "https://github.com/neverbiasu/ComfyUI-StyleShot": [ + [ + "StyleShotApply" + ], + { + "title_aux": "ComfyUI-StyleShot" + } + ], + "https://github.com/ngosset/ComfyUI-ImageSimilarity": [ + [ + "Image Similarity" + ], + { + "title_aux": "ImageSimilarity" + } + ], + "https://github.com/nicehero/comfyui-SegGPT": [ + [ + "SegGPT" + ], + { + "title_aux": "comfyui-SegGPT" + } + ], "https://github.com/nickve28/ComfyUI-Nich-Utils": [ [ - "Image from Dir Selector (Nich)" + "Image from Dir Selector (Nich)", + "Select Text with Regular Expression (Nich)" ], { "title_aux": "ComfyUI Nich Utils" } ], - "https://github.com/nicolai256/comfyUI_Nodes_nicolai256/raw/main/yugioh-presets.py": [ + "https://github.com/nicofdga/DZ-FaceDetailer": [ [ - "yugioh_Presets" + "DZ_Face_Detailer" ], { - "title_aux": "comfyUI_Nodes_nicolai256" + "title_aux": "DZ-FaceDetailer" + } + ], + "https://github.com/niknah/ComfyUI-F5-TTS": [ + [ + "F5TTSAudio", + "F5TTSAudioAdvanced", + "F5TTSAudioInputs" + ], + { + "title_aux": "ComfyUI F5-TTS" + } + ], + "https://github.com/niknah/ComfyUI-Hunyuan-3D-2": [ + [ + "Hunyuan3D2ImageTo3D" + ], + { + "title_aux": "ComfyUI Hunyuan-3D-2" + } + ], + "https://github.com/niknah/ComfyUI-InfiniteYou": [ + [ + "InfiniteYouSampler" + ], + { + "title_aux": "ComfyUI-InfiniteYou" + } + ], + "https://github.com/niknah/audio-general-ComfyUI": [ + [ + "AudioBassTreble", + "AudioConcat", + "AudioInfo", + "AudioMix", + "AudioPitch", + "AudioSampleRate", + "AudioSpeed", + "AudioTrimSilenceRosa", + "AudioTrimSilenceVAD" + ], + { + "title_aux": "Audio General" + } + ], + "https://github.com/nilor-corp/nilor-nodes": [ + [ + "Nilor Blur Analysis", + "Nilor Categorize String", + "Nilor Count Images In Directory", + "Nilor Extract Filename from Path", + "Nilor Int To List Of Bools", + "Nilor Interpolated Float List", + "Nilor Inverse Map Float List", + "Nilor List of Ints", + "Nilor Load Image By Index", + "Nilor One Minus Float List", + "Nilor Output Filename String", + "Nilor Random String", + "Nilor Remap Float List", + "Nilor Remap Float List Auto Input", + "Nilor Repeat & Trim Image Batch", + "Nilor Repeat, Shuffle, & Trim Image Batch", + "Nilor Save EXR Arbitrary", + "Nilor Save Image To HF Dataset", + "Nilor Save Video To HF Dataset", + "Nilor Select Index From List", + "Nilor Shuffle Image Batch", + "Nilor To Sparse Index Method", + "Nilor n Fractions of Int" + ], + { + "title_aux": "Nilor Nodes by Nilor Corp" } ], "https://github.com/ningxiaoxiao/comfyui-NDI": [ @@ -9416,15 +34450,72 @@ "title_aux": "comfyui-NDI" } ], + "https://github.com/nirbhay-faaya/ImgProcessing_ComfyUI": [ + [ + "ImageConcat", + "ImageCropMultEight", + "ImageCut", + "LightingPreprocessor" + ], + { + "title_aux": "ImgProcessing_ComfyUI" + } + ], + "https://github.com/nirex0/ComfyUI_pytorch_openpose": [ + [ + "pytorch_openpose" + ], + { + "title_aux": "ComfyUI_pytorch_openpose" + } + ], + "https://github.com/nisaruj/comfyui-daam": [ + [ + "CLIPTextEncodeWithTokens", + "DAAMAnalyzer", + "KSamplerDAAM" + ], + { + "title_aux": "ComfyUI-DAAM" + } + ], + "https://github.com/nisimjoseph/ComfyUI_OpenAI-Prompter": [ + [ + "OpenAI Prompt Generator" + ], + { + "title_aux": "ComfyUI OpenAI Prompter" + } + ], + "https://github.com/njlent/ComfyUI_wavelet-colorfix": [ + [ + "WaveletColorFix" + ], + { + "title_aux": "ComfyUI Wavelet Color Fix" + } + ], + "https://github.com/nkchocoai/ComfyUI-DanbooruPromptQuiz": [ + [ + "DanbooruPromptComparison", + "DanbooruPromptQuiz" + ], + { + "title_aux": "ComfyUI-DanbooruPromptQuiz" + } + ], "https://github.com/nkchocoai/ComfyUI-Dart": [ [ "DanbooruTagsTransformerBanTagsFromRegex", "DanbooruTagsTransformerComposePrompt", + "DanbooruTagsTransformerComposePromptV2", "DanbooruTagsTransformerDecode", "DanbooruTagsTransformerDecodeBySplitedParts", "DanbooruTagsTransformerGenerate", "DanbooruTagsTransformerGenerateAdvanced", "DanbooruTagsTransformerGenerationConfig", + "DanbooruTagsTransformerGetAspectRatio", + "DanbooruTagsTransformerLoader", "DanbooruTagsTransformerRearrangedByAnimagine", "DanbooruTagsTransformerRemoveTagToken" ], @@ -9440,8 +34531,13 @@ "PromptUtilitiesJoinStringList", "PromptUtilitiesLoadPreset", "PromptUtilitiesLoadPresetAdvanced", + "PromptUtilitiesPromptWeight", "PromptUtilitiesRandomPreset", - "PromptUtilitiesRandomPresetAdvanced" + "PromptUtilitiesRandomPresetAdvanced", + "PromptUtilitiesReplaceOrInsertTag", + "PromptUtilitiesRoundPromptWeight", + "PromptUtilitiesSampleTags", + "PromptUtilitiesSampleTagsWithWeight" ], { "title_aux": "ComfyUI-PromptUtilities" @@ -9449,6 +34545,7 @@ ], "https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData": [ [ + "CreateExtraMetaData", "SaveImageWithMetaData" ], { @@ -9459,6 +34556,8 @@ [ "EmptyLatentImageFromPresetsSD15", "EmptyLatentImageFromPresetsSDXL", + "GetSimilarResolution", + "GetSimilarResolutionEmptyLatent", "RandomEmptyLatentImageFromPresetsSD15", "RandomEmptyLatentImageFromPresetsSDXL", "RandomSizeFromPresetsSD15", @@ -9482,6 +34581,24 @@ "title_aux": "ComfyUI-TextOnSegs" } ], + "https://github.com/nobrainX2/comfyUI-customDia": [ + [ + "Audio retimer", + "Dia text to speech" + ], + { + "title_aux": "ComfyUI Custom Dia" + } + ], + "https://github.com/noelkim12/ComfyUI-NoelTextUtil": [ + [ + "NoelLoRATriggerInjector", + "NoelUnifiedPrefix" + ], + { + "title_aux": "ComfyUI-ComfyUI-NoelTextUtil" + } + ], "https://github.com/noembryo/ComfyUI-noEmbryo": [ [ "PromptTermList1", @@ -9499,15 +34616,82 @@ "title_aux": "noEmbryo nodes" } ], - "https://github.com/nosiu/comfyui-instantId-faceswap": [ + "https://github.com/nofunstudio/Node_Fun_ComfyUI": [ [ - "FaceEmbed", - "FaceSwapGenerationInpaint", - "FaceSwapSetupPipeline", - "LCMLora" + "DynamicQueueCounter", + "FalAPI_kling_video", + "FalAPI_recraft_upscale", + "FluxKontextInpaintingConditioning", + "Fun KSampler", + "IframeView", + "IndexedStringSelector", + "Kontext Inpainting Conditioning", + "LayeredInfiniteZoom", + "MultiAlphaComposite", + "Replicate flux 1.1 pro ultra", + "ReplicateAPI_flux_1_1_pro_ultra", + "ReplicateAPI_flux_fill_pro", + "StringLower" ], { - "title_aux": "ComfyUI InstantID Faceswapper" + "title_aux": "Node_Fun_ComfyUI" + } + ], + "https://github.com/northumber/ComfyUI-northTools": [ + [ + "BooleanIndexesToString", + "ConcatHistoryString", + "ExtractMetadataByKey", + "ImageToTrue", + "LoadImagesFromDirByIndexBatch", + "LoadImagesFromDirByIndexList", + "LoadImagesFromDirList", + "SumIntegers" + ], + { + "title_aux": "ComfyUI-northTools" + } + ], + "https://github.com/nosiu/comfyui-instantId-faceswap": [ + [ + "AngleFromFace", + "AngleFromKps", + "ComposeRotated", + "ControlNetInstantIdApply", + "FaceEmbed", + "FaceEmbedCombine", + "InstantIdAdapterApply", + "InstantIdAndControlnetApply", + "Kps2dRandomizer", + "Kps3dFromImage", + "Kps3dRandomizer", + "KpsCrop", + "KpsDraw", + "KpsMaker", + "KpsRotate", + "KpsScale", + "KpsScaleBy", + "LoadInsightface", + "LoadInstantIdAdapter", + "MaskFromKps", + "PreprocessImage", + "PreprocessImageAdvanced", + "RotateImage" + ], + { + "title_aux": "comfyui-instantId-faceswap" + } + ], + "https://github.com/nosiu/comfyui-text-randomizer": [ + [ + "ConcatText", + "RandomTextChoice", + "RandomizeText", + "RandomizeTextWithCheck", + "ShowText" + ], + { + "title_aux": "comfyui-text-randomizer" } ], "https://github.com/noxinias/ComfyUI_NoxinNodes": [ @@ -9523,6 +34707,16 @@ "title_aux": "ComfyUI_NoxinNodes" } ], + "https://github.com/nsdtcloud3d/ComfyUI-3D-Convert": [ + [ + "ConvertTo3DFormat", + "Load3DConvertAPIKEY", + "Load3DFile" + ], + { + "title_aux": "ComfyUI-3D-Convert" + } + ], "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge": [ [ "Apply LoRA", @@ -9533,37 +34727,253 @@ "title_aux": "ComfyUI - Apply LoRA Stacker with DARE" } ], - "https://github.com/ntdviet/comfyui-ext/raw/main/custom_nodes/gcLatentTunnel/gcLatentTunnel.py": [ + "https://github.com/nuanarchy/ComfyUI-NuA-BIRD": [ [ - "gcLatentTunnel" + "Bird_Deblurring_NuA", + "Bird_Denoising_NuA", + "Bird_Inpainting_NuA", + "Bird_Loader_NuA", + "Bird_Non_Uniform_Deblurring_NuA", + "Bird_Super_Resolution_NuA" ], { - "title_aux": "ntdviet/comfyui-ext" + "title_aux": "ComfyUI-NuA-BIRD" + } + ], + "https://github.com/nuanarchy/ComfyUI-NuA-FlashFace": [ + [ + "FlashFace_Loader_NuA", + "FlashFace_Sampler_NuA" + ], + { + "title_aux": "ComfyUI-NuA-FlashFace" } ], "https://github.com/nullquant/ComfyUI-BrushNet": [ [ "BlendInpaint", - "BrushNetInpaint", + "BrushNet", "BrushNetLoader", - "BrushNetPipeline" + "CutForInpaint", + "PowerPaint", + "PowerPaintCLIPLoader", + "RAUNet", + "Terminal" ], { "author": "nullquant", - "description": "This repository contains an custom nodes for inpaint using BrushNet and PowerPaint models", + "description": "These are custom nodes for ComfyUI native implementation of BrushNet, PowerPaint and RAUNet models", "nickname": "BrushName nodes", "title": "BrushNet", "title_aux": "BrushNet" } ], + "https://github.com/numz/ComfyUI-FlowChain": [ + [ + "WorkflowLipSync" + ], + { + "title_aux": "ComfyUI-FlowChain" + } + ], + "https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler": [ + [ + "SeedVR2", + "SeedVR2BlockSwap" + ], + { + "title_aux": "ComfyUI-SeedVR2_VideoUpscaler" + } + ], + "https://github.com/numz/Comfyui-Orpheus": [ + [ + "orpheus", + "orpheusAdvanced" + ], + { + "title_aux": "ComfyUI-Orpheus" + } + ], + "https://github.com/nunchaku-tech/ComfyUI-nunchaku": [ + [ + "NunchakuWheelInstaller" + ], + { + "title_aux": "ComfyUI-nunchaku" + } + ], + "https://github.com/nux1111/ComfyUI_NetDist_Plus": [ + [ + "CombineImageBatch", + "ConditioningFromBase64(Nux)", + "ConditioningToBase64(Nux)", + "ExtractBase64FromImage(Nux)", + "ExtractBase64FromImageUpload(Nux)", + "FetchRemote", + "FetchRemoteWithExtras(Nux)", + "LatentToBase64(Nux)", + "LoadCurrentWorkflowJSON", + "LoadDiskWorkflowJSON", + "LoadImageUrl", + "LoadLatentFromBase64(Nux)", + "LoadLatentNumpy", + "LoadLatentUrl", + "LoadWorkflowJSON", + "RemoteApplyValues(Nux)", + "RemoteApplyValuesMulti(Nux)", + "RemoteChainEnd", + "RemoteChainStart", + "RemoteChainStart(Nux)", + "RemoteQueueSimple", + "RemoteQueueSimple(Nux)", + "RemoteQueueWorker", + "SaveDiskWorkflowJSON", + "SaveImageUrl", + "SaveImageWithBase64(Nux)", + "SaveLatentNumpy" + ], + { + "title_aux": "ComfyUI_NetDist_Plus" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-ChannelMixer": [ + [ + "OlmChannelMixer" + ], + { + "title_aux": "Olm Channel Mixer for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-ColorBalance": [ + [ + "OlmColorBalance" + ], + { + "title_aux": "Olm Color Balance for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-CurveEditor": [ + [ + "OlmCurveEditor" + ], + { + "title_aux": "Olm Curve Editor for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-DragCrop": [ + [ + "OlmCropInfoInterpreter", + "OlmDragCrop" + ], + { + "title_aux": "Olm DragCrop for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-Histogram": [ + [ + "OlmHistogram" + ], + { + "title_aux": "Olm Histogram for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-ImageAdjust": [ + [ + "OlmImageAdjust" + ], + { + "title_aux": "Olm Image Adjust for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-LGG": [ + [ + "OlmLGG" + ], + { + "title_aux": "Olm LGG (Lift, Gamma, Gain) for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-Resolution-Picker": [ + [ + "OlmResolutionPicker" + ], + { + "title_aux": "Olm Resolution Picker for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-Sketch": [ + [ + "OlmSketch" + ], + { + "title_aux": "Olm Sketch for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-OlmLUT": [ + [ + "OlmLUT" + ], + { + "title_aux": "Olm LUT Node for ComfyUI" + } + ], + "https://github.com/obisin/ComfyUI-DGLS": [ + [ + "DGLSCleanup", + "DGLSModelLoader", + "DynamicSwappingLoader" + ], + { + "title_aux": "ComfyUI - DGLS (Dynamic GPU Layer Swapping)" + } + ], + "https://github.com/okgo4/ComfyUI-Mosaic-Mask": [ + [ + "MosaicMask" + ], + { + "title_aux": "ComfyUI-Mosaic-Mask" + } + ], "https://github.com/olduvai-jp/ComfyUI-HfLoader": [ [ + "ControlNet Loader From HF", "Lora Loader From HF" ], { "title_aux": "ComfyUI-HfLoader" } ], + "https://github.com/oleksandr612/ComfyUI-Counter": [ + [ + "Simple Counter" + ], + { + "title_aux": "ComfyUI-Counter" + } + ], + "https://github.com/oliverswitzer/ComfyUI-Lora-Visualizer": [ + [ + "LoRAVisualizer", + "PromptComposer", + "PromptSplitter" + ], + { + "title_aux": "LoRA Visualizer" + } + ], + "https://github.com/olivv-cs/ComfyUI-FunPack": [ + [ + "FunPackCLIPLoader", + "FunPackContinueVideo", + "FunPackImg2LatentInterpolation", + "FunPackPromptEnhancer", + "FunPackVideoStitch" + ], + { + "title_aux": "ComfyUI-FunPack" + } + ], "https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92": [ [ "CLIPStringEncode _O", @@ -9590,6 +35000,7 @@ "LatentUpscaleFactorSimple _O", "LatentUpscaleMultiply", "Note _O", + "QOL Split String", "RandomNSP _O", "Replace Text _O", "String _O", @@ -9623,11 +35034,266 @@ "title_aux": "Quality of life Suit:V2" } ], + "https://github.com/openvino-dev-samples/comfyui_openvino": [ + [ + "OpenVINO_TorchCompileModel" + ], + { + "title_aux": "ComfyUI-OpenVINO" + } + ], + "https://github.com/opvelll/ComfyUI_TextListProduct": [ + [ + "ProductedString", + "PromptPairConcat", + "TextListProduct", + "TextListProductWithSingleA", + "TextListProductWithSingleB", + "TextListProductWithSingleBoth" + ], + { + "title_aux": "Comfy UI Text List Product" + } + ], + "https://github.com/orange90/ComfyUI-Regex-Runner": [ + [ + "RegexNode" + ], + { + "title_aux": " ComfyUI-Regex-Runner" + } + ], + "https://github.com/orex2121/comfyui-OreX": [ + [ + "IoNetVision", + "KontextPresetsOrex", + "OreX Image Save", + "flux-kontext-orexnodes", + "orex IoNet Chat", + "orex IoNet Vision", + "orex IoNet Vision Url", + "orex Kontext Presets", + "orex Load Image", + "orex Load Image Batch", + "orex Load Image Batch Size", + "orex Save Image" + ], + { + "title_aux": "comfyui-OreX" + } + ], + "https://github.com/orion4d/Calculator_Pro": [ + [ + "DataConverter", + "LengthConverter", + "ManualRateConverter", + "MassConverter", + "ScientificCalculatorTri", + "TimeConverter", + "UniversalConverter", + "VolumeConverter" + ], + { + "title_aux": "CalculatorPro - Node Suite for ComfyUI" + } + ], + "https://github.com/orion4d/ComfyUI-Image-Effects": [ + [ + "AsciiArtNode", + "AsciiTextNode", + "AuroraNode", + "BarrelDistortionNode", + "CSSFiltersNode", + "ChannelMixerNode", + "ColorBalanceNode", + "CrystallizeNode", + "CurvesNode", + "FilmGrainNode", + "FisheyeNode", + "GodRaysNode", + "HexagonalPixelateNode", + "HolographicNode", + "KaleidoscopeAdvancedNode", + "KaleidoscopeNode", + "LensFlareNode", + "LevelsNode", + "LightLeaksNode", + "NeonGlowNode", + "PinchNode", + "PolaroidNode", + "PolygonNode", + "RippleNode", + "SaverPlusNode", + "ShadowHighlightNode", + "SpherizeNode", + "TriangulateNode", + "VHSGlitchNode", + "VibranceNode", + "VintageTVNode", + "VoronoiNode" + ], + { + "title_aux": "ComfyUI-Image-Effects" + } + ], + "https://github.com/orion4d/ComfyUI_DAO_master": [ + [ + "ConvertIMGtoSVG", + "ConvertSVGtoIMG", + "DAO Blur", + "DAO Move", + "DAO RVB Color Picker", + "DAO Text Maker", + "DXF Add Circle", + "DXF Add Ellipse", + "DXF Add Line", + "DXF Add Polygon", + "DXF Add Rectangle", + "DXF Add Rounded Rectangle", + "DXF Add Star", + "DXF Add Triangle", + "DXF Import", + "DXF New", + "DXF Preview", + "DXF Save", + "DXF Stats", + "DXF Transform", + "DXF to SVG", + "Folder File Pro", + "Load Image Pro", + "Path To Image", + "SVG Boolean", + "SVG Load", + "SVG Passthrough", + "SVG Preview", + "SVG Save", + "SVG Style" + ], + { + "title_aux": "ComfyUI_DAO_master" + } + ], + "https://github.com/orion4d/ComfyUI_SharpnessPro": [ + [ + "Clarity", + "HighPassSharpen", + "SmartSharpen", + "Texture", + "UnsharpMaskSharpen" + ], + { + "title_aux": "SharpnessPro pour ComfyUI" + } + ], + "https://github.com/orion4d/ComfyUI_colormaster": [ + [ + "AnnotateHexLines", + "ColorPaletteExtractor", + "HexColorToImage", + "ImageCollageNode", + "SelectHexLine" + ], + { + "title_aux": "ComfyUI Colormaster Nodes" + } + ], + "https://github.com/orion4d/ComfyUI_extract_imag": [ + [ + "ExtractAndSaveImagesFromDocument" + ], + { + "title_aux": "ComfyUI_extract_imag" + } + ], + "https://github.com/orion4d/ComfyUI_image-display": [ + [ + "DisplayImageWithMask" + ], + { + "title_aux": "Display Image with Mask for ComfyUI" + } + ], + "https://github.com/orion4d/ComfyUI_pdf_nodes": [ + [ + "PDFExtractTextFromPages", + "PDFGetPageCount", + "PDFLoad", + "PDFMerge", + "PDFRotatePages", + "PDFSave", + "PDFSelectPageAndExtractText" + ], + { + "title_aux": "ComfyUI PDF Nodes" + } + ], + "https://github.com/orion4d/illusion_node": [ + [ + "AdvancedAutostereogramNode", + "AutostereogramNode", + "CheckerboardNode", + "ColorImageNode", + "PatternGeneratorNode", + "TessellationNode", + "TileImageRepeaterNode" + ], + { + "title_aux": "ComfyUI Illusion & Pattern Nodes" + } + ], + "https://github.com/orssorbit/ComfyUI-wanBlockswap": [ + [ + "wanBlockSwap" + ], + { + "title_aux": "ComfyUI-wanBlockswap" + } + ], + "https://github.com/oshtz/ComfyUI-oshtz-nodes": [ + [ + "EasyAspectRatioNode", + "GPTImage1", + "LLMAIONode", + "LoRASwitcherNode", + "LoRASwitcherNode20", + "LoRASwitcherNode40", + "LoraSwitcherDynamic", + "StringSplitterNode" + ], + { + "title_aux": "oshtz Nodes" + } + ], + "https://github.com/osi1880vr/prompt_quill_comfyui": [ + [ + "PromptQuillGenerate", + "PromptQuillGenerateConditioning", + "PromptQuillSail", + "PromptQuillSailConditioning" + ], + { + "title_aux": "ComfyUI_Prompt-Quill" + } + ], + "https://github.com/ostris/ComfyUI-FlexTools": [ + [ + "Flex2Conditioner", + "FlexGuidance", + "FlexLoraLoader", + "FlexLoraLoaderModelOnly" + ], + { + "nodename_pattern": "- Ostris$", + "title_aux": "Flex.1 tools" + } + ], "https://github.com/ostris/ostris_nodes_comfyui": [ [ + "Batch Image Loader - Ostris", "LLM Pipe Loader - Ostris", "LLM Prompt Upsampling - Ostris", "One Seed - Ostris", + "Save Image Direct - Ostris", "Text Box - Ostris" ], { @@ -9635,6 +35301,35 @@ "title_aux": "Ostris Nodes ComfyUI" } ], + "https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer": [ + [ + "AIHubActionNewImage", + "AIHubDevWebsocketDebug", + "AIHubExposeBoolean", + "AIHubExposeConfigBoolean", + "AIHubExposeConfigFloat", + "AIHubExposeConfigInteger", + "AIHubExposeConfigString", + "AIHubExposeFloat", + "AIHubExposeImage", + "AIHubExposeImageBatch", + "AIHubExposeImageInfoOnly", + "AIHubExposeInteger", + "AIHubExposeSampler", + "AIHubExposeScheduler", + "AIHubExposeSeed", + "AIHubExposeString", + "AIHubExposeStringSelection", + "AIHubPatchActionSetConfigBoolean", + "AIHubPatchActionSetConfigFloat", + "AIHubPatchActionSetConfigInteger", + "AIHubPatchActionSetConfigString", + "AIHubWorkflowController" + ], + { + "title_aux": "ComfyUI-aihub-workflow-exposer" + } + ], "https://github.com/ownimage/ComfyUI-ownimage": [ [ "Caching Image Loader" @@ -9643,6 +35338,15 @@ "title_aux": "ComfyUI-ownimage" } ], + "https://github.com/oxysoft/ComfyUI-gowiththeflow": [ + [ + "KSamplerNoiseless", + "NoiseWarperNode" + ], + { + "title_aux": "ComfyUI-gowiththeflow" + } + ], "https://github.com/oyvindg/ComfyUI-TrollSuite": [ [ "BinaryImageMask", @@ -9655,12 +35359,37 @@ "title_aux": "ComfyUI-TrollSuite" } ], - "https://github.com/palant/extended-saveimage-comfyui": [ + "https://github.com/oztrkoguz/ComfyUI_StoryCreator": [ [ - "SaveImageExtended" + "Kosmos2SamplerSimple2", + "KosmosLoader2", + "StoryLoader", + "StorySamplerSimple", + "Write2" ], { - "title_aux": "Extended Save Image for ComfyUI" + "title_aux": "ComfyUI StoryCreater" + } + ], + "https://github.com/p1atdev/comfyui-timm-backbone": [ + [ + "TimmBackboneImageEncode", + "TimmBackboneImageNormalize", + "TimmBackboneLoader", + "TimmBackboneRGB2BGR", + "TimmEmbedsPrint" + ], + { + "title_aux": "comfyui-timm-backbone" + } + ], + "https://github.com/p1atdev/comfyui-tkg-chroma-key": [ + [ + "ApplyTKGChromaKeyAdvanced", + "ApplyTKGChromaKeySDXL" + ], + { + "title_aux": "TKG-DM (Training-free Chroma Key Content Generation Diffusion Model) for ComfyUI" } ], "https://github.com/palant/image-resize-comfyui": [ @@ -9671,12 +35400,60 @@ "title_aux": "Image Resize for ComfyUI" } ], - "https://github.com/pamparamm/sd-perturbed-attention": [ + "https://github.com/pamparamm/ComfyUI-ppm": [ [ - "PerturbedAttention" + "AttentionCouplePPM", + "CFGLimiterGuider", + "CFGPPSamplerSelect", + "CLIPMicroConditioning", + "CLIPNegPip", + "CLIPTextEncodeBREAK", + "CLIPTextEncodeInvertWeights", + "CLIPTokenCounter", + "ConditioningZeroOutCombine", + "ConvertTimestepToSigma", + "DynSamplerSelect", + "DynamicThresholdingPost", + "DynamicThresholdingSimplePost", + "EmptyLatentImageAR", + "FreeU2PPM", + "Guidance Limiter", + "LatentOperationTonemapLuminance", + "LatentToMaskBB", + "LatentToWidthHeight", + "MaskCompositePPM", + "PPMSamplerSelect", + "RenormCFGPost", + "RescaleCFGPost", + "SamplerGradientEstimation" ], { - "title_aux": "Perturbed-Attention Guidance" + "title_aux": "ComfyUI-ppm" + } + ], + "https://github.com/pamparamm/ComfyUI-vectorscope-cc": [ + [ + "DiffusionCG", + "NormalizeLatent", + "VectorscopeCC" + ], + { + "title_aux": "ComfyUI Vectorscope CC" + } + ], + "https://github.com/pamparamm/sd-perturbed-attention": [ + [ + "NormalizedAttentionGuidance", + "PerturbedAttention", + "Pladis", + "SlidingWindowGuidanceAdvanced", + "SmoothedEnergyGuidanceAdvanced", + "TRTAttachPag", + "TRTPerturbedAttention", + "TokenPerturbationGuidance" + ], + { + "title_aux": "sd-perturbed-attention" } ], "https://github.com/pants007/comfy-pants": [ @@ -9688,6 +35465,82 @@ "title_aux": "pants" } ], + "https://github.com/papcorns/ComfyUI-Papcorns-Node-LoadImageFromUrl": [ + [ + "LoadImageFromUrlOrPath" + ], + { + "title_aux": "ComfyUI Load Image From URL" + } + ], + "https://github.com/papcorns/Papcorns-Comfyui-Custom-Nodes": [ + [ + "PapcornsAspectResize", + "PapcornsAudioTrimAndSave", + "PapcornsAudioTrimmer", + "PapcornsFpsCalculator", + "PapcornsMemoryManager", + "PapcornsSimpleMemoryManager", + "UploadImageToGCS" + ], + { + "title_aux": "Papcorns ComfyUI Custom Nodes" + } + ], + "https://github.com/pathway8-sudo/ComfyUI-Pathway-CutPNG-Node": [ + [ + "CutPNGNode" + ], + { + "title_aux": "ComfyUI-Pathway-CutPNG-Node" + } + ], + "https://github.com/patriciogonzalezvivo/comfyui_glslnodes": [ + [ + "float", + "glslBuffers", + "glslEditor", + "glslEditorPro", + "glslUniforms", + "glslViewer", + "int", + "vec2", + "vec2 (pos)", + "vec3", + "vec3 (pos)", + "vec4", + "vec4 (color)" + ], + { + "author": "Patricio Gonzalez Vivo", + "description": "A set of nodes to work with GLSL shaders", + "nickname": "GLSL Nodes", + "title": "GLSL Nodes", + "title_aux": "GLSL Nodes" + } + ], + "https://github.com/paulh4x/ComfyUI_PHRenderFormerWrapper": [ + [ + "RenderFormerCamera", + "RenderFormerCameraTarget", + "RenderFormerExampleScene", + "RenderFormerFromJSON", + "RenderFormerGenerator", + "RenderFormerLighting", + "RenderFormerLightingCombine", + "RenderFormerLightingTarget", + "RenderFormerLoadMesh", + "RenderFormerMeshCombine", + "RenderFormerMeshTarget", + "RenderFormerModelLoader", + "RenderFormerRandomizeColors", + "RenderFormerRemeshMesh", + "RenderFormerSceneBuilder" + ], + { + "title_aux": "ComfyUI_PHRenderFormerWrapper" + } + ], "https://github.com/paulo-coronado/comfy_clip_blip_node": [ [ "CLIPTextEncodeBLIP", @@ -9698,6 +35551,173 @@ "title_aux": "comfy_clip_blip_node" } ], + "https://github.com/pawelmal0101/ComfyUI-Webhook": [ + [ + "Webhook" + ], + { + "title_aux": "ComfyUI Webhook Notifier" + } + ], + "https://github.com/pbpbpb2705/ComfyUI-LyraVSIH": [ + [ + "MultiObjectMask" + ], + { + "title_aux": "ComfyUI-LyraVSIH" + } + ], + "https://github.com/penposs/ComfyUI-Banana-Node": [ + [ + "BananaNode", + "TransparentImageNode" + ], + { + "title_aux": "ComfyUI-Banana-Node" + } + ], + "https://github.com/penposs/ComfyUI_Gemini_Pro": [ + [ + "Gemini File Processing", + "Gemini File Upload", + "Gemini Pro", + "Gemini-Pro-Chat", + "Gemini-Pro-Editimage" + ], + { + "title_aux": "ComfyUI Gemini Pro Node" + } + ], + "https://github.com/penposs/Comfyui_wan_api": [ + [ + "WanAPIImageToVideo", + "WanAPIImageUploader", + "WanAPI_Image2Video", + "WanAPI_ImageUploader" + ], + { + "title_aux": "Comfyui_wan_api" + } + ], + "https://github.com/pharmapsychotic/comfy-cliption": [ + [ + "CLIPtionBeamSearch", + "CLIPtionGenerate", + "CLIPtionLoader" + ], + { + "title_aux": "comfy-cliption" + } + ], + "https://github.com/phazei/ComfyUI-OrpheusTTS-LMStudio": [ + [ + "OrpheusTTSLMStudio" + ], + { + "title_aux": "ComfyUI-OrpheusTTS-LMStudio" + } + ], + "https://github.com/phazei/ComfyUI-Prompt-Stash": [ + [ + "PromptStashManager", + "PromptStashPassthrough", + "PromptStashSaver" + ], + { + "title_aux": "Prompt Stash" + } + ], + "https://github.com/philiprodriguez/ComfyUI-HunyuanImageLatentToVideoLatent": [ + [ + "HunyuanImageLatentToVideoLatent" + ], + { + "title_aux": "ComfyUI-HunyuanImageLatentToVideoLatent" + } + ], + "https://github.com/philipy1219/ComfyUI-CloudStorage": [ + [ + "LoadImageFromCloud", + "LoadMaskFromCloud", + "LoadVideoFromCloud", + "SaveImageToCloud", + "UploadFileToCloud" + ], + { + "title_aux": "ComfyUI-CloudStorage" + } + ], + "https://github.com/philipy1219/ComfyUI-TaylorSeer": [ + [ + "FluxBlockSwap", + "HidreamBlockSwap", + "TaylorSeer" + ], + { + "title_aux": "ComfyUI-TaylorSeer" + } + ], + "https://github.com/philz1337x/ComfyUI-ClarityAI": [ + [ + "Clarity AI Upscaler" + ], + { + "title_aux": "\u2728 Clarity AI - Creative Image Upscaler and Enhancer for ComfyUI" + } + ], + "https://github.com/phuvinh010701/ComfyUI-Nudenet": [ + [ + "ApplyNudenet", + "FilterdLabel", + "NudenetModelLoader" + ], + { + "title_aux": "ComfyUI-Nudenet" + } + ], + "https://github.com/phyblas/paint-by-example_comfyui": [ + [ + "PaintbyExampleAdvanced", + "PaintbyExampleGen", + "PaintbyExampleSimple", + "PaintbyIchimatsu", + "PaintbySingleColor" + ], + { + "title_aux": "paint-by-example @ ComfyUI" + } + ], + "https://github.com/pictorialink/ComfyUI-Custom-Node-Config": [ + [ + "FormSubmitNode" + ], + { + "title_aux": "ComfyUI-Custom-Node-Config" + } + ], + "https://github.com/pictorialink/ComfyUI-Qwen3-llama.cpp": [ + [ + "Qwen25_VL", + "Qwen3" + ], + { + "title_aux": "ComfyUI-Qwen3-llama.cpp" + } + ], + "https://github.com/pictorialink/ComfyUI-Text-Translation": [ + [ + "Get_Translator", + "Text", + "Text_Concatenate", + "Text_Switch", + "Text_Translation", + "Text_Translation_V2", + "Text_Translation_V2_Full" + ], + { + "title_aux": "ComfyUI-Text-Translation" + } + ], "https://github.com/picturesonpictures/comfy_PoP": [ [ "AdaptiveCannyDetector_PoP", @@ -9705,6 +35725,7 @@ "ConditioningMultiplier_PoP", "ConditioningNormalizer_PoP", "DallE3_PoP", + "EfficientAttention", "LoadImageResizer_PoP", "LoraStackLoader10_PoP", "LoraStackLoader_PoP", @@ -9715,6 +35736,29 @@ "title_aux": "comfy_PoP" } ], + "https://github.com/pikenrover/ComfyUI_PRNodes": [ + [ + "CheckpointLoaderSimpleExtended", + "EmptyLatentImageScaleBy", + "ImageScaleTo", + "LoadRandomImage", + "LoraLoaderExtended", + "RandomPrompt", + "RandomPromptMixed", + "Save Image w/Metadata" + ], + { + "title_aux": "ComfyUI_PRNodes" + } + ], + "https://github.com/pixelworldai/ComfyUI-AlphaFlatten": [ + [ + "FlattenByAlpha" + ], + { + "title_aux": "ComfyUI-AlphaFlatten" + } + ], "https://github.com/pkpkTech/ComfyUI-SaveAVIF": [ [ "SaveAvif" @@ -9733,6 +35777,248 @@ "title_aux": "ComfyUI-TemporaryLoader" } ], + "https://github.com/playbook3d/playbook3d-comfyui-nodes": [ + [ + "Beauty Pass Sequence", + "Depth Pass Sequence", + "Mask Pass Sequence", + "Outline Pass Sequence", + "Playbook Aspect Ratio Select", + "Playbook Beauty", + "Playbook Beauty Sequence", + "Playbook Boolean", + "Playbook Depth", + "Playbook Depth Sequence", + "Playbook Float", + "Playbook Image", + "Playbook LoRA Select", + "Playbook LoRA Selection", + "Playbook Mask", + "Playbook Mask Sequence", + "Playbook Number", + "Playbook Outline", + "Playbook Outline Sequence", + "Playbook Render Result", + "Playbook Seed", + "Playbook Text", + "Playbook Video" + ], + { + "title_aux": "Playbook Nodes" + } + ], + "https://github.com/plugcrypt/CRT-Nodes": [ + [ + "AdvancedBloomFX", + "AdvancedStringReplace", + "ArcaneBloomFX", + "AudioCompressor", + "AudioLoaderCrawl", + "AudioOrManualFrameCount", + "AudioPreviewer", + "AutopromptProcessor", + "Boolean Transform", + "BooleanInvert", + "CLIPTextEncodeFluxMerged", + "CRT Post-Process Suite", + "CRTChromaKeyOverlay", + "CRTFirstLastFrameSelector", + "CRTLoadLastMedia", + "CRTLoadLastVideo", + "CRTPctCropCalculator", + "CRTPostProcess", + "CRT_AddSettingsAndPrompt", + "CRT_DynamicPromptScheduler", + "CRT_FileBatchPromptScheduler", + "CRT_UpscaleModelAdv", + "CRT_WAN_BatchSampler", + "ClarityFX", + "ClearStyleModelDualCache", + "ColorIsolationFX", + "ColourfulnessFX", + "ContourFX", + "EmptyContext", + "EnableLatent", + "FaceEnhancementPipeline", + "FaceEnhancementPipelineWithInjection", + "FancyNoteNode", + "FancyTimerNode", + "FileLoaderCrawl", + "FileLoaderCrawlBatch", + "FilmGrainFX", + "FluxAIO_CRT", + "FluxControlnetSampler", + "FluxControlnetSamplerWithInjection", + "FluxLoraBlocksPatcher", + "FluxSemanticEncoder", + "FluxTiledSamplerCustomAdvanced", + "ImageLoaderCrawl", + "LatentNoiseInjectionSampler", + "LensDistortFX", + "LensFX", + "LoadImageResize", + "LoadLastLatent", + "LoadVideoForVCaptioning", + "Lora Loader Str", + "MaskEmptyFloatNode", + "MaskPassOrPlaceholder", + "ParametricEQNode", + "PonyFaceEnhancementPipelineWithInjection", + "PonyUpscaleSamplerWithInjection", + "Remove Trailing Comma", + "Resolution", + "SamplerSchedulerSelector", + "SaveAudioWithPath", + "SaveImageWithPath", + "SaveLatentWithPath", + "SaveTextWithPath", + "SaveVideoWithPath", + "SeamlessLoopBlender", + "SimpleFluxShiftNode", + "SimpleKnobNode", + "SimpleToggleNode", + "SmartControlNetApply", + "SmartDeNoiseFX", + "SmartPreprocessor", + "SmartStyleModelApplyDual", + "Strength To Steps", + "Technicolor2FX", + "Toggle Lora Unet Blocks L1", + "Toggle Lora Unet Blocks L2", + "Video Duration Calculator", + "VideoLoaderCrawl", + "WAN2.2 LoRA Compare Sampler" + ], + { + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", + "title_aux": "CRT-Nodes" + } + ], + "https://github.com/pmarmotte2/ComfyUI-Speaker-Isolation": [ + [ + "SpeakerDiarizer" + ], + { + "title_aux": "ComfyUI-Speaker-Isolation" + } + ], + "https://github.com/pnikolic-amd/ComfyUI_MIGraphX": [ + [ + "CompileDiffusersMIGraphX" + ], + { + "title_aux": "MIGraphX Node for ComfyUI" + } + ], + "https://github.com/pollockjj/ComfyUI-MultiGPU": [ + [ + "CheckpointLoaderAdvancedDisTorch2MultiGPU", + "CheckpointLoaderAdvancedMultiGPU", + "DeviceSelectorMultiGPU", + "HunyuanVideoEmbeddingsAdapter" + ], + { + "title_aux": "ComfyUI-MultiGPU" + } + ], + "https://github.com/popoimm/comfyui-popo-utility": [ + [ + "PopoImageAspectRatioNode", + "PopoImageDimensionsNode", + "PopoImageSizeNode", + "PopoMathExpressionNode" + ], + { + "title_aux": "ComfyUI Popo Utility" + } + ], + "https://github.com/portu-sim/comfyui_bmab": [ + [ + "BMAB Alpha Composit", + "BMAB Base64 Image", + "BMAB Basic", + "BMAB Black And White", + "BMAB Blend", + "BMAB Clip Text Encoder SDXL", + "BMAB Conditioning To Bind", + "BMAB Context", + "BMAB ControlNet", + "BMAB ControlNet IPAdapter", + "BMAB ControlNet Openpose", + "BMAB Crop", + "BMAB Detail Anything", + "BMAB Detect And Mask", + "BMAB Detect And Paste", + "BMAB Detection Crop", + "BMAB Detector", + "BMAB Dummy", + "BMAB Edge", + "BMAB Extractor", + "BMAB Face Detailer", + "BMAB Flux ControlNet", + "BMAB Flux Integrator", + "BMAB Google Gemini Prompt", + "BMAB Image Storage", + "BMAB Import Integrator", + "BMAB Inpaint", + "BMAB Integrator", + "BMAB KSampler", + "BMAB KSamplerHiresFix", + "BMAB KSamplerHiresFixWithUpscaler", + "BMAB KSamplerKohyaDeepShrink", + "BMAB Lama Inpaint", + "BMAB LoRA Loader", + "BMAB Load Image", + "BMAB Load Output Image", + "BMAB Masks To Images", + "BMAB Model To Bind", + "BMAB Noise Generator", + "BMAB Normalize Size", + "BMAB Openpose Hand Detailer", + "BMAB Outpaint By Ratio", + "BMAB Person Detailer", + "BMAB Preview Text", + "BMAB Prompt", + "BMAB Reframe", + "BMAB Remote Access And Save", + "BMAB Remove Background", + "BMAB Resize By Person", + "BMAB Resize By Ratio", + "BMAB Resize and Fill", + "BMAB SD-WebUI API BMAB Extension", + "BMAB SD-WebUI API ControlNet", + "BMAB SD-WebUI API I2I", + "BMAB SD-WebUI API Server", + "BMAB SD-WebUI API T2I", + "BMAB SD-WebUI API T2I Hires.Fix", + "BMAB Save Image", + "BMAB SeedGenerator", + "BMAB Segment Anything", + "BMAB Simple Hand Detailer", + "BMAB Square", + "BMAB Subframe Hand Detailer", + "BMAB Text", + "BMAB ToBind", + "BMAB Upscale With Model", + "BMAB Upscaler", + "BMAB Watermark", + "BMAB Zoom Out" + ], + { + "title_aux": "comfyui_bmab" + } + ], + "https://github.com/prodogape/ComfyUI-EasyOCR": [ + [ + "Apply EasyOCR" + ], + { + "title_aux": "ComfyUI-EasyOCR" + } + ], "https://github.com/prodogape/ComfyUI-Minio": [ [ "Load Image From Minio", @@ -9743,6 +36029,173 @@ "title_aux": "Comfyui-Minio" } ], + "https://github.com/prodogape/ComfyUI-OmDet": [ + [ + "Apply OmDet" + ], + { + "title_aux": "ComfyUI-OmDet" + } + ], + "https://github.com/prodogape/Comfyui-Yolov8-JSON": [ + [ + "Apply Yolov8 Model", + "Apply Yolov8 Model Seg", + "Draw Labelme Json", + "Load Yolov8 Model", + "Load Yolov8 Model From Path", + "Save Labelme Json" + ], + { + "title_aux": "Comfyui-Yolov8-JSON" + } + ], + "https://github.com/pschroedl/ComfyUI-SAM2-Realtime": [ + [ + "DownloadAndLoadSAM2RealtimeModel", + "Sam2RealtimeSegmentation" + ], + { + "title_aux": "ComfyUI-SAM2-Realtime" + } + ], + "https://github.com/ptmaster/ComfyUI-Load-Diffusion-Model-to-Muti-GPUs/raw/refs/heads/main/Load%20Diffusion%20Model%20into%20Muti%20GPUs.py": [ + [ + "OverrideLoadedDiffusionDevice" + ], + { + "title_aux": "ComfyUI-Load-Diffusion-Model-to-Muti-GPUs" + } + ], + "https://github.com/ptmaster/Comfyui-PT-Keyframe-Camera": [ + [ + "PT_KeyframeCamera" + ], + { + "title_aux": "Comfyui-PT-Keyframe-Camera" + } + ], + "https://github.com/ptmaster/comfyui-audio-speed": [ + [ + "PT48KHZ", + "PTAudioSpeed", + "PTEnsureStereo" + ], + { + "title_aux": "ComfyUI-audio-speed" + } + ], + "https://github.com/pupba/Comfy_ForEach": [ + [ + "EventBridgeTriggerNode", + "FolderImageLoaderNode", + "IndexedImageSelectorNode", + "IndexedNameSelectorNode", + "IsLastIndexNode", + "LoadPreCheckpointModel", + "LoadPreControlNetModel", + "SaveExactNameImageNode", + "StringViewer", + "TaskIDStorageNode" + ], + { + "title_aux": "ComfyForEach" + } + ], + "https://github.com/purewater2011/comfyui_color_detection": [ + [ + "IsYellowish", + "YellowHeatmap" + ], + { + "title_aux": "comfyui_color_detection" + } + ], + "https://github.com/purpen/ComfyUI-AIRedoon": [ + [ + "AIRedoonApplyLoRAStack", + "AIRedoonCheckLoraFile", + "AIRedoonCheckModelFile", + "AIRedoonConcatText", + "AIRedoonImageCaptioning", + "AIRedoonImageRGBA2RGB", + "AIRedoonLoRAStack", + "AIRedoonPreviewText", + "AIRedoonQwenModelLoader", + "AIRedoonSaveText", + "AIRedoonTranslator" + ], + { + "title_aux": "AIRedoon" + } + ], + "https://github.com/purpen/ComfyUI-ImageTagger": [ + [ + "AIRedoonImageCaptioning" + ], + { + "title_aux": "ComfyUI-ImageTagger" + } + ], + "https://github.com/pvlprk/comfyui-pvl-api-nodes": [ + [ + "PVL Call OpenAI Assistant", + "PVL ComfyDeploy API Caller", + "PVL KONTEXT MAX", + "PVLCheckIfConnected", + "PVL_ImageResize", + "PVL_ImageStitch", + "PVL_NoneOutputNode", + "PVL_OpenPoseMatch", + "PVL_OpenPoseMatch_Z", + "PVL_SaveOrNot", + "PVL_Switch_Huge", + "PVL_fal_FluxDev_API", + "PVL_fal_FluxGeneral_API", + "PVL_fal_FluxPro_Fill_API", + "PVL_fal_FluxPro_v1_1_Ultra_API", + "PVL_fal_FluxWithLora_API", + "PVL_fal_KontextDevInpaint_API", + "PVL_fal_KontextDevLora_API", + "PVL_fal_KontextMaxMulti_API", + "PVL_fal_KontextMaxSingle_API", + "PVL_fal_KontextPro_API", + "PVL_fal_Kontext_Dev_API", + "PVL_fal_LumaPhoton_FlashReframe_API", + "PVL_fal_LumaPhoton_Reframe_API", + "PVL_fal_NanoBanana_API", + "PvlKontextMax" + ], + { + "title_aux": "ComfyUI Assistant Node" + } + ], + "https://github.com/pxl-pshr/GlitchNodes": [ + [ + "ASCII", + "Corruptor", + "DataBend", + "DitherMe", + "FrequencyModulation", + "GlitchIT", + "LineScreen", + "LuminousFlow", + "OrderedDithering", + "Pixel8Bit", + "PixelFloat", + "PixelRedistribution", + "Rekked", + "Scanz", + "TvGlitch", + "VHSonAcid", + "VaporWave", + "VideoModulation", + "interference" + ], + { + "title_aux": "GlitchNodes" + } + ], "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": [ [ "CheckpointLoader|pysssss", @@ -9757,10 +36210,11 @@ "ReroutePrimitive|pysssss", "SaveText|pysssss", "ShowText|pysssss", - "StringFunction|pysssss" + "StringFunction|pysssss", + "SystemNotification|pysssss" ], { - "title_aux": "pythongosssss/ComfyUI-Custom-Scripts" + "title_aux": "ComfyUI-Custom-Scripts" } ], "https://github.com/pythongosssss/ComfyUI-WD14-Tagger": [ @@ -9771,6 +36225,111 @@ "title_aux": "ComfyUI WD 1.4 Tagger" } ], + "https://github.com/pzc163/Comfyui_MiniCPMv2_6-prompt-generator": [ + [ + "Prompt_Generator", + "Save_Prompts" + ], + { + "title_aux": "Comfyui_MiniCPMv2_6-prompt-generator" + } + ], + "https://github.com/quank123wip/ComfyUI-Step1X-Edit": [ + [ + "Step-1XEditNode" + ], + { + "title_aux": "ComfyUI-Step1X-Edit" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesCompositionGuides": [ + [ + "EsesCompositionGuides" + ], + { + "title_aux": "ComfyUI-EsesCompositionGuides" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageAdjustments": [ + [ + "EsesImageAdjustments2" + ], + { + "title_aux": "ComfyUI-EsesImageAdjustments" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageCompare": [ + [ + "EsesImageCompare" + ], + { + "title_aux": "ComfyUI-EsesImageCompare" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageEffectBloom": [ + [ + "EsesImageEffectBloom" + ], + { + "title_aux": "ComfyUI-EsesImageEffectBloom" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageEffectCurves": [ + [ + "EsesImageEffectCurves" + ], + { + "title_aux": "ComfyUI-EsesImageEffectCurves" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageEffectLevels": [ + [ + "EsesImageEffectLevels" + ], + { + "title_aux": "ComfyUI-EsesImageEffectLevels" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageLensEffects": [ + [ + "EsesImageLensEffects" + ], + { + "title_aux": "ComfyUI-EsesImageLensEffects" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageOffset": [ + [ + "EsesImageOffset" + ], + { + "title_aux": "ComfyUI-EsesImageOffset" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageResize": [ + [ + "EsesImageResize" + ], + { + "title_aux": "EsesImageResize" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageTransform": [ + [ + "EsesImageTransform" + ], + { + "title_aux": "ComfyUI-EsesImageTransform" + } + ], + "https://github.com/quasiblob/EsesCompositionGoldenRatio": [ + [ + "EsesCompositionGoldenRatio" + ], + { + "title_aux": "EsesCompositionGoldenRatio" + } + ], "https://github.com/qwixiwp/queuetools": [ [ "load images (queue tools)" @@ -9779,8 +36338,84 @@ "title_aux": "queuetools" } ], + "https://github.com/r3dial/redial-discomphy": [ + [ + "DiscordMessage" + ], + { + "title_aux": "Redial Discomphy - Discord Integration for ComfyUI" + } + ], + "https://github.com/r3dsd/comfyui-template-loader": [ + [ + "TemplateLoader" + ], + { + "title_aux": "Comfyui-Template-Loader" + } + ], + "https://github.com/railep/ComfyUI-HunyuanVideo-Foley": [ + [ + "HunyuanFoleyNode" + ], + { + "title_aux": "HunyuanVideo-Foley Audio Generator" + } + ], + "https://github.com/raindrop313/ComfyUI-WanVideoStartEndFrames": [ + [ + "WanVideoSEDecode", + "WanVideoSEImageClipEncode", + "WanVideoSEModelLoader", + "WanVideoSESampler", + "WanVideoSEVAELoader" + ], + { + "title_aux": "ComfyUI-WanVideoStartEndFrames" + } + ], + "https://github.com/raindrop313/ComfyUI_SD3_Flowedit": [ + [ + "FlowEditCFGGuider", + "FlowEditSampler", + "OutSD3ModelSamplingPred" + ], + { + "title_aux": "ComfyUI_SD3_Flowedit" + } + ], + "https://github.com/rainlizard/ComfyUI-Raffle": [ + [ + "PreviewHistory", + "Raffle", + "TagCategoryStrength" + ], + { + "title_aux": "Raffle" + } + ], + "https://github.com/rainlizard/ComfyUI-WhirlpoolUpscaler": [ + [ + "WhirlpoolUpscaler" + ], + { + "title_aux": "Whirlpool Upscaler" + } + ], + "https://github.com/ramesh-x90/ComfyUI_pyannote": [ + [ + "Speaker Diarization", + "Whisper Segments to Speaker" + ], + { + "title_aux": "ComfyUI_pyannote" + } + ], "https://github.com/ramyma/A8R8_ComfyUI_nodes": [ [ + "AttentionCouple", + "AttentionCoupleRegion", + "AttentionCoupleRegions", "Base64ImageInput", "Base64ImageOutput" ], @@ -9788,6 +36423,36 @@ "title_aux": "A8R8 ComfyUI Nodes" } ], + "https://github.com/randjtw/advance-aesthetic-score": [ + [ + "Adv_Scoring" + ], + { + "title_aux": "advance-aesthetic-score" + } + ], + "https://github.com/randomnoner11/ComfyUI-MistralAI-API": [ + [ + "InvokeMistralEndpoint", + "LoadFewShotPrompt" + ], + { + "title_aux": "ComfyUI-MistralAI-API" + } + ], + "https://github.com/ranska/pixel_palette_art": [ + [ + "ColorFormatterNode", + "ColorPreviewNode", + "CreateColorFromRGBNode", + "GimpPaletteLoader", + "PaletteFormatter", + "PixelPaletteExtractor" + ], + { + "title_aux": "Pixel Palette Art" + } + ], "https://github.com/ratulrafsan/Comfyui-SAL-VTON": [ [ "SALVTON_Apply", @@ -9797,6 +36462,31 @@ "title_aux": "Comfyui-SAL-VTON" } ], + "https://github.com/raykindle/ComfyUI_Step1X-Edit": [ + [ + "Step1XEditGenerate", + "Step1XEditModelLoader", + "Step1XEditTeaCacheGenerate", + "Step1XEditTeaCacheModelLoader" + ], + { + "title_aux": "ComfyUI_Step1X-Edit" + } + ], + "https://github.com/raysers/Mflux-ComfyUI": [ + [ + "MfluxControlNetLoader", + "MfluxCustomModels", + "MfluxImg2Img", + "MfluxLorasLoader", + "MfluxModelsDownloader", + "MfluxModelsLoader", + "QuickMfluxNode" + ], + { + "title_aux": "Mflux-ComfyUI" + } + ], "https://github.com/rcfcu2000/zhihuige-nodes-comfyui": [ [ "Combine ZHGMasks", @@ -9829,8 +36519,36 @@ "title_aux": "rcsaquino/comfyui-custom-nodes" } ], + "https://github.com/rdancer/ComfyUI_Florence2SAM2": [ + [ + "RdancerFlorence2SAM2GenerateMask" + ], + { + "title_aux": "ComfyUI_Florence2SAM2" + } + ], + "https://github.com/rdomunky/comfyui-subfolderimageloader": [ + [ + "SubfolderImageLoader" + ], + { + "title_aux": "comfyui-subfolderimageloader" + } + ], + "https://github.com/reallusion/ComfyUI-Reallusion": [ + [ + "additional_image", + "control_net", + "core", + "upscale_data" + ], + { + "title_aux": "Reallusion ComfyUI Custom Nodes" + } + ], "https://github.com/receyuki/comfyui-prompt-reader-node": [ [ + "SDAnyConverter", "SDBatchLoader", "SDLoraLoader", "SDLoraSelector", @@ -9843,22 +36561,43 @@ ], { "author": "receyuki", - "description": "ComfyUI node version of the SD Prompt Reader", + "description": "The ultimate solution for managing image metadata and multi-tool compatibility. ComfyUI node version of the SD Prompt Reader", "nickname": "SD Prompt Reader", "title": "SD Prompt Reader", "title_aux": "SD Prompt Reader" } ], + "https://github.com/recraft-ai/ComfyUI-RecraftAI": [ + [ + "RecraftBackgroundRemover", + "RecraftBackgroundReplacer", + "RecraftClarityUpscaler", + "RecraftClient", + "RecraftGenerativeUpscaler", + "RecraftImageGenerator", + "RecraftImageToImageTransformer", + "RecraftInpainter" + ], + { + "title_aux": "ComfyUI-RecraftAI" + } + ], "https://github.com/redhottensors/ComfyUI-Prediction": [ [ "AvoidErasePrediction", "CFGPrediction", + "CharacteristicGuidancePrediction", "CombinePredictions", "ConditionedPrediction", + "EarlyMiddleLatePrediction", + "InterpolatePredictions", + "LogSigmas", "PerpNegPrediction", "SamplerCustomPrediction", "ScalePrediction", "ScaledGuidancePrediction", + "SelectSigmas", + "SplitAtSigma", "SwitchPredictions" ], { @@ -9869,6 +36608,73 @@ "title_aux": "ComfyUI-Prediction" } ], + "https://github.com/regiellis/ComfyUI-EasyColorCorrector": [ + [ + "BatchColorCorrection", + "ColorCorrectionViewer", + "ColorPaletteExtractor", + "EasyColorCorrection", + "FilmEmulation", + "RawImageProcessor", + "VAEColorCorrector" + ], + { + "title_aux": "Easy Color Correction" + } + ], + "https://github.com/regiellis/ComfyUI-EasyNoobai": [ + [ + "EasyNoobai", + "EasyNoobaiMasterModel", + "NoobaiArtists", + "NoobaiCharacters", + "NoobaiClothing", + "NoobaiE621Artists", + "NoobaiE621Characters", + "NoobaiHairstyles", + "NoobaiPony", + "NoobaiPoses" + ], + { + "title_aux": "ComfyUI-EasyNoobai" + } + ], + "https://github.com/regiellis/ComfyUI-EasyPony": [ + [ + "EasyPony" + ], + { + "title_aux": "ComfyUI-EasyPony" + } + ], + "https://github.com/regiellis/ComfyUI-SDXL-Adherence": [ + [ + "AlignHintsToLatent", + "AutoSize64", + "CropByBBox", + "NegativePromptHelper", + "PostPolish", + "SDXLDualClipEncode", + "SDXLPromptStyler", + "SmartLatent" + ], + { + "title_aux": "SDXL Adherence" + } + ], + "https://github.com/revirevy/Comfyui_saveimage_imgbb": [ + [ + "ImgBBUploader", + "LLM_prompt_generator" + ], + { + "author": "N.RHEVI", + "description": "This custom node allow save image to imgbb.", + "nickname": "save image to imgbb", + "title": "save image to imgbb", + "title_aux": "Comfyui_saveimage_imgbb" + } + ], "https://github.com/rgthree/rgthree-comfy": [ [], { @@ -9880,6 +36686,54 @@ "title_aux": "rgthree's ComfyUI Nodes" } ], + "https://github.com/rhdunn/comfyui-audio-processing": [ + [ + "ComfyAudio.ApplyFilterBank", + "ComfyAudio.GriffinLim", + "ComfyAudio.InverseSpectrogram", + "ComfyAudio.LinearFilterBank", + "ComfyAudio.LoadAudio", + "ComfyAudio.MelScaleFilterBank", + "ComfyAudio.PlotFilterBank", + "ComfyAudio.PlotSpectrogram", + "ComfyAudio.PlotWaveform", + "ComfyAudio.Spectrogram" + ], + { + "title_aux": "comfyui-audio-processing" + } + ], + "https://github.com/rhdunn/comfyui-bus-plugin": [ + [ + "ComfyBus.CLIPConditioningBusNode", + "ComfyBus.CLIPEncodedPromptBusNode", + "ComfyBus.CheckpointBusNode", + "ComfyBus.ImageBusNode", + "ComfyBus.ImageParameterBusNode", + "ComfyBus.ImageScaleToSideParameterBusNode", + "ComfyBus.ImageSizeBusNode", + "ComfyBus.LatentImageBusNode", + "ComfyBus.LatentImageParameterBusNode", + "ComfyBus.PromptBusNode", + "ComfyBus.PromptSDXLBusNode" + ], + { + "title_aux": "comfyui-bus-plugin" + } + ], + "https://github.com/rhplus0831/ComfyMepi": [ + [ + "MepiCheckpoint", + "MepiImageSize", + "MepiNegativePrompt", + "MepiPositivePrompt", + "MepiSaveImage", + "MepiStepsAndCfg" + ], + { + "title_aux": "ComfyMepi" + } + ], "https://github.com/richinsley/Comfy-LFO": [ [ "LFO_Pulse", @@ -9894,18 +36748,35 @@ ], "https://github.com/ricklove/comfyui-ricklove": [ [ + "RL_BBox", + "RL_CacheImageSequence", + "RL_CacheMaskSequence", + "RL_CivitaiTopImagePrompts", "RL_Crop_Resize", "RL_Crop_Resize_Batch", - "RL_Depth16", "RL_Finetune_Analyze", "RL_Finetune_Analyze_Batch", "RL_Finetune_Variable", + "RL_ForceDependencyOrder", + "RL_ForceDependencyOrder_ImageString", + "RL_ForceDependencyOrder_Images", + "RL_ForceDependencyOrder_Latents", + "RL_ForceDependencyOrder_String", + "RL_ForceDependencyOrder_Strings", + "RL_IfFileExists", "RL_Image_Shadow", "RL_Image_Threshold_Channels", "RL_Internet_Search", "RL_LoadImageSequence", + "RL_Load_Flow", + "RL_LoraTextExtractTags", "RL_Optical_Flow_Dip", + "RL_RebootComfyIfLeaky", "RL_SaveImageSequence", + "RL_Save_Flow", + "RL_SequenceContext", + "RL_Sequence_ToFilePathList", + "RL_StopIfBlack", "RL_Uncrop", "RL_Warp_Image", "RL_Zoe_Depth_Map_Preprocessor", @@ -9916,13 +36787,149 @@ "title_aux": "comfyui-ricklove" } ], - "https://github.com/rklaffehn/rk-comfy-nodes": [ + "https://github.com/rickrender/ComfyUI-Vectorizer-API": [ [ - "RK_CivitAIAddHashes", - "RK_CivitAIMetaChecker" + "BackgroundRemoverNode", + "BackgroundRemoverSVGNode", + "VectorizerAINode" ], { - "title_aux": "rk-comfy-nodes" + "title_aux": "Vectorizer API" + } + ], + "https://github.com/rickyars/comfyui-llm-tile": [ + [ + "TiledImageGenerator", + "TiledImageGeneratorAdvanced" + ], + { + "title_aux": "Tiled Image Generator for ComfyUI" + } + ], + "https://github.com/risunobushi/ComfyUI-Similarity-Score": [ + [ + "ImageSimilarityScores" + ], + { + "title_aux": "ComfyUI-Similarity-Score" + } + ], + "https://github.com/risunobushi/ComfyUI_DisplacementMapTools": [ + [ + "DisplaceLogo", + "ExtractDisplacementMap" + ], + { + "title_aux": "ComfyUI_DisplacementMapTools" + } + ], + "https://github.com/risunobushi/ComfyUI_sm4ll-Wrapper": [ + [ + "VTONAPINode", + "VTONAPIPaidNode" + ], + { + "title_aux": "ComfyUI_sm4ll-Wrapper" + } + ], + "https://github.com/risunobushi/comfyUI_FrequencySeparation_RGB-HSV": [ + [ + "FrequencyCombination", + "FrequencyCombinationHSV", + "FrequencySeparation", + "FrequencySeparationHSV" + ], + { + "title_aux": "comfyUI_FrequencySeparation_RGB-HSV" + } + ], + "https://github.com/rkfg/ComfyUI-Dia_tts": [ + [ + "DiaModelLoader", + "DiaSampler" + ], + { + "title_aux": "Dia realistic TTS" + } + ], + "https://github.com/rndnanthu/ComfyUI-RndNanthu": [ + [ + "AutoGradePro", + "ColorAnalysisPlotNode", + "ColorSpaceSim", + "ConvertToLogImage", + "FilmGrain", + "ProColorGrading", + "PromptGenerator" + ], + { + "title_aux": "ComfyUI-RndNanthu" + } + ], + "https://github.com/robertvoy/ComfyUI-Distributed": [ + [ + "DistributedCollector", + "DistributedSeed", + "ImageBatchDivider", + "UltimateSDUpscaleDistributed" + ], + { + "title_aux": "ComfyUI-Distributed" + } + ], + "https://github.com/robertvoy/ComfyUI-Flux-Continuum": [ + [ + "BatchSlider", + "BooleanToEnabled", + "CannySlider", + "ConfigurableDrawText", + "ConfigurableModelRouter", + "ControlNetSlider", + "DenoiseSlider", + "DrawTextConfig", + "FluxContinuumModelRouter", + "GPUSlider", + "GuidanceSlider", + "IPAdapterSlider", + "ImageBatchBoolean", + "ImpactControlBridgeFix", + "IntPass", + "LatentPass", + "MaxShiftSlider", + "OutputGetString", + "PipePass", + "ResolutionMultiplySlider", + "ResolutionPicker", + "SEGSPass", + "SamplerParameterPacker", + "SamplerParameterUnpacker", + "SelectFromBatch", + "SimpleTextTruncate", + "SplitVec2", + "SplitVec3", + "StepSlider", + "TextVersions" + ], + { + "title_aux": "ComfyUI Flux Continuum: Modular Interface" + } + ], + "https://github.com/robtl2/ComfyUI-ComfyBridge": [ + [ + "CB_ImageReceiver", + "CB_ImageSender" + ], + { + "title_aux": "ComfyUI-ComfyBridge" + } + ], + "https://github.com/rohitsainier/ComfyUI-InstagramDownloader": [ + [ + "InstagramDownloader", + "MediaOrganizer" + ], + { + "title_aux": "ComfyUI-InstagramDownloader" } ], "https://github.com/romeobuilderotti/ComfyUI-PNG-Metadata": [ @@ -9934,6 +36941,16 @@ "title_aux": "ComfyUI PNG Metadata" } ], + "https://github.com/ronaldzgithub/ComfyUI_Appstore": [ + [ + "ComfyUIAppstoreHost", + "ComfyUIAppstoreParam", + "sdAppstore_saveImage" + ], + { + "title_aux": "ComfyUI_Appstore" + } + ], "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration": [ [ "TaraAdvancedComposition", @@ -9949,6 +36966,104 @@ "title_aux": "ComfyUI-Tara-LLM-Integration" } ], + "https://github.com/ronsantash/Comfyui-flexi-lora-loader": [ + [ + "ComfyUIFlexiLoRALoader" + ], + { + "title_aux": "ComfyUIFlexiLoRALoader" + } + ], + "https://github.com/rookiepsi/comfypsi_blur_mask": [ + [ + "comfypsi_blur_mask" + ], + { + "title_aux": "Blur Mask" + } + ], + "https://github.com/rookiepsi/comfyui-extended": [ + [ + "ImageLiquify", + "ImageSwitch", + "MaskSwitch", + "PreviewBoolean", + "PreviewFloat", + "PreviewInteger", + "PreviewMask", + "PreviewText", + "PrimitiveBoolean", + "PrimitiveDimensions", + "PrimitiveFloat", + "PrimitiveInteger", + "PrimitiveText", + "UtilityExpression", + "UtilityImageDimensions", + "UtilitySwitch", + "rookiepsi_BlurMask", + "rookiepsi_ConstructMask", + "rookiepsi_CropImageToMask", + "rookiepsi_ResizeMask" + ], + { + "title_aux": "ComfyUI Extended" + } + ], + "https://github.com/roundyyy/ComfyUI-mesh-simplifier": [ + [ + "MeshSimplifierNode" + ], + { + "title_aux": "Mesh Simplifier for ComfyUI" + } + ], + "https://github.com/routhakash/AkkiNodes-LLM-Suite-for-ComfyUI": [ + [ + "AICharacterLookdevBible-Akki", + "AICinematographer_Akki", + "AIQCSupervisor-Akki", + "AISceneChoreographerBible-Akki", + "AIScriptCrafter01FoundationBible-Akki", + "AIScriptCrafter02BeatSheetBible-Akki", + "AIScriptCrafter03ScreenplayBible-Akki", + "AISetLookdevBible-Akki", + "AIShotDurationCalculator-Akki", + "AIVideoPromptEngineerPro-Akki", + "AssetSelector-Akki", + "GenericFileLoader-Akki", + "GenericFileSaver-Akki", + "GenericImageLoader-Akki", + "GenericImageNamer-Akki", + "KeywordLoader-Akki", + "LLMLoader-Akki", + "LLMLoaderLMStudio-Akki", + "LoadTextFileAdvanced-Akki", + "LoadTextFileSimple-Akki", + "LookdevBibleLoader-Akki", + "ProShotListParser-Akki", + "ProjectDirector-Akki", + "SaveTextFile-Akki", + "SceneChoreographyLoader-Akki", + "ShotAssetLoader-Akki", + "ShotSelector-Akki", + "StoryWriter-Akki", + "VideoPromptLoader-Akki" + ], + { + "title_aux": "AkkiNodes LLM Suite: Your Personal AI Film Studio" + } + ], + "https://github.com/royceschultz/ComfyUI-Notifications": [ + [ + "Notif-PlaySound", + "Notif-SystemNotification", + "Notif-UnifiedNotification", + "Notif-Webhook" + ], + { + "title_aux": "ComfyUI-Notifications" + } + ], "https://github.com/royceschultz/ComfyUI-TranscriptionTools": [ [ "TT-AudioSink", @@ -9964,6 +37079,58 @@ "title_aux": "ComfyUI-TranscriptionTools" } ], + "https://github.com/rslosch/ComfyUI-EZ_Prompts": [ + [ + "EZPromptsNode", + "LoadImageSetFromFolderSortedNode", + "PadImageForOutpaintByAspectRatio" + ], + { + "title_aux": "ComfyUI-EZ_Prompts" + } + ], + "https://github.com/rubenvillarreal/ComfyUI_PoseAlign": [ + [ + "PoseAlignTwoToOne", + "PoseViewer" + ], + { + "title_aux": "ComfyUI_PoseAlign" + } + ], + "https://github.com/rubi-du/ComfyUI-BiRefNet-Super": [ + [ + "BiRefNet_Lite", + "BiRefNet_Super", + "BiRefNet_onnx" + ], + { + "title_aux": "ComfyUI-BiRefNet-lite" + } + ], + "https://github.com/rubi-du/ComfyUI-Flux-Inpainting": [ + [ + "Flux Inpainting", + "FluxGuffInpainting", + "FluxInpainting", + "FluxSimpleInpainting", + "FluxTransformerInpainting", + "FluxVAELoader" + ], + { + "title_aux": "ComfyUI-Flux-Inpainting" + } + ], + "https://github.com/rubi-du/ComfyUI-ICC-nodes": [ + [ + "LoadImageICC", + "PreviewImageICC", + "SaveImageICC" + ], + { + "title_aux": "ComfyUI-ICC-nodes" + } + ], "https://github.com/rui40000/RUI-Nodes": [ [ "ABCondition", @@ -9973,12 +37140,491 @@ "title_aux": "RUI-Nodes" } ], - "https://github.com/s1dlx/comfy_meh/raw/main/meh.py": [ + "https://github.com/ruiqutech/ComfyUI-RuiquNodes": [ [ - "MergingExecutionHelper" + "EvaluateListMultiple1", + "EvaluateListMultiple3", + "EvaluateListMultiple6", + "EvaluateListMultiple9", + "EvaluateMultiple1", + "EvaluateMultiple3", + "EvaluateMultiple6", + "EvaluateMultiple9", + "ImageDilate", + "ImageErode", + "ListPath", + "MaskDilate", + "MaskErode", + "PreviewMask", + "RangeSplit", + "SaveMask", + "StringAsAny", + "StringConcat1", + "StringConcat3", + "StringConcat6", + "StringConcat9", + "StringPathStem", + "TermsToList", + "VAEDecodeSave" ], { - "title_aux": "comfy_meh" + "title_aux": "RuiquNodes for ComfyUI" + } + ], + "https://github.com/runtime44/comfyui_r44_nodes": [ + [ + "Runtime44ColorMatch", + "Runtime44DynamicKSampler", + "Runtime44FilmGrain", + "Runtime44ImageEnhance", + "Runtime44ImageOverlay", + "Runtime44ImageResizer", + "Runtime44ImageToNoise", + "Runtime44IterativeUpscaleFactor", + "Runtime44MaskSampler", + "Runtime44TiledMaskSampler", + "Runtime44Upscaler" + ], + { + "title_aux": "Runtime44 ComfyUI Nodes" + } + ], + "https://github.com/ruucm/ruucm-comfy": [ + [ + "BatchAverageImage", + "LoadExternalLoraModelOnly", + "RuucmShareScreen" + ], + { + "nodename_pattern": " \\(ruucm\\)$", + "title_aux": "Ruucm's ComfyUI Nodes" + } + ], + "https://github.com/ryanontheinside/ComfyUI-DeepLiveCam": [ + [ + "DeepLiveCamNode" + ], + { + "title_aux": "Deep Live Cam for ComfyUI" + } + ], + "https://github.com/ryanontheinside/ComfyUI_ControlFreak": [ + [ + "ControlFreak" + ], + { + "title_aux": "Control Freak for ComfyUI" + } + ], + "https://github.com/ryanontheinside/ComfyUI_Doom": [ + [ + "Doom" + ], + { + "title_aux": "Doom" + } + ], + "https://github.com/ryanontheinside/ComfyUI_EfficientTAM": [ + [ + "EfficientTAMLoader", + "EfficientTAMPredictor" + ], + { + "title_aux": "ComfyUI-EfficientTAM" + } + ], + "https://github.com/ryanontheinside/ComfyUI_ProfilerX": [ + [ + "CATEGORY", + "ExecutionTracker", + "FUNCTION", + "INPUT_TYPES", + "OUTPUT_NODE", + "ProfilerX", + "RETURN_TYPES" + ], + { + "title_aux": "ComfyUI_ProfilerX" + } + ], + "https://github.com/ryanontheinside/ComfyUI_RealtimeNodes": [ + [ + "BlendshapeControlFloat", + "BlendshapeControlInt", + "BlendshapeTrigger", + "CompareMediaPipeEmbeddings", + "CoordinateConverter", + "FaceDetectionToMask", + "FaceLandmarkPosition", + "FaceTextureWarp", + "HandLandmarkPosition", + "HeadPoseControlFloat", + "HeadPoseControlInt", + "HeadPoseTrigger", + "MaskFromFaceLandmarks", + "MaskFromHandLandmarks", + "MaskFromPoseLandmarks", + "MediaPipeFaceDetector", + "MediaPipeFaceDetectorModelLoader", + "MediaPipeFaceLandmarker", + "MediaPipeFaceLandmarkerModelLoader", + "MediaPipeFaceStylizer", + "MediaPipeFaceStylizerModelLoader", + "MediaPipeGestureRecognizer", + "MediaPipeGestureRecognizerModelLoader", + "MediaPipeHandLandmarker", + "MediaPipeHandLandmarkerModelLoader", + "MediaPipeHolisticLandmarker", + "MediaPipeHolisticVisualizer", + "MediaPipeImageEmbedder", + "MediaPipeImageEmbedderModelLoader", + "MediaPipeImageSegmenter", + "MediaPipeImageSegmenterModelLoader", + "MediaPipeInteractiveSegmenter", + "MediaPipeInteractiveSegmenterModelLoader", + "MediaPipeObjectDetector", + "MediaPipeObjectDetectorModelLoader", + "MediaPipePoseLandmarker", + "MediaPipePoseLandmarkerModelLoader", + "Point2D", + "PointList", + "PoseLandmarkPosition", + "RTCoordinateConverter", + "RTDrawLines", + "RTDrawPoints", + "RTDrawPolygon", + "ReshapeMediaPipeEmbedding", + "SelectMediaPipeSegment", + "VisualizeFaceDetections", + "VisualizeFaceLandmarks", + "VisualizeGestureRecognitions", + "VisualizeHandLandmarks", + "VisualizeObjectDetections", + "VisualizePoseLandmarks" + ], + { + "title_aux": "Nodes for use with real-time applications of ComfyUI" + } + ], + "https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside": [ + [ + "ACEStepAnalyzeLatent", + "ACEStepAudioPostProcessor", + "ACEStepExtendGuider", + "ACEStepHybridGuider", + "ACEStepMaskVisualizer", + "ACEStepRepaintGuider", + "ACEStepTimeRange", + "AdvancedLuminanceMask", + "AnimatedFeaturePreview", + "AreaFeatureNode", + "AudioChannelMerge", + "AudioChannelSplit", + "AudioDither", + "AudioFade", + "AudioFeatureExtractor", + "AudioFeatureVisualizer", + "AudioFilter", + "AudioGain", + "AudioInfo", + "AudioLatentBlend", + "AudioLatentInfo", + "AudioMaskAnalyzer", + "AudioPad", + "AudioPitchShift", + "AudioRegionMask", + "AudioResample", + "AudioSeparatorSimple", + "AudioSubtract", + "AudioTemporalMask", + "AudioTimeStretch", + "AudioTrim", + "AudioVolumeNormalization", + "Audio_Combine", + "Audio_Concatenate", + "BrightnessFeatureNode", + "ColorFeatureNode", + "Color_Picker", + "ContextModifier", + "DepthBlender", + "DepthFeatureNode", + "DepthInjection", + "DepthMapProtrusion", + "DepthRippleEffect", + "DepthShapeModifier", + "DepthShapeModifierPrecise", + "Doom_", + "DownloadCREPEModel", + "DownloadOpenUnmixModel", + "DrawableFeatureNode", + "DyeImage", + "EffectVisualizer", + "EmbeddingGuidedLatentInterpolate", + "EmitterEmissionRateModulation", + "EmitterMovement", + "EmptyImageAndMaskFromAudio", + "EmptyImageFromAudio", + "EmptyMaskFromAudio", + "FeatureAccumulate", + "FeatureCombine", + "FeatureContiguousInterpolate", + "FeatureFade", + "FeatureInfoNode", + "FeatureInterpolateMulti", + "FeatureInterpolator", + "FeatureMath", + "FeatureMixer", + "FeatureOscillator", + "FeaturePeakDetector", + "FeatureRebase", + "FeatureRenormalize", + "FeatureScaler", + "FeatureSmoothing", + "FeatureToFilteredList", + "FeatureToFlexFloatParam", + "FeatureToFlexIntParam", + "FeatureToFloat", + "FeatureToLatentKeyframe", + "FeatureToMask", + "FeatureToSplineData", + "FeatureToTimestepKeyframe", + "FeatureToWeightsStrategy", + "FeatureTruncateOrExtend", + "FlexAudioPitchShift", + "FlexAudioTimeStretch", + "FlexAudioVisualizerCircular", + "FlexAudioVisualizerContour", + "FlexAudioVisualizerLine", + "FlexFeatureAttentionControl", + "FlexImageBloom", + "FlexImageChromaticAberration", + "FlexImageColorGrade", + "FlexImageContrast", + "FlexImageDepthWarp", + "FlexImageEdgeDetect", + "FlexImageGlitch", + "FlexImageHorizontalToVertical", + "FlexImageHueShift", + "FlexImageKaleidoscope", + "FlexImageParallax", + "FlexImagePixelate", + "FlexImagePosterize", + "FlexImageTiltShift", + "FlexImageTransform", + "FlexImageVignette", + "FlexImageWarp", + "FlexLatentBlend", + "FlexLatentInterpolate", + "FlexLatentNoise", + "FlexMaskBinary", + "FlexMaskDepthChamber", + "FlexMaskEmanatingRings", + "FlexMaskInterpolate", + "FlexMaskMath", + "FlexMaskMorph", + "FlexMaskOpacity", + "FlexMaskRandomShapes", + "FlexMaskTransform", + "FlexMaskVoronoiScheduled", + "FlexMaskWarp", + "FlexMaskWavePropagation", + "FlexVideoDirection", + "FlexVideoFrameBlend", + "FlexVideoSeek", + "FlexVideoSpeed", + "FlexlatentAudioBlend", + "FloatFeatureNode", + "FrequencyFilterCustom", + "FrequencyFilterPreset", + "FrequencyRange", + "GravityWell", + "ImageCASBatch", + "ImageChunk", + "ImageDifference", + "ImageIndexSelect", + "ImageInterval", + "ImageIntervalSelectPercentage", + "ImageScaleToTarget", + "Image_Shuffle", + "Knob", + "LatentFrequencyBlender", + "LocationFromMask", + "LocationFromPoint", + "LocationTransform", + "MIDIFeatureExtractor", + "MIDILoader", + "MIDIToAudio", + "ManualFeatureFromPipe", + "ManualFeatureNode", + "ManualFeaturePipe", + "ManualWhisperAlignmentData", + "MaskCompositePlus", + "MaskMath", + "MaskMorph", + "MaskRings", + "MaskToAudioMask", + "MaskTransform", + "MaskWarp", + "MotionFeatureNode", + "MovingShape", + "OpticalFlowDirectionMask", + "OpticalFlowMaskModulation", + "OpticalFlowParticleSystem", + "ParticleColorModulation", + "ParticleEmissionMask", + "ParticleEmitter", + "ParticleSizeModulation", + "ParticleSpeedModulation", + "PitchFeatureExtractor", + "PitchRange", + "PitchRangeByNoteNode", + "PitchRangePreset", + "PitchVisualizer", + "PoseInterpolator", + "PreviewFeature", + "ProximityFeatureNode", + "ProximityVisualizer", + "RhythmFeatureExtractor", + "SplineFeatureModulator", + "SplineRhythmModulator", + "SpringJointSetting", + "StaticBody", + "SwapDevice", + "TextMaskNode", + "TimeFeatureNode", + "TranslucentComposite", + "TriggerBuilder", + "VideoChunk", + "Vortex", + "WhisperAutoAdjust", + "WhisperFeature", + "WhisperTextRenderer", + "WhisperTimeAdjuster", + "WhisperToPromptTravel", + "_mfc" + ], + { + "title_aux": "RyanOnTheInside" + } + ], + "https://github.com/ryanontheinside/ComfyUI_SuperResolution": [ + [ + "SuperResolutionModelLoader", + "SuperResolutionUpscale" + ], + { + "title_aux": "ComfyUI_SuperResolution" + } + ], + "https://github.com/rzgarespo/ComfyUI-qwen-image-size-picker": [ + [ + "QwenImageSize" + ], + { + "title_aux": "ComfyUI-Qwen-Image-Size-Picker" + } + ], + "https://github.com/s9roll7/comfyui_cotracker_node": [ + [ + "CoTrackerNode", + "GridPointGeneratorNode", + "PerlinCoordinateRandomizerNode", + "XYMotionAmplifierNode" + ], + { + "title_aux": "Comfyui CoTracker Node" + } + ], + "https://github.com/saftle/uber_comfy_nodes": [ + [ + "ControlNet Selector", + "ControlNetOptionalLoader", + "DiffusersSelector", + "ModelSimilarityNode", + "MultiInputVariableRewrite", + "SaveImageJPGNoMeta", + "TextRegexOperations", + "VideoSegmentCalculator" + ], + { + "title_aux": "Suplex Misc ComfyUI Nodes" + } + ], + "https://github.com/sakura1bgx/ComfyUI_FlipStreamViewer": [ + [ + "FlipStreamBatchPrompt", + "FlipStreamChat", + "FlipStreamFileSelect_AnimateDiffModel", + "FlipStreamFileSelect_Checkpoints", + "FlipStreamFileSelect_ControlNetModel", + "FlipStreamFileSelect_Input", + "FlipStreamFileSelect_Output", + "FlipStreamFileSelect_TensorRT", + "FlipStreamFileSelect_VAE", + "FlipStreamFilmVfi", + "FlipStreamGate", + "FlipStreamGetParam", + "FlipStreamGetPreviewRoi", + "FlipStreamImageSize", + "FlipStreamInputBox", + "FlipStreamLogBox", + "FlipStreamParseJson", + "FlipStreamPreviewBox", + "FlipStreamRembg", + "FlipStreamScreenGrabber", + "FlipStreamSection", + "FlipStreamSegMask", + "FlipStreamSelectBox_Samplers", + "FlipStreamSelectBox_Scheduler", + "FlipStreamSetMessage", + "FlipStreamSetParam", + "FlipStreamSetUpdateAndReload", + "FlipStreamSlider", + "FlipStreamSource", + "FlipStreamSwitch", + "FlipStreamSwitchImage", + "FlipStreamSwitchLatent", + "FlipStreamTextBox", + "FlipStreamTextReplace", + "FlipStreamVideoInput", + "FlipStreamViewer" + ], + { + "title_aux": "ComfyUI_FlipStreamViewer" + } + ], + "https://github.com/sanbuphy/ComfyUI-AudioLDM": [ + [ + "AudioLDM", + "PreviewAudioLDM", + "SaveAudioLDM" + ], + { + "title_aux": "ComfyUI-AudioLDM" + } + ], + "https://github.com/santiagosamuel3455/ComfyUI-GeminiImageToPrompt": [ + [ + "DeepseekR1KlingAINode", + "GeminiImageToPromptNode", + "GeminiTextToCinematicPromptNode", + "ShowGeneratedText", + "ShowTextNode" + ], + { + "title_aux": "ComfyUI-GeminiImageToPrompt" + } + ], + "https://github.com/scraed/LanPaint": [ + [ + "LanPaint_KSampler", + "LanPaint_KSamplerAdvanced", + "LanPaint_MaskBlend", + "LanPaint_SamplerCustom", + "LanPaint_SamplerCustomAdvanced" + ], + { + "title_aux": "LanPaint" } ], "https://github.com/sdfxai/SDFXBridgeForComfyUI": [ @@ -9989,6 +37635,22 @@ "title_aux": "SDFXBridgeForComfyUI - ComfyUI Custom Node for SDFX Integration" } ], + "https://github.com/sdtana/ComfyUI-FDG": [ + [ + "FDGNode" + ], + { + "title_aux": "ComfyUI-FDG" + } + ], + "https://github.com/seanjang990/comfyui-document-auto-crop": [ + [ + "CropRotateNode" + ], + { + "title_aux": "ComfyUI Document Auto Crop Node" + } + ], "https://github.com/seanlynch/comfyui-optical-flow": [ [ "Apply optical flow", @@ -10010,6 +37672,29 @@ "title_aux": "SRL's nodes" } ], + "https://github.com/sebord/ComfyUI-LMCQ": [ + [ + "LmcqCodeDecryptionLoader", + "LmcqCodeEncryption", + "LmcqDeepGen", + "LmcqDeepLoader", + "LmcqGetMachineCode", + "LmcqImageSaver", + "LmcqImageSaverTransit", + "LmcqImageSaverWeb", + "LmcqInputValidator", + "LmcqLoadFluxNF4Checkpoint", + "LmcqRuntimeLoraDecryption", + "LmcqRuntimeLoraEncryption", + "LmcqRuntimeModelDecryption", + "LmcqRuntimeModelEncryption", + "LmcqRuntimeWorkflowDecryption", + "LmcqRuntimeWorkflowEncryption" + ], + { + "title_aux": "ComfyUI-LMCQ" + } + ], "https://github.com/sergekatzmann/ComfyUI_Nimbus-Pack": [ [ "AdjustAndRoundDimensions", @@ -10022,6 +37707,35 @@ "title_aux": "ComfyUI_Nimbus-Pack" } ], + "https://github.com/sh570655308/ComfyUI-GigapixelAI": [ + [ + "GigapixelAI", + "GigapixelModelSettings", + "GigapixelUpscaleSettings" + ], + { + "title_aux": "ComfyUI-GigapixelAI" + } + ], + "https://github.com/sh570655308/ComfyUI-TopazVideoAI": [ + [ + "TopazUpscaleParams", + "TopazVideoAI" + ], + { + "title_aux": "ComfyUI-TopazVideoAI" + } + ], + "https://github.com/shabri-arrahim/ComfyUI-Safety-Checker": [ + [ + "CompVisSafetyChecker", + "FalconsAISafetyChecker", + "loadImageBase64" + ], + { + "title_aux": "ComfyUI Safety Checker" + } + ], "https://github.com/shadowcz007/comfyui-Image-reward": [ [ "ImageBatchToList_", @@ -10040,18 +37754,43 @@ "title_aux": "Consistency Decoder" } ], + "https://github.com/shadowcz007/comfyui-edit-mask": [ + [ + "EditMask" + ], + { + "title_aux": "comfyui-edit-mask" + } + ], + "https://github.com/shadowcz007/comfyui-liveportrait": [ + [ + "ExpressionEditor_", + "ExpressionVideo2VideoNode", + "ExpressionVideoNode", + "FaceCropInfo", + "LivePortraitNode", + "LivePortraitVideoNode", + "Retargeting" + ], + { + "title_aux": "comfyui-liveportrait" + } + ], "https://github.com/shadowcz007/comfyui-mixlab-nodes": [ [ "3DImage", + "AnalyzeAudio", "AppInfo", "ApplyVisualStylePrompting_", "AreaToMask", + "AudioPlay", "CenterImage", - "CharacterInText", - "ChatGPTOpenAI", "CkptNames_", "Color", + "ComparingTwoFrames_", "CompositeImages_", + "CreateJsonNode", + "DepthViewer", "DynamicDelayProcessor", "EmbeddingPrompt", "EnhanceImage", @@ -10061,25 +37800,25 @@ "FloatingVideo", "Font", "GLIGENTextBoxApply_Advanced", - "GamePal", "GetImageSize_", "GradientImage", "GridDisplayAndSave", "GridInput", "GridOutput", + "ImageBatchToList_", "ImageColorTransfer", "ImageCropByAlpha", - "ImageListReplace_", + "ImageListToBatch_", "ImagesPrompt_", "IncrementingListNode_", "IntNumber", "JoinWithDelimiter", + "KeyInput", "LimitNumber", "ListSplit_", "LoadImagesFromPath", "LoadImagesFromURL", "LoadImagesToBatch", - "LoadVideoAndSegment_", "LoraNames_", "LoraPrompt", "MaskListMerge_", @@ -10090,6 +37829,8 @@ "NewLayer", "NoiseImage", "OutlineMask", + "P5Input", + "PreviewMask_", "PromptImage", "PromptSimplification", "PromptSlide", @@ -10101,7 +37842,6 @@ "ScreenShare", "Seed_", "ShowLayer", - "ShowTextForGPT", "SmoothMask", "SpeechRecognition", "SpeechSynthesis", @@ -10116,18 +37856,39 @@ "TESTNODE_TOKEN", "TextImage", "TextInput_", - "TextSplitByDelimiter", "TextToNumber", "TransparentImage", "VAEDecodeConsistencyDecoder", - "VAEEncodeForInpaint_Frames", - "VAELoaderConsistencyDecoder", - "VideoCombine_Adv" + "VAELoaderConsistencyDecoder" ], { "title_aux": "comfyui-mixlab-nodes" } ], + "https://github.com/shadowcz007/comfyui-sound-lab": [ + [ + "AudioPlay", + "Musicgen_", + "StableAudio_" + ], + { + "title_aux": "comfyui-sound-lab" + } + ], + "https://github.com/shadowcz007/comfyui-try-on": [ + [ + "CatVTONNode", + "FashionClothMask", + "FashionClothMask2" + ], + { + "author": "chflame", + "description": "CatVTON warpper for ComfyUI", + "nickname": "CatVTON_Wrapper", + "title": "CatVTON_Wrapper", + "title_aux": "comfyui-try-on" + } + ], "https://github.com/shadowcz007/comfyui-ultralytics-yolo": [ [ "DetectByLabel" @@ -10136,6 +37897,57 @@ "title_aux": "comfyui-ultralytics-yolo" } ], + "https://github.com/shahkoorosh/ComfyUI-KGnodes": [ + [ + "CustomResolutionLatentNode", + "FaceDetectorAndCropper", + "ImageScaleToSide", + "OverlayRGBAonRGB", + "StyleSelector", + "TextBehindImage" + ], + { + "author": "ShahKoorosh", + "description": "This Custom node pack offers various nodes to make it easier to use ComfyUI.", + "nickname": "KGnodes", + "title": "ComfyUI-KGnodes", + "title_aux": "ComfyUI-KGnodes" + } + ], + "https://github.com/shahkoorosh/ComfyUI-PersianText": [ + [ + "PersianText" + ], + { + "author": "shahkoorosh", + "description": "A powerful ComfyUI node for rendering text with advanced styling options, including full support for Persian/Farsi and Arabic scripts.", + "nickname": "PersianText", + "title": "ComfyUI-PersianText", + "title_aux": "ComfyUI-PersianText" + } + ], + "https://github.com/shenduldh/ComfyUI-Lightning": [ + [ + "ApplyFBCacheAndSkipBlocks", + "ApplyMBCacheAndSkipBlocks", + "ApplyMBCacheAndSkipBlocksForSana", + "ApplySageAttention", + "ApplySpargeAttn", + "ApplyTeaCacheAndSkipBlocks", + "ApplyToCa", + "ApplyTokenMerging", + "CompileAndQuantizeModel", + "SanaCLIPLoader", + "SanaDiffusionLoader", + "SanaEmptyLatentImage", + "SanaTextEncode", + "SanaVAELoader", + "SaveSpargeAttnHyperparams" + ], + { + "title_aux": "ComfyUI-Lightning" + } + ], "https://github.com/shi3z/ComfyUI_Memeplex_DALLE": [ [ "DallERender", @@ -10149,9 +37961,22 @@ "title_aux": "ComfyUI_Memeplex_DALLE" } ], + "https://github.com/shiertier/ComfyUI-TeaCache-lumina2": [ + [ + "TeaCacheForLumina2", + "TeaCacheForLuminaAuto", + "TeaCacheForLuminaNext" + ], + { + "title_aux": "ComfyUI-TeaCache-Lumina" + } + ], "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": [ [ "PhotoMakerEncodePlus", + "PhotoMakerInsightFaceLoader", + "PhotoMakerLoaderPlus", + "PhotoMakerLoraLoaderPlus", "PhotoMakerStyles", "PrepImagesForClipVisionFromPath" ], @@ -10162,6 +37987,7 @@ "https://github.com/shiimizu/ComfyUI-TiledDiffusion": [ [ "NoiseInversion", + "SpotDiffusionParams_TiledDiffusion", "TiledDiffusion", "VAEDecodeTiled_TiledDiffusion", "VAEEncodeTiled_TiledDiffusion" @@ -10170,6 +37996,14 @@ "title_aux": "Tiled Diffusion & VAE for ComfyUI" } ], + "https://github.com/shiimizu/ComfyUI-semantic-aware-guidance": [ + [ + "SemanticAwareGuidance" + ], + { + "title_aux": "Semantic-aware Guidance (S-CFG)" + } + ], "https://github.com/shiimizu/ComfyUI_smZNodes": [ [ "smZ CLIPTextEncode", @@ -10179,29 +38013,75 @@ "title_aux": "smZNodes" } ], - "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage": [ + "https://github.com/shinich39/comfyui-break-workflow": [ [ - "SDXL Empty Latent Image" + "BreakWorkflow" ], { - "title_aux": "ComfyUI-SDXL-EmptyLatentImage" + "author": "shinich39", + "description": "Break the execution, save the incompleted image then continue later.", + "nickname": "comfyui-break-workflow", + "title": "comfyui-break-workflow", + "title_aux": "comfyui-break-workflow" } ], - "https://github.com/shingo1228/ComfyUI-send-eagle-slim": [ + "https://github.com/shinich39/comfyui-dynamic-routes": [ [ - "Send Eagle with text", - "Send Webp Image to Eagle" + "DynamicRoutes" ], { - "title_aux": "ComfyUI-send-Eagle(slim)" + "author": "shinich39", + "description": "Shuffle nodes after queue execution.", + "nickname": "comfyui-dynamic-routes", + "title": "comfyui-dynamic-routes", + "title_aux": "comfyui-dynamic-routes" } ], - "https://github.com/shockz0rz/ComfyUI_InterpolateEverything": [ + "https://github.com/shinich39/comfyui-get-meta": [ [ - "OpenposePreprocessorInterpolate" + "GetBooleanFromImage", + "GetComboFromImage", + "GetFloatFromImage", + "GetIntFromImage", + "GetNodesFromImage", + "GetPromptFromImage", + "GetStringFromImage", + "GetWorkflowFromImage" ], { - "title_aux": "InterpolateEverything" + "author": "shinich39", + "description": "Get metadata from image.", + "nickname": "comfyui-get-meta", + "title": "comfyui-get-meta", + "title_aux": "comfyui-get-meta" + } + ], + "https://github.com/shinich39/comfyui-no-one-above-me": [ + [ + "NoOneAboveMe" + ], + { + "author": "shinich39", + "description": "Fix node to top.", + "nickname": "comfyui-no-one-above-me", + "title": "comfyui-no-one-above-me", + "title_aux": "comfyui-no-one-above-me" + } + ], + "https://github.com/shinyakidoguchi301/comfyui-lora-tag-loader": [ + [ + "LoRA_TagLoader" + ], + { + "title_aux": "shinyakidoguchi301/LoRA Tag Loader for ComfyUI" + } + ], + "https://github.com/shobhitic/ComfyUI-PlusMinusTextClip": [ + [ + "PlusMinusTextClip" + ], + { + "title_aux": "PlusMinusTextClip - Single node for Positive and Negative Prompts" } ], "https://github.com/shockz0rz/comfy-easy-grids": [ @@ -10223,40 +38103,75 @@ "title_aux": "comfy-easy-grids" } ], - "https://github.com/siliconflow/onediff_comfy_nodes": [ + "https://github.com/silveroxides/ComfyUI-ModelUtils": [ [ - "CompareModel", - "ModelGraphLoader", - "ModelGraphSaver", - "ModelSpeedup", - "ModuleDeepCacheSpeedup", - "OneDiffCheckpointLoaderSimple", - "OneDiffControlNetLoader", - "OneDiffDeepCacheCheckpointLoaderSimple", - "SVDSpeedup", - "ShowImageDiff", - "VaeGraphLoader", - "VaeGraphSaver", - "VaeSpeedup" + "CLIPMetaKeys", + "CheckpointMetaKeys", + "LoRAMetaKeys", + "UNetMetaKeys" ], { - "title_aux": "OneDiff Nodes" + "title_aux": "Model Utility Toolkit" + } + ], + "https://github.com/silveroxides/ComfyUI_EmbeddingToolkit": [ + [ + "SaveA1111WeightedEmbeddings", + "SaveTokenEmbeddings", + "SaveWeightedEmbeddings", + "SliceExistingEmbedding" + ], + { + "title_aux": "ComfyUI_EmbeddingToolkit" + } + ], + "https://github.com/silveroxides/ComfyUI_FDGuidance": [ + [ + "FDG_APG_Patcher", + "FrequencyDecoupledGuidance" + ], + { + "title_aux": "ComfyUI_FDGuidance" + } + ], + "https://github.com/silveroxides/ComfyUI_PowerShiftScheduler": [ + [ + "PowerShiftScheduler" + ], + { + "title_aux": "ComfyUI Power Shift Scheduler" + } + ], + "https://github.com/silveroxides/ComfyUI_SigmoidOffsetScheduler": [ + [ + "SigmoidOffsetScheduler" + ], + { + "title_aux": "ComfyUI Sigmoid Offset Scheduler" } ], "https://github.com/sipherxyz/comfyui-art-venture": [ [ + "AV_AwsBedrockClaudeApi", + "AV_AwsBedrockMistralApi", "AV_CheckpointMerge", "AV_CheckpointModelsToParametersPipe", "AV_CheckpointSave", + "AV_ClaudeApi", "AV_ControlNetEfficientLoader", "AV_ControlNetEfficientLoaderAdvanced", "AV_ControlNetEfficientStacker", "AV_ControlNetEfficientStackerSimple", "AV_ControlNetLoader", "AV_ControlNetPreprocessor", + "AV_LLMApiConfig", + "AV_LLMChat", + "AV_LLMCompletion", + "AV_LLMMessage", "AV_LoraListLoader", "AV_LoraListStacker", "AV_LoraLoader", + "AV_OpenAIApi", "AV_ParametersPipeToCheckpointModels", "AV_ParametersPipeToPrompts", "AV_PromptsToParametersPipe", @@ -10266,10 +38181,13 @@ "BLIPCaption", "BLIPLoader", "BooleanPrimitive", + "CheckpointNameSelector", "ColorBlend", "ColorCorrect", "DeepDanbooruCaption", "DependenciesEdit", + "DownloadAndLoadBlip", + "DownloadISNetModel", "Fooocus_KSampler", "Fooocus_KSamplerAdvanced", "GetBoolFromJson", @@ -10293,7 +38211,9 @@ "LaMaInpaint", "LoadImageAsMaskFromUrl", "LoadImageFromUrl", + "LoadJsonFromText", "LoadJsonFromUrl", + "LoadLaMaModel", "MergeModels", "NumberScaler", "OverlayInpaintedImage", @@ -10307,12 +38227,42 @@ "SDXLPromptStyler", "SeedSelector", "StringToInt", - "StringToNumber" + "StringToNumber", + "TextRandomMultiline", + "TextSwitchCase" ], { "title_aux": "comfyui-art-venture" } ], + "https://github.com/sipie800/ComfyUI-PuLID-Flux-Enhanced": [ + [ + "ApplyPulidFlux", + "PulidFluxEvaClipLoader", + "PulidFluxInsightFaceLoader", + "PulidFluxModelLoader" + ], + { + "title_aux": "ComfyUI-PuLID-Flux-Enhanced" + } + ], + "https://github.com/sittere/ComfyUI-YK_Line-loading": [ + [ + "MultiTextLoader" + ], + { + "title_aux": "ComfyUI-YK Line loading" + } + ], + "https://github.com/sjh00/ComfyUI-LoadImageWithInfo": [ + [ + "LoadImageWithInfo", + "SaveImageWithInfo" + ], + { + "title_aux": "ComfyUI LoadImageWithInfo" + } + ], "https://github.com/skfoo/ComfyUI-Coziness": [ [ "LoraTextExtractor-b1f83aa2", @@ -10322,6 +38272,94 @@ "title_aux": "ComfyUI-Coziness" } ], + "https://github.com/skycoder182/comfyui-filename-tools": [ + [ + "ExtractAndTrimFilename", + "LoadImageWithFilename" + ], + { + "title_aux": "Filename Tools" + } + ], + "https://github.com/skycoder182/comfyui-skycoder-tools": [ + [ + "Aspect_Ratio_and_Tile_size_calculator", + "BLIP2Captioning", + "BooleanToggle", + "ConcatenateAndTestIfEmpty", + "DirectoryImageInfo", + "DirectoryImageLoader", + "ImageBasicNode" + ], + { + "title_aux": "Skycoder Tools" + } + ], + "https://github.com/slvslvslv/ComfyUI-SmartHelperNodes": [ + [ + "SmartFormatString", + "SmartFormatString10", + "SmartHVLoraSelect", + "SmartHVLoraStack", + "SmartLoadLoRA", + "SmartModelOrLoraToString", + "SmartPrompt", + "SmartRemoveComments", + "SmartSaveText", + "SmartShowAnything" + ], + { + "title_aux": "ComfyUI Smart Helper Nodes" + } + ], + "https://github.com/slvslvslv/ComfyUI-SmartImageTools": [ + [ + "SmartBackgroundRemove", + "SmartDrawPoints", + "SmartGenerateImage", + "SmartImagePaletteConvert", + "SmartImagePaletteExtract", + "SmartImagePoint", + "SmartImagePreviewScaled", + "SmartImageRegion", + "SmartImagesProcessor", + "SmartPoint", + "SmartPointSet", + "SmartPointSetMerge", + "SmartPreviewPalette", + "SmartSaveAnimatedPNG", + "SmartSavePNG", + "SmartSemiTransparenceRemove", + "SmartVideoPreviewScaled" + ], + { + "title_aux": "ComfyUI-SmartImageTools" + } + ], + "https://github.com/slyt/comfyui-ollama-nodes": [ + [ + "BooleanToString", + "DownloadHuggingfaceModel", + "FloatToString", + "GenerateOllama", + "IntToString", + "ListModels", + "ListToString", + "PullModel" + ], + { + "title_aux": "comfyui-ollama-nodes" + } + ], + "https://github.com/sm079/ComfyUI-Face-Detection": [ + [ + "FaceCombine", + "FaceDetection" + ], + { + "title_aux": "ComfyUI-Face-Detection" + } + ], "https://github.com/smagnetize/kb-comfyui-nodes": [ [ "SingleImageDataUrlLoader" @@ -10330,8 +38368,69 @@ "title_aux": "kb-comfyui-nodes" } ], + "https://github.com/smlbiobot/ComfyUI-Flux-Replicate-API": [ + [ + "SML_FluxProUltra_Replicate_Standalone", + "SML_FluxPro_Replicate_Standalone" + ], + { + "title_aux": "ComfyUI-Flux-Replicate-API" + } + ], + "https://github.com/smlbiobot/sml-comfyui-prompt-expansion": [ + [ + "SML_Prompt_Generator" + ], + { + "title_aux": "sml-comfyui-prompt-expansion" + } + ], + "https://github.com/smthemex/ComfyUI_AniCrafter": [ + [ + "AniCrafterLoader", + "AniCrafterPreImage", + "AniCrafterPreText", + "AniCrafterPreVideo", + "AniCrafterSampler" + ], + { + "title_aux": "ComfyUI_AniCrafter" + } + ], + "https://github.com/smthemex/ComfyUI_AnyDoor": [ + [ + "AnyDoor_LoadModel", + "AnyDoor_img2img" + ], + { + "title_aux": "ComfyUI_AnyDoor" + } + ], + "https://github.com/smthemex/ComfyUI_CSD_MT": [ + [ + "CSDMTLoader", + "CSDMTSampler" + ], + { + "title_aux": "ComfyUI_CSD_MT" + } + ], + "https://github.com/smthemex/ComfyUI_CSGO_Wrapper": [ + [ + "Blip_Loader", + "CSGO_Loader", + "CSGO_Sampler" + ], + { + "title_aux": "ComfyUI_CSGO_Wrapper" + } + ], "https://github.com/smthemex/ComfyUI_ChatGLM_API": [ [ + "Glm_4_9b_Chat", + "Glm_4v_9b", + "Glm_Lcoal_Or_Repo", + "ZhipuaiApi_Character", "ZhipuaiApi_Txt", "ZhipuaiApi_img" ], @@ -10339,24 +38438,504 @@ "title_aux": "ComfyUI_ChatGLM_API" } ], + "https://github.com/smthemex/ComfyUI_CustomNet": [ + [ + "CustomNet_LoadModel", + "CustomNet_Sampler" + ], + { + "title_aux": "ComfyUI_CustomNet" + } + ], + "https://github.com/smthemex/ComfyUI_DICE_Talk": [ + [ + "Dice_Talk_Loader", + "Dice_Talk_PreData", + "Dice_Talk_Sampler" + ], + { + "title_aux": "ComfyUI_DICE_Talk" + } + ], + "https://github.com/smthemex/ComfyUI_DeepFakeDefenders": [ + [ + "DeepFakeDefender_Loader", + "DeepFakeDefender_Sampler" + ], + { + "title_aux": "ComfyUI_DeepFakeDefenders" + } + ], + "https://github.com/smthemex/ComfyUI_Demucs": [ + [ + "Demucs_Loader", + "Demucs_Sampler" + ], + { + "title_aux": "ComfyUI_Demucs" + } + ], + "https://github.com/smthemex/ComfyUI_Diffree": [ + [ + "Diffree_Model_Loader", + "Diffree_Sampler" + ], + { + "title_aux": "ComfyUI_Diffree" + } + ], + "https://github.com/smthemex/ComfyUI_DiffuEraser": [ + [ + "DiffuEraserLoader", + "DiffuEraserSampler" + ], + { + "title_aux": "ComfyUI_DiffuEraser" + } + ], + "https://github.com/smthemex/ComfyUI_EchoMimic": [ + [ + "Echo_LoadModel", + "Echo_Predata", + "Echo_Sampler" + ], + { + "title_aux": "ComfyUI_EchoMimic" + } + ], + "https://github.com/smthemex/ComfyUI_Face_Anon_Simple": [ + [ + "Face_Anon_Simple_Align", + "Face_Anon_Simple_LoadModel", + "Face_Anon_Simple_Sampler" + ], + { + "title_aux": "ComfyUI_Face_Anon_Simple" + } + ], + "https://github.com/smthemex/ComfyUI_FoleyCrafter": [ + [ + "FoleyCrafter_LoadModel", + "FoleyCrafter_Sampler" + ], + { + "title_aux": "ComfyUI_FoleyCrafter" + } + ], + "https://github.com/smthemex/ComfyUI_FollowYourEmoji": [ + [ + "Emoji_Make_Temple", + "FollowYouEmoji_LoadModel", + "FollowYouEmoji_Sampler" + ], + { + "title_aux": "ComfyUI_FollowYourEmoji" + } + ], + "https://github.com/smthemex/ComfyUI_Hallo2": [ + [ + "HalloLoader", + "HalloPreImgAndAudio", + "HallosSampler", + "HallosUpscaleloader", + "HallosVideoUpscale" + ], + { + "title_aux": "ComfyUI_Hallo2" + } + ], + "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro": [ + [ + "HI_Diffusers_Model_Loader", + "Hi_Sampler" + ], + { + "title_aux": "ComfyUI_HiDiffusion_Pro" + } + ], + "https://github.com/smthemex/ComfyUI_HunyuanAvatar_Sm": [ + [ + "HY_Avatar_Loader", + "HY_Avatar_PreData", + "HY_Avatar_Sampler" + ], + { + "title_aux": "ComfyUI_HunyuanAvatar_Sm" + } + ], + "https://github.com/smthemex/ComfyUI_ID_Animator": [ + [ + "ID_Animator", + "ID_Repo_Choice" + ], + { + "title_aux": "ComfyUI_ID_Animator" + } + ], + "https://github.com/smthemex/ComfyUI_InstantIR_Wrapper": [ + [ + "InstantIR_Loader", + "InstantIR_Sampler" + ], + { + "author": "zhaoyafei", + "title_aux": "ComfyUI_InstantIR_Wrapper" + } + ], + "https://github.com/smthemex/ComfyUI_KV_Edit": [ + [ + "KV_Edit_Load", + "KV_Edit_PreData", + "KV_Edit_Sampler" + ], + { + "title_aux": "ComfyUI_KV_Edit" + } + ], + "https://github.com/smthemex/ComfyUI_Light_A_Video": [ + [ + "Light_A_Video_Loader", + "Light_A_Video_Sampler" + ], + { + "title_aux": "ComfyUI_Light_A_Video" + } + ], + "https://github.com/smthemex/ComfyUI_Llama3_8B": [ + [ + "ChatQA_1p5_8b", + "Local_Or_Repo_Choice", + "Meta_Llama3_8B", + "MiniCPM_Llama3_V25" + ], + { + "title_aux": "ComfyUI_Llama3_8B" + } + ], + "https://github.com/smthemex/ComfyUI_MS_Diffusion": [ + [ + "MS_Object_img_Batch", + "MSdiffusion_Model_Loader", + "MSdiffusion_Sampler" + ], + { + "title_aux": "ComfyUI_MS_Diffusion" + } + ], + "https://github.com/smthemex/ComfyUI_MangaNinjia": [ + [ + "MangaNinjiaLoader", + "MangaNinjiaSampler", + "MarkImageNode" + ], + { + "title_aux": "ComfyUI_MangaNinjia" + } + ], + "https://github.com/smthemex/ComfyUI_MooER": [ + [ + "MooER_LoadModel", + "MooER_Sampler" + ], + { + "title_aux": "ComfyUI_MooER" + } + ], + "https://github.com/smthemex/ComfyUI_ObjectClear": [ + [ + "ObjectClearBatch", + "ObjectClearLoader", + "ObjectClearSampler", + "ObjectClearVision" + ], + { + "title_aux": "ComfyUI_ObjectClear" + } + ], + "https://github.com/smthemex/ComfyUI_OmniParser": [ + [ + "OmniParser_Loader", + "OmniParser_Sampler" + ], + { + "title_aux": "ComfyUI_OmniParser" + } + ], + "https://github.com/smthemex/ComfyUI_OmniSVG": [ + [ + "OmniSVGLoader", + "OmniSVGSampler" + ], + { + "title_aux": "ComfyUI_OmniSVG" + } + ], + "https://github.com/smthemex/ComfyUI_PBR_Maker": [ + [ + "Load_MatForger", + "MatForger_Sampler" + ], + { + "title_aux": "ComfyUI_PBR_Maker" + } + ], "https://github.com/smthemex/ComfyUI_ParlerTTS": [ [ - "ModelDownload", - "PromptToAudio" + "ParlerTTS_LoadModel", + "ParlerTTS_Sampler" ], { "title_aux": "ComfyUI_ParlerTTS" } ], + "https://github.com/smthemex/ComfyUI_PartPacker": [ + [ + "PartPacker_Loader", + "PartPacker_Sampler" + ], + { + "title_aux": "ComfyUI_PartPacker" + } + ], + "https://github.com/smthemex/ComfyUI_Personalize_Anything": [ + [ + "Personalize_Anything_Load", + "Personalize_Anything_Sampler" + ], + { + "title_aux": "ComfyUI_Personalize_Anything" + } + ], + "https://github.com/smthemex/ComfyUI_PhotoDoodle": [ + [ + "PhotoDoodle_Loader", + "PhotoDoodle_Sampler" + ], + { + "title_aux": "ComfyUI_PhotoDoodle" + } + ], "https://github.com/smthemex/ComfyUI_Pic2Story": [ [ - "DownloadModel", - "Pic2Story" + "Pic2Story_Loader", + "Pic2Story_Sampler" ], { "title_aux": "ComfyUI_Pic2Story" } ], + "https://github.com/smthemex/ComfyUI_Pipeline_Tool": [ + [ + "Pipeline_Tool" + ], + { + "title_aux": "ComfyUI_Pipeline_Tool" + } + ], + "https://github.com/smthemex/ComfyUI_Pops": [ + [ + "Pops_Decoder", + "Pops_Repo_Loader", + "Pops_Sampler" + ], + { + "title_aux": "ComfyUI_Pops" + } + ], + "https://github.com/smthemex/ComfyUI_SVFR": [ + [ + "SVFR_LoadModel", + "SVFR_Sampler", + "SVFR_img2mask" + ], + { + "title_aux": "ComfyUI_SVFR" + } + ], + "https://github.com/smthemex/ComfyUI_Sapiens": [ + [ + "SapiensLoader", + "SapiensSampler" + ], + { + "title_aux": "ComfyUI_Sapiens" + } + ], + "https://github.com/smthemex/ComfyUI_SongGeneration": [ + [ + "SongGeneration_Sampler", + "SongGeneration_Stage1", + "SongGeneration_Stage2" + ], + { + "title_aux": "ComfyUI_SongGeneration" + } + ], + "https://github.com/smthemex/ComfyUI_Sonic": [ + [ + "SONICSampler", + "SONICTLoader", + "SONIC_PreData" + ], + { + "title_aux": "ComfyUI_Sonic" + } + ], + "https://github.com/smthemex/ComfyUI_StableAudio_Open": [ + [ + "StableAudio_ModelLoader", + "StableAudio_Sampler" + ], + { + "title_aux": "ComfyUI_StableAudio_Open" + } + ], + "https://github.com/smthemex/ComfyUI_StableAvatar": [ + [ + "StableAvatar_LoadModel", + "StableAvatar_Predata", + "StableAvatar_Sampler" + ], + { + "title_aux": "ComfyUI_StableAvatar" + } + ], + "https://github.com/smthemex/ComfyUI_Stable_Makeup": [ + [ + "StableMakeup_LoadModel", + "StableMakeup_Sampler" + ], + { + "author": "Sajjad Ayobbi", + "title_aux": "ComfyUI_Stable_Makeup" + } + ], + "https://github.com/smthemex/ComfyUI_StoryDiffusion": [ + [ + "Comic_Type", + "EasyFunction_Lite", + "Pre_Translate_prompt", + "StoryDiffusion_Apply", + "StoryDiffusion_CLIPTextEncode", + "StoryDiffusion_KSampler" + ], + { + "title_aux": "ComfyUI_StoryDiffusion" + } + ], + "https://github.com/smthemex/ComfyUI_Streamv2v_Plus": [ + [ + "Stream_Lora_Loader", + "Stream_Model_Loader", + "Stream_Sampler" + ], + { + "title_aux": "ComfyUI_Streamv2v_Plus" + } + ], + "https://github.com/smthemex/ComfyUI_TRELLIS": [ + [ + "Trellis_LoadModel", + "Trellis_Sampler", + "Trellis_multiimage_loader" + ], + { + "title_aux": "ComfyUI_TRELLIS" + } + ], + "https://github.com/smthemex/ComfyUI_VisualCloze": [ + [ + "Img_Quadruple", + "VisualCloze_Aplly", + "VisualCloze_CLIPText", + "VisualCloze_KSampler" + ], + { + "title_aux": "ComfyUI_VisualCloze" + } + ], + "https://github.com/smthemex/ComfyUI_YuE": [ + [ + "YUE_Stage_A_Loader", + "YUE_Stage_A_Sampler", + "YUE_Stage_B_Loader", + "YUE_Stage_B_Sampler" + ], + { + "title_aux": "ComfyUI_YuE" + } + ], + "https://github.com/sn0w12/ComfyUI-Sn0w-Scripts": [ + [ + "Character Selector", + "Copy/Paste Textbox", + "Filter Tags", + "Generate All Characters", + "Get Font Size", + "Load Lora Folder", + "Load Lora Sn0w", + "Lora Selector", + "Lora Tester", + "Prompt Combine", + "Prompt Selector", + "Sn0w KSampler", + "Sn0w Lora Stacker", + "TaggedTiledUpscaler", + "Upscale Image With Model By" + ], + { + "title_aux": "ComfyUI-Sn0w-Scripts" + } + ], + "https://github.com/sneccc/comfyui-snek-nodes": [ + [ + "Aesthetics", + "Aesthetics V2", + "Load AI Toolkit Latent Flux", + "Save_Image_And_Caption", + "Send_to_Eagle", + "\ud83d\udc0d Random Prompt From JSON" + ], + { + "title_aux": "comfyui-snek-nodes" + } + ], + "https://github.com/snomiao/ComfyUI-Video-Crop": [ + [ + "VideoCropNode" + ], + { + "title_aux": "ComfyUI Video Crop" + } + ], + "https://github.com/souki202/ComfyUI-LoadImage-Advanced": [ + [ + "ColorAdjustment", + "LoadImageUpscale", + "LoadImageUpscaleBy" + ], + { + "title_aux": "ComfyUI-LoadImage-Advanced" + } + ], + "https://github.com/sourceful-official/LoadLoraModelOnlyWithUrl": [ + [ + "LoadLoraModelOnlyWithUrl" + ], + { + "title_aux": "LoadLoraModelOnlyWithUrl" + } + ], + "https://github.com/sousakujikken/ComfyUI-PixydustQuantizer": [ + [ + "CRTLikeEffectNode", + "Quantizer", + "XYBlurNode" + ], + { + "title_aux": "ComfyUI-PixydustQuantizer" + } + ], "https://github.com/space-nuko/ComfyUI-Disco-Diffusion": [ [ "DiscoDiffusion_DiscoDiffusion", @@ -10386,11 +38965,30 @@ "title_aux": "nui suite" } ], + "https://github.com/spacepxl/ComfyUI-Depth-Pro": [ + [ + "DepthPro", + "FocalFromList", + "FocalMMtoPX", + "FocalPXtoMM", + "LoadDepthPro", + "MetricDepthToInverse", + "MetricDepthToRelative" + ], + { + "title_aux": "ComfyUI-Depth-Pro" + } + ], "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": [ [ "LoadEXR", + "LoadEXRFrames", + "LoadImageAndPrompt", "LoadLatentEXR", "SaveEXR", + "SaveEXRFrames", + "SaveImageAndPromptExact", + "SaveImageAndPromptIncremental", "SaveLatentEXR", "SaveTiff" ], @@ -10398,46 +38996,12 @@ "title_aux": "ComfyUI-HQ-Image-Save" } ], - "https://github.com/spacepxl/ComfyUI-Image-Filters": [ + "https://github.com/spacepxl/ComfyUI-LossTesting": [ [ - "AdainImage", - "AdainLatent", - "AlphaClean", - "AlphaMatte", - "BatchAlign", - "BatchAverageImage", - "BatchAverageUnJittered", - "BatchNormalizeImage", - "BatchNormalizeLatent", - "BetterFilmGrain", - "BlurImageFast", - "BlurMaskFast", - "ClampOutliers", - "ColorMatchImage", - "ConvertNormals", - "DifferenceChecker", - "DilateErodeMask", - "EnhanceDetail", - "ExposureAdjust", - "GuidedFilterAlpha", - "ImageConstant", - "ImageConstantHSV", - "InstructPixToPixConditioningAdvanced", - "JitterImage", - "Keyer", - "LatentNormalizeShuffle", - "LatentStats", - "NormalMapSimple", - "OffsetLatentImage", - "RelightSimple", - "RemapRange", - "ShuffleChannels", - "Tonemap", - "UnJitterImage", - "UnTonemap" + "Measure Timestep Loss" ], { - "title_aux": "ComfyUI-Image-Filters" + "title_aux": "ComfyUI-LossTesting" } ], "https://github.com/spacepxl/ComfyUI-RAVE": [ @@ -10453,6 +39017,50 @@ "title_aux": "ComfyUI-RAVE" } ], + "https://github.com/spacepxl/ComfyUI-StyleGan": [ + [ + "BatchAverageStyleGANLatents", + "BlendStyleGANLatents", + "GenerateStyleGANLatent", + "LoadStyleGAN", + "StyleGANInversion", + "StyleGANLatentFromBatch", + "StyleGANSampler" + ], + { + "title_aux": "ComfyUI-StyleGan" + } + ], + "https://github.com/spawner1145/CUI-Lumina2-TeaCache": [ + [ + "LPIPS_Model_Loader", + "Store_Baseline_Image", + "TeaCache_LPIPS_Evaluator", + "TeaCache_Lumina2", + "TeaCache_Patcher", + "TeaCache_Result_Collector" + ], + { + "title_aux": "CUI-Lumina2-TeaCache" + } + ], + "https://github.com/spawner1145/comfyui-aichat": [ + [ + "GeminiApiLoader", + "GeminiChat", + "GeminiFileUploader", + "GeminiImageEncoder", + "GeminiTextBlock", + "OpenAIApiLoader", + "OpenAIChat", + "OpenAIFileUploader", + "OpenAIImageEncoder", + "OpenAITextBlock" + ], + { + "title_aux": "comfyui-aichat" + } + ], "https://github.com/spinagon/ComfyUI-seam-carving": [ [ "SeamCarving" @@ -10480,9 +39088,18 @@ "title_aux": "Latent Mirror node for ComfyUI" } ], + "https://github.com/squirrel765/ComfyUI-LLM-VLM-Node": [ + [ + "UnifiedGenerator|LP" + ], + { + "title_aux": "ComfyUI-LLM-VLM-Node" + } + ], "https://github.com/ssitu/ComfyUI_UltimateSDUpscale": [ [ "UltimateSDUpscale", + "UltimateSDUpscaleCustomSample", "UltimateSDUpscaleNoUpscale" ], { @@ -10506,7 +39123,9 @@ "KRestartSampler", "KRestartSamplerAdv", "KRestartSamplerCustom", - "KRestartSamplerSimple" + "KRestartSamplerSimple", + "RestartSampler", + "RestartScheduler" ], { "title_aux": "Restart Sampling" @@ -10521,16 +39140,134 @@ "title_aux": "ComfyUI roop" } ], + "https://github.com/stavsap/comfyui-downloader": [ + [ + "DownloadSummaryParser", + "DownloadTokenLoader", + "Downloader" + ], + { + "title_aux": "comfyui-downloader" + } + ], + "https://github.com/stavsap/comfyui-kokoro": [ + [ + "KokoroGenerator", + "KokoroSpeaker", + "KokoroSpeakerCombiner" + ], + { + "title_aux": "comfyui-kokoro" + } + ], "https://github.com/stavsap/comfyui-ollama": [ [ + "OllamaConnectivityV2", "OllamaGenerate", "OllamaGenerateAdvance", + "OllamaGenerateV2", + "OllamaLoadContext", + "OllamaOptionsV2", + "OllamaSaveContext", "OllamaVision" ], { "title_aux": "ComfyUI Ollama" } ], + "https://github.com/stduhpf/ComfyUI--Wan22FirstLastFrameToVideoLatent": [ + [ + "Wan22FirstLastFrameToVideoLatent", + "Wan22FirstLastFrameToVideoLatentTiledVAE" + ], + { + "title_aux": "Wan22FirstLastFrameToVideoLatent for ComfyUI" + } + ], + "https://github.com/stduhpf/ComfyUI--WanImageToVideoTiled": [ + [ + "Wan22ImageToVideoLatentTiledVAE", + "WanCameraImageToVideoTiledVAE", + "WanFirstLastFrameToVideoTiledVAE", + "WanFunControlToVideoTiledVAE", + "WanFunInpaintToVideoTiledVAE", + "WanImageToVideoTiledVAE", + "WanPhantomSubjectToVideoTiledVAE", + "WanTrackToVideoTiledVAE", + "WanVaceToVideoTiledVAE" + ], + { + "title_aux": "WanImageToVideoTiledVAE for ComfyUI" + } + ], + "https://github.com/stduhpf/ComfyUI-WanMoeKSampler": [ + [ + "SplitSigmasAtT", + "WanMoeKSampler", + "WanMoeKSamplerAdvanced" + ], + { + "title_aux": "KSampler for Wan 2.2 MoE for ComfyUI" + } + ], + "https://github.com/stepfun-ai/ComfyUI-StepVideo": [ + [ + "TI2V", + "TI2V_API" + ], + { + "title_aux": "ComfyUI-StepVideo" + } + ], + "https://github.com/stevenwg/ComfyUI-VideoGrid": [ + [ + "VideosConcateHorizontal:", + "VideosConcateVertical" + ], + { + "title_aux": "ComfyUI-VideoGrid" + } + ], + "https://github.com/stormcenter/ComfyUI-AutoSplitGridImage": [ + [ + "EvenImageResizer", + "GridImageSplitter" + ], + { + "title_aux": "ComfyUI-AutoSplitGridImage" + } + ], + "https://github.com/stormcenter/ComfyUI-LivePhotoCreator": [ + [ + "ImageCompareTransition", + "LivePhotoCreator", + "LivePhotoPreview" + ], + { + "title_aux": "ComfyUI LivePhoto Creator" + } + ], + "https://github.com/stormcenter/ComfyUI-SVGFullfill": [ + [ + "SVGEditor", + "SVGUploader" + ], + { + "title_aux": "ComfyUI-SVGFullfill" + } + ], + "https://github.com/storyicon/comfyui_musev_evolved": [ + [ + "AnimationZoom (comfyui_musev_evolved)", + "ImageSelector (comfyui_musev_evolved)", + "MuseVImg2Vid V1 (comfyui_musev_evolved)", + "MuseVPredictor V1 (comfyui_musev_evolved)" + ], + { + "author": "infguo", + "title_aux": "ComfyUI MuseV Evolved" + } + ], "https://github.com/storyicon/comfyui_segment_anything": [ [ "GroundingDinoModelLoader (segment anything)", @@ -10543,7 +39280,29 @@ "title_aux": "segment anything" } ], - "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score": [ + "https://github.com/strand1/ComfyUI-Autogen": [ + [ + "AutogenAssistantAgent", + "AutogenCodeExecutor", + "AutogenGroupChat", + "AutogenModel" + ], + { + "title_aux": "ComfyUI-Autogen" + } + ], + "https://github.com/strawberryPunch/vram_optimizer": [ + [ + "StrawberryGPUMonitor", + "StrawberryVramOptimizer", + "custom_nodes" + ], + { + "nodename_pattern": "StFist", + "title_aux": "StrawberryFist VRAM Optimizer" + } + ], + "https://github.com/strimmlarn/ComfyUI-Strimmlarns-Aesthetic-Score": [ [ "AesthetlcScoreSorter", "CalculateAestheticScore", @@ -10570,14 +39329,125 @@ "title_aux": "ComfyUI-sudo-latent-upscale" } ], + "https://github.com/sugarkwork/ComfyUI_AspectRatioToSize": [ + [ + "AspectRatio", + "AspectRatioToSize", + "CalcFactorWidthHeight", + "CalculateImagePadding", + "MatchImageToAspectRatio", + "SizeToWidthHeight" + ], + { + "title_aux": "ComfyUI_AspectRatioToSize" + } + ], + "https://github.com/sugarkwork/comfyui-trtupscaler": [ + [ + "TRTUpscaler" + ], + { + "title_aux": "comfyui-trtupscaler" + } + ], + "https://github.com/sugarkwork/comfyui_cohere": [ + [ + "SimpleCohereNode" + ], + { + "title_aux": "comfyui_cohere" + } + ], "https://github.com/sugarkwork/comfyui_tag_fillter": [ [ - "TagFilter" + "TagCategory", + "TagCategoryEnhance", + "TagComparator", + "TagEnhance", + "TagFilter", + "TagFlag", + "TagFlagImage", + "TagIf", + "TagMerger", + "TagMerger4", + "TagMerger6", + "TagRemover", + "TagReplace", + "TagSelector", + "TagSwitcher", + "TagWildcardFilter" ], { "title_aux": "comfyui_tag_filter" } ], + "https://github.com/superyoman/comfyui_lumaAPI": [ + [ + "LUMA_API_YoC", + "LUMA_API_result_YoC" + ], + { + "title_aux": "comfyui_lumaAPI" + } + ], + "https://github.com/surinder83singh/ComfyUI-compare-videos": [ + [ + "CompareVideos" + ], + { + "title_aux": "Compare Videos" + } + ], + "https://github.com/svetozarov/AS_LLM_nodes": [ + [ + "AS_ComfyGPT", + "AS_GeminiCaptioning", + "AS_MultimodalGemini" + ], + { + "title_aux": "AS_LLM_nodes" + } + ], + "https://github.com/svntax/ComfyUI-RetroDiffusion-API-Node": [ + [ + "Retro Diffusion API Node" + ], + { + "title_aux": "ComfyUI-RetroDiffusion-API-Node" + } + ], + "https://github.com/sweetndata/ComfyUI-Image-Harmonizer": [ + [ + "harmonizer" + ], + { + "title_aux": "ComfyUI-Image-Harmonizer" + } + ], + "https://github.com/sweetndata/ComfyUI-Reflatent": [ + [ + "RefLatent" + ], + { + "title_aux": "ComfyUI-Reflatent" + } + ], + "https://github.com/sweetndata/ComfyUI-googletrans": [ + [ + "googletrans" + ], + { + "title_aux": "ComfyUI-googletrans" + } + ], + "https://github.com/sweetndata/ComfyUI_Sticker_Compositer": [ + [ + "Sticker_Compositer" + ], + { + "title_aux": "ComfyUI_Sticker_Compositer" + } + ], "https://github.com/syllebra/bilbox-comfyui": [ [ "BilboXLut", @@ -10604,6 +39474,91 @@ "title_aux": "Vid2vid" } ], + "https://github.com/synthetai/ComfyUI-JM-KLing-API": [ + [ + "JM-KLingAI-API/api-key", + "JM-KLingAI-API/hybrid-video", + "JM-KLingAI-API/image-downloader", + "JM-KLingAI-API/image-generation", + "JM-KLingAI-API/image2video", + "JM-KLingAI-API/lip-sync", + "JM-KLingAI-API/lip-sync-async", + "JM-KLingAI-API/multi-image2image", + "JM-KLingAI-API/multi-image2video", + "JM-KLingAI-API/query-status", + "JM-KLingAI-API/text2video", + "JM-KLingAI-API/video-downloader" + ], + { + "title_aux": "ComfyUI-JM-KLing-API" + } + ], + "https://github.com/synthetai/ComfyUI-JM-MiniMax-API": [ + [ + "JM-MiniMax-API/check-video-status", + "JM-MiniMax-API/download-video", + "JM-MiniMax-API/load-audio", + "JM-MiniMax-API/text-to-speech", + "JM-MiniMax-API/video-generation", + "JM-MiniMax-API/voice-cloning", + "JM-MiniMax-API/voice-design" + ], + { + "title_aux": "ComfyUI-JM-MiniMax-API" + } + ], + "https://github.com/synthetai/ComfyUI-JM-Volcengine-API": [ + [ + "VolcengineI2VS2Pro", + "VolcengineImgEditV3", + "volcengine-doubao-seedance", + "volcengine-i2v-s2pro", + "volcengine-img-edit-v3", + "volcengine-seedream-v3" + ], + { + "title_aux": "ComfyUI-JM-Volcengine-API" + } + ], + "https://github.com/synthetai/ComfyUI-ToolBox": [ + [ + "AutoDLDownload", + "CreatePaths", + "FolderDeleter", + "FolderViewe", + "PathOutput" + ], + { + "title_aux": "ComfyUI-ToolBox" + } + ], + "https://github.com/synthetai/ComfyUI_FaceEnhancer": [ + [ + "GFPGANFaceEnhancer", + "GFPGANFolderProcessor" + ], + { + "title_aux": "ComfyUI_FaceEnhancer" + } + ], + "https://github.com/synthetai/ComfyUI_PromptBatcher": [ + [ + "LoadPromptsFromDir", + "SaveTextToFiles" + ], + { + "title_aux": "ComfyUI_PromptBatcher" + } + ], + "https://github.com/sysL-padawan/comfyui-elevenlabs-integration": [ + [ + "ElevenlabsTextToEffect", + "ElevenlabsTextToSpeech" + ], + { + "title_aux": "ComfyUI ElevenLabs API integration" + } + ], "https://github.com/szhublox/ambw_comfyui": [ [ "Auto Merge Block Weighted", @@ -10616,21 +39571,7 @@ "title_aux": "Auto-MBW" } ], - "https://github.com/taabata/Comfy_Syrian_Falcon_Nodes/raw/main/SyrianFalconNodes.py": [ - [ - "CompositeImage", - "KSamplerAlternate", - "KSamplerPromptEdit", - "KSamplerPromptEditAndAlternate", - "LoopBack", - "QRGenerate", - "WordAsImage" - ], - { - "title_aux": "Syrian Falcon Nodes" - } - ], - "https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy": [ + "https://github.com/taabata/LCM_Inpaint_Outpaint_Comfy": [ [ "ComfyNodesToSaveCanvas", "FloatNumber", @@ -10679,6 +39620,25 @@ "title_aux": "LCM_Inpaint-Outpaint_Comfy" } ], + "https://github.com/taabata/SANA_LOWVRAM": [ + [ + "SANADiffuse", + "SANATextEncode" + ], + { + "title_aux": "SANA_LOWVRAM" + } + ], + "https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-": [ + [ + "SAMURAIBoxInputNode", + "SAMURAIPointsInputNode", + "SAMURAIRefineNode" + ], + { + "title_aux": "SAMURAI Nodes for ComfyUI" + } + ], "https://github.com/talesofai/comfyui-browser": [ [ "DifyTextGenerator //Browser", @@ -10691,18 +39651,127 @@ "title_aux": "ComfyUI Browser" } ], - "https://github.com/theUpsider/ComfyUI-Logic": [ + "https://github.com/tanglaoya321/ComfyUI-StoryMaker": [ [ - "Bool", - "Compare", - "DebugPrint", - "Float", - "If ANY execute A else B", - "Int", - "String" + "StoryMakerSinglePortraitNode", + "StoryMakerSwapClothNode", + "StoryMakerTwoPortraitNode" ], { - "title_aux": "ComfyUI-Logic" + "title_aux": "ComfyUI-StoryMaker" + } + ], + "https://github.com/tatookan/comfyui_ssl_gemini_EXP": [ + [ + "SSL_GeminiAPIKeyConfig", + "SSL_GeminiTextPrompt" + ], + { + "title_aux": "comfyui_ssl_gemini_EXP" + } + ], + "https://github.com/tauraloke/ComfyUI-Unfake-Pixels": [ + [ + "PixelArtScaler" + ], + { + "title_aux": "ComfyUI-Unfake-Pixels" + } + ], + "https://github.com/tavyra/ComfyUI_Curves": [ + [ + "Curve Visualizer", + "RGB Curve Editor", + "RGBCurvesAdvanced" + ], + { + "title_aux": "ComfyUI_Curves" + } + ], + "https://github.com/teamalpha-ai/comfyui-image-transformer": [ + [ + "ImageTransformerResizeToMaxPixels" + ], + { + "title_aux": "ComfyUI-ImageTransformer" + } + ], + "https://github.com/tercumantanumut/ComfyUI-Omini-Kontext": [ + [ + "OminiKontextImageEncoder", + "OminiKontextImageScale", + "OminiKontextLatentCombiner", + "OminiKontextLatentDecoder", + "OminiKontextLatentVisualizer", + "OminiKontextLoRALoader", + "OminiKontextLoRAMerge", + "OminiKontextLoRAUnload", + "OminiKontextPipeline", + "OminiKontextPipelineLoader", + "OminiKontextReferenceEncoder", + "OminiKontextSplitPipelineLoader", + "OminiKontextTextEncoder" + ], + { + "title_aux": "ComfyUI-Omini-Kontext" + } + ], + "https://github.com/tetsuoo-online/comfyui-too-xmp-metadata": [ + [ + "ReadXMPMetadata", + "WriteXMPMetadataLossless", + "WriteXMPMetadataTensor" + ], + { + "title_aux": "comfyui-too-xmp-metadata" + } + ], + "https://github.com/teward/ComfyUI-Helper-Nodes": [ + [ + "HelperNodes_CfgScale", + "HelperNodes_CheckpointSelector", + "HelperNodes_MultilineStringLiteral", + "HelperNodes_Prompt", + "HelperNodes_SDXLCommonResolutions", + "HelperNodes_SamplerSelector", + "HelperNodes_SaveImage", + "HelperNodes_SchedulerSelector", + "HelperNodes_SeedSelector", + "HelperNodes_Steps", + "HelperNodes_StringLiteral", + "HelperNodes_VAESelector", + "HelperNodes_WidthHeight" + ], + { + "title_aux": "ComfyUI-Helper-Nodes" + } + ], + "https://github.com/thalismind/ComfyUI-Blend-Nodes": [ + [ + "BlendImageNode" + ], + { + "title_aux": "ComfyUI Blend Image Nodes" + } + ], + "https://github.com/thalismind/ComfyUI-LoadImageWithFilename": [ + [ + "CropImageByMask", + "LoadImageFolder", + "LoadImageWithFilename", + "SaveImageWithFilename" + ], + { + "title_aux": "ComfyUI LoadImageWithFilename" + } + ], + "https://github.com/theAdamColton/ComfyUI-texflow-extension": [ + [ + "Load Texflow Depth Image", + "Save Texflow Image" + ], + { + "title_aux": "ComfyUI-texflow-extension" } ], "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader": [ @@ -10733,12 +39802,219 @@ "title_aux": "ComfyUI Stable Video Diffusion" } ], - "https://github.com/thedyze/save-image-extended-comfyui": [ + "https://github.com/thedivergentai/divergent_nodes": [ [ - "SaveImageExtended" + "CLIPTokenCounter", + "DivergentGeminiNode", + "KoboldCppApiNode", + "LoraStrengthXYPlot", + "MusiQNode", + "SaveImageEnhancedNode" ], { - "title_aux": "Save Image Extended for ComfyUI" + "title_aux": "Divergent Nodes" + } + ], + "https://github.com/theshubzworld/ComfyUI-FaceCalloutNode": [ + [ + "FaceCalloutEffect", + "IntegratedFaceComposite", + "IsolatedFaceCallout" + ], + { + "title_aux": "ComfyUI-FaceCalloutNode" + } + ], + "https://github.com/theshubzworld/ComfyUI-SD3.5-Latent-Size-Picker": [ + [ + "FluxEmptyLatent", + "SD3_5EmptyLatent" + ], + { + "title_aux": "SD3.5 Empty Latent Size Picker" + } + ], + "https://github.com/theshubzworld/ComfyUI-TogetherVision": [ + [ + "Together Image \ud83c\udfa8", + "TogetherVisionBatchNode", + "TogetherVisionNode", + "TogetherVisionNode \ud83d\udd0d (Enhanced)" + ], + { + "title_aux": "Together Vision Node" + } + ], + "https://github.com/theshubzworld/ComfyUI-ollama_killer": [ + [ + "OllamaKiller" + ], + { + "title_aux": "ComfyUI-ollama_killer" + } + ], + "https://github.com/thezveroboy/ComfyUI-CSM-Nodes": [ + [ + "CSMTextToSpeech", + "LoadCSMCheckpoint", + "LoadCSMTokenizer" + ], + { + "title_aux": "ComfyUI-CSM-Nodes" + } + ], + "https://github.com/thezveroboy/ComfyUI-WAN-ClipSkip": [ + [ + "CLIPSkip" + ], + { + "title_aux": "ComfyUI-WAN-ClipSkip" + } + ], + "https://github.com/thezveroboy/ComfyUI-lut": [ + [ + "ImageToLUT" + ], + { + "title_aux": "ComfyUI-LUT" + } + ], + "https://github.com/thezveroboy/ComfyUI_ACE-Step-zveroboy": [ + [ + "ACEModelLoaderZveroboy", + "ACEStepEditZveroboy", + "ACEStepExtendZveroboy", + "ACEStepGenerateZveroboy", + "ACEStepRepaintZveroboy" + ], + { + "title_aux": "ComfyUI_ACE-Step-zveroboy" + } + ], + "https://github.com/thezveroboy/comfyui-RandomPromptsZveroboy": [ + [ + "RandomPromptsZveroboy" + ], + { + "title_aux": "comfyui-RandomPromptsZveroboy" + } + ], + "https://github.com/thezveroboy/comfyui-random-image-loader": [ + [ + "LoadRandomImage" + ], + { + "title_aux": "ComfyUI Random Image Loader" + } + ], + "https://github.com/thimpat/ThimPatUtils": [ + [ + "CalculateAndDisplay", + "CalculateVideoFrameCount", + "ExtractAudioInfo", + "IntToFloatConverter", + "LoadPathToAudioInfo", + "ResizeVideoFrames" + ], + { + "title_aux": "ComfyUI Multimedia Utilities" + } + ], + "https://github.com/thoddnn/ComfyUI-MLX": [ + [ + "MLXClipTextEncoder", + "MLXDecoder", + "MLXLoadFlux", + "MLXSampler" + ], + { + "title_aux": "ComfyUI MLX Nodes" + } + ], + "https://github.com/tianguanggliu/Utools": [ + [ + "UTools" + ], + { + "title_aux": "comfyui-utools" + } + ], + "https://github.com/tiankuan93/ComfyUI-V-Express": [ + [ + "Load_Audio_Path", + "Load_Audio_Path_From_Video", + "Load_Image_Path", + "Load_Kps_Path", + "Load_Kps_Path_From_Video", + "Load_Video_Path", + "VEINTConstant", + "VEPreview_Video", + "VEStringConstant", + "V_Express_Loader", + "V_Express_Sampler" + ], + { + "title_aux": "V-Express: Conditional Dropout for Progressive Training of Portrait Video Generation" + } + ], + "https://github.com/tianlang0704/ComfyUI-StableProjectorzBridge": [ + [ + "ProjectorzControlnetInput", + "ProjectorzControlnetParameter", + "ProjectorzInitInput", + "ProjectorzOutput", + "ProjectorzParameter", + "ProjectorzStringToFloat", + "ProjectorzStringToInt" + ], + { + "title_aux": "Stable Projectorz Bridge" + } + ], + "https://github.com/tianyuw/ComfyUI-LLM-API": [ + [ + "PromptWithImage" + ], + { + "title_aux": "Custom nodes for llm chat with optional image input" + } + ], + "https://github.com/tighug/comfyui-eagle-feeder": [ + [ + "EagleFeederAnimatedWebp", + "EagleFeederMp4", + "EagleFeederPng" + ], + { + "title_aux": "ComfyUI Eagle Feeder" + } + ], + "https://github.com/tighug/comfyui-rating-checker": [ + [ + "RatingCheckerGantMan", + "RatingCheckerMarqo", + "RatingCheckerNudeNet" + ], + { + "title_aux": "ComfyUI Rating Checker" + } + ], + "https://github.com/tkreuziger/comfyui-claude": [ + [ + "Combine Texts", + "Describe Image", + "Transform Text" + ], + { + "title_aux": "ComfyUI and Claude" + } + ], + "https://github.com/tmagara/ComfyUI-Prediction-Boost": [ + [ + "PredictionBoost" + ], + { + "title_aux": "ComfyUI-Prediction-Boost" } ], "https://github.com/tocubed/ComfyUI-AudioReactor": [ @@ -10752,29 +40028,152 @@ "title_aux": "ComfyUI-AudioReactor" } ], + "https://github.com/tocubed/ComfyUI-EvTexture": [ + [ + "EVTEventsToImage", + "EVTLoadEvTextureModel", + "EVTTextureUpscaleVideo", + "EVTVideoToEvents" + ], + { + "title_aux": "ComfyUI-EvTexture" + } + ], + "https://github.com/tomudo/ComfyUI-ascii-art": [ + [ + "ImageToAscii" + ], + { + "author": "dfl", + "description": "CLIP text encoder that does BREAK prompting like A1111", + "nickname": "CLIP with BREAK", + "title": "CLIP with BREAK syntax", + "title_aux": "ComfyUI-ascii-art" + } + ], + "https://github.com/tooldigital/ComfyUI-Yolo-Cropper": [ + [ + "ToolYoloCropper" + ], + { + "title_aux": "Easy automatic (square) image cropper using Yolo" + } + ], + "https://github.com/toxicwind/ComfyUI-TTools": [ + [ + "TTools Extract JSON", + "TTools SD3 Resolution Solver" + ], + { + "title_aux": "TTools for ComfyUI" + } + ], + "https://github.com/toyxyz/ComfyUI_rgbx_Wrapper": [ + [ + "rgb2x" + ], + { + "title_aux": "ComfyUI_rgbx_Wrapper" + } + ], "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": [ [ "CaptureWebcam", + "Depth to normal", + "Direct Screen Capture", + "Export glb", "ImageResize_Padding", "LatentDelay", + "Load Random Text From File", "LoadWebcamImage", - "SaveImagetoPath" + "Remove noise", + "SaveImagetoPath", + "VisualAreaMask" ], { "title_aux": "ComfyUI_toyxyz_test_nodes" } ], + "https://github.com/traugdor/ComfyUI-Riffusion": [ + [ + "RiffusionNode", + "RiffusionToBatchNode" + ], + { + "title_aux": "ComfyUI-Riffusion" + } + ], + "https://github.com/traugdor/ComfyUI-UltimateSDUpscale-GGUF": [ + [ + "UltimateSDUpscaleGGUF" + ], + { + "title_aux": "ComfyUI-UltimateSDUpscale-GGUF" + } + ], "https://github.com/traugdor/ComfyUI-quadMoons-nodes": [ [ + "AnimateDiff Script", + "Apply ControlNet Stack", + "Control Net Stacker", + "Eff. Loader SDXL", + "Efficient Loader", + "HighRes-Fix Script", + "Image Overlay", + "Join XY Inputs of Same Type", + "KSampler (Efficient)", + "KSampler Adv. (Efficient)", + "KSampler SDXL (Eff.)", + "LatentUpscaler", + "LoRA Stack to String converter", + "LoRA Stacker", + "Manual XY Entry Info", + "NNLatentUpscale", + "Noise Control Script", + "Pack SDXL Tuple", + "Tiled Upscaler Script", + "Unpack SDXL Tuple", + "XY Input: Add/Return Noise", + "XY Input: Aesthetic Score", + "XY Input: CFG Scale", + "XY Input: Checkpoint", + "XY Input: Clip Skip", + "XY Input: Control Net", + "XY Input: Control Net Plot", + "XY Input: Denoise", + "XY Input: LoRA", + "XY Input: LoRA Plot", + "XY Input: LoRA Stacks", + "XY Input: Manual XY Entry", + "XY Input: Prompt S/R", + "XY Input: Refiner On/Off", + "XY Input: Sampler/Scheduler", + "XY Input: Seeds++ Batch", + "XY Input: Steps", + "XY Input: VAE", + "XY Plot", + "quadmoonBatchFromLatent", "quadmoonCLIPTextEncode", + "quadmoonCLIPTextEncode2", + "quadmoonChangeBackground", "quadmoonConvertBoolToString", "quadmoonConvertFloatToString", + "quadmoonConvertImageToPrompt", "quadmoonConvertIntToString", "quadmoonConvertNormalizeHW", "quadmoonConvertNumberToString", "quadmoonINTConditionalOperation", "quadmoonKSampler", "quadmoonKSamplerAdvanced", + "quadmoonKSamplerBatched", + "quadmoonLatentImage", + "quadmoonLoadConfigs", + "quadmoonModelLoader", + "quadmoonRotationalSampler", + "quadmoonSaveNeg", + "quadmoonSavePrompt", + "quadmoonSmartNeg", + "quadmoonSmartPrompt", "quadmoonThebutton" ], { @@ -10785,9 +40184,70 @@ "title_aux": "quadmoon's ComfyUI nodes" } ], + "https://github.com/tritant/ComfyUI-Advanced-Photo-Grain": [ + [ + "PhotoFilmGrain" + ], + { + "title_aux": "Advanced Photo Grain" + } + ], + "https://github.com/tritant/ComfyUI_CreaPrompt": [ + [ + "CreaPrompt", + "CreaPrompt List", + "CreaPrompt_0", + "CreaPrompt_1", + "CreaPrompt_2", + "CreaPrompt_3", + "CreaPrompt_4" + ], + { + "title_aux": "ComfyUI-CreaPrompt" + } + ], + "https://github.com/tritant/ComfyUI_Flux_Block_Lora_Merger": [ + [ + "FluxBlockLoraMerger" + ], + { + "title_aux": "Flux Block LoRA Merger" + } + ], + "https://github.com/tritant/ComfyUI_Flux_Lora_Merger": [ + [ + "FluxLoraMerger" + ], + { + "title_aux": "Flux LoRA Merger" + } + ], + "https://github.com/tritant/ComfyUI_Layers_Utility": [ + [ + "LayerSystem" + ], + { + "title_aux": "Layers System" + } + ], + "https://github.com/tritant/ComfyUI_Relight_Img": [ + [ + "RelightNode" + ], + { + "title_aux": "Advanced_Relight_Img" + } + ], + "https://github.com/tritant/ComfyUI_Remove_Banding_Artifacts": [ + [ + "ResampleBandingFix" + ], + { + "title_aux": "Remove Banding Artifacts" + } + ], "https://github.com/trojblue/trNodes": [ [ - "JpgConvertNode", "trColorCorrection", "trLayering", "trRouter", @@ -10797,6 +40257,14 @@ "title_aux": "trNodes" } ], + "https://github.com/troyxmccall/ComfyUI-ScaleToTargetMegapixels": [ + [ + "ScaleToTargetMegapixels" + ], + { + "title_aux": "ComfyUI-ScaleToTargetMegapixels" + } + ], "https://github.com/trumanwong/ComfyUI-NSFW-Detection": [ [ "NSFWDetection" @@ -10831,6 +40299,7 @@ ], "https://github.com/ttulttul/ComfyUI-Tensor-Operations": [ [ + "Fast Image to Noise", "Image Match Normalize", "Latent Match Normalize" ], @@ -10838,82 +40307,61 @@ "title_aux": "ComfyUI-Tensor-Operations" } ], - "https://github.com/tudal/Hakkun-ComfyUI-nodes/raw/main/hakkun_nodes.py": [ + "https://github.com/tungdop2/Comfyui_face_restorer": [ [ - "Any Converter", - "Calculate Upscale", - "Image Resize To Height", - "Image Resize To Width", - "Image size to string", - "Load Random Image", - "Load Text", - "Multi Text Merge", - "Prompt Parser", - "Random Line", - "Random Line 4" + "FaceRestorer", + "FaceRestorerLoader" ], { - "title_aux": "Hakkun-ComfyUI-nodes" + "title_aux": "Face Restorer for ComfyUI" } ], - "https://github.com/turkyden/ComfyUI-Comic": [ + "https://github.com/tungdop2/Comfyui_joy-caption-alpha-two": [ [ - "Image To Comic" + "JoyCaptioner" ], { - "title_aux": "ComfyUI-Comic" + "title_aux": "Joy Caption Alpha Two for ComfyUI" } ], - "https://github.com/turkyden/ComfyUI-Sticker": [ + "https://github.com/turkyden/ComfyUI-SmartCrop": [ [ - "Image To Sticker" + "ImageSmartCrop" ], { - "title_aux": "ComfyUI-Sticker" + "title_aux": "ComfyUI-SmartCrop" } ], "https://github.com/tusharbhutt/Endless-Nodes": [ [ - "ESS Aesthetic Scoring", - "ESS Aesthetic Scoring Auto", - "ESS Combo Parameterizer", - "ESS Combo Parameterizer & Prompts", - "ESS Eight Input Random", - "ESS Eight Input Text Switch", - "ESS Float to Integer", - "ESS Float to Number", - "ESS Float to String", - "ESS Float to X", - "ESS Global Envoy", - "ESS Image Reward", - "ESS Image Reward Auto", - "ESS Image Saver with JSON", - "ESS Integer to Float", - "ESS Integer to Number", - "ESS Integer to String", - "ESS Integer to X", - "ESS Number to Float", - "ESS Number to Integer", - "ESS Number to String", - "ESS Number to X", - "ESS Parameterizer", - "ESS Parameterizer & Prompts", - "ESS Six Float Output", - "ESS Six Input Random", - "ESS Six Input Text Switch", - "ESS Six Integer IO Switch", - "ESS Six Integer IO Widget", - "ESS String to Float", - "ESS String to Integer", - "ESS String to Num", - "ESS String to X", - "\u267e\ufe0f\ud83c\udf0a\u2728 Image Saver with JSON" + "BatchNegativePrompts", + "Eight_Input_Int_Switch", + "Eight_Input_Int_Switch_Widget", + "Eight_Input_Text_Switch", + "EndlessReplicateLatents", + "FluxBatchPrompts", + "FluxKontextBatchPrompts", + "Four_Input_Int_Switch", + "Four_Input_Int_Switch_Widget", + "Four_Input_Text_Switch", + "ImageComplexityScorer", + "ImageNoveltyScorer", + "Image_saver", + "LatentReplicator", + "LatentReplicatorPrompts", + "PromptCounter", + "Random_Prompt_Multipicker", + "Random_Prompt_Selector", + "Randomizer_Chaos", + "Randomizer_Mayhem", + "Randomizer_Pandemonium", + "SDXLBatchPrompts", + "SimpleBatchPrompts", + "Six_Input_Int_Switch", + "Six_Input_Int_Switch_Widget", + "Six_Input_Text_Switch" ], { - "author": "BiffMunky", - "description": "A small set of nodes I created for various numerical and text inputs. Features image saver with ability to have JSON saved to separate folder, parameter collection nodes, two aesthetic scoring models, switches for text and numbers, and conversion of string to numeric and vice versa.", - "nickname": "\u267e\ufe0f\ud83c\udf0a\u2728", - "title": "Endless \ufe0f\ud83c\udf0a\u2728 Nodes", "title_aux": "Endless \ufe0f\ud83c\udf0a\u2728 Nodes" } ], @@ -10926,6 +40374,16 @@ "title_aux": "SDXL Prompt Styler" } ], + "https://github.com/ty0x2333/ComfyUI-Dev-Utils": [ + [ + "TY_ExecutionTime", + "TY_UploadAnything", + "TY_UrlDownload" + ], + { + "title_aux": "ComfyUI-Dev-Utils" + } + ], "https://github.com/uarefans/ComfyUI-Fans": [ [ "Fans Prompt Styler Negative", @@ -10945,6 +40403,77 @@ "title_aux": "comfyui-webcam-node" } ], + "https://github.com/uihp/ComfyUI-String-Chain": [ + [ + "String Chain", + "String Concat", + "String Toggle", + "String Toggle (Multiline)" + ], + { + "title_aux": "ComfyUI-String-Chain" + } + ], + "https://github.com/umiyuki/comfyui-pad-to-eight": [ + [ + "Pad To Eight" + ], + { + "title_aux": "ComfyUI Pad To Eight" + } + ], + "https://github.com/un-seen/comfyui-tensorops": [ + [ + "BackgroundSelect", + "ChannelSelector", + "DownloadAndLoadFlorence2Model", + "DownloadAndLoadSAM2Model", + "FaceSwap", + "FalDifferentialDiffusion", + "FalDiffusion", + "FetchFromRedis", + "FetchJsonFromSurreal", + "Florence2Run", + "Florence2toCoordinates", + "ForegroundMask", + "GetLayerMask", + "MaskImage", + "Sam2AutoSegmentation", + "Sam2Segmentation", + "Sam2VideoSegmentation", + "Sam2VideoSegmentationAddPoints", + "SaveImageToS3", + "SaveJsonToSurreal", + "SaveTextToSurreal", + "SaveToRedis", + "SendImageOnWebSocket", + "SendJsonOnWebSocket", + "SeparateMask" + ], + { + "title_aux": "comfyui-tensorop" + } + ], + "https://github.com/un-seen/comfyui_segment_anything_plus": [ + [ + "GroundingDinoModelLoader (segment anything plus)", + "GroundingDinoSAMSegment (segment anything plus)", + "InvertMask (segment anything plus)", + "IsMaskEmpty (segment anything plus)", + "SAMModelLoader (segment anything plus)" + ], + { + "title_aux": "ComfyUI Segment Anything" + } + ], + "https://github.com/unicough/comfy_openai_image_api": [ + [ + "OpenAI Image API" + ], + { + "title_aux": "OpenAI Image API with gpt-image-1" + } + ], "https://github.com/unwdef/unwdef-nodes-comfyui": [ [ "RandomTextFromMultiline", @@ -10956,6 +40485,102 @@ "title_aux": "unwdef-nodes" } ], + "https://github.com/upseem/comfyui_sun_nodes": [ + [ + "SunxAI_BatchImageLoopCloseChen", + "SunxAI_BatchImageLoopOpenChen" + ], + { + "title_aux": "SunxAI Custom Nodes for ComfyUI" + } + ], + "https://github.com/upseem/comfyui_sunxAI_facetools": [ + [ + "ApplyInstantID", + "ColorAdjustNew(FaceParsing)", + "CropFaces", + "DetectFaces", + "Example", + "InstantIDFaceAnalysis", + "InstantIDModelLoader", + "LoadFaceEmbeds", + "SaveFaceEmbeds", + "SaveImageWebsocketNew", + "SelectFloatByBool", + "VAEDecodeNew", + "VAEEncodeNew", + "WarpFacesBack" + ], + { + "title_aux": "comfyui_sunxAI_facetools" + } + ], + "https://github.com/usrname0/comfyui-holdup": [ + [ + "HoldUp" + ], + { + "title_aux": "comfyui-holdup" + } + ], + "https://github.com/vadimcro/VKRiez-Edge": [ + [ + "VKriezEnhancedEdgePreprocessor", + "VKriezHybridEdgePreprocessor" + ], + { + "title_aux": "VKRiez-Edge" + } + ], + "https://github.com/vahidzxc/va-nodes": [ + [ + "VA_Seed" + ], + { + "title_aux": "va-nodes" + } + ], + "https://github.com/vahlok-alunmid/ComfyUI-ExtendIPAdapterClipVision": [ + [ + "EXTEND_CLIP_VISION_INPUT_SIZE", + "IPAdapterAdvancedSizeAware" + ], + { + "title_aux": "ComfyUI-ExtendIPAdapterClipVision" + } + ], + "https://github.com/vaishnav-vn/va1": [ + [ + "RandomAspectRatioMask" + ], + { + "title_aux": "va1" + } + ], + "https://github.com/valofey/Openrouter-Node": [ + [ + "OpenrouterNode" + ], + { + "title_aux": "OpenRouter Node" + } + ], + "https://github.com/vanche1212/ComfyUI-ZMG-Nodes": [ + [ + "VC_Load_Video_Path_Unified_Output", + "VC_Load_Video_Upload_Unified_Output", + "VC_Video_Combine_Unified_Output", + "Waveform2Audio", + "\ud83d\ude0bAPI Request Node", + "\ud83d\ude0bJSON Parser Node", + "\ud83d\ude0bOld Photo Colorization Node", + "\ud83d\ude0bOllama Request Node", + "\ud83d\ude0bSave Image Unified Output" + ], + { + "title_aux": "ZMG PLUGIN" + } + ], "https://github.com/vanillacode314/SimpleWildcardsComfyUI": [ [ "SimpleConcat", @@ -10969,6 +40594,93 @@ "title_aux": "Simple Wildcard" } ], + "https://github.com/var1ableX/ComfyUI_Accessories": [ + [ + "ACC_AnyCast", + "AccMakeListNode", + "GetMaskDimensions", + "GetRandomDimensions", + "isImageEmpty", + "isMaskEmpty" + ], + { + "title_aux": "ComfyUI_Accessories" + } + ], + "https://github.com/vault-developer/comfyui-image-blender": [ + [ + "ImageBlender" + ], + { + "title_aux": "ImageBlender" + } + ], + "https://github.com/veighnsche/comfyui_gr85": [ + [ + "GR85_CTGPhrases", + "GR85_CTGPhrasesSimple", + "GR85_ContainsWord", + "GR85_FilterAndCombineMasks", + "GR85_Florence2RunCTPG", + "GR85_Florence2toCoordinatesGR85", + "GR85_FluxAttentionSeeker2", + "GR85_FluxAttentionSeeker3", + "GR85_FluxAttentionSeekerGenerator", + "GR85_FluxModelMergeParameters", + "GR85_ImageDimensionResizer", + "GR85_ImageSizer", + "GR85_ImageSizerAll", + "GR85_IntToString", + "GR85_IntegerSequenceModifier", + "GR85_IslandMaskGenerator", + "GR85_MaskBatchToSEGS", + "GR85_MaskConnectMST", + "GR85_MaskSplitter", + "GR85_NextSeed", + "GR85_PasteByMaskGr85", + "GR85_RandomFloat", + "GR85_RandomInt", + "GR85_RandomRatio", + "GR85_RandomizedMaskTransform", + "GR85_Sam2Segmentation", + "GR85_SaveImageFile", + "GR85_SaveTextFile", + "GR85_SeedBasedOutputSelector", + "GR85_ShowText", + "GR85_SimpleWildcardPicker", + "GR85_StrSafe", + "GR85_TagInjector", + "GR85_TagInjectorDuo", + "GR85_TagInjectorLarge", + "GR85_TagInjectorSingle", + "GR85_VerticalWildcardPicker" + ], + { + "title_aux": "comfyui_gr85" + } + ], + "https://github.com/vekitan55/SimpleFlux1Merger": [ + [ + "ExpertFlux1Merge", + "SimplifiedFlux1Merge" + ], + { + "title_aux": "Simple Flux.1 Merger for ComfyUI" + } + ], + "https://github.com/verIdyia/ComfyUI-Qwen-Image-DF11": [ + [ + "DFloat11QwenImageLoader", + "QwenImageAspectRatio", + "QwenImageDecode", + "QwenImagePresetSampler", + "QwenImageSampler", + "QwenImageTextEncode" + ], + { + "title_aux": "ComfyUI Qwen-Image DFloat11 Nodes" + } + ], "https://github.com/victorchall/comfyui_webcamcapture": [ [ "WebcamCapture" @@ -10987,18 +40699,71 @@ ], "https://github.com/violet-chen/comfyui-psd2png": [ [ - "Psd2Png" + "Psd2Png", + "StringInsert" ], { "title_aux": "comfyui-psd2png" } ], - "https://github.com/viperyl/ComfyUI-BiRefNet": [ + "https://github.com/violet0927/ComfyUI-HuggingFaceLoraUploader": [ [ - "BiRefNet" + "HuggingFaceLoraUploader", + "ModelScopeLoraUploader" ], { - "title_aux": "ComfyUI-BiRefNet" + "title_aux": "Hugging Face LoRA Uploader" + } + ], + "https://github.com/viperyl/ComfyUI-RGT": [ + [ + "RGT_Upscale" + ], + { + "title_aux": "ComfyUI-RGT" + } + ], + "https://github.com/visualbruno/ComfyUI-Hunyuan3d-2-1": [ + [ + "Hy3D21CameraConfig", + "Hy3D21ExportMesh", + "Hy3D21GenerateMultiViewsBatch", + "Hy3D21IMRemesh", + "Hy3D21LoadImageWithTransparency", + "Hy3D21LoadMesh", + "Hy3D21MeshGenerationBatch", + "Hy3D21MeshUVWrap", + "Hy3D21MeshlibDecimate", + "Hy3D21MultiViewsGeneratorWithMetaData", + "Hy3D21MultiViewsMeshGenerator", + "Hy3D21PostprocessMesh", + "Hy3D21ResizeImages", + "Hy3D21SimpleMeshlibDecimate", + "Hy3D21UseMultiViews", + "Hy3D21UseMultiViewsFromMetaData", + "Hy3D21VAEConfig", + "Hy3D21VAEDecode", + "Hy3D21VAELoader", + "Hy3DBakeMultiViews", + "Hy3DBakeMultiViewsWithMetaData", + "Hy3DHighPolyToLowPolyBakeMultiViewsWithMetaData", + "Hy3DInPaint", + "Hy3DMeshGenerator", + "Hy3DMultiViewsGenerator" + ], + { + "title_aux": "ComfyUI-Hunyuan3d-2-1" + } + ], + "https://github.com/vivax3794/ComfyUI-Sub-Nodes": [ + [ + "VIV_Default", + "VIV_Subgraph", + "VIV_Subgraph_Inputs", + "VIV_Subgraph_Outputs" + ], + { + "title_aux": "ComfyUI-Sub-Nodes" } ], "https://github.com/vivax3794/ComfyUI-Vivax-Nodes": [ @@ -11014,6 +40779,56 @@ "title_aux": "ComfyUI-Vivax-Nodes" } ], + "https://github.com/vkff5833/ComfyUI-MobileClient": [ + [ + "MobileClient" + ], + { + "title_aux": "ComfyUI-MobileClient" + } + ], + "https://github.com/vkff5833/ComfyUI-PromptConverter": [ + [ + "PromptConverter", + "PromptConverterWithFilter" + ], + { + "title_aux": "ComfyUI-PromptConverter" + } + ], + "https://github.com/vladpro3/ComfyUI_BishaNodes": [ + [ + "CreatePromptsWithTextFromFile", + "EmptyLatentSizePicker", + "LoadDataFromFiles", + "SimpleSizePicker", + "WildcardReplace", + "WildcardReplaceFromFile" + ], + { + "title_aux": "ComfyUI_BishaNodes" + } + ], + "https://github.com/vrgamegirl19/comfyui-vrgamedevgirl": [ + [ + "ColorMatchToReference", + "FastFilmGrain", + "FastLaplacianSharpen", + "FastSobelSharpen", + "FastUnsharpSharpen" + ], + { + "title_aux": "VRGameDevGirl Video Enhancement Nodes" + } + ], + "https://github.com/vsaan212/Comfy-ui-textsplit": [ + [ + "TextSplit" + ], + { + "title_aux": "ComfyUI Text Split Node" + } + ], "https://github.com/vsevolod-oparin/comfyui-kandinsky22": [ [ "comfy-kandinsky22-decoder-loader", @@ -11034,6 +40849,69 @@ "title_aux": "Kandinsky 2.2 ComfyUI Plugin" } ], + "https://github.com/vslinx/ComfyUI-vslinx-nodes": [ + [ + "vsLinx_LoadSelectedImagesBatch", + "vsLinx_LoadSelectedImagesList" + ], + { + "title_aux": "ComfyUI vsLinx Nodes" + } + ], + "https://github.com/vuongminh1907/ComfyUI_ZenID": [ + [ + "ApplyZenID", + "InstantIDFaceAnalysis", + "InstantIDModelLoader", + "ZenIDCombineFace" + ], + { + "title_aux": "ComfyUI_ZenID" + } + ], + "https://github.com/wTechArtist/ComfyUI-CustomNodes": [ + [ + "GPT4 WWL", + "IPAdapter FaceID With Bool", + "IPAdapter Mad Scientist Weight_Type", + "Image Blending Mode Mask", + "Load Image With Bool", + "Load Lora With Shared" + ], + { + "title_aux": "ComfyUI-CustomNodes" + } + ], + "https://github.com/wTechArtist/ComfyUI-StableDelight-weiweiliang": [ + [ + "WWL_StableDelight" + ], + { + "title_aux": "ComfyUI-StableDelight-weiweiliang" + } + ], + "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera_Advanced": [ + [ + "VGGTVideoCameraNode" + ], + { + "title_aux": "ComfyUI VVL Video Camera Advanced" + } + ], + "https://github.com/wakattac/ComfyUI-AbstractImaGen": [ + [ + "AbstractImageBackground", + "AbstractImageFilledShapes", + "AbstractImageGenerator", + "AbstractImageLines", + "AbstractImageNoise", + "AbstractImagePattern", + "AbstractImagePostprocessing" + ], + { + "title_aux": "ComfyUI-AbstractImaGen" + } + ], "https://github.com/wallish77/wlsh_nodes": [ [ "Alternating KSampler (WLSH)", @@ -11081,6 +40959,152 @@ "title_aux": "wlsh_nodes" } ], + "https://github.com/wasilone11/comfyui-pvm-node": [ + [ + "SyncPVMessengerNode" + ], + { + "title_aux": "ComfyUI Sync PVM Node" + } + ], + "https://github.com/wasilone11/comfyui-sync-lipsync-node": [ + [ + "SyncLipsyncInputNode", + "SyncLipsyncMainNode", + "SyncLipsyncOutputNode" + ], + { + "title_aux": "ComfyUI Sync Lipsync Node" + } + ], + "https://github.com/watarika/ComfyUI-SendToEagle-w-Metadata": [ + [ + "CreateExtraMetadata", + "SendToEagleWithMetadata", + "SendToEagleWithMetadataSimple" + ], + { + "title_aux": "ComfyUI-SendToEagle-w-Metadata" + } + ], + "https://github.com/wawahuy/ComfyUI-HTTP": [ + [ + "Base64ToImageNode", + "HTTPFormDataConcatNode", + "HTTPFormDataNode", + "HTTPFormFileItemNode", + "HTTPFormImageItemNode", + "HTTPFormTextItemNode", + "HTTPGetJSONFieldNode", + "HTTPGetNode", + "HTTPPostFormDataNode", + "HTTPPostJSONNode", + "HTTPPostRawNode", + "ImageToBase64Node" + ], + { + "title_aux": "ComfyUI HTTP - REST API Nodes" + } + ], + "https://github.com/web3nomad/ComfyUI_Invisible_Watermark": [ + [ + "InvisibleWatermarkEncode" + ], + { + "title_aux": "ComfyUI Invisible Watermark" + } + ], + "https://github.com/weberjc/book-cover-finder-comfy": [ + [ + "BookCoverFinder" + ], + { + "title_aux": "BookCoverFinder" + } + ], + "https://github.com/webfiltered/DebugNode-ComfyUI": [ + [ + "WTFDebugNode" + ], + { + "title_aux": "WTF? - a debug node for ComfyUI" + } + ], + "https://github.com/webuilder/WB-ComfyUI-Utils": [ + [ + "WB_AudioDuration" + ], + { + "title_aux": "ComfyUI WB Utils" + } + ], + "https://github.com/weekii/comfyui-save-image-pro": [ + [ + "SaveImageAdvanced", + "SaveImageSimple" + ], + { + "author": "weekii", + "description": "\u4e13\u4e1a\u7ea7\u56fe\u50cf\u4fdd\u5b58\u63d2\u4ef6\uff0c\u652f\u6301\u591a\u683c\u5f0f\u3001\u81ea\u5b9a\u4e49\u547d\u540d\u548c\u9ad8\u7ea7\u529f\u80fd", + "nickname": "Save Image Pro", + "title": "ComfyUI Save Image Pro", + "title_aux": "comfyui-save-image-pro" + } + ], + "https://github.com/weilin9999/WeiLin-Comfyui-Tools": [ + [ + "WeiLinPromptUI", + "WeiLinPromptUIOnlyLoraStack", + "WeiLinPromptUIWithoutLora" + ], + { + "title_aux": "WeiLin-Comfyui-Tools" + } + ], + "https://github.com/welltop-cn/ComfyUI-TeaCache": [ + [ + "CompileModel", + "TeaCache", + "TeaCacheForCogVideoX" + ], + { + "title_aux": "ComfyUI-TeaCache" + } + ], + "https://github.com/wentao-uw/ComfyUI-template-matching": [ + [ + "IsMaskEmptyNode (template matching)", + "TemplateMatching (template matching)" + ], + { + "title_aux": "ComfyUI template matching" + } + ], + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-editor": [ + [ + "AppendageEditorNode", + "OpenposeEditorNode" + ], + { + "title_aux": "ComfyUI-ultimate-openpose-editor" + } + ], + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-estimator": [ + [ + "OpenposeEstimatorNode" + ], + { + "title_aux": "ComfyUI-ultimate-openpose-estimator" + } + ], + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-render": [ + [ + "OpenposeRenderNode" + ], + { + "title_aux": "ComfyUI-ultimate-openpose-render" + } + ], "https://github.com/whatbirdisthat/cyberdolphin": [ [ "\ud83d\udc2c Gradio ChatInterface", @@ -11101,6 +41125,232 @@ "title_aux": "ComfyUI-Openpose-Editor-Plus" } ], + "https://github.com/whmc76/ComfyUI-RemoveBackgroundSuite": [ + [ + "BiRefNetUltra_RBS", + "MaskProcessDetails_RBS", + "TransparentBackgroundUltra_RBS" + ], + { + "title_aux": "ComfyUI-RemoveBackgroundSuite" + } + ], + "https://github.com/whmc76/ComfyUI-UniversalToolkit": [ + [ + "AudioCropProcessUTK", + "CheckMask_UTK", + "CropByMask_UTK", + "DepthMapBlur_UTK", + "EmptyUnitGenerator_UTK", + "FillMaskedArea_UTK", + "ImageAndMaskPreview_UTK", + "ImageCombineAlpha_UTK", + "ImageConcatenateMulti_UTK", + "ImageConcatenate_UTK", + "ImageMaskScaleAs_UTK", + "ImagePadForOutpaintMasked_UTK", + "ImageRatioDetector_UTK", + "ImageRemoveAlpha_UTK", + "ImageScaleByAspectRatio_UTK", + "ImageScaleRestore_UTK", + "ImitationHueNode_UTK", + "LoadAudioPlusFromPath_UTK", + "LoadKontextPresets_UTK", + "LoraInfo_UTK", + "MaskAdd_UTK", + "MaskAnd_UTK", + "MaskSub_UTK", + "MathExpression_UTK", + "PurgeVRAM_UTK", + "RestoreCropBox_UTK", + "TextBoxNode_UTK", + "TextConcatenate_UTK", + "ThinkRemover_UTK", + "Video_Prompt_Helper" + ], + { + "title_aux": "ComfyUI-UniversalToolkit" + } + ], + "https://github.com/wildminder/ComfyUI-Chatterbox": [ + [ + "ChatterboxTTS", + "ChatterboxVC" + ], + { + "title_aux": "ComfyUI-Chatterbox" + } + ], + "https://github.com/wildminder/ComfyUI-KEEP": [ + [ + "KEEP_FaceUpscaleImage", + "KEEP_ModelLoader", + "KEEP_ProcessImageSequence" + ], + { + "title_aux": "ComfyUI-KEEP" + } + ], + "https://github.com/wildminder/ComfyUI-VibeVoice": [ + [ + "VibeVoiceTTS" + ], + { + "title_aux": "ComfyUI-VibeVoice" + } + ], + "https://github.com/willchil/ComfyUI-Environment-Visualizer": [ + [ + "EnvironmentVisualizer", + "InterpolateEdges", + "MapEquirectangular" + ], + { + "title_aux": "ComfyUI-Environment-Visualizer" + } + ], + "https://github.com/windfancy/zsq_prompt": [ + [ + "BatchPromptJson", + "BatchPromptSelector", + "ConnectionString", + "DoubleCLIPEncode", + "FloatMathOperation", + "ImageAddText", + "ImageEmpty", + "IndexString", + "IntMathOperation", + "JoinImageBatch", + "LLMImage", + "LLMText", + "OptionString", + "PortraitStyler", + "SaveJpgImage", + "StringInput", + "ZSQPixelLatent", + "ZSQRatioLatent", + "ZSQShowINT", + "ZSQShowText", + "checkpoint_sampler", + "controlnetStack", + "controlnetStack_2", + "imageConcat", + "imageCount", + "imageCrop", + "imageDetailTransfer", + "imageFilter", + "imageFlip", + "imageGaussianBlur", + "imageHug", + "imageRGB", + "imageRatio", + "imageResize", + "imageRotate", + "imageSaveSimple", + "imageScaleDown", + "imageScaleDownBy", + "imageSharpen", + "imageSize", + "imageTilesFromBatch", + "imagesSplitImage", + "loraStack", + "loraStack_2", + "stylesSelector", + "zsqcheckpoint", + "zsqcontrolnet", + "zsqsampler" + ], + { + "title_aux": "zsq_prompt" + } + ], + "https://github.com/wings6407/ComfyUI_HBH-image_overlay": [ + [ + "HBH_ImageCoordinatePicker", + "HBH_ImageCoordinatePreview", + "HBH_ImageInteractivePicker", + "HBH_ImageOverlay", + "HBH_ImageOverlayPreview", + "HBH_ImagePreview" + ], + { + "title_aux": "ComfyUI_HBH-image_overlay" + } + ], + "https://github.com/wirytiox/ComfyUI-SelectStringFromListWithIndex": [ + [ + "StringFromList" + ], + { + "title_aux": "ComfyUI-SelectStringFromListWithIndex" + } + ], + "https://github.com/withmpx/mpx-comfyui-nodes": [ + [ + "Agent_PickBestImageFromList", + "Agent_ReflectionOnImageList", + "ImagesTo3DModels", + "LoadImageData", + "ObjectListToImageList", + "PickFromList", + "SaveModelsToDisk", + "ShowList", + "ShowString", + "StringListToStringList", + "StringListToText", + "TextToImage", + "TextToList", + "TextToObjectList", + "TextToScriptBreakdown", + "TextToStory", + "TextToText", + "TransformObjectList", + "TwoTextToText" + ], + { + "title_aux": "mpx-comfyui-nodes" + } + ], + "https://github.com/wjl0313/ComfyUI_KimNodes": [ + [ + "Add_ImageMetadata", + "BoundingBox_Cropper", + "Crop_Paste", + "Distribute_Icons", + "Edge_Element_Cropper", + "ExtractDifferenceLora", + "IconDistributeByGrid", + "Icon_Position_Cropper", + "Image_Classification", + "Image_PixelFilter", + "Image_Resize", + "KimFilter", + "KimHDR", + "LoRA_Metadata_Reader", + "LoadImage_Metadata", + "Manual_MetadataInput", + "Mask_Noise_Cleaner", + "Mask_White_Area_Ratio", + "MaxLength_ImageListSelector", + "Percentage_Cropper", + "Pixelate_Filter", + "Prompt_Text", + "Save_Image", + "Seamless_Icon_Generator", + "Split_Mask", + "Text_Match", + "Text_Processor", + "Transparent_Area_Cropper", + "Transparent_Image_Filter", + "Whitening_Node", + "YOLOWorld_Match", + "YOLO_Crop", + "YOLO_Multi_Crop" + ], + { + "title_aux": "ComfyUI_KimNodes" + } + ], "https://github.com/wmatson/easy-comfy-nodes": [ [ "EZAssocDictNode", @@ -11111,13 +41361,49 @@ "EZLoadImgBatchFromUrlsNode", "EZLoadImgFromUrlNode", "EZRemoveImgBackground", - "EZS3Uploader", - "EZVideoCombiner" + "EZS3Uploader" ], { "title_aux": "easy-comfy-nodes" } ], + "https://github.com/wmpmiles/comfyui-some-image-processing-stuff": [ + [ + "Blur Mask", + "Color Grading", + "Latent Zero Mask", + "Mask-Crop Inpaint | Post", + "Mask-Crop Inpaint | Pre", + "Mask-Crop | Post", + "Mask-Crop | Pre", + "Resample Image", + "Resample Latent", + "Resample Mask", + "Resampler | Area", + "Resampler | Jinc-Lanczos", + "Resampler | Lanczos", + "Resampler | Mitchell-Netravali", + "Resampler | Nearest-Neighbor", + "Resampler | Triangle", + "Scaler | Area", + "Scaler | Fixed", + "Scaler | Megapixels", + "Scaler | Pixel Deltas", + "Scaler | Side", + "Scaler | Sides Unlinked" + ], + { + "title_aux": "comfyui-some-image-processing-stuff" + } + ], + "https://github.com/woct0rdho/ComfyUI-RadialAttn": [ + [ + "PatchRadialAttn" + ], + { + "title_aux": "ComfyUI-RadialAttn" + } + ], "https://github.com/wolfden/ComfyUi_PromptStylers": [ [ "SDXLPromptStylerAll", @@ -11168,12 +41454,47 @@ "title_aux": "ComfyUi_String_Function_Tree" } ], - "https://github.com/wsippel/comfyui_ws/raw/main/sdxl_utility.py": [ + "https://github.com/wootwootwootwoot/ComfyUI-RK-Sampler": [ [ - "SDXLResolutionPresets" + "RungeKuttaSampler" ], { - "title_aux": "SDXLResolutionPresets" + "author": "wootwootwootwoot", + "description": "Batched Runge-Kutta Samplers for ComfyUI", + "nickname": "ComfyUI-RK-Sampler", + "title": "ComfyUI-RK-Sampler", + "title_aux": "ComfyUI-RK-Sampler" + } + ], + "https://github.com/wqjuser/ComfyUI-Chat-Image": [ + [ + "LLMImageDescription" + ], + { + "title_aux": "ComfyUI-Chat-Image" + } + ], + "https://github.com/wu12023/ComfyUI-Image-Evaluation": [ + [ + "Clip_Score-\ud83d\udd2c", + "Dino_Score-\ud83d\udd2c" + ], + { + "title_aux": "ComfyUI-Image-Evaluation" + } + ], + "https://github.com/wujm424606/ComfyUi-Ollama-YN": [ + [ + "MyOllamaDeleteModel", + "MyOllamaGenerate", + "MyOllamaGenerateAdvance", + "MyOllamaLoadContext", + "MyOllamaSaveContext", + "MyOllamaSpecialGenerateAdvance", + "MyOllamaVision" + ], + { + "title_aux": "ComfyUi-Ollama-YN" } ], "https://github.com/wutipong/ComfyUI-TextUtils": [ @@ -11195,6 +41516,14 @@ "title_aux": "ComfyUI-Simple-Aspect-Ratio" } ], + "https://github.com/wywywywy/ComfyUI-pause": [ + [ + "PauseWorkflowNode" + ], + { + "title_aux": "ComfyUI Pause Workflow Node" + } + ], "https://github.com/xXAdonesXx/NodeGPT": [ [ "AppendAgent", @@ -11238,6 +41567,61 @@ "title_aux": "NodeGPT" } ], + "https://github.com/xfgexo/EXO-Custom-ComfyUI-Nodes": [ + [ + "ComfyUI_EXO_Clip_Text_Encode", + "ComfyUI_EXO_DisplayText", + "ComfyUI_EXO_FluxSampler", + "ComfyUI_EXO_FluxSamplerMini", + "ComfyUI_EXO_ImageRescale", + "ComfyUI_EXO_LatentImageSize", + "ComfyUI_EXO_LatentImageSizeX", + "ComfyUI_EXO_Notes", + "ComfyUI_EXO_NumericValue", + "ComfyUI_EXO_PromptBuilderDeluxe", + "ComfyUI_EXO_SaveText", + "ComfyUI_EXO_TranslateText" + ], + { + "title_aux": "EXO Custom ComfyUI Nodes" + } + ], + "https://github.com/xhiroga/ComfyUI-FramePackWrapper_PlusOne": [ + [ + "DownloadAndLoadFramePackModel", + "FramePackFindNearestBucket", + "FramePackLoraSelect", + "FramePackSampler", + "FramePackSampler_F1", + "FramePackSingleFrameResizeSampler", + "FramePackSingleFrameSampler", + "FramePackTimestampedTextEncode", + "FramePackTorchCompileSettings", + "LoadFramePackModel", + "ReferenceEmbedsList", + "ReferenceLatentList", + "ReferenceMaskList" + ], + { + "title_aux": "ComfyUI-FramePackWrapper_PlusOne" + } + ], + "https://github.com/xiaogui8dangjia/Comfyui-imagetoSTL": [ + [ + "ImageToSTLNode" + ], + { + "title_aux": "Comfyui-imagetoSTL" + } + ], + "https://github.com/xiaowc-lib/comfyui-dynamic-params": [ + [ + "DynamicParams" + ], + { + "title_aux": "Comfyui-Dynamic-Params" + } + ], "https://github.com/xiaoxiaodesha/hd_node": [ [ "Combine HDMasks", @@ -11252,7 +41636,47 @@ "title_aux": "hd-nodes-comfyui" } ], - "https://github.com/xliry/ComfyUI_SendDiscord/raw/main/SendDiscord.py": [ + "https://github.com/xingBaGan/ComfyUI-connect-ui": [ + [ + "SaveImageByWebsocket", + "reciveImageByWebsocket" + ], + { + "title_aux": "ComfyUI-connect-ui" + } + ], + "https://github.com/xlinx/ComfyUI-decadetw-auto-messaging-realtime": [ + [ + "Auto-MSG-ALL", + "Auto-MSG-Discord-Bot", + "Auto-MSG-Line-Notify", + "Auto-MSG-Telegram-Bot" + ], + { + "title_aux": "ComfyUI-decadetw-auto-messaging-realtime" + } + ], + "https://github.com/xlinx/ComfyUI-decadetw-auto-prompt-llm": [ + [ + "Auto-LLM-Chat", + "Auto-LLM-Text", + "Auto-LLM-Text-Vision", + "Auto-LLM-Vision" + ], + { + "title_aux": "ComfyUI-decadetw-auto-prompt-llm" + } + ], + "https://github.com/xlinx/ComfyUI-decadetw-spout-syphon-im-vj": [ + [ + "Im-SD-VJ-SPOUT", + "Im-SD-VJ-SYPHON" + ], + { + "title_aux": "ComfyUI-decadetw-spout-syphon-im-vj" + } + ], + "https://github.com/xliry/ComfyUI_SendDiscord": [ [ "SendDiscord" ], @@ -11260,6 +41684,234 @@ "title_aux": "ComfyUI_SendDiscord" } ], + "https://github.com/xmarre/TorchCompileModel_LoRASafe": [ + [ + "TorchCompileModel_LoRASafe" + ], + { + "title_aux": "LoRA-Safe TorchCompile" + } + ], + "https://github.com/xobiomesh/ComfyUI_xObiomesh": [ + [ + "OllamaModelSelect", + "OllamaTextGen", + "ShowText_xO", + "xO_ComfyUIPortRunner", + "xO_GetImageFilename", + "xO_LoadRecentFile", + "xO_TestScriptRunner", + "xO_WorkflowRunner" + ], + { + "title_aux": "ComfyUI Neural Nodes" + } + ], + "https://github.com/xs315431/Comfyui_Get_promptId": [ + [ + "GetPromptId", + "SuccessCallback", + "UploadVideo" + ], + { + "title_aux": "Comfyui_Get_promptId" + } + ], + "https://github.com/xuhongming251/ComfyUI-GPEN": [ + [ + "FaceEnhancement" + ], + { + "title_aux": "ComfyUI-GPEN" + } + ], + "https://github.com/xuhongming251/ComfyUI-Jimeng": [ + [ + "JimengAPIClient", + "JimengFirstLastFrame2Video", + "JimengImage2Video", + "PreviewVideoFromUrl" + ], + { + "title_aux": "ComfyUI-Jimeng" + } + ], + "https://github.com/xuhongming251/ComfyUI-MuseTalkUtils": [ + [ + "MuseTalkPostprocess", + "MuseTalkPreprocess", + "MuseTalkTrain", + "MuseTalkTrainPreprocess", + "MuseTalkUncropMask" + ], + { + "title_aux": "ComfyUI-MuseTalkUtils" + } + ], + "https://github.com/xuhongming251/ComfyUI_Camera": [ + [ + "Load Image From Local Camera", + "Save Image To Local Camera" + ], + { + "title_aux": "ComfyUI_Camera" + } + ], + "https://github.com/yamanacn/comfyui_kontext_Analyze": [ + [ + "KontextDuoImageAnalyzer" + ], + { + "title_aux": "ComfyUI Kontext Duo Image Analyzer" + } + ], + "https://github.com/yanhuifair/comfyui-janus": [ + [ + "JanusProImageGenerationNode", + "JanusProModelLoaderNode", + "JanusProMultimodalUnderstandingNode" + ], + { + "title_aux": "comfyui-janus" + } + ], + "https://github.com/yanlang0123/ComfyUI_Lam": [ + [ + "AppParams", + "AspectRatio", + "AudioBeforeAfterSilence", + "AutioInfo", + "AutioPath", + "DoWhileEnd", + "DoWhileStart", + "EasyPromptSelecto", + "FaceFusion", + "ForEnd", + "ForInnerEnd", + "ForInnerStart", + "ForStart", + "GLM3Prompt", + "IdentifyingQR", + "IfInnerExecute", + "Image2Video", + "ImageAddMask", + "ImageBlank", + "ImageClone", + "ImageCropFaces", + "ImageLama", + "ImageToMasks", + "JyAnimationGroup", + "JyAnimationIn", + "JyAnimationOut", + "JyAudio2CaptionsGroup", + "JyAudioNative", + "JyAudioTrack", + "JyCaptionsNative", + "JyCaptionsTrack", + "JyEffectNative", + "JyEffectTrack", + "JyMediaAnimation", + "JyMediaNative", + "JyMediaTrack", + "JyMultiAudioGroup", + "JyMultiCaptionsGroup", + "JyMultiEffectGroup", + "JyMultiMediaGroup", + "JySaveDraft", + "JySaveNoOutDraft", + "JySaveNotOutDraft", + "JySaveOutDraft", + "JyTransition", + "LAM.OpenPoseEditorPlus", + "LamCommonHidden", + "LamCommonNames", + "LamCommonPrint", + "LamCommonPrintNoOutput", + "LamFaceAnalysisModels", + "LamGetPngInfo", + "LamHeyGemNode", + "LamHeyGemQueryNode", + "LamLoadImageBase64", + "LamLoadPathImage", + "LamLoadVideo", + "LamReadFileList", + "LamSamplerName", + "LamSaveAudio", + "LamSaveOnly", + "LamSaveVideo", + "LamScheduler", + "LamSwitcherCase", + "LamViewVideo", + "LamViewVideoOut", + "LoadDirImgPaths", + "LoadImagePath", + "LoadReplaceImage", + "LongTextToList", + "MultiControlNetApply", + "MultiGLIGENTextBoxApply", + "MultiIPAdapterRegional", + "MultiIntFormula", + "MultiMergeAudio", + "MultiMergeVideos", + "MultiParamFormula", + "MultiTextConcatenate", + "MultiTextEncode", + "MultiTextEncodeAdvanced", + "MultiTextSelelct", + "MultiTextSetArea", + "MultiTextSetGligen", + "MultiTextSetMask", + "OutDoWhileEnd", + "OutDoWhileStart", + "PreviewImageLam", + "PromptTranslator", + "QRCode", + "SaveImageLam", + "SaveImgOutputLam", + "SectionEnd", + "SectionStart", + "StyleSelecto", + "Text2AutioEdgeTts", + "TextListSelelct", + "VideoAddAudio", + "VideoExtractAudio", + "VideoFaceFusion", + "VideoPath", + "WaitImagSelector", + "ZhPromptTranslator" + ], + { + "title_aux": "ComfyUI_Lam" + } + ], + "https://github.com/yasser-baalla/comfyUI-SemanticImageFetch": [ + [ + "ColorGradeSampler", + "ColorGrading", + "SemanticImageFetch" + ], + { + "title_aux": "comfyUI-SemanticImageFetch" + } + ], + "https://github.com/ycchanau/ComfyUI_Preview_Magnifier": [ + [ + "YC.ImageComparerMagnifier", + "YC.PreviewImageMagnifier", + "YC.XYPreviewImageMagnifier" + ], + { + "title_aux": "ComfyUI Preview Magnifier" + } + ], + "https://github.com/ycyy/ComfyUI-YCYY-LoraInfo": [ + [ + "LoraInfo" + ], + { + "title_aux": "ComfyUI-YCYY-LoraInfo" + } + ], "https://github.com/yffyhk/comfyui_auto_danbooru": [ [ "GetDanbooru", @@ -11269,6 +41921,235 @@ "title_aux": "comfyui_auto_danbooru" } ], + "https://github.com/yhayano-ponotech/ComfyUI-Fal-API-Flux": [ + [ + "FalAPIFluxControlNetConfigNode", + "FalAPIFluxControlNetUnionConfigNode", + "FalAPIFluxDevCannyWithLoraNode", + "FalAPIFluxDevImageToImageNode", + "FalAPIFluxDevNode", + "FalAPIFluxDevWithLoraAndControlNetImageToImageNode", + "FalAPIFluxDevWithLoraAndControlNetInpaintNode", + "FalAPIFluxDevWithLoraAndControlNetNode", + "FalAPIFluxDevWithLoraImageToImageNode", + "FalAPIFluxDevWithLoraInpaintNode", + "FalAPIFluxDevWithLoraNode", + "FalAPIFluxLoraConfigNode", + "FalAPIFluxProCannyNode", + "FalAPIFluxProDepthNode", + "FalAPIFluxProFillNode", + "FalAPIFluxProNode", + "FalAPIFluxProReduxNode", + "FalAPIFluxProV11Node", + "FalAPIFluxProV11UltraNode" + ], + { + "title_aux": "ComfyUI-Fal-API-Flux" + } + ], + "https://github.com/yhayano-ponotech/comfyui-save-image-local": [ + [ + "Local Save" + ], + { + "title_aux": "ComfyUI Local Save Node" + } + ], + "https://github.com/yhayano-ponotech/comfyui-stability-ai-api": [ + [ + "Preview3DModel", + "Save3DModel", + "StabilityControlSketch", + "StabilityControlStructure", + "StabilityControlStyle", + "StabilityEdit", + "StabilityImageCore", + "StabilityImageSD3", + "StabilityImageToVideo", + "StabilityImageUltra", + "StabilityUpscaleConservative", + "StabilityUpscaleCreative", + "StabilityUpscaleFast", + "StableFast3D", + "StablePointAware3D" + ], + { + "title_aux": "ComfyUI-Stability-AI-API" + } + ], + "https://github.com/yichengup/ComfyUI-LinearTransition": [ + [ + "GradientTransition", + "LinearTransition" + ], + { + "title_aux": "ComfyUI-LinearTransition" + } + ], + "https://github.com/yichengup/ComfyUI-YCNodes": [ + [ + "AdvancedImageSelector", + "DynamicThreshold", + "ImageBatchSelector", + "ImageBlendResize", + "ImageIC", + "ImageICAdvanced", + "ImageLoaderAdvanced", + "ImageMirror", + "ImageMosaic", + "ImageRotate", + "ImageSelector", + "ImageUpscaleTiled", + "IrregularToEllipseMask", + "LoadImagesFromFolder", + "MaskBatchComposite", + "MaskBatchCopy", + "MaskContourFillNode", + "MaskCropRestore_YC", + "MaskCrop_YC", + "MaskFilterBySolidity", + "MaskFromBatch", + "MaskPreviewNode", + "MaskRepeatBatch", + "MaskSmartValleySplit", + "MaskSplitFilter", + "MaskTopNFilter", + "TextKeyword", + "YC Extract Number", + "YC Mask Condition Switch", + "YC Seed List", + "YC Super Selector", + "YC Text Condition Switch", + "YC Text Index Switch", + "YC Universal Gate", + "YCImageSmartCrop", + "YCImageSmartPad", + "YCImageTile", + "YCImageUntile", + "YCMaskComposite", + "YCRemapMaskRange", + "YCTextImageGenerator", + "YC_FiveTextCombineNode", + "YC_Image_Save", + "YC_SingleTextNode", + "YC_textReplaceNode" + ], + { + "title_aux": "ComfyUI-YCNodes" + } + ], + "https://github.com/yichengup/ComfyUI_SwiftCut": [ + [ + "SelectImages", + "SelectImagesAdvanced", + "YCImageBatchBlend", + "YCImageOverlayBlend", + "YCImagePushPullLens" + ], + { + "title_aux": "ComfyUI_SwiftCut" + } + ], + "https://github.com/yichengup/ComfyUI_Yc_JanusPro": [ + [ + "ImageAnalyzer", + "JanusChatAnalyzer", + "JanusImageGenerator", + "JanusProLoader" + ], + { + "title_aux": "ComfyUI_Yc_JanusPro" + } + ], + "https://github.com/yichengup/Comfyui-Deepseek": [ + [ + "DeepseekAdvancedNode", + "DeepseekNode", + "DeepseekReasonerNode", + "SiliconDeepseekChat", + "SiliconDeepseekReasoner" + ], + { + "title_aux": "Comfyui-Deepseek" + } + ], + "https://github.com/yichengup/Comfyui-Ycanvas": [ + [ + "CanvasNode" + ], + { + "title_aux": "Comfyui-Ycanvas" + } + ], + "https://github.com/yichengup/Comfyui_Flux_Style_Adjust": [ + [ + "StyleModelAdvancedApply" + ], + { + "title_aux": "Comfyui_Flux_Style_Adjust (Redux)" + } + ], + "https://github.com/yichengup/Comfyui_Redux_Advanced": [ + [ + "StyleAdvancedApply", + "YC_LG_Redux" + ], + { + "title_aux": "Comfyui_Redux_Advanced" + } + ], + "https://github.com/yichengup/comfyui-face-liquify": [ + [ + "FaceLiquifyNode" + ], + { + "title_aux": "comfyui-face-liquify" + } + ], + "https://github.com/yiwangsimple/ComfyUI_DW_Chat": [ + [ + "DeepSeekChatNode", + "DeepSeekTranslator", + "ErrorLogNode", + "ExecutionTime", + "FileBasedChatNode", + "FluxPromptEngineeringNode", + "Gemini1_5Text", + "Gemini1_5Vision", + "GeminiFluxPrompt", + "Gemma2PromptNode", + "GemmaDialogueNode", + "GithubLinkNode", + "GroqChatNode", + "MoonshotMultiChatNode", + "MoonshotSingleChatNode", + "OllamaImageToText", + "OllamaPromptExtractor", + "OllamaTextToText", + "PaliGemma3bCaptioner", + "PromptEngineeringNode", + "PromptExtractorNode", + "Qwen2VLCaption", + "Qwen2VLLocalCaption", + "SD3LongCaptionerV2", + "SDPromptAgent", + "dwimage2" + ], + { + "title_aux": "ComfyUI_DW_Chat" + } + ], + "https://github.com/yiwangsimple/florence_dw": [ + [ + "Florence2", + "Florence2Postprocess", + "Florence2PostprocessAll", + "LoadFlorence2Model" + ], + { + "title_aux": "florence_dw" + } + ], "https://github.com/yolain/ComfyUI-Easy-Use": [ [ "dynamicThresholdingFull", @@ -11277,6 +42158,7 @@ "easy XYInputs: Checkpoint", "easy XYInputs: ControlNet", "easy XYInputs: Denoise", + "easy XYInputs: FluxGuidance", "easy XYInputs: Lora", "easy XYInputs: ModelMergeBlocks", "easy XYInputs: NegativeCond", @@ -11290,29 +42172,58 @@ "easy XYPlot", "easy XYPlotAdvanced", "easy a1111Loader", + "easy ab", + "easy anythingIndexSwitch", + "easy anythingInversedSwitch", + "easy applyBrushNet", + "easy applyFooocusInpaint", + "easy applyInpaint", + "easy applyPowerPaint", + "easy batchAnything", + "easy blocker", "easy boolean", "easy cascadeKSampler", "easy cascadeLoader", + "easy ckptNames", "easy cleanGpuUsed", "easy clearCacheAll", "easy clearCacheKey", "easy comfyLoader", "easy compare", + "easy conditioningIndexSwitch", "easy controlnetLoader", + "easy controlnetLoader++", "easy controlnetLoaderADV", + "easy controlnetNames", + "easy controlnetStack", + "easy controlnetStackApply", "easy convertAnything", "easy detailerFix", - "easy dynamiCrafterLoader", "easy float", - "easy fooocusInpaintLoader", + "easy fluxLoader", + "easy forLoopEnd", + "easy forLoopStart", "easy fullCascadeKSampler", "easy fullLoader", "easy fullkSampler", "easy globalSeed", "easy hiresFix", + "easy humanSegmentation", + "easy hunyuanDiTLoader", + "easy icLightApply", "easy if", + "easy ifElse", + "easy imageBatchToImageList", "easy imageChooser", + "easy imageColorMatch", + "easy imageConcat", + "easy imageCount", + "easy imageCropFromMask", + "easy imageDetailTransfer", + "easy imageIndexSwitch", "easy imageInsetCrop", + "easy imageInterrogator", + "easy imageListToImageBatch", "easy imagePixelPerfect", "easy imageRatio", "easy imageRemBg", @@ -11320,12 +42231,22 @@ "easy imageScaleDown", "easy imageScaleDownBy", "easy imageScaleDownToSize", + "easy imageScaleToNormPixels", "easy imageSize", "easy imageSizeByLongerSide", "easy imageSizeBySide", + "easy imageSplitGrid", "easy imageSplitList", + "easy imageSplitTiles", "easy imageSwitch", + "easy imageTilesFromBatch", + "easy imageToBase64", "easy imageToMask", + "easy imageUncropFromBBOX", + "easy imagesCountInDirectory", + "easy imagesSplitImage", + "easy indexAnything", + "easy injectNoiseToLatent", "easy instantIDApply", "easy instantIDApplyADV", "easy int", @@ -11333,24 +42254,50 @@ "easy ipadapterApplyADV", "easy ipadapterApplyEmbeds", "easy ipadapterApplyEncoder", + "easy ipadapterApplyFaceIDKolors", + "easy ipadapterApplyFromParams", + "easy ipadapterApplyRegional", "easy ipadapterStyleComposition", + "easy isFileExist", + "easy isMaskEmpty", + "easy isNone", "easy isSDXL", "easy joinImageBatch", + "easy joyCaption2API", + "easy joyCaption3API", "easy kSampler", + "easy kSamplerCustom", "easy kSamplerDownscaleUnet", "easy kSamplerInpainting", "easy kSamplerLayerDiffusion", "easy kSamplerSDTurbo", "easy kSamplerTiled", + "easy kolorsLoader", "easy latentCompositeMaskedWithCond", "easy latentNoisy", + "easy lengthAnything", + "easy loadImageBase64", + "easy loadImagesForLoop", + "easy loraNames", + "easy loraPromptApply", "easy loraStack", + "easy loraStackApply", + "easy loraSwitcher", + "easy makeImageForICLora", + "easy mathFloat", + "easy mathInt", + "easy mathString", + "easy mochiLoader", "easy negative", + "easy outputToList", "easy pipeBatchIndex", "easy pipeEdit", + "easy pipeEditPrompt", "easy pipeIn", "easy pipeOut", "easy pipeToBasicPipe", + "easy pixArtLoader", + "easy pixels", "easy portraitMaster", "easy poseEditor", "easy positive", @@ -11365,26 +42312,44 @@ "easy preSamplingLayerDiffusionADDTL", "easy preSamplingNoiseIn", "easy preSamplingSdTurbo", + "easy prompt", + "easy promptAwait", "easy promptConcat", "easy promptLine", "easy promptList", "easy promptReplace", + "easy pulIDApply", + "easy pulIDApplyADV", "easy rangeFloat", "easy rangeInt", + "easy removeLocalImage", "easy samLoaderPipe", + "easy saveImageLazy", + "easy saveText", + "easy saveTextLazy", "easy seed", + "easy seedList", "easy showAnything", + "easy showAnythingLazy", "easy showLoaderSettingsNames", "easy showSpentTime", "easy showTensorShape", + "easy sleep", + "easy sliderControl", "easy stableDiffusion3API", "easy string", + "easy styleAlignedBatchAlign", "easy stylesSelector", "easy sv3dLoader", "easy svdLoader", + "easy textIndexSwitch", + "easy textSwitch", "easy ultralyticsDetectorPipe", "easy unSampler", + "easy whileLoopEnd", + "easy whileLoopStart", "easy wildcards", + "easy wildcardsMatrix", "easy xyAny", "easy zero123Loader" ], @@ -11392,6 +42357,14 @@ "title_aux": "ComfyUI Easy Use" } ], + "https://github.com/yolanother/ComfyUI-Save16bitPng": [ + [ + "SaveImageARGB16PNG" + ], + { + "title_aux": "Save Uncompressed 16 Bit PNG" + } + ], "https://github.com/yolanother/DTAIComfyImageSubmit": [ [ "DTSimpleSubmitImage", @@ -11466,6 +42439,72 @@ "title_aux": "Image to Text Node" } ], + "https://github.com/yondonfu/ComfyUI-Background-Edit": [ + [ + "BackgroundColor", + "Composite", + "GaussianBlur" + ], + { + "title_aux": "ComfyUI-Background-Edit" + } + ], + "https://github.com/yondonfu/ComfyUI-Torch-Compile": [ + [ + "TorchCompileLoadControlNet", + "TorchCompileLoadVAE" + ], + { + "title_aux": "ComfyUI-Torch-Compile" + } + ], + "https://github.com/yorkane/ComfyUI-KYNode": [ + [ + "KY_AnyByIndex", + "KY_AnyToList", + "KY_BBoxPosition", + "KY_BBoxToXYWH", + "KY_BBoxesToSAM2", + "KY_CreateMask", + "KY_CreateVideoObjectFromPath", + "KY_FilePathAnalyzer-", + "KY_FileSequenceAnalyzer", + "KY_First_NOT_EMPTY", + "KY_ImageCropByBBox", + "KY_JSONToBBox", + "KY_JoinToString", + "KY_LoadImageFrom", + "KY_LoadImagesFromFolder", + "KY_LoadVideoByPath", + "KY_MathExpression", + "KY_MergeToJSON", + "KY_OpenAICaptionImage", + "KY_OpenAICaptionImages", + "KY_OpenAIChat", + "KY_ReadImage", + "KY_RegexExtractor", + "KY_RegexReplace", + "KY_SaveImageToPath", + "KY_ToVideoUrl", + "KY_VideoCompare", + "KY_isNone", + "KY_restoreBBox", + "KY_toBBox" + ], + { + "title_aux": "ComfyUI-KYNode" + } + ], + "https://github.com/younyokel/comfyui_prompt_formatter": [ + [ + "CLIPTextEncodeFormatter", + "TextAppendFormatter", + "TextOnlyFormatter" + ], + { + "title_aux": "ComfyUI Prompt Formatter" + } + ], "https://github.com/youyegit/tdxh_node_comfyui": [ [ "TdxhBoolNumber", @@ -11481,20 +42520,91 @@ "TdxhOnOrOff", "TdxhReference", "TdxhStringInput", - "TdxhStringInputTranslator" + "TdxhStringInputTranslator", + "TdxhToggleGuest", + "TdxhToggleMaster" ], { "title_aux": "tdxh_node_comfyui" } ], + "https://github.com/yuan199696/add_text_2_img": [ + [ + "AddText" + ], + { + "title_aux": "add_text_2_img" + } + ], + "https://github.com/yuan199696/chinese_clip_encode": [ + [ + "ChineseCLIPEncode" + ], + { + "title_aux": "chinese_clip_encode" + } + ], + "https://github.com/yushan777/ComfyUI-Y7-SBS-2Dto3D": [ + [ + "Y7_SideBySide", + "Y7_VideoSideBySide" + ], + { + "title_aux": "ComfyUI-Y7-SBS-2Dto3D" + } + ], + "https://github.com/yushan777/ComfyUI-Y7Nodes": [ + [ + "Y7Nodes_CLIP_TokenCounter", + "Y7Nodes_CatchEditTextNodeDual", + "Y7Nodes_Grid2Batch", + "Y7Nodes_ImageRow", + "Y7Nodes_ImageSizePresets", + "Y7Nodes_PromptEnhancerFlux", + "Y7Nodes_ShowAnything", + "Y7Nodes_SmolVLM", + "Y7Nodes_T5_TokenCounter", + "Y7Nodes_Text" + ], + { + "title_aux": "Y7Nodes for ComfyUI" + } + ], "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt": [ [ - "DepthAnythingTensorrtNode" + "DepthAnythingEngineBuilder", + "DepthAnythingTensorrt" ], { "title_aux": "ComfyUI Depth Anything TensorRT" } ], + "https://github.com/yuvraj108c/ComfyUI-Dwpose-Tensorrt": [ + [ + "DwposeTensorrt", + "LoadDwposeTensorrtModels" + ], + { + "title_aux": "ComfyUI Dwpose TensorRT" + } + ], + "https://github.com/yuvraj108c/ComfyUI-FLOAT": [ + [ + "FloatProcess", + "LoadFloatModels" + ], + { + "title_aux": "ComfyUI FLOAT" + } + ], + "https://github.com/yuvraj108c/ComfyUI-Facerestore-Tensorrt": [ + [ + "FaceRestoreTensorrt" + ], + { + "title_aux": "ComfyUI Facerestore TensorRT" + } + ], "https://github.com/yuvraj108c/ComfyUI-PiperTTS": [ [ "PiperTTS" @@ -11505,6 +42615,8 @@ ], "https://github.com/yuvraj108c/ComfyUI-Pronodes": [ [ + "ImagesSeekerNode", + "ImagesShufflerNode", "LoadImageFromOutputDirectoryNode", "LoadYoutubeVideoNode", "PreviewVHSAudioNode", @@ -11515,6 +42627,41 @@ "title_aux": "ComfyUI-Pronodes" } ], + "https://github.com/yuvraj108c/ComfyUI-Rife-Tensorrt": [ + [ + "RifeTensorrt" + ], + { + "title_aux": "ComfyUI Rife TensorRT" + } + ], + "https://github.com/yuvraj108c/ComfyUI-Thera": [ + [ + "LoadTheraModel", + "TheraProcess" + ], + { + "title_aux": "ComfyUI Thera" + } + ], + "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt": [ + [ + "LoadUpscalerTensorrtModel", + "UpscalerTensorrt" + ], + { + "title_aux": "ComfyUI Upscaler TensorRT" + } + ], + "https://github.com/yuvraj108c/ComfyUI-Video-Depth-Anything": [ + [ + "LoadVideoDepthAnythingModel", + "VideoDepthAnythingProcess" + ], + { + "title_aux": "ComfyUI Video Depth Anything" + } + ], "https://github.com/yuvraj108c/ComfyUI-Vsgan": [ [ "DepthAnythingTrtNode", @@ -11536,16 +42683,113 @@ "title_aux": "ComfyUI Whisper" } ], - "https://github.com/yytdfc/ComfyUI-Bedrock": [ + "https://github.com/yuvraj108c/ComfyUI-YoloNasPose-Tensorrt": [ [ - "Bedrock - Claude", - "Bedrock - SDXL", - "Bedrock - Titan Image", - "Prompt Regex Remove", - "Prompt Template" + "YoloNasPoseEngineBuilder", + "YoloNasPoseTensorrt" ], { - "title_aux": "Amazon Bedrock nodes for for ComfyUI" + "title_aux": "ComfyUI YoloNasPose Tensorrt" + } + ], + "https://github.com/yuvraj108c/ComfyUI_InvSR": [ + [ + "InvSRSampler", + "LoadInvSRModels" + ], + { + "title_aux": "ComfyUI InvSR" + } + ], + "https://github.com/yvann-ba/ComfyUI_Yvann-Nodes": [ + [ + "Audio Analysis", + "Audio IPAdapter Transitions", + "Audio Peaks Detection", + "Audio Prompt Schedule", + "Audio Remixer", + "Edit Audio Weights", + "Float to Int", + "Floats To Weights Strategy", + "Floats Visualizer", + "Invert Floats", + "Load Audio Separation Model", + "Mask To Float", + "Repeat Image To Count" + ], + { + "title_aux": "ComfyUI_Yvann-Nodes" + } + ], + "https://github.com/za-wa-n-go/ComfyUI_Zwng_Nodes": [ + [ + "ZwngLoadImagePathOrURL", + "ZwngPreviewImageAndMask", + "ZwngSimpleGoogleTranslater", + "ZwngSimplePhotoshopConnector" + ], + { + "title_aux": "ComfyUI_Zwng_Nodes" + } + ], + "https://github.com/zade23/Comfyui-Distill-Any-Depth": [ + [ + "DistillAnyDepthProcessImage", + "DownloadDistillAnyDepthModel" + ], + { + "title_aux": "Comfyui-Distill-Any-Depth" + } + ], + "https://github.com/zade23/Comfyui-MoGe2": [ + [ + "RunMoGe2Process" + ], + { + "title_aux": "ComfyUI-MoGe2" + } + ], + "https://github.com/zaheenrahman/ComfyUI-ColorCorrection": [ + [ + "ClothingColorCorrection" + ], + { + "title_aux": "ComfyUI-ColorCorrection" + } + ], + "https://github.com/zccrs/comfyui-dci": [ + [ + "Base64Decoder", + "Base64Encoder", + "BinaryFileLoader", + "BinaryFileSaver", + "DCIAnalysis", + "DCIFileNode", + "DCIFileSaver", + "DCIImage", + "DCIImagePreview", + "DCIPreviewNode", + "DCISampleImage", + "DCI_Analysis", + "DCI_Base64Decoder", + "DCI_Base64Encoder", + "DCI_BinaryFileLoader", + "DCI_BinaryFileSaver", + "DCI_DebLoader", + "DCI_DebPackager", + "DCI_DirectoryLoader", + "DCI_FileNode", + "DCI_FileSaver", + "DCI_Image", + "DCI_ImagePreview", + "DCI_PreviewNode", + "DCI_SampleImage", + "DebLoader", + "DebPackager", + "DirectoryLoader" + ], + { + "title_aux": "ComfyUI DCI" } ], "https://github.com/zcfrank1st/Comfyui-Toolbox": [ @@ -11577,6 +42821,44 @@ "title_aux": "comfyui_visual_anagram" } ], + "https://github.com/zeeoale/PromptCreatorNode": [ + [ + "PromptCreatorNode" + ], + { + "title_aux": "PromptCreatorNodetraumakom Prompt Generator" + } + ], + "https://github.com/zentrocdot/ComfyUI-RealESRGAN_Upscaler": [ + [ + "\ud83d\ude80 Universal RealESRGAN Upscaler", + "\ud83e\uddf3 Show Data" + ], + { + "title_aux": "ComfyUI-RealESRGAN_Upscaler" + } + ], + "https://github.com/zentrocdot/ComfyUI-Simple_Image_To_Prompt": [ + [ + "\ud83d\udc41\ufe0f Image To Prompt", + "\ud83d\udc41\ufe0f Image To Prompt (NO UPDATE)", + "\ud83e\uddf3 Show Data" + ], + { + "title_aux": "ComfyUI-Simple_Image_To_Prompt" + } + ], + "https://github.com/zentrocdot/ComfyUI_Circle_Detection": [ + [ + "\u270f\ufe0f Input Data", + "\ud83d\udcc4 Show Data", + "\ud83d\udd2c Circle Detection (Hough)", + "\ud83d\udd2c Ellipse Detection (Simple)" + ], + { + "title_aux": "ComfyUI_Circle_Detection" + } + ], "https://github.com/zer0TF/cute-comfy": [ [ "Cute.Placeholder" @@ -11585,6 +42867,33 @@ "title_aux": "Cute Comfy" } ], + "https://github.com/zer0thgear/zer0-comfy-utils": [ + [ + "List Combine Node (zer0)", + "Multiline String Node (zer0)", + "Prompt Minimizer And Splitter Node (zer0)", + "Quality Tag Prepend Node (zer0)", + "Tavern Card Creation Node (zer0)", + "Tavern Card Info Node (zer0)" + ], + { + "author": "zer0gear", + "description": "Dubiously useful nodes that I've made for my own use.", + "nickname": "zer0gear Comfy Utils", + "title": "zer0gear's Comfy Utilities", + "title_aux": "zer0 Comfy Utilities" + } + ], + "https://github.com/zeroxoxo/ComfyUI-Fast-Style-Transfer": [ + [ + "FastStyleTransfer", + "NeuralStyleTransfer", + "TrainFastStyleTransfer" + ], + { + "title_aux": "ComfyUI-Fast-Style-Transfer" + } + ], "https://github.com/zfkun/ComfyUI_zfkun": [ [ "ZFLoadImagePath", @@ -11599,14 +42908,75 @@ ], "https://github.com/zhangp365/ComfyUI-utils-nodes": [ [ - "ConcatText", + "BooleanControlOutput", + "CheckpointLoaderSimpleWithSwitch", + "ColorCorrectOfUtils", + "ConcatTextOfUtils", + "CropByMaskToSpecificSize", + "DeepfaceAnalyzeFaceAttributes", + "DetectorForNSFW", + "EmptyConditioning", + "FloatMultipleAddLiteral", + "FrameAdjuster", + "GeminiPromptEnhance", + "GenderControlOutput", + "ImageAutoSelector", "ImageBatchOneOrMore", - "IntAndIntAddOffsetLiteral", + "ImageCompositeMaskedOneByOne", + "ImageCompositeMaskedWithSwitch", + "ImageCompositeWatermark", + "ImageConcanateOfUtils", + "ImageMaskColorAverage", + "ImageResizeTo8x", + "ImageTransition", + "ImageTransitionBottomToTop", + "ImageTransitionLeftToRight", + "ImageTransitionRightToLeft", + "ImageTransitionTopToBottom", + "ImagesConcanateToGrid", + "IntMultipleAddLiteral", + "LoadImageMaskWithSwitch", + "LoadImageMaskWithoutListDir", "LoadImageWithSwitch", - "ModifyTextGender" + "LoadImageWithoutListDir", + "MaskAreaComparison", + "MaskAutoSelector", + "MaskCoverFourCorners", + "MaskFastGrow", + "MaskFromFaceModel", + "MaskofCenter", + "MatchImageRatioToPreset", + "ModifyTextGender", + "NeedImageSizeAndCount", + "ReplicateRequstNode", + "SplitMask", + "TextInputAutoSelector", + "TextPreview", + "TorchCompileModelAdvanced", + "UpscaleImageWithModelIfNeed", + "VolcanoImageEditNode", + "VolcanoOutpaintingNode" ], { - "title_aux": "zhangp365/Some Utils for ComfyUI" + "title_aux": "zhangp365/ComfyUI-utils-nodes" + } + ], + "https://github.com/zhangp365/ComfyUI_photomakerV2_native": [ + [ + "PhotoMakerEncodeV2", + "PhotoMakerLoaderV2" + ], + { + "title_aux": "ComfyUI_photomakerV2_native" + } + ], + "https://github.com/zhiselfly/ComfyUI-Alimama-ControlNet-compatible": [ + [ + "SD3AlimamaInpaintControlNetApplyAdvanced", + "SD3AlimamaInpaintControlNetLoader" + ], + { + "title_aux": "ComfyUI-Alimama-ControlNet-compatible" } ], "https://github.com/zhongpei/ComfyUI-InstructIR": [ @@ -11618,30 +42988,6 @@ "title_aux": "ComfyUI for InstructIR" } ], - "https://github.com/zhongpei/Comfyui_image2prompt": [ - [ - "CLIP AdvancedTextEncode|fofo", - "CLIP PromptConditioning|fofo", - "Image2Text", - "Image2TextWithTags", - "ImageBatchToList|fofo", - "ImageRewardScore|fofo", - "LoadImage2TextModel", - "LoadImageRewardScoreModel|fofo", - "LoadT5Model|fofo", - "LoadText2PromptModel", - "ShowText|fofo", - "T5QuantizationConfig|fofo", - "T5Text2Prompt|fofo", - "Text2GPTPrompt", - "Text2Prompt", - "TextBox|fofo", - "Translate2Chinese|fofo" - ], - { - "title_aux": "Comfyui_image2prompt" - } - ], "https://github.com/zhuanqianfish/ComfyUI-EasyNode": [ [ "EasyCaptureNode", @@ -11652,8 +42998,89 @@ "title_aux": "EasyCaptureNode for ComfyUI" } ], + "https://github.com/zhulu111/ComfyUI_Bxb": [ + [ + "bxbSwitch", + "sdBxb", + "sdBxb_saveImage", + "sdBxb_textInput" + ], + { + "title_aux": "ComfyUI_Bxb" + } + ], + "https://github.com/zichongc/ComfyUI-Attention-Distillation": [ + [ + "ADOptimizer", + "ADSampler", + "LoadDistiller", + "LoadPILImage", + "PureText", + "ResizeImage" + ], + { + "title_aux": "ComfyUI-Attention-Distillation" + } + ], + "https://github.com/ziwang-com/comfyui-deepseek-r1": [ + [ + "deep_gen", + "deep_load" + ], + { + "title_aux": "comfyui-deepseek-r1" + } + ], + "https://github.com/zl9739379/ComfyUI-ArkVideoGenerate": [ + [ + "ArkVideoGenerate" + ], + { + "title_aux": "ComfyUI-ArkVideoGenerate" + } + ], + "https://github.com/zmwv823/ComfyUI_Anytext": [ + [ + "UL_AnyText2Fonts", + "UL_AnyTextComposer", + "UL_AnyTextEncoder", + "UL_AnyTextFontImg", + "UL_AnyTextFormatter", + "UL_AnyTextLoader", + "UL_AnyTextSampler", + "UL_DiffusersCheckpointLoader", + "UL_DiffusersControlNetApplyAdvanced", + "UL_DiffusersControlNetLoader", + "UL_Image_Generation_Diffusers_Sampler", + "UL_Image_Generation_Glyph_ByT5", + "UL_Image_Generation_Glyph_ByT5_Checkponits_Loader", + "UL_Image_Generation_Glyph_ByT5_Font", + "UL_Image_Generation_JoyType_Font_Img", + "UL_Image_Generation_JoyType_Render_List", + "UL_Image_Process_Common_Cv2_Canny", + "UL_Translator", + "UL_TranslatorLoader", + "U_LoRAS" + ], + { + "title_aux": "ComfyUI_Anytext" + } + ], + "https://github.com/zohac/ComfyUI_ZC_DrawShape": [ + [ + "ZcDrawShape" + ], + { + "author": "Zohac", + "description": "nodes for artists, designers and animators.", + "nickname": "Zc DrawShape", + "title": "Zc DrawShape", + "title_aux": "ComfyUI_ZC_DrawShape" + } + ], "https://github.com/zombieyang/sd-ppp": [ [ + "CLIP Text Encode PS Regional", "Get Image From Photoshop Layer", "Send Images To Photoshop" ], @@ -11661,12 +43088,313 @@ "title_aux": "SD-PPP" } ], + "https://github.com/zubenelakrab/ComfyUI-ASV-Nodes": [ + [ + "ASVPromptGenerator" + ], + { + "title_aux": "ComfyUI-ASV-Nodes Node" + } + ], + "https://github.com/zygion/comfyui-zygion-util-nodes": [ + [ + "ItemListNode", + "SceneQueueNode", + "TemplateInputNode", + "TemplateProcessorNode", + "TriggerPassthroughNode" + ], + { + "title_aux": "i-zygion-util-nodes" + } + ], + "https://github.com/zzubnik/TT_TextTools": [ + [ + "TT_StoryCombiner", + "TT_TextFileSelectorNode", + "TT_TextInput", + "TT_TextReplacer" + ], + { + "title_aux": "TT_TextTools" + } + ], + "https://github.com/zzw5516/ComfyUI-zw-tools": [ + [ + "ZwPrompt", + "ZwPromptText" + ], + { + "title_aux": "ComfyUI-zw-tools" + } + ], + "https://raw.githubusercontent.com/1shadow1/hayo_comfyui_nodes/main/LZCNodes.py": [ + [ + "LoadPILImages", + "MergeImages", + "make_transparentmask", + "tensor_trans_pil", + "words_generatee" + ], + { + "title_aux": "Hayo comfyui nodes" + } + ], + "https://raw.githubusercontent.com/CaptainGrock/ComfyUIInvisibleWatermark/main/Invisible%20Watermark.py": [ + [ + "Apply Invisible Watermark", + "Extract Watermark" + ], + { + "title_aux": "ComfyUIInvisibleWatermark" + } + ], + "https://raw.githubusercontent.com/Dehypnotic/comfyui-aspect-ratio-advanced/main/aspect_ratio_advanced.py": [ + [ + "AspectRatioAdvanced" + ], + { + "title_aux": "AspectRatioAdvanced" + } + ], + "https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_AudioManipulation.py": [ + [ + "BatchJoinAudio", + "CutAudio", + "DuplicateAudio", + "JoinAudio", + "ResampleAudio", + "ReverseAudio", + "StretchAudio" + ], + { + "title_aux": "Waveform Extensions" + } + ], + "https://raw.githubusercontent.com/Onierous/QRNG_Node_ComfyUI/main/qrng_node.py": [ + [ + "QRNG_Node_CSV" + ], + { + "title_aux": "QRNG_Node_ComfyUI" + } + ], + "https://raw.githubusercontent.com/SadaleNet/CLIPTextEncodeA1111-ComfyUI/master/custom_nodes/clip_text_encoder_a1111.py": [ + [ + "CLIPTextEncodeA1111", + "RerouteTextForCLIPTextEncodeA1111" + ], + { + "title_aux": "ComfyUI A1111-like Prompt Custom Node Solution" + } + ], + "https://raw.githubusercontent.com/Ser-Hilary/SDXL_sizing/main/conditioning_sizing_for_SDXL.py": [ + [ + "get_aspect_from_image", + "get_aspect_from_ints", + "sizing_node", + "sizing_node_basic", + "sizing_node_unparsed" + ], + { + "title_aux": "SDXL_sizing" + } + ], + "https://raw.githubusercontent.com/barckley75/comfyUI_DaVinciResolve/main/custom_nodes/node_text_to_speech.py": [ + [ + "TextToSpeech" + ], + { + "title_aux": "comfyUI_DaVinciResolve" + } + ], + "https://raw.githubusercontent.com/bkunbargi/BrevImage/main/BrevLoadImage.py": [ + [ + "BrevImage" + ], + { + "title_aux": "BrevImage" + } + ], + "https://raw.githubusercontent.com/catscandrive/comfyui-imagesubfolders/main/loadImageWithSubfolders.py": [ + [ + "LoadImagewithSubfolders" + ], + { + "title_aux": "Image loader with subfolders" + } + ], + "https://raw.githubusercontent.com/dawangraoming/ComfyUI_ksampler_gpu/main/ksampler_gpu.py": [ + [ + "KSamplerAdvancedGPU", + "KSamplerGPU" + ], + { + "title_aux": "KSampler GPU" + } + ], + "https://raw.githubusercontent.com/fitCorder/fcSuite/main/fcSuite.py": [ + [ + "fcFloat", + "fcFloatMatic", + "fcHex", + "fcInteger" + ], + { + "title_aux": "fcSuite" + } + ], + "https://raw.githubusercontent.com/folkghost/comfyui_search_csv/main/search_csv_node.py": [ + [ + "Search CSV" + ], + { + "title_aux": "CSV Search Node" + } + ], + "https://raw.githubusercontent.com/huimengshiguang/AspectAwareTiling/refs/heads/main/hmsg-quanjing.py": [ + [ + "AspectAwareTiling" + ], + { + "title_aux": "AspectAwareTiling" + } + ], + "https://raw.githubusercontent.com/lordgasmic/comfyui_wildcards/master/wildcards.py": [ + [ + "CLIPTextEncodeWithWildcards" + ], + { + "title_aux": "Wildcards" + } + ], + "https://raw.githubusercontent.com/lrzjason/ComfyUIJasonNode/main/SDXLMixSampler.py": [ + [ + "SDXLMixSampler" + ], + { + "title_aux": "ComfyUIJasonNode" + } + ], + "https://raw.githubusercontent.com/m957ymj75urz/ComfyUI-Custom-Nodes/main/clip-text-encode-split/clip_text_encode_split.py": [ + [ + "RawText", + "RawTextCombine", + "RawTextEncode", + "RawTextReplace" + ], + { + "title_aux": "m957ymj75urz/ComfyUI-Custom-Nodes" + } + ], + "https://raw.githubusercontent.com/nicolai256/comfyUI_Nodes_nicolai256/main/yugioh-presets.py": [ + [ + "yugioh_Presets" + ], + { + "title_aux": "comfyUI_Nodes_nicolai256" + } + ], + "https://raw.githubusercontent.com/ntdviet/comfyui-ext/main/custom_nodes/gcLatentTunnel/gcLatentTunnel.py": [ + [ + "gcLatentTunnel" + ], + { + "title_aux": "ntdviet/comfyui-ext" + } + ], + "https://raw.githubusercontent.com/s1dlx/comfy_meh/main/meh.py": [ + [ + "MergingExecutionHelper" + ], + { + "title_aux": "comfy_meh" + } + ], + "https://raw.githubusercontent.com/seghier/ComfyUI_LibreTranslate/main/translate_node.py": [ + [ + "LibreTranslateLocally", + "LibreTranslateOnline" + ], + { + "title_aux": "ComfyUI_LibreTranslate" + } + ], + "https://raw.githubusercontent.com/taabata/Comfy_Syrian_Falcon_Nodes/main/SyrianFalconNodes.py": [ + [ + "CompositeImage", + "KSamplerAlternate", + "KSamplerPromptEdit", + "KSamplerPromptEditAndAlternate", + "LoopBack", + "QRGenerate", + "WordAsImage" + ], + { + "title_aux": "Syrian Falcon Nodes" + } + ], "https://raw.githubusercontent.com/throttlekitty/SDXLCustomAspectRatio/main/SDXLAspectRatio.py": [ [ "SDXLAspectRatio" ], { + "preemptions": [ + "SAMLoader" + ], "title_aux": "SDXLCustomAspectRatio" } + ], + "https://raw.githubusercontent.com/time-river/ComfyUI-CLIPSeg/main/custom_nodes/clipseg.py": [ + [ + "CLIPSeg", + "CombineSegMasks" + ], + { + "title_aux": "CLIPSeg" + } + ], + "https://raw.githubusercontent.com/tudal/Hakkun-ComfyUI-nodes/main/hakkun_nodes.py": [ + [ + "Any Converter", + "Calculate Upscale", + "Image Resize To Height", + "Image Resize To Width", + "Image size to string", + "Load Random Image", + "Load Text", + "Multi Text Merge", + "Prompt Parser", + "Random Line", + "Random Line 4" + ], + { + "title_aux": "Hakkun-ComfyUI-nodes" + } + ], + "https://raw.githubusercontent.com/ultimatech-cn/FaceSimilarity/main/faceSimilarity.py": [ + [ + "Face-analyze", + "Face-similarity" + ], + { + "title_aux": "FaceSimilarity" + } + ], + "https://raw.githubusercontent.com/vxinhao/color2rgb/main/color2rgb.py": [ + [ + "color2RGB" + ], + { + "title_aux": "color2rgb" + } + ], + "https://raw.githubusercontent.com/wsippel/comfyui_ws/main/sdxl_utility.py": [ + [ + "SDXLResolutionPresets" + ], + { + "title_aux": "SDXLResolutionPresets" + } ] } \ No newline at end of file diff --git a/extras.json b/extras.json new file mode 100644 index 00000000..22949306 --- /dev/null +++ b/extras.json @@ -0,0 +1,26 @@ +{ + "favorites": [ + "comfyui_ipadapter_plus", + "comfyui-animatediff-evolved", + "comfyui_controlnet_aux", + "comfyui-impact-pack", + "comfyui-impact-subpack", + "comfyui-custom-scripts", + "comfyui-layerdiffuse", + "comfyui-liveportraitkj", + "aigodlike-comfyui-translation", + "comfyui-reactor", + "comfyui_instantid", + "sd-dynamic-thresholding", + "pr-was-node-suite-comfyui-47064894", + "comfyui-advancedliveportrait", + "comfyui_layerstyle", + "efficiency-nodes-comfyui", + "comfyui-crystools", + "comfyui-advanced-controlnet", + "comfyui-videohelpersuite", + "comfyui-kjnodes", + "comfy-mtb", + "comfyui_essentials" + ] +} \ No newline at end of file diff --git a/git_helper.py b/git_helper.py index 37d6dcc7..e79b43a6 100644 --- a/git_helper.py +++ b/git_helper.py @@ -1,17 +1,56 @@ +import subprocess import sys import os +import traceback + import git -import configparser -import re import json -from torchvision.datasets.utils import download_url +import yaml +import requests from tqdm.auto import tqdm from git.remote import RemoteProgress -config_path = os.path.join(os.path.dirname(__file__), "config.ini") + +comfy_path = os.environ.get('COMFYUI_PATH') +git_exe_path = os.environ.get('GIT_EXE_PATH') + +if comfy_path is None: + print("\nWARN: The `COMFYUI_PATH` environment variable is not set. Assuming `custom_nodes/ComfyUI-Manager/../../` as the ComfyUI path.", file=sys.stderr) + comfy_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) + + +def download_url(url, dest_folder, filename=None): + # Ensure the destination folder exists + if not os.path.exists(dest_folder): + os.makedirs(dest_folder) + + # Extract filename from URL if not provided + if filename is None: + filename = os.path.basename(url) + + # Full path to save the file + dest_path = os.path.join(dest_folder, filename) + + # Download the file + response = requests.get(url, stream=True) + if response.status_code == 200: + with open(dest_path, 'wb') as file: + for chunk in response.iter_content(chunk_size=1024): + if chunk: + file.write(chunk) + else: + print(f"Failed to download file from {url}") + + nodelist_path = os.path.join(os.path.dirname(__file__), "custom-node-list.json") working_directory = os.getcwd() +if os.path.basename(working_directory) != 'custom_nodes': + print("WARN: This script should be executed in custom_nodes dir") + print(f"DBG: INFO {working_directory}") + print(f"DBG: INFO {sys.argv}") + # exit(-1) + class GitProgress(RemoteProgress): def __init__(self): @@ -25,9 +64,11 @@ class GitProgress(RemoteProgress): self.pbar.refresh() -def gitclone(custom_nodes_path, url, target_hash=None): +def gitclone(custom_nodes_path, url, target_hash=None, repo_path=None): repo_name = os.path.splitext(os.path.basename(url))[0] - repo_path = os.path.join(custom_nodes_path, repo_name) + + if repo_path is None: + repo_path = os.path.join(custom_nodes_path, repo_name) # Clone the repository from the remote URL repo = git.Repo.clone_from(url, repo_path, recursive=True, progress=GitProgress()) @@ -60,7 +101,12 @@ def gitcheck(path, do_fetch=False): # Get the current commit hash and the commit hash of the remote branch commit_hash = repo.head.commit.hexsha - remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + + if f'{remote_name}/{branch_name}' in repo.refs: + remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + else: + print("CUSTOM NODE CHECK: True") # non default branch is treated as updatable + return # Compare the commit hashes to determine if the local repository is behind the remote repository if commit_hash != remote_commit_hash: @@ -78,12 +124,60 @@ def gitcheck(path, do_fetch=False): print("CUSTOM NODE CHECK: Error") +def get_remote_name(repo): + available_remotes = [remote.name for remote in repo.remotes] + if 'origin' in available_remotes: + return 'origin' + elif 'upstream' in available_remotes: + return 'upstream' + elif len(available_remotes) > 0: + return available_remotes[0] + + if not available_remotes: + print(f"[ComfyUI-Manager] No remotes are configured for this repository: {repo.working_dir}") + else: + print(f"[ComfyUI-Manager] Available remotes in '{repo.working_dir}': ") + for remote in available_remotes: + print(f"- {remote}") + + return None + + def switch_to_default_branch(repo): - show_result = repo.git.remote("show", "origin") - matches = re.search(r"\s*HEAD branch:\s*(.*)", show_result) - if matches: - default_branch = matches.group(1) + remote_name = get_remote_name(repo) + + try: + if remote_name is None: + return False + + default_branch = repo.git.symbolic_ref(f'refs/remotes/{remote_name}/HEAD').replace(f'refs/remotes/{remote_name}/', '') repo.git.checkout(default_branch) + return True + except: + # try checkout master + # try checkout main if failed + try: + repo.git.checkout(repo.heads.master) + return True + except: + try: + if remote_name is not None: + repo.git.checkout('-b', 'master', f'{remote_name}/master') + return True + except: + try: + repo.git.checkout(repo.heads.main) + return True + except: + try: + if remote_name is not None: + repo.git.checkout('-b', 'main', f'{remote_name}/main') + return True + except: + pass + + print("[ComfyUI Manager] Failed to switch to the default branch") + return False def gitpull(path): @@ -94,6 +188,7 @@ def gitpull(path): # Pull the latest changes from the remote repository repo = git.Repo(path) if repo.is_dirty(): + print(f"STASH: '{path}' is dirty.") repo.git.stash() commit_hash = repo.head.commit.hexsha @@ -107,8 +202,17 @@ def gitpull(path): remote_name = current_branch.tracking_branch().remote_name remote = repo.remote(name=remote_name) + if f'{remote_name}/{branch_name}' not in repo.refs: + switch_to_default_branch(repo) + current_branch = repo.active_branch + branch_name = current_branch.name + remote.fetch() - remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + if f'{remote_name}/{branch_name}' in repo.refs: + remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + else: + print("CUSTOM NODE PULL: Fail") # update fail + return if commit_hash == remote_commit_hash: print("CUSTOM NODE PULL: None") # there is no update @@ -132,9 +236,7 @@ def gitpull(path): def checkout_comfyui_hash(target_hash): - repo_path = os.path.join(working_directory, '..') # ComfyUI dir - - repo = git.Repo(repo_path) + repo = git.Repo(comfy_path) commit_hash = repo.head.commit.hexsha if commit_hash != target_hash: @@ -216,6 +318,9 @@ def checkout_custom_node_hash(git_custom_node_infos): # clone missing for k, v in git_custom_node_infos.items(): + if 'ComfyUI-Manager' in k: + continue + if not v['disabled']: repo_name = k.split('/')[-1] if repo_name.endswith('.git'): @@ -224,7 +329,7 @@ def checkout_custom_node_hash(git_custom_node_infos): path = os.path.join(working_directory, repo_name) if not os.path.exists(path): print(f"CLONE: {path}") - gitclone(working_directory, k, v['hash']) + gitclone(working_directory, k, target_hash=v['hash']) def invalidate_custom_node_file(file_custom_node_infos): @@ -274,36 +379,114 @@ def invalidate_custom_node_file(file_custom_node_infos): download_url(url, working_directory) -def apply_snapshot(target): +def apply_snapshot(path): try: - path = os.path.join(os.path.dirname(__file__), 'snapshots', f"{target}") if os.path.exists(path): - with open(path, 'r', encoding="UTF-8") as json_file: - info = json.load(json_file) + if not path.endswith('.json') and not path.endswith('.yaml'): + print(f"Snapshot file not found: `{path}`") + print("APPLY SNAPSHOT: False") + return None + + with open(path, 'r', encoding="UTF-8") as snapshot_file: + if path.endswith('.json'): + info = json.load(snapshot_file) + elif path.endswith('.yaml'): + info = yaml.load(snapshot_file, Loader=yaml.SafeLoader) + info = info['custom_nodes'] + else: + # impossible case + print("APPLY SNAPSHOT: False") + return None comfyui_hash = info['comfyui'] git_custom_node_infos = info['git_custom_nodes'] file_custom_node_infos = info['file_custom_nodes'] - checkout_comfyui_hash(comfyui_hash) + if comfyui_hash: + checkout_comfyui_hash(comfyui_hash) checkout_custom_node_hash(git_custom_node_infos) invalidate_custom_node_file(file_custom_node_infos) print("APPLY SNAPSHOT: True") - return + if 'pips' in info and info['pips']: + return info['pips'] + else: + return None print(f"Snapshot file not found: `{path}`") print("APPLY SNAPSHOT: False") + + return None except Exception as e: print(e) + traceback.print_exc() print("APPLY SNAPSHOT: False") + return None + + +def restore_pip_snapshot(pips, options): + non_url = [] + local_url = [] + non_local_url = [] + for k, v in pips.items(): + if v == "": + non_url.append(k) + else: + if v.startswith('file:'): + local_url.append(v) + else: + non_local_url.append(v) + + failed = [] + if '--pip-non-url' in options: + # try all at once + res = 1 + try: + res = subprocess.check_call([sys.executable, '-m', 'pip', 'install'] + non_url) + except: + pass + + # fallback + if res != 0: + for x in non_url: + res = 1 + try: + res = subprocess.check_call([sys.executable, '-m', 'pip', 'install', x]) + except: + pass + + if res != 0: + failed.append(x) + + if '--pip-non-local-url' in options: + for x in non_local_url: + res = 1 + try: + res = subprocess.check_call([sys.executable, '-m', 'pip', 'install', x]) + except: + pass + + if res != 0: + failed.append(x) + + if '--pip-local-url' in options: + for x in local_url: + res = 1 + try: + res = subprocess.check_call([sys.executable, '-m', 'pip', 'install', x]) + except: + pass + + if res != 0: + failed.append(x) + + print(f"Installation failed for pip packages: {failed}") + def setup_environment(): - config = configparser.ConfigParser() - config.read(config_path) - if 'default' in config and 'git_exe' in config['default'] and config['default']['git_exe'] != '': - git.Git().update_environment(GIT_PYTHON_GIT_EXECUTABLE=config['default']['git_exe']) + if git_exe_path is not None: + git.Git().update_environment(GIT_PYTHON_GIT_EXECUTABLE=git_exe_path) setup_environment() @@ -311,7 +494,11 @@ setup_environment() try: if sys.argv[1] == "--clone": - gitclone(sys.argv[2], sys.argv[3]) + repo_path = None + if len(sys.argv) > 4: + repo_path = sys.argv[4] + + gitclone(sys.argv[2], sys.argv[3], repo_path=repo_path) elif sys.argv[1] == "--check": gitcheck(sys.argv[2], False) elif sys.argv[1] == "--fetch": @@ -319,10 +506,18 @@ try: elif sys.argv[1] == "--pull": gitpull(sys.argv[2]) elif sys.argv[1] == "--apply-snapshot": - apply_snapshot(sys.argv[2]) + options = set() + for x in sys.argv: + if x in ['--pip-non-url', '--pip-local-url', '--pip-non-local-url']: + options.add(x) + + pips = apply_snapshot(sys.argv[2]) + + if pips and len(options) > 0: + restore_pip_snapshot(pips, options) sys.exit(0) except Exception as e: print(e) sys.exit(-1) - - + + diff --git a/github-stats.json b/github-stats.json index 3aeb388d..d2373710 100644 --- a/github-stats.json +++ b/github-stats.json @@ -1,2994 +1,15397 @@ { - "https://github.com/ltdrdata/ComfyUI-Manager": { - "stars": 3457, - "last_update": "2024-04-20 18:03:33" - }, - "https://github.com/ltdrdata/ComfyUI-Impact-Pack": { - "stars": 1142, - "last_update": "2024-04-20 07:36:33" - }, - "https://github.com/ltdrdata/ComfyUI-Inspire-Pack": { - "stars": 221, - "last_update": "2024-04-13 11:04:17" - }, - "https://github.com/comfyanonymous/ComfyUI_experiments": { - "stars": 120, - "last_update": "2023-09-13 06:28:20" - }, - "https://github.com/Stability-AI/stability-ComfyUI-nodes": { - "stars": 165, - "last_update": "2023-08-18 19:03:06" - }, - "https://github.com/Fannovel16/comfyui_controlnet_aux": { - "stars": 1227, - "last_update": "2024-04-05 13:07:00" - }, - "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation": { - "stars": 269, - "last_update": "2024-02-17 06:26:44" - }, - "https://github.com/Fannovel16/ComfyUI-Loopchain": { - "stars": 25, - "last_update": "2023-12-15 14:25:35" - }, - "https://github.com/Fannovel16/ComfyUI-MotionDiff": { - "stars": 128, - "last_update": "2024-04-16 16:06:24" - }, - "https://github.com/Fannovel16/ComfyUI-Video-Matting": { - "stars": 113, - "last_update": "2024-02-12 13:57:45" - }, - "https://github.com/BlenderNeko/ComfyUI_Cutoff": { - "stars": 297, - "last_update": "2024-04-08 22:34:21" - }, - "https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb": { - "stars": 234, - "last_update": "2024-04-08 22:18:59" - }, - "https://github.com/BlenderNeko/ComfyUI_Noise": { - "stars": 180, - "last_update": "2024-04-19 13:09:18" - }, - "https://github.com/BlenderNeko/ComfyUI_TiledKSampler": { - "stars": 249, - "last_update": "2024-04-08 22:15:55" - }, - "https://github.com/BlenderNeko/ComfyUI_SeeCoder": { - "stars": 34, - "last_update": "2023-09-11 10:09:22" - }, - "https://github.com/jags111/efficiency-nodes-comfyui": { - "stars": 547, - "last_update": "2024-04-11 15:08:50" - }, - "https://github.com/jags111/ComfyUI_Jags_VectorMagic": { - "stars": 38, - "last_update": "2024-02-03 04:00:30" - }, - "https://github.com/jags111/ComfyUI_Jags_Audiotools": { - "stars": 17, - "last_update": "2023-12-27 16:47:20" - }, - "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": { - "stars": 239, - "last_update": "2024-04-15 03:11:36" - }, - "https://github.com/paulo-coronado/comfy_clip_blip_node": { - "stars": 25, - "last_update": "2023-09-27 00:33:21" - }, - "https://github.com/WASasquatch/was-node-suite-comfyui": { - "stars": 793, - "last_update": "2024-04-08 17:54:15" - }, - "https://github.com/WASasquatch/ComfyUI_Preset_Merger": { - "stars": 20, - "last_update": "2023-08-23 04:57:58" - }, - "https://github.com/WASasquatch/PPF_Noise_ComfyUI": { - "stars": 19, - "last_update": "2023-10-01 03:36:57" - }, - "https://github.com/WASasquatch/PowerNoiseSuite": { - "stars": 46, - "last_update": "2023-09-19 17:04:01" - }, - "https://github.com/WASasquatch/FreeU_Advanced": { - "stars": 88, - "last_update": "2024-03-05 15:36:38" - }, - "https://github.com/WASasquatch/ASTERR": { - "stars": 8, - "last_update": "2023-09-30 01:11:46" - }, - "https://github.com/WASasquatch/WAS_Extras": { - "stars": 22, - "last_update": "2023-11-20 17:14:58" - }, - "https://github.com/get-salt-AI/SaltAI": { - "stars": 40, - "last_update": "2024-04-16 18:54:06" - }, - "https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92": { - "stars": 99, - "last_update": "2024-02-13 05:05:31" - }, - "https://github.com/lilly1987/ComfyUI_node_Lilly": { - "stars": 49, - "last_update": "2023-11-24 20:13:20" - }, - "https://github.com/sylym/comfy_vid2vid": { - "stars": 57, - "last_update": "2023-08-29 08:07:35" - }, - "https://github.com/EllangoK/ComfyUI-post-processing-nodes": { - "stars": 137, - "last_update": "2024-02-07 01:59:01" - }, - "https://github.com/LEv145/images-grid-comfy-plugin": { - "stars": 110, - "last_update": "2024-02-23 08:22:13" - }, - "https://github.com/diontimmer/ComfyUI-Vextra-Nodes": { - "stars": 55, - "last_update": "2024-02-14 18:07:29" - }, - "https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr": { - "stars": 2, - "last_update": "2024-01-01 20:01:25" - }, - "https://github.com/BadCafeCode/masquerade-nodes-comfyui": { - "stars": 257, - "last_update": "2024-02-26 04:23:37" - }, - "https://github.com/guoyk93/yk-node-suite-comfyui": { - "stars": 10, - "last_update": "2023-03-28 16:19:46" - }, - "https://github.com/Jcd1230/rembg-comfyui-node": { - "stars": 101, - "last_update": "2023-04-03 00:12:22" - }, - "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI": { - "stars": 14, - "last_update": "2023-05-23 19:57:46" - }, - "https://github.com/trojblue/trNodes": { - "stars": 8, - "last_update": "2024-03-17 00:16:43" - }, - "https://github.com/szhublox/ambw_comfyui": { - "stars": 10, - "last_update": "2024-01-09 14:14:18" - }, - "https://github.com/city96/ComfyUI_NetDist": { - "stars": 181, - "last_update": "2024-02-15 17:34:51" - }, - "https://github.com/city96/SD-Latent-Interposer": { - "stars": 145, - "last_update": "2024-03-20 21:55:09" - }, - "https://github.com/city96/SD-Advanced-Noise": { - "stars": 16, - "last_update": "2023-08-14 15:17:54" - }, - "https://github.com/city96/SD-Latent-Upscaler": { - "stars": 97, - "last_update": "2023-11-27 00:26:14" - }, - "https://github.com/city96/ComfyUI_DiT": { - "stars": 2, - "last_update": "2023-09-06 17:15:54" - }, - "https://github.com/city96/ComfyUI_ColorMod": { - "stars": 22, - "last_update": "2024-04-09 03:35:11" - }, - "https://github.com/city96/ComfyUI_ExtraModels": { - "stars": 96, - "last_update": "2024-04-09 23:54:21" - }, - "https://github.com/Kaharos94/ComfyUI-Saveaswebp": { - "stars": 27, - "last_update": "2023-11-11 19:53:48" - }, - "https://github.com/SLAPaper/ComfyUI-Image-Selector": { - "stars": 46, - "last_update": "2024-01-10 10:02:25" - }, - "https://github.com/flyingshutter/As_ComfyUI_CustomNodes": { - "stars": 6, - "last_update": "2024-02-29 02:08:28" - }, - "https://github.com/Zuellni/ComfyUI-Custom-Nodes": { - "stars": 43, - "last_update": "2023-09-19 12:11:26" - }, - "https://github.com/Zuellni/ComfyUI-ExLlama": { - "stars": 82, - "last_update": "2024-04-08 01:03:56" - }, - "https://github.com/Zuellni/ComfyUI-PickScore-Nodes": { - "stars": 18, - "last_update": "2024-04-08 01:10:43" - }, - "https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet": { - "stars": 546, - "last_update": "2024-04-17 09:44:09" - }, - "https://github.com/pythongosssss/ComfyUI-WD14-Tagger": { - "stars": 306, - "last_update": "2024-04-04 01:15:12" - }, - "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": { - "stars": 1083, - "last_update": "2024-04-09 03:04:04" - }, - "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score": { - "stars": 22, - "last_update": "2024-03-01 23:00:05" - }, - "https://github.com/TinyTerra/ComfyUI_tinyterraNodes": { - "stars": 250, - "last_update": "2024-03-10 07:42:00" - }, - "https://github.com/Jordach/comfy-plasma": { - "stars": 42, - "last_update": "2023-07-31 00:57:50" - }, - "https://github.com/bvhari/ComfyUI_ImageProcessing": { - "stars": 16, - "last_update": "2023-05-25 10:49:24" - }, - "https://github.com/bvhari/ComfyUI_LatentToRGB": { - "stars": 11, - "last_update": "2023-05-20 06:50:37" - }, - "https://github.com/bvhari/ComfyUI_PerpWeight": { - "stars": 10, - "last_update": "2024-03-25 07:05:23" - }, - "https://github.com/ssitu/ComfyUI_UltimateSDUpscale": { - "stars": 522, - "last_update": "2024-03-30 17:18:43" - }, - "https://github.com/ssitu/ComfyUI_restart_sampling": { - "stars": 62, - "last_update": "2024-04-19 11:58:16" - }, - "https://github.com/ssitu/ComfyUI_roop": { - "stars": 57, - "last_update": "2023-09-05 16:18:48" - }, - "https://github.com/ssitu/ComfyUI_fabric": { - "stars": 71, - "last_update": "2023-12-31 18:28:55" - }, - "https://github.com/space-nuko/ComfyUI-Disco-Diffusion": { - "stars": 40, - "last_update": "2023-09-12 07:35:52" - }, - "https://github.com/space-nuko/ComfyUI-OpenPose-Editor": { - "stars": 131, - "last_update": "2024-01-05 17:45:55" - }, - "https://github.com/space-nuko/nui-suite": { - "stars": 10, - "last_update": "2023-06-04 22:08:46" - }, - "https://github.com/Nourepide/ComfyUI-Allor": { - "stars": 149, - "last_update": "2024-03-21 07:40:20" - }, - "https://github.com/melMass/comfy_mtb": { - "stars": 276, - "last_update": "2024-04-19 19:52:07" - }, - "https://github.com/xXAdonesXx/NodeGPT": { - "stars": 301, - "last_update": "2024-02-01 23:20:08" - }, - "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes": { - "stars": 380, - "last_update": "2024-04-19 21:02:12" - }, - "https://github.com/bmad4ever/ComfyUI-Bmad-DirtyUndoRedo": { - "stars": 48, - "last_update": "2023-11-29 14:41:23" - }, - "https://github.com/bmad4ever/comfyui_bmad_nodes": { - "stars": 38, - "last_update": "2024-04-07 19:57:43" - }, - "https://github.com/bmad4ever/comfyui_ab_samplercustom": { - "stars": 3, - "last_update": "2023-11-06 17:45:57" - }, - "https://github.com/bmad4ever/comfyui_lists_cartesian_product": { - "stars": 2, - "last_update": "2023-12-22 00:54:35" - }, - "https://github.com/bmad4ever/comfyui_wfc_like": { - "stars": 2, - "last_update": "2024-03-19 23:02:45" - }, - "https://github.com/bmad4ever/comfyui_quilting": { - "stars": 1, - "last_update": "2024-03-04 22:48:03" - }, - "https://github.com/FizzleDorf/ComfyUI_FizzNodes": { - "stars": 267, - "last_update": "2024-04-20 03:00:14" - }, - "https://github.com/FizzleDorf/ComfyUI-AIT": { - "stars": 42, - "last_update": "2023-11-08 14:03:03" - }, - "https://github.com/filipemeneses/comfy_pixelization": { - "stars": 21, - "last_update": "2024-02-01 04:09:13" - }, - "https://github.com/shiimizu/ComfyUI_smZNodes": { - "stars": 118, - "last_update": "2024-04-17 23:10:37" - }, - "https://github.com/shiimizu/ComfyUI-TiledDiffusion": { - "stars": 149, - "last_update": "2024-04-11 21:32:24" - }, - "https://github.com/ZaneA/ComfyUI-ImageReward": { - "stars": 22, - "last_update": "2024-02-04 23:38:10" - }, - "https://github.com/SeargeDP/SeargeSDXL": { - "stars": 700, - "last_update": "2024-04-10 14:29:50" - }, - "https://github.com/cubiq/ComfyUI_SimpleMath": { - "stars": 8, - "last_update": "2023-09-26 06:31:44" - }, - "https://github.com/cubiq/ComfyUI_IPAdapter_plus": { - "stars": 2289, - "last_update": "2024-04-20 04:50:35" - }, - "https://github.com/cubiq/ComfyUI_InstantID": { - "stars": 697, - "last_update": "2024-04-13 09:44:58" - }, - "https://github.com/cubiq/ComfyUI_FaceAnalysis": { - "stars": 116, - "last_update": "2024-03-16 17:13:27" - }, - "https://github.com/shockz0rz/ComfyUI_InterpolateEverything": { - "stars": 21, - "last_update": "2023-12-23 04:13:06" - }, - "https://github.com/shockz0rz/comfy-easy-grids": { - "stars": 10, - "last_update": "2024-01-01 02:40:59" - }, - "https://github.com/yolanother/DTAIComfyPromptAgent": { - "stars": 5, - "last_update": "2023-07-15 15:19:30" - }, - "https://github.com/yolanother/DTAIImageToTextNode": { - "stars": 12, - "last_update": "2024-01-25 02:53:22" - }, - "https://github.com/yolanother/DTAIComfyLoaders": { - "stars": 1, - "last_update": "2023-12-25 04:37:43" - }, - "https://github.com/yolanother/DTAIComfyImageSubmit": { - "stars": 1, - "last_update": "2023-12-25 04:37:20" - }, - "https://github.com/yolanother/DTAIComfyQRCodes": { - "stars": 2, - "last_update": "2023-12-25 04:38:00" - }, - "https://github.com/yolanother/DTAIComfyVariables": { - "stars": 7, - "last_update": "2023-12-25 04:37:03" - }, - "https://github.com/sipherxyz/comfyui-art-venture": { - "stars": 56, - "last_update": "2024-04-18 15:09:49" - }, - "https://github.com/SOELexicon/ComfyUI-LexMSDBNodes": { - "stars": 4, - "last_update": "2023-07-21 11:22:18" - }, - "https://github.com/pants007/comfy-pants": { - "stars": 2, - "last_update": "2023-08-13 12:02:23" - }, - "https://github.com/evanspearman/ComfyMath": { - "stars": 36, - "last_update": "2023-08-27 03:29:04" - }, - "https://github.com/civitai/comfy-nodes": { - "stars": 75, - "last_update": "2024-02-29 12:23:11" - }, - "https://github.com/andersxa/comfyui-PromptAttention": { - "stars": 19, - "last_update": "2023-09-22 22:48:52" - }, - "https://github.com/ArtVentureX/comfyui-animatediff": { - "stars": 588, - "last_update": "2024-01-06 09:18:52" - }, - "https://github.com/twri/sdxl_prompt_styler": { - "stars": 528, - "last_update": "2024-03-24 18:55:24" - }, - "https://github.com/wolfden/ComfyUi_PromptStylers": { - "stars": 52, - "last_update": "2023-10-22 21:34:59" - }, - "https://github.com/wolfden/ComfyUi_String_Function_Tree": { - "stars": 7, - "last_update": "2023-10-22 22:12:55" - }, - "https://github.com/daxthin/DZ-FaceDetailer": { - "stars": 89, - "last_update": "2023-12-16 17:31:44" - }, - "https://github.com/asagi4/comfyui-prompt-control": { - "stars": 132, - "last_update": "2024-04-17 18:01:52" - }, - "https://github.com/asagi4/ComfyUI-CADS": { - "stars": 27, - "last_update": "2024-04-08 15:52:29" - }, - "https://github.com/asagi4/comfyui-utility-nodes": { - "stars": 6, - "last_update": "2024-03-10 16:04:01" - }, - "https://github.com/jamesWalker55/comfyui-p2ldgan": { - "stars": 12, - "last_update": "2023-08-11 20:15:26" - }, - "https://github.com/jamesWalker55/comfyui-various": { - "stars": 23, - "last_update": "2024-03-10 06:45:45" - }, - "https://github.com/adieyal/comfyui-dynamicprompts": { - "stars": 156, - "last_update": "2024-02-05 06:55:50" - }, - "https://github.com/mihaiiancu/ComfyUI_Inpaint": { - "stars": 9, - "last_update": "2023-07-30 22:32:41" - }, - "https://github.com/kwaroran/abg-comfyui": { - "stars": 20, - "last_update": "2023-08-03 08:57:52" - }, - "https://github.com/bash-j/mikey_nodes": { - "stars": 64, - "last_update": "2024-03-10 09:09:50" - }, - "https://github.com/failfa-st/failfast-comfyui-extensions": { - "stars": 109, - "last_update": "2024-02-25 09:56:19" - }, - "https://github.com/Pfaeff/pfaeff-comfyui": { - "stars": 18, - "last_update": "2023-08-19 19:28:36" - }, - "https://github.com/wallish77/wlsh_nodes": { - "stars": 71, - "last_update": "2024-03-28 23:02:54" - }, - "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": { - "stars": 332, - "last_update": "2024-04-04 19:49:52" - }, - "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": { - "stars": 1979, - "last_update": "2024-04-19 18:20:33" - }, - "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite": { - "stars": 303, - "last_update": "2024-04-20 18:24:00" - }, - "https://github.com/Gourieff/comfyui-reactor-node": { - "stars": 864, - "last_update": "2024-04-16 12:22:21" - }, - "https://github.com/imb101/ComfyUI-FaceSwap": { - "stars": 28, - "last_update": "2023-08-04 23:54:24" - }, - "https://github.com/Chaoses-Ib/ComfyUI_Ib_CustomNodes": { - "stars": 9, - "last_update": "2024-04-05 11:14:24" - }, - "https://github.com/AIrjen/OneButtonPrompt": { - "stars": 646, - "last_update": "2024-04-16 19:24:12" - }, - "https://github.com/coreyryanhanson/ComfyQR": { - "stars": 37, - "last_update": "2024-03-20 20:10:27" - }, - "https://github.com/coreyryanhanson/ComfyQR-scanning-nodes": { - "stars": 8, - "last_update": "2023-10-15 03:19:16" - }, - "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector": { - "stars": 149, - "last_update": "2024-01-07 03:29:57" - }, - "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo": { - "stars": 5, - "last_update": "2023-12-10 13:57:48" - }, - "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader": { - "stars": 25, - "last_update": "2023-10-23 14:55:53" - }, - "https://github.com/M1kep/Comfy_KepListStuff": { - "stars": 23, - "last_update": "2023-10-30 01:30:09" - }, - "https://github.com/M1kep/ComfyLiterals": { - "stars": 8, - "last_update": "2023-11-20 01:08:21" - }, - "https://github.com/M1kep/KepPromptLang": { - "stars": 4, - "last_update": "2023-11-19 08:27:04" - }, - "https://github.com/M1kep/Comfy_KepMatteAnything": { - "stars": 9, - "last_update": "2023-09-27 01:16:51" - }, - "https://github.com/M1kep/Comfy_KepKitchenSink": { + "https://github.com/0x-jerry/comfyui-rembg": { "stars": 0, - "last_update": "2023-09-25 05:58:26" + "last_update": "2025-04-07 09:23:31", + "author_account_age_days": 3644 }, - "https://github.com/M1kep/ComfyUI-OtherVAEs": { - "stars": 1, - "last_update": "2023-10-29 03:21:34" - }, - "https://github.com/M1kep/ComfyUI-KepOpenAI": { - "stars": 23, - "last_update": "2023-11-08 22:43:37" - }, - "https://github.com/uarefans/ComfyUI-Fans": { - "stars": 12, - "last_update": "2023-08-15 18:42:40" - }, - "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite": { - "stars": 12, - "last_update": "2024-02-02 11:09:18" - }, - "https://github.com/ManglerFTW/ComfyI2I": { - "stars": 129, - "last_update": "2023-11-03 11:09:53" - }, - "https://github.com/theUpsider/ComfyUI-Logic": { - "stars": 75, - "last_update": "2023-12-12 20:29:49" - }, - "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt": { - "stars": 12, - "last_update": "2023-08-14 11:27:09" - }, - "https://github.com/m-sokes/ComfyUI-Sokes-Nodes": { - "stars": 1, - "last_update": "2023-08-16 11:33:14" - }, - "https://github.com/Extraltodeus/noise_latent_perlinpinpin": { - "stars": 18, - "last_update": "2023-08-21 22:04:31" - }, - "https://github.com/Extraltodeus/LoadLoraWithTags": { - "stars": 29, - "last_update": "2023-10-28 15:51:44" - }, - "https://github.com/Extraltodeus/sigmas_tools_and_the_golden_scheduler": { - "stars": 31, - "last_update": "2024-04-20 11:46:46" - }, - "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG": { - "stars": 140, - "last_update": "2024-04-17 16:22:42" - }, - "https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI": { - "stars": 62, - "last_update": "2024-04-04 20:20:54" - }, - "https://github.com/JPS-GER/ComfyUI_JPS-Nodes": { - "stars": 26, - "last_update": "2024-02-02 13:05:11" - }, - "https://github.com/hustille/ComfyUI_hus_utils": { - "stars": 4, - "last_update": "2023-08-16 15:44:24" - }, - "https://github.com/hustille/ComfyUI_Fooocus_KSampler": { - "stars": 56, - "last_update": "2023-09-10 01:51:24" - }, - "https://github.com/badjeff/comfyui_lora_tag_loader": { - "stars": 36, - "last_update": "2024-02-12 07:46:02" - }, - "https://github.com/rgthree/rgthree-comfy": { - "stars": 499, - "last_update": "2024-04-20 18:57:02" - }, - "https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION": { - "stars": 703, - "last_update": "2024-04-20 07:50:04" - }, - "https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Studio": { - "stars": 181, - "last_update": "2024-04-03 03:59:31" - }, - "https://github.com/AIGODLIKE/ComfyUI-CUP": { - "stars": 0, - "last_update": "2024-03-22 07:26:43" - }, - "https://github.com/syllebra/bilbox-comfyui": { - "stars": 68, - "last_update": "2024-04-03 22:58:07" - }, - "https://github.com/giriss/comfy-image-saver": { - "stars": 111, - "last_update": "2023-11-16 10:39:05" - }, - "https://github.com/shingo1228/ComfyUI-send-eagle-slim": { - "stars": 19, - "last_update": "2024-04-11 17:41:50" - }, - "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage": { - "stars": 22, - "last_update": "2023-08-17 07:51:02" - }, - "https://github.com/laksjdjf/pfg-ComfyUI": { + "https://github.com/0xRavenBlack/ComfyUI-OOP": { "stars": 9, - "last_update": "2023-07-12 06:33:40" - }, - "https://github.com/laksjdjf/attention-couple-ComfyUI": { - "stars": 52, - "last_update": "2024-03-25 03:38:55" - }, - "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI": { - "stars": 17, - "last_update": "2023-11-23 02:06:20" - }, - "https://github.com/laksjdjf/LCMSampler-ComfyUI": { - "stars": 14, - "last_update": "2023-11-08 11:07:04" - }, - "https://github.com/laksjdjf/LoRTnoC-ComfyUI": { - "stars": 10, - "last_update": "2024-03-07 12:27:44" - }, - "https://github.com/laksjdjf/Batch-Condition-ComfyUI": { - "stars": 1, - "last_update": "2024-03-09 12:22:07" - }, - "https://github.com/alsritter/asymmetric-tiling-comfyui": { - "stars": 14, - "last_update": "2023-08-18 16:32:27" - }, - "https://github.com/meap158/ComfyUI-GPU-temperature-protection": { - "stars": 3, - "last_update": "2023-10-07 09:45:25" - }, - "https://github.com/meap158/ComfyUI-Prompt-Expansion": { - "stars": 55, - "last_update": "2023-09-17 00:00:31" - }, - "https://github.com/meap158/ComfyUI-Background-Replacement": { - "stars": 29, - "last_update": "2023-12-17 14:05:08" - }, - "https://github.com/TeaCrab/ComfyUI-TeaNodes": { - "stars": 4, - "last_update": "2024-02-07 21:57:28" - }, - "https://github.com/nagolinc/ComfyUI_FastVAEDecorder_SDXL": { - "stars": 2, - "last_update": "2023-07-27 20:15:00" - }, - "https://github.com/bradsec/ComfyUI_ResolutionSelector": { - "stars": 7, - "last_update": "2023-08-19 06:52:19" - }, - "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI": { - "stars": 125, - "last_update": "2024-03-15 19:05:53" - }, - "https://github.com/jjkramhoeft/ComfyUI-Jjk-Nodes": { - "stars": 4, - "last_update": "2023-08-19 19:17:07" - }, - "https://github.com/dagthomas/comfyui_dagthomas": { - "stars": 45, - "last_update": "2024-04-11 22:05:09" - }, - "https://github.com/marhensa/sdxl-recommended-res-calc": { - "stars": 49, - "last_update": "2024-03-15 05:43:38" - }, - "https://github.com/Nuked88/ComfyUI-N-Nodes": { - "stars": 146, - "last_update": "2024-03-16 11:27:55" - }, - "https://github.com/Nuked88/ComfyUI-N-Sidebar": { - "stars": 278, - "last_update": "2024-03-31 20:26:53" - }, - "https://github.com/richinsley/Comfy-LFO": { - "stars": 4, - "last_update": "2023-08-23 23:08:16" - }, - "https://github.com/Beinsezii/bsz-cui-extras": { - "stars": 19, - "last_update": "2024-01-11 23:53:04" - }, - "https://github.com/youyegit/tdxh_node_comfyui": { - "stars": 2, - "last_update": "2023-09-21 08:40:50" - }, - "https://github.com/Sxela/ComfyWarp": { - "stars": 20, - "last_update": "2023-11-04 10:45:11" - }, - "https://github.com/skfoo/ComfyUI-Coziness": { - "stars": 17, - "last_update": "2024-02-23 18:59:41" - }, - "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes": { - "stars": 13, - "last_update": "2023-08-30 16:06:45" - }, - "https://github.com/Lerc/canvas_tab": { - "stars": 115, - "last_update": "2024-01-25 22:09:37" - }, - "https://github.com/Ttl/ComfyUi_NNLatentUpscale": { - "stars": 130, - "last_update": "2023-08-28 13:56:20" - }, - "https://github.com/spro/comfyui-mirror": { - "stars": 4, - "last_update": "2023-08-28 02:37:52" - }, - "https://github.com/Tropfchen/ComfyUI-Embedding_Picker": { - "stars": 20, - "last_update": "2024-01-06 14:15:12" - }, - "https://github.com/Acly/comfyui-tooling-nodes": { - "stars": 166, - "last_update": "2024-03-04 08:52:39" - }, - "https://github.com/Acly/comfyui-inpaint-nodes": { - "stars": 271, - "last_update": "2024-04-18 08:46:41" - }, - "https://github.com/picturesonpictures/comfy_PoP": { - "stars": 10, - "last_update": "2024-02-01 03:04:42" - }, - "https://github.com/alt-key-project/comfyui-dream-project": { - "stars": 62, - "last_update": "2023-12-21 19:36:51" - }, - "https://github.com/alt-key-project/comfyui-dream-video-batches": { - "stars": 44, - "last_update": "2023-12-03 10:31:55" - }, - "https://github.com/seanlynch/comfyui-optical-flow": { - "stars": 19, - "last_update": "2023-10-20 21:22:17" - }, - "https://github.com/ealkanat/comfyui_easy_padding": { - "stars": 10, - "last_update": "2023-09-26 14:56:04" - }, - "https://github.com/ArtBot2023/CharacterFaceSwap": { - "stars": 49, - "last_update": "2023-10-25 04:29:40" - }, - "https://github.com/mav-rik/facerestore_cf": { - "stars": 126, - "last_update": "2024-03-19 21:36:31" - }, - "https://github.com/braintacles/braintacles-comfyui-nodes": { - "stars": 1, - "last_update": "2023-09-06 12:12:32" - }, - "https://github.com/hayden-fr/ComfyUI-Model-Manager": { - "stars": 17, - "last_update": "2024-04-21 00:51:22" - }, - "https://github.com/hayden-fr/ComfyUI-Image-Browsing": { - "stars": 2, - "last_update": "2023-09-07 14:06:12" - }, - "https://github.com/ali1234/comfyui-job-iterator": { - "stars": 45, - "last_update": "2023-09-10 23:42:15" - }, - "https://github.com/jmkl/ComfyUI-ricing": { - "stars": 9, - "last_update": "2023-09-11 03:33:34" - }, - "https://github.com/budihartono/comfyui_otonx_nodes": { - "stars": 1, - "last_update": "2023-11-08 14:26:20" - }, - "https://github.com/ramyma/A8R8_ComfyUI_nodes": { - "stars": 4, - "last_update": "2023-09-13 02:56:53" - }, - "https://github.com/spinagon/ComfyUI-seamless-tiling": { - "stars": 60, - "last_update": "2024-01-29 03:45:40" - }, - "https://github.com/tusharbhutt/Endless-Nodes": { - "stars": 21, - "last_update": "2023-10-21 23:02:19" - }, - "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": { - "stars": 20, - "last_update": "2024-03-30 05:10:42" - }, - "https://github.com/spacepxl/ComfyUI-Image-Filters": { - "stars": 45, - "last_update": "2024-04-15 20:28:20" - }, - "https://github.com/spacepxl/ComfyUI-RAVE": { - "stars": 72, - "last_update": "2024-01-28 09:08:08" - }, - "https://github.com/phineas-pta/comfyui-auto-nodes-layout": { - "stars": 13, - "last_update": "2023-09-21 14:49:12" - }, - "https://github.com/receyuki/comfyui-prompt-reader-node": { - "stars": 153, - "last_update": "2024-04-08 18:19:54" - }, - "https://github.com/rklaffehn/rk-comfy-nodes": { - "stars": 2, - "last_update": "2024-01-23 17:12:45" - }, - "https://github.com/cubiq/ComfyUI_essentials": { - "stars": 189, - "last_update": "2024-04-18 18:13:54" - }, - "https://github.com/Clybius/ComfyUI-Latent-Modifiers": { - "stars": 39, - "last_update": "2024-01-02 21:57:58" - }, - "https://github.com/Clybius/ComfyUI-Extra-Samplers": { - "stars": 34, - "last_update": "2024-04-18 04:28:09" - }, - "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding": { - "stars": 1000, - "last_update": "2024-03-21 09:27:41" - }, - "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector": { - "stars": 5, - "last_update": "2024-01-20 14:15:58" - }, - "https://github.com/chrisgoringe/cg-noise": { - "stars": 22, - "last_update": "2024-02-02 23:38:25" - }, - "https://github.com/chrisgoringe/cg-image-picker": { - "stars": 127, - "last_update": "2024-04-03 22:31:49" - }, - "https://github.com/chrisgoringe/cg-use-everywhere": { - "stars": 266, - "last_update": "2024-04-17 23:03:28" - }, - "https://github.com/chrisgoringe/cg-prompt-info": { - "stars": 23, - "last_update": "2024-04-10 01:08:34" - }, - "https://github.com/TGu-97/ComfyUI-TGu-utils": { - "stars": 1, - "last_update": "2023-09-25 04:06:55" - }, - "https://github.com/seanlynch/srl-nodes": { - "stars": 3, - "last_update": "2023-10-22 22:35:41" - }, - "https://github.com/alpertunga-bile/prompt-generator-comfyui": { - "stars": 54, - "last_update": "2024-04-07 16:02:06" - }, - "https://github.com/mlinmg/ComfyUI-LaMA-Preprocessor": { - "stars": 63, - "last_update": "2024-04-12 12:59:58" - }, - "https://github.com/kijai/ComfyUI-KJNodes": { - "stars": 187, - "last_update": "2024-04-21 00:08:11" - }, - "https://github.com/kijai/ComfyUI-CCSR": { - "stars": 100, - "last_update": "2024-03-18 10:10:20" - }, - "https://github.com/kijai/ComfyUI-SVD": { - "stars": 151, - "last_update": "2023-11-25 10:16:57" - }, - "https://github.com/kijai/ComfyUI-Marigold": { - "stars": 328, - "last_update": "2024-04-08 08:33:04" - }, - "https://github.com/kijai/ComfyUI-Geowizard": { - "stars": 67, - "last_update": "2024-04-07 12:46:47" - }, - "https://github.com/kijai/ComfyUI-depth-fm": { - "stars": 40, - "last_update": "2024-03-23 23:45:51" - }, - "https://github.com/kijai/ComfyUI-DDColor": { - "stars": 65, - "last_update": "2024-01-18 08:05:17" - }, - "https://github.com/kijai/ComfyUI-ADMotionDirector": { - "stars": 90, - "last_update": "2024-03-27 19:38:20" - }, - "https://github.com/kijai/ComfyUI-moondream": { - "stars": 57, - "last_update": "2024-03-11 00:50:24" - }, - "https://github.com/kijai/ComfyUI-SUPIR": { - "stars": 883, - "last_update": "2024-04-14 08:27:44" - }, - "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper": { - "stars": 184, - "last_update": "2024-04-18 11:22:03" - }, - "https://github.com/hhhzzyang/Comfyui_Lama": { - "stars": 31, - "last_update": "2024-04-15 09:44:58" - }, - "https://github.com/thedyze/save-image-extended-comfyui": { - "stars": 59, - "last_update": "2023-11-09 17:48:44" - }, - "https://github.com/SOELexicon/ComfyUI-LexTools": { - "stars": 17, - "last_update": "2024-03-15 17:45:41" - }, - "https://github.com/mikkel/ComfyUI-text-overlay": { - "stars": 22, - "last_update": "2023-10-05 03:05:03" - }, - "https://github.com/avatechai/avatar-graph-comfyui": { - "stars": 189, - "last_update": "2024-02-06 08:56:30" - }, - "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": { - "stars": 10, - "last_update": "2024-04-10 15:22:50" - }, - "https://github.com/storyicon/comfyui_segment_anything": { - "stars": 384, - "last_update": "2024-04-03 15:43:25" - }, - "https://github.com/a1lazydog/ComfyUI-AudioScheduler": { - "stars": 73, - "last_update": "2024-04-14 23:50:26" - }, - "https://github.com/whatbirdisthat/cyberdolphin": { - "stars": 14, - "last_update": "2023-11-11 23:35:44" - }, - "https://github.com/chrish-slingshot/CrasHUtils": { - "stars": 11, - "last_update": "2024-04-19 22:22:24" - }, - "https://github.com/spinagon/ComfyUI-seam-carving": { - "stars": 12, - "last_update": "2023-10-13 07:24:05" - }, - "https://github.com/YMC-GitHub/ymc-node-suite-comfyui": { - "stars": 14, - "last_update": "2023-12-27 14:18:04" - }, - "https://github.com/chibiace/ComfyUI-Chibi-Nodes": { - "stars": 23, - "last_update": "2024-04-09 09:23:35" - }, - "https://github.com/DigitalIO/ComfyUI-stable-wildcards": { - "stars": 19, - "last_update": "2023-12-18 23:42:52" - }, - "https://github.com/THtianhao/ComfyUI-Portrait-Maker": { - "stars": 152, - "last_update": "2024-03-07 06:45:14" - }, - "https://github.com/THtianhao/ComfyUI-FaceChain": { - "stars": 67, - "last_update": "2024-04-12 03:48:33" - }, - "https://github.com/zer0TF/cute-comfy": { - "stars": 27, - "last_update": "2024-01-04 04:20:46" - }, - "https://github.com/chflame163/ComfyUI_MSSpeech_TTS": { - "stars": 15, - "last_update": "2024-02-20 01:27:38" - }, - "https://github.com/chflame163/ComfyUI_WordCloud": { - "stars": 49, - "last_update": "2024-02-27 12:47:52" - }, - "https://github.com/chflame163/ComfyUI_LayerStyle": { - "stars": 404, - "last_update": "2024-04-20 13:08:07" - }, - "https://github.com/chflame163/ComfyUI_FaceSimilarity": { - "stars": 3, - "last_update": "2024-03-22 05:35:23" - }, - "https://github.com/drustan-hawk/primitive-types": { - "stars": 5, - "last_update": "2023-10-20 16:33:23" - }, - "https://github.com/shadowcz007/comfyui-mixlab-nodes": { - "stars": 670, - "last_update": "2024-04-20 15:08:17" - }, - "https://github.com/shadowcz007/comfyui-ultralytics-yolo": { - "stars": 11, - "last_update": "2024-04-16 03:24:11" - }, - "https://github.com/shadowcz007/comfyui-consistency-decoder": { - "stars": 1, - "last_update": "2024-02-02 01:46:54" - }, - "https://github.com/shadowcz007/comfyui-Image-reward": { - "stars": 8, - "last_update": "2024-03-25 05:41:04" - }, - "https://github.com/ostris/ostris_nodes_comfyui": { - "stars": 19, - "last_update": "2023-11-26 21:41:27" + "last_update": "2025-03-02 11:59:14", + "author_account_age_days": 1814 }, "https://github.com/0xbitches/ComfyUI-LCM": { - "stars": 240, - "last_update": "2023-11-11 21:24:33" - }, - "https://github.com/aszc-dev/ComfyUI-CoreMLSuite": { - "stars": 72, - "last_update": "2023-12-01 00:09:15" - }, - "https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy": { - "stars": 214, - "last_update": "2024-04-07 21:32:38" - }, - "https://github.com/noxinias/ComfyUI_NoxinNodes": { - "stars": 5, - "last_update": "2023-11-01 00:11:28" - }, - "https://github.com/GMapeSplat/ComfyUI_ezXY": { - "stars": 17, - "last_update": "2023-11-30 00:32:24" - }, - "https://github.com/kinfolk0117/ComfyUI_SimpleTiles": { - "stars": 22, - "last_update": "2024-01-29 19:27:12" - }, - "https://github.com/kinfolk0117/ComfyUI_GradientDeepShrink": { - "stars": 21, - "last_update": "2023-12-01 20:13:00" - }, - "https://github.com/kinfolk0117/ComfyUI_Pilgram": { - "stars": 6, - "last_update": "2024-01-07 14:49:46" - }, - "https://github.com/Fictiverse/ComfyUI_Fictiverse": { - "stars": 6, - "last_update": "2023-11-29 12:58:14" - }, - "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words": { - "stars": 66, - "last_update": "2024-04-09 20:35:52" - }, - "https://github.com/aianimation55/ComfyUI-FatLabels": { - "stars": 4, - "last_update": "2023-10-31 14:25:23" - }, - "https://github.com/noembryo/ComfyUI-noEmbryo": { - "stars": 11, - "last_update": "2024-03-22 17:52:32" - }, - "https://github.com/mikkel/comfyui-mask-boundingbox": { - "stars": 22, - "last_update": "2024-03-07 08:11:06" - }, - "https://github.com/ParmanBabra/ComfyUI-Malefish-Custom-Scripts": { - "stars": 0, - "last_update": "2023-11-03 04:16:28" - }, - "https://github.com/matan1905/ComfyUI-Serving-Toolkit": { - "stars": 30, - "last_update": "2024-02-28 18:30:35" - }, - "https://github.com/PCMonsterx/ComfyUI-CSV-Loader": { - "stars": 10, - "last_update": "2023-11-06 06:34:25" - }, - "https://github.com/Trung0246/ComfyUI-0246": { - "stars": 83, - "last_update": "2024-04-04 02:30:39" - }, - "https://github.com/fexli/fexli-util-node-comfyui": { - "stars": 3, - "last_update": "2024-02-20 09:14:55" - }, - "https://github.com/AbyssYuan0/ComfyUI_BadgerTools": { - "stars": 6, - "last_update": "2024-04-16 07:26:43" - }, - "https://github.com/palant/image-resize-comfyui": { - "stars": 41, - "last_update": "2024-01-18 20:59:55" - }, - "https://github.com/palant/integrated-nodes-comfyui": { - "stars": 29, - "last_update": "2023-12-27 22:52:00" - }, - "https://github.com/palant/extended-saveimage-comfyui": { - "stars": 8, - "last_update": "2024-03-27 14:08:21" - }, - "https://github.com/whmc76/ComfyUI-Openpose-Editor-Plus": { - "stars": 13, - "last_update": "2024-01-06 18:32:07" - }, - "https://github.com/martijnat/comfyui-previewlatent": { - "stars": 28, - "last_update": "2024-02-15 05:52:28" - }, - "https://github.com/banodoco/steerable-motion": { - "stars": 492, - "last_update": "2024-04-17 19:27:29" - }, - "https://github.com/gemell1/ComfyUI_GMIC": { - "stars": 5, - "last_update": "2024-03-25 13:14:16" - }, - "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame": { - "stars": 22, - "last_update": "2023-11-27 14:47:20" - }, - "https://github.com/TheBarret/ZSuite": { - "stars": 6, - "last_update": "2023-12-06 12:47:18" - }, - "https://github.com/romeobuilderotti/ComfyUI-PNG-Metadata": { - "stars": 2, - "last_update": "2024-01-04 17:52:44" - }, - "https://github.com/ka-puna/comfyui-yanc": { - "stars": 5, - "last_update": "2023-12-10 21:29:12" - }, - "https://github.com/Amorano/Jovimetrix": { - "stars": 111, - "last_update": "2024-03-31 04:36:03" - }, - "https://github.com/Umikaze-job/select_folder_path_easy": { - "stars": 4, - "last_update": "2023-11-18 14:59:56" - }, - "https://github.com/Niutonian/ComfyUi-NoodleWebcam": { - "stars": 25, - "last_update": "2023-11-20 11:25:01" - }, - "https://github.com/Feidorian/feidorian-ComfyNodes": { - "stars": 5, - "last_update": "2024-01-03 09:01:58" - }, - "https://github.com/wutipong/ComfyUI-TextUtils": { - "stars": 1, - "last_update": "2023-11-20 21:32:07" - }, - "https://github.com/natto-maki/ComfyUI-NegiTools": { - "stars": 21, - "last_update": "2024-02-02 07:50:01" - }, - "https://github.com/LonicaMewinsky/ComfyUI-RawSaver": { - "stars": 1, - "last_update": "2023-11-21 14:34:54" - }, - "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative": { - "stars": 78, - "last_update": "2024-04-07 00:30:45" - }, - "https://github.com/GTSuya-Studio/ComfyUI-Gtsuya-Nodes": { - "stars": 5, - "last_update": "2023-12-10 01:20:36" - }, - "https://github.com/oyvindg/ComfyUI-TrollSuite": { - "stars": 0, - "last_update": "2023-11-21 01:46:07" - }, - "https://github.com/drago87/ComfyUI_Dragos_Nodes": { - "stars": 3, - "last_update": "2023-11-24 19:04:31" - }, - "https://github.com/ansonkao/comfyui-geometry": { - "stars": 6, - "last_update": "2023-11-30 02:45:49" - }, - "https://github.com/bronkula/comfyui-fitsize": { - "stars": 25, - "last_update": "2023-12-03 12:32:49" - }, - "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": { - "stars": 396, - "last_update": "2024-03-31 15:10:51" - }, - "https://github.com/thecooltechguy/ComfyUI-Stable-Video-Diffusion": { - "stars": 261, - "last_update": "2023-11-24 06:14:27" - }, - "https://github.com/thecooltechguy/ComfyUI-ComfyRun": { - "stars": 74, - "last_update": "2023-12-27 18:16:34" - }, - "https://github.com/thecooltechguy/ComfyUI-MagicAnimate": { - "stars": 183, - "last_update": "2024-01-09 19:24:47" - }, - "https://github.com/thecooltechguy/ComfyUI-ComfyWorkflows": { - "stars": 24, - "last_update": "2024-03-11 09:48:04" - }, - "https://github.com/Danand/ComfyUI-ComfyCouple": { - "stars": 15, - "last_update": "2024-04-06 21:05:24" - }, - "https://github.com/42lux/ComfyUI-safety-checker": { - "stars": 13, - "last_update": "2024-03-15 18:39:38" - }, - "https://github.com/sergekatzmann/ComfyUI_Nimbus-Pack": { - "stars": 2, - "last_update": "2024-04-06 15:42:48" - }, - "https://github.com/komojini/ComfyUI_SDXL_DreamBooth_LoRA_CustomNodes": { - "stars": 2, - "last_update": "2023-12-15 23:36:59" - }, - "https://github.com/komojini/komojini-comfyui-nodes": { - "stars": 54, - "last_update": "2024-02-10 14:58:22" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": { - "stars": 265, - "last_update": "2024-04-17 19:59:18" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Text_Image-Composite": { - "stars": 57, - "last_update": "2024-04-17 20:02:42" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": { - "stars": 504, - "last_update": "2024-04-17 19:57:55" - }, - "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn": { - "stars": 1359, - "last_update": "2024-04-17 19:57:18" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align": { - "stars": 2, - "last_update": "2024-01-03 15:22:13" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID": { - "stars": 1077, - "last_update": "2024-04-17 20:02:02" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": { - "stars": 711, - "last_update": "2024-04-17 20:01:40" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API": { - "stars": 165, - "last_update": "2024-04-17 19:58:21" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO": { - "stars": 78, - "last_update": "2024-04-17 20:04:09" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SegMoE": { - "stars": 69, - "last_update": "2024-04-17 20:03:27" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM": { - "stars": 332, - "last_update": "2024-04-17 20:00:25" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PixArt-alpha-Diffusers": { - "stars": 34, - "last_update": "2024-04-17 20:03:46" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG": { - "stars": 448, - "last_update": "2024-04-17 20:00:02" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": { + "stars": 257, + "last_update": "2023-11-11 21:24:33", + "author_account_age_days": 966 + }, + "https://github.com/1038lab/ComfyUI-EdgeTTS": { + "stars": 51, + "last_update": "2025-07-24 03:21:45", + "author_account_age_days": 887 + }, + "https://github.com/1038lab/ComfyUI-JoyCaption": { + "stars": 75, + "last_update": "2025-08-29 05:50:29", + "author_account_age_days": 887 + }, + "https://github.com/1038lab/ComfyUI-LBM": { + "stars": 60, + "last_update": "2025-05-27 17:37:31", + "author_account_age_days": 887 + }, + "https://github.com/1038lab/ComfyUI-MegaTTS": { + "stars": 45, + "last_update": "2025-06-19 19:12:51", + "author_account_age_days": 887 + }, + "https://github.com/1038lab/ComfyUI-MiniCPM": { "stars": 56, - "last_update": "2024-04-17 20:00:46" + "last_update": "2025-08-28 19:52:08", + "author_account_age_days": 887 }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": { - "stars": 90, - "last_update": "2024-04-17 19:59:42" + "https://github.com/1038lab/ComfyUI-MiniMax-Remover": { + "stars": 57, + "last_update": "2025-06-27 21:57:55", + "author_account_age_days": 887 }, - "https://github.com/kenjiqq/qq-nodes-comfyui": { - "stars": 17, - "last_update": "2024-02-23 01:57:06" - }, - "https://github.com/80sVectorz/ComfyUI-Static-Primitives": { - "stars": 9, - "last_update": "2023-12-11 11:06:16" - }, - "https://github.com/AbdullahAlfaraj/Comfy-Photoshop-SD": { - "stars": 144, - "last_update": "2023-12-12 12:23:04" - }, - "https://github.com/zhuanqianfish/ComfyUI-EasyNode": { - "stars": 50, - "last_update": "2024-04-04 00:20:08" - }, - "https://github.com/discopixel-studio/comfyui-discopixel": { - "stars": 6, - "last_update": "2023-11-30 02:45:49" - }, - "https://github.com/zcfrank1st/Comfyui-Yolov8": { - "stars": 14, - "last_update": "2024-02-25 06:28:49" - }, - "https://github.com/SoftMeng/ComfyUI_Mexx_Styler": { - "stars": 12, - "last_update": "2024-04-06 06:49:01" - }, - "https://github.com/SoftMeng/ComfyUI_Mexx_Poster": { - "stars": 14, - "last_update": "2023-12-05 09:44:42" - }, - "https://github.com/wmatson/easy-comfy-nodes": { - "stars": 9, - "last_update": "2024-04-03 15:31:07" - }, - "https://github.com/DrJKL/ComfyUI-Anchors": { - "stars": 4, - "last_update": "2024-03-20 22:40:29" - }, - "https://github.com/vanillacode314/SimpleWildcardsComfyUI": { - "stars": 3, - "last_update": "2024-04-09 01:57:14" - }, - "https://github.com/WebDev9000/WebDev9000-Nodes": { + "https://github.com/1038lab/ComfyUI-Mosaic": { "stars": 1, - "last_update": "2023-12-01 02:23:18" + "last_update": "2025-07-05 16:12:04", + "author_account_age_days": 887 }, - "https://github.com/Scholar01/ComfyUI-Keyframe": { - "stars": 7, - "last_update": "2024-02-01 16:57:40" + "https://github.com/1038lab/ComfyUI-OmniGen": { + "stars": 287, + "last_update": "2025-04-18 18:33:34", + "author_account_age_days": 887 }, - "https://github.com/Haoming02/comfyui-diffusion-cg": { - "stars": 37, - "last_update": "2024-03-22 19:10:11" + "https://github.com/1038lab/ComfyUI-Pollinations": { + "stars": 43, + "last_update": "2025-07-07 07:11:19", + "author_account_age_days": 887 }, - "https://github.com/Haoming02/comfyui-prompt-format": { - "stars": 27, - "last_update": "2023-12-11 13:44:03" + "https://github.com/1038lab/ComfyUI-RMBG": { + "stars": 1292, + "last_update": "2025-08-18 20:50:39", + "author_account_age_days": 887 }, - "https://github.com/Haoming02/comfyui-clear-screen": { - "stars": 1, - "last_update": "2023-12-12 08:16:28" + "https://github.com/1038lab/ComfyUI-ReduxFineTune": { + "stars": 63, + "last_update": "2025-06-21 19:10:36", + "author_account_age_days": 887 }, - "https://github.com/Haoming02/comfyui-menu-anchor": { + "https://github.com/1038lab/ComfyUI-SparkTTS": { + "stars": 114, + "last_update": "2025-04-15 19:28:39", + "author_account_age_days": 887 + }, + "https://github.com/1038lab/ComfyUI-WildPromptor": { + "stars": 44, + "last_update": "2025-07-12 18:50:44", + "author_account_age_days": 887 + }, + "https://github.com/111496583yzy/comfyui-PuzzleCrack-Effect": { "stars": 3, - "last_update": "2024-01-26 03:54:55" - }, - "https://github.com/Haoming02/comfyui-tab-handler": { - "stars": 3, - "last_update": "2023-12-14 08:24:49" - }, - "https://github.com/Haoming02/comfyui-floodgate": { - "stars": 22, - "last_update": "2024-01-31 09:08:14" - }, - "https://github.com/bedovyy/ComfyUI_NAIDGenerator": { - "stars": 15, - "last_update": "2024-03-13 09:36:48" - }, - "https://github.com/Off-Live/ComfyUI-off-suite": { - "stars": 0, - "last_update": "2024-04-19 07:13:08" - }, - "https://github.com/ningxiaoxiao/comfyui-NDI": { - "stars": 31, - "last_update": "2024-03-07 02:08:05" - }, - "https://github.com/subtleGradient/TinkerBot-tech-for-ComfyUI-Touchpad": { - "stars": 13, - "last_update": "2024-01-14 20:01:01" - }, - "https://github.com/zcfrank1st/comfyui_visual_anagrams": { - "stars": 5, - "last_update": "2023-12-05 12:31:26" - }, - "https://github.com/Electrofried/ComfyUI-OpenAINode": { - "stars": 16, - "last_update": "2023-12-05 21:34:23" - }, - "https://github.com/AustinMroz/ComfyUI-SpliceTools": { - "stars": 2, - "last_update": "2024-04-09 19:04:08" + "last_update": "2025-08-26 04:55:51", + "author_account_age_days": 2318 }, "https://github.com/11cafe/comfyui-workspace-manager": { - "stars": 618, - "last_update": "2024-04-18 10:03:50" + "stars": 1351, + "last_update": "2025-04-16 14:02:54", + "author_account_age_days": 640 }, - "https://github.com/knuknX/ComfyUI-Image-Tools": { - "stars": 1, - "last_update": "2024-01-01 03:30:49" + "https://github.com/11dogzi/CYBERPUNK-STYLE-DIY": { + "stars": 100, + "last_update": "2025-08-11 17:17:54", + "author_account_age_days": 560 }, - "https://github.com/jtrue/ComfyUI-JaRue": { - "stars": 6, - "last_update": "2023-12-25 17:55:50" + "https://github.com/11dogzi/ComfUI-EGAdapterMadAssistant": { + "stars": 39, + "last_update": "2024-08-02 05:24:19", + "author_account_age_days": 560 }, - "https://github.com/filliptm/ComfyUI_Fill-Nodes": { - "stars": 24, - "last_update": "2024-04-14 01:54:33" - }, - "https://github.com/zfkun/ComfyUI_zfkun": { - "stars": 11, - "last_update": "2024-01-21 06:21:35" - }, - "https://github.com/zcfrank1st/Comfyui-Toolbox": { - "stars": 2, - "last_update": "2023-12-13 11:36:14" - }, - "https://github.com/talesofai/comfyui-browser": { - "stars": 356, - "last_update": "2024-04-20 07:09:44" - }, - "https://github.com/yolain/ComfyUI-Easy-Use": { - "stars": 320, - "last_update": "2024-04-19 04:19:38" - }, - "https://github.com/bruefire/ComfyUI-SeqImageLoader": { - "stars": 25, - "last_update": "2024-04-06 18:12:44" - }, - "https://github.com/modusCell/ComfyUI-dimension-node-modusCell": { - "stars": 0, - "last_update": "2023-12-13 21:01:18" - }, - "https://github.com/aria1th/ComfyUI-LogicUtils": { - "stars": 13, - "last_update": "2023-12-24 09:07:07" - }, - "https://github.com/MitoshiroPJ/comfyui_slothful_attention": { - "stars": 5, - "last_update": "2023-12-16 09:10:38" - }, - "https://github.com/brianfitzgerald/style_aligned_comfy": { - "stars": 225, - "last_update": "2024-03-12 03:42:07" - }, - "https://github.com/deroberon/demofusion-comfyui": { + "https://github.com/11dogzi/Comfyui-HYPIR": { "stars": 80, - "last_update": "2023-12-19 22:54:02" - }, - "https://github.com/deroberon/StableZero123-comfyui": { - "stars": 121, - "last_update": "2024-01-15 10:38:27" - }, - "https://github.com/glifxyz/ComfyUI-GlifNodes": { - "stars": 6, - "last_update": "2024-04-16 16:27:56" - }, - "https://github.com/concarne000/ConCarneNode": { - "stars": 4, - "last_update": "2024-04-02 23:10:42" - }, - "https://github.com/aegis72/aegisflow_utility_nodes": { - "stars": 21, - "last_update": "2024-03-06 14:04:56" - }, - "https://github.com/aegis72/comfyui-styles-all": { - "stars": 22, - "last_update": "2024-04-18 04:30:06" - }, - "https://github.com/glibsonoran/Plush-for-ComfyUI": { - "stars": 91, - "last_update": "2024-04-17 17:12:37" - }, - "https://github.com/vienteck/ComfyUI-Chat-GPT-Integration": { - "stars": 24, - "last_update": "2024-04-10 23:47:22" - }, - "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes": { - "stars": 11, - "last_update": "2024-04-20 23:16:33" - }, - "https://github.com/AI2lab/comfyUI-tool-2lab": { - "stars": 0, - "last_update": "2024-04-15 16:37:12" - }, - "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid": { - "stars": 6, - "last_update": "2023-12-15 21:07:36" - }, - "https://github.com/NimaNzrii/comfyui-popup_preview": { - "stars": 24, - "last_update": "2024-01-07 12:21:43" - }, - "https://github.com/NimaNzrii/comfyui-photoshop": { - "stars": 48, - "last_update": "2023-12-20 13:03:59" - }, - "https://github.com/rui40000/RUI-Nodes": { - "stars": 11, - "last_update": "2023-12-15 07:37:43" - }, - "https://github.com/dmarx/ComfyUI-Keyframed": { - "stars": 72, - "last_update": "2023-12-30 00:37:20" - }, - "https://github.com/dmarx/ComfyUI-AudioReactive": { - "stars": 7, - "last_update": "2024-01-03 08:27:32" - }, - "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler": { - "stars": 13, - "last_update": "2023-12-16 19:21:57" - }, - "https://github.com/BennyKok/comfyui-deploy": { - "stars": 556, - "last_update": "2024-04-19 17:38:35" - }, - "https://github.com/florestefano1975/comfyui-portrait-master": { - "stars": 665, - "last_update": "2024-04-18 16:19:47" - }, - "https://github.com/florestefano1975/comfyui-prompt-composer": { - "stars": 190, - "last_update": "2024-04-18 16:19:36" - }, - "https://github.com/mozman/ComfyUI_mozman_nodes": { - "stars": 0, - "last_update": "2023-12-18 06:07:50" - }, - "https://github.com/rcsaquino/comfyui-custom-nodes": { - "stars": 1, - "last_update": "2023-12-18 17:18:21" - }, - "https://github.com/rcfcu2000/zhihuige-nodes-comfyui": { - "stars": 0, - "last_update": "2024-01-11 08:41:17" - }, - "https://github.com/IDGallagher/ComfyUI-IG-Nodes": { - "stars": 0, - "last_update": "2024-04-15 15:09:48" - }, - "https://github.com/violet-chen/comfyui-psd2png": { - "stars": 4, - "last_update": "2024-01-18 05:00:49" - }, - "https://github.com/lldacing/comfyui-easyapi-nodes": { - "stars": 16, - "last_update": "2024-04-16 07:51:03" - }, - "https://github.com/CosmicLaca/ComfyUI_Primere_Nodes": { - "stars": 56, - "last_update": "2024-04-20 09:29:21" - }, - "https://github.com/RenderRift/ComfyUI-RenderRiftNodes": { - "stars": 6, - "last_update": "2023-12-31 11:14:29" - }, - "https://github.com/OpenArt-AI/ComfyUI-Assistant": { - "stars": 12, - "last_update": "2024-01-24 21:44:12" - }, - "https://github.com/ttulttul/ComfyUI-Iterative-Mixer": { - "stars": 93, - "last_update": "2024-04-09 00:15:26" - }, - "https://github.com/ttulttul/ComfyUI-Tensor-Operations": { - "stars": 4, - "last_update": "2024-02-07 21:22:45" - }, - "https://github.com/jitcoder/lora-info": { - "stars": 22, - "last_update": "2024-04-18 09:16:05" - }, - "https://github.com/ceruleandeep/ComfyUI-LLaVA-Captioner": { - "stars": 60, - "last_update": "2024-03-04 10:07:53" - }, - "https://github.com/styler00dollar/ComfyUI-sudo-latent-upscale": { - "stars": 19, - "last_update": "2024-04-04 17:29:40" - }, - "https://github.com/styler00dollar/ComfyUI-deepcache": { - "stars": 5, - "last_update": "2023-12-26 17:53:44" - }, - "https://github.com/NotHarroweD/Harronode": { - "stars": 5, - "last_update": "2023-12-31 06:00:14" - }, - "https://github.com/Limitex/ComfyUI-Calculation": { - "stars": 0, - "last_update": "2023-12-27 17:50:16" - }, - "https://github.com/Limitex/ComfyUI-Diffusers": { - "stars": 92, - "last_update": "2024-03-08 11:07:01" - }, - "https://github.com/edenartlab/eden_comfy_pipelines": { - "stars": 26, - "last_update": "2024-04-17 01:06:53" - }, - "https://github.com/pkpkTech/ComfyUI-SaveAVIF": { - "stars": 1, - "last_update": "2023-12-27 01:33:08" - }, - "https://github.com/pkpkTech/ComfyUI-ngrok": { - "stars": 0, - "last_update": "2024-01-23 18:52:25" - }, - "https://github.com/pkpkTech/ComfyUI-TemporaryLoader": { - "stars": 1, - "last_update": "2024-02-10 20:52:21" - }, - "https://github.com/pkpkTech/ComfyUI-SaveQueues": { - "stars": 1, - "last_update": "2024-02-17 14:26:26" - }, - "https://github.com/crystian/ComfyUI-Crystools": { - "stars": 347, - "last_update": "2024-04-20 03:03:23" - }, - "https://github.com/crystian/ComfyUI-Crystools-save": { - "stars": 21, - "last_update": "2024-01-28 14:37:54" - }, - "https://github.com/Kangkang625/ComfyUI-paint-by-example": { - "stars": 12, - "last_update": "2024-01-29 02:37:38" - }, - "https://github.com/54rt1n/ComfyUI-DareMerge": { - "stars": 25, - "last_update": "2024-01-29 23:23:01" - }, - "https://github.com/an90ray/ComfyUI_RErouter_CustomNodes": { - "stars": 0, - "last_update": "2023-12-30 01:42:04" - }, - "https://github.com/jesenzhang/ComfyUI_StreamDiffusion": { - "stars": 90, - "last_update": "2023-12-29 09:41:48" - }, - "https://github.com/ai-liam/comfyui_liam_util": { - "stars": 2, - "last_update": "2023-12-29 04:44:00" - }, - "https://github.com/Ryuukeisyou/comfyui_face_parsing": { - "stars": 26, - "last_update": "2024-02-17 11:00:34" - }, - "https://github.com/tocubed/ComfyUI-AudioReactor": { - "stars": 6, - "last_update": "2024-01-02 07:51:03" - }, - "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge": { - "stars": 18, - "last_update": "2024-01-05 03:38:18" - }, - "https://github.com/wwwins/ComfyUI-Simple-Aspect-Ratio": { - "stars": 1, - "last_update": "2024-01-02 04:07:20" - }, - "https://github.com/ownimage/ComfyUI-ownimage": { - "stars": 0, - "last_update": "2024-01-01 16:36:42" - }, - "https://github.com/Millyarde/Pomfy": { - "stars": 7, - "last_update": "2024-01-13 08:01:42" - }, - "https://github.com/Ryuukeisyou/comfyui_io_helpers": { - "stars": 0, - "last_update": "2024-03-04 13:20:38" - }, - "https://github.com/flowtyone/ComfyUI-Flowty-LDSR": { - "stars": 141, - "last_update": "2024-03-24 19:03:45" - }, - "https://github.com/flowtyone/ComfyUI-Flowty-TripoSR": { - "stars": 305, - "last_update": "2024-03-19 10:49:59" - }, - "https://github.com/flowtyone/ComfyUI-Flowty-CRM": { - "stars": 102, - "last_update": "2024-04-03 23:47:03" - }, - "https://github.com/massao000/ComfyUI_aspect_ratios": { - "stars": 3, - "last_update": "2024-01-05 09:36:52" - }, - "https://github.com/siliconflow/onediff_comfy_nodes": { - "stars": 8, - "last_update": "2024-04-08 04:23:57" - }, - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery": { - "stars": 266, - "last_update": "2024-04-17 19:58:54" - }, - "https://github.com/hinablue/ComfyUI_3dPoseEditor": { - "stars": 91, - "last_update": "2024-01-04 14:41:18" - }, - "https://github.com/chaojie/ComfyUI-AniPortrait": { - "stars": 210, - "last_update": "2024-04-02 03:06:43" - }, - "https://github.com/chaojie/ComfyUI-Img2Img-Turbo": { - "stars": 33, - "last_update": "2024-03-27 01:10:14" - }, - "https://github.com/chaojie/ComfyUI-Champ": { - "stars": 16, - "last_update": "2024-04-02 02:46:02" - }, - "https://github.com/chaojie/ComfyUI-Open-Sora": { - "stars": 75, - "last_update": "2024-03-26 05:54:18" - }, - "https://github.com/chaojie/ComfyUI-Trajectory": { - "stars": 5, - "last_update": "2024-03-14 14:41:18" - }, - "https://github.com/chaojie/ComfyUI-dust3r": { - "stars": 10, - "last_update": "2024-03-31 00:30:51" - }, - "https://github.com/chaojie/ComfyUI-Gemma": { - "stars": 5, - "last_update": "2024-02-24 10:02:51" - }, - "https://github.com/chaojie/ComfyUI-DynamiCrafter": { - "stars": 78, - "last_update": "2024-03-16 19:08:28" - }, - "https://github.com/chaojie/ComfyUI-Panda3d": { - "stars": 10, - "last_update": "2024-03-05 06:37:32" - }, - "https://github.com/chaojie/ComfyUI-Pymunk": { - "stars": 16, - "last_update": "2024-01-31 15:36:36" - }, - "https://github.com/chaojie/ComfyUI-MotionCtrl": { - "stars": 116, - "last_update": "2024-01-08 14:18:40" - }, - "https://github.com/chaojie/ComfyUI-Motion-Vector-Extractor": { - "stars": 0, - "last_update": "2024-01-20 16:51:06" - }, - "https://github.com/chaojie/ComfyUI-MotionCtrl-SVD": { - "stars": 71, - "last_update": "2024-01-16 09:41:07" - }, - "https://github.com/chaojie/ComfyUI-DragAnything": { - "stars": 57, - "last_update": "2024-03-19 03:37:48" - }, - "https://github.com/chaojie/ComfyUI-DragNUWA": { - "stars": 340, - "last_update": "2024-03-14 06:56:41" - }, - "https://github.com/chaojie/ComfyUI-Moore-AnimateAnyone": { - "stars": 193, - "last_update": "2024-02-24 13:48:57" - }, - "https://github.com/chaojie/ComfyUI-I2VGEN-XL": { - "stars": 27, - "last_update": "2024-01-19 09:02:08" - }, - "https://github.com/chaojie/ComfyUI-LightGlue": { - "stars": 48, - "last_update": "2024-01-20 16:53:51" - }, - "https://github.com/chaojie/ComfyUI-RAFT": { - "stars": 23, - "last_update": "2024-01-29 08:08:13" - }, - "https://github.com/alexopus/ComfyUI-Image-Saver": { - "stars": 16, - "last_update": "2024-04-19 23:26:02" - }, - "https://github.com/kft334/Knodes": { - "stars": 0, - "last_update": "2024-01-14 04:23:09" - }, - "https://github.com/MrForExample/ComfyUI-3D-Pack": { - "stars": 1388, - "last_update": "2024-04-13 17:45:06" - }, - "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved": { - "stars": 390, - "last_update": "2024-02-02 14:19:37" - }, - "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes": { - "stars": 21, - "last_update": "2024-04-06 11:02:44" - }, - "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream": { - "stars": 26, - "last_update": "2024-04-20 11:30:14" - }, - "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything": { - "stars": 8, - "last_update": "2024-04-04 11:58:20" - }, - "https://github.com/tzwm/comfyui-profiler": { - "stars": 28, - "last_update": "2024-01-12 07:38:40" - }, - "https://github.com/daniel-lewis-ab/ComfyUI-Llama": { - "stars": 21, - "last_update": "2024-04-02 06:33:08" - }, - "https://github.com/daniel-lewis-ab/ComfyUI-TTS": { - "stars": 8, - "last_update": "2024-04-02 06:32:21" - }, - "https://github.com/djbielejeski/a-person-mask-generator": { - "stars": 187, - "last_update": "2024-02-16 16:26:02" - }, - "https://github.com/smagnetize/kb-comfyui-nodes": { - "stars": 0, - "last_update": "2024-01-06 17:04:40" - }, - "https://github.com/ginlov/segment_to_mask_comfyui": { - "stars": 1, - "last_update": "2024-01-07 14:03:21" - }, - "https://github.com/glowcone/comfyui-base64-to-image": { - "stars": 5, - "last_update": "2024-01-09 08:33:02" - }, - "https://github.com/AInseven/ComfyUI-fastblend": { - "stars": 83, - "last_update": "2024-04-03 11:50:44" - }, - "https://github.com/HebelHuber/comfyui-enhanced-save-node": { - "stars": 0, - "last_update": "2024-01-12 14:34:55" - }, - "https://github.com/LarryJane491/Lora-Training-in-Comfy": { - "stars": 177, - "last_update": "2024-03-03 17:16:51" - }, - "https://github.com/LarryJane491/Image-Captioning-in-ComfyUI": { - "stars": 20, - "last_update": "2024-03-08 19:59:00" - }, - "https://github.com/Layer-norm/comfyui-lama-remover": { - "stars": 40, - "last_update": "2024-01-13 04:58:58" - }, - "https://github.com/Taremin/comfyui-prompt-extranetworks": { - "stars": 2, - "last_update": "2024-01-27 05:51:35" - }, - "https://github.com/Taremin/comfyui-string-tools": { - "stars": 1, - "last_update": "2024-02-16 16:28:32" - }, - "https://github.com/Taremin/webui-monaco-prompt": { - "stars": 24, - "last_update": "2024-01-21 06:45:42" - }, - "https://github.com/foxtrot-roger/comfyui-rf-nodes": { - "stars": 1, - "last_update": "2024-01-26 16:40:43" - }, - "https://github.com/abyz22/image_control": { - "stars": 2, - "last_update": "2024-02-18 23:17:53" - }, - "https://github.com/HAL41/ComfyUI-aichemy-nodes": { - "stars": 3, - "last_update": "2024-01-15 22:25:46" - }, - "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": { - "stars": 2, - "last_update": "2024-02-03 03:00:14" - }, - "https://github.com/nkchocoai/ComfyUI-PromptUtilities": { - "stars": 6, - "last_update": "2024-02-21 14:47:42" - }, - "https://github.com/nkchocoai/ComfyUI-TextOnSegs": { - "stars": 3, - "last_update": "2024-02-12 06:05:47" - }, - "https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData": { - "stars": 2, - "last_update": "2024-04-16 13:28:45" - }, - "https://github.com/nkchocoai/ComfyUI-Dart": { - "stars": 15, - "last_update": "2024-03-24 07:26:03" - }, - "https://github.com/JaredTherriault/ComfyUI-JNodes": { - "stars": 5, - "last_update": "2024-04-19 05:38:06" - }, - "https://github.com/prozacgod/comfyui-pzc-multiworkspace": { - "stars": 6, - "last_update": "2024-01-16 23:08:26" - }, - "https://github.com/Siberpone/lazy-pony-prompter": { - "stars": 15, - "last_update": "2024-03-30 05:31:25" - }, - "https://github.com/dave-palt/comfyui_DSP_imagehelpers": { - "stars": 0, - "last_update": "2024-01-18 04:59:26" - }, - "https://github.com/Inzaniak/comfyui-ranbooru": { - "stars": 4, - "last_update": "2024-02-25 10:30:59" - }, - "https://github.com/Miosp/ComfyUI-FBCNN": { - "stars": 3, - "last_update": "2024-01-19 21:30:27" - }, - "https://github.com/JcandZero/ComfyUI_GLM4Node": { - "stars": 22, - "last_update": "2024-02-21 01:48:08" - }, - "https://github.com/darkpixel/darkprompts": { - "stars": 3, - "last_update": "2024-04-15 16:40:05" - }, - "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": { - "stars": 131, - "last_update": "2024-04-17 09:02:51" - }, - "https://github.com/QaisMalkawi/ComfyUI-QaisHelper": { - "stars": 0, - "last_update": "2024-01-22 10:39:27" - }, - "https://github.com/longgui0318/comfyui-mask-util": { - "stars": 3, - "last_update": "2024-04-15 08:07:13" - }, - "https://github.com/longgui0318/comfyui-llm-assistant": { - "stars": 4, - "last_update": "2024-03-01 02:57:07" - }, - "https://github.com/longgui0318/comfyui-oms-diffusion": { - "stars": 7, - "last_update": "2024-04-18 09:35:04" - }, - "https://github.com/DimaChaichan/LAizypainter-Exporter-ComfyUI": { - "stars": 7, - "last_update": "2024-02-08 13:57:21" - }, - "https://github.com/adriflex/ComfyUI_Blender_Texdiff": { - "stars": 0, - "last_update": "2024-01-26 10:25:05" - }, - "https://github.com/Shraknard/ComfyUI-Remover": { - "stars": 4, - "last_update": "2024-01-23 23:14:23" - }, - "https://github.com/FlyingFireCo/tiled_ksampler": { - "stars": 54, - "last_update": "2023-08-13 23:05:26" - }, - "https://github.com/Nlar/ComfyUI_CartoonSegmentation": { - "stars": 7, - "last_update": "2024-01-25 23:17:51" - }, - "https://github.com/godspede/ComfyUI_Substring": { - "stars": 0, - "last_update": "2024-01-26 06:28:40" - }, - "https://github.com/gokayfem/ComfyUI_VLM_nodes": { - "stars": 183, - "last_update": "2024-04-20 18:42:31" - }, - "https://github.com/gokayfem/ComfyUI-Dream-Interpreter": { - "stars": 54, - "last_update": "2024-04-03 23:51:44" - }, - "https://github.com/gokayfem/ComfyUI-Depth-Visualization": { - "stars": 42, - "last_update": "2024-03-24 04:03:08" - }, - "https://github.com/gokayfem/ComfyUI-Texture-Simple": { - "stars": 27, - "last_update": "2024-03-24 22:20:21" - }, - "https://github.com/Hiero207/ComfyUI-Hiero-Nodes": { - "stars": 1, - "last_update": "2024-04-04 05:12:57" - }, - "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes": { - "stars": 0, - "last_update": "2024-01-26 08:38:39" - }, - "https://github.com/yuvraj108c/ComfyUI-Whisper": { - "stars": 23, - "last_update": "2024-02-05 08:32:57" - }, - "https://github.com/blepping/ComfyUI-bleh": { - "stars": 21, - "last_update": "2024-04-15 22:33:44" - }, - "https://github.com/blepping/ComfyUI-sonar": { - "stars": 25, - "last_update": "2024-04-05 18:57:04" - }, - "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": { - "stars": 2, - "last_update": "2024-02-14 20:36:01" - }, - "https://github.com/jamal-alkharrat/ComfyUI_rotate_image": { - "stars": 0, - "last_update": "2024-01-27 15:25:00" - }, - "https://github.com/mape/ComfyUI-mape-Helpers": { - "stars": 92, - "last_update": "2024-02-07 16:58:47" - }, - "https://github.com/zhongpei/Comfyui_image2prompt": { - "stars": 168, - "last_update": "2024-04-12 09:50:19" - }, - "https://github.com/zhongpei/ComfyUI-InstructIR": { - "stars": 53, - "last_update": "2024-02-01 06:40:40" - }, - "https://github.com/Loewen-Hob/rembg-comfyui-node-better": { - "stars": 24, - "last_update": "2024-01-29 16:03:36" - }, - "https://github.com/HaydenReeve/ComfyUI-Better-Strings": { - "stars": 0, - "last_update": "2024-04-04 17:27:11" - }, - "https://github.com/StartHua/ComfyUI_Seg_VITON": { - "stars": 143, - "last_update": "2024-02-07 05:33:39" - }, - "https://github.com/StartHua/Comfyui_joytag": { - "stars": 9, - "last_update": "2024-02-12 04:13:41" - }, - "https://github.com/StartHua/Comfyui_segformer_b2_clothes": { - "stars": 21, - "last_update": "2024-04-18 08:04:23" - }, - "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": { - "stars": 78, - "last_update": "2024-03-04 09:33:57" - }, - "https://github.com/ricklove/comfyui-ricklove": { - "stars": 0, - "last_update": "2024-02-01 02:50:59" - }, - "https://github.com/nosiu/comfyui-instantId-faceswap": { - "stars": 145, - "last_update": "2024-02-25 13:58:50" - }, - "https://github.com/LyazS/comfyui-anime-seg": { - "stars": 4, - "last_update": "2024-04-16 08:27:12" - }, - "https://github.com/Chan-0312/ComfyUI-IPAnimate": { - "stars": 52, - "last_update": "2024-02-01 09:17:58" - }, - "https://github.com/Chan-0312/ComfyUI-EasyDeforum": { - "stars": 5, - "last_update": "2024-03-14 02:14:56" - }, - "https://github.com/trumanwong/ComfyUI-NSFW-Detection": { - "stars": 8, - "last_update": "2024-02-04 08:49:11" - }, - "https://github.com/TemryL/ComfyS3": { - "stars": 8, - "last_update": "2024-02-08 16:59:15" - }, - "https://github.com/davask/ComfyUI-MarasIT-Nodes": { - "stars": 18, - "last_update": "2024-04-15 10:15:37" - }, - "https://github.com/yffyhk/comfyui_auto_danbooru": { - "stars": 0, - "last_update": "2024-02-04 08:09:57" - }, - "https://github.com/dfl/comfyui-clip-with-break": { - "stars": 5, - "last_update": "2024-02-05 17:48:33" - }, - "https://github.com/dfl/comfyui-tcd-scheduler": { - "stars": 65, - "last_update": "2024-04-08 20:15:29" - }, - "https://github.com/MarkoCa1/ComfyUI_Segment_Mask": { - "stars": 8, - "last_update": "2024-04-20 07:29:00" - }, - "https://github.com/antrobot1234/antrobots-comfyUI-nodepack": { - "stars": 8, - "last_update": "2024-03-06 22:34:12" - }, - "https://github.com/bilal-arikan/ComfyUI_TextAssets": { - "stars": 2, - "last_update": "2024-02-06 00:30:11" - }, - "https://github.com/kadirnar/ComfyUI-Transformers": { - "stars": 13, - "last_update": "2024-02-06 15:43:43" - }, - "https://github.com/digitaljohn/comfyui-propost": { - "stars": 93, - "last_update": "2024-02-11 10:08:19" - }, - "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes": { - "stars": 0, - "last_update": "2024-02-25 12:35:13" - }, - "https://github.com/XmYx/deforum-comfy-nodes": { - "stars": 78, - "last_update": "2024-04-11 00:45:00" - }, - "https://github.com/adbrasi/ComfyUI-TrashNodes-DownloadHuggingface": { - "stars": 4, - "last_update": "2024-02-08 21:25:17" - }, - "https://github.com/mbrostami/ComfyUI-HF": { - "stars": 8, - "last_update": "2024-02-11 00:03:26" - }, - "https://github.com/Billius-AI/ComfyUI-Path-Helper": { - "stars": 11, - "last_update": "2024-02-26 10:48:42" - }, - "https://github.com/Franck-Demongin/NX_PromptStyler": { - "stars": 4, - "last_update": "2024-02-19 10:14:56" - }, - "https://github.com/xiaoxiaodesha/hd_node": { - "stars": 5, - "last_update": "2024-02-18 05:23:57" - }, - "https://github.com/ShmuelRonen/ComfyUI-SVDResizer": { - "stars": 1, - "last_update": "2024-03-08 15:16:10" - }, - "https://github.com/redhottensors/ComfyUI-Prediction": { - "stars": 8, - "last_update": "2024-04-06 02:11:59" - }, - "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes": { - "stars": 11, - "last_update": "2024-04-02 12:00:48" - }, - "https://github.com/jordoh/ComfyUI-Deepface": { - "stars": 9, - "last_update": "2024-03-23 14:37:34" - }, - "https://github.com/yuvraj108c/ComfyUI-Pronodes": { - "stars": 0, - "last_update": "2024-03-22 18:22:13" - }, - "https://github.com/yuvraj108c/ComfyUI-Vsgan": { - "stars": 1, - "last_update": "2024-03-08 10:11:28" - }, - "https://github.com/yytdfc/ComfyUI-Bedrock": { - "stars": 5, - "last_update": "2024-04-02 09:26:29" - }, - "https://github.com/mirabarukaso/ComfyUI_Mira": { - "stars": 6, - "last_update": "2024-04-10 12:24:38" - }, - "https://github.com/1038lab/ComfyUI-GPT2P": { - "stars": 3, - "last_update": "2024-02-21 04:45:27" - }, - "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes": { - "stars": 5, - "last_update": "2024-04-05 05:11:51" - }, - "https://github.com/klinter007/klinter_nodes": { - "stars": 2, - "last_update": "2024-04-15 12:13:56" - }, - "https://github.com/Ludobico/ComfyUI-ScenarioPrompt": { - "stars": 12, - "last_update": "2024-03-26 01:28:07" - }, - "https://github.com/logtd/ComfyUI-InstanceDiffusion": { - "stars": 22, - "last_update": "2024-03-31 19:06:57" - }, - "https://github.com/logtd/ComfyUI-TrackingNodes": { - "stars": 5, - "last_update": "2024-02-24 04:43:16" - }, - "https://github.com/logtd/ComfyUI-InversedNoise": { - "stars": 3, - "last_update": "2024-03-31 19:11:53" - }, - "https://github.com/logtd/ComfyUI-RefSampling": { - "stars": 3, - "last_update": "2024-03-31 02:11:14" - }, - "https://github.com/logtd/ComfyUI-FLATTEN": { - "stars": 51, - "last_update": "2024-04-10 01:46:26" - }, - "https://github.com/Big-Idea-Technology/ComfyUI_Image_Text_Overlay": { - "stars": 4, - "last_update": "2024-04-19 14:21:28" - }, - "https://github.com/Big-Idea-Technology/ComfyUI_LLM_Node": { - "stars": 36, - "last_update": "2024-04-19 23:02:07" - }, - "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio": { - "stars": 3, - "last_update": "2024-02-26 09:37:16" - }, - "https://github.com/AuroBit/ComfyUI-OOTDiffusion": { - "stars": 266, - "last_update": "2024-03-26 02:44:57" - }, - "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction": { - "stars": 33, - "last_update": "2024-02-29 10:19:36" - }, - "https://github.com/czcz1024/Comfyui-FaceCompare": { - "stars": 0, - "last_update": "2024-02-23 09:08:32" - }, - "https://github.com/TheBill2001/comfyui-upscale-by-model": { - "stars": 0, - "last_update": "2024-02-24 00:49:19" - }, - "https://github.com/leoleelxh/ComfyUI-LLMs": { - "stars": 6, - "last_update": "2024-03-07 07:34:10" - }, - "https://github.com/hughescr/ComfyUI-OpenPose-Keypoint-Extractor": { - "stars": 3, - "last_update": "2024-02-24 21:41:24" - }, - "https://github.com/jkrauss82/ultools-comfyui": { - "stars": 4, - "last_update": "2024-03-31 08:27:34" - }, - "https://github.com/hiforce/comfyui-hiforce-plugin": { - "stars": 2, - "last_update": "2024-02-29 09:35:31" - }, - "https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control": { - "stars": 13, - "last_update": "2024-04-04 15:08:35" - }, - "https://github.com/guill/abracadabra-comfyui": { - "stars": 1, - "last_update": "2024-02-26 04:25:21" - }, - "https://github.com/cerspense/ComfyUI_cspnodes": { - "stars": 21, - "last_update": "2024-03-23 14:40:21" - }, - "https://github.com/qwixiwp/queuetools": { - "stars": 0, - "last_update": "2024-02-26 19:21:00" - }, - "https://github.com/Chan-0312/ComfyUI-Prompt-Preview": { - "stars": 12, - "last_update": "2024-02-27 11:30:38" - }, - "https://github.com/Munkyfoot/ComfyUI-TextOverlay": { - "stars": 0, - "last_update": "2024-02-27 22:56:42" - }, - "https://github.com/holchan/ComfyUI-ModelDownloader": { - "stars": 2, - "last_update": "2024-03-02 05:43:41" - }, - "https://github.com/Alysondao/Comfyui-Yolov8-JSON": { - "stars": 9, - "last_update": "2024-04-16 08:29:55" - }, - "https://github.com/CC-BryanOttho/ComfyUI_API_Manager": { - "stars": 5, - "last_update": "2024-02-27 23:31:45" - }, - "https://github.com/maracman/ComfyUI-SubjectStyle-CSV": { - "stars": 3, - "last_update": "2024-02-29 19:40:01" - }, - "https://github.com/438443467/ComfyUI-GPT4V-Image-Captioner": { - "stars": 13, - "last_update": "2024-04-18 21:41:59" - }, - "https://github.com/uetuluk/comfyui-webcam-node": { - "stars": 0, - "last_update": "2024-03-01 07:25:27" - }, - "https://github.com/huchenlei/ComfyUI-layerdiffuse": { - "stars": 1064, - "last_update": "2024-03-09 21:16:31" - }, - "https://github.com/huchenlei/ComfyUI_DanTagGen": { - "stars": 38, - "last_update": "2024-03-23 19:40:34" - }, - "https://github.com/nathannlu/ComfyUI-Pets": { - "stars": 34, - "last_update": "2024-03-31 23:55:42" - }, - "https://github.com/nathannlu/ComfyUI-Cloud": { - "stars": 112, - "last_update": "2024-04-03 00:59:21" + "last_update": "2025-08-03 02:14:03", + "author_account_age_days": 560 }, "https://github.com/11dogzi/Comfyui-ergouzi-Nodes": { + "stars": 86, + "last_update": "2024-08-23 12:04:09", + "author_account_age_days": 560 + }, + "https://github.com/11dogzi/Comfyui-ergouzi-kaiguan": { + "stars": 71, + "last_update": "2025-06-22 14:48:37", + "author_account_age_days": 560 + }, + "https://github.com/11dogzi/Comfyui-ergouzi-samplers": { + "stars": 27, + "last_update": "2024-06-28 05:28:05", + "author_account_age_days": 560 + }, + "https://github.com/1hew/ComfyUI-1hewNodes": { + "stars": 6, + "last_update": "2025-09-02 13:09:05", + "author_account_age_days": 883 + }, + "https://github.com/1mckw/Comfyui-Gelbooru": { "stars": 4, - "last_update": "2024-03-12 02:03:09" + "last_update": "2025-04-06 14:11:25", + "author_account_age_days": 1125 }, - "https://github.com/BXYMartin/ComfyUI-InstantIDUtils": { - "stars": 3, - "last_update": "2024-03-04 16:42:02" - }, - "https://github.com/cdb-boop/comfyui-image-round": { - "stars": 0, - "last_update": "2024-03-07 07:35:43" - }, - "https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life": { + "https://github.com/1zhangyy1/comfyui-vidu-nodes": { "stars": 8, - "last_update": "2024-04-18 18:49:15" + "last_update": "2025-03-21 12:25:22", + "author_account_age_days": 894 }, - "https://github.com/atmaranto/ComfyUI-SaveAsScript": { - "stars": 8, - "last_update": "2024-03-20 08:47:51" - }, - "https://github.com/meshmesh-io/mm-comfyui-megamask": { - "stars": 0, - "last_update": "2024-03-07 23:59:12" - }, - "https://github.com/meshmesh-io/mm-comfyui-loopback": { - "stars": 0, - "last_update": "2024-03-07 19:46:37" - }, - "https://github.com/meshmesh-io/ComfyUI-MeshMesh": { - "stars": 0, - "last_update": "2024-03-12 17:19:32" - }, - "https://github.com/cozymantis/human-parser-comfyui-node": { - "stars": 31, - "last_update": "2024-04-02 20:04:32" - }, - "https://github.com/cozymantis/pose-generator-comfyui-node": { - "stars": 13, - "last_update": "2024-03-13 14:59:23" - }, - "https://github.com/cozymantis/cozy-utils-comfyui-nodes": { - "stars": 3, - "last_update": "2024-03-13 11:25:27" - }, - "https://github.com/vivax3794/ComfyUI-Vivax-Nodes": { - "stars": 3, - "last_update": "2024-03-17 22:02:48" - }, - "https://github.com/victorchall/comfyui_webcamcapture": { + "https://github.com/2frames/ComfyUI-AQnodes": { "stars": 1, - "last_update": "2024-03-06 18:33:39" + "last_update": "2025-06-08 12:51:07", + "author_account_age_days": 425 }, - "https://github.com/ljleb/comfy-mecha": { - "stars": 4, - "last_update": "2024-03-24 21:52:17" + "https://github.com/2kpr/ComfyUI-PMRF": { + "stars": 231, + "last_update": "2024-10-11 00:11:40", + "author_account_age_days": 1354 }, - "https://github.com/diStyApps/ComfyUI_FrameMaker": { - "stars": 9, - "last_update": "2024-03-08 09:19:43" + "https://github.com/2kpr/ComfyUI-UltraPixel": { + "stars": 225, + "last_update": "2024-07-27 14:52:10", + "author_account_age_days": 1354 }, - "https://github.com/hackkhai/ComfyUI-Image-Matting": { - "stars": 8, - "last_update": "2024-03-09 06:30:39" + "https://github.com/311-code/ComfyUI-MagicClip_Strength": { + "stars": 2, + "last_update": "2024-09-22 12:07:40", + "author_account_age_days": 3207 }, - "https://github.com/Pos13/comfyui-cyclist": { + "https://github.com/31702160136/ComfyUI-GrsAI": { "stars": 12, - "last_update": "2024-04-20 04:13:22" + "last_update": "2025-07-05 11:35:32", + "author_account_age_days": 2439 }, - "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V": { - "stars": 25, - "last_update": "2024-03-09 00:02:47" + "https://github.com/42lux/ComfyUI-42lux": { + "stars": 23, + "last_update": "2025-08-09 03:27:58", + "author_account_age_days": 4133 }, - "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter": { - "stars": 72, - "last_update": "2024-04-02 23:29:14" + "https://github.com/438443467/ComfyUI-GPT4V-Image-Captioner": { + "stars": 27, + "last_update": "2025-04-06 02:06:59", + "author_account_age_days": 849 }, - "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting": { - "stars": 215, - "last_update": "2024-04-17 22:30:10" + "https://github.com/45uee/ComfyUI-Color_Transfer": { + "stars": 29, + "last_update": "2025-05-12 22:12:06", + "author_account_age_days": 2738 }, - "https://github.com/angeloshredder/StableCascadeResizer": { - "stars": 0, - "last_update": "2024-03-08 22:53:27" + "https://github.com/54rt1n/ComfyUI-DareMerge": { + "stars": 93, + "last_update": "2025-03-27 14:57:35", + "author_account_age_days": 4485 }, - "https://github.com/stavsap/comfyui-ollama": { - "stars": 25, - "last_update": "2024-04-07 20:49:11" + "https://github.com/5x00/ComfyUI-PiAPI-Faceswap": { + "stars": 2, + "last_update": "2025-01-12 14:49:09", + "author_account_age_days": 1407 }, - "https://github.com/dchatel/comfyui_facetools": { - "stars": 32, - "last_update": "2024-04-06 11:45:55" + "https://github.com/5x00/ComfyUI-VLM-Captions": { + "stars": 7, + "last_update": "2025-01-04 21:27:47", + "author_account_age_days": 1407 }, - "https://github.com/prodogape/ComfyUI-Minio": { + "https://github.com/6174/comflowy-nodes": { + "stars": 14, + "last_update": "2024-12-03 13:31:04", + "author_account_age_days": 4554 + }, + "https://github.com/807502278/ComfyUI-3D-MeshTool": { + "stars": 23, + "last_update": "2024-10-18 09:59:54", + "author_account_age_days": 2448 + }, + "https://github.com/807502278/ComfyUI-WJNodes": { + "stars": 13, + "last_update": "2025-08-07 02:09:27", + "author_account_age_days": 2448 + }, + "https://github.com/807502278/ComfyUI_MaskGCT": { + "stars": 27, + "last_update": "2025-03-05 09:15:32", + "author_account_age_days": 2448 + }, + "https://github.com/80sVectorz/ComfyUI-Static-Primitives": { + "stars": 11, + "last_update": "2025-03-14 11:42:07", + "author_account_age_days": 1906 + }, + "https://github.com/834t/ComfyUI_834t_scene_composer": { + "stars": 2, + "last_update": "2025-06-23 10:55:47", + "author_account_age_days": 633 + }, + "https://github.com/852wa/ComfyUI-AAP": { + "stars": 9, + "last_update": "2025-01-29 13:21:59", + "author_account_age_days": 798 + }, + "https://github.com/852wa/ComfyUI-ColorshiftColor": { + "stars": 51, + "last_update": "2025-02-01 12:17:38", + "author_account_age_days": 798 + }, + "https://github.com/A043-studios/ComfyUI-ASDF-Pixel-Sort-Nodes": { + "stars": 3, + "last_update": "2025-06-12 12:51:33", + "author_account_age_days": 1084 + }, + "https://github.com/A043-studios/ComfyUI-OmniSVG": { "stars": 1, - "last_update": "2024-03-09 07:44:51" + "last_update": "2025-08-02 22:44:24", + "author_account_age_days": 1084 + }, + "https://github.com/A043-studios/ComfyUI_HunyuanWorldnode": { + "stars": 1, + "last_update": "2025-08-02 15:50:33", + "author_account_age_days": 1084 + }, + "https://github.com/A043-studios/Comfyui-ascii-generator": { + "stars": 0, + "last_update": "2025-06-25 14:55:32", + "author_account_age_days": 1084 + }, + "https://github.com/A043-studios/comfyui-deforum-x-flux-nodes": { + "stars": 1, + "last_update": "2025-06-10 14:28:27", + "author_account_age_days": 1084 + }, + "https://github.com/A043-studios/comfyui-pixel3dmm": { + "stars": 5, + "last_update": "2025-06-10 08:11:51", + "author_account_age_days": 1084 + }, + "https://github.com/A4P7J1N7M05OT/ComfyUI-AutoColorGimp": { + "stars": 1, + "last_update": "2024-05-23 00:26:10", + "author_account_age_days": 907 + }, + "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE-Wrapper": { + "stars": 11, + "last_update": "2025-01-21 22:26:11", + "author_account_age_days": 907 + }, + "https://github.com/AARG-FAN/Image-Vector-for-ComfyUI": { + "stars": 141, + "last_update": "2024-06-23 14:56:16", + "author_account_age_days": 934 + }, + "https://github.com/AEmotionStudio/ComfyUI-ChristmasTheme": { + "stars": 39, + "last_update": "2025-06-03 13:01:58", + "author_account_age_days": 537 + }, + "https://github.com/AEmotionStudio/ComfyUI-DiscordSend": { + "stars": 9, + "last_update": "2025-06-03 13:03:23", + "author_account_age_days": 537 + }, + "https://github.com/AEmotionStudio/ComfyUI-EnhancedLinksandNodes": { + "stars": 40, + "last_update": "2025-06-03 13:02:36", + "author_account_age_days": 537 + }, + "https://github.com/AEmotionStudio/ComfyUI-MagnifyGlass": { + "stars": 20, + "last_update": "2025-09-01 21:40:26", + "author_account_age_days": 537 + }, + "https://github.com/AEmotionStudio/ComfyUI-ShaderNoiseKSampler": { + "stars": 45, + "last_update": "2025-09-02 08:09:40", + "author_account_age_days": 537 + }, + "https://github.com/AI2lab/comfyUI-siliconflow-api-2lab": { + "stars": 8, + "last_update": "2024-08-01 15:13:33", + "author_account_age_days": 627 + }, + "https://github.com/AIDC-AI/ComfyUI-Copilot": { + "stars": 2584, + "last_update": "2025-09-02 10:12:16", + "author_account_age_days": 446 + }, + "https://github.com/AIExplorer25/ComfyUI_AutoDownloadModels": { + "stars": 17, + "last_update": "2025-04-05 22:05:47", + "author_account_age_days": 3901 + }, + "https://github.com/AIExplorer25/ComfyUI_ChatGptHelper": { + "stars": 0, + "last_update": "2025-05-18 19:11:40", + "author_account_age_days": 3901 + }, + "https://github.com/AIExplorer25/ComfyUI_ImageCaptioner": { + "stars": 0, + "last_update": "2025-08-15 12:30:28", + "author_account_age_days": 3901 + }, + "https://github.com/AIFSH/AniTalker-ComfyUI": { + "stars": 5, + "last_update": "2024-08-06 03:08:44", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-3d-photo-inpainting": { + "stars": 14, + "last_update": "2024-06-19 13:59:49", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-AuraSR": { + "stars": 22, + "last_update": "2024-06-27 14:00:16", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-DiffSynth-Studio": { + "stars": 91, + "last_update": "2024-08-05 08:48:03", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-FishSpeech": { + "stars": 39, + "last_update": "2024-05-23 01:18:49", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-GPT_SoVITS": { + "stars": 245, + "last_update": "2024-08-09 22:00:45", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-Hallo": { + "stars": 305, + "last_update": "2024-06-24 06:43:23", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-I2V-Adapter": { + "stars": 21, + "last_update": "2024-07-02 01:59:49", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-IP_LAP": { + "stars": 34, + "last_update": "2024-06-14 07:05:39", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-Live2DViewer": { + "stars": 9, + "last_update": "2024-06-14 07:04:49", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-MARS5-TTS": { + "stars": 28, + "last_update": "2024-07-02 02:00:28", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-MimicBrush": { + "stars": 115, + "last_update": "2024-06-17 22:26:53", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-MimicMotion": { + "stars": 378, + "last_update": "2024-08-06 06:21:16", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH": { + "stars": 21, + "last_update": "2024-06-14 07:05:19", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-RVC": { + "stars": 26, + "last_update": "2024-06-14 07:05:25", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-UVR5": { + "stars": 100, + "last_update": "2024-06-20 07:31:20", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-UniAnimate": { + "stars": 39, + "last_update": "2024-06-30 09:20:25", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-WhisperX": { + "stars": 52, + "last_update": "2025-04-01 00:14:44", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-XTTS": { + "stars": 60, + "last_update": "2024-06-24 09:45:59", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI_V-Express": { + "stars": 87, + "last_update": "2024-06-23 09:54:57", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/CosyVoice-ComfyUI": { + "stars": 271, + "last_update": "2024-09-10 22:21:37", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/DHLive-ComfyUI": { + "stars": 24, + "last_update": "2024-11-14 01:45:45", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/DiffMorpher-ComfyUI": { + "stars": 16, + "last_update": "2024-07-17 01:24:59", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/DiffSynth-ComfyUI": { + "stars": 0, + "last_update": "2024-09-07 12:23:07", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/EchoMimicV2-ComfyUI": { + "stars": 58, + "last_update": "2024-12-08 08:53:21", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/EzAudio-ComfyUI": { + "stars": 9, + "last_update": "2024-10-08 05:22:46", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/F5-TTS-ComfyUI": { + "stars": 36, + "last_update": "2024-11-14 01:43:03", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/FancyVideo-ComfyUI": { + "stars": 36, + "last_update": "2024-10-12 07:21:51", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/FireRedTTS-ComfyUI": { + "stars": 13, + "last_update": "2024-10-24 01:18:51", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/GSTTS-ComfyUI": { + "stars": 42, + "last_update": "2024-08-25 03:23:24", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI": { + "stars": 166, + "last_update": "2024-09-16 14:16:06", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/IMAGDressing-ComfyUI": { + "stars": 63, + "last_update": "2024-11-14 01:44:02", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/JoyHallo-ComfyUI": { + "stars": 8, + "last_update": "2024-11-14 01:44:39", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/MaskGCT-ComfyUI": { + "stars": 63, + "last_update": "2024-11-14 01:40:15", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/MiniMates-ComfyUI": { + "stars": 29, + "last_update": "2024-11-14 01:36:30", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/OmniGen-ComfyUI": { + "stars": 210, + "last_update": "2024-11-14 01:37:33", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/PyramidFlow-ComfyUI": { + "stars": 14, + "last_update": "2024-10-10 13:59:16", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/RealisDance-ComfyUI": { + "stars": 51, + "last_update": "2024-09-13 14:38:59", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/SemiChat-ComfyUI": { + "stars": 12, + "last_update": "2025-02-19 23:21:48", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/SenseVoice-ComfyUI": { + "stars": 14, + "last_update": "2024-07-16 06:41:25", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/StyleShot-ComfyUI": { + "stars": 4, + "last_update": "2024-08-17 00:25:29", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/VideoSys-ComfyUI": { + "stars": 6, + "last_update": "2024-09-01 09:11:57", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ViewCrafter-ComfyUI": { + "stars": 8, + "last_update": "2024-09-19 11:11:25", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/VocalSeparation-ComfyUI": { + "stars": 20, + "last_update": "2024-10-24 07:16:37", + "author_account_age_days": 666 }, "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes": { - "stars": 1, - "last_update": "2024-02-22 08:30:33" + "stars": 7, + "last_update": "2024-09-13 07:34:18", + "author_account_age_days": 645 }, - "https://github.com/vsevolod-oparin/comfyui-kandinsky22": { + "https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION": { + "stars": 2325, + "last_update": "2025-03-24 00:01:12", + "author_account_age_days": 936 + }, + "https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Studio": { + "stars": 352, + "last_update": "2025-01-06 11:31:20", + "author_account_age_days": 936 + }, + "https://github.com/AIGODLIKE/ComfyUI-CUP": { + "stars": 50, + "last_update": "2025-06-29 09:56:53", + "author_account_age_days": 936 + }, + "https://github.com/AIGODLIKE/ComfyUI-ToonCrafter": { + "stars": 368, + "last_update": "2024-07-17 02:28:49", + "author_account_age_days": 936 + }, + "https://github.com/AIPOQUE/ComfyUI-APQNodes": { + "stars": 107, + "last_update": "2024-11-21 08:56:49", + "author_account_age_days": 317 + }, + "https://github.com/AIToldMeTo/comfyui-cache-cleaner": { + "stars": 10, + "last_update": "2025-05-29 10:44:45", + "author_account_age_days": 265 + }, + "https://github.com/AIWarper/ComfyUI-DAViD": { + "stars": 3, + "last_update": "2025-07-25 17:07:43", + "author_account_age_days": 312 + }, + "https://github.com/AIWarper/ComfyUI-NormalCrafterWrapper": { + "stars": 64, + "last_update": "2025-07-18 20:14:36", + "author_account_age_days": 312 + }, + "https://github.com/AIWarper/ComfyUI-WarperNodes": { + "stars": 11, + "last_update": "2025-09-01 18:35:12", + "author_account_age_days": 312 + }, + "https://github.com/AInseven/ComfyUI-fastblend": { + "stars": 224, + "last_update": "2024-11-22 03:32:25", + "author_account_age_days": 2118 + }, + "https://github.com/AIrjen/OneButtonPrompt": { + "stars": 1016, + "last_update": "2025-07-20 12:15:47", + "author_account_age_days": 878 + }, + "https://github.com/AJO-reading/ComfyUI-AjoNodes": { + "stars": 11, + "last_update": "2025-06-16 08:10:10", + "author_account_age_days": 284 + }, + "https://github.com/AKharytonchyk/ComfyUI-telegram-bot-node": { + "stars": 0, + "last_update": "2025-06-23 22:03:39", + "author_account_age_days": 3317 + }, + "https://github.com/ALatentPlace/ComfyUI_yanc": { + "stars": 66, + "last_update": "2025-01-22 14:44:17", + "author_account_age_days": 1895 + }, + "https://github.com/ALatentPlace/YANC_LMStudio": { + "stars": 14, + "last_update": "2025-04-30 14:57:13", + "author_account_age_days": 1895 + }, + "https://github.com/APZmedia/APZmedia-comfy-together-lora": { + "stars": 0, + "last_update": "2025-02-15 13:14:17", + "author_account_age_days": 2912 + }, + "https://github.com/APZmedia/APZmedia-comfyui-fast-image-save": { + "stars": 4, + "last_update": "2025-04-21 19:22:43", + "author_account_age_days": 2912 + }, + "https://github.com/APZmedia/ComfyUI-APZmedia-cleanName-from-string": { + "stars": 7, + "last_update": "2025-08-11 13:55:09", + "author_account_age_days": 2912 + }, + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA": { + "stars": 4, + "last_update": "2025-04-08 08:00:15", + "author_account_age_days": 2201 + }, + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-PixelIt": { + "stars": 1, + "last_update": "2025-09-01 15:25:55", + "author_account_age_days": 2201 + }, + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-Qwen2": { + "stars": 1, + "last_update": "2025-06-04 13:10:22", + "author_account_age_days": 2201 + }, + "https://github.com/Aaron-CHM/ComfyUI-z-a1111-sd-webui-DanTagGen": { + "stars": 4, + "last_update": "2024-07-17 03:55:26", + "author_account_age_days": 1961 + }, + "https://github.com/AbdullahAlfaraj/Comfy-Photoshop-SD": { + "stars": 296, + "last_update": "2024-06-14 07:04:37", + "author_account_age_days": 4102 + }, + "https://github.com/AbstractEyes/comfyui-lycoris": { + "stars": 8, + "last_update": "2025-07-26 16:43:05", + "author_account_age_days": 1813 + }, + "https://github.com/AbyssBadger0/ComfyUI_BadgerTools": { + "stars": 8, + "last_update": "2024-11-12 11:10:16", + "author_account_age_days": 924 + }, + "https://github.com/AbyssBadger0/ComfyUI_Kolors_awesome_prompts": { "stars": 5, - "last_update": "2024-03-17 00:05:27" + "last_update": "2024-08-29 15:19:06", + "author_account_age_days": 924 }, - "https://github.com/Xyem/Xycuno-Oobabooga": { + "https://github.com/AcademiaSD/comfyui_AcademiaSD": { + "stars": 12, + "last_update": "2025-08-19 10:27:43", + "author_account_age_days": 468 + }, + "https://github.com/Acly/comfyui-inpaint-nodes": { + "stars": 1032, + "last_update": "2025-03-31 09:53:40", + "author_account_age_days": 4239 + }, + "https://github.com/Acly/comfyui-tooling-nodes": { + "stars": 543, + "last_update": "2025-08-20 22:21:45", + "author_account_age_days": 4239 + }, + "https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes": { + "stars": 10, + "last_update": "2025-08-19 18:40:24", + "author_account_age_days": 1915 + }, + "https://github.com/Aero-Ex/ComfyUI-Vision-LLM-Analyzer": { + "stars": 0, + "last_update": "2025-07-17 07:03:51", + "author_account_age_days": 1186 + }, + "https://github.com/Aerse/ComfyUI-Seed-Nodes": { + "stars": 5, + "last_update": "2025-06-10 08:19:10", + "author_account_age_days": 3813 + }, + "https://github.com/AgencyMind/ComfyUI-GPU-Preprocessor-Wrapper": { + "stars": 3, + "last_update": "2025-06-13 08:15:25", + "author_account_age_days": 295 + }, + "https://github.com/AgencyMind/ComfyUI-Satori": { "stars": 1, - "last_update": "2024-03-12 19:50:18" + "last_update": "2025-06-27 01:29:00", + "author_account_age_days": 295 }, - "https://github.com/shi3z/ComfyUI_Memeplex_DALLE": { - "stars": 2, - "last_update": "2024-03-13 08:26:09" - }, - "https://github.com/if-ai/ComfyUI-IF_AI_tools": { - "stars": 131, - "last_update": "2024-04-20 16:51:37" - }, - "https://github.com/dmMaze/sketch2manga": { - "stars": 21, - "last_update": "2024-03-14 05:44:16" - }, - "https://github.com/olduvai-jp/ComfyUI-HfLoader": { - "stars": 1, - "last_update": "2024-03-18 04:57:05" + "https://github.com/AhBumm/ComfyUI_BillBum_APIset_Nodes": { + "stars": 10, + "last_update": "2025-08-26 10:49:29", + "author_account_age_days": 1244 }, "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes": { "stars": 0, - "last_update": "2024-03-31 14:14:24" + "last_update": "2024-06-20 17:26:02", + "author_account_age_days": 1711 }, - "https://github.com/ForeignGods/ComfyUI-Mana-Nodes": { - "stars": 141, - "last_update": "2024-04-18 20:04:37" + "https://github.com/AkashKarnatak/ComfyUI_faishme": { + "stars": 0, + "last_update": "2025-08-24 07:19:00", + "author_account_age_days": 2188 }, - "https://github.com/madtunebk/ComfyUI-ControlnetAux": { + "https://github.com/Aksaz/comfyui-seamless-clone": { + "stars": 12, + "last_update": "2025-05-20 07:08:24", + "author_account_age_days": 318 + }, + "https://github.com/Alectriciti/comfyui-adaptiveprompts": { + "stars": 2, + "last_update": "2025-08-16 08:54:08", + "author_account_age_days": 4900 + }, + "https://github.com/AlekPet/ComfyUI_Custom_Nodes_AlekPet": { + "stars": 1338, + "last_update": "2025-08-30 17:26:49", + "author_account_age_days": 3134 + }, + "https://github.com/Alexankharin/camera-comfyUI": { + "stars": 16, + "last_update": "2025-07-26 16:40:12", + "author_account_age_days": 2556 + }, + "https://github.com/AlfredClark/ComfyUI-ModelSpec": { + "stars": 0, + "last_update": "2025-07-30 04:47:11", + "author_account_age_days": 2320 + }, + "https://github.com/Aljnk/ComfyUI-JNK-Tiny-Nodes": { + "stars": 3, + "last_update": "2025-07-14 10:36:50", + "author_account_age_days": 3838 + }, + "https://github.com/Altair200333/ComfyUI_Flux_1.1_PRO": { + "stars": 0, + "last_update": "2025-03-23 19:29:25", + "author_account_age_days": 3145 + }, + "https://github.com/Alvaroeai/ComfyUI-Text2Json": { + "stars": 1, + "last_update": "2024-11-26 16:40:31", + "author_account_age_days": 4136 + }, + "https://github.com/Amorano/Jovi_Capture": { "stars": 7, - "last_update": "2024-03-16 13:52:32" + "last_update": "2025-05-31 18:38:22", + "author_account_age_days": 5647 }, - "https://github.com/MarkoCa1/ComfyUI-Text": { + "https://github.com/Amorano/Jovi_Colorizer": { + "stars": 6, + "last_update": "2025-05-22 20:00:19", + "author_account_age_days": 5647 + }, + "https://github.com/Amorano/Jovi_GLSL": { + "stars": 17, + "last_update": "2025-08-25 04:34:38", + "author_account_age_days": 5647 + }, + "https://github.com/Amorano/Jovi_MIDI": { + "stars": 6, + "last_update": "2025-05-05 04:11:06", + "author_account_age_days": 5647 + }, + "https://github.com/Amorano/Jovi_Measure": { "stars": 2, - "last_update": "2024-03-16 06:25:38" + "last_update": "2025-08-29 02:31:26", + "author_account_age_days": 5647 }, - "https://github.com/Shadetail/ComfyUI_Eagleshadow": { - "stars": 0, - "last_update": "2024-04-02 18:09:01" + "https://github.com/Amorano/Jovi_Spout": { + "stars": 7, + "last_update": "2025-08-29 02:29:14", + "author_account_age_days": 5647 }, - "https://github.com/ArdeniusAI/CPlus_Ardenius": { - "stars": 0, - "last_update": "2024-03-28 02:21:05" + "https://github.com/Amorano/Jovimetrix": { + "stars": 372, + "last_update": "2025-08-15 20:17:13", + "author_account_age_days": 5647 }, - "https://github.com/Jannchie/ComfyUI-J": { - "stars": 51, - "last_update": "2024-04-17 16:25:57" - }, - "https://github.com/daxcay/ComfyUI-JDCN": { + "https://github.com/Andro-Meta/ComfyUI-Ovis2": { "stars": 5, - "last_update": "2024-04-19 18:37:18" + "last_update": "2025-03-24 04:27:56", + "author_account_age_days": 707 }, - "https://github.com/Seedsa/Fooocus_Nodes": { - "stars": 21, - "last_update": "2024-04-13 12:38:56" - }, - "https://github.com/zhangp365/ComfyUI-utils-nodes": { - "stars": 2, - "last_update": "2024-04-16 02:02:15" - }, - "https://github.com/ratulrafsan/Comfyui-SAL-VTON": { - "stars": 24, - "last_update": "2024-03-22 04:31:59" - }, - "https://github.com/Nevysha/ComfyUI-nevysha-top-menu": { - "stars": 4, - "last_update": "2024-03-23 10:48:36" - }, - "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer": { - "stars": 13, - "last_update": "2024-03-31 15:13:33" - }, - "https://github.com/chaosaiart/Chaosaiart-Nodes": { - "stars": 25, - "last_update": "2024-04-20 14:41:44" - }, - "https://github.com/viperyl/ComfyUI-BiRefNet": { - "stars": 127, - "last_update": "2024-03-25 11:02:49" - }, - "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": { - "stars": 73, - "last_update": "2024-04-07 23:49:52" - }, - "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes": { + "https://github.com/AngelCookies/ComfyUI-Seed-Tracker": { "stars": 0, - "last_update": "2024-03-26 16:55:10" + "last_update": "2025-06-23 23:56:50", + "author_account_age_days": 1256 }, - "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt": { - "stars": 29, - "last_update": "2024-04-07 10:43:50" - }, - "https://github.com/hay86/ComfyUI_Dreamtalk": { - "stars": 3, - "last_update": "2024-04-12 09:13:05" - }, - "https://github.com/shinich39/comfyui-load-image-39": { + "https://github.com/Anibaaal/ComfyUI-UX-Nodes": { "stars": 2, - "last_update": "2024-04-07 14:38:17" + "last_update": "2025-01-23 13:35:49", + "author_account_age_days": 3811 }, - "https://github.com/shinich39/comfyui-ramdom-node-39": { - "stars": 2, - "last_update": "2024-04-15 14:27:54" + "https://github.com/AonekoSS/ComfyUI-LoRA-Tuner": { + "stars": 10, + "last_update": "2025-03-27 17:07:38", + "author_account_age_days": 4526 }, - "https://github.com/wei30172/comfygen": { - "stars": 3, - "last_update": "2024-04-06 16:22:09" + "https://github.com/AonekoSS/ComfyUI-SimpleCounter": { + "stars": 1, + "last_update": "2025-03-27 17:08:39", + "author_account_age_days": 4526 }, - "https://github.com/zombieyang/sd-ppp": { - "stars": 5, - "last_update": "2024-04-16 14:39:34" - }, - "https://github.com/KytraScript/ComfyUI_KytraWebhookHTTP": { - "stars": 3, - "last_update": "2024-03-29 06:08:53" - }, - "https://github.com/1mckw/Comfyui-Gelbooru": { - "stars": 2, - "last_update": "2024-03-29 04:22:07" - }, - "https://github.com/NeuralSamurAI/Comfyui-Superprompt-Unofficial": { + "https://github.com/ArcherFMY/Diffusion360_ComfyUI": { "stars": 44, - "last_update": "2024-03-30 22:07:58" + "last_update": "2025-03-17 06:08:17", + "author_account_age_days": 3824 }, - "https://github.com/MokkaBoss1/ComfyUI_Mokkaboss1": { + "https://github.com/ArdeniusAI/ComfyUI-Ardenius": { "stars": 5, - "last_update": "2024-04-20 20:50:57" + "last_update": "2024-11-24 09:57:46", + "author_account_age_days": 561 }, - "https://github.com/jiaxiangc/ComfyUI-ResAdapter": { - "stars": 242, - "last_update": "2024-04-06 09:25:46" + "https://github.com/Arkanun/ReadCSV_ComfyUI": { + "stars": 0, + "last_update": "2025-02-05 23:06:48", + "author_account_age_days": 3384 }, - "https://github.com/ParisNeo/lollms_nodes_suite": { - "stars": 9, - "last_update": "2024-04-15 00:17:38" + "https://github.com/ArtBot2023/CharacterFaceSwap": { + "stars": 90, + "last_update": "2024-05-22 20:53:09", + "author_account_age_days": 728 }, - "https://github.com/IsItDanOrAi/ComfyUI-Stereopsis": { + "https://github.com/ArtHommage/HommageTools": { + "stars": 4, + "last_update": "2025-05-20 20:40:25", + "author_account_age_days": 968 + }, + "https://github.com/Artificial-Sweetener/comfyui-WhiteRabbit": { + "stars": 14, + "last_update": "2025-09-01 00:39:27", + "author_account_age_days": 263 + }, + "https://github.com/ArtsticH/ComfyUI_EasyKitHT_NodeAlignPro": { + "stars": 17, + "last_update": "2025-08-15 12:02:26", + "author_account_age_days": 524 + }, + "https://github.com/Aryan185/ComfyUI-ExternalAPI-Helpers": { + "stars": 3, + "last_update": "2025-08-29 06:35:06", + "author_account_age_days": 1607 + }, + "https://github.com/AshMartian/ComfyUI-DirGir": { + "stars": 27, + "last_update": "2025-05-04 03:34:19", + "author_account_age_days": 5021 + }, + "https://github.com/AstroCorp/ComfyUI-AstroCorp-Nodes": { + "stars": 0, + "last_update": "2025-07-07 22:35:57", + "author_account_age_days": 3275 + }, + "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction": { + "stars": 37, + "last_update": "2024-06-14 09:03:24", + "author_account_age_days": 825 + }, + "https://github.com/AuroBit/ComfyUI-OOTDiffusion": { + "stars": 466, + "last_update": "2024-07-12 03:49:27", + "author_account_age_days": 825 + }, + "https://github.com/AustinMroz/ComfyUI-DynamicOversampling": { + "stars": 0, + "last_update": "2024-06-14 07:06:51", + "author_account_age_days": 4509 + }, + "https://github.com/AustinMroz/ComfyUI-MinCache": { "stars": 2, - "last_update": "2024-03-20 21:56:10" + "last_update": "2024-12-25 18:52:07", + "author_account_age_days": 4509 }, - "https://github.com/frankchieng/ComfyUI_Aniportrait": { - "stars": 21, - "last_update": "2024-04-09 11:18:00" + "https://github.com/AustinMroz/ComfyUI-SpliceTools": { + "stars": 6, + "last_update": "2024-06-14 07:07:21", + "author_account_age_days": 4509 }, - "https://github.com/BlakeOne/ComfyUI-SchedulerMixer": { + "https://github.com/AustinMroz/ComfyUI-WorkflowCheckpointing": { + "stars": 11, + "last_update": "2024-10-17 19:59:40", + "author_account_age_days": 4509 + }, + "https://github.com/Auttasak-L/ComfyUI-ImageCropper": { + "stars": 1, + "last_update": "2024-05-23 05:04:53", + "author_account_age_days": 3084 + }, + "https://github.com/Azornes/Comfyui-LayerForge": { + "stars": 175, + "last_update": "2025-08-27 13:20:37", + "author_account_age_days": 3325 + }, + "https://github.com/Azornes/Comfyui-Resolution-Master": { + "stars": 94, + "last_update": "2025-08-27 13:20:27", + "author_account_age_days": 3325 + }, + "https://github.com/BAIKEMARK/ComfyUI-Civitai-Recipe": { + "stars": 2, + "last_update": "2025-09-01 14:44:15", + "author_account_age_days": 740 + }, + "https://github.com/BAIKEMARK/ComfyUI_Civitai_Prompt_Stats": { + "stars": 2, + "last_update": "2025-08-29 11:15:29", + "author_account_age_days": 740 + }, + "https://github.com/BAIS1C/ComfyUI_RSS_Feed_Reader": { + "stars": 4, + "last_update": "2025-04-24 14:09:18", + "author_account_age_days": 924 + }, + "https://github.com/BEIBEI-star661/SJ_sweepEffect_Comfyui": { + "stars": 0, + "last_update": "2025-08-22 06:10:44", + "author_account_age_days": 11 + }, + "https://github.com/BIMer-99/ComfyUI_FishSpeech_EX": { "stars": 7, - "last_update": "2024-04-15 01:58:42" + "last_update": "2024-12-21 11:35:08", + "author_account_age_days": 1667 }, - "https://github.com/kale4eat/ComfyUI-path-util": { + "https://github.com/BIMer-99/Comfyui_Hunyuan3D_EX": { + "stars": 7, + "last_update": "2024-12-09 17:50:23", + "author_account_age_days": 1667 + }, + "https://github.com/BNP1111/comfyui_flux_corrector": { + "stars": 4, + "last_update": "2025-04-25 16:47:45", + "author_account_age_days": 931 + }, + "https://github.com/BXYMartin/ComfyUI-InstantIDUtils": { + "stars": 3, + "last_update": "2024-05-23 00:08:50", + "author_account_age_days": 2878 + }, + "https://github.com/BZcreativ/ComfyUI-FLUX-TOGETHER-API": { + "stars": 4, + "last_update": "2024-11-02 14:45:28", + "author_account_age_days": 3671 + }, + "https://github.com/BadCafeCode/masquerade-nodes-comfyui": { + "stars": 439, + "last_update": "2024-06-19 04:16:54", + "author_account_age_days": 865 + }, + "https://github.com/BahaC/ComfyUI-ZonosTTS": { + "stars": 20, + "last_update": "2025-02-19 06:28:38", + "author_account_age_days": 1741 + }, + "https://github.com/Baverne/comfyUI-TiledWan": { + "stars": 2, + "last_update": "2025-08-21 10:14:11", + "author_account_age_days": 906 + }, + "https://github.com/Beinsezii/bsz-cui-extras": { + "stars": 24, + "last_update": "2024-05-22 20:46:45", + "author_account_age_days": 2661 + }, + "https://github.com/Bellzs/ComfyUI-LoRA-Assistant": { + "stars": 17, + "last_update": "2025-01-27 09:47:46", + "author_account_age_days": 3442 + }, + "https://github.com/BenNarum/ComfyUI_CAS": { + "stars": 3, + "last_update": "2024-07-13 12:00:40", + "author_account_age_days": 3507 + }, + "https://github.com/BenNarum/SigmaWaveFormNode": { + "stars": 5, + "last_update": "2024-06-20 15:20:35", + "author_account_age_days": 3507 + }, + "https://github.com/BennyKok/comfyui-deploy": { + "stars": 1408, + "last_update": "2025-08-29 22:48:55", + "author_account_age_days": 3431 + }, + "https://github.com/BetaDoggo/ComfyUI-Cloud-APIs": { + "stars": 37, + "last_update": "2025-05-01 06:24:47", + "author_account_age_days": 1232 + }, + "https://github.com/BetaDoggo/ComfyUI-FastSDCPU": { + "stars": 9, + "last_update": "2024-09-16 05:34:01", + "author_account_age_days": 1232 + }, + "https://github.com/BetaDoggo/ComfyUI-Gatcha-Embedding": { + "stars": 1, + "last_update": "2024-08-28 00:24:01", + "author_account_age_days": 1232 + }, + "https://github.com/BetaDoggo/ComfyUI-VideoPlayer": { + "stars": 17, + "last_update": "2024-08-05 04:45:12", + "author_account_age_days": 1232 + }, + "https://github.com/BetaDoggo/ComfyUI-WDV-Nodes": { + "stars": 1, + "last_update": "2024-08-01 07:59:10", + "author_account_age_days": 1232 + }, + "https://github.com/BetaDoggo/ComfyUI-YetAnotherSafetyChecker": { + "stars": 5, + "last_update": "2024-07-19 18:11:11", + "author_account_age_days": 1232 + }, + "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools": { + "stars": 29, + "last_update": "2025-08-29 08:44:14", + "author_account_age_days": 1306 + }, + "https://github.com/Big-Idea-Technology/ComfyUI_LLM_Node": { + "stars": 65, + "last_update": "2025-04-19 11:58:55", + "author_account_age_days": 1306 + }, + "https://github.com/BigStationW/ComfyUi-Load-Image-And-Display-Prompt-Metadata": { + "stars": 17, + "last_update": "2025-08-28 04:31:22", + "author_account_age_days": 121 + }, + "https://github.com/BigStationW/ComfyUi-RescaleCFGAdvanced": { + "stars": 25, + "last_update": "2025-05-07 18:10:18", + "author_account_age_days": 121 + }, + "https://github.com/BigStationW/ComfyUi-Scale-Image-to-Total-Pixels-Advanced": { + "stars": 3, + "last_update": "2025-08-21 07:42:18", + "author_account_age_days": 121 + }, + "https://github.com/BigWhiteFly/ComfyUI-ImageConcat": { "stars": 0, - "last_update": "2024-04-01 01:33:56" + "last_update": "2025-05-21 01:16:27", + "author_account_age_days": 2775 }, - "https://github.com/kale4eat/ComfyUI-string-util": { - "stars": 0, - "last_update": "2024-04-01 01:33:13" + "https://github.com/Billius-AI/ComfyUI-Path-Helper": { + "stars": 18, + "last_update": "2024-05-22 23:25:08", + "author_account_age_days": 570 }, - "https://github.com/kale4eat/ComfyUI-text-file-util": { - "stars": 0, - "last_update": "2024-04-01 01:32:04" + "https://github.com/Bin-sam/DynamicPose-ComfyUI": { + "stars": 5, + "last_update": "2024-09-11 12:09:11", + "author_account_age_days": 369 }, - "https://github.com/kijai/ComfyUI-APISR": { - "stars": 48, - "last_update": "2024-04-19 16:38:57" + "https://github.com/Black-Lioness/ComfyUI-PromptUtils": { + "stars": 2, + "last_update": "2024-11-22 03:05:11", + "author_account_age_days": 1290 }, - "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection": { - "stars": 0, - "last_update": "2024-04-01 10:47:39" - }, - "https://github.com/comfyanonymous/ComfyUI": { - "stars": 32482, - "last_update": "2024-04-20 18:36:11" - }, - "https://github.com/chaojie/ComfyUI-MuseV": { - "stars": 74, - "last_update": "2024-04-04 02:07:29" - }, - "https://github.com/kijai/ComfyUI-DiffusionLight": { - "stars": 43, - "last_update": "2024-04-02 19:18:34" + "https://github.com/BlackVortexAI/ComfyUI-BVortexNodes": { + "stars": 2, + "last_update": "2024-10-23 09:19:54", + "author_account_age_days": 391 }, "https://github.com/BlakeOne/ComfyUI-CustomScheduler": { - "stars": 7, - "last_update": "2024-04-14 00:14:55" - }, - "https://github.com/bobmagicii/comfykit-custom-nodes": { - "stars": 0, - "last_update": "2024-04-04 16:39:56" - }, - "https://github.com/chaojie/ComfyUI-MuseTalk": { - "stars": 57, - "last_update": "2024-04-05 15:26:14" - }, - "https://github.com/bvhari/ComfyUI_SUNoise": { - "stars": 3, - "last_update": "2024-04-16 17:44:31" - }, - "https://github.com/TJ16th/comfyUI_TJ_NormalLighting": { - "stars": 106, - "last_update": "2024-04-07 12:46:36" - }, - "https://github.com/SoftMeng/ComfyUI_ImageToText": { - "stars": 3, - "last_update": "2024-04-07 07:27:14" - }, - "https://github.com/AppleBotzz/ComfyUI_LLMVISION": { - "stars": 39, - "last_update": "2024-04-05 23:55:41" - }, - "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE": { - "stars": 5, - "last_update": "2024-04-20 18:40:33" - }, - "https://github.com/SLAPaper/ComfyUI-dpmpp_2m_alt-Sampler": { - "stars": 0, - "last_update": "2024-04-06 06:20:14" - }, - "https://github.com/yuvraj108c/ComfyUI-PiperTTS": { - "stars": 15, - "last_update": "2024-04-06 17:16:28" - }, - "https://github.com/nickve28/ComfyUI-Nich-Utils": { - "stars": 5, - "last_update": "2024-04-20 11:12:03" - }, - "https://github.com/al-swaiti/ComfyUI-CascadeResolutions": { - "stars": 1, - "last_update": "2024-04-06 16:48:55" - }, - "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration": { - "stars": 50, - "last_update": "2024-04-20 05:00:41" - }, - "https://github.com/hay86/ComfyUI_AceNodes": { - "stars": 2, - "last_update": "2024-04-19 13:42:49" - }, - "https://github.com/shinich39/comfyui-text-pipe-39": { - "stars": 2, - "last_update": "2024-04-07 15:11:16" - }, - "https://github.com/liusida/ComfyUI-Debug": { - "stars": 5, - "last_update": "2024-04-07 11:33:02" - }, - "https://github.com/jtydhr88/ComfyUI-Workflow-Encrypt": { - "stars": 7, - "last_update": "2024-04-07 02:47:17" - }, - "https://github.com/Zuellni/ComfyUI-ExLlama-Nodes": { - "stars": 82, - "last_update": "2024-04-08 01:03:56" - }, - "https://github.com/chaojie/ComfyUI-Open-Sora-Plan": { - "stars": 40, - "last_update": "2024-04-09 00:51:04" - }, - "https://github.com/SeaArtLab/ComfyUI-Long-CLIP": { - "stars": 21, - "last_update": "2024-04-08 11:29:40" - }, - "https://github.com/tsogzark/ComfyUI-load-image-from-url": { - "stars": 1, - "last_update": "2024-04-16 09:07:22" - }, - "https://github.com/discus0434/comfyui-caching-embeddings": { - "stars": 1, - "last_update": "2024-04-09 03:52:05" - }, - "https://github.com/abdozmantar/ComfyUI-InstaSwap": { - "stars": 32, - "last_update": "2024-04-16 12:59:39" - }, - "https://github.com/chaojie/ComfyUI_StreamingT2V": { "stars": 17, - "last_update": "2024-04-16 01:07:14" - }, - "https://github.com/AIFSH/ComfyUI-UVR5": { - "stars": 28, - "last_update": "2024-04-17 08:51:51" - }, - "https://github.com/CapsAdmin/ComfyUI-Euler-Smea-Dyn-Sampler": { - "stars": 10, - "last_update": "2024-04-11 06:02:15" - }, - "https://github.com/sdfxai/SDFXBridgeForComfyUI": { - "stars": 2, - "last_update": "2024-04-12 14:09:45" - }, - "https://github.com/smthemex/ComfyUI_ChatGLM_API": { - "stars": 5, - "last_update": "2024-04-11 07:38:35" - }, - "https://github.com/kijai/ComfyUI-ELLA-wrapper": { - "stars": 83, - "last_update": "2024-04-19 16:36:43" - }, - "https://github.com/ExponentialML/ComfyUI_ELLA": { - "stars": 134, - "last_update": "2024-04-17 17:18:08" - }, - "https://github.com/choey/Comfy-Topaz": { - "stars": 10, - "last_update": "2024-04-10 09:05:18" - }, - "https://github.com/ALatentPlace/ComfyUI_yanc": { - "stars": 3, - "last_update": "2024-04-16 19:03:34" - }, - "https://github.com/kijai/ComfyUI-LaVi-Bridge-Wrapper": { - "stars": 11, - "last_update": "2024-04-11 15:56:49" - }, - "https://github.com/logtd/ComfyUI-RAVE_ATTN": { - "stars": 7, - "last_update": "2024-04-10 22:20:21" + "last_update": "2024-05-23 00:23:56", + "author_account_age_days": 2967 }, "https://github.com/BlakeOne/ComfyUI-NodePresets": { - "stars": 5, - "last_update": "2024-04-14 00:18:58" + "stars": 14, + "last_update": "2024-05-23 00:24:07", + "author_account_age_days": 2967 }, - "https://github.com/AIFSH/ComfyUI-IP_LAP": { + "https://github.com/BlakeOne/ComfyUI-NodeReset": { + "stars": 3, + "last_update": "2024-05-23 00:24:18", + "author_account_age_days": 2967 + }, + "https://github.com/BlakeOne/ComfyUI-SchedulerMixer": { "stars": 10, - "last_update": "2024-04-21 00:05:43" + "last_update": "2024-05-23 00:23:44", + "author_account_age_days": 2967 + }, + "https://github.com/BlenderNeko/ComfyUI_ADV_CLIP_emb": { + "stars": 405, + "last_update": "2024-08-07 15:13:31", + "author_account_age_days": 912 + }, + "https://github.com/BlenderNeko/ComfyUI_Cutoff": { + "stars": 392, + "last_update": "2024-05-22 15:01:45", + "author_account_age_days": 912 + }, + "https://github.com/BlenderNeko/ComfyUI_Noise": { + "stars": 305, + "last_update": "2024-06-10 16:38:48", + "author_account_age_days": 912 + }, + "https://github.com/BlenderNeko/ComfyUI_SeeCoder": { + "stars": 40, + "last_update": "2024-05-22 14:57:04", + "author_account_age_days": 912 + }, + "https://github.com/BlenderNeko/ComfyUI_TiledKSampler": { + "stars": 389, + "last_update": "2024-05-22 14:56:49", + "author_account_age_days": 912 + }, + "https://github.com/Blonicx/ComfyUI-X-Rework": { + "stars": 1, + "last_update": "2025-05-07 17:02:20", + "author_account_age_days": 1158 + }, + "https://github.com/BlueprintCoding/ComfyUI_AIDocsClinicalTools": { + "stars": 5, + "last_update": "2025-07-21 23:11:58", + "author_account_age_days": 879 + }, + "https://github.com/BobRandomNumber/ComfyUI-DiaTTS": { + "stars": 8, + "last_update": "2025-06-02 03:02:19", + "author_account_age_days": 278 + }, + "https://github.com/BobRandomNumber/ComfyUI-KyutaiTTS": { + "stars": 6, + "last_update": "2025-07-09 04:52:46", + "author_account_age_days": 278 + }, + "https://github.com/BobRandomNumber/ComfyUI-TLBVFI": { + "stars": 11, + "last_update": "2025-08-13 06:57:26", + "author_account_age_days": 278 + }, + "https://github.com/BobsBlazed/Bobs-Lora-Loader": { + "stars": 5, + "last_update": "2025-08-13 03:41:38", + "author_account_age_days": 2648 + }, + "https://github.com/BobsBlazed/Bobs_Latent_Optimizer": { + "stars": 42, + "last_update": "2025-06-04 03:00:27", + "author_account_age_days": 2648 + }, + "https://github.com/BoyuanJiang/FitDiT-ComfyUI": { + "stars": 102, + "last_update": "2025-01-21 12:09:05", + "author_account_age_days": 3516 + }, + "https://github.com/Brekel/ComfyUI-Brekel": { + "stars": 16, + "last_update": "2025-08-07 14:15:08", + "author_account_age_days": 5260 + }, + "https://github.com/Bria-AI/ComfyUI-BRIA-API": { + "stars": 55, + "last_update": "2025-06-16 13:24:17", + "author_account_age_days": 1912 + }, + "https://github.com/BuffMcBigHuge/ComfyUI-Google-AI-Studio": { + "stars": 3, + "last_update": "2025-08-27 04:12:24", + "author_account_age_days": 3348 + }, + "https://github.com/BuffMcBigHuge/ComfyUI-Zonos": { + "stars": 74, + "last_update": "2025-04-29 21:48:07", + "author_account_age_days": 3348 + }, + "https://github.com/Burgstall-labs/ComfyUI-BETA-Cropnodes": { + "stars": 8, + "last_update": "2025-07-02 17:37:50", + "author_account_age_days": 226 + }, + "https://github.com/Burgstall-labs/ComfyUI-BETA-Helpernodes": { + "stars": 8, + "last_update": "2025-07-02 17:37:50", + "author_account_age_days": 226 + }, + "https://github.com/Burgstall-labs/ComfyUI-BS-Textchop": { + "stars": 0, + "last_update": "2025-04-05 07:45:54", + "author_account_age_days": 226 + }, + "https://github.com/Burgstall-labs/ComfyUI-BS_Kokoro-onnx": { + "stars": 37, + "last_update": "2025-01-19 19:05:24", + "author_account_age_days": 226 + }, + "https://github.com/CC-BryanOttho/ComfyUI_API_Manager": { + "stars": 23, + "last_update": "2024-06-14 07:13:34", + "author_account_age_days": 920 + }, + "https://github.com/CC-SUN6/ccsun_node": { + "stars": 0, + "last_update": "2025-02-12 07:58:41", + "author_account_age_days": 804 + }, + "https://github.com/CHAOSEA/ComfyUI_FaceAlignPaste": { + "stars": 13, + "last_update": "2025-03-27 13:34:40", + "author_account_age_days": 400 + }, + "https://github.com/CY-CHENYUE/ComfyUI-FramePack-HY": { + "stars": 20, + "last_update": "2025-05-08 09:38:09", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-Free-GPU": { + "stars": 14, + "last_update": "2025-02-16 16:30:36", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-GPT-API": { + "stars": 72, + "last_update": "2025-04-17 09:51:35", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-Gemini-API": { + "stars": 224, + "last_update": "2025-05-08 05:52:02", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-ImageCompositionCy": { + "stars": 4, + "last_update": "2025-08-17 06:56:13", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-InpaintEasy": { + "stars": 83, + "last_update": "2025-01-24 16:09:46", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-Janus-Pro": { + "stars": 627, + "last_update": "2025-01-30 08:08:20", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-Plus": { + "stars": 24, + "last_update": "2024-10-09 06:56:04", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-o": { + "stars": 35, + "last_update": "2025-02-16 18:52:28", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-Molmo": { + "stars": 136, + "last_update": "2024-10-14 15:06:36", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-OmniGenX": { + "stars": 7, + "last_update": "2025-01-24 16:13:13", + "author_account_age_days": 633 + }, + "https://github.com/CY-CHENYUE/ComfyUI-Redux-Prompt": { + "stars": 96, + "last_update": "2025-01-24 15:43:29", + "author_account_age_days": 633 + }, + "https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr": { + "stars": 10, + "last_update": "2024-05-22 17:55:41", + "author_account_age_days": 684 + }, + "https://github.com/CallMe1101/ComfyUI_OmniAvatar": { + "stars": 3, + "last_update": "2025-07-28 06:18:43", + "author_account_age_days": 174 + }, + "https://github.com/CavinHuang/comfyui-nodes-docs": { + "stars": 252, + "last_update": "2025-03-26 02:12:29", + "author_account_age_days": 3161 + }, + "https://github.com/Chan-0312/ComfyUI-EasyDeforum": { + "stars": 11, + "last_update": "2024-05-22 23:22:14", + "author_account_age_days": 2301 + }, + "https://github.com/Chan-0312/ComfyUI-IPAnimate": { + "stars": 74, + "last_update": "2024-05-22 23:22:03", + "author_account_age_days": 2301 + }, + "https://github.com/Chan-0312/ComfyUI-Prompt-Preview": { + "stars": 34, + "last_update": "2024-06-14 09:01:37", + "author_account_age_days": 2301 + }, + "https://github.com/Chaoses-Ib/ComfyUI_Ib_CustomNodes": { + "stars": 41, + "last_update": "2025-02-08 13:11:30", + "author_account_age_days": 2313 + }, + "https://github.com/Charlweed/image_transceiver": { + "stars": 2, + "last_update": "2025-01-06 19:22:50", + "author_account_age_days": 5532 + }, + "https://github.com/Charonartist/comfyui-auto-lora-v2": { + "stars": 0, + "last_update": "2025-06-17 15:00:30", + "author_account_age_days": 429 + }, + "https://github.com/Charonartist/comfyui-last-frame-extractor": { + "stars": 2, + "last_update": "2025-08-14 13:42:17", + "author_account_age_days": 429 + }, + "https://github.com/Charonartist/comfyui-smart-resize-node": { + "stars": 0, + "last_update": "2025-08-12 13:01:48", + "author_account_age_days": 429 + }, + "https://github.com/Charonartist/comfyui-tag-remover": { + "stars": 0, + "last_update": "2025-08-14 06:12:04", + "author_account_age_days": 429 + }, + "https://github.com/CheNing233/ComfyUI_Image_Pin": { + "stars": 5, + "last_update": "2025-07-13 08:11:47", + "author_account_age_days": 2881 + }, + "https://github.com/ChenDarYen/ComfyUI-NAG": { + "stars": 251, + "last_update": "2025-07-06 22:39:57", + "author_account_age_days": 2336 + }, + "https://github.com/ChenDarYen/ComfyUI-TimestepShiftModel": { + "stars": 9, + "last_update": "2025-01-07 18:22:10", + "author_account_age_days": 2336 + }, + "https://github.com/Chengym2023/ComfyUI-DeepSeek_Online": { + "stars": 0, + "last_update": "2025-04-07 01:09:05", + "author_account_age_days": 835 + }, + "https://github.com/ChrisColeTech/ComfyUI-Elegant-Resource-Monitor": { + "stars": 15, + "last_update": "2024-09-23 21:48:27", + "author_account_age_days": 2847 + }, + "https://github.com/ChrisColeTech/ComfyUI-Line-counter": { + "stars": 2, + "last_update": "2025-03-12 00:07:25", + "author_account_age_days": 2847 + }, + "https://github.com/Chrisvenator/ComfyUI-Painting-by-colors-generator": { + "stars": 1, + "last_update": "2025-06-03 07:56:17", + "author_account_age_days": 2164 + }, + "https://github.com/ClownsharkBatwing/RES4LYF": { + "stars": 581, + "last_update": "2025-08-14 22:18:56", + "author_account_age_days": 464 + }, + "https://github.com/Clybius/ComfyUI-ClybsChromaNodes": { + "stars": 12, + "last_update": "2025-07-08 14:27:15", + "author_account_age_days": 2169 + }, + "https://github.com/Clybius/ComfyUI-Extra-Samplers": { + "stars": 90, + "last_update": "2024-11-15 17:21:45", + "author_account_age_days": 2169 + }, + "https://github.com/Clybius/ComfyUI-Latent-Modifiers": { + "stars": 82, + "last_update": "2024-06-14 09:02:44", + "author_account_age_days": 2169 + }, + "https://github.com/CoiiChan/ComfyUI-Depth-Visualization-Advanced": { + "stars": 4, + "last_update": "2025-06-17 03:43:27", + "author_account_age_days": 2333 + }, + "https://github.com/CoiiChan/ComfyUI-FuncAsTexture-CoiiNode": { + "stars": 1, + "last_update": "2025-06-24 03:34:32", + "author_account_age_days": 2333 + }, + "https://github.com/CoiiChan/comfyui-every-person-seg-coii": { + "stars": 4, + "last_update": "2025-08-01 08:16:18", + "author_account_age_days": 2333 + }, + "https://github.com/Comfy-Org/NIMnodes": { + "stars": 42, + "last_update": "2025-08-20 15:31:03", + "author_account_age_days": 510 + }, + "https://github.com/ComfyAssets/ComfyUI-KikoStats": { + "stars": 2, + "last_update": "2025-06-21 15:03:38", + "author_account_age_days": 101 + }, + "https://github.com/ComfyAssets/ComfyUI-KikoTools": { + "stars": 3, + "last_update": "2025-08-27 16:50:12", + "author_account_age_days": 101 + }, + "https://github.com/ComfyAssets/ComfyUI_PromptManager": { + "stars": 44, + "last_update": "2025-08-31 00:34:40", + "author_account_age_days": 101 + }, + "https://github.com/ComfyAssets/ComfyUI_Selectors": { + "stars": 0, + "last_update": "2025-06-13 16:13:05", + "author_account_age_days": 101 + }, + "https://github.com/ComfyUI-JH/ComfyUI-JH-Misc-Nodes": { + "stars": 1, + "last_update": "2024-12-28 19:44:14", + "author_account_age_days": 257 + }, + "https://github.com/ComfyUI-JH/ComfyUI-JH-XMP-Metadata-Nodes": { + "stars": 2, + "last_update": "2024-12-31 21:44:05", + "author_account_age_days": 257 + }, + "https://github.com/ComplexRobot/ComfyUI-Simple-VFI": { + "stars": 0, + "last_update": "2025-03-31 15:37:25", + "author_account_age_days": 4858 + }, + "https://github.com/Conor-Collins/ComfyUI-CoCoTools_IO": { + "stars": 65, + "last_update": "2025-07-25 22:53:28", + "author_account_age_days": 609 + }, + "https://github.com/CosmicLaca/ComfyUI_Primere_Nodes": { + "stars": 127, + "last_update": "2025-08-30 08:55:23", + "author_account_age_days": 4090 + }, + "https://github.com/CpreForEver/CFE_comfyui": { + "stars": 0, + "last_update": "2024-12-09 01:38:42", + "author_account_age_days": 387 + }, + "https://github.com/Creeper-MZ/comfyui_nai_api": { + "stars": 0, + "last_update": "2024-10-02 21:30:26", + "author_account_age_days": 1438 + }, + "https://github.com/Creepybits/ComfyUI-Creepy_nodes": { + "stars": 15, + "last_update": "2025-08-18 16:56:27", + "author_account_age_days": 2042 + }, + "https://github.com/Creepybits/ComfyUI-Save_To_GDrive": { + "stars": 5, + "last_update": "2025-07-03 00:27:01", + "author_account_age_days": 2042 + }, + "https://github.com/Creepybits/ComfyUI-Save_To_OneDrive": { + "stars": 2, + "last_update": "2025-07-15 20:30:08", + "author_account_age_days": 2042 + }, + "https://github.com/Cryptyox/anaglyphTool-Comfyui": { + "stars": 7, + "last_update": "2025-05-13 16:12:27", + "author_account_age_days": 1363 + }, + "https://github.com/Curt-Park/human-parser-comfyui-node-in-pure-python": { + "stars": 6, + "last_update": "2025-03-18 00:51:34", + "author_account_age_days": 3621 + }, + "https://github.com/CyanAutumn/ComfyUi_Random_Manage_Cyan": { + "stars": 3, + "last_update": "2024-12-19 10:54:08", + "author_account_age_days": 1537 + }, + "https://github.com/Cyber-BlackCat/ComfyUI-Image-Vector": { + "stars": 2, + "last_update": "2025-04-27 05:40:25", + "author_account_age_days": 850 + }, + "https://github.com/Cyber-BlackCat/ComfyUI-MoneyMaker": { + "stars": 11, + "last_update": "2025-06-27 10:04:22", + "author_account_age_days": 850 + }, + "https://github.com/Cyber-BlackCat/ComfyUI_Auto_Caption": { + "stars": 15, + "last_update": "2025-05-29 02:14:55", + "author_account_age_days": 850 + }, + "https://github.com/Cyberschorsch/ComfyUI-checkpoint-config-loader": { + "stars": 1, + "last_update": "2024-07-31 13:54:16", + "author_account_age_days": 5593 + }, + "https://github.com/Cyrostar/Artha-Gemini": { + "stars": 1, + "last_update": "2025-08-30 15:54:04", + "author_account_age_days": 3146 + }, + "https://github.com/Cyrostar/Artha-Projekt": { + "stars": 0, + "last_update": "2025-08-25 06:32:51", + "author_account_age_days": 3146 + }, + "https://github.com/Cyrostar/ComfyUI-Artha-Gemini": { + "stars": 1, + "last_update": "2025-08-30 15:54:04", + "author_account_age_days": 3146 + }, + "https://github.com/Cyrus-Hei/comfyui-prompt-bank": { + "stars": 2, + "last_update": "2025-07-21 10:04:05", + "author_account_age_days": 1040 + }, + "https://github.com/D3lUX3I/ComfyUI-VideoPromptEnhancer": { + "stars": 0, + "last_update": "2025-09-02 03:03:39", + "author_account_age_days": 204 + }, + "https://github.com/DJ-Tribefull/Comfyui_FOCUS_nodes": { + "stars": 5, + "last_update": "2025-02-02 00:46:30", + "author_account_age_days": 223 + }, + "https://github.com/Danand/ComfyUI-ComfyCouple": { + "stars": 67, + "last_update": "2024-08-10 22:24:01", + "author_account_age_days": 4723 + }, + "https://github.com/DanielHabib/ComfyUI-Voxels": { + "stars": 4, + "last_update": "2024-09-16 15:41:02", + "author_account_age_days": 4018 + }, + "https://github.com/Danteday/ComfyUI-NoteManager": { + "stars": 12, + "last_update": "2025-04-20 19:52:58", + "author_account_age_days": 2751 + }, + "https://github.com/DareFail/ComfyUI-Roboflow": { + "stars": 33, + "last_update": "2024-09-25 18:30:43", + "author_account_age_days": 5022 + }, + "https://github.com/DarioFT/ComfyUI-VideoDirCombiner": { + "stars": 5, + "last_update": "2025-03-08 13:58:12", + "author_account_age_days": 3912 + }, + "https://github.com/DataCTE/prompt_injection": { + "stars": 92, + "last_update": "2025-08-18 13:18:24", + "author_account_age_days": 1212 + }, + "https://github.com/DavidPiazza/network_bending": { + "stars": 0, + "last_update": "2025-07-03 18:58:52", + "author_account_age_days": 2314 + }, + "https://github.com/Daxamur/DaxNodes": { + "stars": 0, + "last_update": "2025-08-30 19:54:44", + "author_account_age_days": 2529 + }, + "https://github.com/Dayuppy/ComfyUI-DiscordWebhook": { + "stars": 4, + "last_update": "2025-08-13 17:48:55", + "author_account_age_days": 4650 + }, + "https://github.com/De-Zoomer/ComfyUI-DeZoomer-Nodes": { + "stars": 26, + "last_update": "2025-06-28 17:36:41", + "author_account_age_days": 1289 + }, + "https://github.com/DeJoker/pipeline-parallel-comfy": { + "stars": 3, + "last_update": "2024-07-29 06:59:37", + "author_account_age_days": 3426 + }, + "https://github.com/DebugPadawan/DebugPadawans-ComfyUI-Essentials": { + "stars": 0, + "last_update": "2025-06-21 12:46:56", + "author_account_age_days": 236 + }, + "https://github.com/DeemosTech/ComfyUI-Rodin": { + "stars": 30, + "last_update": "2025-05-07 13:29:25", + "author_account_age_days": 1201 + }, + "https://github.com/Deep-Neko/ComfyUI_ascii_art": { + "stars": 2, + "last_update": "2025-02-24 13:07:36", + "author_account_age_days": 190 + }, + "https://github.com/Dehypnotic/comfyui-numbered-text": { + "stars": 0, + "last_update": "2025-08-29 19:51:41", + "author_account_age_days": 1527 + }, + "https://github.com/Dehypnotic/comfyui-range-to-string": { + "stars": 0, + "last_update": "2025-08-22 20:22:44", + "author_account_age_days": 1527 + }, + "https://github.com/DenRakEiw/Latent_Nodes": { + "stars": 1, + "last_update": "2025-08-13 14:21:14", + "author_account_age_days": 1466 + }, + "https://github.com/DenRakEiw/WAN_NN_Latent_Upscale": { + "stars": 9, + "last_update": "2025-08-14 18:53:13", + "author_account_age_days": 1466 + }, + "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": { + "stars": 421, + "last_update": "2024-06-22 02:12:19", + "author_account_age_days": 2209 + }, + "https://github.com/DesertPixelAi/ComfyUI-DP-Ideogram-Character": { + "stars": 0, + "last_update": "2025-08-26 22:21:45", + "author_account_age_days": 581 + }, + "https://github.com/DesertPixelAi/ComfyUI-Desert-Pixel-Nodes": { + "stars": 19, + "last_update": "2025-06-22 10:33:31", + "author_account_age_days": 581 + }, + "https://github.com/DesertPixelAi/comfyui-dp-them-styler": { + "stars": 1, + "last_update": "2025-07-10 08:29:21", + "author_account_age_days": 581 + }, + "https://github.com/DiaoDaiaChan/ComfyUI_API_Request": { + "stars": 4, + "last_update": "2025-08-17 04:34:40", + "author_account_age_days": 920 + }, + "https://github.com/DiffusionLight/DiffusionLight-ComfyUI": { + "stars": 10, + "last_update": "2025-07-02 11:04:14", + "author_account_age_days": 635 + }, + "https://github.com/DiffusionWave/PickResolution_DiffusionWave": { + "stars": 0, + "last_update": "2025-05-19 23:16:22", + "author_account_age_days": 156 + }, + "https://github.com/DigitalIO/ComfyUI-stable-wildcards": { + "stars": 29, + "last_update": "2025-03-17 17:53:33", + "author_account_age_days": 4473 + }, + "https://github.com/DimaChaichan/LAizypainter-Exporter-ComfyUI": { + "stars": 6, + "last_update": "2024-05-22 23:14:06", + "author_account_age_days": 3508 + }, + "https://github.com/Diohim/ComfyUI-Unusual-Tools": { + "stars": 1, + "last_update": "2025-07-15 09:12:54", + "author_account_age_days": 215 + }, + "https://github.com/Dobidop/ComfyStereo": { + "stars": 27, + "last_update": "2025-08-31 11:30:27", + "author_account_age_days": 1895 + }, + "https://github.com/DoctorDiffusion/ComfyUI-BEN": { + "stars": 41, + "last_update": "2024-12-15 18:19:01", + "author_account_age_days": 776 + }, + "https://github.com/DoctorDiffusion/ComfyUI-MediaMixer": { + "stars": 22, + "last_update": "2024-12-05 03:05:44", + "author_account_age_days": 776 + }, + "https://github.com/DoctorDiffusion/ComfyUI-Schedulizer": { + "stars": 6, + "last_update": "2024-11-30 03:13:29", + "author_account_age_days": 776 + }, + "https://github.com/DoctorDiffusion/ComfyUI-SnakeOil": { + "stars": 5, + "last_update": "2024-12-31 00:59:19", + "author_account_age_days": 776 + }, + "https://github.com/DoctorDiffusion/ComfyUI-basic-pitch": { + "stars": 1, + "last_update": "2024-12-25 19:07:11", + "author_account_age_days": 776 + }, + "https://github.com/Dontdrunk/ComfyUI-DD-Nodes": { + "stars": 81, + "last_update": "2025-09-01 12:49:27", + "author_account_age_days": 3339 + }, + "https://github.com/Dontdrunk/ComfyUI-DD-Translation": { + "stars": 366, + "last_update": "2025-08-29 11:08:05", + "author_account_age_days": 3339 + }, + "https://github.com/DrJKL/ComfyUI-Anchors": { + "stars": 6, + "last_update": "2024-06-20 18:23:00", + "author_account_age_days": 5429 + }, + "https://github.com/DrMWeigand/ComfyUI-StereoVision": { + "stars": 9, + "last_update": "2025-02-04 14:24:46", + "author_account_age_days": 1467 + }, + "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection": { + "stars": 3, + "last_update": "2024-07-15 13:21:10", + "author_account_age_days": 1467 + }, + "https://github.com/DrStone71/ComfyUI-Prompt-Translator": { + "stars": 0, + "last_update": "2025-06-17 00:22:24", + "author_account_age_days": 380 + }, + "https://github.com/DraconicDragon/ComfyUI-RyuuNoodles": { + "stars": 4, + "last_update": "2025-08-22 18:51:34", + "author_account_age_days": 1808 + }, + "https://github.com/DraconicDragon/ComfyUI-Venice-API": { + "stars": 5, + "last_update": "2025-06-16 18:58:57", + "author_account_age_days": 1808 + }, + "https://github.com/DragonDiffusionbyBoyo/BoyoSupercoolWrapper": { + "stars": 4, + "last_update": "2025-06-01 16:44:46", + "author_account_age_days": 247 + }, + "https://github.com/DragonDiffusionbyBoyo/Boyonodes": { + "stars": 2, + "last_update": "2025-09-01 19:35:04", + "author_account_age_days": 247 + }, + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Mixer": { + "stars": 1, + "last_update": "2025-07-18 01:39:33", + "author_account_age_days": 2291 + }, + "https://github.com/Duanyll/duanyll_nodepack": { + "stars": 0, + "last_update": "2025-08-18 12:20:10", + "author_account_age_days": 3168 + }, + "https://github.com/Eagle-CN/ComfyUI-Addoor": { + "stars": 55, + "last_update": "2025-04-25 01:03:58", + "author_account_age_days": 3062 + }, + "https://github.com/Easymode-ai/ComfyUI-BPT": { + "stars": 9, + "last_update": "2025-07-25 20:05:55", + "author_account_age_days": 1708 + }, + "https://github.com/Easymode-ai/ComfyUI-ShadowR": { + "stars": 11, + "last_update": "2025-02-21 20:53:27", + "author_account_age_days": 1708 + }, + "https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes": { + "stars": 72, + "last_update": "2024-09-01 11:43:02", + "author_account_age_days": 5152 + }, + "https://github.com/Elaine-chennn/comfyui-overlay-media": { + "stars": 0, + "last_update": "2024-10-09 11:07:46", + "author_account_age_days": 1578 + }, + "https://github.com/Electrofried/ComfyUI-OpenAINode": { + "stars": 28, + "last_update": "2024-06-14 09:01:22", + "author_account_age_days": 3055 + }, + "https://github.com/EllangoK/ComfyUI-post-processing-nodes": { + "stars": 232, + "last_update": "2025-01-20 07:16:46", + "author_account_age_days": 3213 + }, + "https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes": { + "stars": 1, + "last_update": "2025-07-11 18:25:15", + "author_account_age_days": 2023 + }, + "https://github.com/Enemyx-net/VibeVoice-ComfyUI": { + "stars": 208, + "last_update": "2025-09-01 14:35:04", + "author_account_age_days": 5 + }, + "https://github.com/EnragedAntelope/ComfyUI-ConstrainResolution": { + "stars": 5, + "last_update": "2025-07-26 11:58:16", + "author_account_age_days": 404 + }, + "https://github.com/EnragedAntelope/ComfyUI-Doubutsu-Describer": { + "stars": 11, + "last_update": "2025-03-30 13:06:28", + "author_account_age_days": 404 + }, + "https://github.com/EnragedAntelope/ComfyUI-EACloudNodes": { + "stars": 7, + "last_update": "2025-08-25 17:58:28", + "author_account_age_days": 404 + }, + "https://github.com/EnragedAntelope/comfyui-relight": { + "stars": 77, + "last_update": "2025-05-16 16:06:28", + "author_account_age_days": 404 + }, + "https://github.com/Erehr/ComfyUI-Eagle-Autosend": { + "stars": 4, + "last_update": "2025-07-17 07:05:26", + "author_account_age_days": 3705 + }, + "https://github.com/Erehr/ComfyUI-EreNodes": { + "stars": 42, + "last_update": "2025-08-11 10:10:28", + "author_account_age_days": 3705 + }, + "https://github.com/EvilBT/ComfyUI_SLK_joy_caption_two": { + "stars": 624, + "last_update": "2025-06-18 23:00:26", + "author_account_age_days": 4034 + }, + "https://github.com/Excidos/ComfyUI-Documents": { + "stars": 55, + "last_update": "2024-07-11 20:15:21", + "author_account_age_days": 442 + }, + "https://github.com/Excidos/ComfyUI-Lumina-Next-SFT-DiffusersWrapper": { + "stars": 17, + "last_update": "2024-07-30 10:27:07", + "author_account_age_days": 442 + }, + "https://github.com/ExoticArts/comfyui-ea-nodes": { + "stars": 0, + "last_update": "2025-08-19 08:09:42", + "author_account_age_days": 23 + }, + "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V": { + "stars": 27, + "last_update": "2024-05-23 00:12:17", + "author_account_age_days": 2058 + }, + "https://github.com/ExponentialML/ComfyUI_Native_DynamiCrafter": { + "stars": 112, + "last_update": "2024-06-08 02:33:02", + "author_account_age_days": 2058 + }, + "https://github.com/ExponentialML/ComfyUI_VisualStylePrompting": { + "stars": 300, + "last_update": "2024-05-23 00:12:41", + "author_account_age_days": 2058 + }, + "https://github.com/ExterminanzHS/Gecco-Discord-Autosend": { + "stars": 1, + "last_update": "2024-09-05 12:33:30", + "author_account_age_days": 3643 + }, + "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG": { + "stars": 422, + "last_update": "2024-09-10 17:44:50", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/DistanceSampler": { + "stars": 39, + "last_update": "2025-06-19 22:54:08", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/LoadLoraWithTags": { + "stars": 79, + "last_update": "2025-02-25 18:12:40", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/Negative-attention-for-ComfyUI-": { + "stars": 9, + "last_update": "2025-03-20 15:10:24", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/Skimmed_CFG": { + "stars": 209, + "last_update": "2024-10-25 20:59:10", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/Stable-Diffusion-temperature-settings": { + "stars": 43, + "last_update": "2024-07-10 00:27:51", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/Uncond-Zero-for-ComfyUI": { + "stars": 50, + "last_update": "2024-07-10 00:27:36", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI": { + "stars": 121, + "last_update": "2024-08-28 05:29:07", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/noise_latent_perlinpinpin": { + "stars": 34, + "last_update": "2024-08-13 14:19:11", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/pre_cfg_comfy_nodes_for_ComfyUI": { + "stars": 52, + "last_update": "2025-05-24 07:36:22", + "author_account_age_days": 3585 + }, + "https://github.com/Extraltodeus/sigmas_tools_and_the_golden_scheduler": { + "stars": 87, + "last_update": "2025-08-21 18:17:03", + "author_account_age_days": 3585 + }, + "https://github.com/FaberVS/MultiModel": { + "stars": 1, + "last_update": "2025-08-08 14:52:53", + "author_account_age_days": 2206 + }, + "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation": { + "stars": 789, + "last_update": "2025-04-30 11:32:27", + "author_account_age_days": 3567 + }, + "https://github.com/Fannovel16/ComfyUI-MagickWand": { + "stars": 116, + "last_update": "2025-03-31 10:26:14", + "author_account_age_days": 3567 + }, + "https://github.com/Fannovel16/ComfyUI-MotionDiff": { + "stars": 205, + "last_update": "2024-08-01 01:01:53", + "author_account_age_days": 3567 + }, + "https://github.com/Fannovel16/ComfyUI-Video-Matting": { + "stars": 212, + "last_update": "2024-08-14 01:28:50", + "author_account_age_days": 3567 + }, + "https://github.com/Fannovel16/comfyui_controlnet_aux": { + "stars": 3337, + "last_update": "2025-06-20 08:57:29", + "author_account_age_days": 3567 + }, + "https://github.com/Fantaxico/ComfyUI-GCP-Storage": { + "stars": 4, + "last_update": "2024-06-14 09:05:52", + "author_account_age_days": 971 + }, + "https://github.com/FaraamFide/ComfyUI-ParamNodes": { + "stars": 1, + "last_update": "2025-07-05 15:29:32", + "author_account_age_days": 1275 + }, + "https://github.com/FearL0rd/ComfyUI-MaskAIFingerprint": { + "stars": 0, + "last_update": "2025-08-15 13:52:56", + "author_account_age_days": 3319 + }, + "https://github.com/Feidorian/feidorian-ComfyNodes": { + "stars": 5, + "last_update": "2024-06-20 11:31:37", + "author_account_age_days": 3190 + }, + "https://github.com/Ferocit/comfyui-feroccustomnodes": { + "stars": 0, + "last_update": "2025-08-08 21:50:00", + "author_account_age_days": 4601 + }, + "https://github.com/FewBox/fewbox-outfit-comfyui": { + "stars": 0, + "last_update": "2025-07-30 02:03:58", + "author_account_age_days": 3050 + }, + "https://github.com/Fictiverse/ComfyUI_Fictiverse": { + "stars": 17, + "last_update": "2025-08-31 17:04:24", + "author_account_age_days": 1107 + }, + "https://github.com/Fihade/IC-Light-ComfyUI-Node": { + "stars": 8, + "last_update": "2024-07-02 03:47:17", + "author_account_age_days": 3182 + }, + "https://github.com/FinetunersAI/ComfyUI_Finetuners_Suite": { + "stars": 2, + "last_update": "2025-01-30 08:30:13", + "author_account_age_days": 456 + }, + "https://github.com/Firetheft/ComfyUI_Civitai_Gallery": { + "stars": 18, + "last_update": "2025-08-23 09:16:41", + "author_account_age_days": 1336 + }, + "https://github.com/FizzleDorf/ComfyUI-AIT": { + "stars": 52, + "last_update": "2024-06-22 03:13:05", + "author_account_age_days": 2414 + }, + "https://github.com/FizzleDorf/ComfyUI_FizzNodes": { + "stars": 456, + "last_update": "2024-10-29 01:51:46", + "author_account_age_days": 2414 + }, + "https://github.com/Flow-two/ComfyUI-WanStartEndFramesNative": { + "stars": 78, + "last_update": "2025-03-28 04:58:45", + "author_account_age_days": 1943 + }, + "https://github.com/FlyingFireCo/tiled_ksampler": { + "stars": 90, + "last_update": "2024-05-22 23:15:17", + "author_account_age_days": 1067 + }, + "https://github.com/ForeignGods/ComfyUI-Mana-Nodes": { + "stars": 237, + "last_update": "2024-05-29 18:29:05", + "author_account_age_days": 1679 + }, + "https://github.com/FortunaCournot/comfyui_stereoscopic": { + "stars": 7, + "last_update": "2025-09-02 13:47:20", + "author_account_age_days": 1938 + }, + "https://github.com/Franck-Demongin/NX_HuggingFace_Flux": { + "stars": 3, + "last_update": "2024-08-14 02:17:21", + "author_account_age_days": 2206 + }, + "https://github.com/Franck-Demongin/NX_PromptStyler": { + "stars": 9, + "last_update": "2024-05-22 23:25:21", + "author_account_age_days": 2206 + }, + "https://github.com/Franck-Demongin/NX_Translator": { + "stars": 2, + "last_update": "2024-08-14 02:17:01", + "author_account_age_days": 2206 + }, + "https://github.com/Franklyc/comfyui-lora-adain-patcher-node": { + "stars": 6, + "last_update": "2025-07-30 23:08:42", + "author_account_age_days": 1112 + }, + "https://github.com/FredBill1/comfyui-fb-utils": { + "stars": 2, + "last_update": "2025-03-14 08:09:14", + "author_account_age_days": 2752 + }, + "https://github.com/Frief84/ComfyUI-LoRAWeightAxisXY": { + "stars": 0, + "last_update": "2025-09-02 09:22:34", + "author_account_age_days": 3861 + }, + "https://github.com/FunnyFinger/ComfyUi-RadarWeightNode": { + "stars": 1, + "last_update": "2025-04-22 09:12:55", + "author_account_age_days": 1011 + }, + "https://github.com/FunnyFinger/Dynamic_Sliders_stack": { + "stars": 3, + "last_update": "2025-04-22 10:00:31", + "author_account_age_days": 1011 + }, + "https://github.com/FuouM/ComfyUI-EbSynth": { + "stars": 94, + "last_update": "2025-03-30 06:30:52", + "author_account_age_days": 2116 + }, + "https://github.com/FuouM/ComfyUI-FirstOrderMM": { + "stars": 5, + "last_update": "2025-03-27 12:22:31", + "author_account_age_days": 2116 + }, + "https://github.com/FuouM/ComfyUI-MatAnyone": { + "stars": 10, + "last_update": "2025-03-24 03:43:48", + "author_account_age_days": 2116 + }, + "https://github.com/FuouM/ComfyUI-StyleTransferPlus": { + "stars": 11, + "last_update": "2025-03-27 12:15:58", + "author_account_age_days": 2116 + }, + "https://github.com/FuouM/FM_nodes": { + "stars": 5, + "last_update": "2025-03-27 12:16:55", + "author_account_age_days": 2116 + }, + "https://github.com/Fuwuffyi/ComfyUI-VisualArea-Nodes": { + "stars": 74, + "last_update": "2024-11-05 17:00:49", + "author_account_age_days": 1598 + }, + "https://github.com/G-370/ComfyUI-SD3-Powerlab": { + "stars": 20, + "last_update": "2024-06-22 19:17:18", + "author_account_age_days": 1954 + }, + "https://github.com/GACLove/ComfyUI-Lightx2vWrapper": { + "stars": 36, + "last_update": "2025-08-15 03:25:07", + "author_account_age_days": 1845 + }, + "https://github.com/GACLove/ComfyUI-VFI": { + "stars": 4, + "last_update": "2025-07-25 13:37:04", + "author_account_age_days": 4052 + }, + "https://github.com/GHOSTLXH/ComfyUI-Counternodes": { + "stars": 10, + "last_update": "2025-02-20 12:58:43", + "author_account_age_days": 2604 + }, + "https://github.com/GTSuya-Studio/ComfyUI-Gtsuya-Nodes": { + "stars": 12, + "last_update": "2025-08-24 20:09:43", + "author_account_age_days": 2991 + }, + "https://github.com/GadzoinksOfficial/comfyui_gprompts": { + "stars": 0, + "last_update": "2025-05-16 05:25:09", + "author_account_age_days": 591 + }, + "https://github.com/GadzoinksOfficial/gadzoinks_ComfyUI": { + "stars": 0, + "last_update": "2025-05-12 09:51:17", + "author_account_age_days": 591 + }, + "https://github.com/GamingDaveUk/daves_nodes": { + "stars": 0, + "last_update": "2025-02-22 06:22:19", + "author_account_age_days": 867 + }, + "https://github.com/Gary-yeh/ComfyUI-WebPrompter": { + "stars": 0, + "last_update": "2025-06-26 08:24:16", + "author_account_age_days": 922 + }, + "https://github.com/Gary-yeh/comfyui-super-captioner": { + "stars": 1, + "last_update": "2025-07-07 15:32:34", + "author_account_age_days": 922 + }, + "https://github.com/GavChap/ComfyUI-SD3LatentSelectRes": { + "stars": 14, + "last_update": "2025-07-16 15:39:00", + "author_account_age_days": 5003 + }, + "https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS": { + "stars": 35, + "last_update": "2025-03-21 11:44:13", + "author_account_age_days": 1105 + }, + "https://github.com/GeekyGhost/ComfyUI-Geeky-LatentSyncWrapper": { + "stars": 8, + "last_update": "2025-08-08 19:56:04", + "author_account_age_days": 1105 + }, + "https://github.com/GeekyGhost/ComfyUI-GeekyRemB": { + "stars": 48, + "last_update": "2025-08-08 22:25:29", + "author_account_age_days": 1105 + }, + "https://github.com/GeekyGhost/ComfyUI-Image-Segmenting-Loader": { + "stars": 0, + "last_update": "2025-08-21 13:06:03", + "author_account_age_days": 1105 + }, + "https://github.com/GeekyGhost/ComfyUI_Geeky_AudioMixer": { + "stars": 1, + "last_update": "2025-08-05 15:09:34", + "author_account_age_days": 1105 + }, + "https://github.com/GentlemanHu/ComfyUI-SunoAI": { + "stars": 19, + "last_update": "2024-12-17 11:46:33", + "author_account_age_days": 2818 + }, + "https://github.com/GeraldWie/ComfyUI-I2I-slim": { + "stars": 0, + "last_update": "2025-07-24 05:51:33", + "author_account_age_days": 132 + }, + "https://github.com/Gipphe/comfyui-metadata-statistics": { + "stars": 0, + "last_update": "2025-08-28 20:43:50", + "author_account_age_days": 4747 + }, + "https://github.com/GiusTex/ComfyUI-DiffusersImageOutpaint": { + "stars": 89, + "last_update": "2025-07-07 10:31:15", + "author_account_age_days": 1100 + }, + "https://github.com/Goktug/comfyui-saveimage-plus": { + "stars": 12, + "last_update": "2024-11-13 06:03:10", + "author_account_age_days": 5367 + }, + "https://github.com/Good-Dream-Studio/ComfyUI-Connect": { + "stars": 17, + "last_update": "2025-07-27 06:40:37", + "author_account_age_days": 171 + }, + "https://github.com/Goshe-nite/comfyui-gps-supplements": { + "stars": 3, + "last_update": "2025-05-14 20:52:22", + "author_account_age_days": 1095 + }, + "https://github.com/Gourieff/ComfyUI-ReActor": { + "stars": 765, + "last_update": "2025-08-03 19:14:47", + "author_account_age_days": 1554 + }, + "https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR": { + "stars": 56, + "last_update": "2025-02-24 07:15:35", + "author_account_age_days": 598 + }, + "https://github.com/GraftingRayman/ComfyUI_GraftingRayman": { + "stars": 61, + "last_update": "2025-04-22 06:50:24", + "author_account_age_days": 598 + }, + "https://github.com/GraftingRayman/ComfyUI_QueueTube": { + "stars": 0, + "last_update": "2025-01-08 20:59:13", + "author_account_age_days": 598 + }, + "https://github.com/GrailGreg/images_base64": { + "stars": 1, + "last_update": "2025-05-13 07:12:00", + "author_account_age_days": 181 + }, + "https://github.com/GreenLandisaLie/AuraSR-ComfyUI": { + "stars": 194, + "last_update": "2025-07-03 02:26:19", + "author_account_age_days": 1632 + }, + "https://github.com/GrenKain/PixelArt-Processing-Nodes-for-ComfyUI": { + "stars": 8, + "last_update": "2024-09-06 11:37:05", + "author_account_age_days": 2845 + }, + "https://github.com/GroxicTinch/EasyUI-ComfyUI": { + "stars": 5, + "last_update": "2025-07-01 15:25:45", + "author_account_age_days": 3380 + }, + "https://github.com/GrvBdgr/comfyui-negativewildcardsprocessor": { + "stars": 1, + "last_update": "2024-11-15 19:46:39", + "author_account_age_days": 307 + }, + "https://github.com/Gue-e/ComfyUI-PanoCard": { + "stars": 14, + "last_update": "2025-06-23 08:57:03", + "author_account_age_days": 2519 + }, + "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio": { + "stars": 3, + "last_update": "2024-06-14 08:59:42", + "author_account_age_days": 1915 + }, + "https://github.com/HAL41/ComfyUI-aichemy-nodes": { + "stars": 5, + "last_update": "2024-05-22 23:10:19", + "author_account_age_days": 3281 + }, + "https://github.com/HECer/ComfyUI-FilePathCreator": { + "stars": 8, + "last_update": "2025-04-17 16:32:12", + "author_account_age_days": 3415 + }, + "https://github.com/HJH-AILab/ComfyUI_CosyVoice2": { + "stars": 3, + "last_update": "2025-05-21 08:36:14", + "author_account_age_days": 204 + }, + "https://github.com/HJH-AILab/ComfyUI_Facefusion": { + "stars": 6, + "last_update": "2025-07-25 12:21:52", + "author_account_age_days": 204 + }, + "https://github.com/HJH-AILab/ComfyUI_StableAnimator": { + "stars": 16, + "last_update": "2025-04-24 02:45:32", + "author_account_age_days": 204 + }, + "https://github.com/HM-RunningHub/ComfyUI_RH_APICall": { + "stars": 107, + "last_update": "2025-07-23 18:53:37", + "author_account_age_days": 264 + }, + "https://github.com/HM-RunningHub/ComfyUI_RH_DMOSpeech2": { + "stars": 12, + "last_update": "2025-08-12 20:03:12", + "author_account_age_days": 264 + }, + "https://github.com/HM-RunningHub/ComfyUI_RH_FramePack": { + "stars": 188, + "last_update": "2025-05-05 18:32:28", + "author_account_age_days": 264 + }, + "https://github.com/HM-RunningHub/ComfyUI_RH_OminiControl": { + "stars": 140, + "last_update": "2024-12-20 08:41:09", + "author_account_age_days": 264 + }, + "https://github.com/HM-RunningHub/ComfyUI_RH_Qwen-Image": { + "stars": 87, + "last_update": "2025-08-05 00:38:59", + "author_account_age_days": 264 + }, + "https://github.com/HM-RunningHub/ComfyUI_RH_SeedXPro": { + "stars": 60, + "last_update": "2025-07-23 11:30:36", + "author_account_age_days": 264 + }, + "https://github.com/HM-RunningHub/ComfyUI_RH_Step1XEdit": { + "stars": 23, + "last_update": "2025-04-30 17:12:58", + "author_account_age_days": 264 + }, + "https://github.com/HM-RunningHub/ComfyUI_RH_UNO": { + "stars": 53, + "last_update": "2025-04-15 17:12:25", + "author_account_age_days": 264 + }, + "https://github.com/HM-RunningHub/ComfyUI_RH_USO": { + "stars": 36, + "last_update": "2025-09-01 19:32:02", + "author_account_age_days": 264 + }, + "https://github.com/HMG-Fiverr/ComfyUI-RandomNumberButton": { + "stars": 0, + "last_update": "2025-06-28 05:29:49", + "author_account_age_days": 162 + }, + "https://github.com/HSDHCdev/ComfyUI-AI-Pixel-Art-Enhancer": { + "stars": 10, + "last_update": "2025-08-19 06:30:10", + "author_account_age_days": 210 + }, + "https://github.com/HWDigi/Camera_Factory_Station_comfyui": { + "stars": 2, + "last_update": "2025-08-06 17:46:41", + "author_account_age_days": 57 + }, + "https://github.com/HWDigi/Factory-Prompts_comfyui": { + "stars": 0, + "last_update": "2025-08-06 08:31:02", + "author_account_age_days": 57 + }, + "https://github.com/Haiper-ai/ComfyUI-HaiperAI-API": { + "stars": 13, + "last_update": "2024-12-06 18:08:50", + "author_account_age_days": 1435 + }, + "https://github.com/Hangover3832/ComfyUI_Hangover-Utils": { + "stars": 0, + "last_update": "2025-08-20 11:05:30", + "author_account_age_days": 1045 + }, + "https://github.com/HannibalP/comfyui-HannibalPack": { + "stars": 1, + "last_update": "2025-03-11 23:36:33", + "author_account_age_days": 3039 + }, + "https://github.com/Haoming02/comfyui-clear-screen": { + "stars": 1, + "last_update": "2025-03-14 06:47:03", + "author_account_age_days": 1766 + }, + "https://github.com/Haoming02/comfyui-diffusion-cg": { + "stars": 101, + "last_update": "2025-08-12 06:56:30", + "author_account_age_days": 1766 + }, + "https://github.com/Haoming02/comfyui-floodgate": { + "stars": 33, + "last_update": "2025-08-12 06:56:07", + "author_account_age_days": 1766 + }, + "https://github.com/Haoming02/comfyui-menu-anchor": { + "stars": 3, + "last_update": "2024-10-19 11:42:51", + "author_account_age_days": 1766 + }, + "https://github.com/Haoming02/comfyui-node-beautify": { + "stars": 8, + "last_update": "2025-03-14 06:46:56", + "author_account_age_days": 1766 + }, + "https://github.com/Haoming02/comfyui-old-photo-restoration": { + "stars": 53, + "last_update": "2025-06-30 04:14:30", + "author_account_age_days": 1766 + }, + "https://github.com/Haoming02/comfyui-prompt-format": { + "stars": 34, + "last_update": "2024-09-20 04:29:03", + "author_account_age_days": 1766 + }, + "https://github.com/Haoming02/comfyui-resharpen": { + "stars": 50, + "last_update": "2025-08-12 06:56:43", + "author_account_age_days": 1766 + }, + "https://github.com/Haoming02/comfyui-tab-handler": { + "stars": 4, + "last_update": "2024-09-09 09:20:58", + "author_account_age_days": 1766 + }, + "https://github.com/HappyXY/ComfyUI-AmazonBedrock": { + "stars": 0, + "last_update": "2025-08-08 06:14:53", + "author_account_age_days": 2673 + }, + "https://github.com/HavocsCall/comfyui_HavocsCall_Custom_Nodes": { + "stars": 3, + "last_update": "2025-06-07 18:56:34", + "author_account_age_days": 2349 + }, + "https://github.com/HaydenReeve/ComfyUI-Better-Strings": { + "stars": 2, + "last_update": "2025-03-27 12:41:28", + "author_account_age_days": 2677 + }, + "https://github.com/Hazukiaoi/ComfyUI-LM_Studio_Tools": { + "stars": 2, + "last_update": "2025-07-02 13:28:53", + "author_account_age_days": 4410 + }, + "https://github.com/HeadshotPro/ComfyUI-HeadshotPro": { + "stars": 1, + "last_update": "2024-08-14 04:00:34", + "author_account_age_days": 789 + }, + "https://github.com/HebelHuber/comfyui-enhanced-save-node": { + "stars": 2, + "last_update": "2024-06-14 08:59:28", + "author_account_age_days": 2759 + }, + "https://github.com/HellerCommaA/ComfyUI-VideoResolutions": { + "stars": 2, + "last_update": "2025-03-28 14:51:23", + "author_account_age_days": 4763 + }, + "https://github.com/Hellfiredragon/comfyui-image-manipulation": { + "stars": 0, + "last_update": "2025-02-17 23:25:53", + "author_account_age_days": 2170 + }, + "https://github.com/HelloVision/ComfyUI_HelloMeme": { + "stars": 370, + "last_update": "2025-06-27 09:47:01", + "author_account_age_days": 348 + }, + "https://github.com/Hellrunner2k/ComfyUI-HellrunnersMagicalNodes": { + "stars": 2, + "last_update": "2025-05-21 02:17:36", + "author_account_age_days": 3519 + }, + "https://github.com/Hiero207/ComfyUI-Hiero-Nodes": { + "stars": 6, + "last_update": "2024-08-14 01:25:26", + "author_account_age_days": 2133 + }, + "https://github.com/HighDoping/ComfyUI_ASSSSA": { + "stars": 1, + "last_update": "2025-07-02 13:28:45", + "author_account_age_days": 2605 + }, + "https://github.com/HoangYell/comfyui-hoangyell-video": { + "stars": 0, + "last_update": "2025-08-21 13:34:55", + "author_account_age_days": 4178 + }, + "https://github.com/Holasyb918/Ghost2_Comfyui": { + "stars": 4, + "last_update": "2025-03-14 02:41:21", + "author_account_age_days": 1070 + }, + "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM": { + "stars": 6, + "last_update": "2025-06-25 23:22:58", + "author_account_age_days": 623 + }, + "https://github.com/HowToSD/ComfyUI-Data-Analysis": { + "stars": 18, + "last_update": "2025-06-11 04:28:54", + "author_account_age_days": 610 + }, + "https://github.com/HowToSD/ComfyUI-Pt-Wrapper": { + "stars": 6, + "last_update": "2025-06-11 04:48:46", + "author_account_age_days": 610 + }, + "https://github.com/Hullabalo/ComfyUI-Loop": { + "stars": 9, + "last_update": "2025-05-01 15:26:44", + "author_account_age_days": 1045 + }, + "https://github.com/IDGallagher/ComfyUI-IG-Motion-I2V": { + "stars": 39, + "last_update": "2024-09-30 10:38:22", + "author_account_age_days": 5916 + }, + "https://github.com/IDGallagher/ComfyUI-IG-Nodes": { + "stars": 3, + "last_update": "2025-07-14 15:28:38", + "author_account_age_days": 5916 + }, + "https://github.com/IDGallagher/MotionVideoSearch": { + "stars": 12, + "last_update": "2025-01-13 09:37:08", + "author_account_age_days": 5916 + }, + "https://github.com/IIEleven11/ComfyUI-FairyTaler": { + "stars": 2, + "last_update": "2025-07-06 03:42:02", + "author_account_age_days": 2163 + }, + "https://github.com/IIs-fanta/ComfyUI-FANTA-GameBox": { + "stars": 1, + "last_update": "2025-06-04 09:43:26", + "author_account_age_days": 759 + }, + "https://github.com/INuBq8/ComfyUI-NotificationBridge": { + "stars": 0, + "last_update": "2025-06-09 04:11:29", + "author_account_age_days": 317 + }, + "https://github.com/ITurchenko/ComfyUI-SizeFromArray": { + "stars": 0, + "last_update": "2024-08-01 08:45:43", + "author_account_age_days": 4144 + }, + "https://github.com/IamCreateAI/Ruyi-Models": { + "stars": 522, + "last_update": "2025-01-20 12:21:40", + "author_account_age_days": 267 + }, + "https://github.com/IcelandicCenterArtificialIntelligence/ComfyUI-SamplerSchedulerMetricsTester": { + "stars": 7, + "last_update": "2025-07-23 10:19:10", + "author_account_age_days": 464 + }, + "https://github.com/Icyman86/ComfyUI_AnimeCharacterSelect": { + "stars": 2, + "last_update": "2025-07-21 10:14:53", + "author_account_age_days": 78 + }, + "https://github.com/Iemand005/ComfyUI-Touch-Gestures": { + "stars": 3, + "last_update": "2025-02-03 00:25:14", + "author_account_age_days": 1932 + }, + "https://github.com/Iemand005/ComfyUI-Touchpad-Gestures": { + "stars": 2, + "last_update": "2025-02-03 00:21:47", + "author_account_age_days": 1932 + }, + "https://github.com/IgalOgonov/ComfyUI_Simple_String_Repository": { + "stars": 3, + "last_update": "2024-12-28 20:21:22", + "author_account_age_days": 2665 + }, + "https://github.com/ImagineerNL/ComfyUI-IMGNR-Utils": { + "stars": 1, + "last_update": "2025-05-05 21:36:48", + "author_account_age_days": 1988 + }, + "https://github.com/ImagineerNL/ComfyUI-ToSVG-Potracer": { + "stars": 16, + "last_update": "2025-05-08 21:56:04", + "author_account_age_days": 1988 + }, + "https://github.com/Immac/ComfyUI-CoreVideoMocks": { + "stars": 1, + "last_update": "2025-03-17 20:21:25", + "author_account_age_days": 4614 + }, + "https://github.com/ImmortalPie/ComfyUI-PonySwitch": { + "stars": 10, + "last_update": "2025-03-27 12:49:04", + "author_account_age_days": 4257 + }, + "https://github.com/InceptionsAI/ComfyUI-RunComfy-Helper": { + "stars": 2, + "last_update": "2025-07-25 04:31:55", + "author_account_age_days": 965 + }, + "https://github.com/InstantStudioAI/ComfyUI-InstantStudio": { + "stars": 4, + "last_update": "2025-03-25 06:19:54", + "author_account_age_days": 265 + }, + "https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes": { + "stars": 13, + "last_update": "2024-05-23 01:12:46", + "author_account_age_days": 3065 + }, + "https://github.com/Inzaniak/comfyui-ranbooru": { + "stars": 19, + "last_update": "2024-05-22 23:12:23", + "author_account_age_days": 4344 + }, + "https://github.com/Irsalistic/comfyui-dam-object-extractor": { + "stars": 6, + "last_update": "2025-05-13 11:10:44", + "author_account_age_days": 755 + }, + "https://github.com/IsItDanOrAi/ComfyUI-Stereopsis": { + "stars": 9, + "last_update": "2025-07-08 01:45:22", + "author_account_age_days": 546 + }, + "https://github.com/IsItDanOrAi/ComfyUI-exLoadout": { + "stars": 6, + "last_update": "2025-07-11 02:36:28", + "author_account_age_days": 546 + }, + "https://github.com/Isi-dev/ComfyUI-Animation_Nodes_and_Workflows": { + "stars": 29, + "last_update": "2025-06-11 15:26:03", + "author_account_age_days": 1527 + }, + "https://github.com/Isi-dev/ComfyUI-Img2DrawingAssistants": { + "stars": 20, + "last_update": "2024-12-15 10:03:55", + "author_account_age_days": 1527 + }, + "https://github.com/Isi-dev/ComfyUI-Img2PaintingAssistant": { + "stars": 12, + "last_update": "2025-07-01 09:18:51", + "author_account_age_days": 1527 + }, + "https://github.com/Isi-dev/ComfyUI-UniAnimate-W": { + "stars": 179, + "last_update": "2025-03-11 10:32:39", + "author_account_age_days": 1527 + }, + "https://github.com/Isi-dev/ComfyUI_Animation_Nodes_and_Workflows": { + "stars": 29, + "last_update": "2025-06-11 15:26:03", + "author_account_age_days": 1527 + }, + "https://github.com/Isi-dev/ComfyUI_DeleteModelPassthrough": { + "stars": 2, + "last_update": "2025-08-31 11:47:06", + "author_account_age_days": 1527 + }, + "https://github.com/Isulion/ComfyUI_Isulion": { + "stars": 38, + "last_update": "2025-05-03 12:21:05", + "author_account_age_days": 792 + }, + "https://github.com/IuvenisSapiens/ComfyUI_MiniCPM-V-4": { + "stars": 207, + "last_update": "2025-08-29 00:23:20", + "author_account_age_days": 846 + }, + "https://github.com/IuvenisSapiens/ComfyUI_Qwen2-Audio-7B-Instruct-Int4": { + "stars": 12, + "last_update": "2025-04-02 16:35:52", + "author_account_age_days": 846 + }, + "https://github.com/IuvenisSapiens/ComfyUI_Qwen2-VL-Instruct": { + "stars": 120, + "last_update": "2025-08-07 11:19:43", + "author_account_age_days": 846 + }, + "https://github.com/IuvenisSapiens/ComfyUI_Qwen2_5-VL-Instruct": { + "stars": 120, + "last_update": "2025-08-07 11:19:43", + "author_account_age_days": 846 + }, + "https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes": { + "stars": 2, + "last_update": "2025-01-27 19:09:46", + "author_account_age_days": 3002 + }, + "https://github.com/JPS-GER/ComfyUI_JPS-Nodes": { + "stars": 84, + "last_update": "2024-05-22 20:39:14", + "author_account_age_days": 751 + }, + "https://github.com/JPrevots/ComfyUI-PhyCV": { + "stars": 1, + "last_update": "2025-02-21 11:36:11", + "author_account_age_days": 994 + }, + "https://github.com/JTriggerFish/ComfyLatentTools": { + "stars": 2, + "last_update": "2025-05-06 21:07:17", + "author_account_age_days": 4434 + }, + "https://github.com/JackEllie/ComfyUI_AI_Assistant": { + "stars": 24, + "last_update": "2024-09-05 03:42:14", + "author_account_age_days": 1006 + }, + "https://github.com/Jacky-MYQ/comfyui-DataCleaning": { + "stars": 5, + "last_update": "2025-05-10 12:26:38", + "author_account_age_days": 778 + }, + "https://github.com/Jacky-MYQ/comfyui-rgb2cmyk": { + "stars": 2, + "last_update": "2025-04-28 02:05:19", + "author_account_age_days": 778 + }, + "https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node": { + "stars": 0, + "last_update": "2025-01-07 06:50:58", + "author_account_age_days": 1997 + }, + "https://github.com/Jannchie/ComfyUI-J": { + "stars": 98, + "last_update": "2025-04-07 09:03:24", + "author_account_age_days": 2988 + }, + "https://github.com/Jannled/owl-vit-comfyui": { + "stars": 0, + "last_update": "2025-05-20 00:41:53", + "author_account_age_days": 4113 + }, + "https://github.com/Jarcis-cy/ComfyUI-HunyuanVideoFoley": { + "stars": 4, + "last_update": "2025-08-29 16:44:45", + "author_account_age_days": 2661 + }, + "https://github.com/JaredTherriault/ComfyUI-JNodes": { + "stars": 74, + "last_update": "2025-07-29 16:31:23", + "author_account_age_days": 4007 + }, + "https://github.com/Jash-Vora/ComfyUI-GarmentDiT": { + "stars": 3, + "last_update": "2025-01-04 08:22:14", + "author_account_age_days": 845 + }, + "https://github.com/JayLyu/blender-in-comfyui": { + "stars": 2, + "last_update": "2025-07-20 07:39:06", + "author_account_age_days": 3703 + }, + "https://github.com/JcandZero/ComfyUI_GLM4Node": { + "stars": 29, + "last_update": "2024-05-22 23:12:46", + "author_account_age_days": 1125 + }, + "https://github.com/Jcd1230/rembg-comfyui-node": { + "stars": 175, + "last_update": "2024-05-22 17:58:34", + "author_account_age_days": 5321 + }, + "https://github.com/Jelosus2/comfyui-vae-reflection": { + "stars": 4, + "last_update": "2025-08-25 20:21:08", + "author_account_age_days": 1738 + }, + "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": { + "stars": 5, + "last_update": "2024-08-25 18:35:55", + "author_account_age_days": 590 + }, + "https://github.com/JettHu/ComfyUI-TCD": { + "stars": 136, + "last_update": "2024-07-31 13:50:21", + "author_account_age_days": 2793 + }, + "https://github.com/JettHu/ComfyUI_TGate": { + "stars": 96, + "last_update": "2024-09-24 02:15:59", + "author_account_age_days": 2793 + }, + "https://github.com/JiSenHua/ComfyUI-TD": { + "stars": 76, + "last_update": "2025-07-09 09:31:23", + "author_account_age_days": 1179 + }, + "https://github.com/Jint8888/Comfyui_JTnodes": { + "stars": 1, + "last_update": "2025-04-22 16:23:53", + "author_account_age_days": 485 + }, + "https://github.com/JoeNavark/comfyui_custom_sigma_editor": { + "stars": 15, + "last_update": "2025-08-22 22:31:12", + "author_account_age_days": 1283 + }, + "https://github.com/JohanK66/ComfyUI-WebhookImage": { + "stars": 1, + "last_update": "2025-03-10 19:38:53", + "author_account_age_days": 185 + }, + "https://github.com/JohnDoeSmithee/ComfyUI-SoX-Mixdown": { + "stars": 1, + "last_update": "2025-01-26 22:42:52", + "author_account_age_days": 219 + }, + "https://github.com/Jokimbe/ComfyUI-DrawThings-gRPC": { + "stars": 18, + "last_update": "2025-08-27 10:47:52", + "author_account_age_days": 4816 + }, + "https://github.com/Jonseed/ComfyUI-Detail-Daemon": { + "stars": 786, + "last_update": "2025-03-14 16:47:41", + "author_account_age_days": 2614 + }, + "https://github.com/Jordach/comfy-plasma": { + "stars": 75, + "last_update": "2024-05-22 18:08:28", + "author_account_age_days": 4948 + }, + "https://github.com/JosefKuchar/ComfyUI-AdvancedTiling": { + "stars": 13, + "last_update": "2024-08-02 15:16:12", + "author_account_age_days": 3789 + }, + "https://github.com/JosephThomasParker/ComfyUI-DrawThingsWrapper": { + "stars": 37, + "last_update": "2025-02-04 21:14:38", + "author_account_age_days": 3605 + }, + "https://github.com/Julian-adv/WildDivide": { + "stars": 17, + "last_update": "2025-07-24 15:43:12", + "author_account_age_days": 773 + }, + "https://github.com/JustLateNightAI/KeywordImageBlocker": { + "stars": 0, + "last_update": "2025-05-07 17:25:44", + "author_account_age_days": 315 + }, + "https://github.com/Juste-Leo2/Canary-ComfyUI": { + "stars": 0, + "last_update": "2025-09-02 11:49:19", + "author_account_age_days": 306 + }, + "https://github.com/Juste-Leo2/USO_ComfyUI": { + "stars": 6, + "last_update": "2025-08-30 20:21:25", + "author_account_age_days": 306 + }, + "https://github.com/JustinMatters/comfyUI-JMNodes": { + "stars": 0, + "last_update": "2025-01-04 14:57:58", + "author_account_age_days": 3206 + }, + "https://github.com/KAVVATARE/ComfyUI-Light-N-Color": { + "stars": 1, + "last_update": "2025-08-04 10:30:12", + "author_account_age_days": 4566 + }, + "https://github.com/KAVVATARE/ComfyUI_RightEyeDisparity": { + "stars": 2, + "last_update": "2025-05-23 19:32:04", + "author_account_age_days": 4566 + }, + "https://github.com/KERRY-YUAN/ComfyUI_Float_Animator": { + "stars": 6, + "last_update": "2025-06-16 06:49:23", + "author_account_age_days": 1689 + }, + "https://github.com/KERRY-YUAN/ComfyUI_Simple_Executor": { + "stars": 2, + "last_update": "2025-04-09 03:25:32", + "author_account_age_days": 1689 + }, + "https://github.com/KERRY-YUAN/ComfyUI_Spark_TTS": { + "stars": 2, + "last_update": "2025-06-10 06:16:34", + "author_account_age_days": 1689 + }, + "https://github.com/KLL535/ComfyUI_PNGInfo_Sidebar": { + "stars": 20, + "last_update": "2025-02-16 13:11:48", + "author_account_age_days": 284 + }, + "https://github.com/KLL535/ComfyUI_SimpleButcher": { + "stars": 7, + "last_update": "2025-08-23 23:14:41", + "author_account_age_days": 284 + }, + "https://github.com/KY-2000/ComfyUI_PuLID_Flux_ll_FaceNet": { + "stars": 0, + "last_update": "2025-08-26 15:57:33", + "author_account_age_days": 2168 + }, + "https://github.com/KY-2000/RES4LYF-tester-loop": { + "stars": 7, + "last_update": "2025-08-26 02:18:02", + "author_account_age_days": 2168 + }, + "https://github.com/KY-2000/comfyui-ksampler-tester-loop": { + "stars": 6, + "last_update": "2025-08-26 02:18:37", + "author_account_age_days": 2168 + }, + "https://github.com/KY-2000/comfyui-save-image-enhanced": { + "stars": 0, + "last_update": "2025-08-31 07:47:45", + "author_account_age_days": 2168 + }, + "https://github.com/Kangkang625/ComfyUI-paint-by-example": { + "stars": 16, + "last_update": "2024-05-22 22:20:27", + "author_account_age_days": 1349 + }, + "https://github.com/KarmaSwint/ComfyUI-KarmaNodes": { + "stars": 0, + "last_update": "2025-06-29 16:31:15", + "author_account_age_days": 383 + }, + "https://github.com/Kayarte/AudioDriven-Latent-Space-Tools-for-ComfyUI": { + "stars": 3, + "last_update": "2025-06-15 22:39:14", + "author_account_age_days": 488 + }, + "https://github.com/Kesin11/ComfyUI-list-filter": { + "stars": 0, + "last_update": "2025-03-28 04:00:03", + "author_account_age_days": 4982 + }, + "https://github.com/KewkLW/ComfyUI-kewky_tools": { + "stars": 8, + "last_update": "2025-05-11 21:55:10", + "author_account_age_days": 2122 + }, + "https://github.com/Kidev/ComfyUI-Fisheye-effects": { + "stars": 19, + "last_update": "2025-04-03 19:00:30", + "author_account_age_days": 5036 + }, + "https://github.com/Kinglord/ComfyUI_LoRA_Sidebar": { + "stars": 87, + "last_update": "2025-04-27 08:48:53", + "author_account_age_days": 5325 + }, + "https://github.com/Kinglord/ComfyUI_Prompt_Gallery": { + "stars": 60, + "last_update": "2024-09-24 21:58:55", + "author_account_age_days": 5325 + }, + "https://github.com/Kinglord/ComfyUI_Slider_Sidebar": { + "stars": 41, + "last_update": "2024-09-26 02:40:30", + "author_account_age_days": 5325 + }, + "https://github.com/KohakuBlueleaf/HDM-ext": { + "stars": 25, + "last_update": "2025-08-21 04:47:05", + "author_account_age_days": 2063 + }, + "https://github.com/KohakuBlueleaf/z-tipo-extension": { + "stars": 504, + "last_update": "2025-08-16 15:43:32", + "author_account_age_days": 2063 + }, + "https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler": { + "stars": 213, + "last_update": "2024-09-01 03:57:22", + "author_account_age_days": 1921 + }, + "https://github.com/Koishi-Star/Pyramid_Noise_For_Inference": { + "stars": 6, + "last_update": "2024-09-27 17:58:43", + "author_account_age_days": 1921 + }, + "https://github.com/KoreTeknology/ComfyUI-Nai-Production-Nodes-Pack": { + "stars": 12, + "last_update": "2024-11-24 15:55:30", + "author_account_age_days": 3625 + }, + "https://github.com/KoreTeknology/ComfyUI-Universal-Styler": { + "stars": 63, + "last_update": "2025-03-01 05:37:40", + "author_account_age_days": 3625 + }, + "https://github.com/Koren-cy/FlowCV": { + "stars": 2, + "last_update": "2025-08-12 18:22:52", + "author_account_age_days": 439 + }, + "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": { + "stars": 863, + "last_update": "2025-08-06 20:02:42", + "author_account_age_days": 4151 + }, + "https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved": { + "stars": 3253, + "last_update": "2025-08-06 05:23:51", + "author_account_age_days": 4151 + }, + "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite": { + "stars": 1188, + "last_update": "2025-08-07 14:53:50", + "author_account_age_days": 4151 + }, + "https://github.com/Koushakur/ComfyUI-DenoiseChooser": { + "stars": 4, + "last_update": "2025-03-14 09:52:02", + "author_account_age_days": 1555 + }, + "https://github.com/KunmyonChoi/ComfyUI_S3_direct": { + "stars": 0, + "last_update": "2025-01-07 01:22:23", + "author_account_age_days": 6003 + }, + "https://github.com/Kurdknight/Kurdknight_comfycheck": { + "stars": 4, + "last_update": "2025-01-15 16:47:23", + "author_account_age_days": 946 + }, + "https://github.com/KwaiVGI/ComfyUI-KLingAI-API": { + "stars": 139, + "last_update": "2025-05-06 06:25:51", + "author_account_age_days": 493 + }, + "https://github.com/Ky11le/draw_tools": { + "stars": 0, + "last_update": "2025-05-14 05:35:47", + "author_account_age_days": 914 + }, + "https://github.com/KytraScript/ComfyUI_KytraWebhookHTTP": { + "stars": 5, + "last_update": "2024-05-23 00:21:43", + "author_account_age_days": 2214 + }, + "https://github.com/KytraScript/ComfyUI_MatAnyone_Kytra": { + "stars": 136, + "last_update": "2025-03-16 18:58:58", + "author_account_age_days": 2214 + }, + "https://github.com/L33chKing/comfyui-tag-frequency-weighter": { + "stars": 0, + "last_update": "2025-08-17 22:37:50", + "author_account_age_days": 2685 + }, + "https://github.com/LAOGOU-666/ComfyUI-LG_HotReload": { + "stars": 213, + "last_update": "2025-06-21 16:06:56", + "author_account_age_days": 530 + }, + "https://github.com/LAOGOU-666/ComfyUI_LG_FFT": { + "stars": 8, + "last_update": "2024-10-10 04:45:57", + "author_account_age_days": 530 + }, + "https://github.com/LAOGOU-666/Comfyui-LG_GroupExecutor": { + "stars": 159, + "last_update": "2025-05-31 17:36:04", + "author_account_age_days": 530 + }, + "https://github.com/LAOGOU-666/Comfyui-LG_Relight": { + "stars": 198, + "last_update": "2025-06-16 13:28:22", + "author_account_age_days": 530 + }, + "https://github.com/LAOGOU-666/Comfyui-Memory_Cleanup": { + "stars": 174, + "last_update": "2025-04-09 16:45:10", + "author_account_age_days": 530 + }, + "https://github.com/LAOGOU-666/Comfyui_LG_Tools": { + "stars": 236, + "last_update": "2025-08-31 02:06:40", + "author_account_age_days": 530 + }, + "https://github.com/LEv145/images-grid-comfy-plugin": { + "stars": 189, + "last_update": "2024-05-30 17:54:32", + "author_account_age_days": 2642 + }, + "https://github.com/LK-168/comfyui_imgutils": { + "stars": 1, + "last_update": "2025-06-30 07:23:25", + "author_account_age_days": 65 + }, + "https://github.com/LKbaba/ComfyUI-TuZi-Flux-Kontext": { + "stars": 26, + "last_update": "2025-06-19 03:37:53", + "author_account_age_days": 2924 + }, + "https://github.com/LaVie024/comfyui-lopi999-nodes": { + "stars": 8, + "last_update": "2025-08-01 04:52:07", + "author_account_age_days": 1992 + }, + "https://github.com/LamEmil/ComfyUI_ASCIIArtNode": { + "stars": 1, + "last_update": "2025-05-18 09:22:38", + "author_account_age_days": 336 + }, + "https://github.com/LaoMaoBoss/ComfyUI-WBLESS": { + "stars": 0, + "last_update": "2025-09-02 09:04:56", + "author_account_age_days": 167 + }, + "https://github.com/LargeModGames/comfyui-smart-lora-downloader": { + "stars": 3, + "last_update": "2025-06-12 08:40:31", + "author_account_age_days": 1567 + }, + "https://github.com/LarryJane491/Image-Captioning-in-ComfyUI": { + "stars": 70, + "last_update": "2024-06-06 20:45:43", + "author_account_age_days": 599 + }, + "https://github.com/LarryJane491/Lora-Training-in-Comfy": { + "stars": 504, + "last_update": "2024-08-05 11:32:30", + "author_account_age_days": 599 + }, + "https://github.com/LatentRat/comfy_remote_run": { + "stars": 9, + "last_update": "2024-09-08 04:06:09", + "author_account_age_days": 1179 + }, + "https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer": { + "stars": 15, + "last_update": "2025-09-02 11:39:38", + "author_account_age_days": 294 + }, + "https://github.com/Laurent2916/comfyui-piq": { + "stars": 0, + "last_update": "2025-03-17 13:50:16", + "author_account_age_days": 3302 + }, + "https://github.com/Layer-norm/comfyui-lama-remover": { + "stars": 134, + "last_update": "2024-08-03 04:18:39", + "author_account_age_days": 767 + }, + "https://github.com/LeanModels/ComfyUI-DFloat11": { + "stars": 2, + "last_update": "2025-08-26 08:55:44", + "author_account_age_days": 189 + }, + "https://github.com/Legorobotdude/ComfyUI-VariationLab": { + "stars": 1, + "last_update": "2025-03-02 04:59:28", + "author_account_age_days": 3804 + }, + "https://github.com/Lerc/canvas_tab": { + "stars": 198, + "last_update": "2024-05-22 20:48:45", + "author_account_age_days": 5802 + }, + "https://github.com/LevelPixel/ComfyUI-LevelPixel": { + "stars": 17, + "last_update": "2025-09-01 07:46:45", + "author_account_age_days": 417 + }, + "https://github.com/LevelPixel/ComfyUI-LevelPixel-Advanced": { + "stars": 10, + "last_update": "2025-09-02 01:55:24", + "author_account_age_days": 417 + }, + "https://github.com/Lex-DRL/ComfyUI-BestResolution": { + "stars": 6, + "last_update": "2025-08-23 21:33:52", + "author_account_age_days": 4551 + }, + "https://github.com/Lex-DRL/ComfyUI-StringConstructor": { + "stars": 1, + "last_update": "2025-08-31 01:34:48", + "author_account_age_days": 4551 + }, + "https://github.com/Lhyejin/ComfyUI-Fill-Image-for-Outpainting": { + "stars": 9, + "last_update": "2024-08-26 00:40:09", + "author_account_age_days": 3037 + }, + "https://github.com/LiJT/ComfyUI-Gemini-Prompt-Generator-JT": { + "stars": 4, + "last_update": "2025-08-25 16:58:37", + "author_account_age_days": 3837 + }, + "https://github.com/Light-x02/ComfyUI-FluxSettingsNode": { + "stars": 7, + "last_update": "2025-04-28 21:45:01", + "author_account_age_days": 1212 + }, + "https://github.com/Light-x02/ComfyUI-Image-Metadata-Nodes": { + "stars": 7, + "last_update": "2025-05-01 18:14:59", + "author_account_age_days": 1212 + }, + "https://github.com/Light-x02/ComfyUI_Crop_Image_By_Lightx02": { + "stars": 1, + "last_update": "2025-08-24 15:15:23", + "author_account_age_days": 1212 + }, + "https://github.com/LightSketch-ai/ComfyUI-LivePortraitNode": { + "stars": 2, + "last_update": "2024-07-17 01:24:53", + "author_account_age_days": 419 + }, + "https://github.com/Lightricks/ComfyUI-LTXVideo": { + "stars": 2335, + "last_update": "2025-07-16 15:41:42", + "author_account_age_days": 4625 + }, + "https://github.com/Limbicnation/ComfyUI-RandomSeedGenerator": { + "stars": 1, + "last_update": "2025-08-28 05:17:39", + "author_account_age_days": 4264 + }, + "https://github.com/Limbicnation/ComfyUI-TransparencyBackgroundRemover": { + "stars": 7, + "last_update": "2025-08-30 19:18:36", + "author_account_age_days": 4264 + }, + "https://github.com/Limbicnation/ComfyUIDepthEstimation": { + "stars": 13, + "last_update": "2025-08-28 05:22:54", + "author_account_age_days": 4264 + }, + "https://github.com/Limbicnation/ComfyUI_FaceDetectionNode": { + "stars": 3, + "last_update": "2025-07-22 04:44:07", + "author_account_age_days": 4264 + }, + "https://github.com/Limitex/ComfyUI-Calculation": { + "stars": 0, + "last_update": "2024-05-22 22:18:40", + "author_account_age_days": 1710 + }, + "https://github.com/Limitex/ComfyUI-Diffusers": { + "stars": 174, + "last_update": "2025-03-10 19:04:32", + "author_account_age_days": 1710 + }, + "https://github.com/Ling-APE/ComfyUI-PixelResolutionCalculator": { + "stars": 8, + "last_update": "2025-06-02 02:45:04", + "author_account_age_days": 822 + }, + "https://github.com/LingSss9/comfyui-merge": { + "stars": 12, + "last_update": "2025-08-13 04:43:40", + "author_account_age_days": 696 + }, + "https://github.com/Loewen-Hob/rembg-comfyui-node-better": { + "stars": 68, + "last_update": "2025-04-07 09:09:34", + "author_account_age_days": 906 + }, + "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame": { + "stars": 29, + "last_update": "2024-05-22 21:29:02", + "author_account_age_days": 1410 + }, + "https://github.com/LonicaMewinsky/ComfyUI-RawSaver": { + "stars": 3, + "last_update": "2024-05-22 21:31:28", + "author_account_age_days": 1410 + }, + "https://github.com/LoveEatCandy/COMFYUI-ReplacePartOfImage": { + "stars": 0, + "last_update": "2025-06-17 05:53:17", + "author_account_age_days": 2876 + }, + "https://github.com/Lovzu/ComfyUI-KittenTTS": { + "stars": 1, + "last_update": "2025-08-09 06:04:38", + "author_account_age_days": 219 + }, + "https://github.com/Ltamann/ComfyUI-FastVLM-7B": { + "stars": 3, + "last_update": "2025-08-30 10:49:54", + "author_account_age_days": 4653 + }, + "https://github.com/Ltamann/ComfyUI-TBG-ETUR": { + "stars": 53, + "last_update": "2025-08-31 19:06:55", + "author_account_age_days": 4653 + }, + "https://github.com/Ltamann/ComfyUI-TBG-Takeaways": { + "stars": 4, + "last_update": "2025-07-08 21:05:35", + "author_account_age_days": 4653 + }, + "https://github.com/LucipherDev/ComfyUI-AniDoc": { + "stars": 53, + "last_update": "2025-03-28 18:39:10", + "author_account_age_days": 1932 + }, + "https://github.com/LucipherDev/ComfyUI-Golden-Noise": { + "stars": 23, + "last_update": "2025-03-28 18:38:24", + "author_account_age_days": 1932 + }, + "https://github.com/LucipherDev/ComfyUI-TangoFlux": { + "stars": 98, + "last_update": "2025-03-28 18:39:16", + "author_account_age_days": 1932 + }, + "https://github.com/Ludobico/ComfyUI-ScenarioPrompt": { + "stars": 17, + "last_update": "2025-03-12 09:07:07", + "author_account_age_days": 1467 + }, + "https://github.com/LyazS/comfyui-anime-seg": { + "stars": 9, + "last_update": "2024-05-22 23:21:49", + "author_account_age_days": 3292 + }, + "https://github.com/LyazS/comfyui-nettools": { + "stars": 5, + "last_update": "2024-09-23 12:52:44", + "author_account_age_days": 3292 + }, + "https://github.com/M1kep/ComfyLiterals": { + "stars": 63, + "last_update": "2024-05-22 20:31:38", + "author_account_age_days": 4693 + }, + "https://github.com/M1kep/ComfyUI-KepOpenAI": { + "stars": 30, + "last_update": "2024-08-20 16:33:57", + "author_account_age_days": 4693 + }, + "https://github.com/M1kep/ComfyUI-OtherVAEs": { + "stars": 2, + "last_update": "2024-05-22 20:33:41", + "author_account_age_days": 4693 + }, + "https://github.com/M1kep/Comfy_KepKitchenSink": { + "stars": 0, + "last_update": "2024-05-22 20:33:29", + "author_account_age_days": 4693 + }, + "https://github.com/M1kep/Comfy_KepListStuff": { + "stars": 47, + "last_update": "2024-06-22 00:51:28", + "author_account_age_days": 4693 + }, + "https://github.com/M1kep/Comfy_KepMatteAnything": { + "stars": 11, + "last_update": "2024-05-22 20:33:16", + "author_account_age_days": 4693 + }, + "https://github.com/M1kep/KepPromptLang": { + "stars": 7, + "last_update": "2024-05-22 20:32:56", + "author_account_age_days": 4693 + }, + "https://github.com/MDMAchine/ComfyUI_MD_Nodes": { + "stars": 5, + "last_update": "2025-08-29 03:27:07", + "author_account_age_days": 2085 + }, + "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes": { + "stars": 69, + "last_update": "2025-08-31 15:35:44", + "author_account_age_days": 2040 + }, + "https://github.com/Makeezi/ComfyUI-promptLAB": { + "stars": 0, + "last_update": "2024-05-23 01:24:51", + "author_account_age_days": 2217 + }, + "https://github.com/MakkiShizu/ComfyUI-MakkiTools": { + "stars": 5, + "last_update": "2025-08-29 17:44:14", + "author_account_age_days": 747 + }, + "https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards": { + "stars": 9, + "last_update": "2025-08-16 09:04:36", + "author_account_age_days": 747 + }, + "https://github.com/MakkiShizu/ComfyUI-Qwen2_5-VL": { + "stars": 12, + "last_update": "2025-07-05 12:10:40", + "author_account_age_days": 747 + }, + "https://github.com/MakkiShizu/comfyui_reimgsize": { + "stars": 5, + "last_update": "2025-04-27 15:34:57", + "author_account_age_days": 747 + }, + "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes": { + "stars": 28, + "last_update": "2024-06-14 10:24:17", + "author_account_age_days": 817 + }, + "https://github.com/ManglerFTW/ComfyI2I": { + "stars": 174, + "last_update": "2024-06-14 11:01:01", + "author_account_age_days": 1090 + }, + "https://github.com/MaraScott/ComfyUI_MaraScott_Nodes": { + "stars": 160, + "last_update": "2025-08-26 15:30:46", + "author_account_age_days": 5405 + }, + "https://github.com/MarcusNyne/m9-prompts-comfyui": { + "stars": 1, + "last_update": "2024-08-24 16:56:53", + "author_account_age_days": 1857 + }, + "https://github.com/MariusKM/ComfyUI-BadmanNodes": { + "stars": 2, + "last_update": "2024-12-30 15:36:09", + "author_account_age_days": 2666 + }, + "https://github.com/MarkoCa1/ComfyUI-Text": { + "stars": 8, + "last_update": "2024-12-16 09:48:49", + "author_account_age_days": 2068 + }, + "https://github.com/MarkoCa1/ComfyUI_Segment_Mask": { + "stars": 23, + "last_update": "2024-05-23 00:15:51", + "author_account_age_days": 2068 + }, + "https://github.com/Marksusu/ComfyUI_MTCLIPEncode": { + "stars": 8, + "last_update": "2025-05-07 13:56:23", + "author_account_age_days": 1143 + }, + "https://github.com/MartinDeanMoriarty/ComfyUI-DeanLogic": { + "stars": 0, + "last_update": "2025-07-19 23:30:14", + "author_account_age_days": 3828 + }, + "https://github.com/MaruPelkar/comfyui-conditioning-resizer": { + "stars": 1, + "last_update": "2025-04-21 20:57:33", + "author_account_age_days": 4016 + }, + "https://github.com/Mason-McGough/ComfyUI-Mosaica": { + "stars": 6, + "last_update": "2024-08-26 20:42:35", + "author_account_age_days": 3640 + }, + "https://github.com/MasterDenis/VAE-Decode-Switch": { + "stars": 1, + "last_update": "2025-07-19 12:00:54", + "author_account_age_days": 2005 + }, + "https://github.com/Mattabyte/ComfyUI-SecureApiCall": { + "stars": 0, + "last_update": "2025-03-07 23:55:55", + "author_account_age_days": 2042 + }, + "https://github.com/Maxed-Out-99/ComfyUI-MaxedOut": { + "stars": 6, + "last_update": "2025-08-29 19:58:26", + "author_account_age_days": 115 + }, + "https://github.com/Maxed-Out-99/ComfyUI-SmartModelLoaders-MXD": { + "stars": 0, + "last_update": "2025-08-21 05:34:02", + "author_account_age_days": 115 + }, + "https://github.com/McKlinton2/comfyui-mcklinton-pack": { + "stars": 2, + "last_update": "2025-05-31 18:41:13", + "author_account_age_days": 1214 + }, + "https://github.com/Mcmillian/ComfyUI-SimpleToolsNodes": { + "stars": 0, + "last_update": "2024-09-29 14:18:23", + "author_account_age_days": 3331 + }, + "https://github.com/MeeeyoAI/ComfyUI_StringOps": { + "stars": 92, + "last_update": "2025-06-04 17:47:55", + "author_account_age_days": 192 + }, + "https://github.com/Meettya/ComfyUI-OneForOne": { + "stars": 2, + "last_update": "2025-01-07 22:49:30", + "author_account_age_days": 5767 + }, + "https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform": { + "stars": 7, + "last_update": "2024-09-16 16:11:59", + "author_account_age_days": 714 + }, + "https://github.com/MicheleGuidi/ComfyUI-Contextual-SAM2": { + "stars": 6, + "last_update": "2025-05-01 16:09:43", + "author_account_age_days": 1684 + }, + "https://github.com/MiddleKD/ComfyUI-denoise-mask-scheduler": { + "stars": 6, + "last_update": "2024-11-07 12:35:00", + "author_account_age_days": 965 + }, + "https://github.com/MiddleKD/ComfyUI-mem-safe-wrapper": { + "stars": 4, + "last_update": "2024-08-01 06:47:24", + "author_account_age_days": 965 + }, + "https://github.com/MiddleKD/ComfyUI-productfix": { + "stars": 12, + "last_update": "2025-05-12 05:00:24", + "author_account_age_days": 965 + }, + "https://github.com/MieMieeeee/ComfyUI-CaptionThis": { + "stars": 93, + "last_update": "2025-07-04 11:35:57", + "author_account_age_days": 1992 + }, + "https://github.com/MieMieeeee/ComfyUI-MieNodes": { + "stars": 111, + "last_update": "2025-08-31 08:26:14", + "author_account_age_days": 1992 + }, + "https://github.com/MieMieeeee/ComfyUI-MinioConnector": { + "stars": 3, + "last_update": "2025-03-21 09:09:09", + "author_account_age_days": 1992 + }, + "https://github.com/MijnSpam/ComfyUI_SwapAndScale": { + "stars": 0, + "last_update": "2025-05-31 09:27:10", + "author_account_age_days": 983 + }, + "https://github.com/MijnSpam/UploadToPushOver": { + "stars": 1, + "last_update": "2025-05-31 09:32:38", + "author_account_age_days": 983 + }, + "https://github.com/MilitantHitchhiker/MilitantHitchhiker-SwitchbladePack": { + "stars": 3, + "last_update": "2025-08-07 05:27:05", + "author_account_age_days": 495 + }, + "https://github.com/Mintbeer96/ComfyUI-KerasOCR": { + "stars": 4, + "last_update": "2024-07-24 16:39:41", + "author_account_age_days": 3612 + }, + "https://github.com/MinusZoneAI/ComfyUI-CogVideoX-MZ": { + "stars": 106, + "last_update": "2024-10-30 10:52:42", + "author_account_age_days": 500 + }, + "https://github.com/MinusZoneAI/ComfyUI-Flux1Quantize-MZ": { + "stars": 12, + "last_update": "2024-08-14 04:01:10", + "author_account_age_days": 500 + }, + "https://github.com/MinusZoneAI/ComfyUI-FluxExt-MZ": { + "stars": 338, + "last_update": "2024-08-16 18:57:07", + "author_account_age_days": 500 + }, + "https://github.com/MinusZoneAI/ComfyUI-Kolors-MZ": { + "stars": 589, + "last_update": "2025-03-31 02:51:00", + "author_account_age_days": 500 + }, + "https://github.com/MinusZoneAI/ComfyUI-Prompt-MZ": { + "stars": 119, + "last_update": "2025-08-14 07:01:19", + "author_account_age_days": 500 + }, + "https://github.com/MinusZoneAI/ComfyUI-StylizePhoto-MZ": { + "stars": 18, + "last_update": "2024-05-23 01:13:32", + "author_account_age_days": 500 + }, + "https://github.com/MinusZoneAI/ComfyUI-TrainTools-MZ": { + "stars": 60, + "last_update": "2025-02-24 06:08:49", + "author_account_age_days": 500 + }, + "https://github.com/Miosp/ComfyUI-FBCNN": { + "stars": 31, + "last_update": "2025-02-24 20:53:32", + "author_account_age_days": 2951 + }, + "https://github.com/MithrilMan/ComfyUI-MithrilNodes": { + "stars": 0, + "last_update": "2025-07-21 22:39:24", + "author_account_age_days": 4419 + }, + "https://github.com/MitoshiroPJ/ComfyUI_save_image_sdli": { + "stars": 1, + "last_update": "2025-07-04 12:59:35", + "author_account_age_days": 4403 + }, + "https://github.com/MitoshiroPJ/comfyui_nearsighted_attention": { + "stars": 2, + "last_update": "2025-07-04 12:30:55", + "author_account_age_days": 4403 + }, + "https://github.com/Miyuutsu/comfyui-save-vpred": { + "stars": 4, + "last_update": "2024-12-15 22:29:47", + "author_account_age_days": 3359 + }, + "https://github.com/MohammadAboulEla/ComfyUI-iTools": { + "stars": 180, + "last_update": "2025-08-29 13:04:55", + "author_account_age_days": 1461 + }, + "https://github.com/MokkaBoss1/ComfyUI_Mokkaboss1": { + "stars": 16, + "last_update": "2025-06-08 11:06:37", + "author_account_age_days": 814 + }, + "https://github.com/MontagenAI/ComfyUI-Montagen": { + "stars": 22, + "last_update": "2025-05-29 10:43:37", + "author_account_age_days": 265 + }, + "https://github.com/MoonGoblinDev/Civicomfy": { + "stars": 54, + "last_update": "2025-08-13 05:30:44", + "author_account_age_days": 3238 + }, + "https://github.com/MoonHugo/ComfyUI-BAGEL-Hugo": { + "stars": 3, + "last_update": "2025-06-04 08:48:11", + "author_account_age_days": 364 + }, + "https://github.com/MoonHugo/ComfyUI-BiRefNet-Hugo": { + "stars": 330, + "last_update": "2025-05-25 15:37:49", + "author_account_age_days": 364 + }, + "https://github.com/MoonHugo/ComfyUI-FFmpeg": { + "stars": 101, + "last_update": "2025-08-15 02:03:41", + "author_account_age_days": 364 + }, + "https://github.com/MoonHugo/ComfyUI-StableAudioOpen": { + "stars": 27, + "last_update": "2024-10-18 04:12:04", + "author_account_age_days": 364 + }, + "https://github.com/Moooonet/ComfyUI-Align": { + "stars": 163, + "last_update": "2025-05-12 09:40:03", + "author_account_age_days": 422 + }, + "https://github.com/MovieLabs/comfyui-movielabs-util": { + "stars": 1, + "last_update": "2025-07-12 01:02:15", + "author_account_age_days": 4829 + }, + "https://github.com/MrForExample/ComfyUI-3D-Pack": { + "stars": 3344, + "last_update": "2025-08-07 10:48:28", + "author_account_age_days": 1996 + }, + "https://github.com/MrForExample/ComfyUI-AnimateAnyone-Evolved": { + "stars": 553, + "last_update": "2024-06-14 12:02:47", + "author_account_age_days": 1996 + }, + "https://github.com/MrSamSeen/ComfyUI_SSBeforeAfterNode": { + "stars": 1, + "last_update": "2025-05-25 01:55:29", + "author_account_age_days": 4026 + }, + "https://github.com/MrSamSeen/ComfyUI_SSStereoscope": { + "stars": 32, + "last_update": "2025-04-27 11:44:51", + "author_account_age_days": 4026 + }, + "https://github.com/Munkyfoot/ComfyUI-TextOverlay": { + "stars": 41, + "last_update": "2025-06-07 04:46:39", + "author_account_age_days": 3480 + }, + "https://github.com/MushroomFleet/ComfyUI-DJZ-POML": { + "stars": 0, + "last_update": "2025-08-31 19:23:11", + "author_account_age_days": 4156 + }, + "https://github.com/MuziekMagie/ComfyUI-Matchering": { + "stars": 52, + "last_update": "2024-07-23 14:39:52", + "author_account_age_days": 407 + }, + "https://github.com/MzMaXaM/ComfyUi-MzMaXaM": { + "stars": 12, + "last_update": "2025-06-01 16:34:55", + "author_account_age_days": 2173 + }, + "https://github.com/N3rd00d/ComfyUI-Paint3D-Nodes": { + "stars": 70, + "last_update": "2024-08-19 12:52:20", + "author_account_age_days": 512 + }, + "https://github.com/NHLStenden/ComfyUI-ImageBag": { + "stars": 0, + "last_update": "2025-08-18 11:07:43", + "author_account_age_days": 2689 + }, + "https://github.com/NMWave/ComfyUI-Nader-Tagging": { + "stars": 4, + "last_update": "2025-04-09 01:07:33", + "author_account_age_days": 1013 + }, + "https://github.com/NVIDIAGameWorks/ComfyUI-RTX-Remix": { + "stars": 46, + "last_update": "2025-07-25 21:02:15", + "author_account_age_days": 4115 + }, + "https://github.com/NakamuraShippo/ComfyUI-NS-ManySliders": { + "stars": 6, + "last_update": "2024-11-03 02:48:52", + "author_account_age_days": 797 + }, + "https://github.com/NakamuraShippo/ComfyUI-NS-PromptList": { + "stars": 8, + "last_update": "2025-08-01 04:07:09", + "author_account_age_days": 797 + }, + "https://github.com/NakamuraShippo/ComfyUI-NS-Util": { + "stars": 2, + "last_update": "2025-08-16 12:10:47", + "author_account_age_days": 797 + }, + "https://github.com/NeoDroleDeGueule/comfyui-image-mixer": { + "stars": 0, + "last_update": "2025-06-11 16:54:15", + "author_account_age_days": 558 + }, + "https://github.com/NeoGriever/ComfyUI-NeoGriever": { + "stars": 2, + "last_update": "2024-12-12 02:55:40", + "author_account_age_days": 4724 + }, + "https://github.com/NeonLightning/neonllama": { + "stars": 1, + "last_update": "2025-06-20 22:49:39", + "author_account_age_days": 4651 + }, + "https://github.com/Nestorchik/NStor-ComfyUI-Translation": { + "stars": 2, + "last_update": "2024-06-14 10:25:32", + "author_account_age_days": 1759 + }, + "https://github.com/NeuralSamurAI/ComfyUI-Dimensional-Latent-Perlin": { + "stars": 34, + "last_update": "2024-08-06 19:59:25", + "author_account_age_days": 528 + }, + "https://github.com/NeuralSamurAI/ComfyUI-FluxPseudoNegativePrompt": { + "stars": 7, + "last_update": "2024-08-14 02:16:43", + "author_account_age_days": 528 + }, + "https://github.com/NeuralSamurAI/ComfyUI-PromptJSON": { + "stars": 4, + "last_update": "2024-08-11 18:10:36", + "author_account_age_days": 528 + }, + "https://github.com/NeuralSamurAI/Comfyui-Superprompt-Unofficial": { + "stars": 68, + "last_update": "2024-05-23 00:22:08", + "author_account_age_days": 528 + }, + "https://github.com/NeuroSenko/ComfyUI_LLM_SDXL_Adapter": { + "stars": 26, + "last_update": "2025-08-16 20:42:00", + "author_account_age_days": 1042 + }, + "https://github.com/Nevysha/ComfyUI-nevysha-top-menu": { + "stars": 5, + "last_update": "2024-05-23 00:17:31", + "author_account_age_days": 961 + }, + "https://github.com/NewNoviceChen/ComfyUI-XingLiu": { + "stars": 2, + "last_update": "2025-08-07 08:34:08", + "author_account_age_days": 1380 + }, + "https://github.com/NguynHungNguyen/Segment-Bedroom-Interior": { + "stars": 8, + "last_update": "2024-10-17 13:22:19", + "author_account_age_days": 1093 + }, + "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite": { + "stars": 15, + "last_update": "2024-05-22 20:34:46", + "author_account_age_days": 5585 + }, + "https://github.com/Nikosis/ComfyUI-Nikosis-Nodes": { + "stars": 1, + "last_update": "2025-04-10 00:32:13", + "author_account_age_days": 2711 + }, + "https://github.com/Nikosis/ComfyUI-Nikosis-Preprocessors": { + "stars": 2, + "last_update": "2025-04-08 12:28:17", + "author_account_age_days": 2711 + }, + "https://github.com/NimaNzrii/comfyui-photoshop": { + "stars": 1219, + "last_update": "2025-05-17 18:02:00", + "author_account_age_days": 679 + }, + "https://github.com/NimaNzrii/comfyui-popup_preview": { + "stars": 36, + "last_update": "2024-05-22 22:12:04", + "author_account_age_days": 679 + }, + "https://github.com/Niutonian/ComfyUi-NoodleWebcam": { + "stars": 31, + "last_update": "2024-05-22 21:30:40", + "author_account_age_days": 1477 + }, + "https://github.com/Njbx/ComfyUI-LTX13B-Blockswap": { + "stars": 7, + "last_update": "2025-05-07 18:47:45", + "author_account_age_days": 1638 + }, + "https://github.com/Nlar/ComfyUI_CartoonSegmentation": { + "stars": 16, + "last_update": "2024-05-22 23:15:37", + "author_account_age_days": 4266 + }, + "https://github.com/Nojahhh/ComfyUI_GLM4_Wrapper": { + "stars": 23, + "last_update": "2025-07-20 12:17:01", + "author_account_age_days": 3255 + }, + "https://github.com/NotHarroweD/Harronode": { + "stars": 5, + "last_update": "2024-05-22 22:18:29", + "author_account_age_days": 2418 + }, + "https://github.com/Nourepide/ComfyUI-Allor": { + "stars": 268, + "last_update": "2024-05-22 18:11:17", + "author_account_age_days": 3281 + }, + "https://github.com/Nuked88/ComfyUI-N-Nodes": { + "stars": 228, + "last_update": "2024-08-15 21:07:32", + "author_account_age_days": 4914 + }, + "https://github.com/Nuked88/ComfyUI-N-Sidebar": { + "stars": 561, + "last_update": "2025-07-06 11:37:45", + "author_account_age_days": 4914 + }, + "https://github.com/NyaFuP/ComfyUI_Preview_Selector": { + "stars": 1, + "last_update": "2025-08-06 06:08:46", + "author_account_age_days": 1748 + }, + "https://github.com/NyaamZ/ComfyUI-ImageGallery-ED": { + "stars": 7, + "last_update": "2025-08-30 08:57:30", + "author_account_age_days": 2552 + }, + "https://github.com/NyaamZ/efficiency-nodes-ED": { + "stars": 33, + "last_update": "2025-09-01 04:01:40", + "author_account_age_days": 2552 + }, + "https://github.com/Off-Live/ComfyUI-off-suite": { + "stars": 0, + "last_update": "2024-06-14 12:02:25", + "author_account_age_days": 1607 + }, + "https://github.com/OliverCrosby/Comfyui-Minimap": { + "stars": 98, + "last_update": "2024-08-24 14:10:43", + "author_account_age_days": 2561 + }, + "https://github.com/OneThingAI/ComfyUI_Onething_CV": { + "stars": 1, + "last_update": "2025-07-25 03:17:16", + "author_account_age_days": 390 + }, + "https://github.com/OneThingAI/ComfyUI_Onething_Image": { + "stars": 1, + "last_update": "2025-08-08 02:56:39", + "author_account_age_days": 390 + }, + "https://github.com/Onionman61/ComfyUI-ModelScope-Kontext": { + "stars": 3, + "last_update": "2025-08-21 02:43:15", + "author_account_age_days": 464 + }, + "https://github.com/OpalSky-AI/OpalSky_Nodes": { + "stars": 2, + "last_update": "2024-10-27 20:13:40", + "author_account_age_days": 2170 + }, + "https://github.com/OpenArt-AI/ComfyUI-Assistant": { + "stars": 21, + "last_update": "2024-05-22 22:16:57", + "author_account_age_days": 1210 + }, + "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex": { + "stars": 1, + "last_update": "2024-08-14 04:00:49", + "author_account_age_days": 2968 + }, + "https://github.com/PCMonsterx/ComfyUI-CSV-Loader": { + "stars": 16, + "last_update": "2025-03-14 12:21:40", + "author_account_age_days": 2100 + }, + "https://github.com/PICOPON/ComfyUI-API-OpenAI-Node": { + "stars": 0, + "last_update": "2025-08-05 06:27:09", + "author_account_age_days": 2323 + }, + "https://github.com/Pablerdo/ComfyUI-MultiCutAndDrag": { + "stars": 3, + "last_update": "2025-03-22 01:25:55", + "author_account_age_days": 3235 + }, + "https://github.com/Pablerdo/ComfyUI-ResizeZeptaPayload": { + "stars": 1, + "last_update": "2025-03-29 00:39:01", + "author_account_age_days": 3235 + }, + "https://github.com/Pablerdo/ComfyUI-StableVirtualCameraWrapper": { + "stars": 1, + "last_update": "2025-04-19 09:40:38", + "author_account_age_days": 3235 + }, + "https://github.com/Pablerdo/ComfyUI-ZeptaframePromptMerger": { + "stars": 1, + "last_update": "2025-03-21 17:42:55", + "author_account_age_days": 3235 + }, + "https://github.com/PanicTitan/ComfyUI-Fooocus-V2-Expansion": { + "stars": 11, + "last_update": "2025-05-09 22:51:17", + "author_account_age_days": 1920 + }, + "https://github.com/PanicTitan/ComfyUI-Gallery": { + "stars": 60, + "last_update": "2025-07-10 23:49:50", + "author_account_age_days": 1920 + }, + "https://github.com/Parameshvadivel/ComfyUI-SVGview": { + "stars": 1, + "last_update": "2024-07-31 13:40:33", + "author_account_age_days": 3263 + }, + "https://github.com/ParisNeo/lollms_nodes_suite": { + "stars": 11, + "last_update": "2025-03-12 07:36:41", + "author_account_age_days": 5204 + }, + "https://github.com/ParmanBabra/ComfyUI-Malefish-Custom-Scripts": { + "stars": 0, + "last_update": "2024-05-22 21:26:35", + "author_account_age_days": 4078 + }, + "https://github.com/PauldeLavallaz/comfyui_claude_prompt_generator": { + "stars": 0, + "last_update": "2025-03-18 17:38:28", + "author_account_age_days": 2278 + }, + "https://github.com/PenguinTeo/Comfyui-GeminiBanana": { + "stars": 6, + "last_update": "2025-09-02 09:06:23", + "author_account_age_days": 409 + }, + "https://github.com/PenguinTeo/Comfyui-TextEditor-Penguin": { + "stars": 1, + "last_update": "2025-06-04 14:38:13", + "author_account_age_days": 409 + }, + "https://github.com/Pfaeff/pfaeff-comfyui": { + "stars": 22, + "last_update": "2024-05-22 18:21:10", + "author_account_age_days": 3642 + }, + "https://github.com/Phando/ComfyUI-PhandoNodes": { + "stars": 0, + "last_update": "2024-09-05 16:12:24", + "author_account_age_days": 5660 + }, + "https://github.com/Pheat-AI/Remade_nodes": { + "stars": 4, + "last_update": "2024-10-18 00:04:58", + "author_account_age_days": 468 + }, + "https://github.com/PiggyDance/ComfyUI_OpenCV": { + "stars": 0, + "last_update": "2025-03-24 10:02:49", + "author_account_age_days": 2822 + }, + "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-SaveMP3": { + "stars": 0, + "last_update": "2025-06-01 16:35:20", + "author_account_age_days": 324 + }, + "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-UI": { + "stars": 0, + "last_update": "2025-06-05 19:20:04", + "author_account_age_days": 324 + }, + "https://github.com/Pirog17000/Pirogs-Nodes": { + "stars": 3, + "last_update": "2025-08-31 19:41:40", + "author_account_age_days": 4647 + }, + "https://github.com/PixelFunAI/ComfyUI_PixelFun": { + "stars": 3, + "last_update": "2025-01-20 05:44:54", + "author_account_age_days": 225 + }, + "https://github.com/PixelML/ComfyUI-PixelML-CustomNodes": { + "stars": 0, + "last_update": "2025-01-20 06:40:21", + "author_account_age_days": 546 + }, + "https://github.com/PnthrLeo/comfyUI-PL-data-tools": { + "stars": 1, + "last_update": "2024-12-03 13:39:28", + "author_account_age_days": 2986 + }, + "https://github.com/Poseidon-fan/ComfyUI-RabbitMQ-Publisher": { + "stars": 2, + "last_update": "2024-11-07 08:59:23", + "author_account_age_days": 1017 + }, + "https://github.com/Positliver/comfyui-zegr": { + "stars": 1, + "last_update": "2025-01-26 11:51:59", + "author_account_age_days": 3827 + }, + "https://github.com/PowerHouseMan/ComfyUI-AdvancedLivePortrait": { + "stars": 2491, + "last_update": "2024-08-21 06:14:24", + "author_account_age_days": 398 + }, + "https://github.com/PressWagon/ComfyUI-StringsAndThings": { + "stars": 3, + "last_update": "2025-05-18 12:01:37", + "author_account_age_days": 260 + }, + "https://github.com/ProGamerGov/ComfyUI_preview360panorama": { + "stars": 67, + "last_update": "2025-05-25 19:26:43", + "author_account_age_days": 3877 + }, + "https://github.com/ProGamerGov/ComfyUI_pytorch360convert": { + "stars": 17, + "last_update": "2025-08-29 23:29:57", + "author_account_age_days": 3877 + }, + "https://github.com/PrunaAI/ComfyUI_pruna": { + "stars": 64, + "last_update": "2025-07-10 11:12:37", + "author_account_age_days": 1084 + }, + "https://github.com/Pseudotools/Pseudocomfy": { + "stars": 1, + "last_update": "2025-08-22 20:49:41", + "author_account_age_days": 705 + }, + "https://github.com/Pun0110/ComfyUI-CSV-Styler": { + "stars": 1, + "last_update": "2025-08-08 15:35:29", + "author_account_age_days": 1477 + }, + "https://github.com/Q-Bug4/Comfyui-Qb-DateNodes": { + "stars": 3, + "last_update": "2025-07-14 11:37:31", + "author_account_age_days": 2369 + }, + "https://github.com/Q-Bug4/Comfyui-Simple-Json-Node": { + "stars": 7, + "last_update": "2025-03-27 12:51:03", + "author_account_age_days": 2369 + }, + "https://github.com/Q-Bug4/comfyui-qbug-batch": { + "stars": 2, + "last_update": "2025-04-13 03:05:36", + "author_account_age_days": 2369 + }, + "https://github.com/QaisMalkawi/ComfyUI-QaisHelper": { + "stars": 2, + "last_update": "2024-05-23 20:29:30", + "author_account_age_days": 1685 + }, + "https://github.com/QijiTec/ComfyUI-RED-UNO": { + "stars": 25, + "last_update": "2025-04-21 01:07:24", + "author_account_age_days": 898 + }, + "https://github.com/R5-Revo/llm-node-comfyui": { + "stars": 6, + "last_update": "2025-05-24 03:55:35", + "author_account_age_days": 233 + }, + "https://github.com/RUiNtheExtinct/comfyui-save-file-extended": { + "stars": 1, + "last_update": "2025-09-02 04:05:25", + "author_account_age_days": 526 + }, + "https://github.com/Raapys/ComfyUI-LatentGC_Aggressive": { + "stars": 4, + "last_update": "2024-08-12 15:55:42", + "author_account_age_days": 4367 + }, + "https://github.com/RainyN0077/ComfyUI-PromptSE": { + "stars": 9, + "last_update": "2025-08-15 13:12:09", + "author_account_age_days": 225 + }, + "https://github.com/RamonGuthrie/ComfyUI-RBG-ImageStitchPlus": { + "stars": 19, + "last_update": "2025-08-06 08:34:03", + "author_account_age_days": 596 + }, + "https://github.com/Raykosan/ComfyUI_RS-SaturationNode": { + "stars": 8, + "last_update": "2025-04-12 10:38:46", + "author_account_age_days": 1815 + }, + "https://github.com/Raykosan/ComfyUI_RaykoStudio": { + "stars": 9, + "last_update": "2025-08-12 08:33:06", + "author_account_age_days": 1815 + }, + "https://github.com/RaymondProduction/comfyui-zerna-pack": { + "stars": 0, + "last_update": "2025-03-26 16:10:15", + "author_account_age_days": 3361 + }, + "https://github.com/ReBeating/ComfyUI-Artist-Selector": { + "stars": 1, + "last_update": "2025-02-10 15:39:41", + "author_account_age_days": 1813 + }, + "https://github.com/RegulusAlpha/ComfyUI-DynPromptSimplified": { + "stars": 0, + "last_update": "2025-08-24 22:06:16", + "author_account_age_days": 3289 + }, + "https://github.com/ReinerBforartists/comfyui_auto_prompt_schedule": { + "stars": 0, + "last_update": "2025-08-24 09:00:45", + "author_account_age_days": 3663 + }, + "https://github.com/ReinerBforartists/comfyui_text_line_combine": { + "stars": 0, + "last_update": "2025-08-23 10:59:19", + "author_account_age_days": 3663 + }, + "https://github.com/Reithan/negative_rejection_steering": { + "stars": 11, + "last_update": "2025-08-01 06:23:09", + "author_account_age_days": 4139 + }, + "https://github.com/RenderRift/ComfyUI-RenderRiftNodes": { + "stars": 7, + "last_update": "2024-05-22 22:16:41", + "author_account_age_days": 621 + }, + "https://github.com/RhizoNymph/ComfyUI-CLIPSlider": { + "stars": 9, + "last_update": "2024-09-07 19:47:02", + "author_account_age_days": 1602 + }, + "https://github.com/RhizoNymph/ComfyUI-ColorWheel": { + "stars": 1, + "last_update": "2024-10-13 06:26:51", + "author_account_age_days": 1602 + }, + "https://github.com/RhizoNymph/ComfyUI-Latte": { + "stars": 3, + "last_update": "2024-08-11 07:25:04", + "author_account_age_days": 1602 + }, + "https://github.com/RiceRound/ComfyUI_CryptoCat": { + "stars": 93, + "last_update": "2025-06-19 04:14:31", + "author_account_age_days": 339 + }, + "https://github.com/RiceRound/ComfyUI_RiceRound": { + "stars": 18, + "last_update": "2025-03-18 07:31:16", + "author_account_age_days": 339 + }, + "https://github.com/Rinsanga1/comfyui-florence2xy": { + "stars": 0, + "last_update": "2025-06-25 05:42:46", + "author_account_age_days": 586 + }, + "https://github.com/Rizzlord/ComfyUI-RizzNodes": { + "stars": 1, + "last_update": "2025-09-01 12:22:17", + "author_account_age_days": 1864 + }, + "https://github.com/Rocky-Lee-001/ComfyUI_SZtools": { + "stars": 2, + "last_update": "2025-07-17 02:14:52", + "author_account_age_days": 891 + }, + "https://github.com/RodrigoSKohl/ComfyUI-Panoramic-ImgStitcher": { + "stars": 8, + "last_update": "2025-06-09 23:34:07", + "author_account_age_days": 1183 + }, + "https://github.com/RodrigoSKohl/InteriorDesign-for-ComfyUI": { + "stars": 10, + "last_update": "2025-08-07 05:37:43", + "author_account_age_days": 1183 + }, + "https://github.com/RodrigoSKohl/comfyui-tryoff-anyone": { + "stars": 22, + "last_update": "2025-04-14 03:36:22", + "author_account_age_days": 1183 + }, + "https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control": { + "stars": 22, + "last_update": "2025-03-27 17:57:44", + "author_account_age_days": 1816 + }, + "https://github.com/Ron-Digital/ComfyUI-SceneGenerator": { + "stars": 3, + "last_update": "2024-06-28 19:36:30", + "author_account_age_days": 1364 + }, + "https://github.com/Runware/ComfyUI-Runware": { + "stars": 113, + "last_update": "2025-06-18 12:05:09", + "author_account_age_days": 635 + }, + "https://github.com/Ryuukeisyou/ComfyUI-SyncTalk": { + "stars": 39, + "last_update": "2024-09-12 11:54:59", + "author_account_age_days": 2848 + }, + "https://github.com/Ryuukeisyou/comfyui_face_parsing": { + "stars": 177, + "last_update": "2025-02-18 09:22:52", + "author_account_age_days": 2848 + }, + "https://github.com/Ryuukeisyou/comfyui_io_helpers": { + "stars": 2, + "last_update": "2024-07-13 13:10:10", + "author_account_age_days": 2848 + }, + "https://github.com/S4MUEL-404/ComfyUI-Prepack": { + "stars": 0, + "last_update": "2025-09-02 12:41:30", + "author_account_age_days": 3522 + }, + "https://github.com/S4MUEL-404/ComfyUI-S4Motion": { + "stars": 1, + "last_update": "2025-08-10 13:40:48", + "author_account_age_days": 3522 + }, + "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Image": { + "stars": 2, + "last_update": "2025-08-10 13:29:01", + "author_account_age_days": 3522 + }, + "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Text": { + "stars": 1, + "last_update": "2025-08-12 15:29:12", + "author_account_age_days": 3522 + }, + "https://github.com/SEkINVR/ComfyUI-SaveAs": { + "stars": 8, + "last_update": "2024-08-19 01:06:16", + "author_account_age_days": 1092 + }, + "https://github.com/SKBv0/ComfyUI_SKBundle": { + "stars": 81, + "last_update": "2025-08-14 14:55:48", + "author_account_age_days": 1991 + }, + "https://github.com/SLAPaper/ComfyUI-Image-Selector": { + "stars": 98, + "last_update": "2025-03-16 12:13:46", + "author_account_age_days": 4132 + }, + "https://github.com/SLAPaper/StableDiffusion-dpmpp_2m_alt-Sampler": { + "stars": 13, + "last_update": "2025-03-16 12:13:59", + "author_account_age_days": 4132 + }, + "https://github.com/SOELexicon/ComfyUI-LexMSDBNodes": { + "stars": 4, + "last_update": "2025-03-12 00:17:50", + "author_account_age_days": 4518 + }, + "https://github.com/SOELexicon/ComfyUI-LexTools": { + "stars": 30, + "last_update": "2025-03-28 10:50:35", + "author_account_age_days": 4518 + }, + "https://github.com/SS-snap/ComfyUI-Ad_scheduler": { + "stars": 6, + "last_update": "2025-04-25 04:53:31", + "author_account_age_days": 735 + }, + "https://github.com/SS-snap/ComfyUI-LBW_flux": { + "stars": 5, + "last_update": "2025-04-25 04:47:47", + "author_account_age_days": 735 + }, + "https://github.com/SS-snap/ComfyUI-Snap_Processing": { + "stars": 62, + "last_update": "2025-04-25 04:54:44", + "author_account_age_days": 735 + }, + "https://github.com/SS-snap/Comfyui_SSsnap_pose-Remapping": { + "stars": 34, + "last_update": "2025-07-25 09:49:47", + "author_account_age_days": 735 + }, + "https://github.com/SXQBW/ComfyUI-Qwen": { + "stars": 9, + "last_update": "2025-05-26 05:01:41", + "author_account_age_days": 3227 + }, + "https://github.com/SXQBW/ComfyUI-Qwen-Omni": { + "stars": 28, + "last_update": "2025-06-08 07:53:11", + "author_account_age_days": 3227 + }, + "https://github.com/SXQBW/ComfyUI-Qwen-VL": { + "stars": 9, + "last_update": "2025-05-26 06:11:20", + "author_account_age_days": 3227 + }, + "https://github.com/Saganaki22/ComfyUI-dotWaveform": { + "stars": 10, + "last_update": "2025-08-30 19:18:36", + "author_account_age_days": 1571 + }, + "https://github.com/SamKhoze/ComfyUI-DeepFuze": { + "stars": 430, + "last_update": "2025-08-15 03:14:39", + "author_account_age_days": 1878 + }, + "https://github.com/SamTyurenkov/comfyui-vace-preprocessors": { + "stars": 0, + "last_update": "2025-07-23 09:56:07", + "author_account_age_days": 3397 + }, + "https://github.com/SamTyurenkov/comfyui_chatgpt": { + "stars": 0, + "last_update": "2025-07-28 11:28:01", + "author_account_age_days": 3397 + }, + "https://github.com/San4itos/ComfyUI-Save-Images-as-Video": { + "stars": 1, + "last_update": "2025-08-31 19:56:05", + "author_account_age_days": 2016 + }, + "https://github.com/SanDiegoDude/ComfyUI-DeepStereo": { + "stars": 3, + "last_update": "2025-05-26 22:46:39", + "author_account_age_days": 1066 + }, + "https://github.com/SanDiegoDude/ComfyUI-Kontext-API": { + "stars": 8, + "last_update": "2025-06-18 16:41:48", + "author_account_age_days": 1066 + }, + "https://github.com/SanDiegoDude/ComfyUI-SaveAudioMP3": { + "stars": 3, + "last_update": "2025-05-07 23:48:49", + "author_account_age_days": 1066 + }, + "https://github.com/Santodan/santodan-custom-nodes-comfyui": { + "stars": 2, + "last_update": "2025-07-15 09:17:42", + "author_account_age_days": 3130 + }, + "https://github.com/Saquib764/omini-kontext": { + "stars": 374, + "last_update": "2025-09-01 16:42:36", + "author_account_age_days": 4911 + }, + "https://github.com/SaturMars/ComfyUI-NVVFR": { + "stars": 0, + "last_update": "2025-08-05 05:39:42", + "author_account_age_days": 573 + }, + "https://github.com/SaturMars/ComfyUI-QwenImageLoraConverter": { + "stars": 23, + "last_update": "2025-08-09 17:55:04", + "author_account_age_days": 573 + }, + "https://github.com/SayanoAI/Comfy-RVC": { + "stars": 23, + "last_update": "2024-10-09 04:08:31", + "author_account_age_days": 3038 + }, + "https://github.com/Sayene/comfyui-base64-to-image-size": { + "stars": 0, + "last_update": "2025-05-15 12:33:33", + "author_account_age_days": 4116 + }, + "https://github.com/Scholar01/ComfyUI-Keyframe": { + "stars": 17, + "last_update": "2025-01-22 04:09:29", + "author_account_age_days": 3631 + }, + "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader": { + "stars": 18, + "last_update": "2024-08-26 14:51:47", + "author_account_age_days": 1545 + }, + "https://github.com/ScreamingHawk/comfyui-ollama-prompt-encode": { + "stars": 14, + "last_update": "2024-11-29 21:51:05", + "author_account_age_days": 4941 + }, + "https://github.com/SeaArtLab/ComfyUI-Long-CLIP": { + "stars": 160, + "last_update": "2025-03-08 04:16:32", + "author_account_age_days": 512 + }, + "https://github.com/SeanScripts/ComfyUI-PixtralLlamaMolmoVision": { + "stars": 77, + "last_update": "2025-01-31 09:01:23", + "author_account_age_days": 1955 + }, + "https://github.com/SeanScripts/ComfyUI-Unload-Model": { + "stars": 57, + "last_update": "2025-06-13 04:22:23", + "author_account_age_days": 1955 + }, + "https://github.com/SeargeDP/ComfyUI_Searge_LLM": { + "stars": 116, + "last_update": "2024-09-04 09:04:18", + "author_account_age_days": 4606 + }, + "https://github.com/SeargeDP/SeargeSDXL": { + "stars": 852, + "last_update": "2024-05-22 00:28:26", + "author_account_age_days": 4606 + }, + "https://github.com/Sekiun/ComfyUI-WebpToPNGSequence": { + "stars": 3, + "last_update": "2025-04-15 12:40:47", + "author_account_age_days": 1907 + }, + "https://github.com/Semper-Sursum/HF-Flux-ComfyUI": { + "stars": 2, + "last_update": "2025-03-29 17:35:11", + "author_account_age_days": 224 + }, + "https://github.com/ServiceStack/comfy-asset-downloader": { + "stars": 8, + "last_update": "2025-05-08 16:21:02", + "author_account_age_days": 5320 + }, + "https://github.com/Shadetail/ComfyUI_Eagleshadow": { + "stars": 5, + "last_update": "2025-03-08 20:09:28", + "author_account_age_days": 3832 + }, + "https://github.com/Shakker-Labs/ComfyUI-IPAdapter-Flux": { + "stars": 432, + "last_update": "2025-06-22 08:50:25", + "author_account_age_days": 284 + }, + "https://github.com/Shannooty/ComfyUI-Timer-Nodes": { + "stars": 3, + "last_update": "2024-12-17 09:20:49", + "author_account_age_days": 1732 + }, + "https://github.com/Shellishack/comfyui-remote-media-loaders": { + "stars": 0, + "last_update": "2025-09-02 08:23:15", + "author_account_age_days": 2620 + }, + "https://github.com/SherryXieYuchen/ComfyUI-Image-Inpainting": { + "stars": 4, + "last_update": "2024-07-03 03:39:49", + "author_account_age_days": 550 + }, + "https://github.com/Shiba-2-shiba/ComfyUI-Magcache-for-SDXL": { + "stars": 7, + "last_update": "2025-06-29 14:25:52", + "author_account_age_days": 821 + }, + "https://github.com/Shiba-2-shiba/ComfyUI_DiffusionModel_fp8_converter": { + "stars": 25, + "last_update": "2025-02-18 07:36:09", + "author_account_age_days": 821 + }, + "https://github.com/Shiba-2-shiba/ComfyUI_FreeU_V2_timestepadd": { + "stars": 0, + "last_update": "2025-03-02 00:15:45", + "author_account_age_days": 821 + }, + "https://github.com/Shiba-2-shiba/comfyui-color-ascii-art-node": { + "stars": 4, + "last_update": "2025-06-13 08:51:55", + "author_account_age_days": 821 + }, + "https://github.com/Shibiko-AI/ShibikoAI-ComfyUI-Tools": { + "stars": 11, + "last_update": "2025-08-27 17:22:45", + "author_account_age_days": 837 + }, + "https://github.com/ShinChven/sc-comfy-nodes": { + "stars": 1, + "last_update": "2025-05-21 03:07:18", + "author_account_age_days": 4605 + }, + "https://github.com/ShmuelRonen/ComfyUI-Apply_Style_Model_Adjust": { + "stars": 9, + "last_update": "2024-11-23 03:57:20", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-AstralAnimator": { + "stars": 18, + "last_update": "2024-07-18 12:41:22", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-Audio_Quality_Enhancer": { + "stars": 14, + "last_update": "2025-05-11 20:53:31", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-CohernetVideoSampler": { + "stars": 17, + "last_update": "2024-12-23 10:54:08", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-DeepSeek_R1-Chat": { + "stars": 21, + "last_update": "2025-01-27 17:14:24", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-EmptyHunyuanLatent": { + "stars": 9, + "last_update": "2024-12-29 05:30:57", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-FramePackWrapper_Plus": { + "stars": 104, + "last_update": "2025-05-19 21:10:06", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-FreeMemory": { + "stars": 112, + "last_update": "2025-03-20 11:25:12", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-FreeVC_wrapper": { + "stars": 65, + "last_update": "2025-04-03 13:49:04", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-Gemini_Flash_2.0_Exp": { + "stars": 317, + "last_update": "2025-04-22 17:30:51", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-Gemini_TTS": { + "stars": 15, + "last_update": "2025-05-23 14:21:58", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-HiggsAudio_Wrapper": { + "stars": 24, + "last_update": "2025-07-26 17:23:13", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave": { + "stars": 19, + "last_update": "2025-02-05 19:26:18", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoStyler": { + "stars": 44, + "last_update": "2024-12-31 19:19:42", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-ImageMotionGuider": { + "stars": 42, + "last_update": "2024-12-27 11:19:59", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-Janus_pro_vision": { + "stars": 31, + "last_update": "2025-03-20 11:20:56", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-JoyHallo_wrapper": { + "stars": 8, + "last_update": "2025-03-20 11:24:21", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-LatentSyncWrapper": { + "stars": 888, + "last_update": "2025-06-14 12:30:27", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-NanoBanano": { + "stars": 13, + "last_update": "2025-08-27 12:38:13", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-Orpheus-TTS": { + "stars": 7, + "last_update": "2025-05-03 22:06:22", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-PS_Flatten_Image": { + "stars": 7, + "last_update": "2025-04-02 10:58:27", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-PixArt_XL": { + "stars": 3, + "last_update": "2025-03-20 11:23:20", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-SVDResizer": { + "stars": 3, + "last_update": "2025-03-09 04:33:26", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-ThinkSound_Wrapper": { + "stars": 15, + "last_update": "2025-07-24 15:03:22", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-Veo2-Experimental": { + "stars": 28, + "last_update": "2025-04-12 04:25:55", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-VideoUpscale_WithModel": { + "stars": 88, + "last_update": "2025-05-02 20:13:08", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI-WanVideoKsampler": { + "stars": 36, + "last_update": "2025-02-27 13:48:05", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI_ChatterBox_Voice": { + "stars": 18, + "last_update": "2025-06-04 18:50:40", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI_Flux_1.1_RAW_API": { + "stars": 57, + "last_update": "2025-03-20 11:21:27", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI_Gemini_Flash": { + "stars": 31, + "last_update": "2025-03-20 04:42:59", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI_Hedra": { + "stars": 3, + "last_update": "2025-05-04 16:41:02", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI_pixtral_large": { + "stars": 18, + "last_update": "2025-07-21 19:10:32", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI_pixtral_vision": { + "stars": 17, + "last_update": "2024-11-20 12:58:30", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/ComfyUI_wav2lip": { + "stars": 140, + "last_update": "2024-09-18 13:17:42", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/DJ_VideoAudioMixer": { + "stars": 2, + "last_update": "2025-04-04 16:06:49", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/FluxKontextCreator": { + "stars": 74, + "last_update": "2025-06-10 17:07:05", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/comfyui-openai_fm": { + "stars": 2, + "last_update": "2025-04-03 14:25:24", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/google_moogle": { + "stars": 5, + "last_update": "2025-03-27 19:59:35", + "author_account_age_days": 1640 + }, + "https://github.com/ShmuelRonen/multi-lora-stack": { + "stars": 3, + "last_update": "2025-08-04 10:42:16", + "author_account_age_days": 1640 + }, + "https://github.com/Shraknard/ComfyUI-Remover": { + "stars": 5, + "last_update": "2024-07-24 08:42:48", + "author_account_age_days": 2752 + }, + "https://github.com/ShunL12324/comfy-portal-endpoint": { + "stars": 2, + "last_update": "2025-05-17 05:43:21", + "author_account_age_days": 2973 + }, + "https://github.com/Siberpone/lazy-pony-prompter": { + "stars": 44, + "last_update": "2025-03-28 05:54:45", + "author_account_age_days": 887 + }, + "https://github.com/Siempreflaco/ComfyUI-NCNodes": { + "stars": 0, + "last_update": "2025-05-02 20:04:43", + "author_account_age_days": 1091 + }, + "https://github.com/Sieyalixnet/ComfyUI_Textarea_Loaders": { + "stars": 3, + "last_update": "2024-08-30 01:19:54", + "author_account_age_days": 2118 + }, + "https://github.com/SignalCha1n/comfyui-ComfySnap": { + "stars": 2, + "last_update": "2025-04-27 15:24:25", + "author_account_age_days": 144 + }, + "https://github.com/SijieMei/ComfyUI-promptHistory": { + "stars": 0, + "last_update": "2025-03-24 03:32:05", + "author_account_age_days": 2346 + }, + "https://github.com/SilverAndJade/comfyui-silver-nodes": { + "stars": 0, + "last_update": "2025-08-20 07:46:04", + "author_account_age_days": 3987 + }, + "https://github.com/Simlym/comfyui-prompt-helper": { + "stars": 2, + "last_update": "2025-07-31 16:30:02", + "author_account_age_days": 2617 + }, + "https://github.com/Sinphaltimus/comfyui_fedcoms_node_pack": { + "stars": 0, + "last_update": "2025-05-10 15:54:59", + "author_account_age_days": 2713 + }, + "https://github.com/SipherAGI/comfyui-animatediff": { + "stars": 740, + "last_update": "2024-05-22 18:16:43", + "author_account_age_days": 840 + }, + "https://github.com/SirWillance/FoW_Suite_LIGHT": { + "stars": 2, + "last_update": "2025-04-15 08:48:46", + "author_account_age_days": 213 + }, + "https://github.com/SlackinJack/asyncdiff_comfyui": { + "stars": 0, + "last_update": "2025-04-03 03:17:56", + "author_account_age_days": 2610 + }, + "https://github.com/SlackinJack/distrifuser_comfyui": { + "stars": 0, + "last_update": "2025-04-03 03:18:17", + "author_account_age_days": 2610 + }, + "https://github.com/SleeeepyZhou/ComfyUI-CNtranslator": { + "stars": 6, + "last_update": "2025-03-29 04:35:17", + "author_account_age_days": 1632 + }, + "https://github.com/Slickytail/ComfyUI-InstantX-IPAdapter-SD3": { + "stars": 65, + "last_update": "2025-03-27 12:47:27", + "author_account_age_days": 3997 + }, + "https://github.com/Slickytail/ComfyUI-RegionalAdaptiveSampling": { + "stars": 21, + "last_update": "2025-04-07 09:20:23", + "author_account_age_days": 3997 + }, + "https://github.com/Smirnov75/ComfyUI-mxToolkit": { + "stars": 253, + "last_update": "2025-05-07 11:44:27", + "author_account_age_days": 1947 + }, + "https://github.com/Smuzzies/comfyui_meme_maker": { + "stars": 1, + "last_update": "2024-07-05 22:01:41", + "author_account_age_days": 1126 + }, + "https://github.com/SoftMeng/ComfyUI-DeepCache-Fix": { + "stars": 15, + "last_update": "2024-07-25 13:09:00", + "author_account_age_days": 3959 + }, + "https://github.com/SoftMeng/ComfyUI-PIL": { + "stars": 7, + "last_update": "2024-10-13 10:02:17", + "author_account_age_days": 3959 + }, + "https://github.com/SoftMeng/ComfyUI_ImageToText": { + "stars": 14, + "last_update": "2024-06-14 08:08:36", + "author_account_age_days": 3959 + }, + "https://github.com/SoftMeng/ComfyUI_Mexx_Poster": { + "stars": 26, + "last_update": "2024-06-14 07:06:27", + "author_account_age_days": 3959 + }, + "https://github.com/SoftMeng/ComfyUI_Mexx_Styler": { + "stars": 24, + "last_update": "2024-06-14 07:09:03", + "author_account_age_days": 3959 + }, + "https://github.com/SongGuo11/ComfyUI-SaveAnything-SG11": { + "stars": 0, + "last_update": "2025-03-18 08:59:39", + "author_account_age_days": 272 + }, + "https://github.com/Sorcerio/MBM-Music-Visualizer": { + "stars": 31, + "last_update": "2024-05-23 01:09:18", + "author_account_age_days": 4682 + }, + "https://github.com/SozeInc/ComfyUI-Mobile": { + "stars": 0, + "last_update": "2024-08-22 03:12:11", + "author_account_age_days": 514 + }, + "https://github.com/SozeInc/ComfyUI_Soze": { + "stars": 6, + "last_update": "2025-08-29 23:09:12", + "author_account_age_days": 514 + }, + "https://github.com/SparknightLLC/ComfyUI-ConditionalInterrupt": { + "stars": 3, + "last_update": "2025-04-15 20:36:37", + "author_account_age_days": 387 + }, + "https://github.com/SparknightLLC/ComfyUI-GPENO": { + "stars": 68, + "last_update": "2025-04-15 20:29:05", + "author_account_age_days": 387 + }, + "https://github.com/SparknightLLC/ComfyUI-ImageAutosize": { + "stars": 0, + "last_update": "2025-05-23 19:44:54", + "author_account_age_days": 387 + }, + "https://github.com/SparknightLLC/ComfyUI-ImageAutotone": { + "stars": 17, + "last_update": "2025-04-15 20:35:55", + "author_account_age_days": 387 + }, + "https://github.com/SparknightLLC/ComfyUI-LatentClamp": { + "stars": 2, + "last_update": "2025-04-15 20:36:15", + "author_account_age_days": 387 + }, + "https://github.com/SparknightLLC/ComfyUI-MaskArbiter": { + "stars": 4, + "last_update": "2025-04-15 20:35:34", + "author_account_age_days": 387 + }, + "https://github.com/SparknightLLC/ComfyUI-WeightedRandomChoice": { + "stars": 0, + "last_update": "2025-04-22 00:31:50", + "author_account_age_days": 387 + }, + "https://github.com/SpenserCai/ComfyUI-FunAudioLLM": { + "stars": 86, + "last_update": "2024-11-27 09:22:05", + "author_account_age_days": 3150 + }, + "https://github.com/SshunWang/ComfyUI_CosyVoice": { + "stars": 15, + "last_update": "2025-02-05 23:48:10", + "author_account_age_days": 2377 + }, + "https://github.com/Stability-AI/ComfyUI-SAI_API": { + "stars": 61, + "last_update": "2025-03-04 12:11:12", + "author_account_age_days": 1278 + }, + "https://github.com/Stability-AI/stability-ComfyUI-nodes": { + "stars": 230, + "last_update": "2024-05-22 15:30:47", + "author_account_age_days": 1278 + }, + "https://github.com/StableLlama/ComfyUI-basic_data_handling": { + "stars": 15, + "last_update": "2025-08-31 19:27:10", + "author_account_age_days": 613 + }, + "https://github.com/StarAsh042/ComfyUI_RollingArtist": { + "stars": 0, + "last_update": "2025-05-05 21:26:43", + "author_account_age_days": 3443 + }, + "https://github.com/StarMagicAI/comfyui_tagger": { + "stars": 5, + "last_update": "2024-09-03 02:01:59", + "author_account_age_days": 3981 + }, + "https://github.com/Starnodes2024/ComfyUI_StarBetaNodes": { + "stars": 4, + "last_update": "2025-08-26 09:04:18", + "author_account_age_days": 437 + }, + "https://github.com/Starnodes2024/ComfyUI_StarNodes": { + "stars": 45, + "last_update": "2025-08-10 19:51:23", + "author_account_age_days": 437 + }, + "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": { + "stars": 125, + "last_update": "2024-06-14 08:12:12", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/ComfyUI_PCDMs": { + "stars": 7, + "last_update": "2024-05-22 23:21:14", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/ComfyUI_Seg_VITON": { + "stars": 219, + "last_update": "2024-05-22 23:20:17", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_CXH_DeepLX": { + "stars": 8, + "last_update": "2024-09-21 02:38:08", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_CXH_FluxLoraMerge": { + "stars": 25, + "last_update": "2024-12-26 06:56:07", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_CXH_Phi_3.5": { + "stars": 16, + "last_update": "2024-08-22 04:45:39", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_Gemini2": { + "stars": 16, + "last_update": "2024-12-12 09:42:42", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_joytag": { + "stars": 59, + "last_update": "2024-05-22 23:20:28", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_segformer_b2_clothes": { + "stars": 91, + "last_update": "2024-07-24 14:45:58", + "author_account_age_days": 3270 + }, + "https://github.com/Steudio/ComfyUI_Steudio": { + "stars": 87, + "last_update": "2025-07-13 18:57:26", + "author_account_age_days": 571 + }, + "https://github.com/Style-Mosaic/dino-x-comfyui-node": { + "stars": 1, + "last_update": "2025-01-28 21:40:18", + "author_account_age_days": 302 + }, + "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": { + "stars": 199, + "last_update": "2025-07-28 04:57:56", + "author_account_age_days": 524 + }, + "https://github.com/SuperMasterBlasterLaser/ComfyUI_YOLO_Classifiers": { + "stars": 1, + "last_update": "2025-03-29 13:16:05", + "author_account_age_days": 4013 + }, + "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes": { + "stars": 983, + "last_update": "2024-07-24 11:16:13", + "author_account_age_days": 2584 + }, + "https://github.com/SwissCore92/comfyui-telegram-suite": { + "stars": 1, + "last_update": "2025-08-22 15:28:40", + "author_account_age_days": 2473 + }, + "https://github.com/Sxela/ComfyWarp": { + "stars": 49, + "last_update": "2025-04-01 22:18:02", + "author_account_age_days": 3807 + }, + "https://github.com/SykkoAtHome/ComfyUI_FaceProcessor": { + "stars": 12, + "last_update": "2025-08-28 14:36:18", + "author_account_age_days": 831 + }, + "https://github.com/T-Ph525/ComfyUI-Underage-Filter": { + "stars": 0, + "last_update": "2025-05-30 12:10:57", + "author_account_age_days": 1371 + }, + "https://github.com/TFL-TFL/ComfyUI_Text_Translation": { + "stars": 94, + "last_update": "2025-05-25 02:27:01", + "author_account_age_days": 1977 + }, + "https://github.com/THtianhao/ComfyUI-FaceChain": { + "stars": 140, + "last_update": "2025-04-28 07:00:45", + "author_account_age_days": 4126 + }, + "https://github.com/THtianhao/ComfyUI-Portrait-Maker": { + "stars": 198, + "last_update": "2024-05-22 21:18:05", + "author_account_age_days": 4126 + }, + "https://github.com/TJ16th/comfyUI_TJ_NormalLighting": { + "stars": 152, + "last_update": "2024-05-23 00:25:37", + "author_account_age_days": 2970 + }, + "https://github.com/TKRLAB/ComfyUI_Prompt_List_JSON": { + "stars": 2, + "last_update": "2024-12-23 05:26:14", + "author_account_age_days": 555 + }, + "https://github.com/TMElyralab/Comfyui-MusePose": { + "stars": 416, + "last_update": "2024-07-31 06:21:52", + "author_account_age_days": 532 + }, + "https://github.com/TRI3D-LC/ComfyUI-MiroBoard": { + "stars": 4, + "last_update": "2024-11-21 07:15:20", + "author_account_age_days": 874 + }, + "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": { + "stars": 27, + "last_update": "2025-06-19 08:44:57", + "author_account_age_days": 874 + }, + "https://github.com/TTPlanetPig/Comfyui_Hunyuan3D": { + "stars": 28, + "last_update": "2024-11-10 16:59:42", + "author_account_age_days": 638 + }, + "https://github.com/TTPlanetPig/Comfyui_JC2": { + "stars": 211, + "last_update": "2025-05-21 16:25:36", + "author_account_age_days": 638 + }, + "https://github.com/TTPlanetPig/Comfyui_Object_Detect_QWen_VL": { + "stars": 124, + "last_update": "2025-06-24 15:16:20", + "author_account_age_days": 638 + }, + "https://github.com/TTPlanetPig/Comfyui_Object_Migration": { + "stars": 773, + "last_update": "2024-11-20 16:51:57", + "author_account_age_days": 638 + }, + "https://github.com/TTPlanetPig/Comfyui_TTP_CN_Preprocessor": { + "stars": 29, + "last_update": "2024-08-21 17:52:56", + "author_account_age_days": 638 + }, + "https://github.com/TTPlanetPig/Comfyui_TTP_Toolset": { + "stars": 752, + "last_update": "2025-06-15 11:21:35", + "author_account_age_days": 638 + }, + "https://github.com/TTPlanetPig/TTP_Comfyui_FramePack_SE": { + "stars": 44, + "last_update": "2025-04-25 11:36:15", + "author_account_age_days": 638 + }, + "https://github.com/TW-CUI/TW-CUI-Util": { + "stars": 1, + "last_update": "2024-08-14 01:49:13", + "author_account_age_days": 466 + }, + "https://github.com/TZOOTZ/ComfyUI-TZOOTZ_VHS": { + "stars": 3, + "last_update": "2025-06-04 10:19:49", + "author_account_age_days": 3484 + }, + "https://github.com/TaiTair/comfyui-simswap": { + "stars": 14, + "last_update": "2024-07-31 18:28:38", + "author_account_age_days": 4001 + }, + "https://github.com/Taithrah/ComfyUI_Fens_Simple_Nodes": { + "stars": 1, + "last_update": "2025-07-27 22:07:03", + "author_account_age_days": 4941 + }, + "https://github.com/Taremin/comfyui-keep-multiple-tabs": { + "stars": 5, + "last_update": "2025-02-25 15:53:35", + "author_account_age_days": 2650 + }, + "https://github.com/Taremin/comfyui-prompt-config": { + "stars": 0, + "last_update": "2025-02-28 03:53:16", + "author_account_age_days": 2650 + }, + "https://github.com/Taremin/comfyui-prompt-extranetworks": { + "stars": 7, + "last_update": "2025-03-04 07:49:21", + "author_account_age_days": 2650 + }, + "https://github.com/Taremin/comfyui-string-tools": { + "stars": 1, + "last_update": "2025-02-26 13:22:39", + "author_account_age_days": 2650 + }, + "https://github.com/Taremin/webui-monaco-prompt": { + "stars": 28, + "last_update": "2025-03-06 08:57:58", + "author_account_age_days": 2650 + }, + "https://github.com/TashaSkyUp/EternalKernelPytorchNodes": { + "stars": 1, + "last_update": "2025-06-22 19:16:21", + "author_account_age_days": 3599 + }, + "https://github.com/TeaCrab/ComfyUI-TeaNodes": { + "stars": 5, + "last_update": "2024-05-22 20:44:05", + "author_account_age_days": 3652 + }, + "https://github.com/TemryL/ComfyS3": { + "stars": 50, + "last_update": "2024-11-05 14:56:04", + "author_account_age_days": 1304 + }, + "https://github.com/TemryL/ComfyUI-IDM-VTON": { + "stars": 543, + "last_update": "2024-08-20 02:44:02", + "author_account_age_days": 1304 + }, + "https://github.com/Temult/TWanSigmaGraph": { + "stars": 8, + "last_update": "2025-04-17 09:39:00", + "author_account_age_days": 701 + }, + "https://github.com/TencentQQGYLab/ComfyUI-ELLA": { + "stars": 384, + "last_update": "2024-08-16 11:21:10", + "author_account_age_days": 533 + }, + "https://github.com/Tenney95/ComfyUI-NodeAligner": { + "stars": 140, + "last_update": "2025-05-09 07:48:08", + "author_account_age_days": 361 + }, + "https://github.com/Tensor-Art/ComfyUI_TENSOR_ART": { + "stars": 10, + "last_update": "2025-04-02 08:31:41", + "author_account_age_days": 835 + }, + "https://github.com/TensorKaze/ComfyUI-TkNodes": { + "stars": 0, + "last_update": "2025-05-26 01:36:34", + "author_account_age_days": 171 + }, + "https://github.com/TheBarret/ZSuite": { + "stars": 9, + "last_update": "2024-08-10 13:31:03", + "author_account_age_days": 3147 + }, + "https://github.com/TheBill2001/ComfyUI-Save-Image-Caption": { + "stars": 8, + "last_update": "2025-04-04 12:21:18", + "author_account_age_days": 1877 + }, + "https://github.com/TheBill2001/comfyui-upscale-by-model": { + "stars": 10, + "last_update": "2024-06-18 17:57:06", + "author_account_age_days": 1877 + }, + "https://github.com/TheLustriVA/ComfyUI-Image-Size-Tools": { + "stars": 2, + "last_update": "2025-06-21 15:09:46", + "author_account_age_days": 1514 + }, + "https://github.com/TheMistoAI/ComfyUI-Anyline": { + "stars": 479, + "last_update": "2024-08-30 09:50:34", + "author_account_age_days": 600 + }, + "https://github.com/TheWhykiki/Whykiki-ComfyUIToolset": { + "stars": 0, + "last_update": "2025-03-02 22:17:54", + "author_account_age_days": 3752 + }, + "https://github.com/ThepExcel/aiangelgallery-comfyui": { + "stars": 2, + "last_update": "2025-01-15 07:53:09", + "author_account_age_days": 1996 + }, + "https://github.com/ThereforeGames/ComfyUI-Unprompted": { + "stars": 10, + "last_update": "2024-11-13 20:46:08", + "author_account_age_days": 1370 + }, + "https://github.com/TiamaTiramisu/risutools": { + "stars": 1, + "last_update": "2025-04-20 22:51:50", + "author_account_age_days": 435 + }, + "https://github.com/TinyBeeman/ComfyUI-TinyBee": { + "stars": 0, + "last_update": "2025-08-24 02:26:21", + "author_account_age_days": 2216 + }, + "https://github.com/TinyTerra/ComfyUI_tinyterraNodes": { + "stars": 548, + "last_update": "2025-08-08 05:18:56", + "author_account_age_days": 1056 + }, + "https://github.com/Tlant/ComfyUI-OllamaPromptsGeneratorTlant": { + "stars": 2, + "last_update": "2025-07-18 11:45:29", + "author_account_age_days": 3105 + }, + "https://github.com/ToTheBeginning/ComfyUI-DreamO": { + "stars": 174, + "last_update": "2025-08-22 11:48:28", + "author_account_age_days": 3824 + }, + "https://github.com/Tr1dae/ComfyUI-Dequality": { + "stars": 1, + "last_update": "2025-02-13 16:41:59", + "author_account_age_days": 973 + }, + "https://github.com/Trgtuan10/ComfyUI_YoloSegment_Mask": { + "stars": 1, + "last_update": "2024-09-26 01:46:02", + "author_account_age_days": 1007 + }, + "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler": { + "stars": 59, + "last_update": "2025-06-18 09:32:23", + "author_account_age_days": 1295 + }, + "https://github.com/Tropfchen/ComfyUI-Embedding_Picker": { + "stars": 44, + "last_update": "2024-08-26 16:33:49", + "author_account_age_days": 4288 + }, + "https://github.com/Tropfchen/ComfyUI-yaResolutionSelector": { + "stars": 14, + "last_update": "2024-11-10 20:44:23", + "author_account_age_days": 4288 + }, + "https://github.com/TrophiHunter/ComfyUI_Photography_Nodes": { + "stars": 2, + "last_update": "2025-05-22 07:41:32", + "author_account_age_days": 1153 + }, + "https://github.com/Trung0246/ComfyUI-0246": { + "stars": 128, + "last_update": "2025-03-15 03:39:33", + "author_account_age_days": 3815 + }, + "https://github.com/Ttl/ComfyUi_NNLatentUpscale": { + "stars": 247, + "last_update": "2024-12-01 16:34:24", + "author_account_age_days": 5357 + }, + "https://github.com/TylerZoro/SD3-Scaling": { + "stars": 1, + "last_update": "2024-06-15 16:59:22", + "author_account_age_days": 1720 + }, + "https://github.com/Umikaze-job/select_folder_path_easy": { + "stars": 5, + "last_update": "2024-05-22 21:30:13", + "author_account_age_days": 654 + }, + "https://github.com/Urabewe/ComfyUI-CountS2VExtend": { + "stars": 0, + "last_update": "2025-08-31 04:06:50", + "author_account_age_days": 5032 + }, + "https://github.com/VAST-AI-Research/ComfyUI-Tripo": { + "stars": 299, + "last_update": "2025-06-26 07:50:36", + "author_account_age_days": 677 + }, + "https://github.com/VK/vk-nodes": { + "stars": 0, + "last_update": "2025-05-07 19:59:57", + "author_account_age_days": 5780 + }, + "https://github.com/Vaibhavs10/ComfyUI-DDUF": { + "stars": 5, + "last_update": "2025-01-03 15:10:44", + "author_account_age_days": 3416 + }, + "https://github.com/VangengLab/ComfyUI-LivePortrait_v2": { + "stars": 5, + "last_update": "2024-11-09 08:00:22", + "author_account_age_days": 714 + }, + "https://github.com/VangengLab/ComfyUI-LivePortrait_v3": { + "stars": 22, + "last_update": "2024-11-09 07:59:42", + "author_account_age_days": 714 + }, + "https://github.com/Vaporbook/ComfyUI-SaveImage-PP": { + "stars": 0, + "last_update": "2025-05-08 15:04:17", + "author_account_age_days": 5273 + }, + "https://github.com/Verolelb/ComfyUI-Qwen-Aspect-Ratio": { + "stars": 1, + "last_update": "2025-08-15 17:37:40", + "author_account_age_days": 1057 + }, + "https://github.com/VertexAnomaly/ComfyUI_ImageSentinel": { + "stars": 3, + "last_update": "2025-04-04 13:50:16", + "author_account_age_days": 1091 + }, + "https://github.com/VertexStudio/roblox-comfyui-nodes": { + "stars": 0, + "last_update": "2024-10-08 16:35:54", + "author_account_age_days": 3413 + }, + "https://github.com/VikramxD/VEnhancer-ComfyUI-Wrapper": { + "stars": 12, + "last_update": "2025-01-14 07:35:00", + "author_account_age_days": 1791 + }, + "https://github.com/Visionatrix/ComfyUI-Gemini": { + "stars": 18, + "last_update": "2025-09-01 20:14:20", + "author_account_age_days": 551 + }, + "https://github.com/Visionatrix/ComfyUI-RemoteVAE": { + "stars": 2, + "last_update": "2025-07-05 18:20:05", + "author_account_age_days": 551 + }, + "https://github.com/Visionatrix/ComfyUI-Visionatrix": { + "stars": 1, + "last_update": "2025-07-06 10:53:01", + "author_account_age_days": 551 + }, + "https://github.com/VraethrDalkr/ComfyUI-ProgressiveBlend": { + "stars": 1, + "last_update": "2025-08-28 02:32:49", + "author_account_age_days": 852 + }, + "https://github.com/VrchStudio/comfyui-web-viewer": { + "stars": 296, + "last_update": "2025-08-27 18:30:18", + "author_account_age_days": 1355 + }, + "https://github.com/VykosX/ControlFlowUtils": { + "stars": 126, + "last_update": "2024-12-09 17:24:48", + "author_account_age_days": 2345 + }, + "https://github.com/WASasquatch/ComfyUI_Preset_Merger": { + "stars": 33, + "last_update": "2025-03-27 14:52:46", + "author_account_age_days": 5060 + }, + "https://github.com/WASasquatch/FreeU_Advanced": { + "stars": 119, + "last_update": "2024-10-27 01:49:14", + "author_account_age_days": 5060 + }, + "https://github.com/WASasquatch/PPF_Noise_ComfyUI": { + "stars": 24, + "last_update": "2024-06-14 10:27:23", + "author_account_age_days": 5060 + }, + "https://github.com/WASasquatch/PowerNoiseSuite": { + "stars": 76, + "last_update": "2024-07-31 13:48:33", + "author_account_age_days": 5060 + }, + "https://github.com/WASasquatch/WAS_Extras": { + "stars": 36, + "last_update": "2025-07-18 17:18:44", + "author_account_age_days": 5060 + }, + "https://github.com/WASasquatch/face-upscaling-and-seamless-embedding": { + "stars": 6, + "last_update": "2025-08-15 03:17:39", + "author_account_age_days": 5060 + }, + "https://github.com/WUYUDING2583/ComfyUI-Save-Image-Callback": { + "stars": 2, + "last_update": "2025-01-21 08:19:52", + "author_account_age_days": 2647 + }, + "https://github.com/WX-NPS1598/ComfyUI-Auto_Crop_By_NPS": { + "stars": 5, + "last_update": "2024-07-30 04:43:14", + "author_account_age_days": 411 + }, + "https://github.com/WaddingtonHoldings/ComfyUI-InstaSD": { + "stars": 4, + "last_update": "2025-07-03 19:44:52", + "author_account_age_days": 1057 + }, + "https://github.com/WainWong/ComfyUI-Loop-image": { + "stars": 36, + "last_update": "2025-03-28 03:09:27", + "author_account_age_days": 3058 + }, + "https://github.com/Wakfull33/ComfyUI-SaveImageCivitAI": { + "stars": 1, + "last_update": "2024-10-29 11:03:23", + "author_account_age_days": 3395 + }, + "https://github.com/WangPengxing/ComfyUI_WPX_Node": { + "stars": 0, + "last_update": "2025-01-20 08:31:55", + "author_account_age_days": 762 + }, + "https://github.com/WarpedAnimation/ComfyUI-WarpedToolset": { + "stars": 7, + "last_update": "2025-09-02 15:01:17", + "author_account_age_days": 176 + }, + "https://github.com/WaveSpeedAI/wavespeed-comfyui": { + "stars": 23, + "last_update": "2025-08-08 23:41:55", + "author_account_age_days": 224 + }, + "https://github.com/WeChatCV/Stand-In_Preprocessor_ComfyUI": { + "stars": 134, + "last_update": "2025-08-21 13:52:03", + "author_account_age_days": 1728 + }, + "https://github.com/WebDev9000/WebDev9000-Nodes": { + "stars": 1, + "last_update": "2024-06-14 10:28:22", + "author_account_age_days": 4187 + }, + "https://github.com/Wenaka2004/ComfyUI-TagClassifier": { + "stars": 24, + "last_update": "2025-01-31 04:28:34", + "author_account_age_days": 973 + }, + "https://github.com/What-a-stupid-username/comfyui-InversedSampler": { + "stars": 1, + "last_update": "2025-07-31 14:35:16", + "author_account_age_days": 2727 }, "https://github.com/Wicloz/ComfyUI-Simply-Nodes": { "stars": 1, - "last_update": "2024-04-11 01:32:57" + "last_update": "2025-01-05 01:44:38", + "author_account_age_days": 4079 }, - "https://github.com/wandbrandon/comfyui-pixel": { + "https://github.com/Windecay/ComfyUI-ReservedVRAM": { + "stars": 42, + "last_update": "2025-06-29 13:42:36", + "author_account_age_days": 460 + }, + "https://github.com/Windecay/ComfyUI-SDupcaleTiledSize": { + "stars": 4, + "last_update": "2025-08-11 16:04:38", + "author_account_age_days": 460 + }, + "https://github.com/X-School-Academy/X-FluxAgent": { + "stars": 28, + "last_update": "2025-06-05 08:28:11", + "author_account_age_days": 153 + }, + "https://github.com/X-T-E-R/ComfyUI-EasyCivitai-XTNodes": { + "stars": 46, + "last_update": "2024-09-04 11:37:04", + "author_account_age_days": 1598 + }, + "https://github.com/XLabs-AI/x-flux-comfyui": { + "stars": 1626, + "last_update": "2024-10-30 12:51:21", + "author_account_age_days": 393 + }, + "https://github.com/XWAVEart/comfyui-xwave-xlitch-nodes": { + "stars": 2, + "last_update": "2025-06-04 20:33:17", + "author_account_age_days": 671 + }, + "https://github.com/XchanBik/ComfyUI_SimpleBridgeNode": { + "stars": 0, + "last_update": "2025-05-15 22:10:43", + "author_account_age_days": 117 + }, + "https://github.com/Xclbr7/ComfyUI-Merlin": { + "stars": 29, + "last_update": "2024-09-02 19:36:05", + "author_account_age_days": 372 + }, + "https://github.com/Xiangyu-CAS/HandFixer": { + "stars": 197, + "last_update": "2025-02-10 02:02:01", + "author_account_age_days": 3823 + }, + "https://github.com/XieJunchen/comfyUI_LLM": { + "stars": 2, + "last_update": "2025-08-03 13:21:08", + "author_account_age_days": 2209 + }, + "https://github.com/Xkipper/ComfyUI_SkipperNodes": { + "stars": 0, + "last_update": "2025-04-26 20:13:45", + "author_account_age_days": 3914 + }, + "https://github.com/XmYx/ComfyUI-SmolLM3": { "stars": 3, - "last_update": "2024-04-10 22:23:36" + "last_update": "2025-07-10 06:25:43", + "author_account_age_days": 3041 }, - "https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit": { - "stars": 1, - "last_update": "2024-04-11 06:20:34" + "https://github.com/XmYx/deforum-comfy-nodes": { + "stars": 193, + "last_update": "2025-05-26 19:50:55", + "author_account_age_days": 3041 }, - "https://github.com/nullquant/ComfyUI-BrushNet": { - "stars": 92, - "last_update": "2024-04-18 18:01:47" + "https://github.com/Xyem/Xycuno-Oobabooga": { + "stars": 4, + "last_update": "2024-05-23 00:14:14", + "author_account_age_days": 4759 }, - "https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler": { - "stars": 100, - "last_update": "2024-04-19 18:26:41" + "https://github.com/YMC-GitHub/comfyui_node_ymc_effect_shatter": { + "stars": 0, + "last_update": "2025-04-12 15:00:21", + "author_account_age_days": 3130 }, - "https://github.com/pamparamm/sd-perturbed-attention": { - "stars": 106, - "last_update": "2024-04-17 17:51:44" + "https://github.com/YMC-GitHub/ymc-node-as-x-type": { + "stars": 0, + "last_update": "2025-06-06 12:23:11", + "author_account_age_days": 3130 }, - "https://github.com/kijai/ComfyUI-BrushNet-Wrapper": { - "stars": 55, - "last_update": "2024-04-19 09:13:41" + "https://github.com/YMC-GitHub/ymc-node-suite-comfyui": { + "stars": 20, + "last_update": "2025-06-09 08:07:23", + "author_account_age_days": 3130 }, - "https://github.com/unwdef/unwdef-nodes-comfyui": { - "stars": 1, - "last_update": "2024-04-15 19:32:36" + "https://github.com/YMC-GitHub/ymc_node_joy": { + "stars": 0, + "last_update": "2025-06-19 07:24:28", + "author_account_age_days": 3130 }, - "https://github.com/smthemex/ComfyUI_ParlerTTS": { + "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes": { + "stars": 15, + "last_update": "2024-05-22 20:48:23", + "author_account_age_days": 4190 + }, + "https://github.com/YRIKKA/ComfyUI-InferenceTimeScaling": { + "stars": 22, + "last_update": "2025-02-27 21:13:18", + "author_account_age_days": 434 + }, + "https://github.com/Yahweasel/ComfyUI-MinDalle": { + "stars": 0, + "last_update": "2025-05-26 20:42:34", + "author_account_age_days": 3085 + }, + "https://github.com/Yanick112/ComfyUI-ToSVG": { + "stars": 226, + "last_update": "2025-06-20 14:10:06", + "author_account_age_days": 1249 + }, + "https://github.com/YaroslavIv/comfyui_swd": { + "stars": 2, + "last_update": "2025-06-23 04:10:43", + "author_account_age_days": 2012 + }, + "https://github.com/YarvixPA/ComfyUI-YarvixPA": { + "stars": 0, + "last_update": "2025-08-29 11:16:31", + "author_account_age_days": 641 + }, + "https://github.com/YaserJaradeh/comfyui-yaser-nodes": { + "stars": 0, + "last_update": "2025-08-01 12:35:46", + "author_account_age_days": 3959 + }, + "https://github.com/Yeq6X/ComfyUI-image-to-video-inserter": { + "stars": 0, + "last_update": "2025-09-02 11:54:22", + "author_account_age_days": 2083 + }, + "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI": { + "stars": 16, + "last_update": "2025-01-03 03:58:20", + "author_account_age_days": 1221 + }, + "https://github.com/Yo1up/Diffusion-Model-Detailer": { + "stars": 3, + "last_update": "2025-08-08 00:32:59", + "author_account_age_days": 975 + }, + "https://github.com/Yuan-ManX/ComfyUI-AniSora": { + "stars": 43, + "last_update": "2025-05-27 04:11:59", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-AudioX": { "stars": 10, - "last_update": "2024-04-20 03:29:59" + "last_update": "2025-05-27 04:14:59", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Bagel": { + "stars": 29, + "last_update": "2025-05-28 03:00:53", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-ChatterboxTTS": { + "stars": 11, + "last_update": "2025-05-30 08:13:06", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Cobra": { + "stars": 5, + "last_update": "2025-04-18 02:06:26", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Dia": { + "stars": 4, + "last_update": "2025-04-24 06:58:05", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Direct3D-S2": { + "stars": 10, + "last_update": "2025-06-10 03:24:25", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-HiDream-I1": { + "stars": 9, + "last_update": "2025-04-14 02:56:22", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-HiggsAudio": { + "stars": 20, + "last_update": "2025-07-26 07:19:35", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Hunyuan3D-2.1": { + "stars": 28, + "last_update": "2025-06-16 07:03:54", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-HunyuanPortrait": { + "stars": 8, + "last_update": "2025-05-28 09:47:34", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-HunyuanVideo-Avatar": { + "stars": 27, + "last_update": "2025-05-29 07:49:15", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Kimi-VL": { + "stars": 1, + "last_update": "2025-04-17 06:55:14", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-LLaMA-Mesh": { + "stars": 5, + "last_update": "2024-11-29 09:52:04", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-LayerAnimate": { + "stars": 4, + "last_update": "2025-04-01 03:16:53", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-LiveCC": { + "stars": 4, + "last_update": "2025-05-27 04:14:30", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Matrix-Game": { + "stars": 6, + "last_update": "2025-05-13 08:05:00", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-MoviiGen": { + "stars": 10, + "last_update": "2025-05-27 04:12:30", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Multiverse": { + "stars": 1, + "last_update": "2025-05-09 06:51:35", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Muyan-TTS": { + "stars": 2, + "last_update": "2025-05-08 08:21:24", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-OmniGen2": { + "stars": 121, + "last_update": "2025-06-26 02:46:07", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-OrpheusTTS": { + "stars": 6, + "last_update": "2025-03-24 02:47:23", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-PhotoDoodle": { + "stars": 3, + "last_update": "2025-02-28 03:47:54", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-PosterCraft": { + "stars": 17, + "last_update": "2025-06-26 10:00:28", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-SkyReels-A2": { + "stars": 30, + "last_update": "2025-05-27 04:14:03", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-SkyworkUniPic": { + "stars": 11, + "last_update": "2025-07-30 06:02:10", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-SoundHub": { + "stars": 2, + "last_update": "2024-11-27 08:00:48", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Step1X-3D": { + "stars": 13, + "last_update": "2025-05-16 02:36:06", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Step1X-Edit": { + "stars": 11, + "last_update": "2025-04-29 07:36:52", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-StyleStudio": { + "stars": 4, + "last_update": "2025-03-10 09:38:08", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-ThinkSound": { + "stars": 21, + "last_update": "2025-07-12 03:48:32", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-UNO": { + "stars": 10, + "last_update": "2025-04-11 07:37:33", + "author_account_age_days": 1875 + }, + "https://github.com/Yuan-ManX/ComfyUI-Vui": { + "stars": 3, + "last_update": "2025-06-12 03:55:32", + "author_account_age_days": 1875 + }, + "https://github.com/Yukinoshita-Yukinoe/ComfyUI-Qwen-Node": { + "stars": 2, + "last_update": "2025-07-15 00:58:42", + "author_account_age_days": 1841 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": { + "stars": 379, + "last_update": "2024-05-22 14:14:46", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Animated-optical-illusions": { + "stars": 21, + "last_update": "2024-06-14 07:06:15", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery": { + "stars": 522, + "last_update": "2024-06-12 04:40:50", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BRIA_AI-RMBG": { + "stars": 815, + "last_update": "2024-05-22 14:14:18", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DeepSeek-JanusPro": { + "stars": 103, + "last_update": "2025-02-21 09:45:54", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": { + "stars": 74, + "last_update": "2024-05-22 14:14:03", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID": { + "stars": 1431, + "last_update": "2024-05-22 13:57:55", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini": { + "stars": 205, + "last_update": "2024-06-30 08:41:40", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": { + "stars": 816, + "last_update": "2024-05-22 14:13:49", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PixArt-alpha-Diffusers": { + "stars": 50, + "last_update": "2024-05-22 13:40:58", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Q-Align": { + "stars": 4, + "last_update": "2024-05-22 14:15:52", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen-VL-API": { + "stars": 215, + "last_update": "2024-05-22 14:14:57", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SVD-ZHO": { + "stars": 108, + "last_update": "2024-05-22 13:40:44", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SegMoE": { + "stars": 80, + "last_update": "2024-05-22 13:41:14", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Text_Image-Composite": { + "stars": 113, + "last_update": "2024-05-31 12:03:55", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-UltraEdit-ZHO": { + "stars": 147, + "last_update": "2024-07-11 14:59:07", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM": { + "stars": 766, + "last_update": "2024-05-22 13:01:07", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/comfyui-portrait-master-zh-cn": { + "stars": 1768, + "last_update": "2024-06-14 09:00:04", + "author_account_age_days": 775 + }, + "https://github.com/ZXL-Xinram/ComfyUI-AutoFlow": { + "stars": 2, + "last_update": "2025-07-16 17:17:01", + "author_account_age_days": 1718 + }, + "https://github.com/ZZXYWQ/ComfyUI-ZZXYWQ": { + "stars": 23, + "last_update": "2024-07-19 06:38:39", + "author_account_age_days": 1708 + }, + "https://github.com/Zachary116699/ComfyUI-LoadImageWithMetaDataEx": { + "stars": 2, + "last_update": "2025-06-10 07:10:28", + "author_account_age_days": 1796 + }, + "https://github.com/ZaneA/ComfyUI-ImageReward": { + "stars": 31, + "last_update": "2025-02-24 19:55:45", + "author_account_age_days": 5975 + }, + "https://github.com/Zar4X/ComfyUI-Batch-Process": { + "stars": 3, + "last_update": "2025-07-03 10:56:16", + "author_account_age_days": 866 + }, + "https://github.com/Zar4X/ComfyUI-Image-Resizing": { + "stars": 1, + "last_update": "2025-06-25 14:43:35", + "author_account_age_days": 866 + }, + "https://github.com/Zch6111/AI_Text_Comfyui": { + "stars": 1, + "last_update": "2025-06-05 03:22:47", + "author_account_age_days": 508 + }, + "https://github.com/ZeDarkAdam/ComfyUI-Embeddings-Tools": { + "stars": 3, + "last_update": "2024-06-23 19:19:40", + "author_account_age_days": 1629 + }, + "https://github.com/Zehong-Ma/ComfyUI-MagCache": { + "stars": 223, + "last_update": "2025-08-06 15:14:29", + "author_account_age_days": 1638 + }, + "https://github.com/Zeks/comfyui-rapidfire": { + "stars": 0, + "last_update": "2025-08-10 07:46:37", + "author_account_age_days": 5056 + }, + "https://github.com/ZeroSpaceStudios/ComfyUI-ZSNodes": { + "stars": 0, + "last_update": "2025-08-26 00:26:08", + "author_account_age_days": 158 + }, + "https://github.com/Zuellni/ComfyUI-Custom-Nodes": { + "stars": 44, + "last_update": "2023-09-19 12:11:26", + "author_account_age_days": 957 + }, + "https://github.com/Zuellni/ComfyUI-ExLlama-Nodes": { + "stars": 120, + "last_update": "2024-12-06 14:22:11", + "author_account_age_days": 957 + }, + "https://github.com/Zuellni/ComfyUI-PickScore-Nodes": { + "stars": 38, + "last_update": "2024-09-08 09:17:04", + "author_account_age_days": 957 + }, + "https://github.com/a-l-e-x-d-s-9/ComfyUI-SaveCheckpointWithMetadata": { + "stars": 0, + "last_update": "2025-08-25 20:29:15", + "author_account_age_days": 4235 + }, + "https://github.com/a-und-b/ComfyUI_Delay": { + "stars": 5, + "last_update": "2025-01-10 11:20:35", + "author_account_age_days": 875 + }, + "https://github.com/a-und-b/ComfyUI_IC-Light-v2_fal": { + "stars": 39, + "last_update": "2025-05-05 08:34:47", + "author_account_age_days": 875 + }, + "https://github.com/a-und-b/ComfyUI_JSON_Helper": { + "stars": 4, + "last_update": "2025-01-09 15:54:55", + "author_account_age_days": 875 + }, + "https://github.com/a-und-b/ComfyUI_LoRA_from_URL": { + "stars": 3, + "last_update": "2025-01-16 13:40:26", + "author_account_age_days": 875 + }, + "https://github.com/a-und-b/ComfyUI_MaskAreaCondition": { + "stars": 4, + "last_update": "2025-04-28 08:23:36", + "author_account_age_days": 875 + }, + "https://github.com/a1lazydog/ComfyUI-AudioScheduler": { + "stars": 102, + "last_update": "2024-08-08 03:04:19", + "author_account_age_days": 5237 + }, + "https://github.com/abdozmantar/ComfyUI-DeepExtract": { + "stars": 40, + "last_update": "2025-08-26 02:43:39", + "author_account_age_days": 587 + }, + "https://github.com/aburahamu/ComfyUI-IsNiceParts": { + "stars": 3, + "last_update": "2024-06-14 12:01:40", + "author_account_age_days": 508 }, "https://github.com/aburahamu/ComfyUI-RequestsPoster": { - "stars": 1, - "last_update": "2024-04-19 12:06:14" + "stars": 2, + "last_update": "2024-06-14 13:59:24", + "author_account_age_days": 508 }, - "https://github.com/AIFSH/ComfyUI-GPT_SoVITS": { - "stars": 77, - "last_update": "2024-04-21 00:24:23" + "https://github.com/abyz22/image_control": { + "stars": 16, + "last_update": "2024-08-31 08:39:44", + "author_account_age_days": 597 }, - "https://github.com/royceschultz/ComfyUI-TranscriptionTools": { + "https://github.com/acorderob/sd-webui-prompt-postprocessor": { + "stars": 36, + "last_update": "2025-05-31 10:32:11", + "author_account_age_days": 4262 + }, + "https://github.com/adbrasi/ComfyUI-TrashNodes-DownloadHuggingface": { "stars": 6, - "last_update": "2024-04-16 04:30:02" + "last_update": "2024-05-22 23:24:45", + "author_account_age_days": 1138 }, - "https://github.com/BlakeOne/ComfyUI-NodeDefaults": { + "https://github.com/adieyal/comfyui-dynamicprompts": { + "stars": 339, + "last_update": "2024-07-09 14:21:09", + "author_account_age_days": 5452 + }, + "https://github.com/adigayung/ComfyUI-Translator": { + "stars": 14, + "last_update": "2024-09-09 03:36:52", + "author_account_age_days": 648 + }, + "https://github.com/adrianschubek/comfyui-zeug": { "stars": 1, - "last_update": "2024-04-18 22:32:08" + "last_update": "2025-07-24 22:13:07", + "author_account_age_days": 3398 }, - "https://github.com/liusida/ComfyUI-Login": { - "stars": 13, - "last_update": "2024-04-19 02:40:09" + "https://github.com/adriflex/ComfyUI_Blender_Texdiff": { + "stars": 2, + "last_update": "2024-05-22 23:14:18", + "author_account_age_days": 2657 }, - "https://github.com/Sorcerio/MBM-Music-Visualizer": { + "https://github.com/aegis72/aegisflow_utility_nodes": { + "stars": 36, + "last_update": "2024-10-03 11:11:39", + "author_account_age_days": 1018 + }, + "https://github.com/aegis72/comfyui-styles-all": { + "stars": 52, + "last_update": "2024-05-22 22:10:41", + "author_account_age_days": 1018 + }, + "https://github.com/aesethtics/ComfyUI-Utilitools": { + "stars": 0, + "last_update": "2025-08-27 21:58:17", + "author_account_age_days": 3281 + }, + "https://github.com/agilly1989/ComfyUI_agilly1989_motorway": { "stars": 7, - "last_update": "2024-04-19 23:35:24" + "last_update": "2025-08-03 11:26:11", + "author_account_age_days": 2319 }, - "https://github.com/traugdor/ComfyUI-quadMoons-nodes": { + "https://github.com/ahernandezmiro/ComfyUI-GCP_Storage_tools": { + "stars": 2, + "last_update": "2025-01-03 18:48:03", + "author_account_age_days": 4431 + }, + "https://github.com/ai-liam/comfyui-liam": { + "stars": 2, + "last_update": "2024-06-22 03:27:52", + "author_account_age_days": 1956 + }, + "https://github.com/ai-liam/comfyui_liam_util": { + "stars": 1, + "last_update": "2024-05-22 22:21:23", + "author_account_age_days": 1956 + }, + "https://github.com/ai-shizuka/ComfyUI-tbox": { + "stars": 15, + "last_update": "2025-04-22 10:21:03", + "author_account_age_days": 447 + }, + "https://github.com/aiaiaikkk/ComfyUI-Curve": { + "stars": 135, + "last_update": "2025-08-26 08:58:12", + "author_account_age_days": 339 + }, + "https://github.com/aiaiaikkk/comfyui-api-image-edit": { + "stars": 2, + "last_update": "2025-09-02 15:39:26", + "author_account_age_days": 339 + }, + "https://github.com/aiaiaikkk/kontext-super-prompt": { + "stars": 128, + "last_update": "2025-08-30 06:42:21", + "author_account_age_days": 339 + }, + "https://github.com/aiaiaikkk/super-prompt-canvas": { + "stars": 128, + "last_update": "2025-08-30 06:42:21", + "author_account_age_days": 339 + }, + "https://github.com/aianimation55/ComfyUI-FatLabels": { "stars": 5, - "last_update": "2024-04-20 01:40:50" + "last_update": "2024-05-22 21:26:01", + "author_account_age_days": 709 + }, + "https://github.com/aiartvn/A2V_Multi_Image_Composite": { + "stars": 1, + "last_update": "2025-02-02 04:14:06", + "author_account_age_days": 219 + }, + "https://github.com/aicoder-max/Pillar_For_ComfyUI": { + "stars": 2, + "last_update": "2025-06-05 09:40:09", + "author_account_age_days": 105 + }, + "https://github.com/aicuai/aicu-comfyui-stability-ai-api": { + "stars": 1, + "last_update": "2025-02-21 13:31:14", + "author_account_age_days": 777 + }, + "https://github.com/aidec/Comfyui_TextBatch_aidec": { + "stars": 10, + "last_update": "2025-04-09 20:26:38", + "author_account_age_days": 4338 + }, + "https://github.com/aidenli/ComfyUI_NYJY": { + "stars": 129, + "last_update": "2025-06-16 06:06:12", + "author_account_age_days": 4983 + }, + "https://github.com/aigc-apps/EasyAnimate": { + "stars": 2195, + "last_update": "2025-03-06 11:41:28", + "author_account_age_days": 753 + }, + "https://github.com/aigc-apps/VideoX-Fun": { + "stars": 1357, + "last_update": "2025-09-02 12:00:17", + "author_account_age_days": 753 + }, + "https://github.com/aimerib/ComfyUI_HigherBitDepthSaveImage": { + "stars": 2, + "last_update": "2024-09-14 03:03:01", + "author_account_age_days": 3106 + }, + "https://github.com/ainewsto/Comfyui-chatgpt-api": { + "stars": 53, + "last_update": "2025-08-12 06:38:37", + "author_account_age_days": 1089 + }, + "https://github.com/ainewsto/Comfyui-google-veo2-api": { + "stars": 5, + "last_update": "2025-05-06 06:43:48", + "author_account_age_days": 1089 + }, + "https://github.com/ainewsto/Comfyui_Comfly_v2": { + "stars": 70, + "last_update": "2025-09-02 07:36:18", + "author_account_age_days": 1089 + }, + "https://github.com/ainewsto/comfyui-labs-google": { + "stars": 83, + "last_update": "2025-06-18 02:12:39", + "author_account_age_days": 1089 + }, + "https://github.com/aisabervisionlab/ComfyUI_merge_ASVL": { + "stars": 2, + "last_update": "2024-07-31 13:39:36", + "author_account_age_days": 424 + }, + "https://github.com/aistudynow/Comfyui-HunyuanFoley": { + "stars": 27, + "last_update": "2025-09-01 01:42:40", + "author_account_age_days": 4 + }, + "https://github.com/ajbergh/comfyui-ethnicity_hairstyle_clip_encoder": { + "stars": 2, + "last_update": "2025-02-28 22:07:11", + "author_account_age_days": 2217 + }, + "https://github.com/akatz-ai/ComfyUI-AKatz-Nodes": { + "stars": 29, + "last_update": "2025-04-05 00:47:00", + "author_account_age_days": 470 + }, + "https://github.com/akatz-ai/ComfyUI-Basic-Math": { + "stars": 3, + "last_update": "2025-07-05 18:51:55", + "author_account_age_days": 470 + }, + "https://github.com/akatz-ai/ComfyUI-DepthCrafter-Nodes": { + "stars": 232, + "last_update": "2025-05-05 04:23:55", + "author_account_age_days": 470 + }, + "https://github.com/akatz-ai/ComfyUI-Depthflow-Nodes": { + "stars": 312, + "last_update": "2025-07-09 22:44:36", + "author_account_age_days": 470 + }, + "https://github.com/akatz-ai/ComfyUI-X-Portrait-Nodes": { + "stars": 86, + "last_update": "2025-04-20 05:29:13", + "author_account_age_days": 470 + }, + "https://github.com/akierson/ComfyUI-textnodes": { + "stars": 0, + "last_update": "2024-10-20 20:12:15", + "author_account_age_days": 2769 + }, + "https://github.com/akierson/comfyui-colornodes": { + "stars": 2, + "last_update": "2024-10-20 20:14:09", + "author_account_age_days": 2769 + }, + "https://github.com/al-swaiti/All-IN-ONE-style": { + "stars": 5, + "last_update": "2024-07-30 05:59:49", + "author_account_age_days": 1364 + }, + "https://github.com/al-swaiti/ComfyUI-CascadeResolutions": { + "stars": 6, + "last_update": "2024-07-31 13:48:47", + "author_account_age_days": 1364 + }, + "https://github.com/al-swaiti/ComfyUI-OllamaGemini": { + "stars": 119, + "last_update": "2025-08-31 20:33:31", + "author_account_age_days": 1364 + }, + "https://github.com/alFrame/ComfyUI-AF-EditGeneratedPrompt": { + "stars": 0, + "last_update": "2025-08-04 21:58:40", + "author_account_age_days": 3061 + }, + "https://github.com/alanhuang67/ComfyUI-FAI-Node": { + "stars": 14, + "last_update": "2024-08-02 03:35:41", + "author_account_age_days": 3925 + }, + "https://github.com/alastor-666-1933/caching_to_not_waste": { + "stars": 5, + "last_update": "2025-07-18 14:34:09", + "author_account_age_days": 4484 + }, + "https://github.com/alchemine/comfyui-alchemine-pack": { + "stars": 0, + "last_update": "2025-08-27 07:50:08", + "author_account_age_days": 2260 + }, + "https://github.com/aleolidev/comfy_kaizen_package": { + "stars": 0, + "last_update": "2025-06-21 11:10:52", + "author_account_age_days": 3013 + }, + "https://github.com/alessandroperilli/OCS_Nodes": { + "stars": 1, + "last_update": "2025-09-01 15:29:19", + "author_account_age_days": 3943 + }, + "https://github.com/alessandrozonta/ComfyUI-CenterNode": { + "stars": 7, + "last_update": "2024-11-14 12:20:40", + "author_account_age_days": 1632 + }, + "https://github.com/alessandrozonta/ComfyUI-Layers": { + "stars": 56, + "last_update": "2024-07-31 13:46:32", + "author_account_age_days": 1632 + }, + "https://github.com/alessandrozonta/ComfyUI-OpenPose": { + "stars": 27, + "last_update": "2024-07-31 13:51:14", + "author_account_age_days": 1632 + }, + "https://github.com/alessandrozonta/ComfyUI-PoseDirection": { + "stars": 2, + "last_update": "2025-06-03 10:12:26", + "author_account_age_days": 1632 + }, + "https://github.com/alessandrozonta/Comfyui-LoopLoader": { + "stars": 2, + "last_update": "2025-02-21 13:28:39", + "author_account_age_days": 1632 + }, + "https://github.com/alexcong/ComfyUI_QwenVL": { + "stars": 84, + "last_update": "2025-06-07 21:58:57", + "author_account_age_days": 4021 + }, + "https://github.com/alexgenovese/ComfyUI-UNO-Flux": { + "stars": 1, + "last_update": "2025-06-16 17:27:27", + "author_account_age_days": 5449 + }, + "https://github.com/alexgenovese/ComfyUI_HF_Servelress_Inference": { + "stars": 15, + "last_update": "2024-09-01 13:04:48", + "author_account_age_days": 5449 + }, + "https://github.com/alexisrolland/ComfyUI-Blender": { + "stars": 40, + "last_update": "2025-08-31 08:28:12", + "author_account_age_days": 3721 + }, + "https://github.com/alexisrolland/ComfyUI-Phi": { + "stars": 9, + "last_update": "2025-06-02 16:03:13", + "author_account_age_days": 3721 + }, + "https://github.com/alexopus/ComfyUI-Image-Saver": { + "stars": 119, + "last_update": "2025-08-27 16:36:09", + "author_account_age_days": 3114 + }, + "https://github.com/alexopus/ComfyUI-Notes-Sidebar": { + "stars": 0, + "last_update": "2025-07-22 18:35:43", + "author_account_age_days": 3114 + }, + "https://github.com/ali-vilab/ACE_plus": { + "stars": 1282, + "last_update": "2025-04-21 06:36:02", + "author_account_age_days": 923 + }, + "https://github.com/ali1234/comfyui-job-iterator": { + "stars": 116, + "last_update": "2024-11-16 07:51:07", + "author_account_age_days": 5295 + }, + "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer": { + "stars": 84, + "last_update": "2025-06-09 05:43:18", + "author_account_age_days": 1035 + }, + "https://github.com/alpertunga-bile/image-caption-comfyui": { + "stars": 10, + "last_update": "2025-05-21 20:09:00", + "author_account_age_days": 1708 + }, + "https://github.com/alpertunga-bile/prompt-generator-comfyui": { + "stars": 104, + "last_update": "2025-05-21 20:05:48", + "author_account_age_days": 1708 + }, + "https://github.com/alsritter/asymmetric-tiling-comfyui": { + "stars": 17, + "last_update": "2024-05-22 20:43:07", + "author_account_age_days": 2429 + }, + "https://github.com/alt-key-project/comfyui-dream-project": { + "stars": 104, + "last_update": "2025-02-16 14:45:43", + "author_account_age_days": 1095 + }, + "https://github.com/alt-key-project/comfyui-dream-video-batches": { + "stars": 76, + "last_update": "2025-02-23 10:28:40", + "author_account_age_days": 1095 + }, + "https://github.com/an90ray/ComfyUI_RErouter_CustomNodes": { + "stars": 0, + "last_update": "2024-05-22 22:21:00", + "author_account_age_days": 623 + }, + "https://github.com/andersxa/comfyui-PromptAttention": { + "stars": 22, + "last_update": "2024-06-20 11:09:25", + "author_account_age_days": 3388 + }, + "https://github.com/andygill/comfyui-sunflower-nodes": { + "stars": 1, + "last_update": "2025-01-02 04:23:22", + "author_account_age_days": 6227 + }, + "https://github.com/angeloshredder/StableCascadeResizer": { + "stars": 2, + "last_update": "2024-05-23 00:12:55", + "author_account_age_days": 2263 + }, + "https://github.com/angree/ComfyUI-Q_GLB_Material_Modifier": { + "stars": 1, + "last_update": "2025-05-30 22:51:59", + "author_account_age_days": 3156 + }, + "https://github.com/angree/ComfyUI-Q_find-mask-size": { + "stars": 0, + "last_update": "2025-05-30 22:53:04", + "author_account_age_days": 3156 + }, + "https://github.com/anhkhoatranle30/Handy-Nodes-ComfyUI": { + "stars": 1, + "last_update": "2025-03-27 14:09:26", + "author_account_age_days": 2185 + }, + "https://github.com/annewj023/Comfyui_google_nano": { + "stars": 2, + "last_update": "2025-08-30 11:52:35", + "author_account_age_days": 432 + }, + "https://github.com/antrobot1234/antrobots-comfyUI-nodepack": { + "stars": 24, + "last_update": "2025-04-02 21:40:49", + "author_account_age_days": 3297 + }, + "https://github.com/apeirography/DaimalyadNodes": { + "stars": 0, + "last_update": "2025-08-15 03:21:01", + "author_account_age_days": 2175 + }, + "https://github.com/arcum42/ComfyUI_SageUtils": { + "stars": 12, + "last_update": "2025-09-02 08:11:08", + "author_account_age_days": 6183 + }, + "https://github.com/aria1th/ComfyUI-LogicUtils": { + "stars": 81, + "last_update": "2025-08-08 20:12:51", + "author_account_age_days": 2780 + }, + "https://github.com/asaddi/ComfyUI-YALLM-node": { + "stars": 3, + "last_update": "2025-08-09 22:48:38", + "author_account_age_days": 3969 + }, + "https://github.com/asaddi/YALLM-LlamaVision": { + "stars": 5, + "last_update": "2025-03-27 14:42:04", + "author_account_age_days": 3969 + }, + "https://github.com/asagi4/ComfyUI-Adaptive-Guidance": { + "stars": 61, + "last_update": "2025-05-03 18:12:38", + "author_account_age_days": 876 + }, + "https://github.com/asagi4/ComfyUI-CADS": { + "stars": 42, + "last_update": "2025-06-23 17:58:56", + "author_account_age_days": 876 + }, + "https://github.com/asagi4/ComfyUI-NPNet": { + "stars": 17, + "last_update": "2024-12-10 17:20:10", + "author_account_age_days": 876 + }, + "https://github.com/asagi4/comfyui-prompt-control": { + "stars": 317, + "last_update": "2025-08-27 17:28:25", + "author_account_age_days": 876 + }, + "https://github.com/asagi4/comfyui-utility-nodes": { + "stars": 8, + "last_update": "2025-01-30 23:01:52", + "author_account_age_days": 876 + }, + "https://github.com/asdrabael/Hunyuan-Multi-Lora-Loader": { + "stars": 4, + "last_update": "2025-02-09 02:50:51", + "author_account_age_days": 449 + }, + "https://github.com/asutermo/ComfyUI-Flux-TryOff": { + "stars": 45, + "last_update": "2025-03-10 21:05:14", + "author_account_age_days": 5346 + }, + "https://github.com/aszc-dev/ComfyUI-CoreMLSuite": { + "stars": 167, + "last_update": "2025-04-01 21:45:31", + "author_account_age_days": 3162 + }, + "https://github.com/atluslin/comfyui_arcane_style_trans": { + "stars": 0, + "last_update": "2025-03-14 01:25:41", + "author_account_age_days": 3462 + }, + "https://github.com/atmaranto/ComfyUI-SaveAsScript": { + "stars": 148, + "last_update": "2024-10-09 08:44:54", + "author_account_age_days": 2783 + }, + "https://github.com/attashe/ComfyUI-FluxRegionAttention": { + "stars": 135, + "last_update": "2025-03-02 16:37:39", + "author_account_age_days": 4059 + }, + "https://github.com/audioscavenger/ComfyUI-Thumbnails": { + "stars": 33, + "last_update": "2025-09-02 02:49:43", + "author_account_age_days": 4556 + }, + "https://github.com/audioscavenger/save-image-extended-comfyui": { + "stars": 111, + "last_update": "2025-09-02 01:48:10", + "author_account_age_days": 4556 + }, + "https://github.com/austinbrown34/ComfyUI-IO-Helpers": { + "stars": 1, + "last_update": "2025-02-13 14:29:22", + "author_account_age_days": 4533 + }, + "https://github.com/avatechai/avatar-graph-comfyui": { + "stars": 264, + "last_update": "2024-05-22 21:14:14", + "author_account_age_days": 1289 + }, + "https://github.com/avenstack/ComfyUI-AV-FunASR": { + "stars": 14, + "last_update": "2025-06-13 05:53:11", + "author_account_age_days": 139 + }, + "https://github.com/avenstack/ComfyUI-AV-LatentSync": { + "stars": 3, + "last_update": "2025-05-28 14:27:42", + "author_account_age_days": 139 + }, + "https://github.com/avenstack/ComfyUI-AV-MegaTTS3": { + "stars": 0, + "last_update": "2025-05-25 13:35:03", + "author_account_age_days": 139 + }, + "https://github.com/avocadori/ComfyUI-load-image-prompt-lora": { + "stars": 0, + "last_update": "2025-06-02 20:35:37", + "author_account_age_days": 508 + }, + "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock": { + "stars": 28, + "last_update": "2025-03-07 08:09:46", + "author_account_age_days": 3993 + }, + "https://github.com/azazeal04/Azazeal_Anime_Characters_ComfyUI": { + "stars": 1, + "last_update": "2025-06-21 18:26:40", + "author_account_age_days": 853 + }, + "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes": { + "stars": 4, + "last_update": "2024-05-22 23:16:28", + "author_account_age_days": 736 + }, + "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes": { + "stars": 7, + "last_update": "2025-05-11 05:18:07", + "author_account_age_days": 736 + }, + "https://github.com/babe-and-spencer-enterprises/base-comfyui-node": { + "stars": 4, + "last_update": "2025-06-23 16:12:19", + "author_account_age_days": 112 + }, + "https://github.com/bablueza/ComfyUI-Vaja-Ai4thai": { + "stars": 0, + "last_update": "2025-04-23 04:14:55", + "author_account_age_days": 2180 + }, + "https://github.com/babydjac/comfyui-grok-prompts": { + "stars": 1, + "last_update": "2025-06-06 09:47:19", + "author_account_age_days": 840 + }, + "https://github.com/babydjac/comfyui-smart-scaler": { + "stars": 0, + "last_update": "2025-05-16 07:28:19", + "author_account_age_days": 840 + }, + "https://github.com/badayvedat/ComfyUI-fal-Connector": { + "stars": 44, + "last_update": "2025-06-20 15:50:56", + "author_account_age_days": 2205 + }, + "https://github.com/badjeff/comfyui_lora_tag_loader": { + "stars": 87, + "last_update": "2024-05-22 20:40:03", + "author_account_age_days": 5797 + }, + "https://github.com/badxprogramm/ComfyUI-GradientBlur": { + "stars": 1, + "last_update": "2025-04-10 03:47:51", + "author_account_age_days": 707 + }, + "https://github.com/baicai99/ComfyUI-FrameSkipping": { + "stars": 12, + "last_update": "2025-06-23 02:50:12", + "author_account_age_days": 1266 + }, + "https://github.com/bananasss00/ComfyUI-SP-Nodes": { + "stars": 15, + "last_update": "2025-08-29 18:40:07", + "author_account_age_days": 2969 + }, + "https://github.com/bananasss00/ComfyUI-flux_fill_patcher": { + "stars": 7, + "last_update": "2024-11-25 20:04:20", + "author_account_age_days": 2969 + }, + "https://github.com/banodoco/steerable-motion": { + "stars": 925, + "last_update": "2025-06-27 15:56:48", + "author_account_age_days": 837 + }, + "https://github.com/banqingyuan/ComfyUI-text-replace": { + "stars": 0, + "last_update": "2024-09-22 16:14:22", + "author_account_age_days": 2734 + }, + "https://github.com/bartly/Comfyui_babel_removebg_api": { + "stars": 6, + "last_update": "2024-10-14 00:48:34", + "author_account_age_days": 4562 + }, + "https://github.com/bash-j/mikey_nodes": { + "stars": 158, + "last_update": "2025-03-22 01:52:20", + "author_account_age_days": 4622 + }, + "https://github.com/bbaudio-2025/ComfyUI-SuperUltimateVaceTools": { + "stars": 114, + "last_update": "2025-08-27 05:05:55", + "author_account_age_days": 60 + }, + "https://github.com/bbtaivi/ComfyUI-Aiv-Param": { + "stars": 1, + "last_update": "2025-02-16 03:01:20", + "author_account_age_days": 889 + }, + "https://github.com/bear2b/comfyui-argo-nodes": { + "stars": 0, + "last_update": "2025-01-16 11:11:38", + "author_account_age_days": 3400 + }, + "https://github.com/bedovyy/ComfyUI_NAIDGenerator": { + "stars": 73, + "last_update": "2025-05-30 14:03:50", + "author_account_age_days": 797 + }, + "https://github.com/bemoregt/ComfyUI_CustomNode_Image2Spectrum": { + "stars": 1, + "last_update": "2025-03-28 12:13:20", + "author_account_age_days": 3395 + }, + "https://github.com/benda1989/CosyVoice2_ComfyUI": { + "stars": 22, + "last_update": "2025-04-16 08:39:57", + "author_account_age_days": 2548 + }, + "https://github.com/benda1989/Sonic_ComfyUI": { + "stars": 3, + "last_update": "2025-02-24 10:04:56", + "author_account_age_days": 2548 + }, + "https://github.com/benjamin-bertram/Comfyui_OIDN_Denoiser": { + "stars": 0, + "last_update": "2025-06-12 22:37:05", + "author_account_age_days": 2201 + }, + "https://github.com/benjiyaya/ComfyUI-HunyuanVideoImagesGuider": { + "stars": 29, + "last_update": "2025-01-14 10:42:44", + "author_account_age_days": 548 + }, + "https://github.com/benjiyaya/ComfyUI-KokoroTTS": { + "stars": 63, + "last_update": "2025-03-18 20:13:52", + "author_account_age_days": 548 + }, + "https://github.com/benstaniford/comfy-contact-sheet-image-loader": { + "stars": 10, + "last_update": "2025-08-02 06:16:57", + "author_account_age_days": 4903 + }, + "https://github.com/benstaniford/comfy-image-switch": { + "stars": 0, + "last_update": "2025-08-03 06:08:05", + "author_account_age_days": 4903 + }, + "https://github.com/benstaniford/comfy-load-last-image": { + "stars": 0, + "last_update": "2025-07-08 07:19:46", + "author_account_age_days": 4903 + }, + "https://github.com/benstaniford/comfy-lora-loader-with-triggerdb": { + "stars": 31, + "last_update": "2025-07-14 19:10:28", + "author_account_age_days": 4903 + }, + "https://github.com/benstaniford/comfy-prompt-db": { + "stars": 3, + "last_update": "2025-07-29 07:27:44", + "author_account_age_days": 4903 + }, + "https://github.com/bentoml/comfy-pack": { + "stars": 177, + "last_update": "2025-08-29 01:35:47", + "author_account_age_days": 2345 + }, + "https://github.com/bhvbhushan/ComfyUI-LoRABlockWeight": { + "stars": 0, + "last_update": "2025-08-21 16:54:53", + "author_account_age_days": 3113 + }, + "https://github.com/big-mon/ComfyUI-ResolutionPresets": { + "stars": 1, + "last_update": "2025-04-12 17:05:21", + "author_account_age_days": 3111 + }, + "https://github.com/bikiam/ComfyUI_WhisperSRT": { + "stars": 1, + "last_update": "2025-06-01 13:56:23", + "author_account_age_days": 585 + }, + "https://github.com/bilal-arikan/ComfyUI_TextAssets": { + "stars": 2, + "last_update": "2024-05-22 23:23:50", + "author_account_age_days": 3942 + }, + "https://github.com/billwuhao/ComfyUI_ACE-Step": { + "stars": 170, + "last_update": "2025-05-28 08:39:13", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_AudioTools": { + "stars": 58, + "last_update": "2025-07-07 05:08:44", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_CSM": { + "stars": 5, + "last_update": "2025-06-02 14:00:17", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_DiffRhythm": { + "stars": 126, + "last_update": "2025-05-30 12:12:57", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_EraX-WoW-Turbo": { + "stars": 14, + "last_update": "2025-05-23 09:41:43", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_IndexTTS": { + "stars": 157, + "last_update": "2025-06-02 13:54:19", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_KokoroTTS_MW": { + "stars": 27, + "last_update": "2025-06-02 14:03:36", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_MegaTTS3": { + "stars": 119, + "last_update": "2025-06-11 01:01:40", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_NotaGen": { + "stars": 50, + "last_update": "2025-06-06 02:58:28", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_OneButtonPrompt": { + "stars": 21, + "last_update": "2025-07-07 10:55:15", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_OuteTTS": { + "stars": 10, + "last_update": "2025-06-11 06:14:07", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_PortraitTools": { + "stars": 19, + "last_update": "2025-06-15 13:31:45", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_SOME": { + "stars": 6, + "last_update": "2025-06-10 08:08:17", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_SparkTTS": { + "stars": 47, + "last_update": "2025-05-23 09:45:08", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_StepAudioTTS": { + "stars": 143, + "last_update": "2025-05-23 09:45:26", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_gemmax": { + "stars": 26, + "last_update": "2025-05-30 12:17:42", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/ComfyUI_parakeet-tdt": { + "stars": 3, + "last_update": "2025-06-15 13:24:58", + "author_account_age_days": 2371 + }, + "https://github.com/billwuhao/Comfyui_HeyGem": { + "stars": 122, + "last_update": "2025-06-02 14:14:35", + "author_account_age_days": 2371 + }, + "https://github.com/birdneststream/ComfyUI-Mircify": { + "stars": 0, + "last_update": "2025-08-31 02:51:11", + "author_account_age_days": 1801 + }, + "https://github.com/bitaffinity/ComfyUI_HF_Inference": { + "stars": 5, + "last_update": "2024-06-14 10:23:29", + "author_account_age_days": 492 + }, + "https://github.com/black-forest-labs/bfl-comfy-nodes": { + "stars": 86, + "last_update": "2025-02-07 22:13:26", + "author_account_age_days": 531 + }, + "https://github.com/blackcodetavern/ComfyUI-Benripack": { + "stars": 5, + "last_update": "2024-09-07 09:06:00", + "author_account_age_days": 3308 + }, + "https://github.com/blepping/ComfyUI-ApplyResAdapterUnet": { + "stars": 31, + "last_update": "2025-02-27 16:14:46", + "author_account_age_days": 589 + }, + "https://github.com/blepping/ComfyUI-bleh": { + "stars": 116, + "last_update": "2025-08-30 02:00:55", + "author_account_age_days": 589 + }, + "https://github.com/blepping/ComfyUI-sonar": { + "stars": 47, + "last_update": "2025-08-08 16:02:55", + "author_account_age_days": 589 + }, + "https://github.com/blepping/comfyui_jankdiffusehigh": { + "stars": 36, + "last_update": "2025-05-06 10:28:37", + "author_account_age_days": 589 + }, + "https://github.com/blepping/comfyui_jankhidiffusion": { + "stars": 123, + "last_update": "2025-05-06 10:34:03", + "author_account_age_days": 589 + }, + "https://github.com/blepping/comfyui_overly_complicated_sampling": { + "stars": 28, + "last_update": "2025-08-09 13:28:10", + "author_account_age_days": 589 + }, + "https://github.com/blib-la/blibla-comfyui-extensions": { + "stars": 173, + "last_update": "2025-04-29 06:49:03", + "author_account_age_days": 708 + }, + "https://github.com/blird/ComfyUI-Wanify": { + "stars": 0, + "last_update": "2025-07-18 13:48:00", + "author_account_age_days": 2772 + }, + "https://github.com/blob8/ComfyUI_sloppy-comic": { + "stars": 9, + "last_update": "2024-09-20 18:53:34", + "author_account_age_days": 503 + }, + "https://github.com/blovett80/ComfyUI-PixelDojo": { + "stars": 0, + "last_update": "2025-03-27 10:30:18", + "author_account_age_days": 637 + }, + "https://github.com/blueraincoatli/comfyUI_SillyNodes": { + "stars": 3, + "last_update": "2025-01-17 09:17:48", + "author_account_age_days": 747 + }, + "https://github.com/bluevisor/ComfyUI_PS_Blend_Node": { + "stars": 2, + "last_update": "2025-03-31 08:48:48", + "author_account_age_days": 5002 + }, + "https://github.com/bmad4ever/ComfyUI-Bmad-DirtyUndoRedo": { + "stars": 47, + "last_update": "2024-05-22 18:11:51", + "author_account_age_days": 3971 + }, + "https://github.com/bmad4ever/comfyui_ab_samplercustom": { + "stars": 9, + "last_update": "2024-09-17 20:18:46", + "author_account_age_days": 3971 + }, + "https://github.com/bmad4ever/comfyui_lists_cartesian_product": { + "stars": 4, + "last_update": "2025-03-17 14:49:40", + "author_account_age_days": 3971 + }, + "https://github.com/bmad4ever/comfyui_quilting": { + "stars": 10, + "last_update": "2025-03-17 14:50:15", + "author_account_age_days": 3971 + }, + "https://github.com/bmad4ever/comfyui_wfc_like": { + "stars": 5, + "last_update": "2025-03-17 14:51:47", + "author_account_age_days": 3971 + }, + "https://github.com/bobmagicii/comfykit-custom-nodes": { + "stars": 1, + "last_update": "2024-08-22 22:28:30", + "author_account_age_days": 5179 + }, + "https://github.com/bollerdominik/ComfyUI-load-lora-from-url": { + "stars": 0, + "last_update": "2025-08-31 07:54:21", + "author_account_age_days": 3849 + }, + "https://github.com/bombax-xiaoice/ComfyUI-Allegro": { + "stars": 4, + "last_update": "2025-05-13 04:00:11", + "author_account_age_days": 343 + }, + "https://github.com/bombax-xiaoice/ComfyUI-DisPose": { + "stars": 0, + "last_update": "2025-03-03 06:49:40", + "author_account_age_days": 343 + }, + "https://github.com/bombax-xiaoice/ComfyUI-MagicDance": { + "stars": 2, + "last_update": "2024-12-26 04:43:40", + "author_account_age_days": 343 + }, + "https://github.com/bombax-xiaoice/ComfyUI-Open-Sora-I2V": { + "stars": 1, + "last_update": "2025-01-21 07:58:50", + "author_account_age_days": 343 + }, + "https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan": { + "stars": 1, + "last_update": "2025-01-22 05:38:11", + "author_account_age_days": 343 + }, + "https://github.com/bombless/comfyUI-RememberingUtils": { + "stars": 0, + "last_update": "2024-12-25 01:31:05", + "author_account_age_days": 4994 + }, + "https://github.com/bongsang/ComfyUI-Bongsang": { + "stars": 0, + "last_update": "2025-01-05 05:42:30", + "author_account_age_days": 4038 + }, + "https://github.com/boredofnames/ComfyUI-ntfy": { + "stars": 0, + "last_update": "2025-03-28 00:54:54", + "author_account_age_days": 4533 + }, + "https://github.com/boricuapab/ComfyUI-Bori-JsonSetGetConverter": { + "stars": 0, + "last_update": "2025-08-17 21:49:36", + "author_account_age_days": 2004 + }, + "https://github.com/boricuapab/ComfyUI-Bori-QwenImageResolutions": { + "stars": 2, + "last_update": "2025-08-10 07:43:57", + "author_account_age_days": 2004 + }, + "https://github.com/bradsec/ComfyUI_ResolutionSelector": { + "stars": 14, + "last_update": "2024-07-07 12:15:49", + "author_account_age_days": 4091 + }, + "https://github.com/bradsec/ComfyUI_StringEssentials": { + "stars": 20, + "last_update": "2025-06-09 06:17:09", + "author_account_age_days": 4091 + }, + "https://github.com/braintacles/braintacles-comfyui-nodes": { + "stars": 2, + "last_update": "2024-07-31 15:01:52", + "author_account_age_days": 866 + }, + "https://github.com/brantje/ComfyUI-api-tools": { + "stars": 5, + "last_update": "2025-05-28 11:37:29", + "author_account_age_days": 4680 + }, + "https://github.com/brantje/ComfyUI_MagicQuill": { + "stars": 3, + "last_update": "2025-05-20 19:32:21", + "author_account_age_days": 4680 + }, + "https://github.com/brayevalerien/ComfyUI-SplitString": { + "stars": 1, + "last_update": "2025-07-25 10:57:00", + "author_account_age_days": 2029 + }, + "https://github.com/brayevalerien/ComfyUI-resynthesizer": { + "stars": 25, + "last_update": "2025-07-25 10:07:21", + "author_account_age_days": 2029 + }, + "https://github.com/brianfitzgerald/style_aligned_comfy": { + "stars": 306, + "last_update": "2025-03-24 20:04:44", + "author_account_age_days": 4674 + }, + "https://github.com/bronkula/comfyui-fitsize": { + "stars": 48, + "last_update": "2024-05-22 21:32:34", + "author_account_age_days": 5590 + }, + "https://github.com/brucew4yn3rp/ComfyUI_SelectiveMetadata": { + "stars": 0, + "last_update": "2025-07-20 04:08:09", + "author_account_age_days": 819 + }, + "https://github.com/bruefire/ComfyUI-SeqImageLoader": { + "stars": 45, + "last_update": "2025-06-29 12:48:28", + "author_account_age_days": 2801 + }, + "https://github.com/budihartono/comfyui-aspect-ratio-presets": { + "stars": 2, + "last_update": "2025-08-26 06:14:34", + "author_account_age_days": 5121 + }, + "https://github.com/budihartono/comfyui_otonx_nodes": { + "stars": 1, + "last_update": "2024-07-31 16:01:47", + "author_account_age_days": 5121 + }, + "https://github.com/bugltd/ComfyLab-Pack": { + "stars": 8, + "last_update": "2025-05-13 17:35:50", + "author_account_age_days": 234 + }, + "https://github.com/burnsbert/ComfyUI-EBU-LMStudio": { + "stars": 18, + "last_update": "2025-08-30 18:11:35", + "author_account_age_days": 5080 + }, + "https://github.com/burnsbert/ComfyUI-EBU-PromptHelper": { + "stars": 2, + "last_update": "2025-07-21 02:04:36", + "author_account_age_days": 5080 + }, + "https://github.com/burnsbert/ComfyUI-EBU-Workflow": { + "stars": 0, + "last_update": "2025-08-30 18:20:37", + "author_account_age_days": 5080 + }, + "https://github.com/bvhari/ComfyUI_CFGStar": { + "stars": 1, + "last_update": "2025-04-10 17:53:08", + "author_account_age_days": 1610 + }, + "https://github.com/bvhari/ComfyUI_ImageProcessing": { + "stars": 24, + "last_update": "2025-03-30 18:55:42", + "author_account_age_days": 1610 + }, + "https://github.com/bvhari/ComfyUI_PerpCFG": { + "stars": 1, + "last_update": "2025-03-30 18:53:54", + "author_account_age_days": 1610 + }, + "https://github.com/bvhari/ComfyUI_PerpWeight": { + "stars": 12, + "last_update": "2025-03-30 18:55:52", + "author_account_age_days": 1610 + }, + "https://github.com/bvhari/ComfyUI_SUNoise": { + "stars": 14, + "last_update": "2025-03-30 18:55:16", + "author_account_age_days": 1610 + }, + "https://github.com/bytedance/ComfyUI-HyperLoRA": { + "stars": 421, + "last_update": "2025-06-25 08:47:51", + "author_account_age_days": 4523 + }, + "https://github.com/bytedance/ComfyUI_InfiniteYou": { + "stars": 263, + "last_update": "2025-07-25 04:53:32", + "author_account_age_days": 4523 + }, + "https://github.com/bytedance/comfyui-lumi-batcher": { + "stars": 409, + "last_update": "2025-08-11 11:23:43", + "author_account_age_days": 4523 + }, + "https://github.com/c0ffymachyne/ComfyUI_BeatByte": { + "stars": 8, + "last_update": "2025-04-03 03:08:15", + "author_account_age_days": 4950 + }, + "https://github.com/c0ffymachyne/ComfyUI_SignalProcessing": { + "stars": 16, + "last_update": "2025-05-14 01:41:00", + "author_account_age_days": 4950 + }, + "https://github.com/cake-ml/tiny-sana-preview": { + "stars": 2, + "last_update": "2025-02-08 00:36:49", + "author_account_age_days": 317 + }, + "https://github.com/calcuis/gguf": { + "stars": 111, + "last_update": "2025-08-30 14:22:13", + "author_account_age_days": 1082 + }, + "https://github.com/caleboleary/ComfyUI-Arc2Face": { + "stars": 47, + "last_update": "2024-09-02 23:00:00", + "author_account_age_days": 3737 + }, + "https://github.com/caleboleary/Comfyui-calbenodes": { + "stars": 1, + "last_update": "2024-09-16 19:27:58", + "author_account_age_days": 3737 + }, + "https://github.com/camenduru/ComfyUI-TostAI": { + "stars": 1, + "last_update": "2024-08-22 04:04:06", + "author_account_age_days": 2203 + }, + "https://github.com/cardenluo/ComfyUI-Apt_Preset": { + "stars": 172, + "last_update": "2025-09-02 15:28:03", + "author_account_age_days": 839 + }, + "https://github.com/casterpollux/MiniMax-bmo": { + "stars": 46, + "last_update": "2025-06-24 19:22:18", + "author_account_age_days": 108 + }, + "https://github.com/catboxanon/comfyui_stealth_pnginfo": { + "stars": 3, + "last_update": "2025-04-09 03:39:29", + "author_account_age_days": 966 + }, + "https://github.com/cathodeDreams/comfyui-azul-scripts": { + "stars": 0, + "last_update": "2025-04-30 17:03:38", + "author_account_age_days": 903 + }, + "https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life": { + "stars": 478, + "last_update": "2024-09-12 06:55:50", + "author_account_age_days": 1639 + }, + "https://github.com/cdb-boop/comfyui-image-round": { + "stars": 10, + "last_update": "2025-05-10 13:32:13", + "author_account_age_days": 1639 + }, + "https://github.com/cdxOo/comfyui-text-node-with-comments": { + "stars": 1, + "last_update": "2024-08-03 00:54:38", + "author_account_age_days": 3731 + }, + "https://github.com/cedarconnor/ComfyUI_HunyuanWorld": { + "stars": 6, + "last_update": "2025-08-11 02:51:59", + "author_account_age_days": 4730 + }, + "https://github.com/cedarconnor/comfyui-BatchNameLoop": { + "stars": 0, + "last_update": "2025-07-22 04:11:06", + "author_account_age_days": 4730 + }, + "https://github.com/cedarconnor/comfyui-LatLong": { + "stars": 0, + "last_update": "2025-08-13 03:01:14", + "author_account_age_days": 4730 + }, + "https://github.com/cedarconnor/upsampler": { + "stars": 2, + "last_update": "2025-07-24 04:54:00", + "author_account_age_days": 4730 + }, + "https://github.com/celoron/ComfyUI-VisualQueryTemplate": { + "stars": 12, + "last_update": "2025-04-01 20:35:56", + "author_account_age_days": 5447 + }, + "https://github.com/celsojr2013/comfyui_jamworks_client": { + "stars": 0, + "last_update": "2024-06-23 12:35:44", + "author_account_age_days": 3834 + }, + "https://github.com/celsojr2013/comfyui_simpletools": { + "stars": 3, + "last_update": "2024-06-22 11:35:40", + "author_account_age_days": 3834 + }, + "https://github.com/cenzijing/ComfyUI-Markmap": { + "stars": 1, + "last_update": "2025-01-04 21:00:08", + "author_account_age_days": 1900 + }, + "https://github.com/cerspense/ComfyUI_cspnodes": { + "stars": 34, + "last_update": "2024-12-17 04:07:09", + "author_account_age_days": 3117 + }, + "https://github.com/ceruleandeep/ComfyUI-LLaVA-Captioner": { + "stars": 139, + "last_update": "2024-08-03 16:22:31", + "author_account_age_days": 1588 + }, + "https://github.com/cganimitta/ComfyUI_CGAnimittaTools": { + "stars": 43, + "last_update": "2025-04-11 05:29:55", + "author_account_age_days": 1011 + }, + "https://github.com/chakib-belgaid/ComfyUI-autosize": { + "stars": 0, + "last_update": "2024-06-14 07:13:20", + "author_account_age_days": 4271 + }, + "https://github.com/chakib-belgaid/Comfyui_Prompt_styler": { + "stars": 0, + "last_update": "2024-07-01 12:40:52", + "author_account_age_days": 4271 + }, + "https://github.com/chandlergis/ComfyUI-IMG_Query": { + "stars": 1, + "last_update": "2024-05-23 01:25:57", + "author_account_age_days": 791 + }, + "https://github.com/chandlergis/ComfyUI_EmojiOverlay": { + "stars": 0, + "last_update": "2024-06-14 09:05:03", + "author_account_age_days": 791 + }, + "https://github.com/changwook987/ComfyUI-Small-Utility": { + "stars": 0, + "last_update": "2025-01-25 17:18:32", + "author_account_age_days": 1628 + }, + "https://github.com/chaojie/ComfyUI-AniPortrait": { + "stars": 253, + "last_update": "2024-05-22 22:26:03", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper": { + "stars": 25, + "last_update": "2024-06-14 09:07:23", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Champ": { + "stars": 24, + "last_update": "2024-05-22 22:26:47", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-DragAnything": { + "stars": 70, + "last_update": "2024-06-14 10:23:53", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-DragNUWA": { + "stars": 410, + "last_update": "2024-06-14 10:25:01", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-DynamiCrafter": { + "stars": 130, + "last_update": "2024-06-14 10:23:59", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-EasyAnimate": { + "stars": 54, + "last_update": "2024-05-22 22:24:00", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Gemma": { + "stars": 6, + "last_update": "2024-05-22 22:27:47", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-I2VGEN-XL": { + "stars": 28, + "last_update": "2024-06-14 09:06:10", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Img2Img-Turbo": { + "stars": 38, + "last_update": "2024-05-22 22:26:30", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-LaVIT": { + "stars": 12, + "last_update": "2024-06-14 10:27:44", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-LightGlue": { + "stars": 48, + "last_update": "2024-01-20 16:53:51", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Moore-AnimateAnyone": { + "stars": 213, + "last_update": "2024-06-10 20:16:06", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Motion-Vector-Extractor": { + "stars": 1, + "last_update": "2024-06-14 10:26:15", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-MotionCtrl": { + "stars": 139, + "last_update": "2024-06-14 10:26:02", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-MotionCtrl-SVD": { + "stars": 86, + "last_update": "2024-06-14 10:26:30", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-MuseTalk": { + "stars": 272, + "last_update": "2024-05-22 22:25:07", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-MuseV": { + "stars": 158, + "last_update": "2024-05-22 22:25:31", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Open-Sora": { + "stars": 104, + "last_update": "2024-07-19 05:13:25", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Open-Sora-Plan": { + "stars": 50, + "last_update": "2024-05-29 16:15:10", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Panda3d": { + "stars": 16, + "last_update": "2024-06-14 10:28:47", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Pymunk": { + "stars": 16, + "last_update": "2024-06-14 12:02:32", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-RAFT": { + "stars": 26, + "last_update": "2024-06-14 11:02:00", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-SimDA": { + "stars": 13, + "last_update": "2024-06-14 12:02:39", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Trajectory": { + "stars": 6, + "last_update": "2024-05-22 22:27:12", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention": { + "stars": 17, + "last_update": "2024-06-14 10:28:16", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-dust3r": { + "stars": 22, + "last_update": "2024-05-22 22:27:33", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI_StreamingT2V": { + "stars": 37, + "last_update": "2024-06-14 10:26:21", + "author_account_age_days": 5269 + }, + "https://github.com/chaosaiart/Chaosaiart-Nodes": { + "stars": 109, + "last_update": "2025-05-06 07:15:41", + "author_account_age_days": 769 + }, + "https://github.com/charlyad142/ComfyUI_Charly_FitToAspectNode": { + "stars": 0, + "last_update": "2025-08-01 20:21:22", + "author_account_age_days": 3050 + }, + "https://github.com/charlyad142/ComfyUI_bfl_api_pro_nodes": { + "stars": 0, + "last_update": "2025-08-18 21:40:21", + "author_account_age_days": 3050 + }, + "https://github.com/chaserhkj/ComfyUI-Chaser-nodes": { + "stars": 0, + "last_update": "2025-09-01 01:10:28", + "author_account_age_days": 4850 + }, + "https://github.com/checkbins/checkbin-comfy": { + "stars": 0, + "last_update": "2025-01-31 18:05:33", + "author_account_age_days": 318 + }, + "https://github.com/chenbaiyujason/ComfyUI_StepFun": { + "stars": 7, + "last_update": "2024-12-05 14:45:27", + "author_account_age_days": 2169 + }, + "https://github.com/chenlongming/ComfyUI_Spectral": { + "stars": 1, + "last_update": "2025-02-22 17:20:35", + "author_account_age_days": 3613 + }, + "https://github.com/chenpipi0807/ComfyUI-Index-TTS": { + "stars": 315, + "last_update": "2025-06-25 14:30:23", + "author_account_age_days": 722 + }, + "https://github.com/chenpipi0807/ComfyUI_NSFW_Godie": { + "stars": 2, + "last_update": "2025-03-20 11:48:28", + "author_account_age_days": 722 + }, + "https://github.com/chenpipi0807/Comfyui-Qwen-image-edit-CharacterConsistency": { + "stars": 21, + "last_update": "2025-08-22 03:47:30", + "author_account_age_days": 722 + }, + "https://github.com/chenpipi0807/PIP_ArtisticWords": { + "stars": 28, + "last_update": "2025-03-21 07:29:20", + "author_account_age_days": 722 + }, + "https://github.com/chenpx976/ComfyUI-RunRunRun": { + "stars": 0, + "last_update": "2024-05-23 01:19:37", + "author_account_age_days": 3850 + }, + "https://github.com/cherninlab/logo-generator-comfyui": { + "stars": 2, + "last_update": "2024-12-22 15:45:31", + "author_account_age_days": 532 + }, + "https://github.com/chesnokovivan/ComfyUI-Novakid": { + "stars": 0, + "last_update": "2024-06-10 20:15:56", + "author_account_age_days": 1965 + }, + "https://github.com/chflame163/ComfyUI_CatVTON_Wrapper": { + "stars": 356, + "last_update": "2025-01-01 12:55:16", + "author_account_age_days": 879 + }, + "https://github.com/chflame163/ComfyUI_CogView4_Wrapper": { + "stars": 53, + "last_update": "2025-03-06 09:27:25", + "author_account_age_days": 879 + }, + "https://github.com/chflame163/ComfyUI_FaceSimilarity": { + "stars": 33, + "last_update": "2025-03-31 13:12:01", + "author_account_age_days": 879 + }, + "https://github.com/chflame163/ComfyUI_Janus_Wrapper": { + "stars": 18, + "last_update": "2025-03-12 02:00:43", + "author_account_age_days": 879 + }, + "https://github.com/chflame163/ComfyUI_LayerStyle": { + "stars": 2549, + "last_update": "2025-08-09 12:53:15", + "author_account_age_days": 879 + }, + "https://github.com/chflame163/ComfyUI_LayerStyle_Advance": { + "stars": 462, + "last_update": "2025-08-31 13:08:55", + "author_account_age_days": 879 + }, + "https://github.com/chflame163/ComfyUI_MSSpeech_TTS": { + "stars": 30, + "last_update": "2025-03-31 13:11:24", + "author_account_age_days": 879 + }, + "https://github.com/chflame163/ComfyUI_OmniGen_Wrapper": { + "stars": 145, + "last_update": "2025-03-12 01:58:47", + "author_account_age_days": 879 + }, + "https://github.com/chflame163/ComfyUI_WordCloud": { + "stars": 111, + "last_update": "2025-03-31 13:11:39", + "author_account_age_days": 879 + }, + "https://github.com/chibiace/ComfyUI-Chibi-Nodes": { + "stars": 77, + "last_update": "2025-03-18 11:13:16", + "author_account_age_days": 3284 + }, + "https://github.com/choey/Comfy-Topaz": { + "stars": 198, + "last_update": "2024-09-28 08:02:47", + "author_account_age_days": 5958 + }, + "https://github.com/chou18194766xx/comfyui-EncryptSave": { + "stars": 4, + "last_update": "2025-05-18 07:55:45", + "author_account_age_days": 661 + }, + "https://github.com/chou18194766xx/comfyui_EncryptPreview": { + "stars": 2, + "last_update": "2025-04-26 12:29:43", + "author_account_age_days": 661 + }, + "https://github.com/chri002/ComfyUI_depthMapOperation": { + "stars": 10, + "last_update": "2025-05-27 06:19:56", + "author_account_age_days": 2155 + }, + "https://github.com/chris-arsenault/ComfyUI-AharaNodes": { + "stars": 0, + "last_update": "2024-12-25 16:45:58", + "author_account_age_days": 4407 + }, + "https://github.com/chris-the-wiz/EmbeddingsCurveEditor_ComfyUI": { + "stars": 7, + "last_update": "2024-07-31 13:51:59", + "author_account_age_days": 2232 + }, + "https://github.com/chrisfreilich/virtuoso-nodes": { + "stars": 90, + "last_update": "2025-04-19 22:57:17", + "author_account_age_days": 1167 + }, + "https://github.com/chrisgoringe/cg-controller": { + "stars": 75, + "last_update": "2025-04-25 00:43:21", + "author_account_age_days": 4500 + }, + "https://github.com/chrisgoringe/cg-image-filter": { + "stars": 80, + "last_update": "2025-08-04 22:03:42", + "author_account_age_days": 4500 + }, + "https://github.com/chrisgoringe/cg-noisetools": { + "stars": 17, + "last_update": "2024-12-17 04:09:18", + "author_account_age_days": 4500 + }, + "https://github.com/chrisgoringe/cg-prompt-info": { + "stars": 32, + "last_update": "2024-05-22 21:07:33", + "author_account_age_days": 4500 + }, + "https://github.com/chrisgoringe/cg-use-everywhere": { + "stars": 778, + "last_update": "2025-09-02 02:30:19", + "author_account_age_days": 4500 + }, + "https://github.com/chrish-slingshot/CrasHUtils": { + "stars": 13, + "last_update": "2024-10-29 22:55:39", + "author_account_age_days": 1036 + }, + "https://github.com/chrissy0/chris-comfyui-nodes": { + "stars": 1, + "last_update": "2024-09-17 16:09:35", + "author_account_age_days": 2490 + }, + "https://github.com/christian-byrne/audio-separation-nodes-comfyui": { + "stars": 309, + "last_update": "2025-06-16 04:01:47", + "author_account_age_days": 1783 + }, + "https://github.com/christian-byrne/claude-code-comfyui-nodes": { + "stars": 7, + "last_update": "2025-06-17 04:43:43", + "author_account_age_days": 1783 + }, + "https://github.com/christian-byrne/comfyui-default-values-manager": { + "stars": 12, + "last_update": "2024-07-28 20:52:51", + "author_account_age_days": 1783 + }, + "https://github.com/christian-byrne/comfyui-search-navigation": { + "stars": 8, + "last_update": "2024-06-26 04:41:12", + "author_account_age_days": 1783 + }, + "https://github.com/christian-byrne/img2colors-comfyui-node": { + "stars": 13, + "last_update": "2025-01-05 18:48:59", + "author_account_age_days": 1783 + }, + "https://github.com/christian-byrne/img2txt-comfyui-nodes": { + "stars": 94, + "last_update": "2025-03-14 10:38:33", + "author_account_age_days": 1783 + }, + "https://github.com/christian-byrne/size-match-compositing-nodes": { + "stars": 5, + "last_update": "2025-01-05 17:45:02", + "author_account_age_days": 1783 + }, + "https://github.com/christian-byrne/youtube-dl-comfyui": { + "stars": 4, + "last_update": "2024-10-01 16:32:14", + "author_account_age_days": 1783 + }, + "https://github.com/chuchu114514/comfyui_proportion_solver": { + "stars": 1, + "last_update": "2025-07-06 08:58:20", + "author_account_age_days": 794 + }, + "https://github.com/chuchu114514/comfyui_text_list_stepper": { + "stars": 2, + "last_update": "2025-08-07 01:52:58", + "author_account_age_days": 794 + }, + "https://github.com/chyer/Chye-ComfyUI-Toolset": { + "stars": 0, + "last_update": "2025-08-31 12:00:23", + "author_account_age_days": 4467 + }, + "https://github.com/ciga2011/ComfyUI-MarkItDown": { + "stars": 8, + "last_update": "2025-02-27 20:16:01", + "author_account_age_days": 4634 + }, + "https://github.com/ciga2011/ComfyUI-Pollinations": { + "stars": 4, + "last_update": "2025-01-14 15:23:14", + "author_account_age_days": 4634 + }, + "https://github.com/ciga2011/ComfyUI-PromptOptimizer": { + "stars": 8, + "last_update": "2025-01-16 02:24:50", + "author_account_age_days": 4634 + }, + "https://github.com/ciri/comfyui-model-downloader": { + "stars": 82, + "last_update": "2025-03-24 14:53:09", + "author_account_age_days": 5805 + }, + "https://github.com/citronlegacy/ComfyUI-CitronNodes": { + "stars": 0, + "last_update": "2025-08-26 00:14:42", + "author_account_age_days": 4373 + }, + "https://github.com/city96/ComfyUI-GGUF": { + "stars": 2477, + "last_update": "2025-08-27 10:14:28", + "author_account_age_days": 932 + }, + "https://github.com/city96/ComfyUI_ColorMod": { + "stars": 98, + "last_update": "2024-08-06 22:38:54", + "author_account_age_days": 932 + }, + "https://github.com/city96/ComfyUI_DiT": { + "stars": 5, + "last_update": "2024-08-06 22:44:33", + "author_account_age_days": 932 + }, + "https://github.com/city96/ComfyUI_ExtraModels": { + "stars": 519, + "last_update": "2024-12-17 06:44:05", + "author_account_age_days": 932 + }, + "https://github.com/city96/ComfyUI_NetDist": { + "stars": 480, + "last_update": "2024-05-22 18:05:10", + "author_account_age_days": 932 + }, + "https://github.com/city96/SD-Latent-Interposer": { + "stars": 302, + "last_update": "2024-08-06 22:01:47", + "author_account_age_days": 932 + }, + "https://github.com/city96/SD-Latent-Upscaler": { + "stars": 163, + "last_update": "2024-05-22 18:05:50", + "author_account_age_days": 932 + }, + "https://github.com/civen-cn/ComfyUI-PaddleOcr": { + "stars": 8, + "last_update": "2024-12-31 19:11:04", + "author_account_age_days": 2940 + }, + "https://github.com/civen-cn/ComfyUI-Whisper-Translator": { + "stars": 7, + "last_update": "2025-01-04 03:37:06", + "author_account_age_days": 2940 + }, + "https://github.com/civitai/civitai_comfy_nodes": { + "stars": 150, + "last_update": "2024-08-25 03:32:49", + "author_account_age_days": 1033 + }, + "https://github.com/cjj198909/comfy_openai_image_api_azure": { + "stars": 0, + "last_update": "2025-07-16 05:37:48", + "author_account_age_days": 792 + }, + "https://github.com/claptrap0/ComfyUI_LLM_Hub": { + "stars": 1, + "last_update": "2025-07-13 11:51:08", + "author_account_age_days": 51 + }, + "https://github.com/claussteinmassl/ComfyUI-CS-CustomNodes": { + "stars": 1, + "last_update": "2024-06-14 09:03:10", + "author_account_age_days": 3135 + }, + "https://github.com/cleanlii/comfyui-dalle-integration": { + "stars": 1, + "last_update": "2025-04-02 08:29:56", + "author_account_age_days": 2538 + }, + "https://github.com/clhui/ComfyUi-clh-Tool": { + "stars": 7, + "last_update": "2024-12-28 10:22:00", + "author_account_age_days": 3264 + }, + "https://github.com/clouddreamfly/ComfyUI-PromptWrapper": { + "stars": 2, + "last_update": "2025-06-02 16:16:12", + "author_account_age_days": 2028 + }, + "https://github.com/cloudkoala/comfyui-koala": { + "stars": 0, + "last_update": "2025-06-06 00:17:19", + "author_account_age_days": 348 + }, + "https://github.com/cluny85/ComfyUI-Scripting-Tools": { + "stars": 0, + "last_update": "2025-06-16 12:28:27", + "author_account_age_days": 4981 + }, + "https://github.com/cmdicely/simple_image_to_palette": { + "stars": 0, + "last_update": "2025-06-22 03:20:08", + "author_account_age_days": 5919 + }, + "https://github.com/cnbjjj/ComfyUI-Jtils": { + "stars": 3, + "last_update": "2025-05-10 23:25:19", + "author_account_age_days": 609 + }, + "https://github.com/cnnmmd/comfyui_xoxxox_cnnmmd": { + "stars": 0, + "last_update": "2025-08-29 13:27:35", + "author_account_age_days": 43 + }, + "https://github.com/codecringebinge/ComfyUI-Arrow-Key-Canvas-Navigation": { + "stars": 2, + "last_update": "2024-09-29 22:35:01", + "author_account_age_days": 3233 + }, + "https://github.com/codeprimate/ComfyUI-MaskContourProcessor": { + "stars": 2, + "last_update": "2024-12-16 06:53:08", + "author_account_age_days": 6284 + }, + "https://github.com/comfy-deploy/comfyui-llm-toolkit": { + "stars": 34, + "last_update": "2025-09-01 08:30:35", + "author_account_age_days": 602 + }, + "https://github.com/comfyanonymous/ComfyUI": { + "stars": 87260, + "last_update": "2025-09-02 07:46:00", + "author_account_age_days": 984 + }, + "https://github.com/comfyanonymous/ComfyUI_TensorRT": { + "stars": 646, + "last_update": "2024-10-10 00:23:55", + "author_account_age_days": 984 + }, + "https://github.com/comfyanonymous/ComfyUI_experiments": { + "stars": 189, + "last_update": "2024-05-22 15:29:49", + "author_account_age_days": 984 + }, + "https://github.com/comfyui-wiki/ComfyUI-Wiki-Workflows": { + "stars": 4, + "last_update": "2025-08-26 14:55:48", + "author_account_age_days": 254 + }, + "https://github.com/comfyuistudio/ComfyUI-Studio-nodes": { + "stars": 0, + "last_update": "2025-07-29 20:43:40", + "author_account_age_days": 284 + }, + "https://github.com/comnote-max/builmenlabo": { + "stars": 1, + "last_update": "2025-07-24 08:37:04", + "author_account_age_days": 207 + }, + "https://github.com/concarne000/ComfyUI-Stacker": { + "stars": 6, + "last_update": "2025-07-26 12:44:46", + "author_account_age_days": 2336 + }, + "https://github.com/concarne000/ConCarneNode": { + "stars": 4, + "last_update": "2024-05-22 22:10:18", + "author_account_age_days": 2336 + }, + "https://github.com/conquestace/ComfyUI-ImageUploader": { + "stars": 5, + "last_update": "2024-05-23 01:25:49", + "author_account_age_days": 5044 + }, + "https://github.com/coolzilj/ComfyUI-LJNodes": { + "stars": 87, + "last_update": "2024-06-15 01:57:32", + "author_account_age_days": 5098 + }, + "https://github.com/coolzilj/ComfyUI-Photopea": { + "stars": 163, + "last_update": "2024-06-14 08:10:57", + "author_account_age_days": 5098 + }, + "https://github.com/coreyryanhanson/ComfyQR": { + "stars": 79, + "last_update": "2025-01-26 16:25:19", + "author_account_age_days": 3491 + }, + "https://github.com/coreyryanhanson/ComfyQR-scanning-nodes": { + "stars": 12, + "last_update": "2025-01-26 16:26:36", + "author_account_age_days": 3491 + }, + "https://github.com/coulterj/comfyui-svg-visual-normalize": { + "stars": 0, + "last_update": "2025-05-26 11:45:44", + "author_account_age_days": 3377 + }, + "https://github.com/cozy-comfyui/cozy_comm": { + "stars": 2, + "last_update": "2025-04-03 17:02:54", + "author_account_age_days": 501 + }, + "https://github.com/cozymantis/cozy-utils-comfyui-nodes": { + "stars": 5, + "last_update": "2025-04-07 09:53:31", + "author_account_age_days": 543 + }, + "https://github.com/cozymantis/human-parser-comfyui-node": { + "stars": 112, + "last_update": "2025-04-19 14:09:03", + "author_account_age_days": 543 + }, + "https://github.com/cozymantis/pose-generator-comfyui-node": { + "stars": 83, + "last_update": "2025-04-07 09:53:17", + "author_account_age_days": 543 + }, + "https://github.com/cr7Por/ComfyUI_DepthFlow": { + "stars": 5, + "last_update": "2024-09-16 09:10:08", + "author_account_age_days": 1560 + }, + "https://github.com/craig-tanaka/comfyui_animeseg": { + "stars": 1, + "last_update": "2025-05-20 18:59:45", + "author_account_age_days": 3044 + }, + "https://github.com/crave33/RenesStuffDanbooruTagGet": { + "stars": 0, + "last_update": "2025-02-23 15:48:48", + "author_account_age_days": 202 + }, + "https://github.com/crystian/ComfyUI-Crystools": { + "stars": 1404, + "last_update": "2025-08-17 11:39:44", + "author_account_age_days": 4552 + }, + "https://github.com/crystian/ComfyUI-Crystools-save": { + "stars": 47, + "last_update": "2025-08-17 12:29:48", + "author_account_age_days": 4552 + }, + "https://github.com/cuban044/ComfyUI-Veo3-Experimental": { + "stars": 0, + "last_update": "2025-07-23 11:04:17", + "author_account_age_days": 902 + }, + "https://github.com/cubiq/Block_Patcher_ComfyUI": { + "stars": 83, + "last_update": "2024-09-22 09:49:06", + "author_account_age_days": 5446 + }, + "https://github.com/cubiq/ComfyUI_FaceAnalysis": { + "stars": 484, + "last_update": "2025-05-20 05:18:36", + "author_account_age_days": 5446 + }, + "https://github.com/cubiq/ComfyUI_IPAdapter_plus": { + "stars": 5425, + "last_update": "2025-04-14 07:29:17", + "author_account_age_days": 5446 + }, + "https://github.com/cubiq/ComfyUI_InstantID": { + "stars": 1710, + "last_update": "2025-04-14 07:50:01", + "author_account_age_days": 5446 + }, + "https://github.com/cubiq/ComfyUI_essentials": { + "stars": 930, + "last_update": "2025-04-14 07:33:29", + "author_account_age_days": 5446 + }, + "https://github.com/cubiq/PuLID_ComfyUI": { + "stars": 887, + "last_update": "2025-04-14 07:47:23", + "author_account_age_days": 5446 + }, + "https://github.com/cuongloveit/comfy_http_request": { + "stars": 5, + "last_update": "2024-06-14 11:00:11", + "author_account_age_days": 3687 + }, + "https://github.com/curiousjp/ComfyUI-MaskBatchPermutations": { + "stars": 6, + "last_update": "2024-05-28 13:09:32", + "author_account_age_days": 2365 + }, + "https://github.com/cyberhirsch/seb_nodes": { + "stars": 1, + "last_update": "2025-07-12 12:45:36", + "author_account_age_days": 2302 + }, + "https://github.com/czcz1024/Comfyui-FaceCompare": { + "stars": 0, + "last_update": "2024-06-14 07:13:32", + "author_account_age_days": 4669 + }, + "https://github.com/da2el-ai/ComfyUI-d2-send-eagle": { + "stars": 16, + "last_update": "2025-03-10 14:31:22", + "author_account_age_days": 824 + }, + "https://github.com/da2el-ai/ComfyUI-d2-size-selector": { + "stars": 4, + "last_update": "2024-10-02 14:04:20", + "author_account_age_days": 824 + }, + "https://github.com/da2el-ai/ComfyUI-d2-steps": { + "stars": 5, + "last_update": "2024-10-02 14:03:14", + "author_account_age_days": 824 + }, + "https://github.com/da2el-ai/ComfyUI-d2-xyplot-utils": { + "stars": 5, + "last_update": "2024-10-02 14:00:58", + "author_account_age_days": 824 + }, + "https://github.com/da2el-ai/D2-PromptSelector-comfyUI": { + "stars": 3, + "last_update": "2025-04-05 03:00:34", + "author_account_age_days": 824 + }, + "https://github.com/da2el-ai/D2-SavePSD-ComfyUI": { + "stars": 3, + "last_update": "2025-04-08 15:28:06", + "author_account_age_days": 824 + }, + "https://github.com/da2el-ai/D2-nodes-ComfyUI": { + "stars": 39, + "last_update": "2025-08-22 14:06:19", + "author_account_age_days": 824 + }, + "https://github.com/dadoirie/ComfyUI_Dados_Nodes": { + "stars": 3, + "last_update": "2025-09-02 10:39:49", + "author_account_age_days": 2025 + }, + "https://github.com/daehwa00/ComfyUI-NanoBananaAPI": { + "stars": 2, + "last_update": "2025-09-01 11:13:47", + "author_account_age_days": 1990 + }, + "https://github.com/dafeng012/comfyui-imgmake": { + "stars": 15, + "last_update": "2024-11-03 17:38:47", + "author_account_age_days": 1111 + }, + "https://github.com/dagthomas/comfyui_dagthomas": { + "stars": 262, + "last_update": "2025-04-23 14:00:14", + "author_account_age_days": 4507 + }, + "https://github.com/danTheMonk/comfyui-int-and-float": { + "stars": 0, + "last_update": "2025-07-04 16:07:42", + "author_account_age_days": 3821 + }, + "https://github.com/danger-electrodes/ComfyUI_Fawfluencer_Nodes": { + "stars": 0, + "last_update": "2025-04-15 10:31:38", + "author_account_age_days": 825 + }, + "https://github.com/daniabib/ComfyUI_ProPainter_Nodes": { + "stars": 327, + "last_update": "2024-12-22 13:50:25", + "author_account_age_days": 2839 + }, + "https://github.com/daniel-lewis-ab/ComfyUI-Llama": { + "stars": 61, + "last_update": "2024-06-29 19:55:42", + "author_account_age_days": 3787 + }, + "https://github.com/daniel-lewis-ab/ComfyUI-TTS": { + "stars": 31, + "last_update": "2024-06-14 08:09:49", + "author_account_age_days": 3787 + }, + "https://github.com/darkpixel/darkprompts": { + "stars": 8, + "last_update": "2025-06-09 16:39:38", + "author_account_age_days": 5759 + }, + "https://github.com/darth-veitcher/comfydv": { + "stars": 1, + "last_update": "2025-05-13 07:24:56", + "author_account_age_days": 4864 + }, + "https://github.com/daryltucker/ComfyUI-LoadFiles": { + "stars": 2, + "last_update": "2024-08-31 23:59:44", + "author_account_age_days": 4899 + }, + "https://github.com/dasilva333/ComfyUI_ContrastingColor": { + "stars": 1, + "last_update": "2025-02-22 04:49:59", + "author_account_age_days": 5148 + }, + "https://github.com/dasilva333/ComfyUI_HunyuanVideo-Foley": { + "stars": 3, + "last_update": "2025-09-02 14:44:32", + "author_account_age_days": 5148 + }, + "https://github.com/dasilva333/ComfyUI_MarkdownImage": { + "stars": 0, + "last_update": "2025-04-12 03:11:13", + "author_account_age_days": 5148 + }, + "https://github.com/dave-palt/comfyui_DSP_imagehelpers": { + "stars": 0, + "last_update": "2024-05-22 23:12:11", + "author_account_age_days": 593 + }, + "https://github.com/davidgressett/comfyui-systemlevel": { + "stars": 0, + "last_update": "2025-01-22 23:51:40", + "author_account_age_days": 3065 + }, + "https://github.com/daxcay/ComfyUI-DataSet": { + "stars": 55, + "last_update": "2025-03-01 05:24:50", + "author_account_age_days": 530 + }, + "https://github.com/daxcay/ComfyUI-JDCN": { + "stars": 125, + "last_update": "2025-04-14 09:20:22", + "author_account_age_days": 530 + }, + "https://github.com/daxcay/ComfyUI-NODEJS": { + "stars": 14, + "last_update": "2024-11-28 09:46:29", + "author_account_age_days": 530 + }, + "https://github.com/daxcay/ComfyUI-Nexus": { + "stars": 88, + "last_update": "2025-03-01 15:40:05", + "author_account_age_days": 530 + }, + "https://github.com/daxcay/ComfyUI-TG": { + "stars": 21, + "last_update": "2024-11-28 09:45:12", + "author_account_age_days": 530 + }, + "https://github.com/daxcay/ComfyUI-WA": { + "stars": 49, + "last_update": "2024-11-28 09:44:50", + "author_account_age_days": 530 + }, + "https://github.com/daxcay/ComfyUI-YouTubeVideoPlayer": { + "stars": 5, + "last_update": "2024-11-28 09:45:30", + "author_account_age_days": 530 + }, + "https://github.com/dchatel/comfyui_davcha": { + "stars": 1, + "last_update": "2025-08-02 11:35:06", + "author_account_age_days": 4970 + }, + "https://github.com/dchatel/comfyui_facetools": { + "stars": 148, + "last_update": "2025-05-18 12:30:50", + "author_account_age_days": 4970 + }, + "https://github.com/denfrost/Den_ComfyUI_Workflow": { + "stars": 4, + "last_update": "2025-05-07 07:15:01", + "author_account_age_days": 3932 + }, + "https://github.com/deroberon/StableZero123-comfyui": { + "stars": 175, + "last_update": "2024-05-22 22:09:53", + "author_account_age_days": 5731 + }, + "https://github.com/deroberon/demofusion-comfyui": { + "stars": 88, + "last_update": "2024-05-22 22:09:42", + "author_account_age_days": 5731 + }, + "https://github.com/dfghsdh/ComfyUI_FluxPromptGen": { + "stars": 13, + "last_update": "2024-09-23 07:51:56", + "author_account_age_days": 344 + }, + "https://github.com/dfl/comfyui-clip-with-break": { + "stars": 14, + "last_update": "2025-03-04 20:16:06", + "author_account_age_days": 6409 + }, + "https://github.com/dfl/comfyui-tcd-scheduler": { + "stars": 84, + "last_update": "2024-05-22 23:23:28", + "author_account_age_days": 6409 + }, + "https://github.com/diStyApps/ComfyUI-disty-Flow": { + "stars": 556, + "last_update": "2025-01-04 18:03:37", + "author_account_age_days": 4639 + }, + "https://github.com/diStyApps/ComfyUI_FrameMaker": { + "stars": 22, + "last_update": "2024-05-23 00:11:33", + "author_account_age_days": 4639 + }, + "https://github.com/dicksensei69/comfyui_loops": { + "stars": 1, + "last_update": "2025-05-03 22:22:55", + "author_account_age_days": 1070 + }, + "https://github.com/dicksondickson/ComfyUI-Dickson-Nodes": { + "stars": 10, + "last_update": "2024-09-18 04:30:33", + "author_account_age_days": 4426 + }, + "https://github.com/digitaljohn/comfyui-propost": { + "stars": 182, + "last_update": "2025-02-10 23:25:24", + "author_account_age_days": 4953 + }, + "https://github.com/dimtion/comfyui-raw-image": { + "stars": 2, + "last_update": "2025-07-19 22:22:37", + "author_account_age_days": 4799 + }, + "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector": { + "stars": 318, + "last_update": "2025-08-30 16:22:48", + "author_account_age_days": 3849 + }, + "https://github.com/dimtoneff/ComfyUI-VL-Nodes": { + "stars": 5, + "last_update": "2025-08-29 01:10:55", + "author_account_age_days": 3849 + }, + "https://github.com/diodiogod/TTS-Audio-Suite": { + "stars": 78, + "last_update": "2025-09-02 02:06:43", + "author_account_age_days": 563 + }, + "https://github.com/diontimmer/ComfyUI-Vextra-Nodes": { + "stars": 79, + "last_update": "2024-06-20 16:48:44", + "author_account_age_days": 5206 + }, + "https://github.com/discopixel-studio/comfyui-discopixel": { + "stars": 12, + "last_update": "2024-09-30 00:46:13", + "author_account_age_days": 780 + }, + "https://github.com/discus0434/comfyui-aesthetic-predictor-v2-5": { + "stars": 13, + "last_update": "2024-06-14 08:12:05", + "author_account_age_days": 1905 + }, + "https://github.com/discus0434/comfyui-caching-embeddings": { + "stars": 2, + "last_update": "2024-06-14 08:59:36", + "author_account_age_days": 1905 + }, + "https://github.com/discus0434/comfyui-flux-accelerator": { + "stars": 138, + "last_update": "2024-12-19 14:39:39", + "author_account_age_days": 1905 + }, + "https://github.com/djbielejeski/a-person-mask-generator": { + "stars": 370, + "last_update": "2025-07-07 19:02:24", + "author_account_age_days": 4719 + }, + "https://github.com/dmMaze/sketch2manga": { + "stars": 41, + "last_update": "2025-03-31 08:51:09", + "author_account_age_days": 2284 + }, + "https://github.com/dmarx/ComfyUI-AudioReactive": { + "stars": 11, + "last_update": "2024-05-22 22:12:53", + "author_account_age_days": 4939 + }, + "https://github.com/dmarx/ComfyUI-Keyframed": { + "stars": 89, + "last_update": "2024-07-01 01:41:23", + "author_account_age_days": 4939 + }, + "https://github.com/dorpxam/ComfyUI-FramePack-F1-T2V": { + "stars": 2, + "last_update": "2025-05-29 06:33:54", + "author_account_age_days": 694 + }, + "https://github.com/dorpxam/ComfyUI-LTXVideoLoRA": { + "stars": 17, + "last_update": "2025-05-10 16:42:44", + "author_account_age_days": 694 + }, + "https://github.com/doubletwisted/ComfyUI-Deadline-Plugin": { + "stars": 13, + "last_update": "2025-08-27 20:59:46", + "author_account_age_days": 1026 + }, + "https://github.com/drago87/ComfyUI_Dragos_Nodes": { + "stars": 3, + "last_update": "2024-05-22 21:32:15", + "author_account_age_days": 4205 + }, + "https://github.com/dreamhartley/ComfyUI_show_seed": { + "stars": 2, + "last_update": "2025-01-14 16:15:12", + "author_account_age_days": 919 + }, + "https://github.com/drmbt/comfyui-dreambait-nodes": { + "stars": 4, + "last_update": "2025-06-23 04:17:05", + "author_account_age_days": 4212 + }, + "https://github.com/drozbay/ComfyUI-WanVaceAdvanced": { + "stars": 24, + "last_update": "2025-09-02 04:25:54", + "author_account_age_days": 3486 + }, + "https://github.com/drphero/comfyui_prompttester": { + "stars": 1, + "last_update": "2025-06-19 01:06:51", + "author_account_age_days": 3647 + }, + "https://github.com/drustan-hawk/primitive-types": { + "stars": 6, + "last_update": "2024-08-01 17:44:51", + "author_account_age_days": 724 + }, + "https://github.com/dseditor/ComfyUI-ListHelper": { + "stars": 3, + "last_update": "2025-09-02 14:52:54", + "author_account_age_days": 1438 + }, + "https://github.com/dseditor/ComfyUI-ScheduledTask": { + "stars": 7, + "last_update": "2025-07-15 12:08:18", + "author_account_age_days": 1438 + }, + "https://github.com/dseditor/ComfyUI-Thread": { + "stars": 3, + "last_update": "2025-06-17 02:38:00", + "author_account_age_days": 1438 + }, + "https://github.com/duchamps0305/comfyui-white-extractor": { + "stars": 0, + "last_update": "2025-01-23 08:09:12", + "author_account_age_days": 1057 + }, + "https://github.com/ducido/ObjectFusion_ComfyUI_nodes": { + "stars": 1, + "last_update": "2025-05-02 08:31:46", + "author_account_age_days": 964 + }, + "https://github.com/dymokomi/comfyui_dygen": { + "stars": 1, + "last_update": "2024-11-28 20:08:13", + "author_account_age_days": 1007 + }, + "https://github.com/dzqdzq/ComfyUI-crop-alpha": { + "stars": 2, + "last_update": "2025-02-17 14:46:11", + "author_account_age_days": 3450 + }, + "https://github.com/e-tier-newbie/ComfyUI-E-Tier-TextSaver": { + "stars": 0, + "last_update": "2025-06-06 21:59:50", + "author_account_age_days": 116 }, "https://github.com/e7mac/ComfyUI-ShadertoyGL": { - "stars": 2, - "last_update": "2024-04-13 22:29:24" + "stars": 4, + "last_update": "2024-06-20 14:52:42", + "author_account_age_days": 5238 }, - "https://github.com/turkyden/ComfyUI-Sticker": { + "https://github.com/ealkanat/comfyui-easy-padding": { + "stars": 17, + "last_update": "2024-12-31 02:38:22", + "author_account_age_days": 2898 + }, + "https://github.com/eastoc/ComfyUI_SemanticSAM": { + "stars": 5, + "last_update": "2024-08-13 19:24:33", + "author_account_age_days": 3153 + }, + "https://github.com/ebrinz/ComfyUI-MusicGen-HF": { + "stars": 3, + "last_update": "2025-07-29 05:12:10", + "author_account_age_days": 2492 + }, + "https://github.com/edelvarden/ComfyUI-Display-Value": { "stars": 0, - "last_update": "2024-04-16 10:00:26" + "last_update": "2025-05-25 23:02:40", + "author_account_age_days": 2568 + }, + "https://github.com/edelvarden/comfyui_image_metadata_extension": { + "stars": 57, + "last_update": "2025-08-24 18:42:25", + "author_account_age_days": 2568 + }, + "https://github.com/edenartlab/eden_comfy_pipelines": { + "stars": 98, + "last_update": "2025-07-11 13:20:33", + "author_account_age_days": 707 + }, + "https://github.com/edenartlab/sd-lora-trainer": { + "stars": 57, + "last_update": "2025-08-04 21:16:39", + "author_account_age_days": 707 + }, + "https://github.com/edoardocarmignani/extralinks": { + "stars": 1, + "last_update": "2025-07-19 22:01:09", + "author_account_age_days": 2888 + }, + "https://github.com/educator-art/ComfyUI-Load-DirectoryFiles": { + "stars": 3, + "last_update": "2025-04-22 08:51:32", + "author_account_age_days": 636 + }, + "https://github.com/educator-art/ComfyUI-gpt-oss-PromptDesigner": { + "stars": 0, + "last_update": "2025-08-11 17:57:55", + "author_account_age_days": 636 + }, + "https://github.com/eg0pr0xy/comfyui_noisegen": { + "stars": 0, + "last_update": "2025-06-29 13:58:28", + "author_account_age_days": 2509 + }, + "https://github.com/einhorn13/ComfyUI-ImageProcessUtilities": { + "stars": 0, + "last_update": "2025-07-22 15:23:02", + "author_account_age_days": 3267 + }, + "https://github.com/emojiiii/ComfyUI_Emojiiii_Custom_Nodes": { + "stars": 0, + "last_update": "2024-09-03 06:55:04", + "author_account_age_days": 2958 + }, + "https://github.com/envy-ai/ComfyUI-ConDelta": { + "stars": 206, + "last_update": "2025-04-24 00:16:02", + "author_account_age_days": 390 + }, + "https://github.com/eric183/ComfyUI-Only": { + "stars": 53, + "last_update": "2025-08-23 07:48:17", + "author_account_age_days": 3868 + }, + "https://github.com/erosDiffusion/ComfyUI-enricos-nodes": { + "stars": 519, + "last_update": "2025-09-02 11:32:28", + "author_account_age_days": 432 + }, + "https://github.com/evanspearman/ComfyMath": { + "stars": 131, + "last_update": "2025-03-08 18:14:34", + "author_account_age_days": 4673 + }, + "https://github.com/excelwong/ComfyUI-PromptComposer": { + "stars": 0, + "last_update": "2025-04-30 10:33:43", + "author_account_age_days": 3801 + }, + "https://github.com/exdysa/comfyui-selector": { + "stars": 4, + "last_update": "2025-03-14 12:21:29", + "author_account_age_days": 1430 + }, + "https://github.com/exectails/comfyui-et_dynamicprompts": { + "stars": 5, + "last_update": "2024-11-29 22:37:19", + "author_account_age_days": 4353 + }, + "https://github.com/exectails/comfyui-et_infoutils": { + "stars": 2, + "last_update": "2024-11-29 17:27:49", + "author_account_age_days": 4353 + }, + "https://github.com/exectails/comfyui-et_stringutils": { + "stars": 1, + "last_update": "2024-11-26 20:26:14", + "author_account_age_days": 4353 + }, + "https://github.com/ez-af/ComfyUI-EZ-AF-Nodes": { + "stars": 21, + "last_update": "2025-07-28 14:40:53", + "author_account_age_days": 369 + }, + "https://github.com/facefusion/facefusion-comfyui": { + "stars": 6, + "last_update": "2025-07-03 14:54:43", + "author_account_age_days": 746 + }, + "https://github.com/facok/ComfyUI-HunyuanVideoMultiLora": { + "stars": 117, + "last_update": "2025-05-13 18:35:00", + "author_account_age_days": 893 + }, + "https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo": { + "stars": 92, + "last_update": "2025-04-05 05:24:59", + "author_account_age_days": 893 + }, + "https://github.com/fairy-root/ComfyUI-GLHF": { + "stars": 4, + "last_update": "2025-04-03 13:47:20", + "author_account_age_days": 2369 + }, + "https://github.com/fairy-root/ComfyUI-OpenAI-FM": { + "stars": 33, + "last_update": "2025-05-09 00:12:06", + "author_account_age_days": 2369 + }, + "https://github.com/fairy-root/ComfyUI-Show-Text": { + "stars": 15, + "last_update": "2025-04-08 14:21:57", + "author_account_age_days": 2369 + }, + "https://github.com/fairy-root/Flux-Prompt-Generator": { + "stars": 223, + "last_update": "2025-04-22 02:20:47", + "author_account_age_days": 2369 + }, + "https://github.com/fairy-root/comfyui-ollama-llms": { + "stars": 17, + "last_update": "2025-03-27 20:47:17", + "author_account_age_days": 2369 + }, + "https://github.com/fallingmeteorite/nsfw-image-check-comfyui": { + "stars": 8, + "last_update": "2025-06-02 03:59:25", + "author_account_age_days": 1523 + }, + "https://github.com/fashn-AI/ComfyUI-FASHN": { + "stars": 27, + "last_update": "2025-06-30 12:16:05", + "author_account_age_days": 790 + }, + "https://github.com/fat-tire/comfyui-unified-media-suite": { + "stars": 4, + "last_update": "2025-07-07 08:57:09", + "author_account_age_days": 5372 + }, + "https://github.com/fblissjr/ComfyUI-DatasetHelper": { + "stars": 6, + "last_update": "2025-01-27 18:58:33", + "author_account_age_days": 3799 + }, + "https://github.com/fblissjr/ComfyUI-EmbeddingPipelineAnalytics": { + "stars": 2, + "last_update": "2025-01-24 18:51:53", + "author_account_age_days": 3799 + }, + "https://github.com/fblissjr/ComfyUI-QwenImageWanBridge": { + "stars": 20, + "last_update": "2025-09-02 14:05:36", + "author_account_age_days": 3799 + }, + "https://github.com/fblissjr/ComfyUI-WanActivationEditor": { + "stars": 5, + "last_update": "2025-07-27 00:03:24", + "author_account_age_days": 3799 + }, + "https://github.com/fblissjr/ComfyUI-WanSeamlessFlow": { + "stars": 4, + "last_update": "2025-03-17 22:36:22", + "author_account_age_days": 3799 + }, + "https://github.com/fblissjr/shrug-prompter": { + "stars": 17, + "last_update": "2025-08-24 17:45:42", + "author_account_age_days": 3799 + }, + "https://github.com/fcanfora/comfyui-camera-tools": { + "stars": 1, + "last_update": "2025-07-28 12:32:59", + "author_account_age_days": 881 + }, + "https://github.com/fchangjun/Comfyui_MultiSaveImage": { + "stars": 1, + "last_update": "2025-07-03 07:23:45", + "author_account_age_days": 3959 + }, + "https://github.com/fearnworks/ComfyUI_FearnworksNodes": { + "stars": 18, + "last_update": "2024-08-05 01:50:04", + "author_account_age_days": 997 + }, + "https://github.com/feffy380/comfyui-chroma-cache": { + "stars": 10, + "last_update": "2025-08-15 12:29:59", + "author_account_age_days": 1065 + }, + "https://github.com/feixuetuba/Spleeter": { + "stars": 0, + "last_update": "2025-01-19 10:39:17", + "author_account_age_days": 4398 + }, + "https://github.com/felixszeto/ComfyUI-RequestNodes": { + "stars": 93, + "last_update": "2025-08-25 05:11:01", + "author_account_age_days": 1484 + }, + "https://github.com/fexli/fexli-util-node-comfyui": { + "stars": 3, + "last_update": "2025-06-18 06:07:31", + "author_account_age_days": 1994 + }, + "https://github.com/fexploit/ComfyUI-AutoLabel": { + "stars": 7, + "last_update": "2025-03-18 13:07:46", + "author_account_age_days": 5479 + }, + "https://github.com/fexploit/ComfyUI-AutoTrimBG": { + "stars": 4, + "last_update": "2025-03-10 12:59:42", + "author_account_age_days": 5479 + }, + "https://github.com/fexploit/ComfyUI-Classifier": { + "stars": 1, + "last_update": "2025-03-10 20:33:42", + "author_account_age_days": 5479 + }, + "https://github.com/fidecastro/comfyui-llamacpp-client": { + "stars": 2, + "last_update": "2025-08-05 06:09:32", + "author_account_age_days": 3429 + }, + "https://github.com/filipemeneses/comfy_pixelization": { + "stars": 73, + "last_update": "2025-08-19 21:29:55", + "author_account_age_days": 3911 + }, + "https://github.com/filliptm/ComfyUI_FL-Trainer": { + "stars": 170, + "last_update": "2024-10-18 00:20:18", + "author_account_age_days": 2171 + }, + "https://github.com/filliptm/ComfyUI_Fill-ChatterBox": { + "stars": 159, + "last_update": "2025-08-16 16:44:41", + "author_account_age_days": 2171 + }, + "https://github.com/filliptm/ComfyUI_Fill-Nodes": { + "stars": 440, + "last_update": "2025-08-30 18:51:37", + "author_account_age_days": 2171 + }, + "https://github.com/finegrain-ai/comfyui-finegrain": { + "stars": 12, + "last_update": "2025-05-16 07:44:57", + "author_account_age_days": 937 + }, + "https://github.com/flamacore/ComfyUI-YouTubeUploader": { + "stars": 3, + "last_update": "2025-06-14 22:11:33", + "author_account_age_days": 3744 + }, + "https://github.com/florestefano1975/ComfyUI-Advanced-Sequence-Seed": { + "stars": 1, + "last_update": "2025-04-09 12:40:05", + "author_account_age_days": 628 + }, + "https://github.com/florestefano1975/ComfyUI-CogVideoX": { + "stars": 15, + "last_update": "2025-04-09 12:39:53", + "author_account_age_days": 628 + }, + "https://github.com/florestefano1975/ComfyUI-HiDiffusion": { + "stars": 141, + "last_update": "2025-04-09 12:40:58", + "author_account_age_days": 628 + }, + "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite": { + "stars": 5, + "last_update": "2025-04-09 12:40:36", + "author_account_age_days": 628 + }, + "https://github.com/florestefano1975/comfyui-portrait-master": { + "stars": 1110, + "last_update": "2025-08-13 11:05:26", + "author_account_age_days": 628 + }, + "https://github.com/florestefano1975/comfyui-prompt-composer": { + "stars": 286, + "last_update": "2025-04-27 15:00:00", + "author_account_age_days": 628 + }, + "https://github.com/flowtyone/ComfyUI-Flowty-CRM": { + "stars": 156, + "last_update": "2024-06-14 10:23:09", + "author_account_age_days": 708 + }, + "https://github.com/flowtyone/ComfyUI-Flowty-LDSR": { + "stars": 250, + "last_update": "2024-06-14 09:04:51", + "author_account_age_days": 708 + }, + "https://github.com/flowtyone/ComfyUI-Flowty-TripoSR": { + "stars": 512, + "last_update": "2024-06-16 00:53:22", + "author_account_age_days": 708 + }, + "https://github.com/fluffydiveX/ComfyUI-hvBlockswap": { + "stars": 8, + "last_update": "2025-03-30 03:30:40", + "author_account_age_days": 268 + }, + "https://github.com/flybirdxx/ComfyUI-SDMatte": { + "stars": 132, + "last_update": "2025-08-17 06:24:00", + "author_account_age_days": 3082 + }, + "https://github.com/flycarl/ComfyUI-Pixelate": { + "stars": 2, + "last_update": "2024-11-26 13:31:56", + "author_account_age_days": 5295 + }, + "https://github.com/flyingshutter/As_ComfyUI_CustomNodes": { + "stars": 7, + "last_update": "2025-05-23 17:29:13", + "author_account_age_days": 3930 + }, + "https://github.com/fmatray/ComfyUI_BattlemapGrid": { + "stars": 0, + "last_update": "2024-06-05 22:35:06", + "author_account_age_days": 4057 + }, + "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler": { + "stars": 10, + "last_update": "2024-06-20 11:51:50", + "author_account_age_days": 5542 + }, + "https://github.com/fofr/ComfyUI-Prompter-fofrAI": { + "stars": 75, + "last_update": "2025-02-10 16:39:49", + "author_account_age_days": 5542 + }, + "https://github.com/fofr/comfyui-basic-auth": { + "stars": 1, + "last_update": "2025-03-17 09:38:05", + "author_account_age_days": 5542 + }, + "https://github.com/fofr/comfyui-fofr-toolkit": { + "stars": 4, + "last_update": "2024-08-09 11:36:38", + "author_account_age_days": 5542 + }, + "https://github.com/forever22777/comfyui-self-guidance": { + "stars": 10, + "last_update": "2025-04-17 08:13:40", + "author_account_age_days": 760 + }, + "https://github.com/fotobudka-team/comfyui-ai-faces": { + "stars": 2, + "last_update": "2025-06-25 19:54:59", + "author_account_age_days": 291 + }, + "https://github.com/foxtrot-roger/comfyui-rf-nodes": { + "stars": 2, + "last_update": "2024-08-13 22:01:40", + "author_account_age_days": 2756 + }, + "https://github.com/fpgaminer/joycaption_comfyui": { + "stars": 94, + "last_update": "2025-05-15 23:30:13", + "author_account_age_days": 4905 + }, + "https://github.com/fplu/comfyui_lama_with_refiner": { + "stars": 1, + "last_update": "2025-06-22 16:38:15", + "author_account_age_days": 2518 + }, + "https://github.com/frankchieng/ComfyUI_Aniportrait": { + "stars": 56, + "last_update": "2024-09-13 10:41:16", + "author_account_age_days": 876 + }, + "https://github.com/frankchieng/ComfyUI_MagicClothing": { + "stars": 584, + "last_update": "2024-09-04 04:57:15", + "author_account_age_days": 876 + }, + "https://github.com/frankchieng/ComfyUI_llm_easyanimiate": { + "stars": 12, + "last_update": "2024-06-26 03:13:32", + "author_account_age_days": 876 + }, + "https://github.com/fredconex/ComfyUI-SongBloom": { + "stars": 60, + "last_update": "2025-07-10 14:05:14", + "author_account_age_days": 1137 + }, + "https://github.com/fredconex/ComfyUI-SoundFlow": { + "stars": 58, + "last_update": "2025-06-16 14:18:04", + "author_account_age_days": 1137 + }, + "https://github.com/fredconex/ComfyUI-SyncEdit": { + "stars": 0, + "last_update": "2025-06-16 21:52:36", + "author_account_age_days": 1137 + }, + "https://github.com/fredhopp/comfyui-flipflopnodes": { + "stars": 0, + "last_update": "2025-09-02 04:42:06", + "author_account_age_days": 1869 + }, + "https://github.com/freelifehacker/ComfyUI-ImgMask2PNG": { + "stars": 0, + "last_update": "2024-08-28 08:32:23", + "author_account_age_days": 2593 + }, + "https://github.com/fsdymy1024/ComfyUI_fsdymy": { + "stars": 9, + "last_update": "2024-07-01 17:58:52", + "author_account_age_days": 2641 + }, + "https://github.com/fssorc/ComfyUI_FFT": { + "stars": 13, + "last_update": "2024-09-30 01:27:21", + "author_account_age_days": 5022 + }, + "https://github.com/fssorc/ComfyUI_FaceShaper": { + "stars": 175, + "last_update": "2024-09-20 06:15:46", + "author_account_age_days": 5022 + }, + "https://github.com/fssorc/ComfyUI_RopeWrapper": { + "stars": 18, + "last_update": "2025-01-07 04:55:59", + "author_account_age_days": 5022 + }, + "https://github.com/fssorc/ComfyUI_pose_inter": { + "stars": 84, + "last_update": "2025-05-27 07:05:00", + "author_account_age_days": 5022 + }, + "https://github.com/fuselayer/comfyui-mosaic-blur": { + "stars": 1, + "last_update": "2025-04-05 00:57:07", + "author_account_age_days": 712 + }, + "https://github.com/g0kuvonlange/ComfyUI-Load-From-URL": { + "stars": 1, + "last_update": "2025-08-05 10:16:15", + "author_account_age_days": 804 + }, + "https://github.com/gabe-init/ComfyUI-11labs": { + "stars": 4, + "last_update": "2025-05-27 00:27:28", + "author_account_age_days": 99 + }, + "https://github.com/gabe-init/ComfyUI-Google-Image-Search": { + "stars": 3, + "last_update": "2025-05-27 00:54:00", + "author_account_age_days": 99 + }, + "https://github.com/gabe-init/ComfyUI-Openrouter_node": { + "stars": 15, + "last_update": "2025-06-13 01:42:28", + "author_account_age_days": 99 + }, + "https://github.com/gabe-init/ComfyUI-String-Similarity": { + "stars": 0, + "last_update": "2025-05-27 00:59:21", + "author_account_age_days": 99 + }, + "https://github.com/game4d/ComfyUI-BDsInfiniteYou": { + "stars": 7, + "last_update": "2025-04-01 03:12:04", + "author_account_age_days": 4139 + }, + "https://github.com/gasparuff/CustomSelector": { + "stars": 1, + "last_update": "2025-05-09 06:17:31", + "author_account_age_days": 4429 + }, + "https://github.com/gelasdev/ComfyUI-FLUX-BFL-API": { + "stars": 45, + "last_update": "2025-08-28 19:48:17", + "author_account_age_days": 2416 + }, + "https://github.com/gemell1/ComfyUI_GMIC": { + "stars": 9, + "last_update": "2024-05-22 21:28:51", + "author_account_age_days": 2392 + }, + "https://github.com/geocine/geocine-comfyui": { + "stars": 0, + "last_update": "2025-03-08 15:46:56", + "author_account_age_days": 5387 + }, + "https://github.com/georgitsenov/ComfyUI-R2": { + "stars": 1, + "last_update": "2025-07-03 11:51:13", + "author_account_age_days": 3983 + }, + "https://github.com/ggarra13/ComfyUI-mrv2": { + "stars": 4, + "last_update": "2025-03-27 17:24:38", + "author_account_age_days": 4294 + }, + "https://github.com/giriss/comfy-image-saver": { + "stars": 295, + "last_update": "2024-05-22 20:40:55", + "author_account_age_days": 4673 + }, + "https://github.com/gisu/comfyui-foxpack": { + "stars": 2, + "last_update": "2024-08-20 06:43:22", + "author_account_age_days": 5434 + }, + "https://github.com/gitadmini/comfyui_extractstoryboards": { + "stars": 18, + "last_update": "2025-08-23 01:06:12", + "author_account_age_days": 3477 + }, + "https://github.com/githubYiheng/ComfyUI_Change_IMAGE_BOREDER": { + "stars": 0, + "last_update": "2024-05-23 01:20:09", + "author_account_age_days": 4338 + }, + "https://github.com/githubYiheng/ComfyUI_GetFileNameFromURL": { + "stars": 1, + "last_update": "2024-05-23 01:19:47", + "author_account_age_days": 4338 + }, + "https://github.com/githubYiheng/comfyui_kmeans_filter": { + "stars": 0, + "last_update": "2024-06-14 09:01:24", + "author_account_age_days": 4338 + }, + "https://github.com/githubYiheng/comfyui_meanshift_filter": { + "stars": 0, + "last_update": "2024-06-14 10:59:43", + "author_account_age_days": 4338 + }, + "https://github.com/githubYiheng/comfyui_private_postprocessor": { + "stars": 1, + "last_update": "2024-06-14 08:09:39", + "author_account_age_days": 4338 + }, + "https://github.com/gitmylo/ComfyUI-audio-nodes": { + "stars": 9, + "last_update": "2025-04-07 07:24:06", + "author_account_age_days": 2742 + }, + "https://github.com/glibsonoran/Plush-for-ComfyUI": { + "stars": 180, + "last_update": "2025-07-10 14:15:13", + "author_account_age_days": 2933 + }, + "https://github.com/glifxyz/ComfyUI-GlifNodes": { + "stars": 57, + "last_update": "2025-08-18 08:00:38", + "author_account_age_days": 1008 + }, + "https://github.com/glitchinthemetrix16/ComfyUI-Roop": { + "stars": 0, + "last_update": "2025-07-10 14:51:00", + "author_account_age_days": 406 + }, + "https://github.com/glowcone/comfyui-base64-to-image": { + "stars": 16, + "last_update": "2024-07-08 22:53:25", + "author_account_age_days": 4181 + }, + "https://github.com/glowcone/comfyui-string-converter": { + "stars": 2, + "last_update": "2024-07-31 13:40:48", + "author_account_age_days": 4181 + }, + "https://github.com/gmorks/ComfyUI-Animagine-Prompt": { + "stars": 12, + "last_update": "2025-07-20 03:42:06", + "author_account_age_days": 2730 + }, + "https://github.com/gmorks/ComfyUI-SendToDiscord": { + "stars": 0, + "last_update": "2025-07-14 03:00:24", + "author_account_age_days": 2730 + }, + "https://github.com/goburiin/nsfwrecog-comfyui": { + "stars": 0, + "last_update": "2024-08-14 02:17:15", + "author_account_age_days": 389 + }, + "https://github.com/godmt/ComfyUI-IP-Composer": { + "stars": 5, + "last_update": "2025-05-18 09:52:01", + "author_account_age_days": 2164 + }, + "https://github.com/godmt/ComfyUI-List-Utils": { + "stars": 10, + "last_update": "2025-05-26 21:41:06", + "author_account_age_days": 2164 + }, + "https://github.com/godspede/ComfyUI_Substring": { + "stars": 0, + "last_update": "2025-03-27 15:33:12", + "author_account_age_days": 3548 + }, + "https://github.com/gokayfem/ComfyUI-Depth-Visualization": { + "stars": 65, + "last_update": "2024-10-31 23:50:57", + "author_account_age_days": 1493 + }, + "https://github.com/gokayfem/ComfyUI-Dream-Interpreter": { + "stars": 81, + "last_update": "2024-07-31 16:11:04", + "author_account_age_days": 1493 + }, + "https://github.com/gokayfem/ComfyUI-Texture-Simple": { + "stars": 50, + "last_update": "2024-07-31 16:14:23", + "author_account_age_days": 1493 + }, + "https://github.com/gokayfem/ComfyUI-fal-API": { + "stars": 148, + "last_update": "2025-07-20 15:40:57", + "author_account_age_days": 1493 + }, + "https://github.com/gokayfem/ComfyUI_VLM_nodes": { + "stars": 522, + "last_update": "2025-02-13 10:37:34", + "author_account_age_days": 1493 + }, + "https://github.com/goldwins520/Comfyui_saveimg2webdav": { + "stars": 0, + "last_update": "2025-05-25 06:15:38", + "author_account_age_days": 2011 + }, + "https://github.com/gonzalu/ComfyUI_YFG_Comical": { + "stars": 25, + "last_update": "2025-05-03 20:30:02", + "author_account_age_days": 2896 + }, + "https://github.com/googincheng/ComfyUX": { + "stars": 149, + "last_update": "2024-08-22 09:47:17", + "author_account_age_days": 3224 + }, + "https://github.com/gorillaframeai/GF_nodes": { + "stars": 34, + "last_update": "2025-04-19 15:49:54", + "author_account_age_days": 668 + }, + "https://github.com/gorillaframeai/GF_translate": { + "stars": 6, + "last_update": "2025-02-04 19:26:53", + "author_account_age_days": 668 + }, + "https://github.com/greengerong/ComfyUI-JanusPro-PL": { + "stars": 11, + "last_update": "2025-02-08 03:32:59", + "author_account_age_days": 4704 + }, + "https://github.com/gremlation/ComfyUI-ImageLabel": { + "stars": 5, + "last_update": "2025-04-03 09:49:57", + "author_account_age_days": 258 + }, + "https://github.com/gremlation/ComfyUI-JMESPath": { + "stars": 1, + "last_update": "2025-04-03 09:50:11", + "author_account_age_days": 258 + }, + "https://github.com/gremlation/ComfyUI-TrackAndWheel": { + "stars": 2, + "last_update": "2025-04-03 09:50:20", + "author_account_age_days": 258 + }, + "https://github.com/gremlation/ComfyUI-ViewData": { + "stars": 1, + "last_update": "2025-04-03 09:50:28", + "author_account_age_days": 258 + }, + "https://github.com/gremlation/ComfyUI-jq": { + "stars": 1, + "last_update": "2025-04-03 09:50:39", + "author_account_age_days": 258 + }, + "https://github.com/griptape-ai/ComfyUI-Griptape": { + "stars": 206, + "last_update": "2025-08-02 05:07:54", + "author_account_age_days": 955 + }, + "https://github.com/grmchn/ComfyUI-ProportionChanger": { + "stars": 0, + "last_update": "2025-08-28 03:34:23", + "author_account_age_days": 94 + }, + "https://github.com/grovergol/comfyui-grover-nodes": { + "stars": 0, + "last_update": "2025-09-02 11:18:16", + "author_account_age_days": 2535 + }, + "https://github.com/gseth/ControlAltAI-Nodes": { + "stars": 153, + "last_update": "2025-06-05 04:21:56", + "author_account_age_days": 4281 + }, + "https://github.com/gsusgg/ComfyUI_CozyGen": { + "stars": 7, + "last_update": "2025-08-31 19:10:04", + "author_account_age_days": 1053 + }, + "https://github.com/gt732/ComfyUI-DreamWaltz-G": { + "stars": 2, + "last_update": "2024-10-27 03:15:13", + "author_account_age_days": 1590 + }, + "https://github.com/guerreiro/comfyg-switch": { + "stars": 4, + "last_update": "2025-08-28 22:13:10", + "author_account_age_days": 5476 + }, + "https://github.com/guill/abracadabra-comfyui": { + "stars": 1, + "last_update": "2024-12-23 09:46:10", + "author_account_age_days": 4628 + }, + "https://github.com/guill/comfyui-droopy-noodles": { + "stars": 6, + "last_update": "2025-07-26 05:48:32", + "author_account_age_days": 4628 + }, + "https://github.com/guyaton/guy-nodes-comfyui": { + "stars": 0, + "last_update": "2024-10-02 13:15:26", + "author_account_age_days": 337 + }, + "https://github.com/gvfarns/comfyui_gvf": { + "stars": 0, + "last_update": "2025-07-30 21:33:13", + "author_account_age_days": 4541 + }, + "https://github.com/hackkhai/ComfyUI-Image-Matting": { + "stars": 18, + "last_update": "2024-07-31 15:02:56", + "author_account_age_days": 2286 + }, + "https://github.com/hanoixan/ComfyUI-DataBeast": { + "stars": 2, + "last_update": "2024-11-05 17:47:30", + "author_account_age_days": 5272 + }, + "https://github.com/hao-ai-lab/FastVideo": { + "stars": 2159, + "last_update": "2025-09-02 06:37:01", + "author_account_age_days": 677 + }, + "https://github.com/haohaocreates/ComfyUI-HH-Image-Selector": { + "stars": 0, + "last_update": "2024-07-28 21:08:27", + "author_account_age_days": 540 + }, + "https://github.com/hassan-sd/comfyui-image-prompt-loader": { + "stars": 3, + "last_update": "2025-06-11 21:10:47", + "author_account_age_days": 1005 + }, + "https://github.com/havvk/ComfyUI_AIIA": { + "stars": 9, + "last_update": "2025-07-07 14:53:42", + "author_account_age_days": 4073 + }, + "https://github.com/hay86/ComfyUI_DDColor": { + "stars": 7, + "last_update": "2024-06-14 08:12:13", + "author_account_age_days": 5102 + }, + "https://github.com/hay86/ComfyUI_Dreamtalk": { + "stars": 12, + "last_update": "2024-08-15 03:37:37", + "author_account_age_days": 5102 + }, + "https://github.com/hay86/ComfyUI_Hallo": { + "stars": 21, + "last_update": "2024-07-30 09:55:03", + "author_account_age_days": 5102 + }, + "https://github.com/hay86/ComfyUI_LatentSync": { + "stars": 16, + "last_update": "2025-01-06 07:47:40", + "author_account_age_days": 5102 + }, + "https://github.com/hay86/ComfyUI_MiniCPM-V": { + "stars": 41, + "last_update": "2024-08-09 07:52:59", + "author_account_age_days": 5102 + }, + "https://github.com/hay86/ComfyUI_OpenVoice": { + "stars": 18, + "last_update": "2024-07-02 08:16:20", + "author_account_age_days": 5102 + }, + "https://github.com/hayd-zju/ICEdit-ComfyUI-official": { + "stars": 200, + "last_update": "2025-07-11 01:56:09", + "author_account_age_days": 2352 + }, + "https://github.com/hayde0096/Comfyui-EasySettingpipes": { + "stars": 0, + "last_update": "2025-05-31 03:51:08", + "author_account_age_days": 3161 + }, + "https://github.com/hayden-fr/ComfyUI-Model-Manager": { + "stars": 146, + "last_update": "2025-08-22 01:20:47", + "author_account_age_days": 2372 + }, + "https://github.com/hben35096/ComfyUI-ReplenishNodes": { + "stars": 5, + "last_update": "2025-08-09 15:07:29", + "author_account_age_days": 782 + }, + "https://github.com/hben35096/ComfyUI-ToolBox": { + "stars": 6, + "last_update": "2024-09-02 14:49:43", + "author_account_age_days": 782 + }, + "https://github.com/heheok/comfyui_wan2.1_vace_infinite_helpers": { + "stars": 1, + "last_update": "2025-07-01 16:10:19", + "author_account_age_days": 4365 + }, + "https://github.com/hekmon/comfyui-checkpoint-extract": { + "stars": 1, + "last_update": "2025-03-31 13:30:54", + "author_account_age_days": 4598 + }, + "https://github.com/hekmon/comfyui-openai-api": { + "stars": 5, + "last_update": "2025-04-08 09:40:51", + "author_account_age_days": 4598 + }, + "https://github.com/heshengtao/comfyui_LLM_party": { + "stars": 1885, + "last_update": "2025-08-26 16:57:44", + "author_account_age_days": 3330 + }, + "https://github.com/heshengtao/comfyui_LLM_schools": { + "stars": 7, + "last_update": "2024-08-24 15:08:14", + "author_account_age_days": 3330 + }, + "https://github.com/hexxacubic/ComfyUI-Prompt_Library": { + "stars": 4, + "last_update": "2025-07-07 04:30:07", + "author_account_age_days": 103 + }, + "https://github.com/hgabha/WWAA-CustomNodes": { + "stars": 23, + "last_update": "2025-08-09 03:46:18", + "author_account_age_days": 590 + }, + "https://github.com/hhhzzyang/Comfyui_Lama": { + "stars": 55, + "last_update": "2024-05-22 21:13:19", + "author_account_age_days": 942 + }, + "https://github.com/hiderminer/ComfyUI-HM-Utilities": { + "stars": 0, + "last_update": "2025-07-28 15:24:35", + "author_account_age_days": 951 + }, + "https://github.com/hieuck/ComfyUI-BiRefNet": { + "stars": 2, + "last_update": "2024-12-04 16:20:00", + "author_account_age_days": 2960 + }, + "https://github.com/hiforce/comfyui-hiforce-plugin": { + "stars": 10, + "last_update": "2024-06-14 08:13:24", + "author_account_age_days": 2237 + }, + "https://github.com/hinablue/ComfyUI_3dPoseEditor": { + "stars": 209, + "last_update": "2024-06-21 17:38:40", + "author_account_age_days": 5547 + }, + "https://github.com/hmwl/ComfyUI-TaskMonitor": { + "stars": 6, + "last_update": "2025-05-25 15:41:14", + "author_account_age_days": 3049 + }, + "https://github.com/hmwl/ComfyUI_zip": { + "stars": 2, + "last_update": "2025-05-25 16:21:35", + "author_account_age_days": 3049 + }, + "https://github.com/hnmr293/ComfyUI-latent-ops": { + "stars": 2, + "last_update": "2025-04-16 08:04:59", + "author_account_age_days": 990 + }, + "https://github.com/hnmr293/comfyui-savemem": { + "stars": 1, + "last_update": "2025-04-15 02:10:14", + "author_account_age_days": 990 + }, + "https://github.com/hodanajan/optimal-crop-resolution": { + "stars": 1, + "last_update": "2025-01-21 10:46:26", + "author_account_age_days": 2764 + }, + "https://github.com/hoveychen/ComfyUI-MusePose-Remaster": { + "stars": 7, + "last_update": "2024-10-22 09:40:04", + "author_account_age_days": 5078 + }, + "https://github.com/huagetai/ComfyUI-Gaffer": { + "stars": 52, + "last_update": "2024-06-19 00:58:38", + "author_account_age_days": 5067 + }, + "https://github.com/huagetai/ComfyUI_LightGradient": { + "stars": 9, + "last_update": "2024-05-23 01:21:27", + "author_account_age_days": 5067 + }, + "https://github.com/huanngzh/ComfyUI-MVAdapter": { + "stars": 443, + "last_update": "2025-06-26 07:01:15", + "author_account_age_days": 1673 + }, + "https://github.com/hubentu/ComfyUI-loras-loader": { + "stars": 3, + "last_update": "2025-08-30 17:44:41", + "author_account_age_days": 3939 + }, + "https://github.com/huchenlei/ComfyUI-IC-Light-Native": { + "stars": 628, + "last_update": "2025-02-25 16:35:36", + "author_account_age_days": 3311 + }, + "https://github.com/huchenlei/ComfyUI-layerdiffuse": { + "stars": 1720, + "last_update": "2025-02-25 16:35:50", + "author_account_age_days": 3311 + }, + "https://github.com/huchenlei/ComfyUI-openpose-editor": { + "stars": 111, + "last_update": "2024-07-31 13:44:16", + "author_account_age_days": 3311 + }, + "https://github.com/huchenlei/ComfyUI_DanTagGen": { + "stars": 69, + "last_update": "2024-08-01 01:42:14", + "author_account_age_days": 3311 + }, + "https://github.com/huchenlei/ComfyUI_densediffusion": { + "stars": 140, + "last_update": "2025-02-25 16:34:32", + "author_account_age_days": 3311 + }, + "https://github.com/huchenlei/ComfyUI_omost": { + "stars": 450, + "last_update": "2025-02-25 16:35:18", + "author_account_age_days": 3311 + }, + "https://github.com/hughescr/ComfyUI-OpenPose-Keypoint-Extractor": { + "stars": 35, + "last_update": "2025-07-30 15:44:50", + "author_account_age_days": 6075 + }, + "https://github.com/hugobb/FastGAN-ComfyUI-Node": { + "stars": 1, + "last_update": "2025-04-25 20:24:20", + "author_account_age_days": 3271 + }, + "https://github.com/huixingyun/ComfyUI-HX-Captioner": { + "stars": 0, + "last_update": "2025-01-25 06:48:18", + "author_account_age_days": 270 + }, + "https://github.com/huixingyun/ComfyUI-HX-Pimg": { + "stars": 0, + "last_update": "2025-08-06 01:49:49", + "author_account_age_days": 270 + }, + "https://github.com/hujuying/ComfyUI-ModelScope-API": { + "stars": 0, + "last_update": "2025-09-01 22:07:56", + "author_account_age_days": 1212 + }, + "https://github.com/humgate/simplecomfy": { + "stars": 0, + "last_update": "2024-06-14 08:58:21", + "author_account_age_days": 1801 + }, + "https://github.com/hunzmusic/ComfyUI-IG2MV": { + "stars": 35, + "last_update": "2025-05-09 10:46:42", + "author_account_age_days": 163 + }, + "https://github.com/hustille/ComfyUI_Fooocus_KSampler": { + "stars": 64, + "last_update": "2024-05-22 20:39:48", + "author_account_age_days": 875 + }, + "https://github.com/hustille/ComfyUI_hus_utils": { + "stars": 5, + "last_update": "2024-05-22 20:39:34", + "author_account_age_days": 875 + }, + "https://github.com/huwenkai26/comfyui-remove-text": { + "stars": 0, + "last_update": "2025-08-28 07:03:52", + "author_account_age_days": 3462 + }, + "https://github.com/hvppycoding/comfyui-json-prompt-renderer": { + "stars": 0, + "last_update": "2025-08-26 15:49:55", + "author_account_age_days": 1041 + }, + "https://github.com/hvppycoding/comfyui-random-sampler-scheduler-steps": { + "stars": 0, + "last_update": "2025-06-04 15:41:16", + "author_account_age_days": 1041 + }, + "https://github.com/hwhaocool/ComfyUI-Select-Any": { + "stars": 2, + "last_update": "2024-07-31 13:52:47", + "author_account_age_days": 3323 + }, + "https://github.com/hybskgks28275/ComfyUI-hybs-nodes": { + "stars": 1, + "last_update": "2025-05-28 07:15:21", + "author_account_age_days": 1362 + }, + "https://github.com/hyunamy/comfy-ui-on-complete-email-me": { + "stars": 4, + "last_update": "2025-04-10 01:38:49", + "author_account_age_days": 3545 + }, + "https://github.com/iDAPPA/ComfyUI-AMDGPUMonitor": { + "stars": 3, + "last_update": "2025-03-13 18:16:21", + "author_account_age_days": 175 + }, + "https://github.com/iFREEGROUP/comfyui-undistort": { + "stars": 2, + "last_update": "2024-06-14 08:59:52", + "author_account_age_days": 1992 + }, + "https://github.com/iSuneast/ComfyUI-WebhookNotifier": { + "stars": 1, + "last_update": "2025-04-06 03:53:13", + "author_account_age_days": 4607 + }, + "https://github.com/iacoposk8/ComfyUI-Fooocus-Inpaint-Wrapper": { + "stars": 3, + "last_update": "2025-07-05 07:17:09", + "author_account_age_days": 4589 + }, + "https://github.com/iacoposk8/xor_pickle_nodes": { + "stars": 1, + "last_update": "2025-08-12 09:46:27", + "author_account_age_days": 4589 + }, + "https://github.com/ialhabbal/OcclusionMask": { + "stars": 21, + "last_update": "2025-06-24 14:38:58", + "author_account_age_days": 3455 + }, + "https://github.com/iamandeepsandhu/ComfyUI-NSFW-Check": { + "stars": 10, + "last_update": "2024-11-26 07:32:18", + "author_account_age_days": 2641 + }, + "https://github.com/icesun963/ComfyUI_HFDownLoad": { + "stars": 0, + "last_update": "2024-07-18 12:13:23", + "author_account_age_days": 4541 + }, + "https://github.com/ichabodcole/ComfyUI-Ichis-Pack": { + "stars": 2, + "last_update": "2025-04-20 08:05:27", + "author_account_age_days": 4830 + }, + "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words": { + "stars": 227, + "last_update": "2025-07-26 17:43:22", + "author_account_age_days": 3484 + }, + "https://github.com/iemesowum/ComfyUI_IsaacNodes": { + "stars": 1, + "last_update": "2025-03-27 13:28:10", + "author_account_age_days": 5726 + }, + "https://github.com/if-ai/ComfyUI-IF_AI_Dreamtalk": { + "stars": 26, + "last_update": "2025-03-14 13:19:03", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_AI_HFDownloaderNode": { + "stars": 21, + "last_update": "2025-07-14 11:50:02", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_AI_ParlerTTSNode": { + "stars": 17, + "last_update": "2025-03-14 13:27:47", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode": { + "stars": 44, + "last_update": "2025-03-09 09:17:01", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_AI_tools": { + "stars": 677, + "last_update": "2025-08-11 13:03:16", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_DatasetMkr": { + "stars": 20, + "last_update": "2025-03-17 08:14:01", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_Gemini": { + "stars": 38, + "last_update": "2025-08-31 11:22:32", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_LLM": { + "stars": 137, + "last_update": "2025-04-09 09:23:21", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_MemoAvatar": { + "stars": 170, + "last_update": "2025-03-09 09:28:07", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_Trellis": { + "stars": 431, + "last_update": "2025-03-09 09:31:12", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-IF_VideoPrompts": { + "stars": 52, + "last_update": "2025-04-02 17:19:28", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-WanResolutionSelector": { + "stars": 4, + "last_update": "2025-08-25 14:42:19", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI-yt_dl": { + "stars": 2, + "last_update": "2025-08-13 14:47:44", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI_HunyuanVideoFoley": { + "stars": 67, + "last_update": "2025-08-31 17:28:40", + "author_account_age_days": 3297 + }, + "https://github.com/if-ai/ComfyUI_IF_AI_LoadImages": { + "stars": 9, + "last_update": "2025-03-14 13:24:31", + "author_account_age_days": 3297 + }, + "https://github.com/ifmylove2011/comfyui-missed-tool": { + "stars": 2, + "last_update": "2025-04-10 09:15:08", + "author_account_age_days": 3606 + }, + "https://github.com/ihmily/ComfyUI-Light-Tool": { + "stars": 12, + "last_update": "2025-07-10 10:32:23", + "author_account_age_days": 1064 + }, + "https://github.com/illuminatianon/comfyui-csvwildcards": { + "stars": 1, + "last_update": "2025-05-02 21:45:53", + "author_account_age_days": 178 + }, + "https://github.com/imb101/ComfyUI-FaceSwap": { + "stars": 35, + "last_update": "2024-05-22 18:22:29", + "author_account_age_days": 1323 + }, + "https://github.com/infinigence/ComfyUI-Infinigence-Nodes": { + "stars": 1, + "last_update": "2025-08-25 03:41:44", + "author_account_age_days": 579 + }, + "https://github.com/infinigence/ComfyUI_Model_Cache": { + "stars": 8, + "last_update": "2025-03-28 02:35:14", + "author_account_age_days": 579 + }, + "https://github.com/inflamously/comfyui-prompt-enhancer": { + "stars": 0, + "last_update": "2025-06-02 22:49:50", + "author_account_age_days": 4215 + }, + "https://github.com/injet-zhou/comfyui_extra_api": { + "stars": 11, + "last_update": "2025-06-06 02:35:34", + "author_account_age_days": 2662 + }, + "https://github.com/inventorado/ComfyUI_NNT": { + "stars": 69, + "last_update": "2025-01-08 17:22:46", + "author_account_age_days": 3321 + }, + "https://github.com/irreveloper/ComfyUI-DSD": { + "stars": 41, + "last_update": "2025-03-15 16:55:07", + "author_account_age_days": 4152 + }, + "https://github.com/isaac-mcfadyen/ComfyUI-QwenClip": { + "stars": 0, + "last_update": "2025-08-27 02:22:44", + "author_account_age_days": 4271 + }, + "https://github.com/iwanders/ComfyUI_nodes": { + "stars": 1, + "last_update": "2024-07-11 01:06:26", + "author_account_age_days": 4861 + }, + "https://github.com/jacklukai/ComfyUI_DeployCash": { + "stars": 0, + "last_update": "2025-08-11 07:59:47", + "author_account_age_days": 418 + }, + "https://github.com/jags111/ComfyUI_Jags_Audiotools": { + "stars": 82, + "last_update": "2025-03-20 16:23:33", + "author_account_age_days": 4306 + }, + "https://github.com/jags111/ComfyUI_Jags_VectorMagic": { + "stars": 81, + "last_update": "2025-04-02 08:46:34", + "author_account_age_days": 4306 + }, + "https://github.com/jags111/efficiency-nodes-comfyui": { + "stars": 1320, + "last_update": "2025-07-10 01:46:42", + "author_account_age_days": 4306 + }, + "https://github.com/jaimitoes/ComfyUI_Wan2_1_lora_trainer": { + "stars": 54, + "last_update": "2025-08-25 12:58:44", + "author_account_age_days": 4195 + }, + "https://github.com/jakechai/ComfyUI-JakeUpgrade": { + "stars": 106, + "last_update": "2025-09-02 13:41:58", + "author_account_age_days": 2007 + }, + "https://github.com/jamal-alkharrat/ComfyUI_rotate_image": { + "stars": 2, + "last_update": "2024-05-22 23:19:02", + "author_account_age_days": 1412 + }, + "https://github.com/jamesWalker55/comfyui-p2ldgan": { + "stars": 17, + "last_update": "2024-05-22 18:19:04", + "author_account_age_days": 2962 + }, + "https://github.com/jamesWalker55/comfyui-various": { + "stars": 127, + "last_update": "2025-02-27 11:01:51", + "author_account_age_days": 2962 + }, + "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils": { + "stars": 13, + "last_update": "2025-02-26 05:03:05", + "author_account_age_days": 4913 + }, + "https://github.com/jasonjgardner/comfui-substance-designer-integration": { + "stars": 1, + "last_update": "2025-06-08 20:40:11", + "author_account_age_days": 4813 + }, + "https://github.com/jax-explorer/ComfyUI-InstantCharacter": { + "stars": 186, + "last_update": "2025-05-13 15:04:58", + "author_account_age_days": 1012 + }, + "https://github.com/jax-explorer/ComfyUI-VideoBasic": { + "stars": 18, + "last_update": "2025-06-22 14:53:19", + "author_account_age_days": 1012 + }, + "https://github.com/jax-explorer/ComfyUI-VideoBasicLatentSync": { + "stars": 0, + "last_update": "2025-04-07 10:07:44", + "author_account_age_days": 1012 + }, + "https://github.com/jax-explorer/ComfyUI-easycontrol": { + "stars": 188, + "last_update": "2025-04-17 15:39:33", + "author_account_age_days": 1012 + }, + "https://github.com/jax-explorer/comfyui-model-dynamic-loader": { + "stars": 1, + "last_update": "2025-06-01 07:58:16", + "author_account_age_days": 1012 + }, + "https://github.com/jax-explorer/fast_video_comfyui": { + "stars": 0, + "last_update": "2024-05-23 01:17:35", + "author_account_age_days": 1012 + }, + "https://github.com/jeffrey2212/ComfyUI-PonyCharacterPrompt": { + "stars": 2, + "last_update": "2024-10-26 05:38:07", + "author_account_age_days": 4906 + }, + "https://github.com/jeffy5/comfyui-faceless-node": { + "stars": 53, + "last_update": "2025-04-07 02:19:38", + "author_account_age_days": 3366 + }, + "https://github.com/jerome7562/ComfyUI-XenoFlow": { + "stars": 4, + "last_update": "2025-03-10 16:33:16", + "author_account_age_days": 202 + }, + "https://github.com/jerrylongyan/ComfyUI-My-Mask": { + "stars": 3, + "last_update": "2025-01-08 08:39:19", + "author_account_age_days": 4367 + }, + "https://github.com/jerrywap/ComfyUI_LoadImageFromHttpURL": { + "stars": 1, + "last_update": "2025-04-09 19:31:50", + "author_account_age_days": 2768 + }, + "https://github.com/jerrywap/ComfyUI_UploadToWebhookHTTP": { + "stars": 1, + "last_update": "2025-04-07 15:01:04", + "author_account_age_days": 2768 + }, + "https://github.com/jesenzhang/ComfyUI_StreamDiffusion": { + "stars": 150, + "last_update": "2025-03-18 04:47:24", + "author_account_age_days": 4087 + }, + "https://github.com/jhj0517/ComfyUI-Moondream-Gaze-Detection": { + "stars": 55, + "last_update": "2025-02-03 04:53:25", + "author_account_age_days": 1334 + }, + "https://github.com/jhj0517/ComfyUI-jhj-Kokoro-Onnx": { + "stars": 4, + "last_update": "2025-02-04 14:15:08", + "author_account_age_days": 1334 + }, + "https://github.com/jiafuzeng/comfyui-LatentSync": { + "stars": 0, + "last_update": "2025-08-01 08:05:58", + "author_account_age_days": 2648 + }, + "https://github.com/jialuw0830/flux_api_comfyui_plugin": { + "stars": 0, + "last_update": "2025-08-30 14:19:15", + "author_account_age_days": 276 + }, + "https://github.com/jianzhichun/ComfyUI-Easyai": { + "stars": 22, + "last_update": "2024-10-27 03:29:53", + "author_account_age_days": 3472 + }, + "https://github.com/jiaqianjing/ComfyUI-MidjourneyHub": { + "stars": 14, + "last_update": "2025-07-03 08:39:45", + "author_account_age_days": 3564 + }, + "https://github.com/jiaxiangc/ComfyUI-ResAdapter": { + "stars": 287, + "last_update": "2024-05-23 00:22:23", + "author_account_age_days": 1721 + }, + "https://github.com/jinanlongen/ComfyUI-Prompt-Expander": { + "stars": 0, + "last_update": "2025-01-28 08:04:24", + "author_account_age_days": 5012 + }, + "https://github.com/jinchanz/ComfyUI-ADIC": { + "stars": 2, + "last_update": "2025-07-01 11:35:14", + "author_account_age_days": 2500 + }, + "https://github.com/jitcoder/lora-info": { + "stars": 106, + "last_update": "2025-05-15 07:25:46", + "author_account_age_days": 4475 + }, + "https://github.com/jjkramhoeft/ComfyUI-Jjk-Nodes": { + "stars": 28, + "last_update": "2024-05-22 20:44:56", + "author_account_age_days": 4084 + }, + "https://github.com/jkrauss82/ultools-comfyui": { + "stars": 8, + "last_update": "2025-04-09 20:17:27", + "author_account_age_days": 4647 + }, + "https://github.com/jmkl/ComfyUI-ricing": { + "stars": 10, + "last_update": "2024-10-16 15:38:08", + "author_account_age_days": 5032 + }, + "https://github.com/jn-jairo/jn_comfyui": { + "stars": 5, + "last_update": "2024-08-16 18:09:12", + "author_account_age_days": 4419 + }, + "https://github.com/jnxmx/ComfyUI_HuggingFace_Downloader": { + "stars": 4, + "last_update": "2025-04-27 12:08:27", + "author_account_age_days": 773 + }, + "https://github.com/joanna910225/comfyui-housekeeper": { + "stars": 0, + "last_update": "2025-08-26 16:48:32", + "author_account_age_days": 4054 + }, + "https://github.com/joeriben/ai4artsed_comfyui_nodes": { + "stars": 0, + "last_update": "2025-07-16 22:22:32", + "author_account_age_days": 4182 + }, + "https://github.com/john-mnz/ComfyUI-Inspyrenet-Rembg": { + "stars": 625, + "last_update": "2024-07-31 13:54:32", + "author_account_age_days": 643 + }, + "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative": { + "stars": 138, + "last_update": "2025-07-10 14:02:42", + "author_account_age_days": 5233 + }, + "https://github.com/joosthel/ComfyUI-CVOverlay": { + "stars": 2, + "last_update": "2025-07-28 11:41:47", + "author_account_age_days": 701 + }, + "https://github.com/jordoh/ComfyUI-Deepface": { + "stars": 30, + "last_update": "2025-08-30 18:41:41", + "author_account_age_days": 5428 + }, + "https://github.com/joreyaesh/comfyui_scroll_over_textarea": { + "stars": 0, + "last_update": "2025-03-09 18:58:09", + "author_account_age_days": 4548 + }, + "https://github.com/joreyaesh/comfyui_touchpad_scroll_controller.enableTouchpadScroll": { + "stars": 0, + "last_update": "2025-03-18 03:15:42", + "author_account_age_days": 4548 + }, + "https://github.com/jqy-yo/Comfyui-BBoxLowerMask2": { + "stars": 0, + "last_update": "2025-05-19 02:28:44", + "author_account_age_days": 476 + }, + "https://github.com/jqy-yo/comfyui-gemini-nodes": { + "stars": 1, + "last_update": "2025-09-01 07:14:38", + "author_account_age_days": 476 + }, + "https://github.com/jroc22/ComfyUI-CSV-prompt-builder": { + "stars": 11, + "last_update": "2024-08-01 19:39:30", + "author_account_age_days": 1124 + }, + "https://github.com/jstit/comfyui_custom_node_image": { + "stars": 0, + "last_update": "2024-08-27 05:10:12", + "author_account_age_days": 2299 + }, + "https://github.com/jtrue/ComfyUI-JaRue": { + "stars": 7, + "last_update": "2024-06-14 09:01:12", + "author_account_age_days": 4365 + }, + "https://github.com/jtrue/ComfyUI-Rect": { + "stars": 0, + "last_update": "2025-08-24 04:20:24", + "author_account_age_days": 4365 + }, + "https://github.com/jtrue/ComfyUI-WordEmbeddings": { + "stars": 0, + "last_update": "2025-08-22 05:30:24", + "author_account_age_days": 4365 + }, + "https://github.com/jtydhr88/ComfyUI-AudioMass": { + "stars": 20, + "last_update": "2025-08-30 13:36:54", + "author_account_age_days": 5188 + }, + "https://github.com/jtydhr88/ComfyUI-Hunyuan3D-1-wrapper": { + "stars": 29, + "last_update": "2024-11-13 11:50:46", + "author_account_age_days": 5188 + }, + "https://github.com/jtydhr88/ComfyUI-LayerDivider": { + "stars": 101, + "last_update": "2025-04-25 11:21:00", + "author_account_age_days": 5188 + }, + "https://github.com/jtydhr88/ComfyUI-OpenCut": { + "stars": 90, + "last_update": "2025-08-30 20:34:42", + "author_account_age_days": 5188 + }, + "https://github.com/jtydhr88/ComfyUI-Workflow-Encrypt": { + "stars": 34, + "last_update": "2024-07-31 13:45:53", + "author_account_age_days": 5188 + }, + "https://github.com/juddisjudd/ComfyUI-BawkNodes": { + "stars": 5, + "last_update": "2025-08-02 09:30:48", + "author_account_age_days": 1545 + }, + "https://github.com/judian17/ComfyUI-Extract_Flux_Lora": { + "stars": 19, + "last_update": "2025-05-05 02:46:31", + "author_account_age_days": 2281 + }, + "https://github.com/judian17/ComfyUI-JoyCaption-beta-one-hf-llava-Prompt_node": { + "stars": 6, + "last_update": "2025-08-02 00:48:15", + "author_account_age_days": 2281 + }, + "https://github.com/judian17/ComfyUI-UniWorld-jd17": { + "stars": 21, + "last_update": "2025-06-10 14:12:16", + "author_account_age_days": 2281 + }, + "https://github.com/judian17/ComfyUI-joycaption-beta-one-GGUF": { + "stars": 50, + "last_update": "2025-08-02 00:58:09", + "author_account_age_days": 2281 + }, + "https://github.com/judian17/ComfyUI_ZIM": { + "stars": 8, + "last_update": "2025-05-14 11:32:06", + "author_account_age_days": 2281 + }, + "https://github.com/juehackr/comfyui_fk_server": { + "stars": 457, + "last_update": "2025-08-27 07:34:00", + "author_account_age_days": 1547 + }, + "https://github.com/jupo-ai/comfy-aspect-ratios": { + "stars": 1, + "last_update": "2025-08-26 15:01:59", + "author_account_age_days": 185 + }, + "https://github.com/jupo-ai/comfy-ex-tagcomplete": { + "stars": 15, + "last_update": "2025-08-19 02:40:30", + "author_account_age_days": 185 + }, + "https://github.com/jupo-ai/comfy-join-prompt": { + "stars": 1, + "last_update": "2025-08-26 15:12:40", + "author_account_age_days": 185 + }, + "https://github.com/jupo-ai/comfy-linear-move": { + "stars": 1, + "last_update": "2025-08-21 16:31:49", + "author_account_age_days": 185 + }, + "https://github.com/jupo-ai/comfy-preview-model": { + "stars": 0, + "last_update": "2025-08-21 16:38:28", + "author_account_age_days": 185 + }, + "https://github.com/jurdnf/ComfyUI-JurdnsIterativeNoiseKSampler": { + "stars": 3, + "last_update": "2025-06-23 03:58:50", + "author_account_age_days": 101 + }, + "https://github.com/jurdnf/ComfyUI-JurdnsModelSculptor": { + "stars": 3, + "last_update": "2025-06-23 14:03:22", + "author_account_age_days": 101 + }, + "https://github.com/jurdnisglobby/ComfyUI-Jurdns-Groq-Node": { + "stars": 2, + "last_update": "2025-01-18 06:20:23", + "author_account_age_days": 346 + }, + "https://github.com/justUmen/Bjornulf_custom_nodes": { + "stars": 430, + "last_update": "2025-06-11 12:32:38", + "author_account_age_days": 3224 + }, + "https://github.com/justin-vt/ComfyUI-brushstrokes": { + "stars": 1, + "last_update": "2025-03-05 18:27:37", + "author_account_age_days": 3141 + }, + "https://github.com/k-komarov/comfyui-bunny-cdn-storage": { + "stars": 0, + "last_update": "2024-08-31 20:59:08", + "author_account_age_days": 3910 + }, + "https://github.com/ka-puna/comfyui-yanc": { + "stars": 10, + "last_update": "2025-05-25 20:41:57", + "author_account_age_days": 2642 + }, + "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats": { + "stars": 5, + "last_update": "2025-01-25 10:57:38", + "author_account_age_days": 1702 + }, + "https://github.com/kaaskoek232/ComfyUI-MemoryManagement": { + "stars": 4, + "last_update": "2025-07-03 21:07:05", + "author_account_age_days": 161 + }, + "https://github.com/kadirnar/ComfyUI-Transformers": { + "stars": 21, + "last_update": "2024-06-22 22:44:39", + "author_account_age_days": 2764 + }, + "https://github.com/kadirnar/ComfyUI-YOLO": { + "stars": 96, + "last_update": "2025-07-10 23:18:08", + "author_account_age_days": 2764 + }, + "https://github.com/kael558/ComfyUI-GGUF-FantasyTalking": { + "stars": 3, + "last_update": "2025-08-20 00:08:16", + "author_account_age_days": 3082 + }, + "https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl": { + "stars": 630, + "last_update": "2025-04-19 10:24:42", + "author_account_age_days": 5116 + }, + "https://github.com/kaipard/comfyui-auto-latent-size": { + "stars": 0, + "last_update": "2025-07-04 10:06:08", + "author_account_age_days": 2864 + }, + "https://github.com/kale4eat/ComfyUI-path-util": { + "stars": 0, + "last_update": "2024-05-25 05:44:11", + "author_account_age_days": 2047 + }, + "https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit": { + "stars": 19, + "last_update": "2025-06-17 01:58:03", + "author_account_age_days": 2047 + }, + "https://github.com/kale4eat/ComfyUI-string-util": { + "stars": 4, + "last_update": "2024-05-23 00:24:40", + "author_account_age_days": 2047 + }, + "https://github.com/kale4eat/ComfyUI-text-file-util": { + "stars": 0, + "last_update": "2024-05-23 00:24:51", + "author_account_age_days": 2047 + }, + "https://github.com/kambara/ComfyUI-PromptPalette": { + "stars": 6, + "last_update": "2025-06-27 14:20:13", + "author_account_age_days": 5970 + }, + "https://github.com/kanibus/kanibus": { + "stars": 4, + "last_update": "2025-08-04 04:27:56", + "author_account_age_days": 971 + }, + "https://github.com/kantsche/ComfyUI-MixMod": { + "stars": 26, + "last_update": "2025-07-17 17:24:19", + "author_account_age_days": 4320 + }, + "https://github.com/kappa54m/ComfyUI_Usability": { + "stars": 0, + "last_update": "2024-08-08 15:31:47", + "author_account_age_days": 1946 + }, + "https://github.com/karas17/ComfyUI-Camera-Watermark": { + "stars": 10, + "last_update": "2025-08-13 04:54:56", + "author_account_age_days": 3092 + }, + "https://github.com/karthikg-09/ComfyUI-Vton-Mask": { + "stars": 1, + "last_update": "2025-05-24 18:37:41", + "author_account_age_days": 631 + }, + "https://github.com/kasukanra/ComfyUI_StringToHex": { + "stars": 1, + "last_update": "2024-08-20 04:52:06", + "author_account_age_days": 3096 + }, + "https://github.com/katalist-ai/comfyUI-nsfw-detection": { + "stars": 3, + "last_update": "2024-05-23 01:23:32", + "author_account_age_days": 1188 + }, + "https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess": { + "stars": 1, + "last_update": "2025-04-05 12:52:40", + "author_account_age_days": 1163 + }, + "https://github.com/kealiu/ComfyUI-S3-Tools": { + "stars": 7, + "last_update": "2024-07-04 10:13:07", + "author_account_age_days": 4563 + }, + "https://github.com/kealiu/ComfyUI-Zero123-Porting": { + "stars": 22, + "last_update": "2024-08-22 07:07:57", + "author_account_age_days": 4563 + }, + "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans": { + "stars": 175, + "last_update": "2024-07-04 10:12:32", + "author_account_age_days": 4563 + }, + "https://github.com/keit0728/ComfyUI-Image-Toolkit": { + "stars": 1, + "last_update": "2025-05-30 06:46:47", + "author_account_age_days": 3423 + }, + "https://github.com/keit0728/ComfyUI-keitNodes": { + "stars": 3, + "last_update": "2025-06-20 09:34:46", + "author_account_age_days": 3423 + }, + "https://github.com/keit0728/ComfyUI-musubi-tuner": { + "stars": 1, + "last_update": "2025-07-26 09:41:57", + "author_account_age_days": 3423 + }, + "https://github.com/kenjiqq/qq-nodes-comfyui": { + "stars": 51, + "last_update": "2025-06-24 22:38:01", + "author_account_age_days": 5324 + }, + "https://github.com/kevin314/ComfyUI-FastVideo": { + "stars": 5, + "last_update": "2025-07-03 05:21:54", + "author_account_age_days": 2567 + }, + "https://github.com/kevinmcmahondev/comfyui-kmcdev-image-filter-adjustments": { + "stars": 0, + "last_update": "2025-02-19 06:55:25", + "author_account_age_days": 1188 + }, + "https://github.com/kevinmcmahondev/comfyui-skin-tone-detector": { + "stars": 2, + "last_update": "2024-12-22 06:44:20", + "author_account_age_days": 1188 + }, + "https://github.com/kft334/Knodes": { + "stars": 4, + "last_update": "2024-06-14 08:12:06", + "author_account_age_days": 1394 + }, + "https://github.com/khanhlvg/vertex-ai-comfyui-nodes": { + "stars": 1, + "last_update": "2025-08-31 18:49:44", + "author_account_age_days": 4381 + }, + "https://github.com/kijai/ComfyUI-ADMotionDirector": { + "stars": 177, + "last_update": "2024-11-07 07:20:23", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-APISR-KJ": { + "stars": 72, + "last_update": "2024-05-21 16:30:21", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-BrushNet-Wrapper": { + "stars": 147, + "last_update": "2024-06-20 12:15:16", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-CCSR": { + "stars": 238, + "last_update": "2024-06-28 11:13:33", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-CogVideoXWrapper": { + "stars": 1519, + "last_update": "2025-08-07 11:03:37", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-ControlNeXt-SVD": { + "stars": 189, + "last_update": "2024-08-15 08:26:15", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-DDColor": { + "stars": 155, + "last_update": "2024-05-21 16:04:26", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-DepthAnythingV2": { + "stars": 350, + "last_update": "2025-06-16 13:16:52", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-DiffusionLight": { + "stars": 73, + "last_update": "2024-05-21 16:16:52", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper": { + "stars": 677, + "last_update": "2025-06-02 11:49:00", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-ELLA-wrapper": { + "stars": 116, + "last_update": "2024-05-21 16:47:28", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-Florence2": { + "stars": 1412, + "last_update": "2025-08-09 09:11:04", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-FluxTrainer": { + "stars": 1021, + "last_update": "2025-04-02 07:35:46", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-GIMM-VFI": { + "stars": 362, + "last_update": "2025-07-31 18:52:50", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-Geowizard": { + "stars": 124, + "last_update": "2024-12-16 19:33:54", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-HFRemoteVae": { + "stars": 53, + "last_update": "2025-03-01 18:22:59", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper": { + "stars": 2525, + "last_update": "2025-08-20 08:38:14", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-IC-Light": { + "stars": 1092, + "last_update": "2025-05-30 19:21:20", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-KJNodes": { + "stars": 1697, + "last_update": "2025-09-01 16:02:24", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-KwaiKolorsWrapper": { + "stars": 597, + "last_update": "2024-10-18 08:47:45", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-LBMWrapper": { + "stars": 235, + "last_update": "2025-05-14 09:25:13", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-LLaVA-OneVision": { + "stars": 85, + "last_update": "2024-08-25 14:04:22", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-LVCDWrapper": { + "stars": 62, + "last_update": "2024-09-30 11:49:12", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-LaVi-Bridge-Wrapper": { + "stars": 22, + "last_update": "2024-05-21 16:41:18", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-LivePortraitKJ": { + "stars": 2059, + "last_update": "2024-08-05 21:39:49", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-Lotus": { + "stars": 143, + "last_update": "2024-10-13 12:33:24", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-LuminaWrapper": { + "stars": 195, + "last_update": "2024-07-31 13:52:06", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-Marigold": { + "stars": 551, + "last_update": "2025-05-16 10:22:16", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-MelBandRoFormer": { + "stars": 40, + "last_update": "2025-08-26 08:29:25", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-MimicMotionWrapper": { + "stars": 503, + "last_update": "2025-01-12 17:34:34", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-MoGe": { + "stars": 52, + "last_update": "2025-02-07 18:42:39", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-OpenDiTWrapper": { + "stars": 43, + "last_update": "2024-07-03 14:59:13", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-PyramidFlowWrapper": { + "stars": 367, + "last_update": "2024-11-15 13:28:18", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-SUPIR": { + "stars": 2080, + "last_update": "2025-06-07 09:17:40", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-SVD": { + "stars": 163, + "last_update": "2024-05-22 21:09:54", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-StableXWrapper": { + "stars": 59, + "last_update": "2025-01-31 11:59:01", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-WanVideoWrapper": { + "stars": 4283, + "last_update": "2025-09-02 15:48:27", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-depth-fm": { + "stars": 83, + "last_update": "2024-05-22 21:10:15", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-moondream": { + "stars": 107, + "last_update": "2024-08-12 16:30:11", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-segment-anything-2": { + "stars": 1032, + "last_update": "2025-03-19 09:40:37", + "author_account_age_days": 2618 + }, + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Advanced-Watermarks": { + "stars": 18, + "last_update": "2025-04-03 17:22:59", + "author_account_age_days": 291 + }, + "https://github.com/kinfolk0117/ComfyUI_GradientDeepShrink": { + "stars": 28, + "last_update": "2024-05-22 21:25:13", + "author_account_age_days": 903 + }, + "https://github.com/kinfolk0117/ComfyUI_GridSwapper": { + "stars": 30, + "last_update": "2024-10-27 09:04:20", + "author_account_age_days": 903 + }, + "https://github.com/kinfolk0117/ComfyUI_Pilgram": { + "stars": 8, + "last_update": "2024-05-22 21:25:24", + "author_account_age_days": 903 + }, + "https://github.com/kinfolk0117/ComfyUI_SimpleTiles": { + "stars": 59, + "last_update": "2024-05-22 21:25:01", + "author_account_age_days": 903 + }, + "https://github.com/kk8bit/KayTool": { + "stars": 209, + "last_update": "2025-07-01 03:47:14", + "author_account_age_days": 792 + }, + "https://github.com/klinter007/klinter_nodes": { + "stars": 18, + "last_update": "2025-07-23 07:13:16", + "author_account_age_days": 860 + }, + "https://github.com/kmlbdh/ComfyUI-kmlbdh-VideoCombine": { + "stars": 1, + "last_update": "2025-08-25 22:55:23", + "author_account_age_days": 3613 + }, + "https://github.com/kmlbdh/ComfyUI_LocalLLMNodes": { + "stars": 2, + "last_update": "2025-08-07 12:47:42", + "author_account_age_days": 3613 + }, + "https://github.com/knuknX/ComfyUI-Image-Tools": { + "stars": 3, + "last_update": "2024-06-14 09:05:58", + "author_account_age_days": 635 + }, + "https://github.com/kohs100/comfyui-ppwc": { + "stars": 0, + "last_update": "2025-06-26 15:37:57", + "author_account_age_days": 3326 + }, + "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI": { + "stars": 199, + "last_update": "2024-05-22 20:44:44", + "author_account_age_days": 2244 + }, + "https://github.com/komojini/ComfyUI_SDXL_DreamBooth_LoRA_CustomNodes": { + "stars": 3, + "last_update": "2024-05-22 21:34:27", + "author_account_age_days": 1018 + }, + "https://github.com/komojini/komojini-comfyui-nodes": { + "stars": 76, + "last_update": "2024-05-22 21:34:39", + "author_account_age_days": 1018 + }, + "https://github.com/kostenickj/jk-comfyui-helpers": { + "stars": 6, + "last_update": "2024-12-19 10:22:42", + "author_account_age_days": 3484 + }, + "https://github.com/kpsss34/ComfyUI-kpsss34": { + "stars": 9, + "last_update": "2025-08-06 07:23:01", + "author_account_age_days": 78 + }, + "https://github.com/kraglik/prompt_collapse": { + "stars": 5, + "last_update": "2024-12-15 08:39:51", + "author_account_age_days": 2892 + }, + "https://github.com/krakenunbound/ComfyUI-KrakenTools": { + "stars": 0, + "last_update": "2025-08-25 21:17:49", + "author_account_age_days": 13 + }, + "https://github.com/krigeta/qwen-image-controlnets-comfyui": { + "stars": 2, + "last_update": "2025-08-17 11:09:39", + "author_account_age_days": 1736 + }, + "https://github.com/krmahil/comfyui-hollow-preserve": { + "stars": 1, + "last_update": "2025-05-15 09:55:46", + "author_account_age_days": 2713 + }, + "https://github.com/kukuo6666/ComfyUI-Equirect": { + "stars": 2, + "last_update": "2025-03-29 18:28:47", + "author_account_age_days": 2002 + }, + "https://github.com/kungful/ComfyUI_to_webui": { + "stars": 16, + "last_update": "2025-07-02 09:38:43", + "author_account_age_days": 1558 }, "https://github.com/kunieone/ComfyUI_alkaid": { "stars": 0, - "last_update": "2024-04-15 07:49:55" + "last_update": "2024-05-23 01:10:21", + "author_account_age_days": 2955 }, - "https://github.com/jtydhr88/ComfyUI-InstantMesh": { + "https://github.com/kusurin/ComfyUI-chronophotography": { + "stars": 0, + "last_update": "2025-08-16 15:11:58", + "author_account_age_days": 1053 + }, + "https://github.com/kwaroran/abg-comfyui": { + "stars": 25, + "last_update": "2024-05-22 18:19:51", + "author_account_age_days": 1042 + }, + "https://github.com/kycg/comfyui-Lora-auto-downloader": { + "stars": 1, + "last_update": "2025-08-27 13:47:53", + "author_account_age_days": 1376 + }, + "https://github.com/l-comm/WatermarkRemoval": { + "stars": 4, + "last_update": "2025-01-13 05:33:32", + "author_account_age_days": 246 + }, + "https://github.com/l20richo/ComfyUI-Azure-Blob-Storage": { + "stars": 2, + "last_update": "2024-06-22 16:53:47", + "author_account_age_days": 1602 + }, + "https://github.com/l3ony2k/comfyui-leon-nodes": { + "stars": 2, + "last_update": "2025-08-28 08:37:26", + "author_account_age_days": 2092 + }, + "https://github.com/laksjdjf/Batch-Condition-ComfyUI": { + "stars": 7, + "last_update": "2024-05-22 20:42:42", + "author_account_age_days": 3266 + }, + "https://github.com/laksjdjf/ComfyUI-Imatrix": { + "stars": 6, + "last_update": "2025-06-07 00:17:26", + "author_account_age_days": 3266 + }, + "https://github.com/laksjdjf/LCMSampler-ComfyUI": { + "stars": 16, + "last_update": "2024-05-22 20:42:17", + "author_account_age_days": 3266 + }, + "https://github.com/laksjdjf/LoRTnoC-ComfyUI": { + "stars": 13, + "last_update": "2024-05-22 20:42:29", + "author_account_age_days": 3266 + }, + "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI": { + "stars": 23, + "last_update": "2024-05-22 20:42:04", + "author_account_age_days": 3266 + }, + "https://github.com/laksjdjf/cgem156-ComfyUI": { + "stars": 79, + "last_update": "2025-04-30 14:52:29", + "author_account_age_days": 3266 + }, + "https://github.com/laksjdjf/pfg-ComfyUI": { + "stars": 12, + "last_update": "2024-05-22 20:41:41", + "author_account_age_days": 3266 + }, + "https://github.com/larsupb/LoRA-Merger-ComfyUI": { + "stars": 52, + "last_update": "2024-10-24 11:28:08", + "author_account_age_days": 3511 + }, + "https://github.com/latenightlabs/ComfyUI-LNL": { + "stars": 26, + "last_update": "2024-10-07 20:09:43", + "author_account_age_days": 585 + }, + "https://github.com/lazniak/Head-Orientation-Node-for-ComfyUI---by-PabloGFX": { + "stars": 10, + "last_update": "2024-09-25 15:02:14", + "author_account_age_days": 2716 + }, + "https://github.com/lazniak/LiquidTime-Interpolation": { + "stars": 12, + "last_update": "2025-04-03 11:42:12", + "author_account_age_days": 2716 + }, + "https://github.com/lazniak/comfyui-google-photos-loader": { + "stars": 3, + "last_update": "2025-04-03 11:46:29", + "author_account_age_days": 2716 + }, + "https://github.com/lc03lc/Comfyui_OmniConsistency": { + "stars": 63, + "last_update": "2025-06-01 02:56:02", + "author_account_age_days": 1411 + }, + "https://github.com/lceric/comfyui-gpt-image": { + "stars": 9, + "last_update": "2025-05-19 10:49:30", + "author_account_age_days": 3145 + }, + "https://github.com/lebrosoft/ComfyUI-VideoChatWrapper": { + "stars": 2, + "last_update": "2025-06-06 04:07:48", + "author_account_age_days": 3952 + }, + "https://github.com/leeguandong/ComfyUI_1Prompt1Story": { + "stars": 5, + "last_update": "2025-03-13 16:11:50", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_ChatGen": { + "stars": 2, + "last_update": "2025-03-13 16:24:46", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_Cogview4": { + "stars": 2, + "last_update": "2025-03-13 15:58:44", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_CompareModelWeights": { + "stars": 3, + "last_update": "2025-01-09 02:43:41", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_CrossImageAttention": { + "stars": 3, + "last_update": "2024-08-16 11:59:42", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_DeepSeekVL2": { + "stars": 0, + "last_update": "2025-03-13 16:32:16", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_FluxAttentionMask": { + "stars": 4, + "last_update": "2025-03-15 07:37:50", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_FluxClipWeight": { + "stars": 3, + "last_update": "2025-03-02 07:32:55", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_FluxCustomId": { + "stars": 7, + "last_update": "2025-01-06 01:12:44", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_FluxLayerDiffuse": { + "stars": 17, + "last_update": "2025-03-17 01:07:01", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_Gemma3": { + "stars": 8, + "last_update": "2025-03-25 14:45:01", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_InternVL2": { + "stars": 13, + "last_update": "2024-08-10 11:00:11", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_LLaSM": { + "stars": 5, + "last_update": "2024-08-10 10:58:17", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_M3Net": { + "stars": 12, + "last_update": "2024-08-16 00:03:21", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_MasaCtrl": { + "stars": 3, + "last_update": "2024-09-01 03:47:35", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_QWQ32B": { + "stars": 2, + "last_update": "2025-03-15 17:19:23", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_Style_Aligned": { + "stars": 5, + "last_update": "2024-08-16 11:59:33", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_VideoEditing": { + "stars": 4, + "last_update": "2024-08-14 16:59:49", + "author_account_age_days": 3229 + }, + "https://github.com/leeguandong/ComfyUI_VisualAttentionMap": { + "stars": 8, + "last_update": "2024-08-26 05:15:14", + "author_account_age_days": 3229 + }, + "https://github.com/leestuartx/ComfyUI-GG": { + "stars": 2, + "last_update": "2025-03-10 16:26:37", + "author_account_age_days": 4214 + }, + "https://github.com/lenskikh/ComfyUI-Prompt-Worker": { + "stars": 15, + "last_update": "2025-07-16 21:04:06", + "author_account_age_days": 3931 + }, + "https://github.com/leoleelxh/Comfy-Topaz-Photo": { + "stars": 16, + "last_update": "2025-05-24 05:47:40", + "author_account_age_days": 4510 + }, + "https://github.com/leoleelxh/ComfyUI-LLMs": { + "stars": 51, + "last_update": "2025-06-17 13:52:33", + "author_account_age_days": 4510 + }, + "https://github.com/leonardomiramondi/flux-context-comfyui": { + "stars": 0, + "last_update": "2025-06-25 10:18:42", + "author_account_age_days": 855 + }, + "https://github.com/lepiai/ComfyUI-Minitools": { + "stars": 8, + "last_update": "2025-05-24 16:11:50", + "author_account_age_days": 2305 + }, + "https://github.com/lerignoux/ComfyUI-PechaKucha": { + "stars": 1, + "last_update": "2025-08-02 02:13:14", + "author_account_age_days": 4740 + }, + "https://github.com/lerignoux/ComfyUI-Stable3DGen": { + "stars": 2, + "last_update": "2025-08-05 05:47:02", + "author_account_age_days": 4740 + }, + "https://github.com/lgldlk/ComfyUI-PC-ding-dong": { + "stars": 76, + "last_update": "2024-12-27 03:25:38", + "author_account_age_days": 2125 + }, + "https://github.com/lgldlk/ComfyUI-PSD-Replace": { + "stars": 4, + "last_update": "2025-03-15 07:03:24", + "author_account_age_days": 2125 + }, + "https://github.com/liangt/comfyui-loadimagewithsubfolder": { + "stars": 3, + "last_update": "2025-03-27 16:49:42", + "author_account_age_days": 4493 + }, + "https://github.com/licyk/ComfyUI-HakuImg": { + "stars": 9, + "last_update": "2025-08-06 15:55:12", + "author_account_age_days": 1703 + }, + "https://github.com/licyk/ComfyUI-Restart-Sampler": { + "stars": 11, + "last_update": "2025-02-24 04:53:52", + "author_account_age_days": 1703 + }, + "https://github.com/licyk/ComfyUI-TCD-Sampler": { + "stars": 6, + "last_update": "2025-03-27 16:32:33", + "author_account_age_days": 1703 + }, + "https://github.com/lihaoyun6/ComfyUI-BlindWatermark": { + "stars": 6, + "last_update": "2025-08-30 13:57:19", + "author_account_age_days": 3546 + }, + "https://github.com/lihaoyun6/ComfyUI-CSV-Random-Picker": { + "stars": 1, + "last_update": "2025-05-10 10:41:53", + "author_account_age_days": 3546 + }, + "https://github.com/lihaoyun6/ComfyUI-QwenPromptRewriter": { + "stars": 23, + "last_update": "2025-08-22 04:48:51", + "author_account_age_days": 3546 + }, + "https://github.com/lilly1987/ComfyUI_node_Lilly": { + "stars": 56, + "last_update": "2024-12-21 01:50:03", + "author_account_age_days": 3345 + }, + "https://github.com/lingha0h/comfyui_kj": { + "stars": 6, + "last_update": "2025-03-20 13:24:29", + "author_account_age_days": 209 + }, + "https://github.com/linjian-ufo/ComfyUI_GLM4V_voltspark": { + "stars": 5, + "last_update": "2025-07-09 13:04:58", + "author_account_age_days": 533 + }, + "https://github.com/linjian-ufo/comfyui_deepseek_lj257_update": { + "stars": 0, + "last_update": "2025-06-17 11:26:32", + "author_account_age_days": 533 + }, + "https://github.com/linksluckytime/comfyui_snacknodes": { + "stars": 0, + "last_update": "2025-05-07 01:48:50", + "author_account_age_days": 860 + }, + "https://github.com/linshier/comfyui-remote-tools": { + "stars": 4, + "last_update": "2024-05-28 07:44:23", + "author_account_age_days": 4227 + }, + "https://github.com/lisaks/comfyui-panelforge": { + "stars": 1, + "last_update": "2025-04-29 00:25:00", + "author_account_age_days": 1171 + }, + "https://github.com/liuqianhonga/ComfyUI-Html2Image": { + "stars": 12, + "last_update": "2025-06-22 07:58:49", + "author_account_age_days": 622 + }, + "https://github.com/liuqianhonga/ComfyUI-Image-Compressor": { + "stars": 20, + "last_update": "2025-06-22 08:32:22", + "author_account_age_days": 622 + }, + "https://github.com/liuqianhonga/ComfyUI-QHNodes": { + "stars": 3, + "last_update": "2025-06-22 08:33:17", + "author_account_age_days": 622 + }, + "https://github.com/liuqianhonga/ComfyUI-String-Helper": { + "stars": 8, + "last_update": "2025-06-22 07:56:48", + "author_account_age_days": 622 + }, + "https://github.com/liushuchun/ComfyUI_Lora_List_With_Url_Loader": { + "stars": 2, + "last_update": "2024-09-26 12:38:32", + "author_account_age_days": 4482 + }, + "https://github.com/liusida/ComfyUI-AutoCropFaces": { + "stars": 104, + "last_update": "2024-08-12 17:38:17", + "author_account_age_days": 3643 + }, + "https://github.com/liusida/ComfyUI-B-LoRA": { + "stars": 76, + "last_update": "2024-06-18 03:17:46", + "author_account_age_days": 3643 + }, + "https://github.com/liusida/ComfyUI-Debug": { + "stars": 12, + "last_update": "2024-06-14 10:25:26", + "author_account_age_days": 3643 + }, + "https://github.com/liusida/ComfyUI-Login": { + "stars": 180, + "last_update": "2024-11-15 01:35:25", + "author_account_age_days": 3643 + }, + "https://github.com/liusida/ComfyUI-SD3-nodes": { + "stars": 6, + "last_update": "2024-06-14 13:01:41", + "author_account_age_days": 3643 + }, + "https://github.com/livepeer/ComfyUI-Stream-Pack": { + "stars": 12, + "last_update": "2025-08-28 06:44:05", + "author_account_age_days": 3141 + }, + "https://github.com/ljleb/comfy-mecha": { + "stars": 88, + "last_update": "2025-08-13 15:49:32", + "author_account_age_days": 2898 + }, + "https://github.com/lks-ai/ComfyUI-StableAudioSampler": { + "stars": 255, + "last_update": "2025-01-07 08:33:57", + "author_account_age_days": 534 + }, + "https://github.com/lks-ai/anynode": { + "stars": 539, + "last_update": "2024-07-07 03:45:48", + "author_account_age_days": 534 + }, + "https://github.com/lldacing/ComfyUI_BEN_ll": { + "stars": 4, + "last_update": "2025-05-22 07:01:42", + "author_account_age_days": 2528 + }, + "https://github.com/lldacing/ComfyUI_BiRefNet_ll": { + "stars": 238, + "last_update": "2025-06-01 16:39:20", + "author_account_age_days": 2528 + }, + "https://github.com/lldacing/ComfyUI_Patches_ll": { + "stars": 113, + "last_update": "2025-04-08 06:22:28", + "author_account_age_days": 2528 + }, + "https://github.com/lldacing/ComfyUI_PuLID_Flux_ll": { + "stars": 420, + "last_update": "2025-04-08 06:21:55", + "author_account_age_days": 2528 + }, + "https://github.com/lldacing/ComfyUI_StableDelight_ll": { + "stars": 12, + "last_update": "2025-04-08 06:22:43", + "author_account_age_days": 2528 + }, + "https://github.com/lldacing/ComfyUI_StableHair_ll": { + "stars": 71, + "last_update": "2025-03-31 09:16:21", + "author_account_age_days": 2528 + }, + "https://github.com/lldacing/comfyui-easyapi-nodes": { + "stars": 84, + "last_update": "2025-08-25 11:50:40", + "author_account_age_days": 2528 + }, + "https://github.com/lo-th/Comfyui_three_js": { + "stars": 19, + "last_update": "2025-06-12 08:18:17", + "author_account_age_days": 4915 + }, + "https://github.com/lodestone-rock/ComfyUI_FluxMod": { + "stars": 116, + "last_update": "2025-06-22 09:44:09", + "author_account_age_days": 1018 + }, + "https://github.com/logtd/ComfyUI-4DHumans": { + "stars": 7, + "last_update": "2024-08-30 21:12:55", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-APGScaling": { + "stars": 29, + "last_update": "2024-10-06 20:51:27", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-DiLightNet": { + "stars": 11, + "last_update": "2024-10-06 03:48:15", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-FLATTEN": { + "stars": 109, + "last_update": "2024-08-30 21:18:55", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-Fluxtapoz": { + "stars": 1375, + "last_update": "2025-01-09 02:38:40", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-InstanceDiffusion": { + "stars": 179, + "last_update": "2024-08-30 21:17:51", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-InversedNoise": { + "stars": 16, + "last_update": "2024-05-22 00:10:18", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-MochiEdit": { + "stars": 295, + "last_update": "2024-11-03 18:38:16", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-MotionThiefExperiment": { + "stars": 41, + "last_update": "2024-08-30 21:19:48", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-RAVE_ATTN": { + "stars": 13, + "last_update": "2024-05-22 00:20:03", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-ReNoise": { + "stars": 6, + "last_update": "2024-09-01 22:17:49", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-RefSampling": { + "stars": 5, + "last_update": "2024-09-11 20:56:01", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-RefUNet": { + "stars": 45, + "last_update": "2024-08-30 21:20:20", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-SEGAttention": { + "stars": 39, + "last_update": "2024-09-11 20:55:00", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-SSREncoder": { + "stars": 1, + "last_update": "2024-08-24 23:33:09", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-SeeCoder": { + "stars": 0, + "last_update": "2024-08-24 23:31:10", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-TrackingNodes": { + "stars": 19, + "last_update": "2024-05-22 00:03:27", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-ViewCrafter": { + "stars": 12, + "last_update": "2024-09-30 19:32:41", + "author_account_age_days": 557 + }, + "https://github.com/lokinou/comfyui-offload-models": { + "stars": 1, + "last_update": "2025-08-04 11:00:38", + "author_account_age_days": 4589 + }, + "https://github.com/lonelyowl13/artist_randomizer": { + "stars": 1, + "last_update": "2025-08-14 08:20:40", + "author_account_age_days": 324 + }, + "https://github.com/longgui0318/comfyui-common-util": { + "stars": 1, + "last_update": "2025-04-07 08:19:05", + "author_account_age_days": 4600 + }, + "https://github.com/longgui0318/comfyui-llm-assistant": { + "stars": 8, + "last_update": "2024-09-17 13:12:43", + "author_account_age_days": 4600 + }, + "https://github.com/longgui0318/comfyui-magic-clothing": { + "stars": 81, + "last_update": "2024-08-08 14:42:04", + "author_account_age_days": 4600 + }, + "https://github.com/longgui0318/comfyui-mask-util": { + "stars": 8, + "last_update": "2025-04-07 08:18:11", + "author_account_age_days": 4600 + }, + "https://github.com/lord-lethris/ComfyUI-RPG-Characters": { + "stars": 1, + "last_update": "2025-06-18 23:08:15", + "author_account_age_days": 4859 + }, + "https://github.com/lordgasmic/comfyui_save_image_with_options": { + "stars": 0, + "last_update": "2024-06-20 16:39:23", + "author_account_age_days": 5202 + }, + "https://github.com/lordgasmic/comfyui_wildcards": { + "stars": 11, + "last_update": "2024-06-20 16:52:14", + "author_account_age_days": 5202 + }, + "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch": { + "stars": 802, + "last_update": "2025-05-10 07:46:49", + "author_account_age_days": 4486 + }, + "https://github.com/lquesada/ComfyUI-Interactive": { + "stars": 44, + "last_update": "2025-05-01 03:39:47", + "author_account_age_days": 4486 + }, + "https://github.com/lquesada/ComfyUI-Prompt-Combinator": { + "stars": 42, + "last_update": "2025-04-16 20:52:10", + "author_account_age_days": 4486 + }, + "https://github.com/lrzjason/ComfyUI-Watermark-Detection": { + "stars": 26, + "last_update": "2025-05-28 20:46:50", + "author_account_age_days": 4098 + }, + "https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils": { + "stars": 232, + "last_update": "2025-04-03 09:09:43", + "author_account_age_days": 4098 + }, + "https://github.com/lrzjason/Comfyui-Kolors-Utils": { + "stars": 17, + "last_update": "2025-05-05 16:10:11", + "author_account_age_days": 4098 + }, + "https://github.com/lrzjason/Comfyui-ThinkRemover": { + "stars": 4, + "last_update": "2025-02-07 10:57:50", + "author_account_age_days": 4098 + }, + "https://github.com/ltdrdata/ComfyUI-Impact-Pack": { + "stars": 2668, + "last_update": "2025-08-19 20:08:39", + "author_account_age_days": 897 + }, + "https://github.com/ltdrdata/ComfyUI-Impact-Subpack": { + "stars": 250, + "last_update": "2025-07-22 03:44:20", + "author_account_age_days": 897 + }, + "https://github.com/ltdrdata/ComfyUI-Inspire-Pack": { + "stars": 649, + "last_update": "2025-07-15 03:29:35", + "author_account_age_days": 897 + }, + "https://github.com/ltdrdata/ComfyUI-Manager": { + "stars": 11351, + "last_update": "2025-09-02 15:17:00", + "author_account_age_days": 510 + }, + "https://github.com/ltdrdata/comfyui-connection-helper": { + "stars": 36, + "last_update": "2025-04-07 13:49:56", + "author_account_age_days": 897 + }, + "https://github.com/ltdrdata/was-node-suite-comfyui": { + "stars": 75, + "last_update": "2025-08-23 08:36:12", + "author_account_age_days": 897 + }, + "https://github.com/lthero-big/ComfyUI-GaussianShadingWatermark": { + "stars": 5, + "last_update": "2025-03-23 08:18:07", + "author_account_age_days": 1829 + }, + "https://github.com/luandev/ComfyUI-CrewAI": { + "stars": 54, + "last_update": "2025-01-17 18:06:27", + "author_account_age_days": 4242 + }, + "https://github.com/lucak5s/comfyui_gfpgan": { + "stars": 0, + "last_update": "2025-06-30 04:42:11", + "author_account_age_days": 582 + }, + "https://github.com/lucasgattas/comfyui-egregora-divide-and-enhance": { + "stars": 0, + "last_update": "2025-08-29 23:39:42", + "author_account_age_days": 2868 + }, + "https://github.com/lucianoambrosini/ComfyUI-ATk-Nodes": { + "stars": 2, + "last_update": "2025-06-25 05:04:14", + "author_account_age_days": 3550 + }, + "https://github.com/lujiazho/ComfyUI-CatvtonFluxWrapper": { + "stars": 93, + "last_update": "2024-12-02 22:10:41", + "author_account_age_days": 1872 + }, + "https://github.com/luke-mino-altherr/ComfyUI-LatentReverb": { + "stars": 3, + "last_update": "2025-08-13 00:14:13", + "author_account_age_days": 3946 + }, + "https://github.com/lum3on/ComfyUI-FrameUtilitys": { + "stars": 10, + "last_update": "2025-08-07 16:00:54", + "author_account_age_days": 209 + }, + "https://github.com/lum3on/ComfyUI-ModelQuantizer": { + "stars": 61, + "last_update": "2025-06-14 20:45:21", + "author_account_age_days": 209 + }, + "https://github.com/lum3on/ComfyUI-StableAudioX": { + "stars": 27, + "last_update": "2025-06-24 22:55:28", + "author_account_age_days": 209 + }, + "https://github.com/lum3on/ComfyUI_MJ-Scraper": { + "stars": 1, + "last_update": "2025-07-06 18:35:33", + "author_account_age_days": 209 + }, + "https://github.com/lum3on/comfyui_EdgeTAM": { + "stars": 2, + "last_update": "2025-06-27 15:36:58", + "author_account_age_days": 209 + }, + "https://github.com/lum3on/comfyui_HiDream-Sampler": { + "stars": 482, + "last_update": "2025-04-22 07:21:41", + "author_account_age_days": 209 + }, + "https://github.com/lum3on/comfyui_LLM_Polymath": { + "stars": 66, + "last_update": "2025-08-27 23:22:27", + "author_account_age_days": 209 + }, + "https://github.com/lumalabs/ComfyUI-LumaAI-API": { + "stars": 202, + "last_update": "2025-03-31 22:54:28", + "author_account_age_days": 1546 + }, + "https://github.com/lunarring/bitalino_comfy": { + "stars": 0, + "last_update": "2025-02-21 09:03:54", + "author_account_age_days": 1677 + }, + "https://github.com/lxe/ComfyUI-OpenAI-Compat-LLM-Node": { + "stars": 0, + "last_update": "2025-05-28 05:39:55", + "author_account_age_days": 4933 + }, + "https://github.com/m-sokes/ComfyUI-Sokes-Nodes": { + "stars": 2, + "last_update": "2025-08-31 11:29:46", + "author_account_age_days": 750 + }, + "https://github.com/madtunebk/ComfyUI-ControlnetAux": { + "stars": 15, + "last_update": "2024-06-28 16:16:51", + "author_account_age_days": 896 + }, + "https://github.com/maepopi/Diffusers-in-ComfyUI": { + "stars": 6, + "last_update": "2025-03-28 07:29:38", + "author_account_age_days": 2793 + }, + "https://github.com/magekinnarus/ComfyUI-V-Prediction-Node": { + "stars": 2, + "last_update": "2025-02-04 08:29:24", + "author_account_age_days": 1067 + }, + "https://github.com/magic-eraser-org/ComfyUI-Unwatermark": { + "stars": 1, + "last_update": "2025-05-14 06:50:13", + "author_account_age_days": 112 + }, + "https://github.com/maludwig/basix_image_filters": { + "stars": 6, + "last_update": "2025-05-15 23:29:38", + "author_account_age_days": 3941 + }, + "https://github.com/mamorett/ComfyUI_minicpmv4": { + "stars": 0, + "last_update": "2025-08-15 21:17:50", + "author_account_age_days": 1187 + }, + "https://github.com/mang01010/MangoNodePack": { + "stars": 3, + "last_update": "2025-07-11 17:10:27", + "author_account_age_days": 185 + }, + "https://github.com/mango-rgb/ComfyUI-Mango-Random-node": { + "stars": 2, + "last_update": "2025-01-21 11:31:10", + "author_account_age_days": 839 + }, + "https://github.com/mangobyed/ComfyUI_Detection_List": { + "stars": 0, + "last_update": "2025-08-22 20:53:01", + "author_account_age_days": 301 + }, + "https://github.com/manifestations/comfyui-globetrotter": { + "stars": 4, + "last_update": "2025-07-07 08:47:57", + "author_account_age_days": 4589 + }, + "https://github.com/manifestations/comfyui-outfit": { + "stars": 2, + "last_update": "2025-09-01 11:33:53", + "author_account_age_days": 4589 + }, + "https://github.com/mape/ComfyUI-mape-Helpers": { + "stars": 180, + "last_update": "2024-06-27 16:30:32", + "author_account_age_days": 6189 + }, + "https://github.com/maracman/ComfyUI-SubjectStyle-CSV": { + "stars": 4, + "last_update": "2024-06-24 13:53:39", + "author_account_age_days": 1602 + }, + "https://github.com/marawan206/ComfyUI-FaceCropper": { + "stars": 10, + "last_update": "2025-03-07 01:44:44", + "author_account_age_days": 605 + }, + "https://github.com/marco-zanella/ComfyUI-BooleanExpression": { + "stars": 0, + "last_update": "2025-08-17 02:05:40", + "author_account_age_days": 3953 + }, + "https://github.com/marcoc2/ComfyUI-AnotherUtils": { + "stars": 1, + "last_update": "2025-08-27 01:08:27", + "author_account_age_days": 5619 + }, + "https://github.com/marcoc2/ComfyUI_CogView4-6B_diffusers": { + "stars": 2, + "last_update": "2025-03-04 17:43:50", + "author_account_age_days": 5619 + }, + "https://github.com/marduk191/ComfyUI-Fluxpromptenhancer": { + "stars": 114, + "last_update": "2025-08-03 03:41:23", + "author_account_age_days": 4850 + }, + "https://github.com/marduk191/comfyui-marnodes": { + "stars": 3, + "last_update": "2025-03-27 13:26:45", + "author_account_age_days": 4850 + }, + "https://github.com/marhensa/sdxl-recommended-res-calc": { + "stars": 91, + "last_update": "2025-04-13 09:33:49", + "author_account_age_days": 5210 + }, + "https://github.com/marklieberman/ComfyUI-Liebs-Picker": { + "stars": 10, + "last_update": "2025-08-08 23:15:40", + "author_account_age_days": 4240 + }, + "https://github.com/marklieberman/ComfyUI-Liebs-Title": { + "stars": 0, + "last_update": "2025-05-12 23:32:28", + "author_account_age_days": 4240 + }, + "https://github.com/marklieberman/ComfyUI-Liebs-Toast": { + "stars": 0, + "last_update": "2025-05-12 23:34:55", + "author_account_age_days": 4240 + }, + "https://github.com/markuryy/ComfyUI-Flux-Prompt-Saver": { + "stars": 14, + "last_update": "2024-10-30 10:25:15", + "author_account_age_days": 3313 + }, + "https://github.com/markuryy/ComfyUI-Simple-Video-XY-Plot": { + "stars": 3, + "last_update": "2025-03-12 18:18:54", + "author_account_age_days": 3313 + }, + "https://github.com/markuryy/ComfyUI-SuperLoader": { + "stars": 0, + "last_update": "2025-03-12 18:23:22", + "author_account_age_days": 3313 + }, + "https://github.com/martijnat/comfyui-previewlatent": { + "stars": 43, + "last_update": "2025-08-08 17:52:29", + "author_account_age_days": 3266 + }, + "https://github.com/martin-rizzo/ComfyUI-TinyBreaker": { + "stars": 40, + "last_update": "2025-08-29 23:04:42", + "author_account_age_days": 2032 + }, + "https://github.com/massao000/ComfyUI_aspect_ratios": { + "stars": 11, + "last_update": "2024-05-22 22:23:10", + "author_account_age_days": 1842 + }, + "https://github.com/matan1905/ComfyUI-Serving-Toolkit": { + "stars": 69, + "last_update": "2025-05-01 10:03:33", + "author_account_age_days": 3175 + }, + "https://github.com/matorzhin/milan-nodes-comfyui": { + "stars": 1, + "last_update": "2025-06-05 16:37:41", + "author_account_age_days": 3087 + }, + "https://github.com/mattjohnpowell/comfyui-lmstudio-image-to-text-node": { + "stars": 26, + "last_update": "2025-08-22 14:25:23", + "author_account_age_days": 4985 + }, + "https://github.com/mav-rik/facerestore_cf": { + "stars": 297, + "last_update": "2025-06-21 08:02:17", + "author_account_age_days": 3355 + }, + "https://github.com/max-dingsda/OllamaTools": { + "stars": 2, + "last_update": "2025-08-05 18:12:55", + "author_account_age_days": 126 + }, + "https://github.com/mbrostami/ComfyUI-HF": { + "stars": 19, + "last_update": "2024-05-27 21:45:33", + "author_account_age_days": 4757 + }, + "https://github.com/mbrostami/ComfyUI-TITrain": { + "stars": 12, + "last_update": "2025-07-21 16:58:23", + "author_account_age_days": 4757 + }, + "https://github.com/mcDandy/more_math": { + "stars": 0, + "last_update": "2025-08-31 08:31:35", + "author_account_age_days": 3421 + }, + "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding": { + "stars": 1219, + "last_update": "2025-03-14 09:33:32", + "author_account_age_days": 2537 + }, + "https://github.com/meanin2/comfyui-MGnodes": { + "stars": 2, + "last_update": "2025-01-24 07:32:08", + "author_account_age_days": 1089 + }, + "https://github.com/meap158/ComfyUI-Background-Replacement": { + "stars": 62, + "last_update": "2025-01-06 23:45:28", + "author_account_age_days": 3638 + }, + "https://github.com/meap158/ComfyUI-GPU-temperature-protection": { + "stars": 3, + "last_update": "2024-05-22 20:43:21", + "author_account_age_days": 3638 + }, + "https://github.com/meap158/ComfyUI-Prompt-Expansion": { "stars": 78, - "last_update": "2024-04-17 03:15:10" + "last_update": "2024-05-22 20:43:37", + "author_account_age_days": 3638 + }, + "https://github.com/mech-tools/comfyui-checkpoint-automatic-config": { + "stars": 3, + "last_update": "2024-09-05 14:23:29", + "author_account_age_days": 4875 + }, + "https://github.com/mediocreatmybest/ComfyUI-Transformers-Pipeline": { + "stars": 4, + "last_update": "2025-08-10 00:49:32", + "author_account_age_days": 1637 + }, + "https://github.com/melMass/comfy_mtb": { + "stars": 607, + "last_update": "2025-08-26 10:55:24", + "author_account_age_days": 4180 + }, + "https://github.com/melMass/comfy_oiio": { + "stars": 6, + "last_update": "2025-08-25 14:30:15", + "author_account_age_days": 4180 + }, + "https://github.com/mengqin/ComfyUI-UnetBnbModelLoader": { + "stars": 3, + "last_update": "2025-09-01 13:31:55", + "author_account_age_days": 4157 + }, + "https://github.com/mephisto83/petty-paint-comfyui-node": { + "stars": 3, + "last_update": "2024-10-23 22:23:03", + "author_account_age_days": 4107 + }, + "https://github.com/meshmesh-io/ComfyUI-MeshMesh": { + "stars": 0, + "last_update": "2024-05-23 00:10:09", + "author_account_age_days": 663 + }, + "https://github.com/meshmesh-io/mm-comfyui-loopback": { + "stars": 1, + "last_update": "2024-05-23 00:09:57", + "author_account_age_days": 663 + }, + "https://github.com/meshmesh-io/mm-comfyui-megamask": { + "stars": 0, + "last_update": "2024-05-23 00:09:47", + "author_account_age_days": 663 + }, + "https://github.com/metal3d/ComfyUI_Human_Parts": { + "stars": 37, + "last_update": "2025-03-07 08:14:46", + "author_account_age_days": 5908 + }, + "https://github.com/metal3d/ComfyUI_M3D_photo_effects": { + "stars": 3, + "last_update": "2025-03-11 12:09:55", + "author_account_age_days": 5908 + }, + "https://github.com/metncelik/comfyui_met_suite": { + "stars": 2, + "last_update": "2025-03-27 12:27:48", + "author_account_age_days": 1058 + }, + "https://github.com/mfg637/ComfyUI-ScheduledGuider-Ext": { + "stars": 5, + "last_update": "2025-07-02 09:36:48", + "author_account_age_days": 2752 + }, + "https://github.com/mgfxer/ComfyUI-FrameFX": { + "stars": 24, + "last_update": "2024-07-20 13:58:46", + "author_account_age_days": 437 + }, + "https://github.com/miaoshouai/ComfyUI-Miaoshouai-Tagger": { + "stars": 453, + "last_update": "2025-04-26 02:32:18", + "author_account_age_days": 903 + }, + "https://github.com/miaoshouai/ComfyUI-Video-Segmentation": { + "stars": 31, + "last_update": "2025-08-10 09:11:18", + "author_account_age_days": 903 + }, + "https://github.com/michaelgold/ComfyUI-HF-Model-Downloader": { + "stars": 4, + "last_update": "2025-08-22 03:03:52", + "author_account_age_days": 5791 + }, + "https://github.com/microbote/ComfyUI-StyledCLIPTextEncode": { + "stars": 2, + "last_update": "2024-08-27 03:37:29", + "author_account_age_days": 2443 + }, + "https://github.com/mihaiiancu/ComfyUI_Inpaint": { + "stars": 9, + "last_update": "2024-05-22 18:19:38", + "author_account_age_days": 3096 + }, + "https://github.com/mikebilly/Transparent-background-comfyUI": { + "stars": 2, + "last_update": "2025-01-29 16:29:23", + "author_account_age_days": 2999 + }, + "https://github.com/mikeshuangyan/ComfyUI_MqUtils": { + "stars": 0, + "last_update": "2025-07-31 08:46:16", + "author_account_age_days": 4744 + }, + "https://github.com/mikheys/comfyui-gemini-mikheys": { + "stars": 1, + "last_update": "2025-08-29 15:15:54", + "author_account_age_days": 2836 + }, + "https://github.com/mikkel/ComfyUI-text-overlay": { + "stars": 59, + "last_update": "2024-08-17 16:09:41", + "author_account_age_days": 6351 + }, + "https://github.com/mikkel/comfyui-mask-boundingbox": { + "stars": 31, + "last_update": "2024-05-22 21:26:23", + "author_account_age_days": 6351 + }, + "https://github.com/mingsky-ai/ComfyUI-MingNodes": { + "stars": 430, + "last_update": "2024-10-18 16:51:14", + "author_account_age_days": 356 + }, + "https://github.com/mira-6/comfyui-sasolver": { + "stars": 3, + "last_update": "2025-02-23 21:44:23", + "author_account_age_days": 827 + }, + "https://github.com/mirabarukaso/ComfyUI_Mira": { + "stars": 145, + "last_update": "2025-08-28 16:44:18", + "author_account_age_days": 1655 + }, + "https://github.com/misterjoessef/MLTask_ComfyUI": { + "stars": 0, + "last_update": "2024-08-17 16:45:24", + "author_account_age_days": 1173 + }, + "https://github.com/mittimi/ComfyUI_mittimiDaisyChainText": { + "stars": 0, + "last_update": "2025-07-09 08:51:24", + "author_account_age_days": 4445 + }, + "https://github.com/mittimi/ComfyUI_mittimiLoadPreset2": { + "stars": 4, + "last_update": "2025-06-30 11:17:30", + "author_account_age_days": 4445 + }, + "https://github.com/mittimi/ComfyUI_mittimiRecalculateSize": { + "stars": 0, + "last_update": "2024-09-07 07:43:41", + "author_account_age_days": 4445 + }, + "https://github.com/mittimi/ComfyUI_mittimiWidthHeight": { + "stars": 1, + "last_update": "2025-08-27 07:55:25", + "author_account_age_days": 4445 + }, + "https://github.com/mo230761/InsertAnything-ComfyUI-official": { + "stars": 23, + "last_update": "2025-07-16 11:05:05", + "author_account_age_days": 1409 + }, + "https://github.com/mobilehacker/ComfyUI_format-lora-stack": { + "stars": 3, + "last_update": "2025-04-04 19:45:39", + "author_account_age_days": 4243 + }, + "https://github.com/modelscope/comfyscope": { + "stars": 4, + "last_update": "2024-11-20 08:48:36", + "author_account_age_days": 1135 + }, + "https://github.com/modelscope/scepter": { + "stars": 537, + "last_update": "2025-04-03 06:00:15", + "author_account_age_days": 1135 + }, + "https://github.com/modusCell/ComfyUI-dimension-node-modusCell": { + "stars": 2, + "last_update": "2024-05-22 22:08:50", + "author_account_age_days": 5039 + }, + "https://github.com/mohseni-mr/ComfyUI-Mohseni-Kit": { + "stars": 1, + "last_update": "2025-02-17 07:14:46", + "author_account_age_days": 1150 + }, + "https://github.com/mohsensd1373/comfyui_wordpress": { + "stars": 0, + "last_update": "2025-05-08 02:25:36", + "author_account_age_days": 4288 + }, + "https://github.com/monkeyWie/ComfyUI-FormInput": { + "stars": 0, + "last_update": "2025-05-12 03:47:39", + "author_account_age_days": 3714 + }, + "https://github.com/moon7star9/ComfyUI_BiRefNet_Universal": { + "stars": 20, + "last_update": "2025-02-26 03:01:29", + "author_account_age_days": 842 + }, + "https://github.com/moonwhaler/comfyui-seedvr2-tilingupscaler": { + "stars": 9, + "last_update": "2025-08-21 15:59:22", + "author_account_age_days": 4859 + }, + "https://github.com/moose-lab/ComfyUI-GPT": { + "stars": 4, + "last_update": "2025-04-12 07:59:29", + "author_account_age_days": 221 + }, + "https://github.com/morgan55555/comfyui-lock-mode": { + "stars": 0, + "last_update": "2025-04-28 16:16:18", + "author_account_age_days": 3619 + }, + "https://github.com/morino-kumasan/comfyui-toml-prompt": { + "stars": 0, + "last_update": "2025-08-17 18:14:01", + "author_account_age_days": 1759 + }, + "https://github.com/motivated3/comfyui-shua-creator": { + "stars": 6, + "last_update": "2024-12-05 10:39:52", + "author_account_age_days": 3241 + }, + "https://github.com/moustafa-nasr/ComfyUI-SimpleLogger": { + "stars": 4, + "last_update": "2025-06-07 08:30:19", + "author_account_age_days": 3906 + }, + "https://github.com/moyi7712/ComfyUI_Seamless_Patten": { + "stars": 18, + "last_update": "2025-03-19 10:35:44", + "author_account_age_days": 2736 + }, + "https://github.com/mozman/ComfyUI_mozman_nodes": { + "stars": 0, + "last_update": "2024-05-22 22:13:32", + "author_account_age_days": 4515 + }, + "https://github.com/mr7thing/circle_pattern_processor": { + "stars": 0, + "last_update": "2025-03-02 19:24:26", + "author_account_age_days": 572 + }, + "https://github.com/mrchipset/ComfyUI-SaveImageS3": { + "stars": 1, + "last_update": "2025-04-07 00:27:45", + "author_account_age_days": 2746 + }, + "https://github.com/mrhan1993/ComfyUI-Fooocus": { + "stars": 9, + "last_update": "2025-01-15 15:18:07", + "author_account_age_days": 2302 + }, + "https://github.com/muhammederem/blip-comfyui": { + "stars": 1, + "last_update": "2025-05-25 14:11:04", + "author_account_age_days": 2530 + }, + "https://github.com/mullakhmetov/comfyui_dynamic_util_nodes": { + "stars": 0, + "last_update": "2024-07-15 14:13:58", + "author_account_age_days": 4373 + }, + "https://github.com/muxueChen/ComfyUI_NTCosyVoice": { + "stars": 159, + "last_update": "2025-05-20 13:36:56", + "author_account_age_days": 3396 + }, + "https://github.com/muzi12888/ComfyUI-PoseKeypoint-Mask": { + "stars": 12, + "last_update": "2025-03-15 00:23:20", + "author_account_age_days": 3381 + }, + "https://github.com/my-opencode/ComfyUI_IndustrialMagick": { + "stars": 1, + "last_update": "2024-07-31 14:04:26", + "author_account_age_days": 1815 + }, + "https://github.com/my-opencode/ComfyUI_KSamplerTimer": { + "stars": 2, + "last_update": "2024-07-31 14:13:17", + "author_account_age_days": 1815 + }, + "https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin": { + "stars": 25, + "last_update": "2025-05-22 06:54:44", + "author_account_age_days": 904 + }, + "https://github.com/n0neye/A3D-comfyui-integration": { + "stars": 6, + "last_update": "2025-04-28 03:54:34", + "author_account_age_days": 1259 + }, + "https://github.com/nagolinc/ComfyUI_FastVAEDecorder_SDXL": { + "stars": 4, + "last_update": "2024-07-19 14:46:14", + "author_account_age_days": 4109 + }, + "https://github.com/nagolinc/comfyui_openai_node": { + "stars": 1, + "last_update": "2024-06-15 15:59:07", + "author_account_age_days": 4109 + }, + "https://github.com/nako-nakoko/ComfyUI_Mel_Nodes": { + "stars": 0, + "last_update": "2025-04-26 22:48:50", + "author_account_age_days": 151 + }, + "https://github.com/namtb96/OmniGen2-Simple-Node": { + "stars": 2, + "last_update": "2025-07-04 08:38:27", + "author_account_age_days": 81 + }, + "https://github.com/narusas/Comfyui-Logic-Support": { + "stars": 0, + "last_update": "2025-05-30 04:44:16", + "author_account_age_days": 5069 + }, + "https://github.com/nat-chan/ComfyUI-graphToPrompt": { + "stars": 2, + "last_update": "2024-05-23 01:16:40", + "author_account_age_days": 3428 + }, + "https://github.com/nat-chan/comfyui-transceiver": { + "stars": 5, + "last_update": "2024-05-23 01:16:28", + "author_account_age_days": 3428 + }, + "https://github.com/nathannlu/ComfyUI-Cloud": { + "stars": 201, + "last_update": "2024-07-31 18:05:55", + "author_account_age_days": 3160 + }, + "https://github.com/nathannlu/ComfyUI-Pets": { + "stars": 48, + "last_update": "2024-06-14 11:00:42", + "author_account_age_days": 3160 + }, + "https://github.com/natto-maki/ComfyUI-NegiTools": { + "stars": 31, + "last_update": "2024-09-15 05:11:18", + "author_account_age_days": 713 + }, + "https://github.com/nchenevey1/comfyui-gimp-nodes": { + "stars": 10, + "last_update": "2024-10-26 09:11:34", + "author_account_age_days": 1084 + }, + "https://github.com/negaga53/comfyui-imgloader": { + "stars": 0, + "last_update": "2025-07-07 21:27:00", + "author_account_age_days": 220 + }, + "https://github.com/neggo/comfyui-sambanova": { + "stars": 0, + "last_update": "2025-05-15 01:49:53", + "author_account_age_days": 4370 + }, + "https://github.com/neocrz/comfyui-usetaesd": { + "stars": 1, + "last_update": "2025-06-14 18:58:39", + "author_account_age_days": 1754 + }, + "https://github.com/neph1/comfyui-smooth-step-lora-loader": { + "stars": 6, + "last_update": "2025-04-06 10:43:14", + "author_account_age_days": 4086 + }, + "https://github.com/netroxin/comfyui_netro": { + "stars": 2, + "last_update": "2025-08-28 15:04:15", + "author_account_age_days": 138 + }, + "https://github.com/neverbiasu/ComfyUI-BAGEL": { + "stars": 166, + "last_update": "2025-08-30 10:42:36", + "author_account_age_days": 1454 + }, + "https://github.com/neverbiasu/ComfyUI-ChatTTS": { + "stars": 3, + "last_update": "2025-05-12 08:15:13", + "author_account_age_days": 1454 + }, + "https://github.com/neverbiasu/ComfyUI-Dashscope": { + "stars": 2, + "last_update": "2025-04-05 02:19:36", + "author_account_age_days": 1454 + }, + "https://github.com/neverbiasu/ComfyUI-Image-Captioner": { + "stars": 18, + "last_update": "2025-05-12 16:09:03", + "author_account_age_days": 1454 + }, + "https://github.com/neverbiasu/ComfyUI-Ovis-U1": { + "stars": 2, + "last_update": "2025-08-14 19:05:53", + "author_account_age_days": 1454 + }, + "https://github.com/neverbiasu/ComfyUI-SAM2": { + "stars": 201, + "last_update": "2025-05-13 12:38:09", + "author_account_age_days": 1454 + }, + "https://github.com/neverbiasu/ComfyUI-StyleShot": { + "stars": 14, + "last_update": "2025-04-23 08:01:32", + "author_account_age_days": 1454 + }, + "https://github.com/newtextdoc1111/ComfyUI-Autocomplete-Plus": { + "stars": 52, + "last_update": "2025-08-30 14:43:11", + "author_account_age_days": 170 + }, + "https://github.com/ngosset/ComfyUI-ImageSimilarity": { + "stars": 7, + "last_update": "2025-01-18 18:17:50", + "author_account_age_days": 4757 + }, + "https://github.com/nicehero/comfyui-SegGPT": { + "stars": 6, + "last_update": "2024-08-26 06:05:35", + "author_account_age_days": 4445 + }, + "https://github.com/nickve28/ComfyUI-Nich-Utils": { + "stars": 8, + "last_update": "2025-06-19 10:15:26", + "author_account_age_days": 4464 + }, + "https://github.com/nicofdga/DZ-FaceDetailer": { + "stars": 213, + "last_update": "2024-06-17 10:00:30", + "author_account_age_days": 1666 + }, + "https://github.com/niknah/ComfyUI-F5-TTS": { + "stars": 220, + "last_update": "2025-06-13 12:27:03", + "author_account_age_days": 5155 + }, + "https://github.com/niknah/ComfyUI-Hunyuan-3D-2": { + "stars": 58, + "last_update": "2025-07-12 11:34:46", + "author_account_age_days": 5155 + }, + "https://github.com/niknah/ComfyUI-InfiniteYou": { + "stars": 11, + "last_update": "2025-04-16 08:44:22", + "author_account_age_days": 5155 + }, + "https://github.com/niknah/audio-general-ComfyUI": { + "stars": 1, + "last_update": "2025-05-28 02:51:53", + "author_account_age_days": 5155 + }, + "https://github.com/niknah/quick-connections": { + "stars": 325, + "last_update": "2025-08-29 05:33:13", + "author_account_age_days": 5155 + }, + "https://github.com/nilor-corp/nilor-nodes": { + "stars": 4, + "last_update": "2025-09-02 13:53:32", + "author_account_age_days": 650 + }, + "https://github.com/ningxiaoxiao/comfyui-NDI": { + "stars": 59, + "last_update": "2025-04-11 03:55:37", + "author_account_age_days": 3423 + }, + "https://github.com/nirbhay-faaya/ImgProcessing_ComfyUI": { + "stars": 0, + "last_update": "2024-07-31 08:34:48", + "author_account_age_days": 770 + }, + "https://github.com/nirex0/ComfyUI_pytorch_openpose": { + "stars": 2, + "last_update": "2024-06-14 12:01:07", + "author_account_age_days": 3938 + }, + "https://github.com/nisaruj/comfyui-daam": { + "stars": 24, + "last_update": "2025-06-08 12:41:49", + "author_account_age_days": 3643 + }, + "https://github.com/nisimjoseph/ComfyUI_OpenAI-Prompter": { + "stars": 4, + "last_update": "2025-01-18 19:57:31", + "author_account_age_days": 4742 + }, + "https://github.com/njlent/ComfyUI_wavelet-colorfix": { + "stars": 4, + "last_update": "2025-08-13 13:04:06", + "author_account_age_days": 3893 + }, + "https://github.com/nkchocoai/ComfyUI-DanbooruPromptQuiz": { + "stars": 0, + "last_update": "2025-03-30 08:30:33", + "author_account_age_days": 595 + }, + "https://github.com/nkchocoai/ComfyUI-Dart": { + "stars": 27, + "last_update": "2025-03-30 08:19:01", + "author_account_age_days": 595 + }, + "https://github.com/nkchocoai/ComfyUI-PromptUtilities": { + "stars": 22, + "last_update": "2025-03-30 08:19:25", + "author_account_age_days": 595 + }, + "https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData": { + "stars": 94, + "last_update": "2025-03-30 08:19:20", + "author_account_age_days": 595 + }, + "https://github.com/nkchocoai/ComfyUI-SizeFromPresets": { + "stars": 10, + "last_update": "2025-03-30 08:19:30", + "author_account_age_days": 595 + }, + "https://github.com/nkchocoai/ComfyUI-TextOnSegs": { + "stars": 12, + "last_update": "2025-03-30 08:19:45", + "author_account_age_days": 595 + }, + "https://github.com/nobrainX2/comfyUI-customDia": { + "stars": 14, + "last_update": "2025-05-29 18:32:25", + "author_account_age_days": 2222 + }, + "https://github.com/noelkim12/ComfyUI-NoelTextUtil": { + "stars": 0, + "last_update": "2025-09-01 17:22:53", + "author_account_age_days": 2418 + }, + "https://github.com/noembryo/ComfyUI-noEmbryo": { + "stars": 24, + "last_update": "2025-05-11 19:04:36", + "author_account_age_days": 3178 + }, + "https://github.com/nofunstudio/Node_Fun_ComfyUI": { + "stars": 5, + "last_update": "2025-07-12 04:22:58", + "author_account_age_days": 1647 + }, + "https://github.com/nonnonstop/comfyui-faster-loading": { + "stars": 10, + "last_update": "2024-06-13 15:37:45", + "author_account_age_days": 2557 + }, + "https://github.com/northumber/ComfyUI-northTools": { + "stars": 2, + "last_update": "2025-05-22 18:08:04", + "author_account_age_days": 3494 + }, + "https://github.com/nosiu/comfyui-instantId-faceswap": { + "stars": 248, + "last_update": "2025-06-27 11:36:33", + "author_account_age_days": 4340 + }, + "https://github.com/nosiu/comfyui-text-randomizer": { + "stars": 0, + "last_update": "2025-03-03 01:40:12", + "author_account_age_days": 4340 + }, + "https://github.com/noxinias/ComfyUI_NoxinNodes": { + "stars": 11, + "last_update": "2024-05-22 21:24:24", + "author_account_age_days": 2995 + }, + "https://github.com/nsdtcloud3d/ComfyUI-3D-Convert": { + "stars": 14, + "last_update": "2024-12-23 07:46:17", + "author_account_age_days": 510 + }, + "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge": { + "stars": 34, + "last_update": "2024-05-22 22:22:14", + "author_account_age_days": 2152 + }, + "https://github.com/nuanarchy/ComfyUI-NuA-BIRD": { + "stars": 8, + "last_update": "2024-06-18 05:35:49", + "author_account_age_days": 1527 + }, + "https://github.com/nuanarchy/ComfyUI-NuA-FlashFace": { + "stars": 25, + "last_update": "2024-07-31 13:54:00", + "author_account_age_days": 1527 + }, + "https://github.com/nullquant/ComfyUI-BrushNet": { + "stars": 914, + "last_update": "2025-03-31 08:45:34", + "author_account_age_days": 1611 + }, + "https://github.com/numz/ComfyUI-FlowChain": { + "stars": 157, + "last_update": "2025-07-28 06:20:20", + "author_account_age_days": 5218 + }, + "https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler": { + "stars": 631, + "last_update": "2025-08-29 16:15:56", + "author_account_age_days": 5218 + }, + "https://github.com/numz/Comfyui-Orpheus": { + "stars": 8, + "last_update": "2025-04-16 19:20:21", + "author_account_age_days": 5218 + }, + "https://github.com/nunchaku-tech/ComfyUI-nunchaku": { + "stars": 2046, + "last_update": "2025-08-31 19:36:31", + "author_account_age_days": 50 + }, + "https://github.com/nux1111/ComfyUI_NetDist_Plus": { + "stars": 36, + "last_update": "2024-08-27 23:15:18", + "author_account_age_days": 987 + }, + "https://github.com/o-l-l-i/ComfyUI-Olm-ChannelMixer": { + "stars": 5, + "last_update": "2025-08-09 18:08:18", + "author_account_age_days": 2908 + }, + "https://github.com/o-l-l-i/ComfyUI-Olm-ColorBalance": { + "stars": 12, + "last_update": "2025-08-09 18:11:21", + "author_account_age_days": 2908 + }, + "https://github.com/o-l-l-i/ComfyUI-Olm-CurveEditor": { + "stars": 33, + "last_update": "2025-08-09 18:15:36", + "author_account_age_days": 2908 + }, + "https://github.com/o-l-l-i/ComfyUI-Olm-DragCrop": { + "stars": 44, + "last_update": "2025-09-02 12:12:23", + "author_account_age_days": 2908 + }, + "https://github.com/o-l-l-i/ComfyUI-Olm-Histogram": { + "stars": 4, + "last_update": "2025-08-09 18:46:59", + "author_account_age_days": 2908 + }, + "https://github.com/o-l-l-i/ComfyUI-Olm-ImageAdjust": { + "stars": 35, + "last_update": "2025-08-09 17:58:21", + "author_account_age_days": 2908 + }, + "https://github.com/o-l-l-i/ComfyUI-Olm-LGG": { + "stars": 8, + "last_update": "2025-08-09 18:37:17", + "author_account_age_days": 2908 + }, + "https://github.com/o-l-l-i/ComfyUI-Olm-Resolution-Picker": { + "stars": 14, + "last_update": "2025-08-08 12:50:29", + "author_account_age_days": 2908 + }, + "https://github.com/o-l-l-i/ComfyUI-Olm-Sketch": { + "stars": 38, + "last_update": "2025-08-09 18:42:14", + "author_account_age_days": 2908 + }, + "https://github.com/o-l-l-i/ComfyUI-OlmLUT": { + "stars": 11, + "last_update": "2025-06-09 18:55:46", + "author_account_age_days": 2908 + }, + "https://github.com/obisin/ComfyUI-DGLS": { + "stars": 4, + "last_update": "2025-09-02 15:45:59", + "author_account_age_days": 1449 + }, + "https://github.com/okgo4/ComfyUI-Mosaic-Mask": { + "stars": 6, + "last_update": "2025-04-03 09:41:53", + "author_account_age_days": 3122 + }, + "https://github.com/olduvai-jp/ComfyUI-CloudArchive": { + "stars": 2, + "last_update": "2025-04-15 07:18:38", + "author_account_age_days": 1311 + }, + "https://github.com/olduvai-jp/ComfyUI-HfLoader": { + "stars": 4, + "last_update": "2025-02-13 17:05:40", + "author_account_age_days": 1311 + }, + "https://github.com/oleksandr612/ComfyUI-Counter": { + "stars": 0, + "last_update": "2024-08-05 16:18:48", + "author_account_age_days": 397 + }, + "https://github.com/oliverswitzer/ComfyUI-Lora-Visualizer": { + "stars": 1, + "last_update": "2025-08-12 02:47:24", + "author_account_age_days": 4436 + }, + "https://github.com/olivv-cs/ComfyUI-FunPack": { + "stars": 3, + "last_update": "2025-07-31 10:05:24", + "author_account_age_days": 847 + }, + "https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92": { + "stars": 160, + "last_update": "2024-09-10 14:16:30", + "author_account_age_days": 4941 + }, + "https://github.com/openvino-dev-samples/comfyui_openvino": { + "stars": 22, + "last_update": "2025-07-10 01:18:19", + "author_account_age_days": 1440 + }, + "https://github.com/opvelll/ComfyUI_TextListProduct": { + "stars": 1, + "last_update": "2024-10-30 16:00:09", + "author_account_age_days": 1989 + }, + "https://github.com/orange90/ComfyUI-Regex-Runner": { + "stars": 3, + "last_update": "2025-02-26 03:48:27", + "author_account_age_days": 4531 + }, + "https://github.com/orex2121/comfyui-OreX": { + "stars": 10, + "last_update": "2025-08-17 22:51:30", + "author_account_age_days": 1941 + }, + "https://github.com/orion4d/Calculator_Pro": { + "stars": 0, + "last_update": "2025-06-29 15:47:04", + "author_account_age_days": 1017 + }, + "https://github.com/orion4d/ComfyUI-Image-Effects": { + "stars": 22, + "last_update": "2025-05-28 00:37:16", + "author_account_age_days": 1017 + }, + "https://github.com/orion4d/ComfyUI_DAO_master": { + "stars": 6, + "last_update": "2025-08-26 22:40:29", + "author_account_age_days": 1017 + }, + "https://github.com/orion4d/ComfyUI_SharpnessPro": { + "stars": 6, + "last_update": "2025-08-27 09:02:20", + "author_account_age_days": 1017 + }, + "https://github.com/orion4d/ComfyUI_colormaster": { + "stars": 1, + "last_update": "2025-07-06 11:30:01", + "author_account_age_days": 1017 + }, + "https://github.com/orion4d/ComfyUI_extract_imag": { + "stars": 0, + "last_update": "2025-06-11 13:37:18", + "author_account_age_days": 1017 + }, + "https://github.com/orion4d/ComfyUI_image-display": { + "stars": 0, + "last_update": "2025-07-07 14:39:55", + "author_account_age_days": 1017 + }, + "https://github.com/orion4d/ComfyUI_pdf_nodes": { + "stars": 0, + "last_update": "2025-06-10 15:51:53", + "author_account_age_days": 1017 + }, + "https://github.com/orion4d/illusion_node": { + "stars": 3, + "last_update": "2025-06-22 08:57:01", + "author_account_age_days": 1017 + }, + "https://github.com/orssorbit/ComfyUI-wanBlockswap": { + "stars": 86, + "last_update": "2025-03-19 12:56:23", + "author_account_age_days": 3464 + }, + "https://github.com/oshtz/ComfyUI-oshtz-nodes": { + "stars": 6, + "last_update": "2025-05-22 09:55:47", + "author_account_age_days": 860 + }, + "https://github.com/osi1880vr/prompt_quill_comfyui": { + "stars": 20, + "last_update": "2025-01-27 10:43:16", + "author_account_age_days": 1512 + }, + "https://github.com/ostris/ComfyUI-FlexTools": { + "stars": 72, + "last_update": "2025-08-05 19:40:11", + "author_account_age_days": 2838 + }, + "https://github.com/ostris/ostris_nodes_comfyui": { + "stars": 31, + "last_update": "2025-04-16 17:03:53", + "author_account_age_days": 2838 + }, + "https://github.com/otacoo/comfyui_otacoo": { + "stars": 5, + "last_update": "2025-07-28 18:49:03", + "author_account_age_days": 131 + }, + "https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer": { + "stars": 0, + "last_update": "2025-09-01 11:49:33", + "author_account_age_days": 4550 + }, + "https://github.com/ownimage/ComfyUI-ownimage": { + "stars": 0, + "last_update": "2024-05-22 22:22:37", + "author_account_age_days": 3218 + }, + "https://github.com/oxysoft/ComfyUI-gowiththeflow": { + "stars": 3, + "last_update": "2025-04-09 03:55:00", + "author_account_age_days": 4546 + }, + "https://github.com/oyvindg/ComfyUI-TrollSuite": { + "stars": 4, + "last_update": "2024-08-15 10:37:43", + "author_account_age_days": 2765 + }, + "https://github.com/oztrkoguz/ComfyUI_StoryCreator": { + "stars": 30, + "last_update": "2025-04-07 08:30:38", + "author_account_age_days": 1276 + }, + "https://github.com/p1atdev/comfyui-timm-backbone": { + "stars": 1, + "last_update": "2025-08-22 08:04:50", + "author_account_age_days": 2050 + }, + "https://github.com/p1atdev/comfyui-tkg-chroma-key": { + "stars": 16, + "last_update": "2025-08-23 16:06:14", + "author_account_age_days": 2050 + }, + "https://github.com/palant/image-resize-comfyui": { + "stars": 99, + "last_update": "2024-01-18 20:59:55", + "author_account_age_days": 5488 + }, + "https://github.com/palant/integrated-nodes-comfyui": { + "stars": 38, + "last_update": "2023-12-27 22:52:00", + "author_account_age_days": 5488 + }, + "https://github.com/pamparamm/ComfyUI-ppm": { + "stars": 216, + "last_update": "2025-08-10 06:47:44", + "author_account_age_days": 2566 + }, + "https://github.com/pamparamm/ComfyUI-vectorscope-cc": { + "stars": 18, + "last_update": "2025-02-24 21:59:04", + "author_account_age_days": 2566 + }, + "https://github.com/pamparamm/sd-perturbed-attention": { + "stars": 275, + "last_update": "2025-06-24 00:09:09", + "author_account_age_days": 2566 + }, + "https://github.com/pants007/comfy-pants": { + "stars": 2, + "last_update": "2024-05-22 18:16:04", + "author_account_age_days": 2752 + }, + "https://github.com/papcorns/ComfyUI-Papcorns-Node-LoadImageFromUrl": { + "stars": 1, + "last_update": "2025-05-26 12:33:08", + "author_account_age_days": 1947 + }, + "https://github.com/papcorns/Papcorns-Comfyui-Custom-Nodes": { + "stars": 0, + "last_update": "2025-08-08 13:16:05", + "author_account_age_days": 1947 + }, + "https://github.com/pathway8-sudo/ComfyUI-Pathway-CutPNG-Node": { + "stars": 0, + "last_update": "2025-03-03 07:47:31", + "author_account_age_days": 273 + }, + "https://github.com/patriciogonzalezvivo/comfyui_glslnodes": { + "stars": 224, + "last_update": "2025-05-05 15:00:47", + "author_account_age_days": 5515 + }, + "https://github.com/paulh4x/ComfyUI_PHRenderFormerWrapper": { + "stars": 28, + "last_update": "2025-08-08 14:30:19", + "author_account_age_days": 286 + }, + "https://github.com/paulo-coronado/comfy_clip_blip_node": { + "stars": 29, + "last_update": "2024-05-22 17:39:09", + "author_account_age_days": 3122 + }, + "https://github.com/pawelmal0101/ComfyUI-Webhook": { + "stars": 0, + "last_update": "2025-06-11 10:36:58", + "author_account_age_days": 1097 + }, + "https://github.com/pbpbpb2705/ComfyUI-LyraVSIH": { + "stars": 0, + "last_update": "2024-08-30 07:52:11", + "author_account_age_days": 1665 + }, + "https://github.com/penposs/ComfyUI-Banana-Node": { + "stars": 0, + "last_update": "2025-09-02 12:24:21", + "author_account_age_days": 2193 + }, + "https://github.com/penposs/ComfyUI_Gemini_Pro": { + "stars": 8, + "last_update": "2025-08-18 15:45:27", + "author_account_age_days": 2193 + }, + "https://github.com/penposs/Comfyui_wan_api": { + "stars": 1, + "last_update": "2025-04-02 16:02:44", + "author_account_age_days": 2193 + }, + "https://github.com/pharmapsychotic/comfy-cliption": { + "stars": 58, + "last_update": "2025-01-04 05:06:11", + "author_account_age_days": 1349 + }, + "https://github.com/phazei/ComfyUI-OrpheusTTS-LMStudio": { + "stars": 0, + "last_update": "2025-08-30 10:35:24", + "author_account_age_days": 5443 + }, + "https://github.com/phazei/ComfyUI-Prompt-Stash": { + "stars": 23, + "last_update": "2025-08-23 11:28:09", + "author_account_age_days": 5443 + }, + "https://github.com/philiprodriguez/ComfyUI-HunyuanImageLatentToVideoLatent": { + "stars": 1, + "last_update": "2025-01-12 16:43:09", + "author_account_age_days": 3433 + }, + "https://github.com/philipy1219/ComfyUI-CloudStorage": { + "stars": 0, + "last_update": "2025-07-01 13:40:29", + "author_account_age_days": 3693 + }, + "https://github.com/philipy1219/ComfyUI-TaylorSeer": { + "stars": 44, + "last_update": "2025-08-01 14:04:02", + "author_account_age_days": 3693 + }, + "https://github.com/philz1337x/ComfyUI-ClarityAI": { + "stars": 188, + "last_update": "2025-04-24 09:51:25", + "author_account_age_days": 1098 + }, + "https://github.com/phineas-pta/comfyui-auto-nodes-layout": { + "stars": 53, + "last_update": "2025-07-29 18:34:34", + "author_account_age_days": 2723 + }, + "https://github.com/phuvinh010701/ComfyUI-Nudenet": { + "stars": 26, + "last_update": "2025-05-01 01:46:07", + "author_account_age_days": 2109 + }, + "https://github.com/phyblas/paint-by-example_comfyui": { + "stars": 10, + "last_update": "2025-08-26 11:32:09", + "author_account_age_days": 3488 + }, + "https://github.com/pictorialink/ComfyUI-Custom-Node-Config": { + "stars": 0, + "last_update": "2025-07-15 11:19:09", + "author_account_age_days": 111 + }, + "https://github.com/pictorialink/ComfyUI-Qwen3-llama.cpp": { + "stars": 0, + "last_update": "2025-07-15 03:04:43", + "author_account_age_days": 111 + }, + "https://github.com/pictorialink/ComfyUI-Text-Translation": { + "stars": 4, + "last_update": "2025-07-15 07:51:51", + "author_account_age_days": 111 + }, + "https://github.com/picturesonpictures/comfy_PoP": { + "stars": 21, + "last_update": "2025-06-05 03:53:18", + "author_account_age_days": 1022 + }, + "https://github.com/pikenrover/ComfyUI_PRNodes": { + "stars": 2, + "last_update": "2025-04-03 13:31:42", + "author_account_age_days": 405 + }, + "https://github.com/pixelworldai/ComfyUI-AlphaFlatten": { + "stars": 1, + "last_update": "2025-03-13 23:07:04", + "author_account_age_days": 406 + }, + "https://github.com/pixelworldai/ComfyUI-WorkflowGraphics": { + "stars": 0, + "last_update": "2025-08-10 13:42:12", + "author_account_age_days": 406 + }, + "https://github.com/pkpkTech/ComfyUI-SaveAVIF": { + "stars": 2, + "last_update": "2025-02-01 16:29:22", + "author_account_age_days": 1938 + }, + "https://github.com/pkpkTech/ComfyUI-SaveQueues": { + "stars": 8, + "last_update": "2024-05-22 22:19:54", + "author_account_age_days": 1938 + }, + "https://github.com/pkpkTech/ComfyUI-TemporaryLoader": { + "stars": 2, + "last_update": "2024-05-22 22:19:44", + "author_account_age_days": 1938 + }, + "https://github.com/pkpkTech/ComfyUI-ngrok": { + "stars": 6, + "last_update": "2024-05-22 22:19:32", + "author_account_age_days": 1938 + }, + "https://github.com/playbook3d/playbook3d-comfyui-nodes": { + "stars": 21, + "last_update": "2025-03-25 19:50:08", + "author_account_age_days": 1935 + }, + "https://github.com/plugcrypt/CRT-Nodes": { + "stars": 10, + "last_update": "2025-08-31 22:33:06", + "author_account_age_days": 1497 + }, + "https://github.com/pmarmotte2/ComfyUI-Speaker-Isolation": { + "stars": 5, + "last_update": "2025-06-30 20:23:13", + "author_account_age_days": 499 + }, + "https://github.com/pnikolic-amd/ComfyUI_MIGraphX": { + "stars": 10, + "last_update": "2025-07-14 12:58:10", + "author_account_age_days": 236 + }, + "https://github.com/pollockjj/ComfyUI-MultiGPU": { + "stars": 459, + "last_update": "2025-09-02 12:56:29", + "author_account_age_days": 3941 + }, + "https://github.com/popoimm/comfyui-popo-utility": { + "stars": 0, + "last_update": "2025-08-28 17:56:41", + "author_account_age_days": 3479 + }, + "https://github.com/portu-sim/comfyui_bmab": { + "stars": 116, + "last_update": "2025-08-23 16:35:18", + "author_account_age_days": 757 + }, + "https://github.com/prodogape/ComfyUI-EasyOCR": { + "stars": 40, + "last_update": "2024-08-05 07:03:20", + "author_account_age_days": 1465 + }, + "https://github.com/prodogape/ComfyUI-Minio": { + "stars": 6, + "last_update": "2024-05-23 00:13:38", + "author_account_age_days": 1465 + }, + "https://github.com/prodogape/ComfyUI-OmDet": { + "stars": 3, + "last_update": "2024-06-14 13:01:34", + "author_account_age_days": 1465 + }, + "https://github.com/prodogape/Comfyui-Yolov8-JSON": { + "stars": 26, + "last_update": "2024-08-28 02:10:39", + "author_account_age_days": 1465 + }, + "https://github.com/prozacgod/comfyui-pzc-multiworkspace": { + "stars": 7, + "last_update": "2024-05-22 23:11:46", + "author_account_age_days": 6003 + }, + "https://github.com/pschroedl/ComfyUI-SAM2-Realtime": { + "stars": 14, + "last_update": "2025-01-21 05:29:03", + "author_account_age_days": 4422 + }, + "https://github.com/ptmaster/Comfyui-PT-Keyframe-Camera": { + "stars": 21, + "last_update": "2025-07-06 04:41:46", + "author_account_age_days": 4315 + }, + "https://github.com/ptmaster/comfyui-audio-speed": { + "stars": 12, + "last_update": "2025-06-24 15:23:03", + "author_account_age_days": 4315 + }, + "https://github.com/puke3615/ComfyUI-OneAPI": { + "stars": 4, + "last_update": "2025-08-05 17:33:59", + "author_account_age_days": 3950 + }, + "https://github.com/pupba/Comfy_ForEach": { + "stars": 3, + "last_update": "2025-05-12 07:08:54", + "author_account_age_days": 2236 + }, + "https://github.com/purewater2011/comfyui_color_detection": { + "stars": 1, + "last_update": "2025-05-19 09:59:44", + "author_account_age_days": 4263 + }, + "https://github.com/purpen/ComfyUI-AIRedoon": { + "stars": 3, + "last_update": "2024-12-11 09:38:42", + "author_account_age_days": 5373 + }, + "https://github.com/purpen/ComfyUI-ImageTagger": { + "stars": 2, + "last_update": "2024-11-27 17:20:49", + "author_account_age_days": 5373 + }, + "https://github.com/pvlprk/comfyui-pvl-api-nodes": { + "stars": 0, + "last_update": "2025-09-01 15:27:56", + "author_account_age_days": 477 + }, + "https://github.com/pxl-pshr/GlitchNodes": { + "stars": 53, + "last_update": "2025-08-17 19:17:44", + "author_account_age_days": 320 + }, + "https://github.com/pydn/ComfyUI-to-Python-Extension": { + "stars": 1994, + "last_update": "2025-07-28 00:10:36", + "author_account_age_days": 3132 + }, + "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": { + "stars": 2646, + "last_update": "2025-08-09 16:18:21", + "author_account_age_days": 932 + }, + "https://github.com/pythongosssss/ComfyUI-WD14-Tagger": { + "stars": 951, + "last_update": "2025-07-11 09:59:23", + "author_account_age_days": 932 + }, + "https://github.com/pzc163/Comfyui-CatVTON": { + "stars": 167, + "last_update": "2024-10-03 12:50:42", + "author_account_age_days": 1212 + }, + "https://github.com/pzc163/Comfyui_MiniCPMv2_6-prompt-generator": { + "stars": 80, + "last_update": "2024-08-30 08:37:48", + "author_account_age_days": 1212 + }, + "https://github.com/quank123wip/ComfyUI-Step1X-Edit": { + "stars": 76, + "last_update": "2025-04-30 11:03:51", + "author_account_age_days": 2939 + }, + "https://github.com/quasiblob/ComfyUI-EsesCompositionGuides": { + "stars": 12, + "last_update": "2025-07-10 12:33:14", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/ComfyUI-EsesImageAdjustments": { + "stars": 37, + "last_update": "2025-07-10 12:26:02", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/ComfyUI-EsesImageCompare": { + "stars": 24, + "last_update": "2025-08-15 20:00:40", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/ComfyUI-EsesImageEffectBloom": { + "stars": 61, + "last_update": "2025-07-10 12:41:40", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/ComfyUI-EsesImageEffectCurves": { + "stars": 28, + "last_update": "2025-07-12 13:50:35", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/ComfyUI-EsesImageEffectLevels": { + "stars": 33, + "last_update": "2025-08-23 12:28:00", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/ComfyUI-EsesImageLensEffects": { + "stars": 20, + "last_update": "2025-07-10 12:46:20", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/ComfyUI-EsesImageOffset": { + "stars": 6, + "last_update": "2025-07-10 12:51:34", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/ComfyUI-EsesImageResize": { + "stars": 38, + "last_update": "2025-07-10 13:00:29", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/ComfyUI-EsesImageTransform": { + "stars": 10, + "last_update": "2025-07-02 13:29:30", + "author_account_age_days": 3723 + }, + "https://github.com/quasiblob/EsesCompositionGoldenRatio": { + "stars": 13, + "last_update": "2025-06-30 10:15:22", + "author_account_age_days": 3723 + }, + "https://github.com/qwixiwp/queuetools": { + "stars": 0, + "last_update": "2024-06-14 10:27:57", + "author_account_age_days": 1046 + }, + "https://github.com/r-vage/ComfyUI-RvTools_v2": { + "stars": 10, + "last_update": "2025-08-31 07:49:12", + "author_account_age_days": 107 + }, + "https://github.com/r3dial/redial-discomphy": { + "stars": 1, + "last_update": "2025-01-09 19:59:31", + "author_account_age_days": 866 + }, + "https://github.com/r3dsd/comfyui-template-loader": { + "stars": 0, + "last_update": "2025-01-12 08:55:49", + "author_account_age_days": 576 + }, + "https://github.com/railep/ComfyUI-HunyuanVideo-Foley": { + "stars": 4, + "last_update": "2025-08-29 16:48:04", + "author_account_age_days": 182 + }, + "https://github.com/raindrop313/ComfyUI-WanVideoStartEndFrames": { + "stars": 369, + "last_update": "2025-03-22 09:59:11", + "author_account_age_days": 1501 + }, + "https://github.com/raindrop313/ComfyUI_SD3_Flowedit": { + "stars": 6, + "last_update": "2025-02-06 19:02:52", + "author_account_age_days": 1501 + }, + "https://github.com/rainlizard/ComfyUI-Raffle": { + "stars": 5, + "last_update": "2025-06-30 02:29:42", + "author_account_age_days": 3598 + }, + "https://github.com/rainlizard/ComfyUI-WhirlpoolUpscaler": { + "stars": 1, + "last_update": "2025-08-14 13:53:47", + "author_account_age_days": 3598 + }, + "https://github.com/rakki194/ComfyUI-ImageCompare": { + "stars": 0, + "last_update": "2025-05-05 21:00:58", + "author_account_age_days": 213 + }, + "https://github.com/ramesh-x90/ComfyUI_pyannote": { + "stars": 3, + "last_update": "2024-11-23 09:42:16", + "author_account_age_days": 1757 + }, + "https://github.com/ramyma/A8R8_ComfyUI_nodes": { + "stars": 66, + "last_update": "2024-12-09 16:06:25", + "author_account_age_days": 3652 + }, + "https://github.com/randjtw/advance-aesthetic-score": { + "stars": 0, + "last_update": "2024-05-23 01:14:47", + "author_account_age_days": 1196 + }, + "https://github.com/randomnoner11/ComfyUI-MistralAI-API": { + "stars": 1, + "last_update": "2025-04-07 17:34:06", + "author_account_age_days": 254 + }, + "https://github.com/ranska/pixel_palette_art": { + "stars": 1, + "last_update": "2025-09-02 08:35:03", + "author_account_age_days": 5690 + }, + "https://github.com/ratulrafsan/Comfyui-SAL-VTON": { + "stars": 89, + "last_update": "2024-08-26 09:52:06", + "author_account_age_days": 4929 + }, + "https://github.com/raykindle/ComfyUI_Step1X-Edit": { + "stars": 48, + "last_update": "2025-05-06 02:01:37", + "author_account_age_days": 2358 + }, + "https://github.com/raysers/Mflux-ComfyUI": { + "stars": 109, + "last_update": "2025-03-09 21:14:27", + "author_account_age_days": 2439 + }, + "https://github.com/rcfcu2000/zhihuige-nodes-comfyui": { + "stars": 1, + "last_update": "2024-05-22 22:13:55", + "author_account_age_days": 3859 + }, + "https://github.com/rcsaquino/comfyui-custom-nodes": { + "stars": 1, + "last_update": "2024-08-26 10:08:29", + "author_account_age_days": 1946 + }, + "https://github.com/rdancer/ComfyUI_Florence2SAM2": { + "stars": 42, + "last_update": "2025-06-30 19:02:35", + "author_account_age_days": 6056 + }, + "https://github.com/rdomunky/comfyui-subfolderimageloader": { + "stars": 1, + "last_update": "2025-07-20 04:21:48", + "author_account_age_days": 3758 + }, + "https://github.com/reallusion/ComfyUI-Reallusion": { + "stars": 4, + "last_update": "2025-08-26 10:09:05", + "author_account_age_days": 2496 + }, + "https://github.com/receyuki/comfyui-prompt-reader-node": { + "stars": 391, + "last_update": "2025-02-01 15:56:44", + "author_account_age_days": 3028 + }, + "https://github.com/recraft-ai/ComfyUI-RecraftAI": { + "stars": 64, + "last_update": "2025-06-04 11:33:13", + "author_account_age_days": 1157 + }, + "https://github.com/redhottensors/ComfyUI-Prediction": { + "stars": 14, + "last_update": "2024-07-14 21:19:01", + "author_account_age_days": 574 + }, + "https://github.com/regiellis/ComfyUI-EasyColorCorrector": { + "stars": 90, + "last_update": "2025-06-30 16:50:28", + "author_account_age_days": 5062 + }, + "https://github.com/regiellis/ComfyUI-EasyNoobai": { + "stars": 35, + "last_update": "2025-05-12 14:17:10", + "author_account_age_days": 5062 + }, + "https://github.com/regiellis/ComfyUI-EasyPony": { + "stars": 9, + "last_update": "2025-04-05 15:15:29", + "author_account_age_days": 5062 + }, + "https://github.com/regiellis/ComfyUI-SDXL-Adherence": { + "stars": 3, + "last_update": "2025-09-01 01:09:00", + "author_account_age_days": 5062 + }, + "https://github.com/replicate/comfyui-replicate": { + "stars": 193, + "last_update": "2024-11-05 15:26:20", + "author_account_age_days": 2043 + }, + "https://github.com/revirevy/Comfyui_saveimage_imgbb": { + "stars": 1, + "last_update": "2025-04-23 10:49:48", + "author_account_age_days": 4920 + }, + "https://github.com/rgthree/rgthree-comfy": { + "stars": 2202, + "last_update": "2025-08-24 20:59:32", + "author_account_age_days": 5409 + }, + "https://github.com/rhdunn/comfyui-audio-processing": { + "stars": 10, + "last_update": "2024-08-22 19:11:01", + "author_account_age_days": 6072 + }, + "https://github.com/rhdunn/comfyui-bus-plugin": { + "stars": 2, + "last_update": "2024-08-22 19:00:56", + "author_account_age_days": 6072 + }, + "https://github.com/rhplus0831/ComfyMepi": { + "stars": 0, + "last_update": "2025-04-12 22:59:21", + "author_account_age_days": 588 + }, + "https://github.com/richinsley/Comfy-LFO": { + "stars": 5, + "last_update": "2024-05-22 20:46:30", + "author_account_age_days": 3115 + }, + "https://github.com/ricklove/comfyui-ricklove": { + "stars": 1, + "last_update": "2024-10-05 03:12:28", + "author_account_age_days": 5268 + }, + "https://github.com/rickrender/ComfyUI-Vectorizer-API": { + "stars": 0, + "last_update": "2025-08-20 00:09:26", + "author_account_age_days": 975 + }, + "https://github.com/rickyars/comfyui-llm-tile": { + "stars": 1, + "last_update": "2025-06-25 11:56:15", + "author_account_age_days": 4639 + }, + "https://github.com/risunobushi/ComfyUI-Similarity-Score": { + "stars": 4, + "last_update": "2025-07-28 10:40:52", + "author_account_age_days": 1082 + }, + "https://github.com/risunobushi/ComfyUI_DisplacementMapTools": { + "stars": 3, + "last_update": "2025-01-29 18:06:41", + "author_account_age_days": 1082 + }, + "https://github.com/risunobushi/ComfyUI_sm4ll-Wrapper": { + "stars": 16, + "last_update": "2025-08-04 16:23:03", + "author_account_age_days": 1082 + }, + "https://github.com/risunobushi/comfyUI_FrequencySeparation_RGB-HSV": { + "stars": 36, + "last_update": "2024-06-14 10:28:04", + "author_account_age_days": 1082 + }, + "https://github.com/rkfg/ComfyUI-Dia_tts": { + "stars": 0, + "last_update": "2025-04-27 15:58:21", + "author_account_age_days": 5706 + }, + "https://github.com/rnbwdsh/ComfyUI-LatentWalk": { + "stars": 14, + "last_update": "2024-08-20 22:39:19", + "author_account_age_days": 3982 + }, + "https://github.com/rndnanthu/ComfyUI-RndNanthu": { + "stars": 25, + "last_update": "2025-07-26 07:21:34", + "author_account_age_days": 2248 + }, + "https://github.com/robertvoy/ComfyUI-Distributed": { + "stars": 263, + "last_update": "2025-08-25 03:38:02", + "author_account_age_days": 4540 + }, + "https://github.com/robertvoy/ComfyUI-Flux-Continuum": { + "stars": 224, + "last_update": "2025-07-09 21:52:11", + "author_account_age_days": 4540 + }, + "https://github.com/robin-collins/ComfyUI-TechsToolz": { + "stars": 0, + "last_update": "2025-06-20 00:25:39", + "author_account_age_days": 1559 + }, + "https://github.com/robtl2/ComfyUI-ComfyBridge": { + "stars": 0, + "last_update": "2024-11-18 23:28:13", + "author_account_age_days": 887 + }, + "https://github.com/rohitsainier/ComfyUI-InstagramDownloader": { + "stars": 20, + "last_update": "2025-01-02 08:47:22", + "author_account_age_days": 3588 + }, + "https://github.com/romeobuilderotti/ComfyUI-PNG-Metadata": { + "stars": 7, + "last_update": "2024-05-22 21:29:25", + "author_account_age_days": 725 + }, + "https://github.com/ronaldzgithub/ComfyUI_Appstore": { + "stars": 6, + "last_update": "2024-12-04 15:02:42", + "author_account_age_days": 2745 + }, + "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration": { + "stars": 109, + "last_update": "2024-11-18 05:08:11", + "author_account_age_days": 4590 + }, + "https://github.com/ronsantash/Comfyui-flexi-lora-loader": { + "stars": 8, + "last_update": "2025-01-12 11:57:27", + "author_account_age_days": 1452 + }, + "https://github.com/rookiepsi/comfypsi_blur_mask": { + "stars": 0, + "last_update": "2025-06-25 15:13:33", + "author_account_age_days": 192 + }, + "https://github.com/rookiepsi/comfyui-extended": { + "stars": 3, + "last_update": "2025-06-22 13:42:26", + "author_account_age_days": 192 + }, + "https://github.com/roundyyy/ComfyUI-mesh-simplifier": { + "stars": 6, + "last_update": "2025-03-09 23:39:24", + "author_account_age_days": 1362 + }, + "https://github.com/routhakash/AkkiNodes-LLM-Suite-for-ComfyUI": { + "stars": 2, + "last_update": "2025-08-19 13:53:35", + "author_account_age_days": 805 + }, + "https://github.com/royceschultz/ComfyUI-Notifications": { + "stars": 17, + "last_update": "2025-07-07 23:30:54", + "author_account_age_days": 2964 + }, + "https://github.com/royceschultz/ComfyUI-TranscriptionTools": { + "stars": 23, + "last_update": "2025-04-23 00:52:31", + "author_account_age_days": 2964 + }, + "https://github.com/rslosch/ComfyUI-EZ_Prompts": { + "stars": 0, + "last_update": "2025-08-29 19:12:11", + "author_account_age_days": 1325 + }, + "https://github.com/rubenvillarreal/ComfyUI_PoseAlign": { + "stars": 1, + "last_update": "2025-08-02 09:35:21", + "author_account_age_days": 3507 + }, + "https://github.com/rubi-du/ComfyUI-BiRefNet-Super": { + "stars": 10, + "last_update": "2025-05-21 02:21:09", + "author_account_age_days": 617 + }, + "https://github.com/rubi-du/ComfyUI-Flux-Inpainting": { + "stars": 39, + "last_update": "2025-05-14 06:09:10", + "author_account_age_days": 617 + }, + "https://github.com/rubi-du/ComfyUI-ICC-nodes": { + "stars": 2, + "last_update": "2025-05-14 06:10:11", + "author_account_age_days": 617 + }, + "https://github.com/rubi-du/ComfyUI-MaskEditor-Extension": { + "stars": 10, + "last_update": "2025-07-23 01:54:15", + "author_account_age_days": 617 + }, + "https://github.com/rui40000/RUI-Nodes": { + "stars": 16, + "last_update": "2024-05-22 22:12:26", + "author_account_age_days": 909 + }, + "https://github.com/ruiqutech/ComfyUI-RuiquNodes": { + "stars": 0, + "last_update": "2024-05-23 01:21:50", + "author_account_age_days": 505 + }, + "https://github.com/runtime44/comfyui_r44_nodes": { + "stars": 42, + "last_update": "2024-07-01 08:02:04", + "author_account_age_days": 603 + }, + "https://github.com/ruucm/ruucm-comfy": { + "stars": 2, + "last_update": "2025-04-21 15:20:57", + "author_account_age_days": 2855 + }, + "https://github.com/ryanontheinside/ComfyUI-DeepLiveCam": { + "stars": 10, + "last_update": "2025-05-26 14:26:57", + "author_account_age_days": 4124 + }, + "https://github.com/ryanontheinside/ComfyUI_ControlFreak": { + "stars": 17, + "last_update": "2025-04-13 23:18:36", + "author_account_age_days": 4124 + }, + "https://github.com/ryanontheinside/ComfyUI_Doom": { + "stars": 4, + "last_update": "2024-11-08 17:58:21", + "author_account_age_days": 4124 + }, + "https://github.com/ryanontheinside/ComfyUI_EfficientTAM": { + "stars": 3, + "last_update": "2024-12-21 20:25:05", + "author_account_age_days": 4124 + }, + "https://github.com/ryanontheinside/ComfyUI_ProfilerX": { + "stars": 66, + "last_update": "2025-05-27 22:10:23", + "author_account_age_days": 4124 + }, + "https://github.com/ryanontheinside/ComfyUI_RealtimeNodes": { + "stars": 63, + "last_update": "2025-06-19 14:20:29", + "author_account_age_days": 4124 + }, + "https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside": { + "stars": 549, + "last_update": "2025-07-26 14:02:11", + "author_account_age_days": 4124 + }, + "https://github.com/ryanontheinside/ComfyUI_SuperResolution": { + "stars": 7, + "last_update": "2025-04-07 17:53:16", + "author_account_age_days": 4124 + }, + "https://github.com/rzgarespo/ComfyUI-qwen-image-size-picker": { + "stars": 5, + "last_update": "2025-08-11 08:45:22", + "author_account_age_days": 4334 + }, + "https://github.com/s9roll7/comfyui_cotracker_node": { + "stars": 18, + "last_update": "2025-06-24 11:30:06", + "author_account_age_days": 1020 + }, + "https://github.com/saftle/uber_comfy_nodes": { + "stars": 1, + "last_update": "2025-08-22 15:14:56", + "author_account_age_days": 5192 + }, + "https://github.com/sakura1bgx/ComfyUI_FlipStreamViewer": { + "stars": 5, + "last_update": "2025-07-05 01:32:50", + "author_account_age_days": 373 + }, + "https://github.com/sanbuphy/ComfyUI-AudioLDM": { + "stars": 1, + "last_update": "2025-01-02 02:01:12", + "author_account_age_days": 1357 + }, + "https://github.com/santiagosamuel3455/ComfyUI-GeminiImageToPrompt": { + "stars": 1, + "last_update": "2025-05-04 04:58:56", + "author_account_age_days": 385 + }, + "https://github.com/scraed/LanPaint": { + "stars": 493, + "last_update": "2025-08-30 03:15:12", + "author_account_age_days": 3897 + }, + "https://github.com/sdfxai/SDFXBridgeForComfyUI": { + "stars": 12, + "last_update": "2024-06-14 10:26:56", + "author_account_age_days": 670 + }, + "https://github.com/sdtana/ComfyUI-FDG": { + "stars": 4, + "last_update": "2025-06-28 06:48:07", + "author_account_age_days": 1640 + }, + "https://github.com/seanjang990/comfyui-document-auto-crop": { + "stars": 0, + "last_update": "2025-07-16 03:59:22", + "author_account_age_days": 768 + }, + "https://github.com/seanlynch/comfyui-optical-flow": { + "stars": 33, + "last_update": "2024-05-22 20:52:17", + "author_account_age_days": 5740 + }, + "https://github.com/seanlynch/srl-nodes": { + "stars": 10, + "last_update": "2024-06-30 13:47:38", + "author_account_age_days": 5740 + }, + "https://github.com/sebord/ComfyUI-LMCQ": { + "stars": 84, + "last_update": "2025-08-12 13:41:13", + "author_account_age_days": 1222 + }, + "https://github.com/sergekatzmann/ComfyUI_Nimbus-Pack": { + "stars": 4, + "last_update": "2024-05-22 21:34:15", + "author_account_age_days": 3767 + }, + "https://github.com/set-soft/AudioSeparation": { + "stars": 9, + "last_update": "2025-07-27 17:52:04", + "author_account_age_days": 3245 + }, + "https://github.com/set-soft/ComfyUI-AudioBatch": { + "stars": 2, + "last_update": "2025-07-26 16:59:22", + "author_account_age_days": 3245 + }, + "https://github.com/set-soft/ComfyUI-ImageMisc": { + "stars": 0, + "last_update": "2025-08-22 14:18:07", + "author_account_age_days": 3245 + }, + "https://github.com/sfinktah/comfy-ovum": { + "stars": 1, + "last_update": "2025-08-29 00:14:09", + "author_account_age_days": 4468 + }, + "https://github.com/sh570655308/ComfyUI-GigapixelAI": { + "stars": 155, + "last_update": "2025-07-30 05:16:48", + "author_account_age_days": 2937 + }, + "https://github.com/sh570655308/ComfyUI-TopazVideoAI": { + "stars": 229, + "last_update": "2025-04-23 08:54:20", + "author_account_age_days": 2937 + }, + "https://github.com/shabri-arrahim/ComfyUI-Safety-Checker": { + "stars": 1, + "last_update": "2025-01-23 05:46:33", + "author_account_age_days": 2205 + }, + "https://github.com/shadowcz007/comfyui-Image-reward": { + "stars": 31, + "last_update": "2024-06-14 10:24:49", + "author_account_age_days": 3750 + }, + "https://github.com/shadowcz007/comfyui-consistency-decoder": { + "stars": 2, + "last_update": "2024-06-14 10:23:35", + "author_account_age_days": 3750 + }, + "https://github.com/shadowcz007/comfyui-edit-mask": { + "stars": 6, + "last_update": "2024-06-20 01:42:48", + "author_account_age_days": 3750 + }, + "https://github.com/shadowcz007/comfyui-liveportrait": { + "stars": 463, + "last_update": "2024-09-01 10:34:41", + "author_account_age_days": 2478 + }, + "https://github.com/shadowcz007/comfyui-mixlab-nodes": { + "stars": 1700, + "last_update": "2025-07-22 01:44:28", + "author_account_age_days": 2478 + }, + "https://github.com/shadowcz007/comfyui-sound-lab": { + "stars": 125, + "last_update": "2024-07-04 12:53:38", + "author_account_age_days": 2478 + }, + "https://github.com/shadowcz007/comfyui-try-on": { + "stars": 13, + "last_update": "2024-08-15 10:50:22", + "author_account_age_days": 2478 + }, + "https://github.com/shadowcz007/comfyui-ultralytics-yolo": { + "stars": 35, + "last_update": "2024-06-22 09:06:04", + "author_account_age_days": 3750 + }, + "https://github.com/shahkoorosh/ComfyUI-KGnodes": { + "stars": 4, + "last_update": "2025-05-23 17:41:55", + "author_account_age_days": 628 + }, + "https://github.com/shahkoorosh/ComfyUI-PersianText": { + "stars": 20, + "last_update": "2025-05-23 17:43:33", + "author_account_age_days": 628 + }, + "https://github.com/shenduldh/ComfyUI-Lightning": { + "stars": 213, + "last_update": "2025-03-13 05:58:04", + "author_account_age_days": 2553 + }, + "https://github.com/shi3z/ComfyUI_Memeplex_DALLE": { + "stars": 2, + "last_update": "2024-05-23 00:14:25", + "author_account_age_days": 5528 + }, + "https://github.com/shiertier/ComfyUI-TeaCache-lumina2": { + "stars": 1, + "last_update": "2025-06-03 10:09:06", + "author_account_age_days": 1456 + }, + "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": { + "stars": 288, + "last_update": "2024-12-01 18:40:16", + "author_account_age_days": 2200 + }, + "https://github.com/shiimizu/ComfyUI-TiledDiffusion": { + "stars": 476, + "last_update": "2025-03-18 19:50:35", + "author_account_age_days": 2200 + }, + "https://github.com/shiimizu/ComfyUI-semantic-aware-guidance": { + "stars": 12, + "last_update": "2024-08-08 19:59:57", + "author_account_age_days": 2200 + }, + "https://github.com/shiimizu/ComfyUI_smZNodes": { + "stars": 287, + "last_update": "2025-06-04 15:26:05", + "author_account_age_days": 2200 + }, + "https://github.com/shinich39/comfyui-break-workflow": { + "stars": 1, + "last_update": "2025-05-25 10:20:20", + "author_account_age_days": 747 + }, + "https://github.com/shinich39/comfyui-civitai-workflow": { + "stars": 0, + "last_update": "2025-06-11 16:47:58", + "author_account_age_days": 747 + }, + "https://github.com/shinich39/comfyui-dynamic-routes": { + "stars": 5, + "last_update": "2025-05-25 10:17:05", + "author_account_age_days": 747 + }, + "https://github.com/shinich39/comfyui-get-meta": { + "stars": 8, + "last_update": "2025-05-25 10:17:48", + "author_account_age_days": 747 + }, + "https://github.com/shinich39/comfyui-global-prompts": { + "stars": 0, + "last_update": "2025-08-22 08:22:54", + "author_account_age_days": 747 + }, + "https://github.com/shinich39/comfyui-innnnnpaint": { + "stars": 0, + "last_update": "2025-05-25 10:18:06", + "author_account_age_days": 747 + }, + "https://github.com/shinich39/comfyui-mtga": { + "stars": 0, + "last_update": "2025-08-24 10:08:34", + "author_account_age_days": 747 + }, + "https://github.com/shinich39/comfyui-no-one-above-me": { + "stars": 0, + "last_update": "2025-05-25 10:19:33", + "author_account_age_days": 747 + }, + "https://github.com/shinich39/comfyui-prevent-sleep": { + "stars": 1, + "last_update": "2025-05-25 10:18:45", + "author_account_age_days": 747 + }, + "https://github.com/shinyakidoguchi301/comfyui-lora-tag-loader": { + "stars": 0, + "last_update": "2025-08-14 08:18:47", + "author_account_age_days": 151 + }, + "https://github.com/shobhitic/ComfyUI-PlusMinusTextClip": { + "stars": 3, + "last_update": "2024-06-20 13:57:29", + "author_account_age_days": 4742 + }, + "https://github.com/shockz0rz/comfy-easy-grids": { + "stars": 24, + "last_update": "2024-05-22 18:14:05", + "author_account_age_days": 2061 + }, + "https://github.com/siliconflow/BizyAir": { + "stars": 758, + "last_update": "2025-07-07 07:09:57", + "author_account_age_days": 741 + }, + "https://github.com/siliconflow/onediff_comfy_nodes": { + "stars": 23, + "last_update": "2024-06-24 10:08:11", + "author_account_age_days": 741 + }, + "https://github.com/silveroxides/ComfyUI-ModelUtils": { + "stars": 2, + "last_update": "2025-07-22 18:07:41", + "author_account_age_days": 1936 + }, + "https://github.com/silveroxides/ComfyUI-RR-JointTagger": { + "stars": 2, + "last_update": "2025-08-20 08:47:24", + "author_account_age_days": 1936 + }, + "https://github.com/silveroxides/ComfyUI_EmbeddingToolkit": { + "stars": 7, + "last_update": "2025-06-16 14:18:31", + "author_account_age_days": 1936 + }, + "https://github.com/silveroxides/ComfyUI_FDGuidance": { + "stars": 3, + "last_update": "2025-08-22 23:12:24", + "author_account_age_days": 1936 + }, + "https://github.com/silveroxides/ComfyUI_PowerShiftScheduler": { + "stars": 8, + "last_update": "2025-08-01 21:42:06", + "author_account_age_days": 1936 + }, + "https://github.com/silveroxides/ComfyUI_SigmoidOffsetScheduler": { + "stars": 20, + "last_update": "2025-05-11 19:44:35", + "author_account_age_days": 1936 + }, + "https://github.com/silveroxides/ComfyUI_bnb_nf4_fp4_Loaders": { + "stars": 37, + "last_update": "2025-04-28 01:08:43", + "author_account_age_days": 1936 + }, + "https://github.com/sipherxyz/comfyui-art-venture": { + "stars": 304, + "last_update": "2025-08-11 14:28:18", + "author_account_age_days": 1542 + }, + "https://github.com/sipie800/ComfyUI-PuLID-Flux-Enhanced": { + "stars": 217, + "last_update": "2025-02-07 15:04:47", + "author_account_age_days": 2562 + }, + "https://github.com/sittere/ComfyUI-YK_Line-loading": { + "stars": 2, + "last_update": "2025-03-02 09:10:54", + "author_account_age_days": 1313 + }, + "https://github.com/sjh00/ComfyUI-LoadImageWithInfo": { + "stars": 4, + "last_update": "2025-06-05 15:46:52", + "author_account_age_days": 4198 + }, + "https://github.com/skfoo/ComfyUI-Coziness": { + "stars": 32, + "last_update": "2024-08-16 03:10:43", + "author_account_age_days": 2517 + }, + "https://github.com/skycoder182/comfyui-filename-tools": { + "stars": 0, + "last_update": "2025-05-20 18:06:04", + "author_account_age_days": 105 + }, + "https://github.com/skycoder182/comfyui-skycoder-tools": { + "stars": 1, + "last_update": "2025-06-08 12:26:41", + "author_account_age_days": 105 + }, + "https://github.com/slvslvslv/ComfyUI-SmartHelperNodes": { + "stars": 2, + "last_update": "2025-05-06 15:48:22", + "author_account_age_days": 412 + }, + "https://github.com/slvslvslv/ComfyUI-SmartImageTools": { + "stars": 0, + "last_update": "2025-08-20 08:19:36", + "author_account_age_days": 412 + }, + "https://github.com/slyt/comfyui-ollama-nodes": { + "stars": 0, + "last_update": "2024-07-31 13:52:27", + "author_account_age_days": 4374 + }, + "https://github.com/sm079/ComfyUI-Face-Detection": { + "stars": 0, + "last_update": "2025-06-03 14:37:55", + "author_account_age_days": 2120 + }, + "https://github.com/smagnetize/kb-comfyui-nodes": { + "stars": 0, + "last_update": "2024-06-14 12:00:45", + "author_account_age_days": 3150 + }, + "https://github.com/smlbiobot/ComfyUI-Flux-Replicate-API": { + "stars": 23, + "last_update": "2024-12-26 16:21:00", + "author_account_age_days": 3156 + }, + "https://github.com/smlbiobot/sml-comfyui-prompt-expansion": { + "stars": 13, + "last_update": "2025-01-27 13:33:49", + "author_account_age_days": 3156 + }, + "https://github.com/smthemex/ComfyUI_AniCrafter": { + "stars": 35, + "last_update": "2025-07-21 14:04:20", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_AnyDoor": { + "stars": 65, + "last_update": "2025-02-05 04:01:50", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_CSD_MT": { + "stars": 18, + "last_update": "2025-02-06 04:30:50", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_CSGO_Wrapper": { + "stars": 17, + "last_update": "2024-09-07 06:13:48", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_ChatGLM_API": { + "stars": 24, + "last_update": "2024-07-31 13:53:41", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_CustomNet": { + "stars": 10, + "last_update": "2024-08-11 08:58:37", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_DICE_Talk": { + "stars": 25, + "last_update": "2025-05-07 07:47:06", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_DeepFakeDefenders": { + "stars": 42, + "last_update": "2024-09-14 00:17:59", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Demucs": { + "stars": 9, + "last_update": "2025-03-12 05:22:24", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Diffree": { + "stars": 32, + "last_update": "2025-03-09 01:16:33", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_DiffuEraser": { + "stars": 190, + "last_update": "2025-09-02 11:13:20", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_EchoMimic": { + "stars": 667, + "last_update": "2025-08-26 00:42:33", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Face_Anon_Simple": { + "stars": 17, + "last_update": "2025-03-12 05:22:03", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_FoleyCrafter": { + "stars": 62, + "last_update": "2025-05-29 11:42:48", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_FollowYourEmoji": { + "stars": 16, + "last_update": "2025-04-11 13:45:15", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Hallo2": { + "stars": 74, + "last_update": "2025-03-12 05:22:46", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro": { + "stars": 52, + "last_update": "2025-01-13 03:29:50", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_HunyuanAvatar_Sm": { + "stars": 78, + "last_update": "2025-06-24 13:06:34", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_ID_Animator": { + "stars": 24, + "last_update": "2024-07-31 13:53:27", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_InstantIR_Wrapper": { + "stars": 242, + "last_update": "2025-03-12 05:22:14", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_KV_Edit": { + "stars": 58, + "last_update": "2025-05-24 00:35:59", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Light_A_Video": { + "stars": 85, + "last_update": "2025-04-10 01:05:56", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Llama3_8B": { + "stars": 26, + "last_update": "2024-06-25 00:49:01", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_MS_Diffusion": { + "stars": 59, + "last_update": "2024-09-10 09:50:19", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_MangaNinjia": { + "stars": 57, + "last_update": "2025-04-09 14:21:57", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_MooER": { + "stars": 5, + "last_update": "2025-03-09 01:15:38", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_ObjectClear": { + "stars": 22, + "last_update": "2025-07-24 00:59:50", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_OmniParser": { + "stars": 40, + "last_update": "2025-03-12 05:22:34", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_OmniSVG": { + "stars": 16, + "last_update": "2025-07-24 01:25:24", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_PBR_Maker": { + "stars": 13, + "last_update": "2025-03-12 05:21:53", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_ParlerTTS": { + "stars": 46, + "last_update": "2025-07-02 09:39:48", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_PartPacker": { + "stars": 23, + "last_update": "2025-06-25 00:44:53", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Personalize_Anything": { + "stars": 44, + "last_update": "2025-03-26 00:38:13", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_PhotoDoodle": { + "stars": 98, + "last_update": "2025-03-20 08:19:21", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Pic2Story": { + "stars": 10, + "last_update": "2024-12-06 12:12:19", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Pipeline_Tool": { + "stars": 10, + "last_update": "2024-08-05 06:14:57", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Pops": { + "stars": 23, + "last_update": "2024-08-12 09:11:49", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_SVFR": { + "stars": 96, + "last_update": "2025-03-12 05:21:23", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Sapiens": { + "stars": 190, + "last_update": "2025-03-12 05:22:59", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_SongGeneration": { + "stars": 78, + "last_update": "2025-07-29 10:02:21", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Sonic": { + "stars": 1090, + "last_update": "2025-05-22 00:46:49", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_StableAudio_Open": { + "stars": 30, + "last_update": "2024-08-10 03:45:47", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_StableAvatar": { + "stars": 36, + "last_update": "2025-08-21 07:58:39", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Stable_Makeup": { + "stars": 99, + "last_update": "2025-07-03 00:30:45", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_StoryDiffusion": { + "stars": 465, + "last_update": "2025-09-02 01:05:56", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_Streamv2v_Plus": { + "stars": 10, + "last_update": "2024-09-06 08:20:59", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_TRELLIS": { + "stars": 171, + "last_update": "2025-08-17 03:55:34", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_VisualCloze": { + "stars": 11, + "last_update": "2025-05-21 08:56:45", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_YuE": { + "stars": 152, + "last_update": "2025-02-24 12:02:41", + "author_account_age_days": 789 + }, + "https://github.com/sn0w12/ComfyUI-Sn0w-Scripts": { + "stars": 14, + "last_update": "2025-08-25 13:13:04", + "author_account_age_days": 1208 + }, + "https://github.com/sn0w12/ComfyUI-Syntax-Highlighting": { + "stars": 2, + "last_update": "2025-08-06 21:33:59", + "author_account_age_days": 1208 + }, + "https://github.com/sneccc/comfyui-snek-nodes": { + "stars": 1, + "last_update": "2025-06-25 14:25:41", + "author_account_age_days": 2002 + }, + "https://github.com/snomiao/ComfyUI-Video-Crop": { + "stars": 2, + "last_update": "2025-08-05 13:53:52", + "author_account_age_days": 4156 + }, + "https://github.com/somesomebody/lorainfo-sidebar": { + "stars": 5, + "last_update": "2025-05-31 07:23:03", + "author_account_age_days": 126 + }, + "https://github.com/souki202/ComfyUI-LoadImage-Advanced": { + "stars": 1, + "last_update": "2025-03-03 03:53:26", + "author_account_age_days": 3695 + }, + "https://github.com/sourceful-official/LoadLoraModelOnlyWithUrl": { + "stars": 1, + "last_update": "2024-12-04 12:14:51", + "author_account_age_days": 1918 + }, + "https://github.com/sousakujikken/ComfyUI-PixydustQuantizer": { + "stars": 30, + "last_update": "2025-03-30 15:07:02", + "author_account_age_days": 843 + }, + "https://github.com/space-nuko/ComfyUI-Disco-Diffusion": { + "stars": 56, + "last_update": "2024-08-07 11:51:17", + "author_account_age_days": 3159 + }, + "https://github.com/space-nuko/ComfyUI-OpenPose-Editor": { + "stars": 219, + "last_update": "2024-05-22 18:10:49", + "author_account_age_days": 3159 + }, + "https://github.com/space-nuko/nui-suite": { + "stars": 11, + "last_update": "2024-05-22 18:11:04", + "author_account_age_days": 3159 + }, + "https://github.com/spacepxl/ComfyUI-Depth-Pro": { + "stars": 190, + "last_update": "2024-10-23 20:05:56", + "author_account_age_days": 729 + }, + "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": { + "stars": 65, + "last_update": "2025-01-30 00:12:58", + "author_account_age_days": 729 + }, + "https://github.com/spacepxl/ComfyUI-Image-Filters": { + "stars": 251, + "last_update": "2025-07-21 05:17:52", + "author_account_age_days": 729 + }, + "https://github.com/spacepxl/ComfyUI-LossTesting": { + "stars": 2, + "last_update": "2025-01-26 05:09:57", + "author_account_age_days": 729 + }, + "https://github.com/spacepxl/ComfyUI-RAVE": { + "stars": 95, + "last_update": "2024-05-22 20:56:19", + "author_account_age_days": 729 + }, + "https://github.com/spacepxl/ComfyUI-StyleGan": { + "stars": 20, + "last_update": "2024-06-10 20:16:34", + "author_account_age_days": 729 + }, + "https://github.com/spawner1145/CUI-Lumina2-TeaCache": { + "stars": 13, + "last_update": "2025-07-24 14:53:26", + "author_account_age_days": 373 + }, + "https://github.com/spawner1145/comfyui-aichat": { + "stars": 2, + "last_update": "2025-09-02 15:08:23", + "author_account_age_days": 373 + }, + "https://github.com/spinagon/ComfyUI-seam-carving": { + "stars": 24, + "last_update": "2025-03-14 08:47:57", + "author_account_age_days": 5175 + }, + "https://github.com/spinagon/ComfyUI-seamless-tiling": { + "stars": 225, + "last_update": "2025-03-14 08:48:11", + "author_account_age_days": 5175 + }, + "https://github.com/spro/comfyui-mirror": { + "stars": 7, + "last_update": "2024-05-22 20:50:25", + "author_account_age_days": 5666 + }, + "https://github.com/squirrel765/ComfyUI-LLM-VLM-Node": { + "stars": 2, + "last_update": "2025-08-10 09:24:22", + "author_account_age_days": 237 + }, + "https://github.com/ssitu/ComfyUI_UltimateSDUpscale": { + "stars": 1297, + "last_update": "2025-07-18 19:54:57", + "author_account_age_days": 2124 + }, + "https://github.com/ssitu/ComfyUI_fabric": { + "stars": 93, + "last_update": "2024-05-22 18:10:19", + "author_account_age_days": 2124 + }, + "https://github.com/ssitu/ComfyUI_restart_sampling": { + "stars": 89, + "last_update": "2024-05-22 18:09:49", + "author_account_age_days": 2124 + }, + "https://github.com/ssitu/ComfyUI_roop": { + "stars": 78, + "last_update": "2024-05-22 18:10:03", + "author_account_age_days": 2124 + }, + "https://github.com/stavsap/comfyui-downloader": { + "stars": 0, + "last_update": "2025-06-22 20:44:33", + "author_account_age_days": 4519 + }, + "https://github.com/stavsap/comfyui-kokoro": { + "stars": 56, + "last_update": "2025-05-17 13:23:49", + "author_account_age_days": 4519 + }, + "https://github.com/stavsap/comfyui-ollama": { + "stars": 627, + "last_update": "2025-08-04 19:58:04", + "author_account_age_days": 4519 + }, + "https://github.com/stduhpf/ComfyUI--Wan22FirstLastFrameToVideoLatent": { + "stars": 18, + "last_update": "2025-08-05 12:38:00", + "author_account_age_days": 3047 + }, + "https://github.com/stduhpf/ComfyUI--WanImageToVideoTiled": { + "stars": 4, + "last_update": "2025-08-05 12:38:41", + "author_account_age_days": 3047 + }, + "https://github.com/stduhpf/ComfyUI-WanMoeKSampler": { + "stars": 108, + "last_update": "2025-08-12 16:34:40", + "author_account_age_days": 3047 + }, + "https://github.com/stepfun-ai/ComfyUI-StepVideo": { + "stars": 40, + "last_update": "2025-03-27 07:52:26", + "author_account_age_days": 388 + }, + "https://github.com/stevenwg/ComfyUI-VideoGrid": { + "stars": 0, + "last_update": "2025-05-26 06:51:21", + "author_account_age_days": 3734 + }, + "https://github.com/stormcenter/ComfyUI-AutoSplitGridImage": { + "stars": 33, + "last_update": "2025-01-06 12:02:58", + "author_account_age_days": 4563 + }, + "https://github.com/stormcenter/ComfyUI-LivePhotoCreator": { + "stars": 29, + "last_update": "2025-01-06 12:03:42", + "author_account_age_days": 4563 + }, + "https://github.com/stormcenter/ComfyUI-SVGFullfill": { + "stars": 11, + "last_update": "2025-01-06 12:04:18", + "author_account_age_days": 4563 + }, + "https://github.com/storyicon/comfyui_musev_evolved": { + "stars": 26, + "last_update": "2024-06-14 11:02:40", + "author_account_age_days": 2987 + }, + "https://github.com/storyicon/comfyui_segment_anything": { + "stars": 1013, + "last_update": "2024-07-12 10:17:33", + "author_account_age_days": 2987 + }, + "https://github.com/strand1/ComfyUI-Autogen": { + "stars": 3, + "last_update": "2025-01-21 05:10:43", + "author_account_age_days": 4906 + }, + "https://github.com/strawberryPunch/vram_optimizer": { + "stars": 7, + "last_update": "2025-07-18 13:34:28", + "author_account_age_days": 729 + }, + "https://github.com/strimmlarn/ComfyUI-Strimmlarns-Aesthetic-Score": { + "stars": 34, + "last_update": "2024-06-17 10:01:44", + "author_account_age_days": 3062 + }, + "https://github.com/styler00dollar/ComfyUI-deepcache": { + "stars": 11, + "last_update": "2024-05-22 22:18:18", + "author_account_age_days": 2281 + }, + "https://github.com/styler00dollar/ComfyUI-sudo-latent-upscale": { + "stars": 38, + "last_update": "2024-05-22 22:18:07", + "author_account_age_days": 2281 + }, + "https://github.com/subtleGradient/TinkerBot-tech-for-ComfyUI-Touchpad": { + "stars": 42, + "last_update": "2024-08-16 01:18:03", + "author_account_age_days": 6365 + }, + "https://github.com/sugarkwork/ComfyUI_AspectRatioToSize": { + "stars": 2, + "last_update": "2025-06-04 00:48:13", + "author_account_age_days": 1311 + }, + "https://github.com/sugarkwork/comfyui-trtupscaler": { + "stars": 1, + "last_update": "2025-06-11 07:43:10", + "author_account_age_days": 1311 + }, + "https://github.com/sugarkwork/comfyui_cohere": { + "stars": 1, + "last_update": "2025-06-11 04:29:08", + "author_account_age_days": 1311 + }, + "https://github.com/sugarkwork/comfyui_tag_fillter": { + "stars": 63, + "last_update": "2025-07-22 02:35:04", + "author_account_age_days": 1311 + }, + "https://github.com/sunra-ai/comfyui-sunra": { + "stars": 6, + "last_update": "2025-07-18 14:28:36", + "author_account_age_days": 188 + }, + "https://github.com/superyoman/comfyui_lumaAPI": { + "stars": 21, + "last_update": "2024-06-17 21:00:05", + "author_account_age_days": 884 + }, + "https://github.com/surinder83singh/ComfyUI-compare-videos": { + "stars": 3, + "last_update": "2025-05-06 01:30:48", + "author_account_age_days": 4952 + }, + "https://github.com/svetozarov/AS_LLM_nodes": { + "stars": 2, + "last_update": "2025-03-23 12:05:43", + "author_account_age_days": 920 + }, + "https://github.com/svntax/ComfyUI-RetroDiffusion-API-Node": { + "stars": 1, + "last_update": "2025-08-21 10:47:25", + "author_account_age_days": 4314 + }, + "https://github.com/sweetndata/ComfyUI-Image-Harmonizer": { + "stars": 3, + "last_update": "2024-11-20 06:10:34", + "author_account_age_days": 1167 + }, + "https://github.com/sweetndata/ComfyUI-Reflatent": { + "stars": 0, + "last_update": "2025-08-27 16:38:57", + "author_account_age_days": 1167 + }, + "https://github.com/sweetndata/ComfyUI-googletrans": { + "stars": 4, + "last_update": "2024-11-20 04:53:19", + "author_account_age_days": 1167 + }, + "https://github.com/sweetndata/ComfyUI_Sticker_Compositer": { + "stars": 1, + "last_update": "2025-01-02 06:54:51", + "author_account_age_days": 1167 + }, + "https://github.com/swhsiang/comfyui-3d-gs-renderer": { + "stars": 1, + "last_update": "2025-06-09 03:05:11", + "author_account_age_days": 3370 + }, + "https://github.com/syllebra/bilbox-comfyui": { + "stars": 133, + "last_update": "2024-12-06 23:51:55", + "author_account_age_days": 3571 + }, + "https://github.com/sylym/comfy_vid2vid": { + "stars": 72, + "last_update": "2024-05-22 17:53:40", + "author_account_age_days": 2333 + }, + "https://github.com/synthetai/ComfyUI-JM-KLing-API": { + "stars": 1, + "last_update": "2025-08-21 14:39:16", + "author_account_age_days": 386 + }, + "https://github.com/synthetai/ComfyUI-JM-MiniMax-API": { + "stars": 1, + "last_update": "2025-09-02 01:56:00", + "author_account_age_days": 386 + }, + "https://github.com/synthetai/ComfyUI-JM-Volcengine-API": { + "stars": 2, + "last_update": "2025-07-26 08:32:23", + "author_account_age_days": 386 + }, + "https://github.com/synthetai/ComfyUI-ToolBox": { + "stars": 0, + "last_update": "2025-07-23 10:23:22", + "author_account_age_days": 386 + }, + "https://github.com/synthetai/ComfyUI_FaceEnhancer": { + "stars": 2, + "last_update": "2025-04-17 00:34:39", + "author_account_age_days": 386 + }, + "https://github.com/synthetai/ComfyUI_PromptBatcher": { + "stars": 6, + "last_update": "2025-04-14 04:42:03", + "author_account_age_days": 386 + }, + "https://github.com/sysL-padawan/comfyui-elevenlabs-integration": { + "stars": 2, + "last_update": "2025-08-17 10:29:10", + "author_account_age_days": 3044 + }, + "https://github.com/szhublox/ambw_comfyui": { + "stars": 16, + "last_update": "2024-05-22 18:04:57", + "author_account_age_days": 1442 + }, + "https://github.com/taabata/ComfyCanvas": { + "stars": 91, + "last_update": "2025-07-10 00:40:21", + "author_account_age_days": 2118 + }, + "https://github.com/taabata/LCM_Inpaint_Outpaint_Comfy": { + "stars": 259, + "last_update": "2024-11-18 00:45:28", + "author_account_age_days": 2118 + }, + "https://github.com/taabata/SANA_LOWVRAM": { + "stars": 5, + "last_update": "2024-12-28 01:16:29", + "author_account_age_days": 2118 + }, + "https://github.com/taches-ai/comfyui-scene-composer": { + "stars": 60, + "last_update": "2025-05-28 07:30:03", + "author_account_age_days": 342 + }, + "https://github.com/tachyon-beep/comfyui-simplefeed": { + "stars": 11, + "last_update": "2024-10-16 09:19:29", + "author_account_age_days": 5356 + }, + "https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-": { + "stars": 39, + "last_update": "2024-12-01 13:06:02", + "author_account_age_days": 820 + }, + "https://github.com/talesofai/comfyui-browser": { + "stars": 606, + "last_update": "2024-11-11 01:42:30", + "author_account_age_days": 991 + }, + "https://github.com/tanglaoya321/ComfyUI-StoryMaker": { + "stars": 18, + "last_update": "2024-10-01 01:20:00", + "author_account_age_days": 4406 + }, + "https://github.com/tatookan/comfyui_ssl_gemini_EXP": { + "stars": 90, + "last_update": "2025-03-19 15:54:44", + "author_account_age_days": 2166 + }, + "https://github.com/tauraloke/ComfyUI-Unfake-Pixels": { + "stars": 29, + "last_update": "2025-08-01 08:26:12", + "author_account_age_days": 4856 + }, + "https://github.com/tavyra/ComfyUI_Curves": { + "stars": 2, + "last_update": "2025-05-08 01:48:55", + "author_account_age_days": 2534 + }, + "https://github.com/teamalpha-ai/comfyui-image-transformer": { + "stars": 1, + "last_update": "2025-08-13 04:04:53", + "author_account_age_days": 427 + }, + "https://github.com/tercumantanumut/ComfyUI-Omini-Kontext": { + "stars": 58, + "last_update": "2025-08-13 20:55:23", + "author_account_age_days": 899 + }, + "https://github.com/tetsuoo-online/comfyui-too-xmp-metadata": { + "stars": 5, + "last_update": "2025-06-07 15:59:26", + "author_account_age_days": 2455 + }, + "https://github.com/teward/Comfy-Sentry": { + "stars": 1, + "last_update": "2024-07-31 21:37:42", + "author_account_age_days": 5533 + }, + "https://github.com/teward/ComfyUI-Helper-Nodes": { + "stars": 6, + "last_update": "2024-05-23 01:22:01", + "author_account_age_days": 5533 + }, + "https://github.com/thalismind/ComfyUI-Blend-Nodes": { + "stars": 1, + "last_update": "2025-06-30 00:06:21", + "author_account_age_days": 234 + }, + "https://github.com/thalismind/ComfyUI-LoadImageWithFilename": { + "stars": 1, + "last_update": "2025-07-21 03:28:05", + "author_account_age_days": 234 + }, + "https://github.com/theAdamColton/ComfyUI-texflow-extension": { + "stars": 1, + "last_update": "2025-01-16 19:58:24", + "author_account_age_days": 1791 + }, + "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader": { + "stars": 62, + "last_update": "2025-05-16 11:01:23", + "author_account_age_days": 3157 + }, + "https://github.com/thecooltechguy/ComfyUI-ComfyWorkflows": { + "stars": 70, + "last_update": "2024-05-22 21:33:47", + "author_account_age_days": 2857 + }, + "https://github.com/thecooltechguy/ComfyUI-MagicAnimate": { + "stars": 224, + "last_update": "2024-05-22 21:33:35", + "author_account_age_days": 2857 + }, + "https://github.com/thecooltechguy/ComfyUI-Stable-Video-Diffusion": { + "stars": 362, + "last_update": "2024-05-24 22:14:42", + "author_account_age_days": 2857 + }, + "https://github.com/thedivergentai/divergent_nodes": { + "stars": 0, + "last_update": "2025-08-16 02:27:04", + "author_account_age_days": 895 + }, + "https://github.com/theshubzworld/ComfyUI-FaceCalloutNode": { + "stars": 0, + "last_update": "2025-05-09 14:38:15", + "author_account_age_days": 406 + }, + "https://github.com/theshubzworld/ComfyUI-SD3.5-Latent-Size-Picker": { + "stars": 1, + "last_update": "2025-07-27 17:30:56", + "author_account_age_days": 406 + }, + "https://github.com/theshubzworld/ComfyUI-TogetherVision": { + "stars": 4, + "last_update": "2025-06-26 18:48:25", + "author_account_age_days": 406 + }, + "https://github.com/theshubzworld/ComfyUI-ollama_killer": { + "stars": 3, + "last_update": "2025-06-09 09:14:55", + "author_account_age_days": 406 + }, + "https://github.com/thezveroboy/ComfyUI-CSM-Nodes": { + "stars": 34, + "last_update": "2025-03-17 10:08:12", + "author_account_age_days": 3649 + }, + "https://github.com/thezveroboy/ComfyUI-WAN-ClipSkip": { + "stars": 1, + "last_update": "2025-03-16 21:12:54", + "author_account_age_days": 3649 + }, + "https://github.com/thezveroboy/ComfyUI-lut": { + "stars": 3, + "last_update": "2025-05-24 21:37:06", + "author_account_age_days": 3649 + }, + "https://github.com/thezveroboy/ComfyUI_ACE-Step-zveroboy": { + "stars": 3, + "last_update": "2025-05-12 11:01:16", + "author_account_age_days": 3649 + }, + "https://github.com/thezveroboy/comfyui-RandomPromptsZveroboy": { + "stars": 2, + "last_update": "2025-08-19 12:29:31", + "author_account_age_days": 3649 + }, + "https://github.com/thezveroboy/comfyui-random-image-loader": { + "stars": 1, + "last_update": "2025-05-11 18:04:32", + "author_account_age_days": 3649 + }, + "https://github.com/thimpat/ThimPatUtils": { + "stars": 0, + "last_update": "2025-08-25 18:04:19", + "author_account_age_days": 4113 + }, + "https://github.com/thoddnn/ComfyUI-MLX": { + "stars": 163, + "last_update": "2024-10-22 06:41:22", + "author_account_age_days": 698 + }, + "https://github.com/tianguanggliu/Utools": { + "stars": 0, + "last_update": "2024-08-29 09:45:03", + "author_account_age_days": 2775 + }, + "https://github.com/tiankuan93/ComfyUI-V-Express": { + "stars": 112, + "last_update": "2024-06-26 02:41:00", + "author_account_age_days": 3385 + }, + "https://github.com/tianlang0704/ComfyUI-StableProjectorzBridge": { + "stars": 38, + "last_update": "2024-12-01 11:46:58", + "author_account_age_days": 3760 + }, + "https://github.com/tianyuw/ComfyUI-LLM-API": { + "stars": 6, + "last_update": "2025-01-25 19:31:47", + "author_account_age_days": 3628 + }, + "https://github.com/tigeryy2/comfyui-structured-outputs": { + "stars": 1, + "last_update": "2025-08-29 22:43:48", + "author_account_age_days": 2406 + }, + "https://github.com/tighug/comfyui-eagle-feeder": { + "stars": 0, + "last_update": "2025-07-11 15:56:24", + "author_account_age_days": 2546 + }, + "https://github.com/tighug/comfyui-rating-checker": { + "stars": 1, + "last_update": "2025-05-09 14:22:51", + "author_account_age_days": 2546 + }, + "https://github.com/tkreuziger/comfyui-claude": { + "stars": 5, + "last_update": "2025-04-10 18:23:35", + "author_account_age_days": 971 + }, + "https://github.com/tmagara/ComfyUI-Prediction-Boost": { + "stars": 1, + "last_update": "2024-07-31 13:51:19", + "author_account_age_days": 4810 + }, + "https://github.com/tocubed/ComfyUI-AudioReactor": { + "stars": 8, + "last_update": "2024-05-22 22:21:57", + "author_account_age_days": 4294 + }, + "https://github.com/tocubed/ComfyUI-EvTexture": { + "stars": 16, + "last_update": "2025-01-05 23:21:23", + "author_account_age_days": 4294 + }, + "https://github.com/tomudo/ComfyUI-ascii-art": { + "stars": 3, + "last_update": "2024-11-21 05:24:12", + "author_account_age_days": 3338 + }, + "https://github.com/tooldigital/ComfyUI-Yolo-Cropper": { + "stars": 10, + "last_update": "2024-06-14 13:59:48", + "author_account_age_days": 4752 + }, + "https://github.com/toxicwind/ComfyUI-TTools": { + "stars": 1, + "last_update": "2024-07-04 20:07:35", + "author_account_age_days": 4805 + }, + "https://github.com/toyxyz/ComfyUI_rgbx_Wrapper": { + "stars": 115, + "last_update": "2025-04-03 08:17:10", + "author_account_age_days": 4085 + }, + "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": { + "stars": 591, + "last_update": "2025-06-10 14:20:31", + "author_account_age_days": 4085 + }, + "https://github.com/traugdor/ComfyUI-Riffusion": { + "stars": 4, + "last_update": "2025-05-30 20:15:05", + "author_account_age_days": 4255 + }, + "https://github.com/traugdor/ComfyUI-UltimateSDUpscale-GGUF": { + "stars": 13, + "last_update": "2025-08-22 23:56:33", + "author_account_age_days": 4255 + }, + "https://github.com/traugdor/ComfyUI-quadMoons-nodes": { + "stars": 14, + "last_update": "2025-06-23 15:18:42", + "author_account_age_days": 4255 + }, + "https://github.com/tritant/ComfyUI-Advanced-Photo-Grain": { + "stars": 1, + "last_update": "2025-07-19 10:51:14", + "author_account_age_days": 3576 + }, + "https://github.com/tritant/ComfyUI_CreaPrompt": { + "stars": 64, + "last_update": "2025-07-26 17:10:23", + "author_account_age_days": 3576 + }, + "https://github.com/tritant/ComfyUI_Flux_Block_Lora_Merger": { + "stars": 3, + "last_update": "2025-07-01 15:26:48", + "author_account_age_days": 3576 + }, + "https://github.com/tritant/ComfyUI_Flux_Lora_Merger": { + "stars": 3, + "last_update": "2025-05-09 04:39:16", + "author_account_age_days": 3576 + }, + "https://github.com/tritant/ComfyUI_Layers_Utility": { + "stars": 30, + "last_update": "2025-09-02 09:50:02", + "author_account_age_days": 3576 + }, + "https://github.com/tritant/ComfyUI_Relight_Img": { + "stars": 2, + "last_update": "2025-08-02 12:20:39", + "author_account_age_days": 3576 + }, + "https://github.com/tritant/ComfyUI_Remove_Banding_Artifacts": { + "stars": 7, + "last_update": "2025-07-21 20:23:10", + "author_account_age_days": 3576 + }, + "https://github.com/trojblue/trNodes": { + "stars": 8, + "last_update": "2024-05-22 18:04:36", + "author_account_age_days": 2693 + }, + "https://github.com/troyxmccall/ComfyUI-ScaleToTargetMegapixels": { + "stars": 1, + "last_update": "2024-11-11 00:07:25", + "author_account_age_days": 5824 + }, + "https://github.com/trumanwong/ComfyUI-NSFW-Detection": { + "stars": 39, + "last_update": "2025-04-21 05:38:12", + "author_account_age_days": 3395 + }, + "https://github.com/tsogzark/ComfyUI-load-image-from-url": { + "stars": 23, + "last_update": "2024-06-14 13:59:05", + "author_account_age_days": 1964 + }, + "https://github.com/ttulttul/ComfyUI-Iterative-Mixer": { + "stars": 118, + "last_update": "2025-03-10 03:33:02", + "author_account_age_days": 5192 + }, + "https://github.com/ttulttul/ComfyUI-Tensor-Operations": { + "stars": 6, + "last_update": "2025-02-03 16:57:00", + "author_account_age_days": 5192 + }, + "https://github.com/tungdop2/Comfyui_face_restorer": { + "stars": 1, + "last_update": "2024-11-21 15:53:59", + "author_account_age_days": 1859 + }, + "https://github.com/tungdop2/Comfyui_joy-caption-alpha-two": { + "stars": 6, + "last_update": "2025-04-19 06:00:23", + "author_account_age_days": 1859 + }, + "https://github.com/turkyden/ComfyUI-SmartCrop": { + "stars": 3, + "last_update": "2024-10-08 09:36:34", + "author_account_age_days": 3184 + }, + "https://github.com/tusharbhutt/Endless-Buttons": { + "stars": 7, + "last_update": "2025-08-06 06:28:45", + "author_account_age_days": 3100 + }, + "https://github.com/tusharbhutt/Endless-Nodes": { + "stars": 57, + "last_update": "2025-07-25 22:08:03", + "author_account_age_days": 3100 + }, + "https://github.com/twri/sdxl_prompt_styler": { + "stars": 874, + "last_update": "2024-05-22 18:16:58", + "author_account_age_days": 4503 }, "https://github.com/txt2any/ComfyUI-PromptOrganizer": { "stars": 0, - "last_update": "2024-04-15 21:14:54" + "last_update": "2024-05-23 01:10:33", + "author_account_age_days": 519 }, - "https://github.com/kealiu/ComfyUI-S3-Tools": { - "stars": 0, - "last_update": "2024-04-14 12:45:49" + "https://github.com/ty0x2333/ComfyUI-Dev-Utils": { + "stars": 148, + "last_update": "2025-07-22 08:08:49", + "author_account_age_days": 4138 }, - "https://github.com/chaojie/ComfyUI-EasyAnimate": { - "stars": 35, - "last_update": "2024-04-16 14:45:13" + "https://github.com/tzwm/comfyui-profiler": { + "stars": 161, + "last_update": "2024-08-28 14:27:12", + "author_account_age_days": 5204 }, - "https://github.com/hay86/ComfyUI_OpenVoice": { - "stars": 0, - "last_update": "2024-04-18 12:35:11" + "https://github.com/uarefans/ComfyUI-Fans": { + "stars": 17, + "last_update": "2024-07-14 15:00:38", + "author_account_age_days": 1707 }, - "https://github.com/hay86/ComfyUI_DDColor": { - "stars": 0, - "last_update": "2024-04-17 14:38:22" - }, - "https://github.com/forever22777/comfyui-self-guidance": { + "https://github.com/uetuluk/comfyui-webcam-node": { "stars": 4, - "last_update": "2024-04-16 07:32:57" + "last_update": "2024-06-14 08:25:13", + "author_account_age_days": 2749 }, - "https://github.com/smthemex/ComfyUI_Pic2Story": { - "stars": 2, - "last_update": "2024-04-18 06:30:23" - }, - "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM": { + "https://github.com/uihp/ComfyUI-String-Chain": { "stars": 0, - "last_update": "2024-04-15 23:04:31" + "last_update": "2025-04-12 12:22:14", + "author_account_age_days": 1473 }, - "https://github.com/AonekoSS/ComfyUI-SimpleCounter": { + "https://github.com/uinodes/ComfyUI-uinodesDOC": { + "stars": 53, + "last_update": "2025-08-10 13:17:49", + "author_account_age_days": 69 + }, + "https://github.com/umiyuki/comfyui-pad-to-eight": { "stars": 0, - "last_update": "2024-04-15 16:21:16" + "last_update": "2025-01-07 09:58:36", + "author_account_age_days": 4189 }, - "https://github.com/heshengtao/comfyui_LLM_party": { - "stars": 4, - "last_update": "2024-04-20 15:49:25" + "https://github.com/un-seen/comfyui-tensorops": { + "stars": 28, + "last_update": "2024-10-26 00:04:07", + "author_account_age_days": 1751 }, - "https://github.com/frankchieng/ComfyUI_MagicClothing": { - "stars": 200, - "last_update": "2024-04-20 06:45:30" + "https://github.com/un-seen/comfyui_segment_anything_plus": { + "stars": 9, + "last_update": "2024-07-29 06:21:54", + "author_account_age_days": 1751 }, - "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH": { - "stars": 1, - "last_update": "2024-04-17 08:45:20" - }, - "https://github.com/JettHu/ComfyUI_TGate": { - "stars": 18, - "last_update": "2024-04-19 07:59:28" - }, - "https://github.com/VAST-AI-Research/ComfyUI-Tripo": { - "stars": 12, - "last_update": "2024-04-18 11:37:22" - }, - "https://github.com/Stability-AI/ComfyUI-SAI_API": { - "stars": 15, - "last_update": "2024-04-18 07:31:18" - }, - "https://github.com/chaojie/ComfyUI-CameraCtrl": { - "stars": 8, - "last_update": "2024-04-19 03:46:18" - }, - "https://github.com/sugarkwork/comfyui_tag_fillter": { - "stars": 1, - "last_update": "2024-04-18 06:37:21" - }, - "https://github.com/hay86/ComfyUI_MiniCPM-V": { + "https://github.com/unicough/comfy_openai_image_api": { "stars": 0, - "last_update": "2024-04-18 13:11:09" + "last_update": "2025-05-02 04:24:34", + "author_account_age_days": 4145 }, - "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite": { - "stars": 1, - "last_update": "2024-04-18 16:29:35" - }, - "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper": { - "stars": 8, - "last_update": "2024-04-19 03:46:18" - }, - "https://github.com/turkyden/ComfyUI-Comic": { - "stars": 0, - "last_update": "2024-04-19 04:32:55" - }, - "https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes": { - "stars": 2, - "last_update": "2024-04-19 09:51:57" - }, - "https://github.com/TencentQQGYLab/ComfyUI-ELLA": { - "stars": 80, - "last_update": "2024-04-20 00:47:57" - }, - "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools": { + "https://github.com/unwdef/unwdef-nodes-comfyui": { "stars": 5, - "last_update": "2024-04-19 14:55:44" + "last_update": "2025-03-27 10:42:15", + "author_account_age_days": 508 }, - "https://github.com/kijai/ComfyUI-APISR-KJ": { - "stars": 48, - "last_update": "2024-04-19 16:38:57" + "https://github.com/upseem/comfyui_sun_nodes": { + "stars": 0, + "last_update": "2025-07-22 04:45:36", + "author_account_age_days": 936 }, - "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode": { - "stars": 6, - "last_update": "2024-04-19 10:52:02" - }, - "https://github.com/DarKDinDoN/comfyui-checkpoint-automatic-config": { + "https://github.com/upseem/comfyui_sunxAI_facetools": { "stars": 1, - "last_update": "2024-04-20 13:27:26" + "last_update": "2025-08-06 04:51:03", + "author_account_age_days": 936 + }, + "https://github.com/usrname0/comfyui-holdup": { + "stars": 1, + "last_update": "2025-06-12 07:26:10", + "author_account_age_days": 2849 + }, + "https://github.com/vadimcro/VKRiez-Edge": { + "stars": 8, + "last_update": "2025-03-18 11:18:27", + "author_account_age_days": 3071 + }, + "https://github.com/vahidzxc/va-nodes": { + "stars": 2, + "last_update": "2025-03-22 01:50:08", + "author_account_age_days": 427 + }, + "https://github.com/vahlok-alunmid/ComfyUI-ExtendIPAdapterClipVision": { + "stars": 16, + "last_update": "2025-02-09 04:06:34", + "author_account_age_days": 2822 + }, + "https://github.com/vaishnav-vn/va1": { + "stars": 0, + "last_update": "2025-07-21 20:51:44", + "author_account_age_days": 2392 + }, + "https://github.com/valofey/Openrouter-Node": { + "stars": 5, + "last_update": "2025-02-13 21:26:22", + "author_account_age_days": 1818 + }, + "https://github.com/vanche1212/ComfyUI-ZMG-Nodes": { + "stars": 3, + "last_update": "2024-06-25 04:48:19", + "author_account_age_days": 3393 + }, + "https://github.com/vanillacode314/SimpleWildcardsComfyUI": { + "stars": 6, + "last_update": "2025-04-02 04:56:25", + "author_account_age_days": 1292 + }, + "https://github.com/var1ableX/ComfyUI_Accessories": { + "stars": 1, + "last_update": "2025-02-09 14:31:19", + "author_account_age_days": 5199 + }, + "https://github.com/vault-developer/comfyui-image-blender": { + "stars": 20, + "last_update": "2025-04-02 19:37:15", + "author_account_age_days": 3048 + }, + "https://github.com/veighnsche/comfyui_gr85": { + "stars": 1, + "last_update": "2024-11-26 17:26:48", + "author_account_age_days": 3535 + }, + "https://github.com/vekitan55/SimpleFlux1Merger": { + "stars": 1, + "last_update": "2025-04-23 12:09:47", + "author_account_age_days": 766 + }, + "https://github.com/verIdyia/ComfyUI-Qwen-Image-DF11": { + "stars": 6, + "last_update": "2025-08-05 07:33:46", + "author_account_age_days": 2705 + }, + "https://github.com/victorchall/comfyui_webcamcapture": { + "stars": 14, + "last_update": "2025-04-16 20:39:32", + "author_account_age_days": 3580 + }, + "https://github.com/vienteck/ComfyUI-Chat-GPT-Integration": { + "stars": 31, + "last_update": "2024-05-22 22:11:14", + "author_account_age_days": 3862 + }, + "https://github.com/vincentfs/ComfyUI-ArchiGraph": { + "stars": 2, + "last_update": "2025-01-23 17:29:09", + "author_account_age_days": 4101 + }, + "https://github.com/violet-chen/comfyui-psd2png": { + "stars": 20, + "last_update": "2025-06-04 11:41:34", + "author_account_age_days": 1833 + }, + "https://github.com/violet0927/ComfyUI-HuggingFaceLoraUploader": { + "stars": 0, + "last_update": "2025-06-03 05:46:11", + "author_account_age_days": 215 + }, + "https://github.com/viperyl/ComfyUI-RGT": { + "stars": 8, + "last_update": "2024-06-20 15:33:50", + "author_account_age_days": 2468 + }, + "https://github.com/visualbruno/ComfyUI-Hunyuan3d-2-1": { + "stars": 160, + "last_update": "2025-08-11 19:41:21", + "author_account_age_days": 5475 + }, + "https://github.com/vivax3794/ComfyUI-Sub-Nodes": { + "stars": 164, + "last_update": "2025-02-21 07:03:30", + "author_account_age_days": 2274 + }, + "https://github.com/vivax3794/ComfyUI-Vivax-Nodes": { + "stars": 3, + "last_update": "2024-09-07 18:42:27", + "author_account_age_days": 2274 + }, + "https://github.com/vivi-gomez/ComfyUI-fixnodetranslate": { + "stars": 0, + "last_update": "2025-06-01 08:42:50", + "author_account_age_days": 4784 + }, + "https://github.com/vkff5833/ComfyUI-MobileClient": { + "stars": 6, + "last_update": "2025-02-11 00:34:36", + "author_account_age_days": 730 + }, + "https://github.com/vkff5833/ComfyUI-PromptConverter": { + "stars": 3, + "last_update": "2025-01-27 18:35:41", + "author_account_age_days": 730 + }, + "https://github.com/vladpro3/ComfyUI_BishaNodes": { + "stars": 1, + "last_update": "2025-06-08 19:23:23", + "author_account_age_days": 2762 + }, + "https://github.com/vrgamegirl19/comfyui-vrgamedevgirl": { + "stars": 71, + "last_update": "2025-07-24 23:41:04", + "author_account_age_days": 844 + }, + "https://github.com/vsaan212/Comfy-ui-textsplit": { + "stars": 0, + "last_update": "2025-08-09 22:28:24", + "author_account_age_days": 225 + }, + "https://github.com/vsevolod-oparin/comfyui-kandinsky22": { + "stars": 10, + "last_update": "2025-04-02 03:48:05", + "author_account_age_days": 5419 + }, + "https://github.com/vslinx/ComfyUI-vslinx-nodes": { + "stars": 1, + "last_update": "2025-08-31 20:52:57", + "author_account_age_days": 2288 + }, + "https://github.com/vuongminh1907/ComfyUI_ZenID": { + "stars": 202, + "last_update": "2025-07-03 02:15:51", + "author_account_age_days": 1007 + }, + "https://github.com/wTechArtist/ComfyUI-CustomNodes": { + "stars": 2, + "last_update": "2024-08-21 03:03:16", + "author_account_age_days": 1796 + }, + "https://github.com/wTechArtist/ComfyUI-StableDelight-weiweiliang": { + "stars": 2, + "last_update": "2025-03-23 07:52:36", + "author_account_age_days": 1796 + }, + "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera_Advanced": { + "stars": 3, + "last_update": "2025-06-23 10:08:04", + "author_account_age_days": 1796 + }, + "https://github.com/wakattac/ComfyUI-AbstractImaGen": { + "stars": 1, + "last_update": "2025-05-09 22:37:03", + "author_account_age_days": 119 + }, + "https://github.com/wallish77/wlsh_nodes": { + "stars": 129, + "last_update": "2024-06-19 12:01:29", + "author_account_age_days": 2655 + }, + "https://github.com/wandbrandon/comfyui-pixel": { + "stars": 4, + "last_update": "2024-06-14 07:07:09", + "author_account_age_days": 3818 + }, + "https://github.com/wasilone11/comfyui-pvm-node": { + "stars": 1, + "last_update": "2025-07-21 01:36:01", + "author_account_age_days": 2641 + }, + "https://github.com/wasilone11/comfyui-sync-lipsync-node": { + "stars": 1, + "last_update": "2025-07-18 23:16:47", + "author_account_age_days": 2641 + }, + "https://github.com/watarika/ComfyUI-SendToEagle-w-Metadata": { + "stars": 2, + "last_update": "2025-08-22 13:49:02", + "author_account_age_days": 2168 + }, + "https://github.com/waterminer/ComfyUI-tagcomplete": { + "stars": 11, + "last_update": "2025-01-06 00:13:57", + "author_account_age_days": 2547 + }, + "https://github.com/wawahuy/ComfyUI-HTTP": { + "stars": 2, + "last_update": "2025-07-22 15:46:22", + "author_account_age_days": 3514 + }, + "https://github.com/web3nomad/ComfyUI_Invisible_Watermark": { + "stars": 1, + "last_update": "2024-05-23 01:16:54", + "author_account_age_days": 1403 + }, + "https://github.com/weberjc/book-cover-finder-comfy": { + "stars": 0, + "last_update": "2025-07-25 11:04:58", + "author_account_age_days": 3463 + }, + "https://github.com/webfiltered/DebugNode-ComfyUI": { + "stars": 8, + "last_update": "2025-05-06 16:15:33", + "author_account_age_days": 409 + }, + "https://github.com/webuilder/WB-ComfyUI-Utils": { + "stars": 0, + "last_update": "2025-07-19 15:04:04", + "author_account_age_days": 4637 + }, + "https://github.com/weekii/comfyui-save-image-pro": { + "stars": 0, + "last_update": "2025-08-25 06:41:40", + "author_account_age_days": 468 + }, + "https://github.com/wei30172/comfygen": { + "stars": 8, + "last_update": "2024-11-07 22:10:50", + "author_account_age_days": 2048 + }, + "https://github.com/weilin9999/WeiLin-Comfyui-Tools": { + "stars": 228, + "last_update": "2025-08-06 09:46:04", + "author_account_age_days": 2343 + }, + "https://github.com/welltop-cn/ComfyUI-TeaCache": { + "stars": 975, + "last_update": "2025-07-12 04:05:29", + "author_account_age_days": 2007 + }, + "https://github.com/wentao-uw/ComfyUI-template-matching": { + "stars": 1, + "last_update": "2024-11-06 06:52:30", + "author_account_age_days": 2214 + }, + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-editor": { + "stars": 80, + "last_update": "2025-08-17 00:04:29", + "author_account_age_days": 729 + }, + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-estimator": { + "stars": 16, + "last_update": "2025-06-03 21:06:33", + "author_account_age_days": 729 + }, + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-render": { + "stars": 9, + "last_update": "2025-01-25 05:54:27", + "author_account_age_days": 729 + }, + "https://github.com/whatbirdisthat/cyberdolphin": { + "stars": 14, + "last_update": "2024-07-31 13:40:12", + "author_account_age_days": 5922 + }, + "https://github.com/whmc76/ComfyUI-Openpose-Editor-Plus": { + "stars": 38, + "last_update": "2024-06-20 13:52:34", + "author_account_age_days": 887 + }, + "https://github.com/whmc76/ComfyUI-RemoveBackgroundSuite": { + "stars": 3, + "last_update": "2025-07-29 11:15:20", + "author_account_age_days": 887 + }, + "https://github.com/whmc76/ComfyUI-UniversalToolkit": { + "stars": 42, + "last_update": "2025-08-15 08:35:11", + "author_account_age_days": 887 + }, + "https://github.com/wildminder/000_ComfyUI-Optim": { + "stars": 4, + "last_update": "2025-06-02 21:30:04", + "author_account_age_days": 4668 + }, + "https://github.com/wildminder/ComfyUI-Chatterbox": { + "stars": 43, + "last_update": "2025-08-21 19:21:22", + "author_account_age_days": 4668 + }, + "https://github.com/wildminder/ComfyUI-KEEP": { + "stars": 52, + "last_update": "2025-07-04 11:35:38", + "author_account_age_days": 4668 + }, + "https://github.com/wildminder/ComfyUI-VibeVoice": { + "stars": 160, + "last_update": "2025-09-01 18:42:45", + "author_account_age_days": 4668 + }, + "https://github.com/willchil/ComfyUI-Environment-Visualizer": { + "stars": 12, + "last_update": "2025-03-29 23:09:07", + "author_account_age_days": 3073 + }, + "https://github.com/willmiao/ComfyUI-Lora-Manager": { + "stars": 606, + "last_update": "2025-09-02 14:36:45", + "author_account_age_days": 3793 + }, + "https://github.com/windfancy/zsq_prompt": { + "stars": 0, + "last_update": "2024-12-15 14:58:52", + "author_account_age_days": 1972 + }, + "https://github.com/wings6407/ComfyUI_HBH-image_overlay": { + "stars": 1, + "last_update": "2025-05-12 02:52:38", + "author_account_age_days": 523 + }, + "https://github.com/wirytiox/ComfyUI-SelectStringFromListWithIndex": { + "stars": 1, + "last_update": "2025-02-16 09:09:34", + "author_account_age_days": 1659 + }, + "https://github.com/withmpx/mpx-comfyui-nodes": { + "stars": 2, + "last_update": "2025-04-16 22:08:20", + "author_account_age_days": 164 + }, + "https://github.com/without-ordinary/openoutpaint_comfyui_interface": { + "stars": 2, + "last_update": "2025-08-25 11:33:35", + "author_account_age_days": 3358 + }, + "https://github.com/wjl0313/ComfyUI_KimNodes": { + "stars": 41, + "last_update": "2025-06-28 09:15:03", + "author_account_age_days": 2306 + }, + "https://github.com/wmatson/easy-comfy-nodes": { + "stars": 18, + "last_update": "2025-04-17 16:26:02", + "author_account_age_days": 4553 + }, + "https://github.com/wmpmiles/comfyui-some-image-processing-stuff": { + "stars": 4, + "last_update": "2025-05-10 05:51:42", + "author_account_age_days": 3465 + }, + "https://github.com/woct0rdho/ComfyUI-RadialAttn": { + "stars": 55, + "last_update": "2025-08-27 03:03:36", + "author_account_age_days": 3234 + }, + "https://github.com/wolfden/ComfyUi_PromptStylers": { + "stars": 99, + "last_update": "2025-02-15 18:38:12", + "author_account_age_days": 6156 + }, + "https://github.com/wolfden/ComfyUi_String_Function_Tree": { + "stars": 10, + "last_update": "2024-05-22 18:29:16", + "author_account_age_days": 6156 + }, + "https://github.com/wootwootwootwoot/ComfyUI-RK-Sampler": { + "stars": 62, + "last_update": "2024-08-17 21:12:43", + "author_account_age_days": 2003 + }, + "https://github.com/wqjuser/ComfyUI-Chat-Image": { + "stars": 0, + "last_update": "2024-12-26 07:00:30", + "author_account_age_days": 3369 + }, + "https://github.com/wu12023/ComfyUI-Image-Evaluation": { + "stars": 9, + "last_update": "2024-12-06 06:51:15", + "author_account_age_days": 752 + }, + "https://github.com/wujm424606/ComfyUi-Ollama-YN": { + "stars": 84, + "last_update": "2024-09-17 13:20:02", + "author_account_age_days": 2698 + }, + "https://github.com/wutipong/ComfyUI-TextUtils": { + "stars": 1, + "last_update": "2025-07-21 14:00:53", + "author_account_age_days": 4620 + }, + "https://github.com/wwwins/ComfyUI-Simple-Aspect-Ratio": { + "stars": 1, + "last_update": "2024-05-22 22:22:25", + "author_account_age_days": 5485 + }, + "https://github.com/wywywywy/ComfyUI-pause": { + "stars": 22, + "last_update": "2025-05-05 21:37:34", + "author_account_age_days": 3364 + }, + "https://github.com/xLegende/ComfyUI-Prompt-Formatter": { + "stars": 2, + "last_update": "2025-06-10 19:29:54", + "author_account_age_days": 1867 + }, + "https://github.com/xXAdonesXx/NodeGPT": { + "stars": 351, + "last_update": "2024-06-20 11:41:30", + "author_account_age_days": 1914 + }, + "https://github.com/xfgexo/EXO-Custom-ComfyUI-Nodes": { + "stars": 4, + "last_update": "2024-12-24 14:07:18", + "author_account_age_days": 864 + }, + "https://github.com/xhiroga/ComfyUI-FramePackWrapper_PlusOne": { + "stars": 30, + "last_update": "2025-08-08 04:15:10", + "author_account_age_days": 3699 + }, + "https://github.com/xiaogui8dangjia/Comfyui-imagetoSTL": { + "stars": 2, + "last_update": "2025-06-06 04:08:30", + "author_account_age_days": 2103 + }, + "https://github.com/xiaowc-lib/comfyui-dynamic-params": { + "stars": 0, + "last_update": "2025-06-09 08:56:11", + "author_account_age_days": 3314 + }, + "https://github.com/xiaoxiaodesha/hd_node": { + "stars": 15, + "last_update": "2024-06-11 02:36:48", + "author_account_age_days": 3309 + }, + "https://github.com/xingBaGan/ComfyUI-connect-ui": { + "stars": 2, + "last_update": "2025-04-07 09:54:46", + "author_account_age_days": 2230 + }, + "https://github.com/xlinx/ComfyUI-decadetw-auto-messaging-realtime": { + "stars": 8, + "last_update": "2024-08-30 17:38:52", + "author_account_age_days": 4934 + }, + "https://github.com/xlinx/ComfyUI-decadetw-auto-prompt-llm": { + "stars": 25, + "last_update": "2025-02-01 18:36:52", + "author_account_age_days": 4934 + }, + "https://github.com/xlinx/ComfyUI-decadetw-spout-syphon-im-vj": { + "stars": 12, + "last_update": "2024-09-03 08:55:08", + "author_account_age_days": 4934 + }, + "https://github.com/xliry/ComfyUI_SendDiscord": { + "stars": 0, + "last_update": "2024-05-23 02:21:38", + "author_account_age_days": 1708 + }, + "https://github.com/xmarre/TorchCompileModel_LoRASafe": { + "stars": 7, + "last_update": "2025-06-06 18:40:09", + "author_account_age_days": 2190 + }, + "https://github.com/xobiomesh/ComfyUI_xObiomesh": { + "stars": 2, + "last_update": "2024-11-08 17:10:40", + "author_account_age_days": 2124 + }, + "https://github.com/xs315431/Comfyui_Get_promptId": { + "stars": 1, + "last_update": "2025-08-09 06:09:32", + "author_account_age_days": 1710 + }, + "https://github.com/xuhongming251/ComfyUI-GPEN": { + "stars": 4, + "last_update": "2025-04-16 21:37:02", + "author_account_age_days": 4541 + }, + "https://github.com/xuhongming251/ComfyUI-Jimeng": { + "stars": 3, + "last_update": "2025-06-11 09:39:59", + "author_account_age_days": 4541 + }, + "https://github.com/xuhongming251/ComfyUI-MuseTalkUtils": { + "stars": 21, + "last_update": "2025-04-16 21:36:46", + "author_account_age_days": 4541 + }, + "https://github.com/xuhongming251/ComfyUI_Camera": { + "stars": 4, + "last_update": "2025-05-05 18:30:40", + "author_account_age_days": 4541 + }, + "https://github.com/yamanacn/comfyui_kontext_Analyze": { + "stars": 8, + "last_update": "2025-07-06 08:40:36", + "author_account_age_days": 1755 + }, + "https://github.com/yanhuifair/comfyui-janus": { + "stars": 4, + "last_update": "2025-07-28 08:39:15", + "author_account_age_days": 3997 + }, + "https://github.com/yanlang0123/ComfyUI_Lam": { + "stars": 52, + "last_update": "2025-08-30 12:49:28", + "author_account_age_days": 3243 + }, + "https://github.com/yasser-baalla/comfyUI-SemanticImageFetch": { + "stars": 0, + "last_update": "2025-03-22 11:04:33", + "author_account_age_days": 1832 + }, + "https://github.com/ycchanau/ComfyUI_Preview_Magnifier": { + "stars": 2, + "last_update": "2024-07-31 13:59:12", + "author_account_age_days": 2552 + }, + "https://github.com/ycyy/ComfyUI-YCYY-LoraInfo": { + "stars": 6, + "last_update": "2024-09-30 02:33:25", + "author_account_age_days": 3860 + }, + "https://github.com/yffyhk/comfyui_auto_danbooru": { + "stars": 1, + "last_update": "2024-05-22 23:23:03", + "author_account_age_days": 4157 + }, + "https://github.com/yhayano-ponotech/ComfyUI-Fal-API-Flux": { + "stars": 57, + "last_update": "2025-01-16 08:47:22", + "author_account_age_days": 1005 + }, + "https://github.com/yhayano-ponotech/comfyui-save-image-local": { + "stars": 7, + "last_update": "2025-01-15 12:30:50", + "author_account_age_days": 1005 + }, + "https://github.com/yhayano-ponotech/comfyui-stability-ai-api": { + "stars": 0, + "last_update": "2025-02-19 00:38:33", + "author_account_age_days": 1005 + }, + "https://github.com/yichengup/ComfyUI-LinearTransition": { + "stars": 1, + "last_update": "2025-07-09 01:51:49", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/ComfyUI-YCNodes": { + "stars": 25, + "last_update": "2025-08-27 15:52:31", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/ComfyUI_SwiftCut": { + "stars": 0, + "last_update": "2025-09-02 15:01:09", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/ComfyUI_Yc_JanusPro": { + "stars": 7, + "last_update": "2025-01-29 22:26:38", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/Comfyui-Deepseek": { + "stars": 32, + "last_update": "2025-02-23 19:36:53", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/Comfyui-Ycanvas": { + "stars": 108, + "last_update": "2025-07-28 04:39:08", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/Comfyui_Flux_Style_Adjust": { + "stars": 302, + "last_update": "2025-02-19 05:08:27", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/Comfyui_Redux_Advanced": { + "stars": 104, + "last_update": "2025-04-10 18:36:47", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/comfyui-face-liquify": { + "stars": 2, + "last_update": "2025-05-08 17:59:05", + "author_account_age_days": 559 + }, + "https://github.com/yiwangsimple/ComfyUI_DW_Chat": { + "stars": 88, + "last_update": "2025-07-25 02:13:12", + "author_account_age_days": 987 + }, + "https://github.com/yiwangsimple/florence_dw": { + "stars": 49, + "last_update": "2025-02-13 01:52:15", + "author_account_age_days": 987 + }, + "https://github.com/yogurt7771/ComfyUI-YogurtNodes": { + "stars": 0, + "last_update": "2025-09-01 10:11:35", + "author_account_age_days": 3265 + }, + "https://github.com/yolain/ComfyUI-Easy-Use": { + "stars": 1869, + "last_update": "2025-09-02 11:25:03", + "author_account_age_days": 1775 + }, + "https://github.com/yolanother/ComfyUI-Save16bitPng": { + "stars": 3, + "last_update": "2024-12-23 01:50:04", + "author_account_age_days": 5298 + }, + "https://github.com/yolanother/DTAIComfyImageSubmit": { + "stars": 1, + "last_update": "2024-09-25 04:40:23", + "author_account_age_days": 5298 + }, + "https://github.com/yolanother/DTAIComfyLoaders": { + "stars": 1, + "last_update": "2024-11-18 09:35:46", + "author_account_age_days": 5298 + }, + "https://github.com/yolanother/DTAIComfyPromptAgent": { + "stars": 5, + "last_update": "2024-05-22 18:14:18", + "author_account_age_days": 5298 + }, + "https://github.com/yolanother/DTAIComfyQRCodes": { + "stars": 4, + "last_update": "2024-05-22 18:15:09", + "author_account_age_days": 5298 + }, + "https://github.com/yolanother/DTAIComfyVariables": { + "stars": 12, + "last_update": "2024-05-22 18:15:21", + "author_account_age_days": 5298 + }, + "https://github.com/yolanother/DTAIImageToTextNode": { + "stars": 20, + "last_update": "2024-05-22 18:14:31", + "author_account_age_days": 5298 + }, + "https://github.com/yondonfu/ComfyUI-Background-Edit": { + "stars": 22, + "last_update": "2024-12-31 23:15:33", + "author_account_age_days": 4310 + }, + "https://github.com/yondonfu/ComfyUI-Torch-Compile": { + "stars": 6, + "last_update": "2025-04-30 18:46:47", + "author_account_age_days": 4310 + }, + "https://github.com/yorkane/ComfyUI-KYNode": { + "stars": 9, + "last_update": "2025-09-02 12:28:03", + "author_account_age_days": 3824 + }, + "https://github.com/younyokel/comfyui_prompt_formatter": { + "stars": 3, + "last_update": "2025-05-16 16:33:11", + "author_account_age_days": 2230 + }, + "https://github.com/youyegit/tdxh_node_comfyui": { + "stars": 2, + "last_update": "2025-03-17 08:22:16", + "author_account_age_days": 864 + }, + "https://github.com/yuan199696/add_text_2_img": { + "stars": 8, + "last_update": "2025-03-27 14:40:27", + "author_account_age_days": 2878 + }, + "https://github.com/yuan199696/chinese_clip_encode": { + "stars": 9, + "last_update": "2025-03-27 14:39:40", + "author_account_age_days": 2878 + }, + "https://github.com/yushan777/ComfyUI-Y7-SBS-2Dto3D": { + "stars": 9, + "last_update": "2025-06-13 18:44:06", + "author_account_age_days": 953 + }, + "https://github.com/yushan777/ComfyUI-Y7Nodes": { + "stars": 3, + "last_update": "2025-06-14 19:55:01", + "author_account_age_days": 953 + }, + "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt": { + "stars": 110, + "last_update": "2025-07-08 11:06:06", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-Dwpose-Tensorrt": { + "stars": 41, + "last_update": "2025-05-03 19:32:24", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-FLOAT": { + "stars": 230, + "last_update": "2025-08-27 08:00:28", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-Facerestore-Tensorrt": { + "stars": 26, + "last_update": "2024-09-22 13:07:19", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-PiperTTS": { + "stars": 28, + "last_update": "2024-05-22 23:17:27", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-Pronodes": { + "stars": 4, + "last_update": "2025-01-05 10:06:31", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-Rife-Tensorrt": { + "stars": 26, + "last_update": "2024-10-04 10:23:26", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-Thera": { + "stars": 35, + "last_update": "2025-05-01 07:52:54", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt": { + "stars": 169, + "last_update": "2025-08-27 14:48:49", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-Video-Depth-Anything": { + "stars": 33, + "last_update": "2025-05-01 09:04:25", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-Vsgan": { + "stars": 3, + "last_update": "2024-05-22 23:17:02", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-Whisper": { + "stars": 128, + "last_update": "2025-08-27 06:08:11", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI-YoloNasPose-Tensorrt": { + "stars": 16, + "last_update": "2025-07-29 16:09:08", + "author_account_age_days": 2587 + }, + "https://github.com/yuvraj108c/ComfyUI_InvSR": { + "stars": 234, + "last_update": "2025-07-06 15:46:55", + "author_account_age_days": 2587 + }, + "https://github.com/yvann-ba/ComfyUI_Yvann-Nodes": { + "stars": 466, + "last_update": "2025-06-02 12:11:14", + "author_account_age_days": 1335 + }, + "https://github.com/za-wa-n-go/ComfyUI_Zwng_Nodes": { + "stars": 7, + "last_update": "2025-03-27 23:13:16", + "author_account_age_days": 1023 + }, + "https://github.com/zade23/Comfyui-Distill-Any-Depth": { + "stars": 5, + "last_update": "2025-07-20 04:47:00", + "author_account_age_days": 2230 + }, + "https://github.com/zade23/Comfyui-MoGe2": { + "stars": 3, + "last_update": "2025-07-30 02:39:17", + "author_account_age_days": 2230 + }, + "https://github.com/zaheenrahman/ComfyUI-ColorCorrection": { + "stars": 2, + "last_update": "2025-03-21 09:52:29", + "author_account_age_days": 2795 + }, + "https://github.com/zakantonio/AvatarGen-experience": { + "stars": 0, + "last_update": "2025-03-26 20:58:18", + "author_account_age_days": 4211 + }, + "https://github.com/zccrs/comfyui-dci": { + "stars": 1, + "last_update": "2025-06-13 07:35:50", + "author_account_age_days": 3695 + }, + "https://github.com/zcfrank1st/Comfyui-Toolbox": { + "stars": 6, + "last_update": "2024-05-22 22:08:07", + "author_account_age_days": 4850 + }, + "https://github.com/zcfrank1st/Comfyui-Yolov8": { + "stars": 26, + "last_update": "2024-06-14 07:08:40", + "author_account_age_days": 4850 + }, + "https://github.com/zcfrank1st/comfyui_visual_anagrams": { + "stars": 8, + "last_update": "2024-06-14 07:07:27", + "author_account_age_days": 4850 + }, + "https://github.com/zeeoale/PromptCreatorNode": { + "stars": 2, + "last_update": "2025-08-12 15:08:20", + "author_account_age_days": 2792 + }, + "https://github.com/zentrocdot/ComfyUI-RealESRGAN_Upscaler": { + "stars": 9, + "last_update": "2025-02-09 18:27:16", + "author_account_age_days": 645 + }, + "https://github.com/zentrocdot/ComfyUI-Simple_Image_To_Prompt": { + "stars": 3, + "last_update": "2025-02-20 06:30:19", + "author_account_age_days": 645 + }, + "https://github.com/zentrocdot/ComfyUI_Circle_Detection": { + "stars": 0, + "last_update": "2025-02-07 17:32:46", + "author_account_age_days": 645 + }, + "https://github.com/zer0TF/cute-comfy": { + "stars": 34, + "last_update": "2024-05-22 21:18:53", + "author_account_age_days": 3105 + }, + "https://github.com/zer0thgear/zer0-comfy-utils": { + "stars": 0, + "last_update": "2025-01-26 19:33:59", + "author_account_age_days": 552 + }, + "https://github.com/zeroxoxo/ComfyUI-Fast-Style-Transfer": { + "stars": 71, + "last_update": "2025-04-07 05:52:19", + "author_account_age_days": 2878 + }, + "https://github.com/zfkun/ComfyUI_zfkun": { + "stars": 21, + "last_update": "2025-08-01 02:29:55", + "author_account_age_days": 5298 + }, + "https://github.com/zhangp365/ComfyUI-utils-nodes": { + "stars": 93, + "last_update": "2025-08-26 09:27:11", + "author_account_age_days": 726 + }, + "https://github.com/zhangp365/ComfyUI_photomakerV2_native": { + "stars": 10, + "last_update": "2025-04-07 10:58:52", + "author_account_age_days": 726 + }, + "https://github.com/zhiselfly/ComfyUI-Alimama-ControlNet-compatible": { + "stars": 18, + "last_update": "2024-09-14 13:46:05", + "author_account_age_days": 3784 + }, + "https://github.com/zhongpei/ComfyUI-InstructIR": { + "stars": 74, + "last_update": "2024-05-22 23:19:43", + "author_account_age_days": 3894 + }, + "https://github.com/zhuanqianfish/ComfyUI-EasyNode": { + "stars": 68, + "last_update": "2024-06-14 07:10:18", + "author_account_age_days": 4670 + }, + "https://github.com/zhulu111/ComfyUI_Bxb": { + "stars": 1440, + "last_update": "2025-02-05 10:33:45", + "author_account_age_days": 474 + }, + "https://github.com/zichongc/ComfyUI-Attention-Distillation": { + "stars": 111, + "last_update": "2025-03-18 02:48:42", + "author_account_age_days": 932 + }, + "https://github.com/ziwang-com/comfyui-deepseek-r1": { + "stars": 63, + "last_update": "2025-02-02 14:24:35", + "author_account_age_days": 3811 + }, + "https://github.com/zl9739379/ComfyUI-ArkVideoGenerate": { + "stars": 0, + "last_update": "2025-07-30 04:27:29", + "author_account_age_days": 1016 + }, + "https://github.com/zmwv823/ComfyUI_Anytext": { + "stars": 88, + "last_update": "2025-05-28 01:02:37", + "author_account_age_days": 3704 + }, + "https://github.com/zohac/ComfyUI_ZC_DrawShape": { + "stars": 3, + "last_update": "2024-06-25 15:05:28", + "author_account_age_days": 3096 + }, + "https://github.com/zombieyang/sd-ppp": { + "stars": 1664, + "last_update": "2025-08-29 16:23:40", + "author_account_age_days": 4352 + }, + "https://github.com/zubenelakrab/ComfyUI-ASV-Nodes": { + "stars": 1, + "last_update": "2024-11-04 00:51:29", + "author_account_age_days": 5397 + }, + "https://github.com/zygion/comfyui-zygion-util-nodes": { + "stars": 0, + "last_update": "2025-04-26 05:11:35", + "author_account_age_days": 241 + }, + "https://github.com/zzubnik/TT_TextTools": { + "stars": 0, + "last_update": "2025-04-02 23:40:24", + "author_account_age_days": 3160 + }, + "https://github.com/zzw5516/ComfyUI-zw-tools": { + "stars": 2, + "last_update": "2025-04-16 08:24:48", + "author_account_age_days": 4577 } } \ No newline at end of file diff --git a/glob/README.md b/glob/README.md new file mode 100644 index 00000000..375b7fa7 --- /dev/null +++ b/glob/README.md @@ -0,0 +1,53 @@ +# ComfyUI-Manager: Core Backend (glob) + +This directory contains the Python backend modules that power ComfyUI-Manager, handling the core functionality of node management, downloading, security, and server operations. + +## Core Modules + +- **manager_core.py**: The central implementation of management functions, handling configuration, installation, updates, and node management. +- **manager_server.py**: Implements server functionality and API endpoints for the web interface to interact with the backend. +- **manager_downloader.py**: Handles downloading operations for models, extensions, and other resources. +- **manager_util.py**: Provides utility functions used throughout the system. + +## Specialized Modules + +- **cm_global.py**: Maintains global variables and state management across the system. +- **cnr_utils.py**: Helper utilities for interacting with the custom node registry (CNR). +- **git_utils.py**: Git-specific utilities for repository operations. +- **node_package.py**: Handles the packaging and installation of node extensions. +- **security_check.py**: Implements the multi-level security system for installation safety. +- **share_3rdparty.py**: Manages integration with third-party sharing platforms. + +## Architecture + +The backend follows a modular design pattern with clear separation of concerns: + +1. **Core Layer**: Manager modules provide the primary API and business logic +2. **Utility Layer**: Helper modules provide specialized functionality +3. **Integration Layer**: Modules that connect to external systems + +## Security Model + +The system implements a comprehensive security framework with multiple levels: + +- **Block**: Highest security - blocks most remote operations +- **High**: Allows only specific trusted operations +- **Middle**: Standard security for most users +- **Normal-**: More permissive for advanced users +- **Weak**: Lowest security for development environments + +## Implementation Details + +- The backend is designed to work seamlessly with ComfyUI +- Asynchronous task queuing is implemented for background operations +- The system supports multiple installation modes +- Error handling and risk assessment are integrated throughout the codebase + +## API Integration + +The backend exposes a REST API via `manager_server.py` that enables: +- Custom node management (install, update, disable, remove) +- Model downloading and organization +- System configuration +- Snapshot management +- Workflow component handling \ No newline at end of file diff --git a/glob/cm_global.py b/glob/cm_global.py index 4041bcb6..e5d2237c 100644 --- a/glob/cm_global.py +++ b/glob/cm_global.py @@ -110,3 +110,8 @@ def add_on_revision_detected(k, f): traceback.print_exc() else: variables['cm.on_revision_detected_handler'].append((k, f)) + + +error_dict = {} + +disable_front = False \ No newline at end of file diff --git a/glob/cnr_utils.py b/glob/cnr_utils.py new file mode 100644 index 00000000..95d260db --- /dev/null +++ b/glob/cnr_utils.py @@ -0,0 +1,253 @@ +import asyncio +import json +import os +import platform +import time +from dataclasses import dataclass +from typing import List + +import manager_core +import manager_util +import requests +import toml + +base_url = "https://api.comfy.org" + + +lock = asyncio.Lock() + +is_cache_loading = False + +async def get_cnr_data(cache_mode=True, dont_wait=True): + try: + return await _get_cnr_data(cache_mode, dont_wait) + except asyncio.TimeoutError: + print("A timeout occurred during the fetch process from ComfyRegistry.") + return await _get_cnr_data(cache_mode=True, dont_wait=True) # timeout fallback + +async def _get_cnr_data(cache_mode=True, dont_wait=True): + global is_cache_loading + + uri = f'{base_url}/nodes' + + async def fetch_all(): + remained = True + page = 1 + + full_nodes = {} + + + # Determine form factor based on environment and platform + is_desktop = bool(os.environ.get('__COMFYUI_DESKTOP_VERSION__')) + system = platform.system().lower() + is_windows = system == 'windows' + is_mac = system == 'darwin' + is_linux = system == 'linux' + + # Get ComfyUI version tag + if is_desktop: + # extract version from pyproject.toml instead of git tag + comfyui_ver = manager_core.get_current_comfyui_ver() or 'unknown' + else: + comfyui_ver = manager_core.get_comfyui_tag() or 'unknown' + + if is_desktop: + if is_windows: + form_factor = 'desktop-win' + elif is_mac: + form_factor = 'desktop-mac' + else: + form_factor = 'other' + else: + if is_windows: + form_factor = 'git-windows' + elif is_mac: + form_factor = 'git-mac' + elif is_linux: + form_factor = 'git-linux' + else: + form_factor = 'other' + + while remained: + # Add comfyui_version and form_factor to the API request + sub_uri = f'{base_url}/nodes?page={page}&limit=30&comfyui_version={comfyui_ver}&form_factor={form_factor}' + sub_json_obj = await asyncio.wait_for(manager_util.get_data_with_cache(sub_uri, cache_mode=False, silent=True, dont_cache=True), timeout=30) + remained = page < sub_json_obj['totalPages'] + + for x in sub_json_obj['nodes']: + full_nodes[x['id']] = x + + if page % 5 == 0: + print(f"FETCH ComfyRegistry Data: {page}/{sub_json_obj['totalPages']}") + + page += 1 + time.sleep(0.5) + + print("FETCH ComfyRegistry Data [DONE]") + + for v in full_nodes.values(): + if 'latest_version' not in v: + v['latest_version'] = dict(version='nightly') + + return {'nodes': list(full_nodes.values())} + + if cache_mode: + is_cache_loading = True + cache_state = manager_util.get_cache_state(uri) + + if dont_wait: + if cache_state == 'not-cached': + return {} + else: + print("[ComfyUI-Manager] The ComfyRegistry cache update is still in progress, so an outdated cache is being used.") + with open(manager_util.get_cache_path(uri), 'r', encoding="UTF-8", errors="ignore") as json_file: + return json.load(json_file)['nodes'] + + if cache_state == 'cached': + with open(manager_util.get_cache_path(uri), 'r', encoding="UTF-8", errors="ignore") as json_file: + return json.load(json_file)['nodes'] + + try: + json_obj = await fetch_all() + manager_util.save_to_cache(uri, json_obj) + return json_obj['nodes'] + except: + res = {} + print("Cannot connect to comfyregistry.") + finally: + if cache_mode: + is_cache_loading = False + + return res + + +@dataclass +class NodeVersion: + changelog: str + dependencies: List[str] + deprecated: bool + id: str + version: str + download_url: str + + +def map_node_version(api_node_version): + """ + Maps node version data from API response to NodeVersion dataclass. + + Args: + api_data (dict): The 'node_version' part of the API response. + + Returns: + NodeVersion: An instance of NodeVersion dataclass populated with data from the API. + """ + return NodeVersion( + changelog=api_node_version.get( + "changelog", "" + ), # Provide a default value if 'changelog' is missing + dependencies=api_node_version.get( + "dependencies", [] + ), # Provide a default empty list if 'dependencies' is missing + deprecated=api_node_version.get( + "deprecated", False + ), # Assume False if 'deprecated' is not specified + id=api_node_version[ + "id" + ], # 'id' should be mandatory; raise KeyError if missing + version=api_node_version[ + "version" + ], # 'version' should be mandatory; raise KeyError if missing + download_url=api_node_version.get( + "downloadUrl", "" + ), # Provide a default value if 'downloadUrl' is missing + ) + + +def install_node(node_id, version=None): + """ + Retrieves the node version for installation. + + Args: + node_id (str): The unique identifier of the node. + version (str, optional): Specific version of the node to retrieve. If omitted, the latest version is returned. + + Returns: + NodeVersion: Node version data or error message. + """ + if version is None: + url = f"{base_url}/nodes/{node_id}/install" + else: + url = f"{base_url}/nodes/{node_id}/install?version={version}" + + response = requests.get(url, verify=not manager_util.bypass_ssl) + if response.status_code == 200: + # Convert the API response to a NodeVersion object + return map_node_version(response.json()) + else: + return None + + +def all_versions_of_node(node_id): + url = f"{base_url}/nodes/{node_id}/versions?statuses=NodeVersionStatusActive&statuses=NodeVersionStatusPending" + + response = requests.get(url, verify=not manager_util.bypass_ssl) + if response.status_code == 200: + return response.json() + else: + return None + + +def read_cnr_info(fullpath): + try: + toml_path = os.path.join(fullpath, 'pyproject.toml') + tracking_path = os.path.join(fullpath, '.tracking') + + if not os.path.exists(toml_path) or not os.path.exists(tracking_path): + return None # not valid CNR node pack + + with open(toml_path, "r", encoding="utf-8") as f: + data = toml.load(f) + + project = data.get('project', {}) + name = project.get('name').strip().lower() + + # normalize version + # for example: 2.5 -> 2.5.0 + version = str(manager_util.StrictVersion(project.get('version'))) + + urls = project.get('urls', {}) + repository = urls.get('Repository') + + if name and version: # repository is optional + return { + "id": name, + "version": version, + "url": repository + } + + return None + except Exception: + return None # not valid CNR node pack + + +def generate_cnr_id(fullpath, cnr_id): + cnr_id_path = os.path.join(fullpath, '.git', '.cnr-id') + try: + if not os.path.exists(cnr_id_path): + with open(cnr_id_path, "w") as f: + return f.write(cnr_id) + except: + print(f"[ComfyUI Manager] unable to create file: {cnr_id_path}") + + +def read_cnr_id(fullpath): + cnr_id_path = os.path.join(fullpath, '.git', '.cnr-id') + try: + if os.path.exists(cnr_id_path): + with open(cnr_id_path) as f: + return f.read().strip() + except: + pass + + return None + diff --git a/glob/git_utils.py b/glob/git_utils.py new file mode 100644 index 00000000..1fe36cd2 --- /dev/null +++ b/glob/git_utils.py @@ -0,0 +1,87 @@ +import os +import configparser + + +GITHUB_ENDPOINT = os.getenv('GITHUB_ENDPOINT') + + +def is_git_repo(path: str) -> bool: + """ Check if the path is a git repository. """ + # NOTE: Checking it through `git.Repo` must be avoided. + # It locks the file, causing issues on Windows. + return os.path.exists(os.path.join(path, '.git')) + + +def get_commit_hash(fullpath): + git_head = os.path.join(fullpath, '.git', 'HEAD') + if os.path.exists(git_head): + with open(git_head) as f: + line = f.readline() + + if line.startswith("ref: "): + ref = os.path.join(fullpath, '.git', line[5:].strip()) + if os.path.exists(ref): + with open(ref) as f2: + return f2.readline().strip() + else: + return "unknown" + else: + return line + + return "unknown" + + +def git_url(fullpath): + """ + resolve version of unclassified custom node based on remote url in .git/config + """ + git_config_path = os.path.join(fullpath, '.git', 'config') + + if not os.path.exists(git_config_path): + return None + + # Set `strict=False` to allow duplicate `vscode-merge-base` sections, addressing + config = configparser.ConfigParser(strict=False) + config.read(git_config_path) + + for k, v in config.items(): + if k.startswith('remote ') and 'url' in v: + if 'Comfy-Org/ComfyUI-Manager' in v['url']: + return "https://github.com/ltdrdata/ComfyUI-Manager" + return v['url'] + + return None + + +def normalize_url(url) -> str: + github_id = normalize_to_github_id(url) + if github_id is not None: + url = f"https://github.com/{github_id}" + + return url + + +def normalize_to_github_id(url) -> str: + if 'github' in url or (GITHUB_ENDPOINT is not None and GITHUB_ENDPOINT in url): + author = os.path.basename(os.path.dirname(url)) + + if author.startswith('git@github.com:'): + author = author.split(':')[1] + + repo_name = os.path.basename(url) + if repo_name.endswith('.git'): + repo_name = repo_name[:-4] + + return f"{author}/{repo_name}" + + return None + + +def get_url_for_clone(url): + url = normalize_url(url) + + if GITHUB_ENDPOINT is not None and url.startswith('https://github.com/'): + url = GITHUB_ENDPOINT + url[18:] # url[18:] -> remove `https://github.com` + + return url + \ No newline at end of file diff --git a/glob/manager_core.py b/glob/manager_core.py index ec446f71..6e184107 100644 --- a/glob/manager_core.py +++ b/glob/manager_core.py @@ -1,3 +1,10 @@ +""" +description: + `manager_core` contains the core implementation of the management functions in ComfyUI-Manager. +""" + +import json +import logging import os import sys import subprocess @@ -6,32 +13,239 @@ import shutil import configparser import platform from datetime import datetime + import git from git.remote import RemoteProgress from urllib.parse import urlparse from tqdm.auto import tqdm -import aiohttp -import threading -import json import time +import yaml +import zipfile +import traceback +from concurrent.futures import ThreadPoolExecutor, as_completed +import toml + +orig_print = print + +from rich import print +from packaging import version + +import uuid glob_path = os.path.join(os.path.dirname(__file__)) # ComfyUI-Manager/glob sys.path.append(glob_path) import cm_global -from manager_util import * +import cnr_utils +import manager_util +import git_utils +import manager_downloader +from node_package import InstalledNodePackage + + +version_code = [3, 36] +version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '') + + +DEFAULT_CHANNEL = "https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main" + + +default_custom_nodes_path = None + + +class InvalidChannel(Exception): + def __init__(self, channel): + self.channel = channel + super().__init__(channel) + +def get_default_custom_nodes_path(): + global default_custom_nodes_path + if default_custom_nodes_path is None: + try: + import folder_paths + default_custom_nodes_path = folder_paths.get_folder_paths("custom_nodes")[0] + except: + default_custom_nodes_path = os.path.abspath(os.path.join(manager_util.comfyui_manager_path, '..')) + + return default_custom_nodes_path + + +def get_custom_nodes_paths(): + try: + import folder_paths + return folder_paths.get_folder_paths("custom_nodes") + except: + custom_nodes_path = os.path.abspath(os.path.join(manager_util.comfyui_manager_path, '..')) + return [custom_nodes_path] + + +def get_comfyui_tag(): + try: + repo = git.Repo(comfy_path) + return repo.git.describe('--tags') + except: + return None + + +def get_current_comfyui_ver(): + """ + Extract version from pyproject.toml + """ + toml_path = os.path.join(comfy_path, 'pyproject.toml') + if not os.path.exists(toml_path): + return None + else: + try: + with open(toml_path, "r", encoding="utf-8") as f: + data = toml.load(f) + + project = data.get('project', {}) + return project.get('version') + except: + return None + + +def get_script_env(): + new_env = os.environ.copy() + git_exe = get_config().get('git_exe') + if git_exe is not None: + new_env['GIT_EXE_PATH'] = git_exe + + if 'COMFYUI_PATH' not in new_env: + new_env['COMFYUI_PATH'] = comfy_path + + if 'COMFYUI_FOLDERS_BASE_PATH' not in new_env: + new_env['COMFYUI_FOLDERS_BASE_PATH'] = comfy_path + + return new_env + + +invalid_nodes = {} + + +def extract_base_custom_nodes_dir(x:str): + if os.path.dirname(x).endswith('.disabled'): + return os.path.dirname(os.path.dirname(x)) + elif x.endswith('.disabled'): + return os.path.dirname(x) + else: + return os.path.dirname(x) + + +def check_invalid_nodes(): + global invalid_nodes + + try: + import folder_paths + except: + try: + sys.path.append(comfy_path) + import folder_paths + except: + raise Exception(f"Invalid COMFYUI_FOLDERS_BASE_PATH: {comfy_path}") + + def check(root): + global invalid_nodes + + subdirs = [d for d in os.listdir(root) if os.path.isdir(os.path.join(root, d))] + for subdir in subdirs: + if subdir in ['.disabled', '__pycache__']: + continue + + package = unified_manager.installed_node_packages.get(subdir) + if not package: + continue + + if not package.isValid(): + invalid_nodes[subdir] = package.fullpath + + node_paths = folder_paths.get_folder_paths("custom_nodes") + for x in node_paths: + check(x) + + disabled_dir = os.path.join(x, '.disabled') + if os.path.exists(disabled_dir): + check(disabled_dir) + + if len(invalid_nodes): + print("\n-------------------- ComfyUI-Manager invalid nodes notice ----------------") + print("\nNodes requiring reinstallation have been detected:\n(Directly delete the corresponding path and reinstall.)\n") + + for x in invalid_nodes.values(): + print(x) + + print("\n---------------------------------------------------------------------------\n") + + +# read env vars +comfy_path: str = os.environ.get('COMFYUI_PATH') +comfy_base_path = os.environ.get('COMFYUI_FOLDERS_BASE_PATH') + +if comfy_path is None: + try: + import folder_paths + comfy_path = os.path.join(os.path.dirname(folder_paths.__file__)) + except: + comfy_path = os.path.abspath(os.path.join(manager_util.comfyui_manager_path, '..', '..')) + +if comfy_base_path is None: + comfy_base_path = comfy_path + + +channel_list_template_path = os.path.join(manager_util.comfyui_manager_path, 'channels.list.template') +git_script_path = os.path.join(manager_util.comfyui_manager_path, "git_helper.py") + +manager_files_path = None +manager_config_path = None +manager_channel_list_path = None +manager_startup_script_path:str = None +manager_snapshot_path = None +manager_pip_overrides_path = None +manager_pip_blacklist_path = None +manager_components_path = None + +def update_user_directory(user_dir): + global manager_files_path + global manager_config_path + global manager_channel_list_path + global manager_startup_script_path + global manager_snapshot_path + global manager_pip_overrides_path + global manager_pip_blacklist_path + global manager_components_path + + manager_files_path = os.path.abspath(os.path.join(user_dir, 'default', 'ComfyUI-Manager')) + if not os.path.exists(manager_files_path): + os.makedirs(manager_files_path) + + manager_snapshot_path = os.path.join(manager_files_path, "snapshots") + if not os.path.exists(manager_snapshot_path): + os.makedirs(manager_snapshot_path) + + manager_startup_script_path = os.path.join(manager_files_path, "startup-scripts") + if not os.path.exists(manager_startup_script_path): + os.makedirs(manager_startup_script_path) + + manager_config_path = os.path.join(manager_files_path, 'config.ini') + manager_channel_list_path = os.path.join(manager_files_path, 'channels.list') + manager_pip_overrides_path = os.path.join(manager_files_path, "pip_overrides.json") + manager_pip_blacklist_path = os.path.join(manager_files_path, "pip_blacklist.list") + manager_components_path = os.path.join(manager_files_path, "components") + manager_util.cache_dir = os.path.join(manager_files_path, "cache") + + if not os.path.exists(manager_util.cache_dir): + os.makedirs(manager_util.cache_dir) + +try: + import folder_paths + update_user_directory(folder_paths.get_user_directory()) + +except Exception: + # fallback: + # This case is only possible when running with cm-cli, and in practice, this case is not actually used. + update_user_directory(os.path.abspath(manager_util.comfyui_manager_path)) -version = [2, 21, 2] -version_str = f"V{version[0]}.{version[1]}" + (f'.{version[2]}' if len(version) > 2 else '') -comfyui_manager_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) -custom_nodes_path = os.path.abspath(os.path.join(comfyui_manager_path, '..')) -comfy_path = os.path.abspath(os.path.join(custom_nodes_path, '..')) -channel_list_path = os.path.join(comfyui_manager_path, 'channels.list') -config_path = os.path.join(comfyui_manager_path, "config.ini") -startup_script_path = os.path.join(comfyui_manager_path, "startup-scripts") -git_script_path = os.path.join(comfyui_manager_path, "git_helper.py") -cache_dir = os.path.join(comfyui_manager_path, '.cache') cached_config = None js_path = None @@ -41,13 +255,9 @@ comfy_ui_required_commit_datetime = datetime(2024, 1, 24, 0, 0, 0) comfy_ui_revision = "Unknown" comfy_ui_commit_datetime = datetime(1900, 1, 1, 0, 0, 0) - -cache_lock = threading.Lock() - - channel_dict = None +valid_channels = {'default', 'local'} channel_list = None -pip_map = None def remap_pip_package(pkg): @@ -59,52 +269,27 @@ def remap_pip_package(pkg): return pkg -def get_installed_packages(): - global pip_map - - if pip_map is None: - try: - result = subprocess.check_output([sys.executable, '-m', 'pip', 'list'], universal_newlines=True) - - pip_map = {} - for line in result.split('\n'): - x = line.strip() - if x: - y = line.split() - if y[0] == 'Package' or y[0].startswith('-'): - continue - - pip_map[y[0]] = y[1] - except subprocess.CalledProcessError as e: - print(f"[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.") - return set() - - return pip_map - - -def clear_pip_cache(): - global pip_map - pip_map = None - - def is_blacklisted(name): name = name.strip() - pattern = r'([^<>!=]+)([<>!=]=?)(.*)' + pattern = r'([^<>!~=]+)([<>!~=]=?)([^ ]*)' match = re.search(pattern, name) if match: name = match.group(1) + if name in cm_global.pip_blacklist: + return True + if name in cm_global.pip_downgrade_blacklist: - pips = get_installed_packages() + pips = manager_util.get_installed_packages() if match is None: if name in pips: return True - elif match.group(2) in ['<=', '==', '<']: + elif match.group(2) in ['<=', '==', '<', '~=']: if name in pips: - if StrictVersion(pips[name]) >= StrictVersion(match.group(3)): + if manager_util.StrictVersion(pips[name]) >= manager_util.StrictVersion(match.group(3)): return True return False @@ -116,42 +301,1346 @@ def is_installed(name): if name.startswith('#'): return True - pattern = r'([^<>!=]+)([<>!=]=?)(.*)' + pattern = r'([^<>!~=]+)([<>!~=]=?)([0-9.a-zA-Z]*)' match = re.search(pattern, name) if match: name = match.group(1) + if name in cm_global.pip_blacklist: + return True + if name in cm_global.pip_downgrade_blacklist: - pips = get_installed_packages() + pips = manager_util.get_installed_packages() if match is None: if name in pips: return True - elif match.group(2) in ['<=', '==', '<']: + elif match.group(2) in ['<=', '==', '<', '~=']: if name in pips: - if StrictVersion(pips[name]) >= StrictVersion(match.group(3)): + if manager_util.StrictVersion(pips[name]) >= manager_util.StrictVersion(match.group(3)): print(f"[ComfyUI-Manager] skip black listed pip installation: '{name}'") return True - return name.lower() in get_installed_packages() + pkg = manager_util.get_installed_packages().get(name.lower()) + if pkg is None: + return False # update if not installed + if match is None: + return True # don't update if version is not specified + + if match.group(2) in ['>', '>=']: + if manager_util.StrictVersion(pkg) < manager_util.StrictVersion(match.group(3)): + return False + elif manager_util.StrictVersion(pkg) > manager_util.StrictVersion(match.group(3)): + print(f"[SKIP] Downgrading pip package isn't allowed: {name.lower()} (cur={pkg})") + + if match.group(2) == '==': + if manager_util.StrictVersion(pkg) < manager_util.StrictVersion(match.group(3)): + return False + + if match.group(2) == '~=': + if manager_util.StrictVersion(pkg) == manager_util.StrictVersion(match.group(3)): + return False + + return name.lower() in manager_util.get_installed_packages() + + +def normalize_channel(channel): + if channel == 'local': + return channel + elif channel is None: + return None + elif channel.startswith('https://'): + return channel + elif channel.startswith('http://') and get_config()['http_channel_enabled'] == True: + return channel + + tmp_dict = get_channel_dict() + channel_url = tmp_dict.get(channel) + if channel_url: + return channel_url + + raise InvalidChannel(channel) + + +class ManagedResult: + def __init__(self, action): + self.action = action + self.items = [] + self.result = True + self.to_path = None + self.msg = None + self.target = None + self.postinstall = lambda: True + self.ver = None + + def append(self, item): + self.items.append(item) + + def fail(self, msg): + self.result = False + self.msg = msg + return self + + def with_target(self, target): + self.target = target + return self + + def with_msg(self, msg): + self.msg = msg + return self + + def with_postinstall(self, postinstall): + self.postinstall = postinstall + return self + + def with_ver(self, ver): + self.ver = ver + return self + + +class NormalizedKeyDict: + def __init__(self): + self._store = {} + self._key_map = {} + + def _normalize_key(self, key): + if isinstance(key, str): + return key.strip().lower() + return key + + def __setitem__(self, key, value): + norm_key = self._normalize_key(key) + self._key_map[norm_key] = key + self._store[key] = value + + def __getitem__(self, key): + norm_key = self._normalize_key(key) + original_key = self._key_map[norm_key] + return self._store[original_key] + + def __delitem__(self, key): + norm_key = self._normalize_key(key) + original_key = self._key_map.pop(norm_key) + del self._store[original_key] + + def __contains__(self, key): + return self._normalize_key(key) in self._key_map + + def get(self, key, default=None): + return self[key] if key in self else default + + def setdefault(self, key, default=None): + if key in self: + return self[key] + self[key] = default + return default + + def pop(self, key, default=None): + if key in self: + val = self[key] + del self[key] + return val + if default is not None: + return default + raise KeyError(key) + + def keys(self): + return self._store.keys() + + def values(self): + return self._store.values() + + def items(self): + return self._store.items() + + def __iter__(self): + return iter(self._store) + + def __len__(self): + return len(self._store) + + def __repr__(self): + return repr(self._store) + + def to_dict(self): + return dict(self._store) + + +class UnifiedManager: + def __init__(self): + self.installed_node_packages: dict[str, InstalledNodePackage] = {} + + self.cnr_inactive_nodes = NormalizedKeyDict() # node_id -> node_version -> fullpath + self.nightly_inactive_nodes = NormalizedKeyDict() # node_id -> fullpath + self.unknown_inactive_nodes = {} # node_id -> repo url * fullpath + self.active_nodes = NormalizedKeyDict() # node_id -> node_version * fullpath + self.unknown_active_nodes = {} # node_id -> repo url * fullpath + self.cnr_map = NormalizedKeyDict() # node_id -> cnr info + self.repo_cnr_map = {} # repo_url -> cnr info + self.custom_node_map_cache = {} # (channel, mode) -> augmented custom node list json + self.processed_install = set() + + def get_module_name(self, x): + info = self.active_nodes.get(x) + if info is None: + for url, fullpath in self.unknown_active_nodes.values(): + if url == x: + return os.path.basename(fullpath) + else: + return os.path.basename(info[1]) + + return None + + def get_cnr_by_repo(self, url): + return self.repo_cnr_map.get(git_utils.normalize_url(url)) + + def resolve_unspecified_version(self, node_name, guess_mode=None): + if guess_mode == 'active': + # priority: + # 1. CNR/nightly active nodes + # 2. unknown + # 3. Fail + + if node_name in self.cnr_map: + version_spec = self.get_from_cnr_active_nodes(node_name) + + if version_spec is None: + if node_name in self.unknown_active_nodes: + version_spec = "unknown" + else: + return None + + elif node_name in self.unknown_active_nodes: + version_spec = "unknown" + else: + return None + + elif guess_mode == 'inactive': + # priority: + # 1. CNR latest in inactive + # 2. nightly + # 3. unknown + # 4. Fail + + if node_name in self.cnr_map: + latest = self.get_from_cnr_inactive_nodes(node_name) + + if latest is not None: + version_spec = str(latest[0]) + else: + if node_name in self.nightly_inactive_nodes: + version_spec = "nightly" + else: + version_spec = "unknown" + + elif node_name in self.unknown_inactive_nodes: + version_spec = "unknown" + else: + return None + + else: + # priority: + # 1. CNR latest in world + # 2. unknown + + if node_name in self.cnr_map: + version_spec = self.cnr_map[node_name]['latest_version']['version'] + else: + version_spec = "unknown" + + return version_spec + + def resolve_node_spec(self, node_name, guess_mode=None): + """ + resolve to 'node_name, version_spec' from version string + + version string: + node_name@latest + node_name@nightly + node_name@unknown + node_name@ + node_name + + if guess_mode is 'active' or 'inactive' + return can be 'None' based on state check + otherwise + return 'unknown' version when failed to guess + """ + + spec = node_name.split('@') + + if len(spec) == 2: + node_name = spec[0] + version_spec = spec[1] + + if version_spec == 'latest': + if node_name not in self.cnr_map: + print(f"ERROR: '{node_name}' is not a CNR node.") + return None + else: + version_spec = self.cnr_map[node_name]['latest_version']['version'] + + elif guess_mode in ['active', 'inactive']: + node_name = spec[0] + version_spec = self.resolve_unspecified_version(node_name, guess_mode=guess_mode) + if version_spec is None: + return None + else: + node_name = spec[0] + version_spec = self.resolve_unspecified_version(node_name) + if version_spec is None: + return None + + return node_name, version_spec, len(spec) > 1 + + def resolve_from_path(self, fullpath): + url = git_utils.git_url(fullpath) + if url: + url = git_utils.normalize_url(url) + + cnr = self.get_cnr_by_repo(url) + commit_hash = git_utils.get_commit_hash(fullpath) + if cnr: + cnr_utils.generate_cnr_id(fullpath, cnr['id']) + return {'id': cnr['id'], 'cnr': cnr, 'ver': 'nightly', 'hash': commit_hash} + else: + url = os.path.basename(url) + if url.endswith('.git'): + url = url[:-4] + return {'id': url, 'ver': 'unknown', 'hash': commit_hash} + else: + info = cnr_utils.read_cnr_info(fullpath) + + if info: + cnr = self.cnr_map.get(info['id']) + if cnr: + # normalize version + # for example: 2.5 -> 2.5.0 + ver = str(manager_util.StrictVersion(info['version'])) + return {'id': cnr['id'], 'cnr': cnr, 'ver': ver} + else: + return None + else: + return None + + def update_cache_at_path(self, fullpath): + node_package = InstalledNodePackage.from_fullpath(fullpath, self.resolve_from_path) + self.installed_node_packages[node_package.id] = node_package + + if node_package.is_disabled and node_package.is_unknown: + url = git_utils.git_url(node_package.fullpath) + if url is not None: + url = git_utils.normalize_url(url) + self.unknown_inactive_nodes[node_package.id] = (url, node_package.fullpath) + + if node_package.is_disabled and node_package.is_nightly: + self.nightly_inactive_nodes[node_package.id] = node_package.fullpath + + if node_package.is_enabled and not node_package.is_unknown: + self.active_nodes[node_package.id] = node_package.version, node_package.fullpath + + if node_package.is_enabled and node_package.is_unknown: + url = git_utils.git_url(node_package.fullpath) + if url is not None: + url = git_utils.normalize_url(url) + self.unknown_active_nodes[node_package.id] = (url, node_package.fullpath) + + if node_package.is_from_cnr and node_package.is_disabled: + self.add_to_cnr_inactive_nodes(node_package.id, node_package.version, node_package.fullpath) + + def is_updatable(self, node_id): + cur_ver = self.get_cnr_active_version(node_id) + latest_ver = self.cnr_map[node_id]['latest_version']['version'] + + if cur_ver and latest_ver: + return self.safe_version(latest_ver) > self.safe_version(cur_ver) + + return False + + def fetch_or_pull_git_repo(self, is_pull=False): + updated = set() + failed = set() + + def check_update(node_name, fullpath, ver_spec): + try: + if is_pull: + is_updated, success = git_repo_update_check_with(fullpath, do_update=True) + else: + is_updated, success = git_repo_update_check_with(fullpath, do_fetch=True) + + return f"{node_name}@{ver_spec}", is_updated, success + except Exception: + traceback.print_exc() + + return f"{node_name}@{ver_spec}", False, False + + with ThreadPoolExecutor() as executor: + futures = [] + + for k, v in self.unknown_active_nodes.items(): + futures.append(executor.submit(check_update, k, v[1], 'unknown')) + + for k, v in self.active_nodes.items(): + if v[0] == 'nightly': + futures.append(executor.submit(check_update, k, v[1], 'nightly')) + + for future in as_completed(futures): + item, is_updated, success = future.result() + + if is_updated: + updated.add(item) + + if not success: + failed.add(item) + + return dict(updated=list(updated), failed=list(failed)) + + def is_enabled(self, node_id, version_spec=None): + """ + 1. true if node_id@ is enabled + 2. true if node_id@ is enabled and version_spec==None + 3. false otherwise + + remark: latest version_spec is not allowed. Must be resolved before call. + """ + if version_spec == "cnr": + return self.get_cnr_active_version(node_id) not in [None, 'nightly'] + elif version_spec == 'unknown' and self.is_unknown_active(node_id): + return True + elif version_spec is not None and self.get_cnr_active_version(node_id) == version_spec: + return True + elif version_spec is None and (node_id in self.active_nodes or node_id in self.unknown_active_nodes): + return True + return False + + def is_disabled(self, node_id, version_spec=None): + """ + 1. node_id@unknown is disabled if version_spec is @unknown + 2. node_id@nightly is disabled if version_spec is @nightly + 4. node_id@ is disabled if version_spec is not None + 5. not exists (active node_id) if version_spec is None + + remark: latest version_spec is not allowed. Must be resolved before call. + """ + if version_spec == "unknown": + return node_id in self.unknown_inactive_nodes + elif version_spec == "nightly": + return node_id in self.nightly_inactive_nodes + elif version_spec == "cnr": + res = self.cnr_inactive_nodes.get(node_id, None) + if res is None: + return False + + res = [x for x in res.keys() if x != 'nightly'] + return len(res) > 0 + elif version_spec is not None: + return version_spec in self.cnr_inactive_nodes.get(node_id, []) + + if node_id in self.nightly_inactive_nodes: + return True + elif node_id in self.unknown_inactive_nodes: + return True + + target = self.cnr_inactive_nodes.get(node_id, None) + if target is not None and target == version_spec: + return True + + return False + + def is_registered_in_cnr(self, node_id): + return node_id in self.cnr_map + + def get_cnr_active_version(self, node_id): + res = self.active_nodes.get(node_id) + if res: + return res[0] + else: + return None + + def is_unknown_active(self, node_id): + return node_id in self.unknown_active_nodes + + def add_to_cnr_inactive_nodes(self, node_id, ver, fullpath): + ver_map = self.cnr_inactive_nodes.get(node_id) + if ver_map is None: + ver_map = {} + self.cnr_inactive_nodes[node_id] = ver_map + + ver_map[ver] = fullpath + + def get_from_cnr_active_nodes(self, node_id): + ver_path = self.active_nodes.get(node_id) + if ver_path is None: + return None + + return ver_path[0] + + def get_from_cnr_inactive_nodes(self, node_id, ver=None): + ver_map = self.cnr_inactive_nodes.get(node_id) + if ver_map is None: + return None + + if ver is not None: + return ver_map.get(ver) + + latest = None + for k, v in ver_map.items(): + if latest is None: + latest = self.safe_version(k), v + continue + + cur_ver = self.safe_version(k) + if cur_ver > latest[0]: + latest = cur_ver, v + + return latest + + async def reload(self, cache_mode, dont_wait=True): + self.custom_node_map_cache = {} + self.cnr_inactive_nodes = {} # node_id -> node_version -> fullpath + self.nightly_inactive_nodes = {} # node_id -> fullpath + self.unknown_inactive_nodes = {} # node_id -> repo url * fullpath + self.unknown_active_nodes = {} # node_id -> repo url * fullpath + self.active_nodes = {} # node_id -> node_version * fullpath + + if get_config()['network_mode'] != 'public': + dont_wait = True + + # reload 'cnr_map' and 'repo_cnr_map' + cnrs = await cnr_utils.get_cnr_data(cache_mode=cache_mode=='cache', dont_wait=dont_wait) + + for x in cnrs: + self.cnr_map[x['id']] = x + if 'repository' in x: + normalized_url = git_utils.normalize_url(x['repository']) + self.repo_cnr_map[normalized_url] = x + + # reload node status info from custom_nodes/* + for custom_nodes_path in folder_paths.get_folder_paths('custom_nodes'): + for x in os.listdir(custom_nodes_path): + fullpath = os.path.join(custom_nodes_path, x) + if os.path.isdir(fullpath): + if x not in ['__pycache__', '.disabled']: + self.update_cache_at_path(fullpath) + + # reload node status info from custom_nodes/.disabled/* + for custom_nodes_path in folder_paths.get_folder_paths('custom_nodes'): + disabled_dir = os.path.join(custom_nodes_path, '.disabled') + if os.path.exists(disabled_dir): + for x in os.listdir(disabled_dir): + fullpath = os.path.join(disabled_dir, x) + if os.path.isdir(fullpath): + self.update_cache_at_path(fullpath) + + @staticmethod + async def load_nightly(channel, mode): + if channel is None: + return {} + + res = {} + + channel_url = normalize_channel(channel) + if channel_url: + if mode not in ['remote', 'local', 'cache']: + print(f"[bold red]ERROR: Invalid mode is specified `--mode {mode}`[/bold red]", file=sys.stderr) + return {} + + # validate channel - only the channel set by the user is allowed. + if channel_url not in valid_channels: + logging.error(f'[ComfyUI-Manager] An invalid channel was used: {channel_url}') + raise InvalidChannel(channel_url) + + json_obj = await get_data_by_mode(mode, 'custom-node-list.json', channel_url=channel_url) + for x in json_obj['custom_nodes']: + try: + for y in x['files']: + if 'github.com' in y and not (y.endswith('.py') or y.endswith('.js')): + repo_name = y.split('/')[-1] + res[repo_name] = (x, False) + + if 'id' in x: + if x['id'] not in res: + res[x['id']] = (x, True) + except: + logging.error(f"[ComfyUI-Manager] broken item:{x}") + + return res + + async def get_custom_nodes(self, channel, mode): + if channel is None and mode is None: + channel = 'default' + mode = 'cache' + + channel = normalize_channel(channel) + cache = self.custom_node_map_cache.get((channel, mode)) # CNR/nightly should always be based on the default channel. + + if cache is not None: + return cache + + channel = normalize_channel(channel) + nodes = await self.load_nightly(channel, mode) + + res = NormalizedKeyDict() + added_cnr = set() + for v in nodes.values(): + v = v[0] + if len(v['files']) == 1: + cnr = self.get_cnr_by_repo(v['files'][0]) + if cnr: + if 'latest_version' not in cnr: + v['cnr_latest'] = '0.0.0' + else: + v['cnr_latest'] = cnr['latest_version']['version'] + v['id'] = cnr['id'] + v['author'] = cnr['publisher']['name'] + v['title'] = cnr['name'] + v['description'] = cnr['description'] + v['health'] = '-' + if 'repository' in cnr: + v['repository'] = cnr['repository'] + added_cnr.add(cnr['id']) + node_id = v['id'] + else: + node_id = v['files'][0].split('/')[-1] + v['repository'] = v['files'][0] + res[node_id] = v + elif len(v['files']) > 1: + res[v['files'][0]] = v # A custom node composed of multiple url is treated as a single repository with one representative path + + self.custom_node_map_cache[(channel, mode)] = res + return res + + @staticmethod + def safe_version(ver_str): + try: + return version.parse(ver_str) + except: + return version.parse("0.0.0") + + def execute_install_script(self, url, repo_path, instant_execution=False, lazy_mode=False, no_deps=False): + install_script_path = os.path.join(repo_path, "install.py") + requirements_path = os.path.join(repo_path, "requirements.txt") + + res = True + if lazy_mode: + install_cmd = ["#LAZY-INSTALL-SCRIPT", sys.executable] + return try_install_script(url, repo_path, install_cmd) + else: + if os.path.exists(requirements_path) and not no_deps: + print("Install: pip packages") + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, manager_files_path) + lines = manager_util.robust_readlines(requirements_path) + for line in lines: + package_name = remap_pip_package(line.strip()) + if package_name and not package_name.startswith('#') and package_name not in self.processed_install: + self.processed_install.add(package_name) + clean_package_name = package_name.split('#')[0].strip() + install_cmd = manager_util.make_pip_cmd(["install", clean_package_name]) + if clean_package_name != "" and not clean_package_name.startswith('#'): + res = res and try_install_script(url, repo_path, install_cmd, instant_execution=instant_execution) + + pip_fixer.fix_broken() + + if os.path.exists(install_script_path) and install_script_path not in self.processed_install: + self.processed_install.add(install_script_path) + print("Install: install script") + install_cmd = [sys.executable, "install.py"] + return res and try_install_script(url, repo_path, install_cmd, instant_execution=instant_execution) + + return res + + def reserve_cnr_switch(self, target, zip_url, from_path, to_path, no_deps): + script_path = os.path.join(manager_startup_script_path, "install-scripts.txt") + with open(script_path, "a") as file: + obj = [target, "#LAZY-CNR-SWITCH-SCRIPT", zip_url, from_path, to_path, no_deps, get_default_custom_nodes_path(), sys.executable] + file.write(f"{obj}\n") + + print(f"Installation reserved: {target}") + + return True + + def unified_fix(self, node_id, version_spec, instant_execution=False, no_deps=False): + """ + fix dependencies + """ + + result = ManagedResult('fix') + + if version_spec == 'unknown': + info = self.unknown_active_nodes.get(node_id) + else: + info = self.active_nodes.get(node_id) + + if info is None or not os.path.exists(info[1]): + return result.fail(f'not found: {node_id}@{version_spec}') + + self.execute_install_script(node_id, info[1], instant_execution=instant_execution, no_deps=no_deps) + + return result + + def cnr_switch_version(self, node_id, version_spec=None, instant_execution=False, no_deps=False, return_postinstall=False): + if instant_execution: + return self.cnr_switch_version_instant(node_id, version_spec, instant_execution, no_deps, return_postinstall) + else: + return self.cnr_switch_version_lazy(node_id, version_spec, no_deps, return_postinstall) + + def cnr_switch_version_lazy(self, node_id, version_spec=None, no_deps=False, return_postinstall=False): + """ + switch between cnr version (lazy mode) + """ + + result = ManagedResult('switch-cnr') + + node_info = cnr_utils.install_node(node_id, version_spec) + if node_info is None or not node_info.download_url: + return result.fail(f'not available node: {node_id}@{version_spec}') + + version_spec = node_info.version + + if self.active_nodes[node_id][0] == version_spec: + return ManagedResult('skip').with_msg("Up to date") + + zip_url = node_info.download_url + from_path = self.active_nodes[node_id][1] + target = node_id + to_path = os.path.join(get_default_custom_nodes_path(), target) + + def postinstall(): + return self.reserve_cnr_switch(target, zip_url, from_path, to_path, no_deps) + + if return_postinstall: + return result.with_postinstall(postinstall) + else: + if not postinstall(): + return result.fail(f"Failed to execute install script: {node_id}@{version_spec}") + + return result + + def cnr_switch_version_instant(self, node_id, version_spec=None, instant_execution=True, no_deps=False, return_postinstall=False): + """ + switch between cnr version + """ + + # 1. download + result = ManagedResult('switch-cnr') + + node_info = cnr_utils.install_node(node_id, version_spec) + if node_info is None or not node_info.download_url: + return result.fail(f'not available node: {node_id}@{version_spec}') + + version_spec = node_info.version + + if self.active_nodes[node_id][0] == version_spec: + return ManagedResult('skip').with_msg("Up to date") + + archive_name = f"CNR_temp_{str(uuid.uuid4())}.zip" # should be unpredictable name - security precaution + download_path = os.path.join(get_default_custom_nodes_path(), archive_name) + manager_downloader.basic_download_url(node_info.download_url, get_default_custom_nodes_path(), archive_name) + + # 2. extract files into + install_path = self.active_nodes[node_id][1] + extracted = manager_util.extract_package_as_zip(download_path, install_path) + os.remove(download_path) + + if extracted is None: + if len(os.listdir(install_path)) == 0: + shutil.rmtree(install_path) + + return result.fail(f'Empty archive file: {node_id}@{version_spec}') + + # 3. calculate garbage files (.tracking - extracted) + tracking_info_file = os.path.join(install_path, '.tracking') + prev_files = set() + with open(tracking_info_file, 'r') as f: + for line in f: + prev_files.add(line.strip()) + garbage = prev_files.difference(extracted) + garbage = [os.path.join(install_path, x) for x in garbage] + + # 4-1. remove garbage files + for x in garbage: + if os.path.isfile(x): + os.remove(x) + + # 4-2. remove garbage dir if empty + for x in garbage: + if os.path.isdir(x): + if not os.listdir(x): + os.rmdir(x) + + # 5. create .tracking file + tracking_info_file = os.path.join(install_path, '.tracking') + with open(tracking_info_file, "w", encoding='utf-8') as file: + file.write('\n'.join(list(extracted))) + + # 6. post install + result.target = version_spec + + def postinstall(): + res = self.execute_install_script(f"{node_id}@{version_spec}", install_path, instant_execution=instant_execution, no_deps=no_deps) + return res + + if return_postinstall: + return result.with_postinstall(postinstall) + else: + if not postinstall(): + return result.fail(f"Failed to execute install script: {node_id}@{version_spec}") + + return result + + def unified_enable(self, node_id: str, version_spec=None): + """ + priority if version_spec == None + 1. CNR latest in disk + 2. nightly + 3. unknown + + remark: latest version_spec is not allowed. Must be resolved before call. + """ + + result = ManagedResult('enable') + + if 'comfyui-manager' in node_id.lower(): + return result.fail(f"ignored: enabling '{node_id}'") + + if version_spec is None: + version_spec = self.resolve_unspecified_version(node_id, guess_mode='inactive') + if version is None: + return result.fail(f'Specified inactive node not exists: {node_id}') + + if self.is_enabled(node_id, version_spec): + return ManagedResult('skip').with_msg('Already enabled') + + if not self.is_disabled(node_id, version_spec): + return ManagedResult('skip').with_msg('Not installed') + + from_path = None + to_path = None + + if version_spec == 'unknown': + repo_and_path = self.unknown_inactive_nodes.get(node_id) + if repo_and_path is None: + return result.fail(f'Specified inactive node not exists: {node_id}@unknown') + from_path = repo_and_path[1] + + base_path = extract_base_custom_nodes_dir(from_path) + to_path = os.path.join(base_path, node_id) + elif version_spec == 'nightly': + self.unified_disable(node_id, False) + from_path = self.nightly_inactive_nodes.get(node_id) + if from_path is None: + return result.fail(f'Specified inactive node not exists: {node_id}@nightly') + base_path = extract_base_custom_nodes_dir(from_path) + to_path = os.path.join(base_path, node_id) + elif version_spec is not None: + self.unified_disable(node_id, False) + cnr_info = self.cnr_inactive_nodes.get(node_id) + + if cnr_info is None or len(cnr_info) == 0: + return result.fail(f'Specified inactive cnr node not exists: {node_id}') + + if version_spec == "cnr": + version_spec = next(iter(cnr_info)) + + if version_spec not in cnr_info: + return result.fail(f'Specified inactive node not exists: {node_id}@{version_spec}') + + from_path = cnr_info[version_spec] + base_path = extract_base_custom_nodes_dir(from_path) + to_path = os.path.join(base_path, node_id) + + if from_path is None or not os.path.exists(from_path): + return result.fail(f'Specified inactive node path not exists: {from_path}') + + # move from disk + shutil.move(from_path, to_path) + + # update cache + if version_spec == 'unknown': + self.unknown_active_nodes[node_id] = self.unknown_inactive_nodes[node_id][0], to_path + del self.unknown_inactive_nodes[node_id] + return result.with_target(to_path) + elif version_spec == 'nightly': + del self.nightly_inactive_nodes[node_id] + else: + del self.cnr_inactive_nodes[node_id][version_spec] + + self.active_nodes[node_id] = version_spec, to_path + return result.with_target(to_path) + + def unified_disable(self, node_id: str, is_unknown): + result = ManagedResult('disable') + + if 'comfyui-manager' in node_id.lower(): + return result.fail(f"ignored: disabling '{node_id}'") + + if is_unknown: + version_spec = 'unknown' + else: + version_spec = None + + if not self.is_enabled(node_id, version_spec): + if not self.is_disabled(node_id, version_spec): + return ManagedResult('skip').with_msg('Not installed') + else: + return ManagedResult('skip').with_msg('Already disabled') + + if is_unknown: + repo_and_path = self.unknown_active_nodes.get(node_id) + + if repo_and_path is None or not os.path.exists(repo_and_path[1]): + return result.fail(f'Specified active node not exists: {node_id}') + + base_path = extract_base_custom_nodes_dir(repo_and_path[1]) + to_path = os.path.join(base_path, '.disabled', node_id) + + shutil.move(repo_and_path[1], to_path) + result.append((repo_and_path[1], to_path)) + + self.unknown_inactive_nodes[node_id] = repo_and_path[0], to_path + del self.unknown_active_nodes[node_id] + + return result + + ver_and_path = self.active_nodes.get(node_id) + + if ver_and_path is None or not os.path.exists(ver_and_path[1]): + return result.fail(f'Specified active node not exists: {node_id}') + + base_path = extract_base_custom_nodes_dir(ver_and_path[1]) + + # NOTE: A disabled node may have multiple versions, so preserve it using the `@ suffix`. + to_path = os.path.join(base_path, '.disabled', f"{node_id}@{ver_and_path[0].replace('.', '_')}") + shutil.move(ver_and_path[1], to_path) + result.append((ver_and_path[1], to_path)) + + if ver_and_path[0] == 'nightly': + self.nightly_inactive_nodes[node_id] = to_path + else: + self.add_to_cnr_inactive_nodes(node_id, ver_and_path[0], to_path) + + del self.active_nodes[node_id] + + return result + + def unified_uninstall(self, node_id: str, is_unknown: bool): + """ + Remove whole installed custom nodes including inactive nodes + """ + result = ManagedResult('uninstall') + + if 'comfyui-manager' in node_id.lower(): + return result.fail(f"ignored: uninstalling '{node_id}'") + + if is_unknown: + # remove from actives + repo_and_path = self.unknown_active_nodes.get(node_id) + + is_removed = False + + if repo_and_path is not None and os.path.exists(repo_and_path[1]): + rmtree(repo_and_path[1]) + result.append(repo_and_path[1]) + del self.unknown_active_nodes[node_id] + + is_removed = True + + # remove from inactives + repo_and_path = self.unknown_inactive_nodes.get(node_id) + + if repo_and_path is not None and os.path.exists(repo_and_path[1]): + rmtree(repo_and_path[1]) + result.append(repo_and_path[1]) + del self.unknown_inactive_nodes[node_id] + + is_removed = True + + if is_removed: + return result + else: + return ManagedResult('skip') + + # remove from actives + ver_and_path = self.active_nodes.get(node_id) + + if ver_and_path is not None and os.path.exists(ver_and_path[1]): + try_rmtree(node_id, ver_and_path[1]) + result.items.append(ver_and_path) + del self.active_nodes[node_id] + + # remove from nightly inactives + fullpath = self.nightly_inactive_nodes.get(node_id) + if fullpath is not None and os.path.exists(fullpath): + try_rmtree(node_id, fullpath) + result.items.append(('nightly', fullpath)) + del self.nightly_inactive_nodes[node_id] + + # remove from cnr inactives + ver_map = self.cnr_inactive_nodes.get(node_id) + if ver_map is not None: + for key, fullpath in ver_map.items(): + try_rmtree(node_id, fullpath) + result.items.append((key, fullpath)) + del self.cnr_inactive_nodes[node_id] + + if len(result.items) == 0: + return ManagedResult('skip').with_msg('Not installed') + + return result + + def cnr_install(self, node_id: str, version_spec=None, instant_execution=False, no_deps=False, return_postinstall=False): + result = ManagedResult('install-cnr') + + if 'comfyui-manager' in node_id.lower(): + return result.fail(f"ignored: installing '{node_id}'") + + node_info = cnr_utils.install_node(node_id, version_spec) + if node_info is None or not node_info.download_url: + return result.fail(f'not available node: {node_id}@{version_spec}') + + archive_name = f"CNR_temp_{str(uuid.uuid4())}.zip" # should be unpredictable name - security precaution + download_path = os.path.join(get_default_custom_nodes_path(), archive_name) + + # re-download. I cannot trust existing file. + if os.path.exists(download_path): + os.remove(download_path) + + # install_path + install_path = os.path.join(get_default_custom_nodes_path(), node_id) + if os.path.exists(install_path): + return result.fail(f'Install path already exists: {install_path}') + + manager_downloader.download_url(node_info.download_url, get_default_custom_nodes_path(), archive_name) + os.makedirs(install_path, exist_ok=True) + extracted = manager_util.extract_package_as_zip(download_path, install_path) + os.remove(download_path) + result.to_path = install_path + + if extracted is None: + shutil.rmtree(install_path) + return result.fail(f'Empty archive file: {node_id}@{version_spec}') + + # create .tracking file + tracking_info_file = os.path.join(install_path, '.tracking') + with open(tracking_info_file, "w", encoding='utf-8') as file: + file.write('\n'.join(extracted)) + + result.target = version_spec + + def postinstall(): + return self.execute_install_script(node_id, install_path, instant_execution=instant_execution, no_deps=no_deps) + + if return_postinstall: + return result.with_postinstall(postinstall) + else: + if not postinstall(): + return result.fail(f"Failed to execute install script: {node_id}@{version_spec}") + + return result + + def repo_install(self, url: str, repo_path: str, instant_execution=False, no_deps=False, return_postinstall=False): + result = ManagedResult('install-git') + result.append(url) + + if 'comfyui-manager' in url.lower(): + return result.fail(f"ignored: installing '{url}'") + + if not is_valid_url(url): + return result.fail(f"Invalid git url: {url}") + + if url.endswith("/"): + url = url[:-1] + try: + # Clone the repository from the remote URL + clone_url = git_utils.get_url_for_clone(url) + print(f"Download: git clone '{clone_url}'") + + if not instant_execution and platform.system() == 'Windows': + res = manager_funcs.run_script([sys.executable, git_script_path, "--clone", get_default_custom_nodes_path(), clone_url, repo_path], cwd=get_default_custom_nodes_path()) + if res != 0: + return result.fail(f"Failed to clone repo: {clone_url}") + else: + repo = git.Repo.clone_from(clone_url, repo_path, recursive=True, progress=GitProgress()) + repo.git.clear_cache() + repo.close() + + def postinstall(): + return self.execute_install_script(url, repo_path, instant_execution=instant_execution, no_deps=no_deps) + + if return_postinstall: + return result.with_postinstall(postinstall) + else: + if not postinstall(): + return result.fail(f"Failed to execute install script: {url}") + + except Exception as e: + traceback.print_exc() + return result.fail(f"Install(git-clone) error[2]: {url} / {e}") + + print("Installation was successful.") + return result + + def repo_update(self, repo_path, instant_execution=False, no_deps=False, return_postinstall=False): + result = ManagedResult('update-git') + + if not os.path.exists(os.path.join(repo_path, '.git')): + return result.fail(f'Path not found: {repo_path}') + + # version check + with git.Repo(repo_path) as repo: + if repo.head.is_detached: + if not switch_to_default_branch(repo): + return result.fail(f"Failed to switch to default branch: {repo_path}") + + current_branch = repo.active_branch + branch_name = current_branch.name + + if current_branch.tracking_branch() is None: + print(f"[ComfyUI-Manager] There is no tracking branch ({current_branch})") + remote_name = get_remote_name(repo) + else: + remote_name = current_branch.tracking_branch().remote_name + + if remote_name is None: + return result.fail(f"Failed to get remote when installing: {repo_path}") + + remote = repo.remote(name=remote_name) + + try: + remote.fetch() + except Exception as e: + if 'detected dubious' in str(e): + print(f"[ComfyUI-Manager] Try fixing 'dubious repository' error on '{repo_path}' repository") + safedir_path = repo_path.replace('\\', '/') + subprocess.run(['git', 'config', '--global', '--add', 'safe.directory', safedir_path]) + try: + remote.fetch() + except Exception: + print("\n[ComfyUI-Manager] Failed to fixing repository setup. Please execute this command on cmd: \n" + "-----------------------------------------------------------------------------------------\n" + f'git config --global --add safe.directory "{safedir_path}"\n' + "-----------------------------------------------------------------------------------------\n") + + commit_hash = repo.head.commit.hexsha + if f'{remote_name}/{branch_name}' in repo.refs: + remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + else: + return result.fail(f"Not updatable branch: {branch_name}") + + if commit_hash != remote_commit_hash: + git_pull(repo_path) + + if len(repo.remotes) > 0: + url = repo.remotes[0].url + else: + url = "unknown repo" + + def postinstall(): + return self.execute_install_script(url, repo_path, instant_execution=instant_execution, no_deps=no_deps) + + if return_postinstall: + return result.with_postinstall(postinstall) + else: + if not postinstall(): + return result.fail(f"Failed to execute install script: {url}") + + return result + else: + return ManagedResult('skip').with_msg('Up to date') + + def unified_update(self, node_id, version_spec=None, instant_execution=False, no_deps=False, return_postinstall=False): + orig_print(f"\x1b[2K\rUpdating: {node_id}", end='') + + if version_spec is None: + version_spec = self.resolve_unspecified_version(node_id, guess_mode='active') + + if version_spec is None: + return ManagedResult('update').fail(f'Update not available: {node_id}@{version_spec}').with_ver(version_spec) + + if version_spec == 'nightly': + return self.repo_update(self.active_nodes[node_id][1], instant_execution=instant_execution, no_deps=no_deps, return_postinstall=return_postinstall).with_target('nightly').with_ver('nightly') + elif version_spec == 'unknown': + return self.repo_update(self.unknown_active_nodes[node_id][1], instant_execution=instant_execution, no_deps=no_deps, return_postinstall=return_postinstall).with_target('unknown').with_ver('unknown') + else: + return self.cnr_switch_version(node_id, instant_execution=instant_execution, no_deps=no_deps, return_postinstall=return_postinstall).with_ver('cnr') + + async def install_by_id(self, node_id: str, version_spec=None, channel=None, mode=None, instant_execution=False, no_deps=False, return_postinstall=False): + """ + priority if version_spec == None + 1. CNR latest + 2. unknown + + remark: latest version_spec is not allowed. Must be resolved before call. + """ + + if 'comfyui-manager' in node_id.lower(): + return ManagedResult('skip').fail(f"ignored: installing '{node_id}'") + + repo_url = None + if version_spec is None: + if self.is_enabled(node_id): + return ManagedResult('skip') + elif self.is_disabled(node_id): + return self.unified_enable(node_id) + else: + version_spec = self.resolve_unspecified_version(node_id) + + if version_spec == 'unknown' or version_spec == 'nightly': + try: + custom_nodes = await self.get_custom_nodes(channel, mode) + except InvalidChannel as e: + return ManagedResult('fail').fail(f'Invalid channel is used: {e.channel}') + + the_node = custom_nodes.get(node_id) + if the_node is not None: + if version_spec == 'unknown': + repo_url = the_node['files'][0] + else: # nightly + repo_url = the_node['repository'] + else: + result = ManagedResult('install') + return result.fail(f"Node '{node_id}@{version_spec}' not found in [{channel}, {mode}]") + + if self.is_enabled(node_id, version_spec): + return ManagedResult('skip').with_target(f"{node_id}@{version_spec}") + + elif self.is_disabled(node_id, version_spec): + return self.unified_enable(node_id, version_spec) + + elif version_spec == 'unknown' or version_spec == 'nightly': + if version_spec == 'nightly': + # disable cnr nodes + if self.is_enabled(node_id, 'cnr'): + self.unified_disable(node_id, False) + + to_path = os.path.abspath(os.path.join(get_default_custom_nodes_path(), node_id)) + res = self.repo_install(repo_url, to_path, instant_execution=instant_execution, no_deps=no_deps, return_postinstall=return_postinstall) + if res.result: + if version_spec == 'unknown': + self.unknown_active_nodes[node_id] = repo_url, to_path + elif version_spec == 'nightly': + cnr_utils.generate_cnr_id(to_path, node_id) + self.active_nodes[node_id] = 'nightly', to_path + else: + return res + + return res.with_target(version_spec) + + if self.is_enabled(node_id, 'nightly'): + # disable nightly nodes + self.unified_disable(node_id, False) # NOTE: don't return from here + + if self.is_disabled(node_id, version_spec): + # enable and return if specified version is disabled + return self.unified_enable(node_id, version_spec) + + if self.is_disabled(node_id, "cnr"): + # enable and switch version if cnr is disabled (not specified version) + self.unified_enable(node_id, "cnr") + return self.cnr_switch_version(node_id, version_spec, no_deps=no_deps, return_postinstall=return_postinstall) + + if self.is_enabled(node_id, "cnr"): + return self.cnr_switch_version(node_id, version_spec, no_deps=no_deps, return_postinstall=return_postinstall) + + res = self.cnr_install(node_id, version_spec, instant_execution=instant_execution, no_deps=no_deps, return_postinstall=return_postinstall) + if res.result: + self.active_nodes[node_id] = version_spec, res.to_path + + return res + + +unified_manager = UnifiedManager() + + +def identify_node_pack_from_path(fullpath): + module_name = os.path.basename(fullpath) + if module_name.endswith('.git'): + module_name = module_name[:-4] + + repo_url = git_utils.git_url(fullpath) + if repo_url is None: + # cnr + cnr = cnr_utils.read_cnr_info(fullpath) + if cnr is not None: + return module_name, cnr['version'], cnr['id'], None + + return None + else: + # nightly or unknown + cnr_id = cnr_utils.read_cnr_id(fullpath) + commit_hash = git_utils.get_commit_hash(fullpath) + + github_id = git_utils.normalize_to_github_id(repo_url) + if github_id is None: + try: + github_id = os.path.basename(repo_url) + except: + logging.warning(f"[ComfyUI-Manager] unexpected repo url: {repo_url}") + github_id = module_name + + if cnr_id is not None: + return module_name, commit_hash, cnr_id, github_id + else: + return module_name, commit_hash, '', github_id + + +def get_installed_node_packs(): + res = {} + + for x in get_custom_nodes_paths(): + for y in os.listdir(x): + if y == '__pycache__' or y == '.disabled': + continue + + fullpath = os.path.join(x, y) + info = identify_node_pack_from_path(fullpath) + if info is None: + continue + + is_disabled = not y.endswith('.disabled') + + res[info[0]] = { 'ver': info[1], 'cnr_id': info[2], 'aux_id': info[3], 'enabled': is_disabled } + + disabled_dirs = os.path.join(x, '.disabled') + if os.path.exists(disabled_dirs): + for y in os.listdir(disabled_dirs): + if y == '__pycache__': + continue + + fullpath = os.path.join(disabled_dirs, y) + info = identify_node_pack_from_path(fullpath) + if info is None: + continue + + res[info[0]] = { 'ver': info[1], 'cnr_id': info[2], 'aux_id': info[3], 'enabled': False } + + return res + + +def refresh_channel_dict(): + if channel_dict is None: + get_channel_dict() + def get_channel_dict(): global channel_dict + global valid_channels if channel_dict is None: channel_dict = {} - if not os.path.exists(channel_list_path): - shutil.copy(channel_list_path+'.template', channel_list_path) + if not os.path.exists(manager_channel_list_path): + shutil.copy(channel_list_template_path, manager_channel_list_path) - with open(os.path.join(comfyui_manager_path, 'channels.list'), 'r') as file: + with open(manager_channel_list_path, 'r') as file: channels = file.read() for x in channels.split('\n'): channel_info = x.split("::") if len(channel_info) == 2: channel_dict[channel_info[0]] = channel_info[1] + valid_channels.add(channel_info[1]) return channel_dict @@ -179,8 +1668,7 @@ class ManagerFuncs: print(f"[ComfyUI-Manager] Unexpected behavior: `{cmd}`") return 0 - out = subprocess.check_call(cmd, cwd=cwd) - print(out) + subprocess.check_call(cmd, cwd=cwd, env=get_script_env()) return 0 @@ -189,63 +1677,93 @@ manager_funcs = ManagerFuncs() def write_config(): - config = configparser.ConfigParser() + config = configparser.ConfigParser(strict=False) + config['default'] = { 'preview_method': manager_funcs.get_current_preview_method(), - 'badge_mode': get_config()['badge_mode'], - 'git_exe': get_config()['git_exe'], + 'git_exe': get_config()['git_exe'], + 'use_uv': get_config()['use_uv'], 'channel_url': get_config()['channel_url'], 'share_option': get_config()['share_option'], 'bypass_ssl': get_config()['bypass_ssl'], "file_logging": get_config()['file_logging'], - 'default_ui': get_config()['default_ui'], 'component_policy': get_config()['component_policy'], - 'double_click_policy': get_config()['double_click_policy'], + 'update_policy': get_config()['update_policy'], 'windows_selector_event_loop_policy': get_config()['windows_selector_event_loop_policy'], 'model_download_by_agent': get_config()['model_download_by_agent'], - 'downgrade_blacklist': get_config()['downgrade_blacklist'] + 'downgrade_blacklist': get_config()['downgrade_blacklist'], + 'security_level': get_config()['security_level'], + 'always_lazy_install': get_config()['always_lazy_install'], + 'network_mode': get_config()['network_mode'], + 'db_mode': get_config()['db_mode'], } - with open(config_path, 'w') as configfile: + + directory = os.path.dirname(manager_config_path) + if not os.path.exists(directory): + os.makedirs(directory) + + with open(manager_config_path, 'w') as configfile: config.write(configfile) def read_config(): try: - config = configparser.ConfigParser() - config.read(config_path) + config = configparser.ConfigParser(strict=False) + config.read(manager_config_path) default_conf = config['default'] + def get_bool(key, default_value): + return default_conf[key].lower() == 'true' if key in default_conf else False + + manager_util.use_uv = default_conf['use_uv'].lower() == 'true' if 'use_uv' in default_conf else False + manager_util.bypass_ssl = get_bool('bypass_ssl', False) + return { - 'preview_method': default_conf['preview_method'] if 'preview_method' in default_conf else manager_funcs.get_current_preview_method(), - 'badge_mode': default_conf['badge_mode'] if 'badge_mode' in default_conf else 'none', - 'git_exe': default_conf['git_exe'] if 'git_exe' in default_conf else '', - 'channel_url': default_conf['channel_url'] if 'channel_url' in default_conf else 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main', - 'share_option': default_conf['share_option'] if 'share_option' in default_conf else 'all', - 'bypass_ssl': default_conf['bypass_ssl'] if 'bypass_ssl' in default_conf else False, - 'file_logging': default_conf['file_logging'] if 'file_logging' in default_conf else True, - 'default_ui': default_conf['default_ui'] if 'default_ui' in default_conf else 'none', - 'component_policy': default_conf['component_policy'] if 'component_policy' in default_conf else 'workflow', - 'double_click_policy': default_conf['double_click_policy'] if 'double_click_policy' in default_conf else 'copy-all', - 'windows_selector_event_loop_policy': default_conf['windows_selector_event_loop_policy'] if 'windows_selector_event_loop_policy' in default_conf else False, - 'model_download_by_agent': default_conf['model_download_by_agent'] if 'model_download_by_agent' in default_conf else False, - 'downgrade_blacklist': default_conf['downgrade_blacklist'] if 'downgrade_blacklist' in default_conf else '', + 'http_channel_enabled': get_bool('http_channel_enabled', False), + 'preview_method': default_conf.get('preview_method', manager_funcs.get_current_preview_method()).lower(), + 'git_exe': default_conf.get('git_exe', ''), + 'use_uv': get_bool('use_uv', False), + 'channel_url': default_conf.get('channel_url', DEFAULT_CHANNEL), + 'default_cache_as_channel_url': get_bool('default_cache_as_channel_url', False), + 'share_option': default_conf.get('share_option', 'all').lower(), + 'bypass_ssl': get_bool('bypass_ssl', False), + 'file_logging': get_bool('file_logging', True), + 'component_policy': default_conf.get('component_policy', 'workflow').lower(), + 'update_policy': default_conf.get('update_policy', 'stable-comfyui').lower(), + 'windows_selector_event_loop_policy': get_bool('windows_selector_event_loop_policy', False), + 'model_download_by_agent': get_bool('model_download_by_agent', False), + 'downgrade_blacklist': default_conf.get('downgrade_blacklist', '').lower(), + 'always_lazy_install': get_bool('always_lazy_install', False), + 'network_mode': default_conf.get('network_mode', 'public').lower(), + 'security_level': default_conf.get('security_level', 'normal').lower(), + 'db_mode': default_conf.get('db_mode', 'cache').lower(), } except Exception: + import importlib.util + # temporary disable `uv` on Windows by default (https://github.com/Comfy-Org/ComfyUI-Manager/issues/1969) + manager_util.use_uv = importlib.util.find_spec("uv") is not None and platform.system() != "Windows" + manager_util.bypass_ssl = False + return { + 'http_channel_enabled': False, 'preview_method': manager_funcs.get_current_preview_method(), - 'badge_mode': 'none', 'git_exe': '', - 'channel_url': 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main', + 'use_uv': manager_util.use_uv, + 'channel_url': DEFAULT_CHANNEL, + 'default_cache_as_channel_url': False, 'share_option': 'all', - 'bypass_ssl': False, + 'bypass_ssl': manager_util.bypass_ssl, 'file_logging': True, - 'default_ui': 'none', 'component_policy': 'workflow', - 'double_click_policy': 'copy-all', + 'update_policy': 'stable-comfyui', 'windows_selector_event_loop_policy': False, 'model_download_by_agent': False, - 'downgrade_blacklist': '' + 'downgrade_blacklist': '', + 'always_lazy_install': False, + 'network_mode': 'public', # public | private | offline + 'security_level': 'normal', # strong | normal | normal- | weak + 'db_mode': 'cache', # local | cache | remote } @@ -254,44 +1772,111 @@ def get_config(): if cached_config is None: cached_config = read_config() + if cached_config['http_channel_enabled']: + print("[ComfyUI-Manager] Warning: http channel enabled, make sure server in secure env") return cached_config +def get_remote_name(repo): + available_remotes = [remote.name for remote in repo.remotes] + if 'origin' in available_remotes: + return 'origin' + elif 'upstream' in available_remotes: + return 'upstream' + elif len(available_remotes) > 0: + return available_remotes[0] + + if not available_remotes: + print(f"[ComfyUI-Manager] No remotes are configured for this repository: {repo.working_dir}") + else: + print(f"[ComfyUI-Manager] Available remotes in '{repo.working_dir}': ") + for remote in available_remotes: + print(f"- {remote}") + + return None + + def switch_to_default_branch(repo): - show_result = repo.git.remote("show", "origin") - matches = re.search(r"\s*HEAD branch:\s*(.*)", show_result) - if matches: - default_branch = matches.group(1) + remote_name = get_remote_name(repo) + + try: + if remote_name is None: + return False + + default_branch = repo.git.symbolic_ref(f'refs/remotes/{remote_name}/HEAD').replace(f'refs/remotes/{remote_name}/', '') repo.git.checkout(default_branch) + return True + except: + # try checkout master + # try checkout main if failed + try: + repo.git.checkout(repo.heads.master) + return True + except: + try: + if remote_name is not None: + repo.git.checkout('-b', 'master', f'{remote_name}/master') + return True + except: + try: + repo.git.checkout(repo.heads.main) + return True + except: + try: + if remote_name is not None: + repo.git.checkout('-b', 'main', f'{remote_name}/main') + return True + except: + pass + + print("[ComfyUI Manager] Failed to switch to the default branch") + return False + + +def reserve_script(repo_path, install_cmds): + if not os.path.exists(manager_startup_script_path): + os.makedirs(manager_startup_script_path) + + script_path = os.path.join(manager_startup_script_path, "install-scripts.txt") + with open(script_path, "a") as file: + obj = [repo_path] + install_cmds + file.write(f"{obj}\n") + + +def try_rmtree(title, fullpath): + try: + shutil.rmtree(fullpath) + except Exception as e: + logging.warning(f"[ComfyUI-Manager] An error occurred while deleting '{fullpath}', so it has been scheduled for deletion upon restart.\nEXCEPTION: {e}") + reserve_script(title, ["#LAZY-DELETE-NODEPACK", fullpath]) def try_install_script(url, repo_path, install_cmd, instant_execution=False): - if not instant_execution and ((len(install_cmd) > 0 and install_cmd[0].startswith('#')) or (platform.system() == "Windows" and comfy_ui_commit_datetime.date() >= comfy_ui_required_commit_datetime.date())): - if not os.path.exists(startup_script_path): - os.makedirs(startup_script_path) - - script_path = os.path.join(startup_script_path, "install-scripts.txt") - with open(script_path, "a") as file: - obj = [repo_path] + install_cmd - file.write(f"{obj}\n") - + if not instant_execution and ( + (len(install_cmd) > 0 and install_cmd[0].startswith('#')) or platform.system() == "Windows" or get_config()['always_lazy_install'] + ): + reserve_script(repo_path, install_cmd) return True else: if len(install_cmd) == 5 and install_cmd[2:4] == ['pip', 'install']: if is_blacklisted(install_cmd[4]): print(f"[ComfyUI-Manager] skip black listed pip installation: '{install_cmd[4]}'") return True + elif len(install_cmd) == 6 and install_cmd[3:5] == ['pip', 'install']: # uv mode + if is_blacklisted(install_cmd[5]): + print(f"[ComfyUI-Manager] skip black listed pip installation: '{install_cmd[5]}'") + return True print(f"\n## ComfyUI-Manager: EXECUTE => {install_cmd}") code = manager_funcs.run_script(install_cmd, cwd=repo_path) if platform.system() != "Windows": try: - if comfy_ui_commit_datetime.date() < comfy_ui_required_commit_datetime.date(): + if not os.environ.get('__COMFYUI_DESKTOP_VERSION__') and comfy_ui_commit_datetime.date() < comfy_ui_required_commit_datetime.date(): print("\n\n###################################################################") print(f"[WARN] ComfyUI-Manager: Your ComfyUI version ({comfy_ui_revision})[{comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version.") - print(f"[WARN] The extension installation feature may not work properly in the current installed ComfyUI version on Windows environment.") + print("[WARN] The extension installation feature may not work properly in the current installed ComfyUI version on Windows environment.") print("###################################################################\n\n") except: pass @@ -302,6 +1887,8 @@ def try_install_script(url, repo_path, install_cmd, instant_execution=False): print(f"install script failed: {url}") return False + return True + # use subprocess to avoid file system lock by git (Windows) def __win_check_git_update(path, do_fetch=False, do_update=False): @@ -312,7 +1899,8 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): else: command = [sys.executable, git_script_path, "--check", path] - process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + new_env = get_script_env() + process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=get_default_custom_nodes_path(), env=new_env) output, _ = process.communicate() output = output.decode('utf-8').strip() @@ -321,14 +1909,14 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): safedir_path = path.replace('\\', '/') try: print(f"[ComfyUI-Manager] Try fixing 'dubious repository' error on '{safedir_path}' repo") - process = subprocess.Popen(['git', 'config', '--global', '--add', 'safe.directory', safedir_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + process = subprocess.Popen(['git', 'config', '--global', '--add', 'safe.directory', safedir_path], env=new_env, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, _ = process.communicate() - process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + process = subprocess.Popen(command, env=new_env, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, _ = process.communicate() output = output.decode('utf-8').strip() except Exception: - print(f'[ComfyUI-Manager] failed to fixing') + print('[ComfyUI-Manager] failed to fixing') if 'detected dubious' in output: print(f'\n[ComfyUI-Manager] Failed to fixing repository setup. Please execute this command on cmd: \n' @@ -339,13 +1927,13 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): if do_update: if "CUSTOM NODE PULL: Success" in output: process.wait() - print(f"\rUpdated: {path}") + print(f"\x1b[2K\rUpdated: {path}") return True, True # updated elif "CUSTOM NODE PULL: None" in output: process.wait() return False, True # there is no update else: - print(f"\rUpdate error: {path}") + print(f"\x1b[2K\rUpdate error: {path}") process.wait() return False, False # update failed else: @@ -356,7 +1944,7 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): process.wait() return False, True else: - print(f"\rFetch error: {path}") + print(f"\x1b[2K\rFetch error: {path}") print(f"\n{output}\n") process.wait() return False, True @@ -364,11 +1952,12 @@ def __win_check_git_update(path, do_fetch=False, do_update=False): def __win_check_git_pull(path): command = [sys.executable, git_script_path, "--pull", path] - process = subprocess.Popen(command) + process = subprocess.Popen(command, env=get_script_env(), cwd=get_default_custom_nodes_path()) process.wait() -def execute_install_script(url, repo_path, lazy_mode=False, instant_execution=False): +def execute_install_script(url, repo_path, lazy_mode=False, instant_execution=False, no_deps=False): + # import ipdb; ipdb.set_trace() install_script_path = os.path.join(repo_path, "install.py") requirements_path = os.path.join(repo_path, "requirements.txt") @@ -376,49 +1965,90 @@ def execute_install_script(url, repo_path, lazy_mode=False, instant_execution=Fa install_cmd = ["#LAZY-INSTALL-SCRIPT", sys.executable] try_install_script(url, repo_path, install_cmd) else: - if os.path.exists(requirements_path): + if os.path.exists(requirements_path) and not no_deps: print("Install: pip packages") + pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, manager_files_path) with open(requirements_path, "r") as requirements_file: for line in requirements_file: + #handle comments + if '#' in line: + if line.strip()[0] == '#': + print("Line is comment...skipping") + continue + else: + line = line.split('#')[0].strip() + package_name = remap_pip_package(line.strip()) + if package_name and not package_name.startswith('#'): - install_cmd = [sys.executable, "-m", "pip", "install", package_name] - if package_name.strip() != "": + if '--index-url' in package_name: + s = package_name.split('--index-url') + install_cmd = manager_util.make_pip_cmd(["install", s[0].strip(), '--index-url', s[1].strip()]) + else: + install_cmd = manager_util.make_pip_cmd(["install", package_name]) + + if package_name.strip() != "" and not package_name.startswith('#'): try_install_script(url, repo_path, install_cmd, instant_execution=instant_execution) + pip_fixer.fix_broken() if os.path.exists(install_script_path): - print(f"Install: install script") + print("Install: install script") install_cmd = [sys.executable, "install.py"] try_install_script(url, repo_path, install_cmd, instant_execution=instant_execution) return True -def git_repo_has_updates(path, do_fetch=False, do_update=False): +def git_repo_update_check_with(path, do_fetch=False, do_update=False, no_deps=False): + """ + + perform update check for git custom node + and fetch or update if flag is on + + :param path: path to git custom node + :param do_fetch: do fetch during check + :param do_update: do update during check + :param no_deps: don't install dependencies + :return: update state * success + """ if do_fetch: - print(f"\x1b[2K\rFetching: {path}", end='') + orig_print(f"\x1b[2K\rFetching: {path}", end='') elif do_update: - print(f"\x1b[2K\rUpdating: {path}", end='') + orig_print(f"\x1b[2K\rUpdating: {path}", end='') # Check if the path is a git repository if not os.path.exists(os.path.join(path, '.git')): - raise ValueError('Not a git repository') + raise ValueError(f'[ComfyUI-Manager] Not a valid git repository: {path}') if platform.system() == "Windows": updated, success = __win_check_git_update(path, do_fetch, do_update) if updated and success: - execute_install_script(None, path, lazy_mode=True) + execute_install_script(None, path, lazy_mode=True, no_deps=no_deps) return updated, success else: # Fetch the latest commits from the remote repository repo = git.Repo(path) + remote_name = get_remote_name(repo) + + if remote_name is None: + raise ValueError(f"No remotes are configured for this repository: {path}") + + remote = repo.remote(name=remote_name) + + if not do_update and repo.head.is_detached: + if do_fetch: + remote.fetch() + + return True, True # detached branch is treated as updatable + + if repo.head.is_detached: + if not switch_to_default_branch(repo): + raise ValueError(f"Failed to switch detached branch to default branch: {path}") + current_branch = repo.active_branch branch_name = current_branch.name - remote_name = 'origin' - remote = repo.remote(name=remote_name) - # Get the current commit hash commit_hash = repo.head.commit.hexsha @@ -426,10 +2056,21 @@ def git_repo_has_updates(path, do_fetch=False, do_update=False): remote.fetch() if do_update: - if repo.head.is_detached: - switch_to_default_branch(repo) + if repo.is_dirty(): + print(f"\nSTASH: '{path}' is dirty.") + repo.git.stash() - remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + if f'{remote_name}/{branch_name}' not in repo.refs: + if not switch_to_default_branch(repo): + raise ValueError(f"Failed to switch to default branch while updating: {path}") + + current_branch = repo.active_branch + branch_name = current_branch.name + + if f'{remote_name}/{branch_name}' in repo.refs: + remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + else: + return False, False if commit_hash == remote_commit_hash: repo.close() @@ -441,7 +2082,7 @@ def git_repo_has_updates(path, do_fetch=False, do_update=False): new_commit_hash = repo.head.commit.hexsha if commit_hash != new_commit_hash: - execute_install_script(None, path) + execute_install_script(None, path, no_deps=no_deps) print(f"\x1b[2K\rUpdated: {path}") return True, True else: @@ -459,7 +2100,10 @@ def git_repo_has_updates(path, do_fetch=False, do_update=False): current_branch = repo.active_branch branch_name = current_branch.name - remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + if f'{remote_name}/{branch_name}' in repo.refs: + remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + else: + return True, True # Assuming there's an update if it's not the default branch. # Compare the commit hashes to determine if the local repository is behind the remote repository if commit_hash != remote_commit_hash: @@ -491,45 +2135,94 @@ class GitProgress(RemoteProgress): def is_valid_url(url): try: + # Check for HTTP/HTTPS URL format result = urlparse(url) - return all([result.scheme, result.netloc]) - except ValueError: - return False + if all([result.scheme, result.netloc]): + return True + finally: + # Check for SSH git URL format + pattern = re.compile(r"^(.+@|ssh://).+:.+$") + if pattern.match(url): + return True + return False -def gitclone_install(files, instant_execution=False, msg_prefix=''): - print(f"{msg_prefix}Install: {files}") - for url in files: - if not is_valid_url(url): - print(f"Invalid git url: '{url}'") - return False +def extract_url_and_commit_id(s): + index = s.rfind('@') + if index == -1: + return (s, '') + else: + return (s[:index], s[index+1:]) - if url.endswith("/"): - url = url[:-1] - try: - print(f"Download: git clone '{url}'") +async def gitclone_install(url, instant_execution=False, msg_prefix='', no_deps=False): + await unified_manager.reload('cache') + await unified_manager.get_custom_nodes('default', 'cache') + + print(f"{msg_prefix}Install: {url}") + + result = ManagedResult('install-git') + + if not is_valid_url(url): + return result.fail(f"Invalid git url: '{url}'") + + if url.endswith("/"): + url = url[:-1] + try: + cnr = unified_manager.get_cnr_by_repo(url) + if cnr: + cnr_id = cnr['id'] + return await unified_manager.install_by_id(cnr_id, version_spec=None, channel='default', mode='cache') + else: + new_url, commit_id = extract_url_and_commit_id(url) + if commit_id != "": + url = new_url repo_name = os.path.splitext(os.path.basename(url))[0] - repo_path = os.path.join(custom_nodes_path, repo_name) + + # NOTE: Keep original name as possible if unknown node + # node_dir = f"{repo_name}@unknown" + node_dir = repo_name + + repo_path = os.path.join(get_default_custom_nodes_path(), node_dir) + + if os.path.exists(repo_path): + return result.fail(f"Already exists: '{repo_path}'") + + for custom_nodes_dir in get_custom_nodes_paths(): + disabled_repo_path1 = os.path.join(custom_nodes_dir, '.disabled', node_dir) + disabled_repo_path2 = os.path.join(custom_nodes_dir, repo_name+'.disabled') # old style + + if os.path.exists(disabled_repo_path1): + return result.fail(f"Already exists (disabled): '{disabled_repo_path1}'") + + if os.path.exists(disabled_repo_path2): + return result.fail(f"Already exists (disabled): '{disabled_repo_path2}'") + + print(f"CLONE into '{repo_path}'") # Clone the repository from the remote URL + clone_url = git_utils.get_url_for_clone(url) + if not instant_execution and platform.system() == 'Windows': - res = manager_funcs.run_script([sys.executable, git_script_path, "--clone", custom_nodes_path, url]) + res = manager_funcs.run_script([sys.executable, git_script_path, "--clone", get_default_custom_nodes_path(), clone_url, repo_path], cwd=get_default_custom_nodes_path()) if res != 0: - return False + return result.fail(f"Failed to clone '{clone_url}' into '{repo_path}'") else: - repo = git.Repo.clone_from(url, repo_path, recursive=True, progress=GitProgress()) + repo = git.Repo.clone_from(clone_url, repo_path, recursive=True, progress=GitProgress()) + if commit_id!= "": + repo.git.checkout(commit_id) + repo.git.submodule('update', '--init', '--recursive') + repo.git.clear_cache() repo.close() - if not execute_install_script(url, repo_path, instant_execution=instant_execution): - return False + execute_install_script(url, repo_path, instant_execution=instant_execution, no_deps=no_deps) + print("Installation was successful.") + return result.with_target(repo_path) - except Exception as e: - print(f"Install(git-clone) error: {url} / {e}", file=sys.stderr) - return False - - print("Installation was successful.") - return True + except Exception as e: + traceback.print_exc() + print(f"Install(git-clone) error[1]: {url} / {e}", file=sys.stderr) + return result.fail(f"Install(git-clone)[1] error: {url} / {e}") def git_pull(path): @@ -544,10 +2237,12 @@ def git_pull(path): repo = git.Repo(path) if repo.is_dirty(): + print(f"STASH: '{path}' is dirty.") repo.git.stash() if repo.head.is_detached: - switch_to_default_branch(repo) + if not switch_to_default_branch(repo): + raise ValueError(f"Failed to switch to default branch while pulling: {path}") current_branch = repo.active_branch remote_name = current_branch.tracking_branch().remote_name @@ -561,78 +2256,52 @@ def git_pull(path): return True -async def get_data(uri, silent=False): - if not silent: - print(f"FETCH DATA from: {uri}") - - if uri.startswith("http"): - async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: - async with session.get(uri) as resp: - json_text = await resp.text() - else: - with cache_lock: - with open(uri, "r", encoding="utf-8") as f: - json_text = f.read() - - json_obj = json.loads(json_text) - return json_obj - - -def simple_hash(input_string): - hash_value = 0 - for char in input_string: - hash_value = (hash_value * 31 + ord(char)) % (2**32) - - return hash_value - - -def is_file_created_within_one_day(file_path): - if not os.path.exists(file_path): - return False - - file_creation_time = os.path.getctime(file_path) - current_time = datetime.now().timestamp() - time_difference = current_time - file_creation_time - - return time_difference <= 86400 - - async def get_data_by_mode(mode, filename, channel_url=None): + if channel_url in get_channel_dict(): + channel_url = get_channel_dict()[channel_url] + try: + local_uri = os.path.join(manager_util.comfyui_manager_path, filename) + if mode == "local": - uri = os.path.join(comfyui_manager_path, filename) - json_obj = await get_data(uri) + json_obj = await manager_util.get_data(local_uri) else: if channel_url is None: uri = get_config()['channel_url'] + '/' + filename else: uri = channel_url + '/' + filename - cache_uri = str(simple_hash(uri))+'_'+filename - cache_uri = os.path.join(cache_dir, cache_uri) + cache_uri = str(manager_util.simple_hash(uri))+'_'+filename + cache_uri = os.path.join(manager_util.cache_dir, cache_uri) - if mode == "cache": - if is_file_created_within_one_day(cache_uri): - json_obj = await get_data(cache_uri) + if get_config()['network_mode'] == 'offline': + # offline network mode + if os.path.exists(cache_uri): + json_obj = await manager_util.get_data(cache_uri) else: - json_obj = await get_data(uri) - with cache_lock: + local_uri = os.path.join(manager_util.comfyui_manager_path, filename) + if os.path.exists(local_uri): + json_obj = await manager_util.get_data(local_uri) + else: + json_obj = {} # fallback + else: + # public network mode + if mode == "cache" and manager_util.is_file_created_within_one_day(cache_uri): + json_obj = await manager_util.get_data(cache_uri) + else: + json_obj = await manager_util.get_data(uri) + with manager_util.cache_lock: with open(cache_uri, "w", encoding='utf-8') as file: json.dump(json_obj, file, indent=4, sort_keys=True) - else: - json_obj = await get_data(uri) - with cache_lock: - with open(cache_uri, "w", encoding='utf-8') as file: - json.dump(json_obj, file, indent=4, sort_keys=True) except Exception as e: print(f"[ComfyUI-Manager] Due to a network error, switching to local mode.\n=> {filename}\n=> {e}") - uri = os.path.join(comfyui_manager_path, filename) - json_obj = await get_data(uri) + uri = os.path.join(manager_util.comfyui_manager_path, filename) + json_obj = await manager_util.get_data(uri) return json_obj -def gitclone_fix(files, instant_execution=False): +def gitclone_fix(files, instant_execution=False, no_deps=False): print(f"Try fixing: {files}") for url in files: if not is_valid_url(url): @@ -643,16 +2312,16 @@ def gitclone_fix(files, instant_execution=False): url = url[:-1] try: repo_name = os.path.splitext(os.path.basename(url))[0] - repo_path = os.path.join(custom_nodes_path, repo_name) + repo_path = os.path.join(get_default_custom_nodes_path(), repo_name) if os.path.exists(repo_path+'.disabled'): repo_path = repo_path+'.disabled' - if not execute_install_script(url, repo_path, instant_execution=instant_execution): + if not execute_install_script(url, repo_path, instant_execution=instant_execution, no_deps=no_deps): return False except Exception as e: - print(f"Install(git-clone) error: {url} / {e}", file=sys.stderr) + print(f"Fix(git-clone) error: {url} / {e}", file=sys.stderr) return False print(f"Attempt to fixing '{files}' is done.") @@ -660,7 +2329,7 @@ def gitclone_fix(files, instant_execution=False): def pip_install(packages): - install_cmd = ['#FORCE', sys.executable, "-m", "pip", "install", '-U'] + packages + install_cmd = ['#FORCE'] + manager_util.make_pip_cmd(["install", '-U']) + packages try_install_script('pip install via manager', '..', install_cmd) @@ -695,32 +2364,33 @@ def gitclone_uninstall(files): if url.endswith("/"): url = url[:-1] try: - dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") - dir_path = os.path.join(custom_nodes_path, dir_name) + for custom_nodes_dir in get_custom_nodes_paths(): + dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") + dir_path = os.path.join(custom_nodes_dir, dir_name) - # safety check - if dir_path == '/' or dir_path[1:] == ":/" or dir_path == '': - print(f"Uninstall(git-clone) error: invalid path '{dir_path}' for '{url}'") - return False + # safety check + if dir_path == '/' or dir_path[1:] == ":/" or dir_path == '': + print(f"Uninstall(git-clone) error: invalid path '{dir_path}' for '{url}'") + return False - install_script_path = os.path.join(dir_path, "uninstall.py") - disable_script_path = os.path.join(dir_path, "disable.py") - if os.path.exists(install_script_path): - uninstall_cmd = [sys.executable, "uninstall.py"] - code = manager_funcs.run_script(uninstall_cmd, cwd=dir_path) + install_script_path = os.path.join(dir_path, "uninstall.py") + disable_script_path = os.path.join(dir_path, "disable.py") + if os.path.exists(install_script_path): + uninstall_cmd = [sys.executable, "uninstall.py"] + code = manager_funcs.run_script(uninstall_cmd, cwd=dir_path) - if code != 0: - print(f"An error occurred during the execution of the uninstall.py script. Only the '{dir_path}' will be deleted.") - elif os.path.exists(disable_script_path): - disable_script = [sys.executable, "disable.py"] - code = manager_funcs.run_script(disable_script, cwd=dir_path) - if code != 0: - print(f"An error occurred during the execution of the disable.py script. Only the '{dir_path}' will be deleted.") + if code != 0: + print(f"An error occurred during the execution of the uninstall.py script. Only the '{dir_path}' will be deleted.") + elif os.path.exists(disable_script_path): + disable_script = [sys.executable, "disable.py"] + code = manager_funcs.run_script(disable_script, cwd=dir_path) + if code != 0: + print(f"An error occurred during the execution of the disable.py script. Only the '{dir_path}' will be deleted.") - if os.path.exists(dir_path): - rmtree(dir_path) - elif os.path.exists(dir_path + ".disabled"): - rmtree(dir_path + ".disabled") + if os.path.exists(dir_path): + rmtree(dir_path) + elif os.path.exists(dir_path + ".disabled"): + rmtree(dir_path + ".disabled") except Exception as e: print(f"Uninstall(git-clone) error: {url} / {e}", file=sys.stderr) return False @@ -742,31 +2412,48 @@ def gitclone_set_active(files, is_disable): if url.endswith("/"): url = url[:-1] try: - dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") - dir_path = os.path.join(custom_nodes_path, dir_name) + for custom_nodes_dir in get_custom_nodes_paths(): + dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") + dir_path = os.path.join(custom_nodes_dir, dir_name) - # safety check - if dir_path == '/' or dir_path[1:] == ":/" or dir_path == '': - print(f"{action_name}(git-clone) error: invalid path '{dir_path}' for '{url}'") - return False + # safety check + if dir_path == '/' or dir_path[1:] == ":/" or dir_path == '': + print(f"{action_name}(git-clone) error: invalid path '{dir_path}' for '{url}'") + return False - if is_disable: - current_path = dir_path - new_path = dir_path + ".disabled" - else: - current_path = dir_path + ".disabled" - new_path = dir_path + if is_disable: + current_path = dir_path + base_path = extract_base_custom_nodes_dir(current_path) + new_path = os.path.join(base_path, ".disabled", dir_name) - os.rename(current_path, new_path) + if not os.path.exists(current_path): + continue + else: + current_path1 = os.path.join(get_default_custom_nodes_path(), ".disabled", dir_name) + current_path2 = dir_path + ".disabled" - if is_disable: - if os.path.exists(os.path.join(new_path, "disable.py")): - disable_script = [sys.executable, "disable.py"] - try_install_script(url, new_path, disable_script) - else: - if os.path.exists(os.path.join(new_path, "enable.py")): - enable_script = [sys.executable, "enable.py"] - try_install_script(url, new_path, enable_script) + if os.path.exists(current_path1): + current_path = current_path1 + elif os.path.exists(current_path2): + current_path = current_path2 + else: + continue + + base_path = extract_base_custom_nodes_dir(current_path) + new_path = os.path.join(base_path, dir_name) + + shutil.move(current_path, new_path) + + if is_disable: + if os.path.exists(os.path.join(new_path, "disable.py")): + disable_script = [sys.executable, "disable.py"] + try_install_script(url, new_path, disable_script) + else: + if os.path.exists(os.path.join(new_path, "enable.py")): + enable_script = [sys.executable, "enable.py"] + try_install_script(url, new_path, enable_script) + + break # for safety except Exception as e: print(f"{action_name}(git-clone) error: {url} / {e}", file=sys.stderr) @@ -776,7 +2463,7 @@ def gitclone_set_active(files, is_disable): return True -def gitclone_update(files, instant_execution=False, skip_script=False, msg_prefix=""): +def gitclone_update(files, instant_execution=False, skip_script=False, msg_prefix="", no_deps=False): import os print(f"{msg_prefix}Update: {files}") @@ -784,21 +2471,30 @@ def gitclone_update(files, instant_execution=False, skip_script=False, msg_prefi if url.endswith("/"): url = url[:-1] try: - repo_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") - repo_path = os.path.join(custom_nodes_path, repo_name) + for custom_nodes_dir in get_default_custom_nodes_path(): + repo_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") + repo_path = os.path.join(custom_nodes_dir, repo_name) - if os.path.exists(repo_path+'.disabled'): - repo_path = repo_path+'.disabled' + if os.path.exists(repo_path+'.disabled'): + repo_path = repo_path+'.disabled' - git_pull(repo_path) + elif os.path.exists(os.path.join(get_default_custom_nodes_path(), "disabled", repo_name)): + repo_path = os.path.join(get_default_custom_nodes_path(), "disabled", repo_name) - if not skip_script: - if instant_execution: - if not execute_install_script(url, repo_path, lazy_mode=False, instant_execution=True): - return False - else: - if not execute_install_script(url, repo_path, lazy_mode=True): - return False + if not os.path.exists(repo_path): + continue + + git_pull(repo_path) + + if not skip_script: + if instant_execution: + if not execute_install_script(url, repo_path, lazy_mode=False, instant_execution=True, no_deps=no_deps): + return False + else: + if not execute_install_script(url, repo_path, lazy_mode=True, no_deps=no_deps): + return False + + break # for safety except Exception as e: print(f"Update(git-clone) error: {url} / {e}", file=sys.stderr) @@ -809,143 +2505,925 @@ def gitclone_update(files, instant_execution=False, skip_script=False, msg_prefi return True +def update_to_stable_comfyui(repo_path): + try: + repo = git.Repo(repo_path) + try: + repo.git.checkout(repo.heads.master) + except: + logging.error(f"[ComfyUI-Manager] Failed to checkout 'master' branch.\nrepo_path={repo_path}\nAvailable branches:") + for branch in repo.branches: + logging.error('\t'+branch.name) + return "fail", None + + versions, current_tag, _ = get_comfyui_versions(repo) + + if len(versions) == 0 or (len(versions) == 1 and versions[0] == 'nightly'): + logging.info("[ComfyUI-Manager] Unable to update to the stable ComfyUI version.") + return "fail", None + + if versions[0] == 'nightly': + latest_tag = versions[1] + else: + latest_tag = versions[0] + + if current_tag == latest_tag: + return "skip", None + else: + logging.info(f"[ComfyUI-Manager] Updating ComfyUI: {current_tag} -> {latest_tag}") + repo.git.checkout(latest_tag) + return 'updated', latest_tag + except: + traceback.print_exc() + return "fail", None + + +def update_path(repo_path, instant_execution=False, no_deps=False): + if not os.path.exists(os.path.join(repo_path, '.git')): + return "fail" + + # version check + repo = git.Repo(repo_path) + + is_switched = False + if repo.head.is_detached: + if not switch_to_default_branch(repo): + return "fail" + else: + is_switched = True + + current_branch = repo.active_branch + branch_name = current_branch.name + + if current_branch.tracking_branch() is None: + print(f"[ComfyUI-Manager] There is no tracking branch ({current_branch})") + remote_name = get_remote_name(repo) + else: + remote_name = current_branch.tracking_branch().remote_name + remote = repo.remote(name=remote_name) + + try: + remote.fetch() + except Exception as e: + if 'detected dubious' in str(e): + print(f"[ComfyUI-Manager] Try fixing 'dubious repository' error on '{repo_path}' repository") + safedir_path = repo_path.replace('\\', '/') + subprocess.run(['git', 'config', '--global', '--add', 'safe.directory', safedir_path]) + try: + remote.fetch() + except Exception: + print(f"\n[ComfyUI-Manager] Failed to fixing repository setup. Please execute this command on cmd: \n" + f"-----------------------------------------------------------------------------------------\n" + f'git config --global --add safe.directory "{safedir_path}"\n' + f"-----------------------------------------------------------------------------------------\n") + return "fail" + + commit_hash = repo.head.commit.hexsha + + if f'{remote_name}/{branch_name}' in repo.refs: + remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha + else: + return "fail" + + if commit_hash != remote_commit_hash: + git_pull(repo_path) + execute_install_script("ComfyUI", repo_path, instant_execution=instant_execution, no_deps=no_deps) + return "updated" + elif is_switched: + return "updated" + else: + return "skipped" + + def lookup_customnode_by_url(data, target): for x in data['custom_nodes']: if target in x['files']: - dir_name = os.path.splitext(os.path.basename(target))[0].replace(".git", "") - dir_path = os.path.join(custom_nodes_path, dir_name) - if os.path.exists(dir_path): - x['installed'] = 'True' - elif os.path.exists(dir_path + ".disabled"): - x['installed'] = 'Disabled' - return x + for custom_nodes_dir in get_custom_nodes_paths(): + dir_name = os.path.splitext(os.path.basename(target))[0].replace(".git", "") + dir_path = os.path.join(custom_nodes_dir, dir_name) + if os.path.exists(dir_path): + x['installed'] = 'True' + else: + disabled_path1 = os.path.join(custom_nodes_dir, '.disabled', dir_name) + disabled_path2 = dir_path + ".disabled" + + if os.path.exists(disabled_path1) or os.path.exists(disabled_path2): + x['installed'] = 'Disabled' + else: + continue + + return x return None -def check_a_custom_node_installed(item, do_fetch=False, do_update_check=True, do_update=False): - item['installed'] = 'None' +def lookup_installed_custom_nodes_legacy(repo_name): + base_paths = get_custom_nodes_paths() - if item['install_type'] == 'git-clone' and len(item['files']) == 1: - url = item['files'][0] + for base_path in base_paths: + repo_path = os.path.join(base_path, repo_name) + if os.path.exists(repo_path): + return True, repo_path + elif os.path.exists(repo_path + '.disabled'): + return False, repo_path - if url.endswith("/"): - url = url[:-1] + return None - dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") - dir_path = os.path.join(custom_nodes_path, dir_name) - if os.path.exists(dir_path): + +def simple_check_custom_node(url): + dir_name = os.path.splitext(os.path.basename(url))[0].replace(".git", "") + dir_path = os.path.join(get_default_custom_nodes_path(), dir_name) + if os.path.exists(dir_path): + return 'installed' + elif os.path.exists(dir_path+'.disabled'): + return 'disabled' + + return 'not-installed' + + +def check_state_of_git_node_pack_single(item, do_fetch=False, do_update_check=True, do_update=False): + if item['version'] == 'unknown': + dir_path = unified_manager.unknown_active_nodes.get(item['id'])[1] + elif item['version'] == 'nightly': + dir_path = unified_manager.active_nodes.get(item['id'])[1] + else: + # skip CNR nodes + dir_path = None + + if dir_path and os.path.exists(dir_path): + if do_update_check: try: - item['installed'] = 'True' # default + update_state, success = git_repo_update_check_with(dir_path, do_fetch, do_update) + if (do_update_check or do_update) and update_state: + item['update-state'] = 'true' + elif do_update and not success: + item['update-state'] = 'fail' + except Exception: + print(f"[ComfyUI-Manager] Failed to check state of the git node pack: {dir_path}") - if cm_global.try_call(api="cm.is_import_failed_extension", name=dir_name): - item['installed'] = 'Fail' - if do_update_check: - update_state, success = git_repo_has_updates(dir_path, do_fetch, do_update) - if (do_update_check or do_update) and update_state: - item['installed'] = 'Update' - elif do_update and not success: - item['installed'] = 'Fail' - except: - if cm_global.try_call(api="cm.is_import_failed_extension", name=dir_name): - item['installed'] = 'Fail' - else: - item['installed'] = 'True' +def get_installed_pip_packages(): + # extract pip package infos + cmd = manager_util.make_pip_cmd(['freeze']) + pips = subprocess.check_output(cmd, text=True).split('\n') - elif os.path.exists(dir_path + ".disabled"): - item['installed'] = 'Disabled' + res = {} + for x in pips: + if x.strip() == "": + continue + if ' @ ' in x: + spec_url = x.split(' @ ') + res[spec_url[0]] = spec_url[1] else: - item['installed'] = 'False' + res[x] = "" - elif item['install_type'] == 'copy' and len(item['files']) == 1: - dir_name = os.path.basename(item['files'][0]) - - if item['files'][0].endswith('.py'): - base_path = custom_nodes_path - elif 'js_path' in item: - base_path = os.path.join(js_path, item['js_path']) - else: - base_path = js_path - - file_path = os.path.join(base_path, dir_name) - if os.path.exists(file_path): - if cm_global.try_call(api="cm.is_import_failed_extension", name=dir_name): - item['installed'] = 'Fail' - else: - item['installed'] = 'True' - elif os.path.exists(file_path + ".disabled"): - item['installed'] = 'Disabled' - else: - item['installed'] = 'False' + return res -def get_current_snapshot(): +async def get_current_snapshot(custom_nodes_only = False): + await unified_manager.reload('cache') + await unified_manager.get_custom_nodes('default', 'cache') + # Get ComfyUI hash repo_path = comfy_path - print(f"comfy_path: {comfy_path}") - if not os.path.exists(os.path.join(repo_path, '.git')): - print(f"ComfyUI update fail: The installed ComfyUI does not have a Git repository.") - return {} - - repo = git.Repo(repo_path) - comfyui_commit_hash = repo.head.commit.hexsha - + comfyui_commit_hash = None + if not custom_nodes_only: + if os.path.exists(os.path.join(repo_path, '.git')): + repo = git.Repo(repo_path) + comfyui_commit_hash = repo.head.commit.hexsha + git_custom_nodes = {} + cnr_custom_nodes = {} file_custom_nodes = [] # Get custom nodes hash - for path in os.listdir(custom_nodes_path): - fullpath = os.path.join(custom_nodes_path, path) + for custom_nodes_dir in get_custom_nodes_paths(): + paths = os.listdir(custom_nodes_dir) - if os.path.isdir(fullpath): - is_disabled = path.endswith(".disabled") + disabled_path = os.path.join(custom_nodes_dir, '.disabled') + if os.path.exists(disabled_path): + for x in os.listdir(disabled_path): + paths.append(os.path.join(disabled_path, x)) - try: - git_dir = os.path.join(fullpath, '.git') + for path in paths: + if path in ['.disabled', '__pycache__']: + continue - if not os.path.exists(git_dir): - continue + fullpath = os.path.join(custom_nodes_dir, path) - repo = git.Repo(fullpath) - commit_hash = repo.head.commit.hexsha - url = repo.remotes.origin.url - git_custom_nodes[url] = { - 'hash': commit_hash, + if os.path.isdir(fullpath): + is_disabled = path.endswith(".disabled") or os.path.basename(os.path.dirname(fullpath)) == ".disabled" + + try: + info = unified_manager.resolve_from_path(fullpath) + + if info is None: + continue + + if info['ver'] not in ['nightly', 'latest', 'unknown']: + if is_disabled: + continue # don't restore disabled state of CNR node. + + cnr_custom_nodes[info['id']] = info['ver'] + else: + commit_hash = git_utils.get_commit_hash(fullpath) + url = git_utils.git_url(fullpath) + git_custom_nodes[url] = dict(hash=commit_hash, disabled=is_disabled) + except: + print(f"Failed to extract snapshots for the custom node '{path}'.") + + elif path.endswith('.py'): + is_disabled = path.endswith(".py.disabled") + filename = os.path.basename(path) + item = { + 'filename': filename, 'disabled': is_disabled } - except: - print(f"Failed to extract snapshots for the custom node '{path}'.") + file_custom_nodes.append(item) - elif path.endswith('.py'): - is_disabled = path.endswith(".py.disabled") - filename = os.path.basename(path) - item = { - 'filename': filename, - 'disabled': is_disabled - } - - file_custom_nodes.append(item) + pip_packages = None if custom_nodes_only else get_installed_pip_packages() return { 'comfyui': comfyui_commit_hash, 'git_custom_nodes': git_custom_nodes, + 'cnr_custom_nodes': cnr_custom_nodes, 'file_custom_nodes': file_custom_nodes, + 'pips': pip_packages, } -def save_snapshot_with_postfix(postfix): - now = datetime.now() +async def save_snapshot_with_postfix(postfix, path=None, custom_nodes_only = False): + if path is None: + now = datetime.now() - date_time_format = now.strftime("%Y-%m-%d_%H-%M-%S") - file_name = f"{date_time_format}_{postfix}" + date_time_format = now.strftime("%Y-%m-%d_%H-%M-%S") + file_name = f"{date_time_format}_{postfix}" - path = os.path.join(comfyui_manager_path, 'snapshots', f"{file_name}.json") - with open(path, "w") as json_file: - json.dump(get_current_snapshot(), json_file, indent=4) + path = os.path.join(manager_snapshot_path, f"{file_name}.json") + else: + file_name = path.replace('\\', '/').split('/')[-1] + file_name = file_name.split('.')[-2] - return file_name+'.json' + snapshot = await get_current_snapshot(custom_nodes_only) + if path.endswith('.json'): + with open(path, "w") as json_file: + json.dump(snapshot, json_file, indent=4) + return file_name + '.json' + + elif path.endswith('.yaml'): + with open(path, "w") as yaml_file: + snapshot = {'custom_nodes': snapshot} + yaml.dump(snapshot, yaml_file, allow_unicode=True) + + return path + + +async def extract_nodes_from_workflow(filepath, mode='local', channel_url='default'): + # prepare json data + workflow = None + if filepath.endswith('.json'): + with open(filepath, "r", encoding="UTF-8", errors="ignore") as json_file: + try: + workflow = json.load(json_file) + except: + print(f"Invalid workflow file: {filepath}") + exit(-1) + + elif filepath.endswith('.png'): + from PIL import Image + with Image.open(filepath) as img: + if 'workflow' not in img.info: + print(f"The specified .png file doesn't have a workflow: {filepath}") + exit(-1) + else: + try: + workflow = json.loads(img.info['workflow']) + except: + print(f"This is not a valid .png file containing a ComfyUI workflow: {filepath}") + exit(-1) + + if workflow is None: + print(f"Invalid workflow file: {filepath}") + exit(-1) + + # extract nodes + used_nodes = set() + + def extract_nodes(sub_workflow): + for x in sub_workflow['nodes']: + node_name = x.get('type') + + # skip virtual nodes + if node_name in ['Reroute', 'Note']: + continue + + if node_name is not None and not (node_name.startswith('workflow/') or node_name.startswith('workflow>')): + used_nodes.add(node_name) + + if 'nodes' in workflow: + extract_nodes(workflow) + + if 'extra' in workflow: + if 'groupNodes' in workflow['extra']: + for x in workflow['extra']['groupNodes'].values(): + extract_nodes(x) + + # lookup dependent custom nodes + ext_map = await get_data_by_mode(mode, 'extension-node-map.json', channel_url) + + rext_map = {} + preemption_map = {} + patterns = [] + for k, v in ext_map.items(): + if k == 'https://github.com/comfyanonymous/ComfyUI': + for x in v[0]: + if x not in preemption_map: + preemption_map[x] = [] + + preemption_map[x] = k + continue + + for x in v[0]: + if x not in rext_map: + rext_map[x] = [] + + rext_map[x].append(k) + + if 'preemptions' in v[1]: + for x in v[1]['preemptions']: + if x not in preemption_map: + preemption_map[x] = [] + + preemption_map[x] = k + + if 'nodename_pattern' in v[1]: + patterns.append((v[1]['nodename_pattern'], k)) + + # identify used extensions + used_exts = set() + unknown_nodes = set() + + for node_name in used_nodes: + ext = preemption_map.get(node_name) + + if ext is None: + ext = rext_map.get(node_name) + if ext is not None: + ext = ext[0] + + if ext is None: + for pat_ext in patterns: + if re.search(pat_ext[0], node_name): + ext = pat_ext[1] + break + + if ext == 'https://github.com/comfyanonymous/ComfyUI': + pass + elif ext is not None: + used_exts.add(ext) + else: + unknown_nodes.add(node_name) + + return used_exts, unknown_nodes + + +def unzip(model_path): + if not os.path.exists(model_path): + print(f"[ComfyUI-Manager] unzip: File not found: {model_path}") + return False + + base_dir = os.path.dirname(model_path) + filename = os.path.basename(model_path) + target_dir = os.path.join(base_dir, filename[:-4]) + + os.makedirs(target_dir, exist_ok=True) + + with zipfile.ZipFile(model_path, 'r') as zip_ref: + zip_ref.extractall(target_dir) + + # Check if there's only one directory inside the target directory + contents = os.listdir(target_dir) + if len(contents) == 1 and os.path.isdir(os.path.join(target_dir, contents[0])): + nested_dir = os.path.join(target_dir, contents[0]) + # Move each file and sub-directory in the nested directory up to the target directory + for item in os.listdir(nested_dir): + shutil.move(os.path.join(nested_dir, item), os.path.join(target_dir, item)) + # Remove the now empty nested directory + os.rmdir(nested_dir) + + os.remove(model_path) + return True + + +def map_to_unified_keys(json_obj): + res = {} + for k, v in json_obj.items(): + cnr = unified_manager.get_cnr_by_repo(k) + if cnr: + res[cnr['id']] = v + else: + res[k] = v + + return res + + +async def get_unified_total_nodes(channel, mode, regsitry_cache_mode='cache'): + await unified_manager.reload(regsitry_cache_mode) + + res = await unified_manager.get_custom_nodes(channel, mode) + + # collect pure cnr ids (i.e. not exists in custom-node-list.json) + # populate state/updatable field to non-pure cnr nodes + cnr_ids = set(unified_manager.cnr_map.keys()) + for k, v in res.items(): + # resolve cnr_id from repo url + files_in_json = v.get('files', []) + cnr_id = None + if len(files_in_json) == 1: + cnr = unified_manager.get_cnr_by_repo(files_in_json[0]) + if cnr: + cnr_id = cnr['id'] + + if cnr_id is not None: + # cnr or nightly version + cnr_ids.discard(cnr_id) + updatable = False + cnr = unified_manager.cnr_map[cnr_id] + + if cnr_id in invalid_nodes: + v['invalid-installation'] = True + + if cnr_id in unified_manager.active_nodes: + # installed + v['state'] = 'enabled' + if unified_manager.active_nodes[cnr_id][0] != 'nightly': + updatable = unified_manager.is_updatable(cnr_id) + else: + updatable = False + v['active_version'] = unified_manager.active_nodes[cnr_id][0] + v['version'] = v['active_version'] + + if cm_global.try_call(api="cm.is_import_failed_extension", name=unified_manager.active_nodes[cnr_id][1]): + v['import-fail'] = True + + elif cnr_id in unified_manager.cnr_inactive_nodes: + # disabled + v['state'] = 'disabled' + cnr_ver = unified_manager.get_from_cnr_inactive_nodes(cnr_id) + if cnr_ver is not None: + v['version'] = str(cnr_ver[0]) + else: + v['version'] = '0' + + elif cnr_id in unified_manager.nightly_inactive_nodes: + # disabled + v['state'] = 'disabled' + v['version'] = 'nightly' + else: + # not installed + v['state'] = 'not-installed' + + if 'version' not in v: + v['version'] = cnr['latest_version']['version'] + + v['update-state'] = 'true' if updatable else 'false' + else: + # unknown version + v['version'] = 'unknown' + + if unified_manager.is_enabled(k, 'unknown'): + v['state'] = 'enabled' + v['active_version'] = 'unknown' + + if cm_global.try_call(api="cm.is_import_failed_extension", name=unified_manager.unknown_active_nodes[k][1]): + v['import-fail'] = True + + elif unified_manager.is_disabled(k, 'unknown'): + v['state'] = 'disabled' + else: + v['state'] = 'not-installed' + + # add items for pure cnr nodes + if normalize_channel(channel) == DEFAULT_CHANNEL: + # Don't show CNR nodes unless default channel + for cnr_id in cnr_ids: + cnr = unified_manager.cnr_map[cnr_id] + author = cnr['publisher']['name'] + title = cnr['name'] + reference = f"https://registry.comfy.org/nodes/{cnr['id']}" + repository = cnr.get('repository', '') + install_type = "cnr" + description = cnr.get('description', '') + + ver = None + active_version = None + updatable = False + import_fail = None + if cnr_id in unified_manager.active_nodes: + # installed + state = 'enabled' + updatable = unified_manager.is_updatable(cnr_id) + active_version = unified_manager.active_nodes[cnr['id']][0] + ver = active_version + + if cm_global.try_call(api="cm.is_import_failed_extension", name=unified_manager.active_nodes[cnr_id][1]): + import_fail = True + + elif cnr['id'] in unified_manager.cnr_inactive_nodes: + # disabled + state = 'disabled' + elif cnr['id'] in unified_manager.nightly_inactive_nodes: + # disabled + state = 'disabled' + ver = 'nightly' + else: + # not installed + state = 'not-installed' + + if ver is None: + ver = cnr['latest_version']['version'] + + item = dict(author=author, title=title, reference=reference, repository=repository, install_type=install_type, + description=description, state=state, updatable=updatable, version=ver) + + if active_version: + item['active_version'] = active_version + + if import_fail: + item['import-fail'] = True + + res[cnr_id] = item + + return res + + +def populate_github_stats(node_packs, json_obj_github): + for k, v in node_packs.items(): + try: + url = v['reference'] + if url in json_obj_github: + v['stars'] = json_obj_github[url]['stars'] + v['last_update'] = json_obj_github[url]['last_update'] + v['trust'] = json_obj_github[url]['author_account_age_days'] > 600 + else: + v['stars'] = -1 + v['last_update'] = -1 + v['trust'] = False + except: + logging.error(f"[ComfyUI-Manager] DB item is broken:\n{v}") + + +def populate_favorites(node_packs, json_obj_extras): + favorites = set(json_obj_extras['favorites']) + + for k, v in node_packs.items(): + if v.get('version') != 'unknown': + if k in favorites: + v['is_favorite'] = True + + +async def restore_snapshot(snapshot_path, git_helper_extras=None): + cloned_repos = [] + checkout_repos = [] + enabled_repos = [] + disabled_repos = [] + skip_node_packs = [] + switched_node_packs = [] + installed_node_packs = [] + failed = [] + + await unified_manager.reload('cache') + await unified_manager.get_custom_nodes('default', 'cache') + + cnr_repo_map = {} + for k, v in unified_manager.repo_cnr_map.items(): + cnr_repo_map[v['id']] = k + + print("Restore snapshot.") + + postinstalls = [] + + with open(snapshot_path, 'r', encoding="UTF-8") as snapshot_file: + if snapshot_path.endswith('.json'): + info = json.load(snapshot_file) + elif snapshot_path.endswith('.yaml'): + info = yaml.load(snapshot_file, Loader=yaml.SafeLoader) + info = info['custom_nodes'] + + if 'pips' in info and info['pips']: + pips = info['pips'] + else: + pips = {} + + # for cnr restore + cnr_info = info.get('cnr_custom_nodes') + if cnr_info is not None: + # disable not listed cnr nodes + todo_disable = [] + todo_checkout = [] + + for k, v in unified_manager.active_nodes.items(): + if 'comfyui-manager' in k: + continue + + if v[0] != 'nightly': + if k not in cnr_info: + todo_disable.append(k) + else: + cnr_ver = cnr_info[k] + if v[1] != cnr_ver: + todo_checkout.append((k, cnr_ver)) + else: + skip_node_packs.append(k) + + for x in todo_disable: + unified_manager.unified_disable(x, False) + disabled_repos.append(x) + + for x in todo_checkout: + ps = unified_manager.cnr_switch_version(x[0], x[1], instant_execution=True, no_deps=True, return_postinstall=False) + if ps.action == 'switch-cnr' and ps.result: + switched_node_packs.append(f"{x[0]}@{x[1]}") + elif ps.action == 'skip': + skip_node_packs.append(f"{x[0]}@{x[1]}") + elif not ps.result: + failed.append(f"{x[0]}@{x[1]}") + + # install listed cnr nodes + for k, v in cnr_info.items(): + if 'comfyui-manager' in k: + continue + + ps = await unified_manager.install_by_id(k, version_spec=v, instant_execution=True, return_postinstall=True) + if ps.action == 'install-cnr' and ps.result: + installed_node_packs.append(f"{k}@{v}") + + if ps is not None and ps.result: + if hasattr(ps, 'postinstall'): + postinstalls.append(ps.postinstall) + else: + print("cm-cli: unexpected [0001]") + + # for nightly restore + _git_info = info.get('git_custom_nodes') + git_info = {} + + # normalize github repo + for k, v in _git_info.items(): + # robust filter out comfyui-manager while restoring snapshot + if 'comfyui-manager' in k.lower(): + continue + + norm_k = git_utils.normalize_url(k) + git_info[norm_k] = v + + if git_info is not None: + todo_disable = [] + todo_enable = [] + todo_checkout = [] + processed_urls = [] + + for k, v in unified_manager.active_nodes.items(): + if 'comfyui-manager' in k: + continue + + if v[0] == 'nightly' and cnr_repo_map.get(k): + repo_url = cnr_repo_map.get(k) + normalized_url = git_utils.normalize_url(repo_url) + + if normalized_url not in git_info: + todo_disable.append(k) + else: + commit_hash = git_info[normalized_url]['hash'] + todo_checkout.append((v[1], commit_hash)) + + for k, v in unified_manager.nightly_inactive_nodes.items(): + if 'comfyui-manager' in k: + continue + + if cnr_repo_map.get(k): + repo_url = cnr_repo_map.get(k) + normalized_url = git_utils.normalize_url(repo_url) + + if normalized_url in git_info: + commit_hash = git_info[normalized_url]['hash'] + todo_enable.append((k, commit_hash)) + processed_urls.append(normalized_url) + + for x in todo_disable: + unified_manager.unified_disable(x, False) + disabled_repos.append(x) + + for x in todo_enable: + res = unified_manager.unified_enable(x[0], 'nightly') + + is_switched = False + if res and res.target: + is_switched = repo_switch_commit(res.target, x[1]) + + if is_switched: + checkout_repos.append(f"{x[0]}@{x[1]}") + else: + enabled_repos.append(x[0]) + + for x in todo_checkout: + is_switched = repo_switch_commit(x[0], x[1]) + + if is_switched: + checkout_repos.append(f"{x[0]}@{x[1]}") + + for x in git_info.keys(): + normalized_url = git_utils.normalize_url(x) + cnr = unified_manager.repo_cnr_map.get(normalized_url) + if cnr is not None: + pack_id = cnr['id'] + res = await unified_manager.install_by_id(pack_id, 'nightly', instant_execution=True, no_deps=False, return_postinstall=False) + if res.action == 'install-git' and res.result: + cloned_repos.append(pack_id) + elif res.action == 'skip': + skip_node_packs.append(pack_id) + elif not res.result: + failed.append(pack_id) + processed_urls.append(x) + + for x in processed_urls: + if x in git_info: + del git_info[x] + + # for unknown restore + todo_disable = [] + todo_enable = [] + todo_checkout = [] + processed_urls = [] + + for k2, v2 in unified_manager.unknown_active_nodes.items(): + repo_url = resolve_giturl_from_path(v2[1]) + + if repo_url is None: + continue + + normalized_url = git_utils.normalize_url(repo_url) + + if normalized_url not in git_info: + todo_disable.append(k2) + else: + commit_hash = git_info[normalized_url]['hash'] + todo_checkout.append((k2, commit_hash)) + processed_urls.append(normalized_url) + + for k2, v2 in unified_manager.unknown_inactive_nodes.items(): + repo_url = resolve_giturl_from_path(v2[1]) + + if repo_url is None: + continue + + normalized_url = git_utils.normalize_url(repo_url) + + if normalized_url in git_info: + commit_hash = git_info[normalized_url]['hash'] + todo_enable.append((k2, commit_hash)) + processed_urls.append(normalized_url) + + for x in todo_disable: + unified_manager.unified_disable(x, True) + disabled_repos.append(x) + + for x in todo_enable: + res = unified_manager.unified_enable(x[0], 'unknown') + + is_switched = False + if res and res.target: + is_switched = repo_switch_commit(res.target, x[1]) + + if is_switched: + checkout_repos.append(f"{x[0]}@{x[1]}") + else: + enabled_repos.append(x[0]) + + for x in todo_checkout: + is_switched = repo_switch_commit(x[0], x[1]) + + if is_switched: + checkout_repos.append(f"{x[0]}@{x[1]}") + else: + skip_node_packs.append(x[0]) + + for x in processed_urls: + if x in git_info: + del git_info[x] + + for repo_url in git_info.keys(): + repo_name = os.path.basename(repo_url) + if repo_name.endswith('.git'): + repo_name = repo_name[:-4] + + to_path = os.path.join(get_default_custom_nodes_path(), repo_name) + unified_manager.repo_install(repo_url, to_path, instant_execution=True, no_deps=False, return_postinstall=False) + cloned_repos.append(repo_name) + + manager_util.restore_pip_snapshot(pips, git_helper_extras) + + # print summary + for x in cloned_repos: + print(f"[ INSTALLED ] {x}") + for x in installed_node_packs: + print(f"[ INSTALLED ] {x}") + for x in checkout_repos: + print(f"[ CHECKOUT ] {x}") + for x in switched_node_packs: + print(f"[ SWITCHED ] {x}") + for x in enabled_repos: + print(f"[ ENABLED ] {x}") + for x in disabled_repos: + print(f"[ DISABLED ] {x}") + for x in skip_node_packs: + print(f"[ SKIPPED ] {x}") + for x in failed: + print(f"[ FAILED ] {x}") + + # if is_failed: + # print("[bold red]ERROR: Failed to restore snapshot.[/bold red]") + + +def get_comfyui_versions(repo=None): + if repo is None: + repo = git.Repo(comfy_path) + + try: + remote = get_remote_name(repo) + repo.remotes[remote].fetch() + except: + logging.error("[ComfyUI-Manager] Failed to fetch ComfyUI") + + versions = [x.name for x in repo.tags if x.name.startswith('v')] + + # nearest tag + versions = sorted(versions, key=lambda v: repo.git.log('-1', '--format=%ct', v), reverse=True) + versions = versions[:4] + + current_tag = repo.git.describe('--tags') + + if current_tag not in versions: + versions = sorted(versions + [current_tag], key=lambda v: repo.git.log('-1', '--format=%ct', v), reverse=True) + versions = versions[:4] + + main_branch = repo.heads.master + latest_commit = main_branch.commit + latest_tag = repo.git.describe('--tags', latest_commit.hexsha) + + if latest_tag != versions[0]: + versions.insert(0, 'nightly') + else: + versions[0] = 'nightly' + current_tag = 'nightly' + + return versions, current_tag, latest_tag + + +def switch_comfyui(tag): + repo = git.Repo(comfy_path) + + if tag == 'nightly': + repo.git.checkout('master') + tracking_branch = repo.active_branch.tracking_branch() + remote_name = tracking_branch.remote_name + repo.remotes[remote_name].pull() + print("[ComfyUI-Manager] ComfyUI version is switched to the latest 'master' version") + else: + repo.git.checkout(tag) + print(f"[ComfyUI-Manager] ComfyUI version is switched to '{tag}'") + + +def resolve_giturl_from_path(fullpath): + """ + resolve giturl path of unclassified custom node based on remote url in .git/config + """ + git_config_path = os.path.join(fullpath, '.git', 'config') + + if not os.path.exists(git_config_path): + return "unknown" + + config = configparser.ConfigParser(strict=False) + config.read(git_config_path) + + for k, v in config.items(): + if k.startswith('remote ') and 'url' in v: + return v['url'].replace("git@github.com:", "https://github.com/") + + return None + + +def repo_switch_commit(repo_path, commit_hash): + try: + repo = git.Repo(repo_path) + if repo.head.commit.hexsha == commit_hash: + return False + + repo.git.checkout(commit_hash) + return True + except: + return None diff --git a/glob/manager_downloader.py b/glob/manager_downloader.py new file mode 100644 index 00000000..2718de50 --- /dev/null +++ b/glob/manager_downloader.py @@ -0,0 +1,163 @@ +import os +from urllib.parse import urlparse +import urllib +import sys +import logging +import requests +from huggingface_hub import HfApi +from tqdm.auto import tqdm + + +aria2 = os.getenv('COMFYUI_MANAGER_ARIA2_SERVER') +HF_ENDPOINT = os.getenv('HF_ENDPOINT') + + +if aria2 is not None: + secret = os.getenv('COMFYUI_MANAGER_ARIA2_SECRET') + url = urlparse(aria2) + port = url.port + host = url.scheme + '://' + url.hostname + import aria2p + + aria2 = aria2p.API(aria2p.Client(host=host, port=port, secret=secret)) + + +def basic_download_url(url, dest_folder: str, filename: str): + ''' + Download file from url to dest_folder with filename + using requests library. + ''' + import requests + + # Ensure the destination folder exists + if not os.path.exists(dest_folder): + os.makedirs(dest_folder) + + # Full path to save the file + dest_path = os.path.join(dest_folder, filename) + + # Download the file + response = requests.get(url, stream=True) + if response.status_code == 200: + with open(dest_path, 'wb') as file: + for chunk in response.iter_content(chunk_size=1024): + if chunk: + file.write(chunk) + else: + raise Exception(f"Failed to download file from {url}") + + +def download_url(model_url: str, model_dir: str, filename: str): + if HF_ENDPOINT: + model_url = model_url.replace('https://huggingface.co', HF_ENDPOINT) + logging.info(f"model_url replaced by HF_ENDPOINT, new = {model_url}") + if aria2: + return aria2_download_url(model_url, model_dir, filename) + else: + from torchvision.datasets.utils import download_url as torchvision_download_url + try: + return torchvision_download_url(model_url, model_dir, filename) + except Exception as e: + logging.error(f"[ComfyUI-Manager] Failed to download: {model_url} / {repr(e)}") + raise + + +def aria2_find_task(dir: str, filename: str): + target = os.path.join(dir, filename) + + downloads = aria2.get_downloads() + + for download in downloads: + for file in download.files: + if file.is_metadata: + continue + if str(file.path) == target: + return download + + +def aria2_download_url(model_url: str, model_dir: str, filename: str): + import manager_core as core + import tqdm + import time + + if model_dir.startswith(core.comfy_path): + model_dir = model_dir[len(core.comfy_path) :] + + download_dir = model_dir if model_dir.startswith('/') else os.path.join('/models', model_dir) + + download = aria2_find_task(download_dir, filename) + if download is None: + options = {'dir': download_dir, 'out': filename} + download = aria2.add(model_url, options)[0] + + if download.is_active: + with tqdm.tqdm( + total=download.total_length, + bar_format='{l_bar}{bar}{r_bar}', + desc=filename, + unit='B', + unit_scale=True, + ) as progress_bar: + while download.is_active: + if progress_bar.total == 0 and download.total_length != 0: + progress_bar.reset(download.total_length) + progress_bar.update(download.completed_length - progress_bar.n) + time.sleep(1) + download.update() + + +def download_url_with_agent(url, save_path): + try: + headers = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} + + req = urllib.request.Request(url, headers=headers) + response = urllib.request.urlopen(req) + data = response.read() + + if not os.path.exists(os.path.dirname(save_path)): + os.makedirs(os.path.dirname(save_path)) + + with open(save_path, 'wb') as f: + f.write(data) + + except Exception as e: + print(f"Download error: {url} / {e}", file=sys.stderr) + return False + + print("Installation was successful.") + return True + +# NOTE: snapshot_download doesn't provide file size tqdm. +def download_repo_in_bytes(repo_id, local_dir): + api = HfApi() + repo_info = api.repo_info(repo_id=repo_id, files_metadata=True) + + os.makedirs(local_dir, exist_ok=True) + + total_size = 0 + for file_info in repo_info.siblings: + if file_info.size is not None: + total_size += file_info.size + + pbar = tqdm(total=total_size, unit="B", unit_scale=True, desc="Downloading") + + for file_info in repo_info.siblings: + out_path = os.path.join(local_dir, file_info.rfilename) + os.makedirs(os.path.dirname(out_path), exist_ok=True) + + if file_info.size is None: + continue + + download_url = f"https://huggingface.co/{repo_id}/resolve/main/{file_info.rfilename}" + + with requests.get(download_url, stream=True) as r, open(out_path, "wb") as f: + r.raise_for_status() + for chunk in r.iter_content(chunk_size=65536): + if chunk: + f.write(chunk) + pbar.update(len(chunk)) + + pbar.close() + + diff --git a/glob/manager_server.py b/glob/manager_server.py index c8431f9b..cb3bcd92 100644 --- a/glob/manager_server.py +++ b/glob/manager_server.py @@ -1,4 +1,3 @@ -import mimetypes import traceback import folder_paths @@ -6,22 +5,37 @@ import locale import subprocess # don't remove this import concurrent import nodes -import hashlib import os import sys import threading import re import shutil import git +from datetime import datetime from server import PromptServer import manager_core as core +import manager_util import cm_global +import logging +import asyncio +import queue -print(f"### Loading: ComfyUI-Manager ({core.version_str})") +import manager_downloader + + +logging.info(f"### Loading: ComfyUI-Manager ({core.version_str})") +logging.info("[ComfyUI-Manager] network_mode: " + core.get_config()['network_mode']) comfy_ui_hash = "-" +comfyui_tag = None +SECURITY_MESSAGE_MIDDLE_OR_BELOW = "ERROR: To use this action, a security_level of `middle or below` is required. Please contact the administrator.\nReference: https://github.com/ltdrdata/ComfyUI-Manager#security-policy" +SECURITY_MESSAGE_NORMAL_MINUS = "ERROR: To use this feature, you must either set '--listen' to a local IP and set the security level to 'normal-' or lower, or set the security level to 'middle' or 'weak'. Please contact the administrator.\nReference: https://github.com/ltdrdata/ComfyUI-Manager#security-policy" +SECURITY_MESSAGE_GENERAL = "ERROR: This installation is not allowed in this security_level. Please contact the administrator.\nReference: https://github.com/ltdrdata/ComfyUI-Manager#security-policy" +SECURITY_MESSAGE_NORMAL_MINUS_MODEL = "ERROR: Downloading models that are not in '.safetensors' format is only allowed for models registered in the 'default' channel at this security level. If you want to download this model, set the security level to 'normal-' or lower." + +routes = PromptServer.instance.routes def handle_stream(stream, prefix): stream.reconfigure(encoding=locale.getpreferredencoding(), errors='replace') @@ -41,6 +55,73 @@ def handle_stream(stream, prefix): from comfy.cli_args import args import latent_preview +def is_loopback(address): + import ipaddress + try: + return ipaddress.ip_address(address).is_loopback + except ValueError: + return False + +is_local_mode = is_loopback(args.listen) + + +model_dir_name_map = { + "checkpoints": "checkpoints", + "checkpoint": "checkpoints", + "unclip": "checkpoints", + "text_encoders": "text_encoders", + "clip": "text_encoders", + "vae": "vae", + "lora": "loras", + "t2i-adapter": "controlnet", + "t2i-style": "controlnet", + "controlnet": "controlnet", + "clip_vision": "clip_vision", + "gligen": "gligen", + "upscale": "upscale_models", + "embedding": "embeddings", + "embeddings": "embeddings", + "unet": "diffusion_models", + "diffusion_model": "diffusion_models", +} + + +def is_allowed_security_level(level): + if level == 'block': + return False + elif level == 'high': + if is_local_mode: + return core.get_config()['security_level'] in ['weak', 'normal-'] + else: + return core.get_config()['security_level'] == 'weak' + elif level == 'middle': + return core.get_config()['security_level'] in ['weak', 'normal', 'normal-'] + else: + return True + + +async def get_risky_level(files, pip_packages): + json_data1 = await core.get_data_by_mode('local', 'custom-node-list.json') + json_data2 = await core.get_data_by_mode('cache', 'custom-node-list.json', channel_url='https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main') + + all_urls = set() + for x in json_data1['custom_nodes'] + json_data2['custom_nodes']: + all_urls.update(x.get('files', [])) + + for x in files: + if x not in all_urls: + return "high" + + all_pip_packages = set() + for x in json_data1['custom_nodes'] + json_data2['custom_nodes']: + all_pip_packages.update(x.get('pip', [])) + + for p in pip_packages: + if p not in all_pip_packages: + return "block" + + return "middle" + class ManagerFuncsInComfyUI(core.ManagerFuncs): def get_current_preview_method(self): @@ -55,10 +136,10 @@ class ManagerFuncsInComfyUI(core.ManagerFuncs): def run_script(self, cmd, cwd='.'): if len(cmd) > 0 and cmd[0].startswith("#"): - print(f"[ComfyUI-Manager] Unexpected behavior: `{cmd}`") + logging.error(f"[ComfyUI-Manager] Unexpected behavior: `{cmd}`") return 0 - process = subprocess.Popen(cmd, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, bufsize=1) + process = subprocess.Popen(cmd, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, bufsize=1, env=core.get_script_env()) stdout_thread = threading.Thread(target=handle_stream, args=(process.stdout, "")) stderr_thread = threading.Thread(target=handle_stream, args=(process.stderr, "[!]")) @@ -76,16 +157,15 @@ core.manager_funcs = ManagerFuncsInComfyUI() sys.path.append('../..') -from torchvision.datasets.utils import download_url +from manager_downloader import download_url, download_url_with_agent core.comfy_path = os.path.dirname(folder_paths.__file__) core.js_path = os.path.join(core.comfy_path, "web", "extensions") -local_db_model = os.path.join(core.comfyui_manager_path, "model-list.json") -local_db_alter = os.path.join(core.comfyui_manager_path, "alter-list.json") -local_db_custom_node_list = os.path.join(core.comfyui_manager_path, "custom-node-list.json") -local_db_extension_node_mappings = os.path.join(core.comfyui_manager_path, "extension-node-map.json") -components_path = os.path.join(core.comfyui_manager_path, 'components') +local_db_model = os.path.join(manager_util.comfyui_manager_path, "model-list.json") +local_db_alter = os.path.join(manager_util.comfyui_manager_path, "alter-list.json") +local_db_custom_node_list = os.path.join(manager_util.comfyui_manager_path, "custom-node-list.json") +local_db_extension_node_mappings = os.path.join(manager_util.comfyui_manager_path, "extension-node-map.json") def set_preview_method(method): @@ -98,30 +178,27 @@ def set_preview_method(method): else: args.preview_method = latent_preview.LatentPreviewMethod.NoPreviews - core.get_config()['preview_method'] = args.preview_method + core.get_config()['preview_method'] = method -set_preview_method(core.get_config()['preview_method']) - - -def set_badge_mode(mode): - core.get_config()['badge_mode'] = mode - - -def set_default_ui_mode(mode): - core.get_config()['default_ui'] = mode +if args.preview_method == latent_preview.LatentPreviewMethod.NoPreviews: + set_preview_method(core.get_config()['preview_method']) +else: + logging.warning("[ComfyUI-Manager] Since --preview-method is set, ComfyUI-Manager's preview method feature will be ignored.") def set_component_policy(mode): core.get_config()['component_policy'] = mode +def set_update_policy(mode): + core.get_config()['update_policy'] = mode -def set_double_click_policy(mode): - core.get_config()['double_click_policy'] = mode - +def set_db_mode(mode): + core.get_config()['db_mode'] = mode def print_comfyui_version(): global comfy_ui_hash + global comfyui_tag is_detached = False try: @@ -137,9 +214,11 @@ def print_comfyui_version(): is_detached = repo.head.is_detached current_branch = repo.active_branch.name + comfyui_tag = core.get_comfyui_tag() + try: - if core.comfy_ui_commit_datetime.date() < core.comfy_ui_required_commit_datetime.date(): - print(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({core.comfy_ui_revision})[{core.comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version. ##\n\n") + if not os.environ.get('__COMFYUI_DESKTOP_VERSION__') and core.comfy_ui_commit_datetime.date() < core.comfy_ui_required_commit_datetime.date(): + logging.warning(f"\n\n## [WARN] ComfyUI-Manager: Your ComfyUI version ({core.comfy_ui_revision})[{core.comfy_ui_commit_datetime.date()}] is too old. Please update to the latest version. ##\n\n") except: pass @@ -149,43 +228,35 @@ def print_comfyui_version(): try: f(core.comfy_ui_revision) except Exception: - print(f"[ERROR] '{k}' on_revision_detected_handler") + logging.error(f"[ERROR] '{k}' on_revision_detected_handler") traceback.print_exc() del cm_global.variables['cm.on_revision_detected_handler'] else: - print(f"[ComfyUI-Manager] Some features are restricted due to your ComfyUI being outdated.") + logging.warning("[ComfyUI-Manager] Some features are restricted due to your ComfyUI being outdated.") # <-- if current_branch == "master": - print(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'") + if comfyui_tag: + logging.info(f"### ComfyUI Version: {comfyui_tag} | Released on '{core.comfy_ui_commit_datetime.date()}'") + else: + logging.info(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'") else: - print(f"### ComfyUI Revision: {core.comfy_ui_revision} on '{current_branch}' [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'") + if comfyui_tag: + logging.info(f"### ComfyUI Version: {comfyui_tag} on '{current_branch}' | Released on '{core.comfy_ui_commit_datetime.date()}'") + else: + logging.info(f"### ComfyUI Revision: {core.comfy_ui_revision} on '{current_branch}' [{comfy_ui_hash[:8]}] | Released on '{core.comfy_ui_commit_datetime.date()}'") except: if is_detached: - print(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] *DETACHED | Released on '{core.comfy_ui_commit_datetime.date()}'") + logging.info(f"### ComfyUI Revision: {core.comfy_ui_revision} [{comfy_ui_hash[:8]}] *DETACHED | Released on '{core.comfy_ui_commit_datetime.date()}'") else: - print("### ComfyUI Revision: UNKNOWN (The currently installed ComfyUI is not a Git repository)") + logging.info("### ComfyUI Revision: UNKNOWN (The currently installed ComfyUI is not a Git repository)") print_comfyui_version() +core.check_invalid_nodes() -async def populate_github_stats(json_obj, filename, silent=False): - uri = os.path.join(core.comfyui_manager_path, filename) - with open(uri, "r", encoding='utf-8') as f: - github_stats = json.load(f) - if 'custom_nodes' in json_obj: - for i, node in enumerate(json_obj['custom_nodes']): - url = node['reference'] - if url in github_stats: - json_obj['custom_nodes'][i]['stars'] = github_stats[url]['stars'] - json_obj['custom_nodes'][i]['last_update'] = github_stats[url]['last_update'] - else: - json_obj['custom_nodes'][i]['stars'] = -1 - json_obj['custom_nodes'][i]['last_update'] = -1 - return json_obj - def setup_environment(): git_exe = core.get_config()['git_exe'] @@ -198,7 +269,6 @@ setup_environment() # Expand Server api -import server from aiohttp import web import aiohttp import json @@ -206,52 +276,69 @@ import zipfile import urllib.request -def get_model_dir(data): +def get_model_dir(data, show_log=False): + if 'download_model_base' in folder_paths.folder_names_and_paths: + models_base = folder_paths.folder_names_and_paths['download_model_base'][0][0] + else: + models_base = folder_paths.models_dir + + # NOTE: Validate to prevent path traversal. + if any(char in data['filename'] for char in {'/', '\\', ':'}): + return None + + def resolve_custom_node(save_path): + save_path = save_path[13:] # remove 'custom_nodes/' + + # NOTE: Validate to prevent path traversal. + if save_path.startswith(os.path.sep) or ':' in save_path: + return None + + repo_name = save_path.replace('\\','/').split('/')[0] # get custom node repo name + + # NOTE: The creation of files within the custom node path should be removed in the future. + repo_path = core.lookup_installed_custom_nodes_legacy(repo_name) + if repo_path is not None and repo_path[0]: + # Returns the retargeted path based on the actually installed repository + return os.path.join(os.path.dirname(repo_path[1]), save_path) + else: + return None + if data['save_path'] != 'default': if '..' in data['save_path'] or data['save_path'].startswith('/'): - print(f"[WARN] '{data['save_path']}' is not allowed path. So it will be saved into 'models/etc'.") - base_model = "etc" + if show_log: + logging.info(f"[WARN] '{data['save_path']}' is not allowed path. So it will be saved into 'models/etc'.") + base_model = os.path.join(models_base, "etc") else: if data['save_path'].startswith("custom_nodes"): - base_model = os.path.join(core.comfy_path, data['save_path']) + base_model = resolve_custom_node(data['save_path']) + if base_model is None: + if show_log: + logging.info(f"[ComfyUI-Manager] The target custom node for model download is not installed: {data['save_path']}") + return None else: - base_model = os.path.join(folder_paths.models_dir, data['save_path']) + base_model = os.path.join(models_base, data['save_path']) else: - model_type = data['type'] - if model_type == "checkpoints": - base_model = folder_paths.folder_names_and_paths["checkpoints"][0][0] - elif model_type == "unclip": - base_model = folder_paths.folder_names_and_paths["checkpoints"][0][0] - elif model_type == "VAE": - base_model = folder_paths.folder_names_and_paths["vae"][0][0] - elif model_type == "lora": - base_model = folder_paths.folder_names_and_paths["loras"][0][0] - elif model_type == "T2I-Adapter": - base_model = folder_paths.folder_names_and_paths["controlnet"][0][0] - elif model_type == "T2I-Style": - base_model = folder_paths.folder_names_and_paths["controlnet"][0][0] - elif model_type == "controlnet": - base_model = folder_paths.folder_names_and_paths["controlnet"][0][0] - elif model_type == "clip_vision": - base_model = folder_paths.folder_names_and_paths["clip_vision"][0][0] - elif model_type == "gligen": - base_model = folder_paths.folder_names_and_paths["gligen"][0][0] - elif model_type == "upscale": - base_model = folder_paths.folder_names_and_paths["upscale_models"][0][0] - elif model_type == "embeddings": - base_model = folder_paths.folder_names_and_paths["embeddings"][0][0] + model_dir_name = model_dir_name_map.get(data['type'].lower()) + if model_dir_name is not None: + base_model = folder_paths.folder_names_and_paths[model_dir_name][0][0] else: - base_model = "etc" + base_model = os.path.join(models_base, "etc") return base_model -def get_model_path(data): - base_model = get_model_dir(data) - return os.path.join(base_model, data['filename']) +def get_model_path(data, show_log=False): + base_model = get_model_dir(data, show_log) + if base_model is None: + return None + else: + if data['filename'] == '': + return os.path.join(base_model, os.path.basename(data['url'])) + else: + return os.path.join(base_model, data['filename']) -def check_custom_nodes_installed(json_obj, do_fetch=False, do_update_check=True, do_update=False): +def check_state_of_git_node_pack(node_packs, do_fetch=False, do_update_check=True, do_update=False): if do_fetch: print("Start fetching...", end="") elif do_update: @@ -260,22 +347,23 @@ def check_custom_nodes_installed(json_obj, do_fetch=False, do_update_check=True, print("Start update check...", end="") def process_custom_node(item): - core.check_a_custom_node_installed(item, do_fetch, do_update_check, do_update) + core.check_state_of_git_node_pack_single(item, do_fetch, do_update_check, do_update) with concurrent.futures.ThreadPoolExecutor(4) as executor: - for item in json_obj['custom_nodes']: - executor.submit(process_custom_node, item) + for k, v in node_packs.items(): + if v.get('active_version') in ['unknown', 'nightly']: + executor.submit(process_custom_node, v) if do_fetch: - print(f"\x1b[2K\rFetching done.") + print("\x1b[2K\rFetching done.") elif do_update: - update_exists = any(item['installed'] == 'Update' for item in json_obj['custom_nodes']) + update_exists = any(item.get('updatable', False) for item in node_packs.values()) if update_exists: - print(f"\x1b[2K\rUpdate done.") + print("\x1b[2K\rUpdate done.") else: - print(f"\x1b[2K\rAll extensions are already up-to-date.") + print("\x1b[2K\rAll extensions are already up-to-date.") elif do_update_check: - print(f"\x1b[2K\rUpdate check done.") + print("\x1b[2K\rUpdate check done.") def nickname_filter(json_obj): @@ -306,8 +394,282 @@ def nickname_filter(json_obj): return json_obj -@PromptServer.instance.routes.get("/customnode/getmappings") +task_queue = queue.Queue() +nodepack_result = {} +model_result = {} +tasks_in_progress = set() +task_worker_lock = threading.Lock() + +async def task_worker(): + global task_queue + global nodepack_result + global model_result + global tasks_in_progress + + async def do_install(item) -> str: + ui_id, node_spec_str, channel, mode, skip_post_install = item + + try: + node_spec = core.unified_manager.resolve_node_spec(node_spec_str) + if node_spec is None: + logging.error(f"Cannot resolve install target: '{node_spec_str}'") + return f"Cannot resolve install target: '{node_spec_str}'" + + node_name, version_spec, is_specified = node_spec + res = await core.unified_manager.install_by_id(node_name, version_spec, channel, mode, return_postinstall=skip_post_install) + # discard post install if skip_post_install mode + + if res.action not in ['skip', 'enable', 'install-git', 'install-cnr', 'switch-cnr']: + logging.error(f"[ComfyUI-Manager] Installation failed:\n{res.msg}") + return res.msg + + elif not res.result: + logging.error(f"[ComfyUI-Manager] Installation failed:\n{res.msg}") + return res.msg + + return 'success' + except Exception: + traceback.print_exc() + return f"Installation failed:\n{node_spec_str}" + + async def do_update(item): + ui_id, node_name, node_ver = item + + try: + res = core.unified_manager.unified_update(node_name, node_ver) + + if res.ver == 'unknown': + url = core.unified_manager.unknown_active_nodes[node_name][0] + try: + title = os.path.basename(url) + except Exception: + title = node_name + else: + url = core.unified_manager.cnr_map[node_name].get('repository') + title = core.unified_manager.cnr_map[node_name]['name'] + + manager_util.clear_pip_cache() + + if url is not None: + base_res = {'url': url, 'title': title} + else: + base_res = {'title': title} + + if res.result: + if res.action == 'skip': + base_res['msg'] = 'skip' + return base_res + else: + base_res['msg'] = 'success' + return base_res + + base_res['msg'] = f"An error occurred while updating '{node_name}'." + logging.error(f"\nERROR: An error occurred while updating '{node_name}'. (res.result={res.result}, res.action={res.action})") + return base_res + except Exception: + traceback.print_exc() + + return {'msg':f"An error occurred while updating '{node_name}'."} + + async def do_update_comfyui(is_stable) -> str: + try: + repo_path = os.path.dirname(folder_paths.__file__) + latest_tag = None + if is_stable: + res, latest_tag = core.update_to_stable_comfyui(repo_path) + else: + res = core.update_path(repo_path) + + if res == "fail": + logging.error("ComfyUI update failed") + return "fail" + elif res == "updated": + if is_stable: + logging.info("ComfyUI is updated to latest stable version.") + return "success-stable-"+latest_tag + else: + logging.info("ComfyUI is updated to latest nightly version.") + return "success-nightly" + else: # skipped + logging.info("ComfyUI is up-to-date.") + return "skip" + + except Exception: + traceback.print_exc() + + return "An error occurred while updating 'comfyui'." + + async def do_fix(item) -> str: + ui_id, node_name, node_ver = item + + try: + res = core.unified_manager.unified_fix(node_name, node_ver) + + if res.result: + return 'success' + else: + logging.error(res.msg) + + logging.error(f"\nERROR: An error occurred while fixing '{node_name}@{node_ver}'.") + except Exception: + traceback.print_exc() + + return f"An error occurred while fixing '{node_name}@{node_ver}'." + + async def do_uninstall(item) -> str: + ui_id, node_name, is_unknown = item + + try: + res = core.unified_manager.unified_uninstall(node_name, is_unknown) + + if res.result: + return 'success' + + logging.error(f"\nERROR: An error occurred while uninstalling '{node_name}'.") + except Exception: + traceback.print_exc() + + return f"An error occurred while uninstalling '{node_name}'." + + async def do_disable(item) -> str: + ui_id, node_name, is_unknown = item + + try: + res = core.unified_manager.unified_disable(node_name, is_unknown) + + if res: + return 'success' + + except Exception: + traceback.print_exc() + + return f"Failed to disable: '{node_name}'" + + async def do_install_model(item) -> str: + ui_id, json_data = item + + model_path = get_model_path(json_data) + model_url = json_data['url'] + + res = False + + try: + if model_path is not None: + logging.info(f"Install model '{json_data['name']}' from '{model_url}' into '{model_path}'") + + if json_data['filename'] == '': + if os.path.exists(os.path.join(model_path, os.path.dirname(json_data['url']))): + logging.error(f"[ComfyUI-Manager] the model path already exists: {model_path}") + return f"The model path already exists: {model_path}" + + logging.info(f"[ComfyUI-Manager] Downloading '{model_url}' into '{model_path}'") + manager_downloader.download_repo_in_bytes(repo_id=model_url, local_dir=model_path) + + return 'success' + + elif not core.get_config()['model_download_by_agent'] and ( + model_url.startswith('https://github.com') or model_url.startswith('https://huggingface.co') or model_url.startswith('https://heibox.uni-heidelberg.de')): + model_dir = get_model_dir(json_data, True) + download_url(model_url, model_dir, filename=json_data['filename']) + if model_path.endswith('.zip'): + res = core.unzip(model_path) + else: + res = True + + if res: + return 'success' + else: + res = download_url_with_agent(model_url, model_path) + if res and model_path.endswith('.zip'): + res = core.unzip(model_path) + else: + logging.error(f"[ComfyUI-Manager] Model installation error: invalid model type - {json_data['type']}") + + if res: + return 'success' + + except Exception as e: + logging.error(f"[ComfyUI-Manager] ERROR: {e}") + + return f"Model installation error: {model_url}" + + stats = {} + + while True: + done_count = len(nodepack_result) + len(model_result) + total_count = done_count + task_queue.qsize() + + if task_queue.empty(): + logging.info(f"\n[ComfyUI-Manager] Queued works are completed.\n{stats}") + + logging.info("\nAfter restarting ComfyUI, please refresh the browser.") + PromptServer.instance.send_sync("cm-queue-status", + {'status': 'done', + 'nodepack_result': nodepack_result, 'model_result': model_result, + 'total_count': total_count, 'done_count': done_count}) + nodepack_result = {} + task_queue = queue.Queue() + return # terminate worker thread + + with task_worker_lock: + kind, item = task_queue.get() + tasks_in_progress.add((kind, item[0])) + + try: + if kind == 'install': + msg = await do_install(item) + elif kind == 'install-model': + msg = await do_install_model(item) + elif kind == 'update': + msg = await do_update(item) + elif kind == 'update-main': + msg = await do_update(item) + elif kind == 'update-comfyui': + msg = await do_update_comfyui(item[1]) + elif kind == 'fix': + msg = await do_fix(item) + elif kind == 'uninstall': + msg = await do_uninstall(item) + elif kind == 'disable': + msg = await do_disable(item) + else: + msg = "Unexpected kind: " + kind + except Exception: + traceback.print_exc() + msg = f"Exception: {(kind, item)}" + + with task_worker_lock: + tasks_in_progress.remove((kind, item[0])) + + ui_id = item[0] + if kind == 'install-model': + model_result[ui_id] = msg + ui_target = "model_manager" + elif kind == 'update-main': + nodepack_result[ui_id] = msg + ui_target = "main" + elif kind == 'update-comfyui': + nodepack_result['comfyui'] = msg + ui_target = "main" + elif kind == 'update': + nodepack_result[ui_id] = msg['msg'] + ui_target = "nodepack_manager" + else: + nodepack_result[ui_id] = msg + ui_target = "nodepack_manager" + + stats[kind] = stats.get(kind, 0) + 1 + + PromptServer.instance.send_sync("cm-queue-status", + {'status': 'in_progress', 'target': item[0], 'ui_target': ui_target, + 'total_count': total_count, 'done_count': done_count}) + + +@routes.get("/customnode/getmappings") async def fetch_customnode_mappings(request): + """ + provide unified (node -> node pack) mapping list + """ mode = request.rel_url.query["mode"] nickname_mode = False @@ -316,6 +678,7 @@ async def fetch_customnode_mappings(request): nickname_mode = True json_obj = await core.get_data_by_mode(mode, 'extension-node-map.json') + json_obj = core.map_to_unified_keys(json_obj) if nickname_mode: json_obj = nickname_filter(json_obj) @@ -338,54 +701,79 @@ async def fetch_customnode_mappings(request): return web.json_response(json_obj, content_type='application/json') -@PromptServer.instance.routes.get("/customnode/fetch_updates") +@routes.get("/customnode/fetch_updates") async def fetch_updates(request): try: - json_obj = await core.get_data_by_mode(request.rel_url.query["mode"], 'custom-node-list.json') + if request.rel_url.query["mode"] == "local": + channel = 'local' + else: + channel = core.get_config()['channel_url'] - check_custom_nodes_installed(json_obj, True) + await core.unified_manager.reload(request.rel_url.query["mode"]) + await core.unified_manager.get_custom_nodes(channel, request.rel_url.query["mode"]) - update_exists = any('custom_nodes' in json_obj and 'installed' in node and node['installed'] == 'Update' for node in - json_obj['custom_nodes']) + res = core.unified_manager.fetch_or_pull_git_repo(is_pull=False) - if update_exists: + for x in res['failed']: + logging.error(f"FETCH FAILED: {x}") + + logging.info("\nDone.") + + if len(res['updated']) > 0: return web.Response(status=201) return web.Response(status=200) except: + traceback.print_exc() return web.Response(status=400) -@PromptServer.instance.routes.get("/customnode/update_all") +@routes.get("/manager/queue/update_all") async def update_all(request): - try: - core.save_snapshot_with_postfix('autosave') + if not is_allowed_security_level('middle'): + logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW) + return web.Response(status=403) - json_obj = await core.get_data_by_mode(request.rel_url.query["mode"], 'custom-node-list.json') + with task_worker_lock: + is_processing = task_worker_thread is not None and task_worker_thread.is_alive() + if is_processing: + return web.Response(status=401) + + await core.save_snapshot_with_postfix('autosave') - check_custom_nodes_installed(json_obj, do_update=True) + if request.rel_url.query["mode"] == "local": + channel = 'local' + else: + channel = core.get_config()['channel_url'] - updated = [item['title'] for item in json_obj['custom_nodes'] if item['installed'] == 'Update'] - failed = [item['title'] for item in json_obj['custom_nodes'] if item['installed'] == 'Fail'] + await core.unified_manager.reload(request.rel_url.query["mode"]) + await core.unified_manager.get_custom_nodes(channel, request.rel_url.query["mode"]) - res = {'updated': updated, 'failed': failed} + for k, v in core.unified_manager.active_nodes.items(): + if k == 'comfyui-manager': + # skip updating comfyui-manager if desktop version + if os.environ.get('__COMFYUI_DESKTOP_VERSION__'): + continue - if len(updated) == 0 and len(failed) == 0: - status = 200 - else: - status = 201 + update_item = k, k, v[0] + task_queue.put(("update-main", update_item)) - return web.json_response(res, status=status, content_type='application/json') - except: - return web.Response(status=400) - finally: - core.clear_pip_cache() + for k, v in core.unified_manager.unknown_active_nodes.items(): + if k == 'comfyui-manager': + # skip updating comfyui-manager if desktop version + if os.environ.get('__COMFYUI_DESKTOP_VERSION__'): + continue + + update_item = k, k, 'unknown' + task_queue.put(("update-main", update_item)) + + return web.Response(status=200) def convert_markdown_to_html(input_text): - pattern_a = re.compile(r'\[a/([^]]+)\]\(([^)]+)\)') - pattern_w = re.compile(r'\[w/([^]]+)\]') - pattern_i = re.compile(r'\[i/([^]]+)\]') + pattern_a = re.compile(r'\[a/([^]]+)]\(([^)]+)\)') + pattern_w = re.compile(r'\[w/([^]]+)]') + pattern_i = re.compile(r'\[i/([^]]+)]') pattern_bold = re.compile(r'\*\*([^*]+)\*\*') pattern_white = re.compile(r'%%([^*]+)%%') @@ -417,18 +805,35 @@ def convert_markdown_to_html(input_text): def populate_markdown(x): if 'description' in x: - x['description'] = convert_markdown_to_html(x['description']) + x['description'] = convert_markdown_to_html(manager_util.sanitize_tag(x['description'])) if 'name' in x: - x['name'] = x['name'].replace('<', '<').replace('>', '>') + x['name'] = manager_util.sanitize_tag(x['name']) if 'title' in x: - x['title'] = x['title'].replace('<', '<').replace('>', '>') + x['title'] = manager_util.sanitize_tag(x['title']) -@PromptServer.instance.routes.get("/customnode/getlist") +# freeze imported version +startup_time_installed_node_packs = core.get_installed_node_packs() +@routes.get("/customnode/installed") +async def installed_list(request): + mode = request.query.get('mode', 'default') + + if mode == 'imported': + res = startup_time_installed_node_packs + else: + res = core.get_installed_node_packs() + + return web.json_response(res, content_type='application/json') + + +@routes.get("/customnode/getlist") async def fetch_customnode_list(request): - if "skip_update" in request.rel_url.query and request.rel_url.query["skip_update"] == "true": + """ + provide unified custom node list + """ + if request.rel_url.query.get("skip_update", '').lower() == "true": skip_update = True else: skip_update = False @@ -438,27 +843,17 @@ async def fetch_customnode_list(request): else: channel = core.get_config()['channel_url'] - json_obj = await core.get_data_by_mode(request.rel_url.query["mode"], 'custom-node-list.json') - json_obj = await populate_github_stats(json_obj, "github-stats.json") + node_packs = await core.get_unified_total_nodes(channel, request.rel_url.query["mode"], 'cache') + json_obj_github = core.get_data_by_mode(request.rel_url.query["mode"], 'github-stats.json', 'default') + json_obj_extras = core.get_data_by_mode(request.rel_url.query["mode"], 'extras.json', 'default') - def is_ignored_notice(code): - global version + core.populate_github_stats(node_packs, await json_obj_github) + core.populate_favorites(node_packs, await json_obj_extras) - if code is not None and code.startswith('#NOTICE_'): - try: - notice_version = [int(x) for x in code[8:].split('.')] - return notice_version[0] < version[0] or (notice_version[0] == version[0] and notice_version[1] <= version[1]) - except Exception: - return False - else: - return False + check_state_of_git_node_pack(node_packs, not skip_update, do_update_check=not skip_update) - json_obj['custom_nodes'] = [record for record in json_obj['custom_nodes'] if not is_ignored_notice(record.get('author'))] - - check_custom_nodes_installed(json_obj, False, not skip_update) - - for x in json_obj['custom_nodes']: - populate_markdown(x) + for v in node_packs.values(): + populate_markdown(v) if channel != 'local': found = 'custom' @@ -470,58 +865,85 @@ async def fetch_customnode_list(request): channel = found - json_obj['channel'] = channel + result = dict(channel=channel, node_packs=node_packs.to_dict()) - return web.json_response(json_obj, content_type='application/json') + return web.json_response(result, content_type='application/json') -@PromptServer.instance.routes.get("/alternatives/getlist") -async def fetch_alternatives_list(request): - if "skip_update" in request.rel_url.query and request.rel_url.query["skip_update"] == "true": - skip_update = True - else: - skip_update = False - +@routes.get("/customnode/alternatives") +async def fetch_customnode_alternatives(request): alter_json = await core.get_data_by_mode(request.rel_url.query["mode"], 'alter-list.json') - custom_node_json = await core.get_data_by_mode(request.rel_url.query["mode"], 'custom-node-list.json') - fileurl_to_custom_node = {} - - for item in custom_node_json['custom_nodes']: - for fileurl in item['files']: - fileurl_to_custom_node[fileurl] = item + res = {} for item in alter_json['items']: - fileurl = item['id'] - if fileurl in fileurl_to_custom_node: - custom_node = fileurl_to_custom_node[fileurl] - core.check_a_custom_node_installed(custom_node, not skip_update) + populate_markdown(item) + res[item['id']] = item - populate_markdown(item) - populate_markdown(custom_node) - item['custom_node'] = custom_node + res = core.map_to_unified_keys(res) - return web.json_response(alter_json, content_type='application/json') + return web.json_response(res, content_type='application/json') def check_model_installed(json_obj): - def process_model(item): - model_path = get_model_path(item) - item['installed'] = 'None' + def is_exists(model_dir_name, filename, url): + if filename == '': + filename = os.path.basename(url) - if model_path is not None: - if os.path.exists(model_path): + dirs = folder_paths.get_folder_paths(model_dir_name) + + for x in dirs: + if os.path.exists(os.path.join(x, filename)): + return True + + return False + + model_dir_names = ['checkpoints', 'loras', 'vae', 'text_encoders', 'diffusion_models', 'clip_vision', 'embeddings', + 'diffusers', 'vae_approx', 'controlnet', 'gligen', 'upscale_models', 'hypernetworks', + 'photomaker', 'classifiers'] + + total_models_files = set() + for x in model_dir_names: + for y in folder_paths.get_filename_list(x): + total_models_files.add(y) + + def process_model_phase(item): + if 'diffusion' not in item['filename'] and 'pytorch' not in item['filename'] and 'model' not in item['filename']: + # non-general name case + if item['filename'] in total_models_files: item['installed'] = 'True' + return + + if item['save_path'] == 'default': + model_dir_name = model_dir_name_map.get(item['type'].lower()) + if model_dir_name is not None: + item['installed'] = str(is_exists(model_dir_name, item['filename'], item['url'])) else: item['installed'] = 'False' + else: + model_dir_name = item['save_path'].split('/')[0] + if model_dir_name in folder_paths.folder_names_and_paths: + if is_exists(model_dir_name, item['filename'], item['url']): + item['installed'] = 'True' + + if 'installed' not in item: + if item['filename'] == '': + filename = os.path.basename(item['url']) + else: + filename = item['filename'] + + fullpath = os.path.join(folder_paths.models_dir, item['save_path'], filename) + + item['installed'] = 'True' if os.path.exists(fullpath) else 'False' with concurrent.futures.ThreadPoolExecutor(8) as executor: for item in json_obj['models']: - executor.submit(process_model, item) + executor.submit(process_model_phase, item) -@PromptServer.instance.routes.get("/externalmodel/getlist") +@routes.get("/externalmodel/getlist") async def fetch_externalmodel_list(request): + # The model list is only allowed in the default channel, yet. json_obj = await core.get_data_by_mode(request.rel_url.query["mode"], 'model-list.json') check_model_installed(json_obj) @@ -532,26 +954,23 @@ async def fetch_externalmodel_list(request): return web.json_response(json_obj, content_type='application/json') -@PromptServer.instance.routes.get("/snapshot/get_current") -async def get_snapshot_list(request): - json_obj = core.get_current_snapshot() - return web.json_response(json_obj, content_type='application/json') - - @PromptServer.instance.routes.get("/snapshot/getlist") async def get_snapshot_list(request): - snapshots_directory = os.path.join(core.comfyui_manager_path, 'snapshots') - items = [f[:-5] for f in os.listdir(snapshots_directory) if f.endswith('.json')] + items = [f[:-5] for f in os.listdir(core.manager_snapshot_path) if f.endswith('.json')] items.sort(reverse=True) return web.json_response({'items': items}, content_type='application/json') -@PromptServer.instance.routes.get("/snapshot/remove") +@routes.get("/snapshot/remove") async def remove_snapshot(request): + if not is_allowed_security_level('middle'): + logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW) + return web.Response(status=403) + try: target = request.rel_url.query["target"] - path = os.path.join(core.comfyui_manager_path, 'snapshots', f"{target}.json") + path = os.path.join(core.manager_snapshot_path, f"{target}.json") if os.path.exists(path): os.remove(path) @@ -560,40 +979,44 @@ async def remove_snapshot(request): return web.Response(status=400) -@PromptServer.instance.routes.get("/snapshot/restore") -async def remove_snapshot(request): +@routes.get("/snapshot/restore") +async def restore_snapshot(request): + if not is_allowed_security_level('middle'): + logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW) + return web.Response(status=403) + try: target = request.rel_url.query["target"] - path = os.path.join(core.comfyui_manager_path, 'snapshots', f"{target}.json") + path = os.path.join(core.manager_snapshot_path, f"{target}.json") if os.path.exists(path): - if not os.path.exists(core.startup_script_path): - os.makedirs(core.startup_script_path) + if not os.path.exists(core.manager_startup_script_path): + os.makedirs(core.manager_startup_script_path) - target_path = os.path.join(core.startup_script_path, "restore-snapshot.json") + target_path = os.path.join(core.manager_startup_script_path, "restore-snapshot.json") shutil.copy(path, target_path) - print(f"Snapshot restore scheduled: `{target}`") + logging.info(f"Snapshot restore scheduled: `{target}`") return web.Response(status=200) - print(f"Snapshot file not found: `{path}`") + logging.error(f"Snapshot file not found: `{path}`") return web.Response(status=400) except: return web.Response(status=400) -@PromptServer.instance.routes.get("/snapshot/get_current") +@routes.get("/snapshot/get_current") async def get_current_snapshot_api(request): try: - return web.json_response(core.get_current_snapshot(), content_type='application/json') + return web.json_response(await core.get_current_snapshot(), content_type='application/json') except: return web.Response(status=400) -@PromptServer.instance.routes.get("/snapshot/save") +@routes.get("/snapshot/save") async def save_snapshot(request): try: - core.save_snapshot_with_postfix('snapshot') + await core.save_snapshot_with_postfix('snapshot') return web.Response(status=200) except: return web.Response(status=400) @@ -616,37 +1039,14 @@ def unzip_install(files): f.write(data) with zipfile.ZipFile(temp_filename, 'r') as zip_ref: - zip_ref.extractall(core.custom_nodes_path) + zip_ref.extractall(core.get_default_custom_nodes_path()) os.remove(temp_filename) except Exception as e: - print(f"Install(unzip) error: {url} / {e}", file=sys.stderr) + logging.error(f"Install(unzip) error: {url} / {e}", file=sys.stderr) return False - print("Installation was successful.") - return True - - -def download_url_with_agent(url, save_path): - try: - headers = { - 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} - - req = urllib.request.Request(url, headers=headers) - response = urllib.request.urlopen(req) - data = response.read() - - if not os.path.exists(os.path.dirname(save_path)): - os.makedirs(os.path.dirname(save_path)) - - with open(save_path, 'wb') as f: - f.write(data) - - except Exception as e: - print(f"Download error: {url} / {e}", file=sys.stderr) - return False - - print("Installation was successful.") + logging.info("Installation was successful.") return True @@ -655,19 +1055,20 @@ def copy_install(files, js_path_name=None): if url.endswith("/"): url = url[:-1] try: + filename = os.path.basename(url) if url.endswith(".py"): - download_url(url, core.custom_nodes_path) + download_url(url, core.get_default_custom_nodes_path(), filename) else: path = os.path.join(core.js_path, js_path_name) if js_path_name is not None else core.js_path if not os.path.exists(path): os.makedirs(path) - download_url(url, path) + download_url(url, path, filename) except Exception as e: - print(f"Install(copy) error: {url} / {e}", file=sys.stderr) + logging.error(f"Install(copy) error: {url} / {e}", file=sys.stderr) return False - print("Installation was successful.") + logging.info("Installation was successful.") return True @@ -676,7 +1077,7 @@ def copy_uninstall(files, js_path_name='.'): if url.endswith("/"): url = url[:-1] dir_name = os.path.basename(url) - base_path = core.custom_nodes_path if url.endswith('.py') else os.path.join(core.js_path, js_path_name) + base_path = core.get_default_custom_nodes_path() if url.endswith('.py') else os.path.join(core.js_path, js_path_name) file_path = os.path.join(base_path, dir_name) try: @@ -685,10 +1086,10 @@ def copy_uninstall(files, js_path_name='.'): elif os.path.exists(file_path + ".disabled"): os.remove(file_path + ".disabled") except Exception as e: - print(f"Uninstall(copy) error: {url} / {e}", file=sys.stderr) + logging.error(f"Uninstall(copy) error: {url} / {e}", file=sys.stderr) return False - print("Uninstallation was successful.") + logging.info("Uninstallation was successful.") return True @@ -702,7 +1103,7 @@ def copy_set_active(files, is_disable, js_path_name='.'): if url.endswith("/"): url = url[:-1] dir_name = os.path.basename(url) - base_path = core.custom_nodes_path if url.endswith('.py') else os.path.join(core.js_path, js_path_name) + base_path = core.get_default_custom_nodes_path() if url.endswith('.py') else os.path.join(core.js_path, js_path_name) file_path = os.path.join(base_path, dir_name) try: @@ -716,288 +1117,362 @@ def copy_set_active(files, is_disable, js_path_name='.'): os.rename(current_name, new_name) except Exception as e: - print(f"{action_name}(copy) error: {url} / {e}", file=sys.stderr) + logging.error(f"{action_name}(copy) error: {url} / {e}", file=sys.stderr) return False - print(f"{action_name} was successful.") + logging.info(f"{action_name} was successful.") return True -@PromptServer.instance.routes.post("/customnode/install") -async def install_custom_node(request): - json_data = await request.json() +@routes.get("/customnode/versions/{node_name}") +async def get_cnr_versions(request): + node_name = request.match_info.get("node_name", None) + versions = core.cnr_utils.all_versions_of_node(node_name) - install_type = json_data['install_type'] - - print(f"Install custom node '{json_data['title']}'") - - res = False - - if len(json_data['files']) == 0: - return web.Response(status=400) - - if install_type == "unzip": - res = unzip_install(json_data['files']) - - if install_type == "copy": - js_path_name = json_data['js_path'] if 'js_path' in json_data else '.' - res = copy_install(json_data['files'], js_path_name) - - elif install_type == "git-clone": - res = core.gitclone_install(json_data['files']) - - if 'pip' in json_data: - for pname in json_data['pip']: - pkg = core.remap_pip_package(pname) - install_cmd = [sys.executable, "-m", "pip", "install", pkg] - core.try_install_script(json_data['files'][0], ".", install_cmd) - - core.clear_pip_cache() - - if res: - print(f"After restarting ComfyUI, please refresh the browser.") - return web.json_response({}, content_type='application/json') + if versions is not None: + return web.json_response(versions, content_type='application/json') return web.Response(status=400) -@PromptServer.instance.routes.post("/customnode/fix") -async def fix_custom_node(request): +@routes.get("/customnode/disabled_versions/{node_name}") +async def get_disabled_versions(request): + node_name = request.match_info.get("node_name", None) + versions = [] + if node_name in core.unified_manager.nightly_inactive_nodes: + versions.append(dict(version='nightly')) + + for v in core.unified_manager.cnr_inactive_nodes.get(node_name, {}).keys(): + versions.append(dict(version=v)) + + if versions: + return web.json_response(versions, content_type='application/json') + + return web.Response(status=400) + + +@routes.post("/customnode/import_fail_info") +async def import_fail_info(request): json_data = await request.json() - install_type = json_data['install_type'] - - print(f"Install custom node '{json_data['title']}'") - - res = False - - if len(json_data['files']) == 0: - return web.Response(status=400) - - if install_type == "git-clone": - res = core.gitclone_fix(json_data['files']) + if 'cnr_id' in json_data: + module_name = core.unified_manager.get_module_name(json_data['cnr_id']) else: - return web.Response(status=400) + module_name = core.unified_manager.get_module_name(json_data['url']) - if 'pip' in json_data: - for pname in json_data['pip']: - install_cmd = [sys.executable, "-m", "pip", "install", '-U', pname] - core.try_install_script(json_data['files'][0], ".", install_cmd) - - if res: - print(f"After restarting ComfyUI, please refresh the browser.") - return web.json_response({}, content_type='application/json') + if module_name is not None: + info = cm_global.error_dict.get(module_name) + if info is not None: + return web.json_response(info) return web.Response(status=400) -@PromptServer.instance.routes.get("/customnode/install/git_url") -async def install_custom_node_git_url(request): - res = False - if "url" in request.rel_url.query: - url = request.rel_url.query['url'] - res = core.gitclone_install([url]) - - if res: - print(f"After restarting ComfyUI, please refresh the browser.") - return web.Response(status=200) - - return web.Response(status=400) +@routes.post("/manager/queue/reinstall") +async def reinstall_custom_node(request): + await uninstall_custom_node(request) + await install_custom_node(request) -@PromptServer.instance.routes.get("/customnode/install/pip") -async def install_custom_node_git_url(request): - res = False - if "packages" in request.rel_url.query: - packages = request.rel_url.query['packages'] - core.pip_install(packages.split(' ')) +@routes.get("/manager/queue/reset") +async def reset_queue(request): + global task_queue + task_queue = queue.Queue() + return web.Response(status=200) + + +@routes.get("/manager/queue/status") +async def queue_count(request): + global task_queue + + with task_worker_lock: + done_count = len(nodepack_result) + len(model_result) + in_progress_count = len(tasks_in_progress) + total_count = done_count + in_progress_count + task_queue.qsize() + is_processing = task_worker_thread is not None and task_worker_thread.is_alive() + + return web.json_response({ + 'total_count': total_count, 'done_count': done_count, 'in_progress_count': in_progress_count, + 'is_processing': is_processing}) + + +@routes.post("/manager/queue/install") +async def install_custom_node(request): + if not is_allowed_security_level('middle'): + logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW) + return web.Response(status=403, text="A security error has occurred. Please check the terminal logs") + + json_data = await request.json() + + # non-nightly cnr is safe + risky_level = None + cnr_id = json_data.get('id') + skip_post_install = json_data.get('skip_post_install') + + git_url = None + + selected_version = json_data.get('selected_version') + if json_data['version'] != 'unknown' and selected_version != 'unknown': + if skip_post_install: + if cnr_id in core.unified_manager.nightly_inactive_nodes or cnr_id in core.unified_manager.cnr_inactive_nodes: + core.unified_manager.unified_enable(cnr_id) + return web.Response(status=200) + elif selected_version is None: + selected_version = 'latest' + + if selected_version != 'nightly': + risky_level = 'low' + node_spec_str = f"{cnr_id}@{selected_version}" + else: + node_spec_str = f"{cnr_id}@nightly" + git_url = [json_data.get('repository')] + if git_url is None: + logging.error(f"[ComfyUI-Manager] Following node pack doesn't provide `nightly` version: ${git_url}") + return web.Response(status=404, text=f"Following node pack doesn't provide `nightly` version: ${git_url}") + elif json_data['version'] != 'unknown' and selected_version == 'unknown': + logging.error(f"[ComfyUI-Manager] Invalid installation request: {json_data}") + return web.Response(status=400, text="Invalid installation request") + else: + # unknown + unknown_name = os.path.basename(json_data['files'][0]) + node_spec_str = f"{unknown_name}@unknown" + git_url = json_data.get('files') + + # apply security policy if not cnr node (nightly isn't regarded as cnr node) + if risky_level is None: + if git_url is not None: + risky_level = await get_risky_level(git_url, json_data.get('pip', [])) + else: + return web.Response(status=404, text=f"Following node pack doesn't provide `nightly` version: ${git_url}") + + if not is_allowed_security_level(risky_level): + logging.error(SECURITY_MESSAGE_GENERAL) + return web.Response(status=404, text="A security error has occurred. Please check the terminal logs") + + install_item = json_data.get('ui_id'), node_spec_str, json_data['channel'], json_data['mode'], skip_post_install + task_queue.put(("install", install_item)) return web.Response(status=200) -@PromptServer.instance.routes.post("/customnode/uninstall") +task_worker_thread:threading.Thread = None + +@routes.get("/manager/queue/start") +async def queue_start(request): + global nodepack_result + global model_result + global task_worker_thread + + if task_worker_thread is not None and task_worker_thread.is_alive(): + return web.Response(status=201) # already in-progress + + nodepack_result = {} + model_result = {} + + task_worker_thread = threading.Thread(target=lambda: asyncio.run(task_worker())) + task_worker_thread.start() + + return web.Response(status=200) + + +@routes.post("/manager/queue/fix") +async def fix_custom_node(request): + if not is_allowed_security_level('middle'): + logging.error(SECURITY_MESSAGE_GENERAL) + return web.Response(status=403, text="A security error has occurred. Please check the terminal logs") + + json_data = await request.json() + + node_id = json_data.get('id') + node_ver = json_data['version'] + if node_ver != 'unknown': + node_name = node_id + else: + # unknown + node_name = os.path.basename(json_data['files'][0]) + + update_item = json_data.get('ui_id'), node_name, json_data['version'] + task_queue.put(("fix", update_item)) + + return web.Response(status=200) + + +@routes.post("/customnode/install/git_url") +async def install_custom_node_git_url(request): + if not is_allowed_security_level('high'): + logging.error(SECURITY_MESSAGE_NORMAL_MINUS) + return web.Response(status=403) + + url = await request.text() + res = await core.gitclone_install(url) + + if res.action == 'skip': + logging.info(f"\nAlready installed: '{res.target}'") + return web.Response(status=200) + elif res.result: + logging.info("\nAfter restarting ComfyUI, please refresh the browser.") + return web.Response(status=200) + + logging.error(res.msg) + return web.Response(status=400) + + +@routes.post("/customnode/install/pip") +async def install_custom_node_pip(request): + if not is_allowed_security_level('high'): + logging.error(SECURITY_MESSAGE_NORMAL_MINUS) + return web.Response(status=403) + + packages = await request.text() + core.pip_install(packages.split(' ')) + + return web.Response(status=200) + + +@routes.post("/manager/queue/uninstall") async def uninstall_custom_node(request): + if not is_allowed_security_level('middle'): + logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW) + return web.Response(status=403, text="A security error has occurred. Please check the terminal logs") + json_data = await request.json() - install_type = json_data['install_type'] + node_id = json_data.get('id') + if json_data['version'] != 'unknown': + is_unknown = False + node_name = node_id + else: + # unknown + is_unknown = True + node_name = os.path.basename(json_data['files'][0]) - print(f"Uninstall custom node '{json_data['title']}'") + uninstall_item = json_data.get('ui_id'), node_name, is_unknown + task_queue.put(("uninstall", uninstall_item)) - res = False - - if install_type == "copy": - js_path_name = json_data['js_path'] if 'js_path' in json_data else '.' - res = copy_uninstall(json_data['files'], js_path_name) - - elif install_type == "git-clone": - res = core.gitclone_uninstall(json_data['files']) - - if res: - print(f"After restarting ComfyUI, please refresh the browser.") - return web.json_response({}, content_type='application/json') - - return web.Response(status=400) + return web.Response(status=200) -@PromptServer.instance.routes.post("/customnode/update") +@routes.post("/manager/queue/update") async def update_custom_node(request): + if not is_allowed_security_level('middle'): + logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW) + return web.Response(status=403, text="A security error has occurred. Please check the terminal logs") + json_data = await request.json() - install_type = json_data['install_type'] + node_id = json_data.get('id') + if json_data['version'] != 'unknown': + node_name = node_id + else: + # unknown + node_name = os.path.basename(json_data['files'][0]) - print(f"Update custom node '{json_data['title']}'") + update_item = json_data.get('ui_id'), node_name, json_data['version'] + task_queue.put(("update", update_item)) - res = False - - if install_type == "git-clone": - res = core.gitclone_update(json_data['files']) - - core.clear_pip_cache() - - if res: - print(f"After restarting ComfyUI, please refresh the browser.") - return web.json_response({}, content_type='application/json') - - return web.Response(status=400) + return web.Response(status=200) -@PromptServer.instance.routes.get("/comfyui_manager/update_comfyui") +@routes.get("/manager/queue/update_comfyui") async def update_comfyui(request): - print(f"Update ComfyUI") + is_stable = core.get_config()['update_policy'] != 'nightly-comfyui' + task_queue.put(("update-comfyui", ('comfyui', is_stable))) + return web.Response(status=200) + +@routes.get("/comfyui_manager/comfyui_versions") +async def comfyui_versions(request): try: - repo_path = os.path.dirname(folder_paths.__file__) - - if not os.path.exists(os.path.join(repo_path, '.git')): - print(f"ComfyUI update fail: The installed ComfyUI does not have a Git repository.") - return web.Response(status=400) - - # version check - repo = git.Repo(repo_path) - - if repo.head.is_detached: - core.switch_to_default_branch(repo) - - current_branch = repo.active_branch - branch_name = current_branch.name - - if current_branch.tracking_branch() is None: - print(f"[ComfyUI-Manager] There is no tracking branch ({current_branch})") - remote_name = 'origin' - else: - remote_name = current_branch.tracking_branch().remote_name - remote = repo.remote(name=remote_name) - - try: - remote.fetch() - except Exception as e: - if 'detected dubious' in str(e): - print(f"[ComfyUI-Manager] Try fixing 'dubious repository' error on 'ComfyUI' repository") - safedir_path = core.comfy_path.replace('\\', '/') - subprocess.run(['git', 'config', '--global', '--add', 'safe.directory', safedir_path]) - try: - remote.fetch() - except Exception: - print(f"\n[ComfyUI-Manager] Failed to fixing repository setup. Please execute this command on cmd: \n" - f"-----------------------------------------------------------------------------------------\n" - f'git config --global --add safe.directory "{safedir_path}"\n' - f"-----------------------------------------------------------------------------------------\n") - - commit_hash = repo.head.commit.hexsha - remote_commit_hash = repo.refs[f'{remote_name}/{branch_name}'].object.hexsha - - if commit_hash != remote_commit_hash: - core.git_pull(repo_path) - core.execute_install_script("ComfyUI", repo_path) - return web.Response(status=201) - else: - return web.Response(status=200) + res, current, latest = core.get_comfyui_versions() + return web.json_response({'versions': res, 'current': current}, status=200, content_type='application/json') except Exception as e: - print(f"ComfyUI update fail: {e}", file=sys.stderr) - pass + logging.error(f"ComfyUI update fail: {e}", file=sys.stderr) return web.Response(status=400) -@PromptServer.instance.routes.post("/customnode/toggle_active") -async def toggle_active(request): +@routes.get("/comfyui_manager/comfyui_switch_version") +async def comfyui_switch_version(request): + try: + if "ver" in request.rel_url.query: + core.switch_comfyui(request.rel_url.query['ver']) + + return web.Response(status=200) + except Exception as e: + logging.error(f"ComfyUI update fail: {e}", file=sys.stderr) + + return web.Response(status=400) + + +@routes.post("/manager/queue/disable") +async def disable_node(request): json_data = await request.json() - install_type = json_data['install_type'] - is_disabled = json_data['installed'] == "Disabled" + node_id = json_data.get('id') + if json_data['version'] != 'unknown': + is_unknown = False + node_name = node_id + else: + # unknown + is_unknown = True + node_name = os.path.basename(json_data['files'][0]) - print(f"Update custom node '{json_data['title']}'") + update_item = json_data.get('ui_id'), node_name, is_unknown + task_queue.put(("disable", update_item)) - res = False - - if install_type == "git-clone": - res = core.gitclone_set_active(json_data['files'], not is_disabled) - elif install_type == "copy": - res = copy_set_active(json_data['files'], not is_disabled, json_data.get('js_path', None)) - - if res: - return web.json_response({}, content_type='application/json') - - return web.Response(status=400) + return web.Response(status=200) -@PromptServer.instance.routes.post("/model/install") +async def check_whitelist_for_model(item): + json_obj = await core.get_data_by_mode('cache', 'model-list.json') + + for x in json_obj.get('models', []): + if x['save_path'] == item['save_path'] and x['base'] == item['base'] and x['filename'] == item['filename']: + return True + + json_obj = await core.get_data_by_mode('local', 'model-list.json') + + for x in json_obj.get('models', []): + if x['save_path'] == item['save_path'] and x['base'] == item['base'] and x['filename'] == item['filename']: + return True + + return False + + +@routes.post("/manager/queue/install_model") async def install_model(request): json_data = await request.json() - model_path = get_model_path(json_data) + if not is_allowed_security_level('middle'): + logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW) + return web.Response(status=403, text="A security error has occurred. Please check the terminal logs") - res = False + # validate request + if not await check_whitelist_for_model(json_data): + logging.error(f"[ComfyUI-Manager] Invalid model install request is detected: {json_data}") + return web.Response(status=400, text="Invalid model install request is detected") - try: - if model_path is not None: - print(f"Install model '{json_data['name']}' into '{model_path}'") + if not json_data['filename'].endswith('.safetensors') and not is_allowed_security_level('high'): + models_json = await core.get_data_by_mode('cache', 'model-list.json', 'default') - model_url = json_data['url'] - if not core.get_config()['model_download_by_agent'] and ( - model_url.startswith('https://github.com') or model_url.startswith('https://huggingface.co') or model_url.startswith('https://heibox.uni-heidelberg.de')): - model_dir = get_model_dir(json_data) - download_url(model_url, model_dir, filename=json_data['filename']) + is_belongs_to_whitelist = False + for x in models_json['models']: + if x.get('url') == json_data['url']: + is_belongs_to_whitelist = True + break - return web.json_response({}, content_type='application/json') - else: - res = download_url_with_agent(model_url, model_path) - else: - print(f"Model installation error: invalid model type - {json_data['type']}") + if not is_belongs_to_whitelist: + logging.error(SECURITY_MESSAGE_NORMAL_MINUS_MODEL) + return web.Response(status=403, text="A security error has occurred. Please check the terminal logs") - if res: - return web.json_response({}, content_type='application/json') - except Exception as e: - print(f"[ERROR] {e}", file=sys.stderr) - pass - - return web.Response(status=400) - - -class ManagerTerminalHook: - def write_stderr(self, msg): - PromptServer.instance.send_sync("manager-terminal-feedback", {"data": msg}) - - def write_stdout(self, msg): - PromptServer.instance.send_sync("manager-terminal-feedback", {"data": msg}) - - -manager_terminal_hook = ManagerTerminalHook() - - -@PromptServer.instance.routes.get("/manager/terminal") -async def terminal_mode(request): - if "mode" in request.rel_url.query: - if request.rel_url.query['mode'] == 'true': - sys.__comfyui_manager_terminal_hook.add_hook('cm', manager_terminal_hook) - else: - sys.__comfyui_manager_terminal_hook.remove_hook('cm') + install_item = json_data.get('ui_id'), json_data + task_queue.put(("install-model", install_item)) return web.Response(status=200) -@PromptServer.instance.routes.get("/manager/preview_method") +@routes.get("/manager/preview_method") async def preview_method(request): if "value" in request.rel_url.query: set_preview_method(request.rel_url.query['value']) @@ -1008,29 +1483,19 @@ async def preview_method(request): return web.Response(status=200) -@PromptServer.instance.routes.get("/manager/badge_mode") -async def badge_mode(request): +@routes.get("/manager/db_mode") +async def db_mode(request): if "value" in request.rel_url.query: - set_badge_mode(request.rel_url.query['value']) + set_db_mode(request.rel_url.query['value']) core.write_config() else: - return web.Response(text=core.get_config()['badge_mode'], status=200) + return web.Response(text=core.get_config()['db_mode'], status=200) return web.Response(status=200) -@PromptServer.instance.routes.get("/manager/default_ui") -async def default_ui_mode(request): - if "value" in request.rel_url.query: - set_default_ui_mode(request.rel_url.query['value']) - core.write_config() - else: - return web.Response(text=core.get_config()['default_ui'], status=200) - return web.Response(status=200) - - -@PromptServer.instance.routes.get("/manager/component/policy") +@routes.get("/manager/policy/component") async def component_policy(request): if "value" in request.rel_url.query: set_component_policy(request.rel_url.query['value']) @@ -1041,18 +1506,18 @@ async def component_policy(request): return web.Response(status=200) -@PromptServer.instance.routes.get("/manager/dbl_click/policy") -async def dbl_click_policy(request): +@routes.get("/manager/policy/update") +async def update_policy(request): if "value" in request.rel_url.query: - set_double_click_policy(request.rel_url.query['value']) + set_update_policy(request.rel_url.query['value']) core.write_config() else: - return web.Response(text=core.get_config()['double_click_policy'], status=200) + return web.Response(text=core.get_config()['update_policy'], status=200) return web.Response(status=200) -@PromptServer.instance.routes.get("/manager/channel_url_list") +@routes.get("/manager/channel_url_list") async def channel_url_list(request): channels = core.get_channel_dict() if "value" in request.rel_url.query: @@ -1076,7 +1541,20 @@ async def channel_url_list(request): return web.Response(status=200) -@PromptServer.instance.routes.get("/manager/notice") +def add_target_blank(html_text): + pattern = r'(]*)(>)' + + def add_target(match): + if 'target=' not in match.group(1): + return match.group(1) + ' target="_blank"' + match.group(2) + return match.group(0) + + modified_html = re.sub(pattern, add_target, html_text) + + return modified_html + + +@routes.get("/manager/notice") async def get_notice(request): url = "github.com" path = "/ltdrdata/ltdrdata.github.io/wiki/News" @@ -1092,13 +1570,27 @@ async def get_notice(request): if match: markdown_content = match.group(1) - markdown_content += f"
ComfyUI: {core.comfy_ui_revision}[{comfy_ui_hash[:6]}]({core.comfy_ui_commit_datetime.date()})" + version_tag = os.environ.get('__COMFYUI_DESKTOP_VERSION__') + if version_tag is not None: + markdown_content += f"
ComfyUI: {version_tag} [Desktop]" + else: + version_tag = core.get_comfyui_tag() + if version_tag is None: + markdown_content += f"
ComfyUI: {core.comfy_ui_revision}[{comfy_ui_hash[:6]}]({core.comfy_ui_commit_datetime.date()})" + else: + markdown_content += (f"
ComfyUI: {version_tag}
" + f"         ({core.comfy_ui_commit_datetime.date()})") # markdown_content += f"
         ()" markdown_content += f"
Manager: {core.version_str}" + markdown_content = add_target_blank(markdown_content) + try: - if core.comfy_ui_required_commit_datetime.date() > core.comfy_ui_commit_datetime.date(): - markdown_content = f'

Your ComfyUI is too OUTDATED!!!

' + markdown_content + if '__COMFYUI_DESKTOP_VERSION__' not in os.environ: + if core.comfy_ui_commit_datetime == datetime(1900, 1, 1, 0, 0, 0): + markdown_content = '

Your ComfyUI isn\'t git repo.

' + markdown_content + elif core.comfy_ui_required_commit_datetime.date() > core.comfy_ui_commit_datetime.date(): + markdown_content = '

Your ComfyUI is too OUTDATED!!!

' + markdown_content except: pass @@ -1109,38 +1601,59 @@ async def get_notice(request): return web.Response(text="Unable to retrieve Notice", status=200) -@PromptServer.instance.routes.get("/manager/reboot") +@routes.get("/manager/reboot") def restart(self): + if not is_allowed_security_level('middle'): + logging.error(SECURITY_MESSAGE_MIDDLE_OR_BELOW) + return web.Response(status=403) + try: sys.stdout.close_log() - except Exception as e: + except Exception: pass - return os.execv(sys.executable, [sys.executable] + sys.argv) + if '__COMFY_CLI_SESSION__' in os.environ: + with open(os.path.join(os.environ['__COMFY_CLI_SESSION__'] + '.reboot'), 'w'): + pass + + print("\nRestarting...\n\n") # This printing should not be logging - that will be ugly + exit(0) + + print("\nRestarting... [Legacy Mode]\n\n") # This printing should not be logging - that will be ugly + + sys_argv = sys.argv.copy() + if '--windows-standalone-build' in sys_argv: + sys_argv.remove('--windows-standalone-build') + + if sys_argv[0].endswith("__main__.py"): # this is a python module + module_name = os.path.basename(os.path.dirname(sys_argv[0])) + cmds = [sys.executable, '-m', module_name] + sys_argv[1:] + elif sys.platform.startswith('win32'): + cmds = ['"' + sys.executable + '"', '"' + sys_argv[0] + '"'] + sys_argv[1:] + else: + cmds = [sys.executable] + sys_argv + + print(f"Command: {cmds}", flush=True) + + return os.execv(sys.executable, cmds) -def sanitize_filename(input_string): - # 알파벳, 숫자, 및 밑줄 이외의 문자를 밑줄로 대체 - result_string = re.sub(r'[^a-zA-Z0-9_]', '_', input_string) - return result_string - - -@PromptServer.instance.routes.post("/manager/component/save") +@routes.post("/manager/component/save") async def save_component(request): try: data = await request.json() name = data['name'] workflow = data['workflow'] - if not os.path.exists(components_path): - os.mkdir(components_path) + if not os.path.exists(core.manager_components_path): + os.mkdir(core.manager_components_path) if 'packname' in workflow and workflow['packname'] != '': - sanitized_name = sanitize_filename(workflow['packname']) + '.pack' + sanitized_name = manager_util.sanitize_filename(workflow['packname']) + '.pack' else: - sanitized_name = sanitize_filename(name) + '.json' + sanitized_name = manager_util.sanitize_filename(name) + '.json' - filepath = os.path.join(components_path, sanitized_name) + filepath = os.path.join(core.manager_components_path, sanitized_name) components = {} if os.path.exists(filepath): with open(filepath) as f: @@ -1155,427 +1668,48 @@ async def save_component(request): return web.Response(status=400) -@PromptServer.instance.routes.post("/manager/component/loads") +@routes.post("/manager/component/loads") async def load_components(request): - try: - json_files = [f for f in os.listdir(components_path) if f.endswith('.json')] - pack_files = [f for f in os.listdir(components_path) if f.endswith('.pack')] - - components = {} - for json_file in json_files + pack_files: - file_path = os.path.join(components_path, json_file) - with open(file_path, 'r') as file: - try: - # When there is a conflict between the .pack and the .json, the pack takes precedence and overrides. - components.update(json.load(file)) - except json.JSONDecodeError as e: - print(f"[ComfyUI-Manager] Error decoding component file in file {json_file}: {e}") - - return web.json_response(components) - except Exception as e: - print(f"[ComfyUI-Manager] failed to load components\n{e}") - return web.Response(status=400) - - -@PromptServer.instance.routes.get("/manager/share_option") -async def share_option(request): - if "value" in request.rel_url.query: - core.get_config()['share_option'] = request.rel_url.query['value'] - core.write_config() - else: - return web.Response(text=core.get_config()['share_option'], status=200) - - return web.Response(status=200) - - -def get_openart_auth(): - if not os.path.exists(os.path.join(core.comfyui_manager_path, ".openart_key")): - return None - try: - with open(os.path.join(core.comfyui_manager_path, ".openart_key"), "r") as f: - openart_key = f.read().strip() - return openart_key if openart_key else None - except: - return None - - -def get_matrix_auth(): - if not os.path.exists(os.path.join(core.comfyui_manager_path, "matrix_auth")): - return None - try: - with open(os.path.join(core.comfyui_manager_path, "matrix_auth"), "r") as f: - matrix_auth = f.read() - homeserver, username, password = matrix_auth.strip().split("\n") - if not homeserver or not username or not password: - return None - return { - "homeserver": homeserver, - "username": username, - "password": password, - } - except: - return None - - -def get_comfyworkflows_auth(): - if not os.path.exists(os.path.join(core.comfyui_manager_path, "comfyworkflows_sharekey")): - return None - try: - with open(os.path.join(core.comfyui_manager_path, "comfyworkflows_sharekey"), "r") as f: - share_key = f.read() - if not share_key.strip(): - return None - return share_key - except: - return None - - -def get_youml_settings(): - if not os.path.exists(os.path.join(core.comfyui_manager_path, ".youml")): - return None - try: - with open(os.path.join(core.comfyui_manager_path, ".youml"), "r") as f: - youml_settings = f.read().strip() - return youml_settings if youml_settings else None - except: - return None - - -def set_youml_settings(settings): - with open(os.path.join(core.comfyui_manager_path, ".youml"), "w") as f: - f.write(settings) - - -@PromptServer.instance.routes.get("/manager/get_openart_auth") -async def api_get_openart_auth(request): - # print("Getting stored Matrix credentials...") - openart_key = get_openart_auth() - if not openart_key: - return web.Response(status=404) - return web.json_response({"openart_key": openart_key}) - - -@PromptServer.instance.routes.post("/manager/set_openart_auth") -async def api_set_openart_auth(request): - json_data = await request.json() - openart_key = json_data['openart_key'] - with open(os.path.join(core.comfyui_manager_path, ".openart_key"), "w") as f: - f.write(openart_key) - return web.Response(status=200) - - -@PromptServer.instance.routes.get("/manager/get_matrix_auth") -async def api_get_matrix_auth(request): - # print("Getting stored Matrix credentials...") - matrix_auth = get_matrix_auth() - if not matrix_auth: - return web.Response(status=404) - return web.json_response(matrix_auth) - - -@PromptServer.instance.routes.get("/manager/youml/settings") -async def api_get_youml_settings(request): - youml_settings = get_youml_settings() - if not youml_settings: - return web.Response(status=404) - return web.json_response(json.loads(youml_settings)) - - -@PromptServer.instance.routes.post("/manager/youml/settings") -async def api_set_youml_settings(request): - json_data = await request.json() - set_youml_settings(json.dumps(json_data)) - return web.Response(status=200) - - -@PromptServer.instance.routes.get("/manager/get_comfyworkflows_auth") -async def api_get_comfyworkflows_auth(request): - # Check if the user has provided Matrix credentials in a file called 'matrix_accesstoken' - # in the same directory as the ComfyUI base folder - # print("Getting stored Comfyworkflows.com auth...") - comfyworkflows_auth = get_comfyworkflows_auth() - if not comfyworkflows_auth: - return web.Response(status=404) - return web.json_response({"comfyworkflows_sharekey": comfyworkflows_auth}) - - -args.enable_cors_header = "*" -if hasattr(PromptServer.instance, "app"): - app = PromptServer.instance.app - cors_middleware = server.create_cors_middleware(args.enable_cors_header) - app.middlewares.append(cors_middleware) - - -@PromptServer.instance.routes.post("/manager/set_esheep_workflow_and_images") -async def set_esheep_workflow_and_images(request): - json_data = await request.json() - current_workflow = json_data['workflow'] - images = json_data['images'] - with open(os.path.join(core.comfyui_manager_path, "esheep_share_message.json"), "w", encoding='utf-8') as file: - json.dump(json_data, file, indent=4) - return web.Response(status=200) - - -@PromptServer.instance.routes.get("/manager/get_esheep_workflow_and_images") -async def get_esheep_workflow_and_images(request): - with open(os.path.join(core.comfyui_manager_path, "esheep_share_message.json"), 'r', encoding='utf-8') as file: - data = json.load(file) - return web.Response(status=200, text=json.dumps(data)) - - -def set_matrix_auth(json_data): - homeserver = json_data['homeserver'] - username = json_data['username'] - password = json_data['password'] - with open(os.path.join(core.comfyui_manager_path, "matrix_auth"), "w") as f: - f.write("\n".join([homeserver, username, password])) - - -def set_comfyworkflows_auth(comfyworkflows_sharekey): - with open(os.path.join(core.comfyui_manager_path, "comfyworkflows_sharekey"), "w") as f: - f.write(comfyworkflows_sharekey) - - -def has_provided_matrix_auth(matrix_auth): - return matrix_auth['homeserver'].strip() and matrix_auth['username'].strip() and matrix_auth['password'].strip() - - -def has_provided_comfyworkflows_auth(comfyworkflows_sharekey): - return comfyworkflows_sharekey.strip() - - -def extract_model_file_names(json_data): - """Extract unique file names from the input JSON data.""" - file_names = set() - model_filename_extensions = {'.safetensors', '.ckpt', '.pt', '.pth', '.bin'} - - # Recursively search for file names in the JSON data - def recursive_search(data): - if isinstance(data, dict): - for value in data.values(): - recursive_search(value) - elif isinstance(data, list): - for item in data: - recursive_search(item) - elif isinstance(data, str) and '.' in data: - file_names.add(os.path.basename(data)) # file_names.add(data) - - recursive_search(json_data) - return [f for f in list(file_names) if os.path.splitext(f)[1] in model_filename_extensions] - - -def find_file_paths(base_dir, file_names): - """Find the paths of the files in the base directory.""" - file_paths = {} - - for root, dirs, files in os.walk(base_dir): - # Exclude certain directories - dirs[:] = [d for d in dirs if d not in ['.git']] - - for file in files: - if file in file_names: - file_paths[file] = os.path.join(root, file) - return file_paths - - -def compute_sha256_checksum(filepath): - """Compute the SHA256 checksum of a file, in chunks""" - sha256 = hashlib.sha256() - with open(filepath, 'rb') as f: - for chunk in iter(lambda: f.read(4096), b''): - sha256.update(chunk) - return sha256.hexdigest() - - -@PromptServer.instance.routes.post("/manager/share") -async def share_art(request): - # get json data - json_data = await request.json() - - matrix_auth = json_data['matrix_auth'] - comfyworkflows_sharekey = json_data['cw_auth']['cw_sharekey'] - - set_matrix_auth(matrix_auth) - set_comfyworkflows_auth(comfyworkflows_sharekey) - - share_destinations = json_data['share_destinations'] - credits = json_data['credits'] - title = json_data['title'] - description = json_data['description'] - is_nsfw = json_data['is_nsfw'] - prompt = json_data['prompt'] - potential_outputs = json_data['potential_outputs'] - selected_output_index = json_data['selected_output_index'] - - try: - output_to_share = potential_outputs[int(selected_output_index)] - except: - # for now, pick the first output - output_to_share = potential_outputs[0] - - assert output_to_share['type'] in ('image', 'output') - output_dir = folder_paths.get_output_directory() - - if output_to_share['type'] == 'image': - asset_filename = output_to_share['image']['filename'] - asset_subfolder = output_to_share['image']['subfolder'] - - if output_to_share['image']['type'] == 'temp': - output_dir = folder_paths.get_temp_directory() - else: - asset_filename = output_to_share['output']['filename'] - asset_subfolder = output_to_share['output']['subfolder'] - - if asset_subfolder: - asset_filepath = os.path.join(output_dir, asset_subfolder, asset_filename) - else: - asset_filepath = os.path.join(output_dir, asset_filename) - - # get the mime type of the asset - assetFileType = mimetypes.guess_type(asset_filepath)[0] - - share_website_host = "UNKNOWN" - if "comfyworkflows" in share_destinations: - share_website_host = "https://comfyworkflows.com" - share_endpoint = f"{share_website_host}/api" - - # get presigned urls - async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: - async with session.post( - f"{share_endpoint}/get_presigned_urls", - json={ - "assetFileName": asset_filename, - "assetFileType": assetFileType, - "workflowJsonFileName": 'workflow.json', - "workflowJsonFileType": 'application/json', - }, - ) as resp: - assert resp.status == 200 - presigned_urls_json = await resp.json() - assetFilePresignedUrl = presigned_urls_json["assetFilePresignedUrl"] - assetFileKey = presigned_urls_json["assetFileKey"] - workflowJsonFilePresignedUrl = presigned_urls_json["workflowJsonFilePresignedUrl"] - workflowJsonFileKey = presigned_urls_json["workflowJsonFileKey"] - - # upload asset - async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: - async with session.put(assetFilePresignedUrl, data=open(asset_filepath, "rb")) as resp: - assert resp.status == 200 - - # upload workflow json - async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: - async with session.put(workflowJsonFilePresignedUrl, data=json.dumps(prompt['workflow']).encode('utf-8')) as resp: - assert resp.status == 200 - - model_filenames = extract_model_file_names(prompt['workflow']) - model_file_paths = find_file_paths(folder_paths.base_path, model_filenames) - - models_info = {} - for filename, filepath in model_file_paths.items(): - models_info[filename] = { - "filename": filename, - "sha256_checksum": compute_sha256_checksum(filepath), - "relative_path": os.path.relpath(filepath, folder_paths.base_path), - } - - # make a POST request to /api/upload_workflow with form data key values - async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: - form = aiohttp.FormData() - if comfyworkflows_sharekey: - form.add_field("shareKey", comfyworkflows_sharekey) - form.add_field("source", "comfyui_manager") - form.add_field("assetFileKey", assetFileKey) - form.add_field("assetFileType", assetFileType) - form.add_field("workflowJsonFileKey", workflowJsonFileKey) - form.add_field("sharedWorkflowWorkflowJsonString", json.dumps(prompt['workflow'])) - form.add_field("sharedWorkflowPromptJsonString", json.dumps(prompt['output'])) - form.add_field("shareWorkflowCredits", credits) - form.add_field("shareWorkflowTitle", title) - form.add_field("shareWorkflowDescription", description) - form.add_field("shareWorkflowIsNSFW", str(is_nsfw).lower()) - form.add_field("currentSnapshot", json.dumps(core.get_current_snapshot())) - form.add_field("modelsInfo", json.dumps(models_info)) - - async with session.post( - f"{share_endpoint}/upload_workflow", - data=form, - ) as resp: - assert resp.status == 200 - upload_workflow_json = await resp.json() - workflowId = upload_workflow_json["workflowId"] - - # check if the user has provided Matrix credentials - if "matrix" in share_destinations: - comfyui_share_room_id = '!LGYSoacpJPhIfBqVfb:matrix.org' - filename = os.path.basename(asset_filepath) - content_type = assetFileType - + if os.path.exists(core.manager_components_path): try: - from matrix_client.api import MatrixHttpApi - from matrix_client.client import MatrixClient + json_files = [f for f in os.listdir(core.manager_components_path) if f.endswith('.json')] + pack_files = [f for f in os.listdir(core.manager_components_path) if f.endswith('.pack')] - homeserver = 'matrix.org' - if matrix_auth: - homeserver = matrix_auth.get('homeserver', 'matrix.org') - homeserver = homeserver.replace("http://", "https://") - if not homeserver.startswith("https://"): - homeserver = "https://" + homeserver + components = {} + for json_file in json_files + pack_files: + file_path = os.path.join(core.manager_components_path, json_file) + with open(file_path, 'r') as file: + try: + # When there is a conflict between the .pack and the .json, the pack takes precedence and overrides. + components.update(json.load(file)) + except json.JSONDecodeError as e: + logging.error(f"[ComfyUI-Manager] Error decoding component file in file {json_file}: {e}") - client = MatrixClient(homeserver) - try: - token = client.login(username=matrix_auth['username'], password=matrix_auth['password']) - if not token: - return web.json_response({"error": "Invalid Matrix credentials."}, content_type='application/json', status=400) - except: - return web.json_response({"error": "Invalid Matrix credentials."}, content_type='application/json', status=400) - - matrix = MatrixHttpApi(homeserver, token=token) - with open(asset_filepath, 'rb') as f: - mxc_url = matrix.media_upload(f.read(), content_type, filename=filename)['content_uri'] - - workflow_json_mxc_url = matrix.media_upload(prompt['workflow'], 'application/json', filename='workflow.json')['content_uri'] - - text_content = "" - if title: - text_content += f"{title}\n" - if description: - text_content += f"{description}\n" - if credits: - text_content += f"\ncredits: {credits}\n" - response = matrix.send_message(comfyui_share_room_id, text_content) - response = matrix.send_content(comfyui_share_room_id, mxc_url, filename, 'm.image') - response = matrix.send_content(comfyui_share_room_id, workflow_json_mxc_url, 'workflow.json', 'm.file') - except: - import traceback - traceback.print_exc() - return web.json_response({"error": "An error occurred when sharing your art to Matrix."}, content_type='application/json', status=500) - - return web.json_response({ - "comfyworkflows": { - "url": None if "comfyworkflows" not in share_destinations else f"{share_website_host}/workflows/{workflowId}", - }, - "matrix": { - "success": None if "matrix" not in share_destinations else True - } - }, content_type='application/json', status=200) + return web.json_response(components) + except Exception as e: + logging.error(f"[ComfyUI-Manager] failed to load components\n{e}") + return web.Response(status=400) + else: + return web.json_response({}) -def sanitize(data): - return data.replace("<", "<").replace(">", ">") +@routes.get("/manager/version") +async def get_version(request): + return web.Response(text=core.version_str, status=200) async def _confirm_try_install(sender, custom_node_url, msg): json_obj = await core.get_data_by_mode('default', 'custom-node-list.json') - sender = sanitize(sender) - msg = sanitize(msg) + sender = manager_util.sanitize_tag(sender) + msg = manager_util.sanitize_tag(msg) target = core.lookup_customnode_by_url(json_obj, custom_node_url) if target is not None: PromptServer.instance.send_sync("cm-api-try-install-customnode", {"sender": sender, "target": target, "msg": msg}) else: - print(f"[ComfyUI Manager API] Failed to try install - Unknown custom node url '{custom_node_url}'") + logging.error(f"[ComfyUI Manager API] Failed to try install - Unknown custom node url '{custom_node_url}'") def confirm_try_install(sender, custom_node_url, msg): @@ -1584,33 +1718,52 @@ def confirm_try_install(sender, custom_node_url, msg): cm_global.register_api('cm.try-install-custom-node', confirm_try_install) -import asyncio - async def default_cache_update(): + core.refresh_channel_dict() + channel_url = core.get_config()['channel_url'] async def get_cache(filename): - uri = 'https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/' + filename - cache_uri = str(core.simple_hash(uri)) + '_' + filename - cache_uri = os.path.join(core.cache_dir, cache_uri) + try: + if core.get_config()['default_cache_as_channel_url']: + uri = f"{channel_url}/{filename}" + else: + uri = f"{core.DEFAULT_CHANNEL}/{filename}" - json_obj = await core.get_data(uri, True) + cache_uri = str(manager_util.simple_hash(uri)) + '_' + filename + cache_uri = os.path.join(manager_util.cache_dir, cache_uri) - with core.cache_lock: - with open(cache_uri, "w", encoding='utf-8') as file: - json.dump(json_obj, file, indent=4, sort_keys=True) - print(f"[ComfyUI-Manager] default cache updated: {uri}") + json_obj = await manager_util.get_data(uri, True) - a = get_cache("custom-node-list.json") - b = get_cache("extension-node-map.json") - c = get_cache("model-list.json") - d = get_cache("alter-list.json") + with manager_util.cache_lock: + with open(cache_uri, "w", encoding='utf-8') as file: + json.dump(json_obj, file, indent=4, sort_keys=True) + logging.info(f"[ComfyUI-Manager] default cache updated: {uri}") + except Exception as e: + logging.error(f"[ComfyUI-Manager] Failed to perform initial fetching '{filename}': {e}") + traceback.print_exc() - await asyncio.gather(a, b, c, d) + if core.get_config()['network_mode'] != 'offline': + a = get_cache("custom-node-list.json") + b = get_cache("extension-node-map.json") + c = get_cache("model-list.json") + d = get_cache("alter-list.json") + e = get_cache("github-stats.json") + + await asyncio.gather(a, b, c, d, e) + + if core.get_config()['network_mode'] == 'private': + logging.info("[ComfyUI-Manager] The private comfyregistry is not yet supported in `network_mode=private`.") + else: + # load at least once + await core.unified_manager.reload('remote', dont_wait=False) + await core.unified_manager.get_custom_nodes(channel_url, 'remote') + + logging.info("[ComfyUI-Manager] All startup tasks have been completed.") threading.Thread(target=lambda: asyncio.run(default_cache_update())).start() -if not os.path.exists(core.config_path): +if not os.path.exists(core.manager_config_path): core.get_config() core.write_config() @@ -1618,6 +1771,7 @@ if not os.path.exists(core.config_path): cm_global.register_extension('ComfyUI-Manager', {'version': core.version, 'name': 'ComfyUI Manager', - 'nodes': {'Terminal Log //CM'}, - 'description': 'It provides the ability to manage custom nodes in ComfyUI.', }) + 'nodes': {}, + 'description': 'This extension provides the ability to manage custom nodes in ComfyUI.', }) + diff --git a/glob/manager_util.py b/glob/manager_util.py index 5dc66b53..b3db7b97 100644 --- a/glob/manager_util.py +++ b/glob/manager_util.py @@ -1,63 +1,586 @@ -try: - from distutils.version import StrictVersion -except: - print(f"[ComfyUI-Manager] 'distutils' package not found. Activating fallback mode for compatibility.") - class StrictVersion: - def __init__(self, version_string): - self.version_string = version_string - self.major = 0 - self.minor = 0 - self.patch = 0 - self.pre_release = None - self.parse_version_string() +""" +description: + `manager_util` is the lightest module shared across the prestartup_script, main code, and cm-cli of ComfyUI-Manager. +""" +import traceback - def parse_version_string(self): - parts = self.version_string.split('.') - if not parts: - raise ValueError("Version string must not be empty") +import aiohttp +import json +import threading +import os +from datetime import datetime +import subprocess +import sys +import re +import logging +import platform +import shlex - self.major = int(parts[0]) - self.minor = int(parts[1]) if len(parts) > 1 else 0 - self.patch = int(parts[2]) if len(parts) > 2 else 0 - # Handling pre-release versions if present - if len(parts) > 3: - self.pre_release = parts[3] +cache_lock = threading.Lock() - def __str__(self): - version = f"{self.major}.{self.minor}.{self.patch}" - if self.pre_release: - version += f"-{self.pre_release}" - return version +comfyui_manager_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) +cache_dir = os.path.join(comfyui_manager_path, '.cache') # This path is also updated together in **manager_core.update_user_directory**. - def __eq__(self, other): - return (self.major, self.minor, self.patch, self.pre_release) == \ - (other.major, other.minor, other.patch, other.pre_release) +use_uv = False +bypass_ssl = False - def __lt__(self, other): - if (self.major, self.minor, self.patch) == (other.major, other.minor, other.patch): - return self.pre_release_compare(self.pre_release, other.pre_release) < 0 - return (self.major, self.minor, self.patch) < (other.major, other.minor, other.patch) +def add_python_path_to_env(): + if platform.system() != "Windows": + sep = ':' + else: + sep = ';' - @staticmethod - def pre_release_compare(pre1, pre2): - if pre1 == pre2: - return 0 - if pre1 is None: - return 1 - if pre2 is None: - return -1 - return -1 if pre1 < pre2 else 1 + os.environ['PATH'] = os.path.dirname(sys.executable)+sep+os.environ['PATH'] - def __le__(self, other): - return self == other or self < other - def __gt__(self, other): - return not self <= other +def make_pip_cmd(cmd): + if 'python_embeded' in sys.executable: + if use_uv: + return [sys.executable, '-s', '-m', 'uv', 'pip'] + cmd + else: + return [sys.executable, '-s', '-m', 'pip'] + cmd + else: + # FIXED: https://github.com/ltdrdata/ComfyUI-Manager/issues/1667 + if use_uv: + return [sys.executable, '-m', 'uv', 'pip'] + cmd + else: + return [sys.executable, '-m', 'pip'] + cmd - def __ge__(self, other): - return not self < other +# DON'T USE StrictVersion - cannot handle pre_release version +# try: +# from distutils.version import StrictVersion +# except: +# print(f"[ComfyUI-Manager] 'distutils' package not found. Activating fallback mode for compatibility.") +class StrictVersion: + def __init__(self, version_string): + self.version_string = version_string + self.major = 0 + self.minor = 0 + self.patch = 0 + self.pre_release = None + self.parse_version_string() - def __ne__(self, other): - return not self == other + def parse_version_string(self): + parts = self.version_string.split('.') + if not parts: + raise ValueError("Version string must not be empty") + self.major = int(parts[0]) + self.minor = int(parts[1]) if len(parts) > 1 else 0 + self.patch = int(parts[2]) if len(parts) > 2 else 0 + + # Handling pre-release versions if present + if len(parts) > 3: + self.pre_release = parts[3] + + def __str__(self): + version = f"{self.major}.{self.minor}.{self.patch}" + if self.pre_release: + version += f"-{self.pre_release}" + return version + + def __eq__(self, other): + return (self.major, self.minor, self.patch, self.pre_release) == \ + (other.major, other.minor, other.patch, other.pre_release) + + def __lt__(self, other): + if (self.major, self.minor, self.patch) == (other.major, other.minor, other.patch): + return self.pre_release_compare(self.pre_release, other.pre_release) < 0 + return (self.major, self.minor, self.patch) < (other.major, other.minor, other.patch) + + @staticmethod + def pre_release_compare(pre1, pre2): + if pre1 == pre2: + return 0 + if pre1 is None: + return 1 + if pre2 is None: + return -1 + return -1 if pre1 < pre2 else 1 + + def __le__(self, other): + return self == other or self < other + + def __gt__(self, other): + return not self <= other + + def __ge__(self, other): + return not self < other + + def __ne__(self, other): + return not self == other + + +def simple_hash(input_string): + hash_value = 0 + for char in input_string: + hash_value = (hash_value * 31 + ord(char)) % (2**32) + + return hash_value + + +def is_file_created_within_one_day(file_path): + if not os.path.exists(file_path): + return False + + file_creation_time = os.path.getctime(file_path) + current_time = datetime.now().timestamp() + time_difference = current_time - file_creation_time + + return time_difference <= 86400 + + +async def get_data(uri, silent=False): + if not silent: + print(f"FETCH DATA from: {uri}", end="") + + if uri.startswith("http"): + async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=not bypass_ssl)) as session: + headers = { + 'Cache-Control': 'no-cache', + 'Pragma': 'no-cache', + 'Expires': '0' + } + async with session.get(uri, headers=headers) as resp: + json_text = await resp.text() + else: + with cache_lock: + with open(uri, "r", encoding="utf-8") as f: + json_text = f.read() + + try: + json_obj = json.loads(json_text) + except Exception as e: + logging.error(f"[ComfyUI-Manager] An error occurred while fetching '{uri}': {e}") + + return {} + + if not silent: + print(" [DONE]") + + return json_obj + + +def get_cache_path(uri): + cache_uri = str(simple_hash(uri)) + '_' + os.path.basename(uri).replace('&', "_").replace('?', "_").replace('=', "_") + return os.path.join(cache_dir, cache_uri+'.json') + + +def get_cache_state(uri): + cache_uri = get_cache_path(uri) + + if not os.path.exists(cache_uri): + return "not-cached" + elif is_file_created_within_one_day(cache_uri): + return "cached" + + return "expired" + + +def save_to_cache(uri, json_obj, silent=False): + cache_uri = get_cache_path(uri) + + with cache_lock: + with open(cache_uri, "w", encoding='utf-8') as file: + json.dump(json_obj, file, indent=4, sort_keys=True) + if not silent: + logging.info(f"[ComfyUI-Manager] default cache updated: {uri}") + + +async def get_data_with_cache(uri, silent=False, cache_mode=True, dont_wait=False, dont_cache=False): + cache_uri = get_cache_path(uri) + + if cache_mode and dont_wait: + # NOTE: return the cache if possible, even if it is expired, so do not cache + if not os.path.exists(cache_uri): + logging.error(f"[ComfyUI-Manager] The network connection is unstable, so it is operating in fallback mode: {uri}") + + return {} + else: + if not is_file_created_within_one_day(cache_uri): + logging.error(f"[ComfyUI-Manager] The network connection is unstable, so it is operating in outdated cache mode: {uri}") + + return await get_data(cache_uri, silent=silent) + + if cache_mode and is_file_created_within_one_day(cache_uri): + json_obj = await get_data(cache_uri, silent=silent) + else: + json_obj = await get_data(uri, silent=silent) + if not dont_cache: + with cache_lock: + with open(cache_uri, "w", encoding='utf-8') as file: + json.dump(json_obj, file, indent=4, sort_keys=True) + if not silent: + logging.info(f"[ComfyUI-Manager] default cache updated: {uri}") + + return json_obj + + +def sanitize_tag(x): + return x.replace('<', '<').replace('>', '>') + + +def extract_package_as_zip(file_path, extract_path): + import zipfile + try: + with zipfile.ZipFile(file_path, "r") as zip_ref: + zip_ref.extractall(extract_path) + extracted_files = zip_ref.namelist() + logging.info(f"Extracted zip file to {extract_path}") + return extracted_files + except zipfile.BadZipFile: + logging.error(f"File '{file_path}' is not a zip or is corrupted.") + return None + + +pip_map = None + + +def get_installed_packages(renew=False): + global pip_map + + if renew or pip_map is None: + try: + result = subprocess.check_output(make_pip_cmd(['list']), universal_newlines=True) + + pip_map = {} + for line in result.split('\n'): + x = line.strip() + if x: + y = line.split() + if y[0] == 'Package' or y[0].startswith('-'): + continue + + normalized_name = y[0].lower().replace('-', '_') + pip_map[normalized_name] = y[1] + except subprocess.CalledProcessError: + logging.error("[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.") + return {} + + return pip_map + + +def clear_pip_cache(): + global pip_map + pip_map = None + + +def parse_requirement_line(line): + tokens = shlex.split(line) + if not tokens: + return None + + package_spec = tokens[0] + + pattern = re.compile( + r'^(?P[A-Za-z0-9_.+-]+)' + r'(?P==|>=|<=|!=|~=|>|<)?' + r'(?P[A-Za-z0-9_.+-]*)$' + ) + m = pattern.match(package_spec) + if not m: + return None + + package = m.group('package') + operator = m.group('operator') or None + version = m.group('version') or None + + index_url = None + if '--index-url' in tokens: + idx = tokens.index('--index-url') + if idx + 1 < len(tokens): + index_url = tokens[idx + 1] + + res = {'package': package} + + if operator is not None: + res['operator'] = operator + + if version is not None: + res['version'] = StrictVersion(version) + + if index_url is not None: + res['index_url'] = index_url + + return res + + +torch_torchvision_torchaudio_version_map = { + '2.7.0': ('0.22.0', '2.7.0'), + '2.6.0': ('0.21.0', '2.6.0'), + '2.5.1': ('0.20.0', '2.5.0'), + '2.5.0': ('0.20.0', '2.5.0'), + '2.4.1': ('0.19.1', '2.4.1'), + '2.4.0': ('0.19.0', '2.4.0'), + '2.3.1': ('0.18.1', '2.3.1'), + '2.3.0': ('0.18.0', '2.3.0'), + '2.2.2': ('0.17.2', '2.2.2'), + '2.2.1': ('0.17.1', '2.2.1'), + '2.2.0': ('0.17.0', '2.2.0'), + '2.1.2': ('0.16.2', '2.1.2'), + '2.1.1': ('0.16.1', '2.1.1'), + '2.1.0': ('0.16.0', '2.1.0'), + '2.0.1': ('0.15.2', '2.0.1'), + '2.0.0': ('0.15.1', '2.0.0'), +} + + +def torch_rollback(prev): + spec = prev.split('+') + if len(spec) > 1: + platform = spec[1] + else: + cmd = make_pip_cmd(['install', '--force', 'torch', 'torchvision', 'torchaudio']) + subprocess.check_output(cmd, universal_newlines=True) + logging.error(cmd) + return + + torch_ver = StrictVersion(spec[0]) + torch_ver = f"{torch_ver.major}.{torch_ver.minor}.{torch_ver.patch}" + torch_torchvision_torchaudio_ver = torch_torchvision_torchaudio_version_map.get(torch_ver) + + if torch_torchvision_torchaudio_ver is None: + cmd = make_pip_cmd(['install', '--pre', 'torch', 'torchvision', 'torchaudio', + '--index-url', f"https://download.pytorch.org/whl/nightly/{platform}"]) + logging.info("[ComfyUI-Manager] restore PyTorch to nightly version") + else: + torchvision_ver, torchaudio_ver = torch_torchvision_torchaudio_ver + cmd = make_pip_cmd(['install', f'torch=={torch_ver}', f'torchvision=={torchvision_ver}', f"torchaudio=={torchaudio_ver}", + '--index-url', f"https://download.pytorch.org/whl/{platform}"]) + logging.info(f"[ComfyUI-Manager] restore PyTorch to {torch_ver}+{platform}") + + subprocess.check_output(cmd, universal_newlines=True) + + +class PIPFixer: + def __init__(self, prev_pip_versions, comfyui_path, manager_files_path): + self.prev_pip_versions = { **prev_pip_versions } + self.comfyui_path = comfyui_path + self.manager_files_path = manager_files_path + + def fix_broken(self): + new_pip_versions = get_installed_packages(True) + + # remove `comfy` python package + try: + if 'comfy' in new_pip_versions: + cmd = make_pip_cmd(['uninstall', 'comfy']) + subprocess.check_output(cmd, universal_newlines=True) + + logging.warning("[ComfyUI-Manager] 'comfy' python package is uninstalled.\nWARN: The 'comfy' package is completely unrelated to ComfyUI and should never be installed as it causes conflicts with ComfyUI.") + except Exception as e: + logging.error("[ComfyUI-Manager] Failed to uninstall `comfy` python package") + logging.error(e) + + # fix torch - reinstall torch packages if version is changed + try: + if 'torch' not in self.prev_pip_versions or 'torchvision' not in self.prev_pip_versions or 'torchaudio' not in self.prev_pip_versions: + logging.error("[ComfyUI-Manager] PyTorch is not installed") + elif self.prev_pip_versions['torch'] != new_pip_versions['torch'] \ + or self.prev_pip_versions['torchvision'] != new_pip_versions['torchvision'] \ + or self.prev_pip_versions['torchaudio'] != new_pip_versions['torchaudio']: + torch_rollback(self.prev_pip_versions['torch']) + except Exception as e: + logging.error("[ComfyUI-Manager] Failed to restore PyTorch") + logging.error(e) + + # fix opencv + try: + ocp = new_pip_versions.get('opencv-contrib-python') + ocph = new_pip_versions.get('opencv-contrib-python-headless') + op = new_pip_versions.get('opencv-python') + oph = new_pip_versions.get('opencv-python-headless') + + versions = [ocp, ocph, op, oph] + versions = [StrictVersion(x) for x in versions if x is not None] + versions.sort(reverse=True) + + if len(versions) > 0: + # upgrade to maximum version + targets = [] + cur = versions[0] + if ocp is not None and StrictVersion(ocp) != cur: + targets.append('opencv-contrib-python') + if ocph is not None and StrictVersion(ocph) != cur: + targets.append('opencv-contrib-python-headless') + if op is not None and StrictVersion(op) != cur: + targets.append('opencv-python') + if oph is not None and StrictVersion(oph) != cur: + targets.append('opencv-python-headless') + + if len(targets) > 0: + for x in targets: + cmd = make_pip_cmd(['install', f"{x}=={versions[0].version_string}"]) + subprocess.check_output(cmd, universal_newlines=True) + + logging.info(f"[ComfyUI-Manager] 'opencv' dependencies were fixed: {targets}") + except Exception as e: + logging.error("[ComfyUI-Manager] Failed to restore opencv") + logging.error(e) + + # fix missing frontend + try: + # NOTE: package name in requirements is 'comfyui-frontend-package' + # but, package name from `pip freeze` is 'comfyui_frontend_package' + # but, package name from `uv pip freeze` is 'comfyui-frontend-package' + # + # get_installed_packages returns normalized name (i.e. comfyui_frontend_package) + if 'comfyui_frontend_package' not in new_pip_versions: + requirements_path = os.path.join(self.comfyui_path, 'requirements.txt') + + with open(requirements_path, 'r') as file: + lines = file.readlines() + + front_line = next((line.strip() for line in lines if line.startswith('comfyui-frontend-package')), None) + if front_line is None: + logging.info("[ComfyUI-Manager] Skipped fixing the 'comfyui-frontend-package' dependency because the ComfyUI is outdated.") + else: + cmd = make_pip_cmd(['install', front_line]) + subprocess.check_output(cmd , universal_newlines=True) + logging.info("[ComfyUI-Manager] 'comfyui-frontend-package' dependency were fixed") + except Exception as e: + logging.error("[ComfyUI-Manager] Failed to restore comfyui-frontend-package") + logging.error(e) + + # restore based on custom list + pip_auto_fix_path = os.path.join(self.manager_files_path, "pip_auto_fix.list") + if os.path.exists(pip_auto_fix_path): + with open(pip_auto_fix_path, 'r', encoding="UTF-8", errors="ignore") as f: + fixed_list = [] + + for x in f.readlines(): + try: + parsed = parse_requirement_line(x) + need_to_reinstall = True + + normalized_name = parsed['package'].lower().replace('-', '_') + if normalized_name in new_pip_versions: + if 'version' in parsed and 'operator' in parsed: + cur = StrictVersion(new_pip_versions[normalized_name]) + dest = parsed['version'] + op = parsed['operator'] + if cur == dest: + if op in ['==', '>=', '<=']: + need_to_reinstall = False + elif cur < dest: + if op in ['<=', '<', '~=', '!=']: + need_to_reinstall = False + elif cur > dest: + if op in ['>=', '>', '~=', '!=']: + need_to_reinstall = False + + if need_to_reinstall: + cmd_args = ['install'] + if 'version' in parsed and 'operator' in parsed: + cmd_args.append(parsed['package']+parsed['operator']+parsed['version'].version_string) + + if 'index_url' in parsed: + cmd_args.append('--index-url') + cmd_args.append(parsed['index_url']) + + cmd = make_pip_cmd(cmd_args) + subprocess.check_output(cmd, universal_newlines=True) + + fixed_list.append(parsed['package']) + except Exception as e: + traceback.print_exc() + logging.error(f"[ComfyUI-Manager] Failed to restore '{x}'") + logging.error(e) + + if len(fixed_list) > 0: + logging.info(f"[ComfyUI-Manager] dependencies in pip_auto_fix.json were fixed: {fixed_list}") + +def sanitize(data): + return data.replace("<", "<").replace(">", ">") + + +def sanitize_filename(input_string): + result_string = re.sub(r'[^a-zA-Z0-9_]', '_', input_string) + return result_string + + +def robust_readlines(fullpath): + import chardet + try: + with open(fullpath, "r") as f: + return f.readlines() + except: + encoding = None + with open(fullpath, "rb") as f: + raw_data = f.read() + result = chardet.detect(raw_data) + encoding = result['encoding'] + + if encoding is not None: + with open(fullpath, "r", encoding=encoding) as f: + return f.readlines() + + print(f"[ComfyUI-Manager] Failed to recognize encoding for: {fullpath}") + return [] + + +def restore_pip_snapshot(pips, options): + non_url = [] + local_url = [] + non_local_url = [] + + for k, v in pips.items(): + # NOTE: skip torch related packages + if k.startswith("torch==") or k.startswith("torchvision==") or k.startswith("torchaudio==") or k.startswith("nvidia-"): + continue + + if v == "": + non_url.append(k) + else: + if v.startswith('file:'): + local_url.append(v) + else: + non_local_url.append(v) + + + # restore other pips + failed = [] + if '--pip-non-url' in options: + # try all at once + res = 1 + try: + res = subprocess.check_output(make_pip_cmd(['install'] + non_url)) + except Exception: + pass + + # fallback + if res != 0: + for x in non_url: + res = 1 + try: + res = subprocess.check_output(make_pip_cmd(['install', '--no-deps', x])) + except Exception: + pass + + if res != 0: + failed.append(x) + + if '--pip-non-local-url' in options: + for x in non_local_url: + res = 1 + try: + res = subprocess.check_output(make_pip_cmd(['install', '--no-deps', x])) + except Exception: + pass + + if res != 0: + failed.append(x) + + if '--pip-local-url' in options: + for x in local_url: + res = 1 + try: + res = subprocess.check_output(make_pip_cmd(['install', '--no-deps', x])) + except Exception: + pass + + if res != 0: + failed.append(x) + + print(f"Installation failed for pip packages: {failed}") \ No newline at end of file diff --git a/glob/node_package.py b/glob/node_package.py new file mode 100644 index 00000000..d199fa30 --- /dev/null +++ b/glob/node_package.py @@ -0,0 +1,72 @@ +from __future__ import annotations + +from dataclasses import dataclass +import os + +from git_utils import get_commit_hash + + +@dataclass +class InstalledNodePackage: + """Information about an installed node package.""" + + id: str + fullpath: str + disabled: bool + version: str + + @property + def is_unknown(self) -> bool: + return self.version == "unknown" + + @property + def is_nightly(self) -> bool: + return self.version == "nightly" + + @property + def is_from_cnr(self) -> bool: + return not self.is_unknown and not self.is_nightly + + @property + def is_enabled(self) -> bool: + return not self.disabled + + @property + def is_disabled(self) -> bool: + return self.disabled + + def get_commit_hash(self) -> str: + return get_commit_hash(self.fullpath) + + def isValid(self) -> bool: + if self.is_from_cnr: + return os.path.exists(os.path.join(self.fullpath, '.tracking')) + + return True + + @staticmethod + def from_fullpath(fullpath: str, resolve_from_path) -> InstalledNodePackage: + parent_folder_name = os.path.basename(os.path.dirname(fullpath)) + module_name = os.path.basename(fullpath) + + if module_name.endswith(".disabled"): + node_id = module_name[:-9] + disabled = True + elif parent_folder_name == ".disabled": + # Nodes under custom_nodes/.disabled/* are disabled + node_id = module_name + disabled = True + else: + node_id = module_name + disabled = False + + info = resolve_from_path(fullpath) + if info is None: + version = 'unknown' + else: + node_id = info['id'] # robust module guessing + version = info['ver'] + + return InstalledNodePackage( + id=node_id, fullpath=fullpath, disabled=disabled, version=version + ) diff --git a/glob/security_check.py b/glob/security_check.py new file mode 100644 index 00000000..892e96a2 --- /dev/null +++ b/glob/security_check.py @@ -0,0 +1,124 @@ +import sys +import subprocess +import os + +import manager_util + + +def security_check(): + print("[START] Security scan") + + custom_nodes_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) + comfyui_path = os.path.abspath(os.path.join(custom_nodes_path, '..')) + + guide = { + "ComfyUI_LLMVISION": """ +0.Remove ComfyUI\\custom_nodes\\ComfyUI_LLMVISION. +1.Remove pip packages: openai-1.16.3.dist-info, anthropic-0.21.4.dist-info, openai-1.30.2.dist-info, anthropic-0.21.5.dist-info, anthropic-0.26.1.dist-info, %LocalAppData%\\rundll64.exe + (For portable versions, it is recommended to reinstall. If you are using a venv, it is advised to recreate the venv.) +2.Remove these files in your system: lib/browser/admin.py, Cadmino.py, Fadmino.py, VISION-D.exe, BeamNG.UI.exe +3.Check your Windows registry for the key listed above and remove it. + (HKEY_CURRENT_USER\\Software\\OpenAICLI) +4.Run a malware scanner. +5.Change all of your passwords, everywhere. + +(Reinstall OS is recommended.) +\n +Detailed information: https://old.reddit.com/r/comfyui/comments/1dbls5n/psa_if_youve_used_the_comfyui_llmvision_node_from/ + """, + "lolMiner": """ +1. Remove pip packages: lolMiner* +2. Remove files: lolMiner*, 4G_Ethash_Linux_Readme.txt, mine* in ComfyUI dir. + +(Reinstall ComfyUI is recommended.) + """, + "ultralytics==8.3.41": f""" +Execute following commands: + {sys.executable} -m pip uninstall ultralytics + {sys.executable} -m pip install ultralytics==8.3.40 + +And kill and remove /tmp/ultralytics_runner + + +The version 8.3.41 to 8.3.42 of the Ultralytics package you installed is compromised. Please uninstall that version and reinstall the latest version. +https://blog.comfy.org/comfyui-statement-on-the-ultralytics-crypto-miner-situation/ + """, + "ultralytics==8.3.42": f""" +Execute following commands: + {sys.executable} -m pip uninstall ultralytics + {sys.executable} -m pip install ultralytics==8.3.40 + +And kill and remove /tmp/ultralytics_runner + + +The version 8.3.41 to 8.3.42 of the Ultralytics package you installed is compromised. Please uninstall that version and reinstall the latest version. +https://blog.comfy.org/comfyui-statement-on-the-ultralytics-crypto-miner-situation/ + """ + } + + node_blacklist = {"ComfyUI_LLMVISION": "ComfyUI_LLMVISION"} + + pip_blacklist = { + "AppleBotzz": "ComfyUI_LLMVISION", + "ultralytics==8.3.41": "ultralytics==8.3.41" + } + + file_blacklist = { + "ComfyUI_LLMVISION": ["%LocalAppData%\\rundll64.exe"], + "lolMiner": [os.path.join(comfyui_path, 'lolMiner')] + } + + installed_pips = subprocess.check_output(manager_util.make_pip_cmd(["freeze"]), text=True) + + detected = set() + try: + anthropic_info = subprocess.check_output(manager_util.make_pip_cmd(["show", "anthropic"]), text=True, stderr=subprocess.DEVNULL) + requires_lines = [x for x in anthropic_info.split('\n') if x.startswith("Requires")] + if requires_lines: + anthropic_reqs = requires_lines[0].split(": ", 1)[1] + if "pycrypto" in anthropic_reqs: + location_lines = [x for x in anthropic_info.split('\n') if x.startswith("Location")] + if location_lines: + location = location_lines[0].split(": ", 1)[1] + for fi in os.listdir(location): + if fi.startswith("anthropic"): + guide["ComfyUI_LLMVISION"] = (f"\n0.Remove {os.path.join(location, fi)}" + guide["ComfyUI_LLMVISION"]) + detected.add("ComfyUI_LLMVISION") + + except subprocess.CalledProcessError: + pass + + for k, v in node_blacklist.items(): + if os.path.exists(os.path.join(custom_nodes_path, k)): + print(f"[SECURITY ALERT] custom node '{k}' is dangerous.") + detected.add(v) + + for k, v in pip_blacklist.items(): + if k in installed_pips: + detected.add(v) + break + + for k, v in file_blacklist.items(): + for x in v: + if os.path.exists(os.path.expandvars(x)): + detected.add(k) + break + + if len(detected) > 0: + for line in installed_pips.split('\n'): + for k, v in pip_blacklist.items(): + if k in line: + print(f"[SECURITY ALERT] '{line}' is dangerous.") + + print("\n########################################################################") + print(" Malware has been detected, forcibly terminating ComfyUI execution.") + print("########################################################################\n") + + for x in detected: + print(f"\n======== TARGET: {x} =========") + print("\nTODO:") + print(guide.get(x)) + + exit(-1) + + print("[DONE] Security scan") diff --git a/glob/share_3rdparty.py b/glob/share_3rdparty.py new file mode 100644 index 00000000..837176fb --- /dev/null +++ b/glob/share_3rdparty.py @@ -0,0 +1,433 @@ +import mimetypes +import manager_core as core +import os +from aiohttp import web +import aiohttp +import json +import hashlib + +import folder_paths +from server import PromptServer + + +def extract_model_file_names(json_data): + """Extract unique file names from the input JSON data.""" + file_names = set() + model_filename_extensions = {'.safetensors', '.ckpt', '.pt', '.pth', '.bin'} + + # Recursively search for file names in the JSON data + def recursive_search(data): + if isinstance(data, dict): + for value in data.values(): + recursive_search(value) + elif isinstance(data, list): + for item in data: + recursive_search(item) + elif isinstance(data, str) and '.' in data: + file_names.add(os.path.basename(data)) # file_names.add(data) + + recursive_search(json_data) + return [f for f in list(file_names) if os.path.splitext(f)[1] in model_filename_extensions] + + +def find_file_paths(base_dir, file_names): + """Find the paths of the files in the base directory.""" + file_paths = {} + + for root, dirs, files in os.walk(base_dir): + # Exclude certain directories + dirs[:] = [d for d in dirs if d not in ['.git']] + + for file in files: + if file in file_names: + file_paths[file] = os.path.join(root, file) + return file_paths + + +def compute_sha256_checksum(filepath): + """Compute the SHA256 checksum of a file, in chunks""" + sha256 = hashlib.sha256() + with open(filepath, 'rb') as f: + for chunk in iter(lambda: f.read(4096), b''): + sha256.update(chunk) + return sha256.hexdigest() + + +@PromptServer.instance.routes.get("/manager/share_option") +async def share_option(request): + if "value" in request.rel_url.query: + core.get_config()['share_option'] = request.rel_url.query['value'] + core.write_config() + else: + return web.Response(text=core.get_config()['share_option'], status=200) + + return web.Response(status=200) + + +def get_openart_auth(): + if not os.path.exists(os.path.join(core.manager_files_path, ".openart_key")): + return None + try: + with open(os.path.join(core.manager_files_path, ".openart_key"), "r") as f: + openart_key = f.read().strip() + return openart_key if openart_key else None + except: + return None + + +def get_matrix_auth(): + if not os.path.exists(os.path.join(core.manager_files_path, "matrix_auth")): + return None + try: + with open(os.path.join(core.manager_files_path, "matrix_auth"), "r") as f: + matrix_auth = f.read() + homeserver, username, password = matrix_auth.strip().split("\n") + if not homeserver or not username or not password: + return None + return { + "homeserver": homeserver, + "username": username, + "password": password, + } + except: + return None + + +def get_comfyworkflows_auth(): + if not os.path.exists(os.path.join(core.manager_files_path, "comfyworkflows_sharekey")): + return None + try: + with open(os.path.join(core.manager_files_path, "comfyworkflows_sharekey"), "r") as f: + share_key = f.read() + if not share_key.strip(): + return None + return share_key + except: + return None + + +def get_youml_settings(): + if not os.path.exists(os.path.join(core.manager_files_path, ".youml")): + return None + try: + with open(os.path.join(core.manager_files_path, ".youml"), "r") as f: + youml_settings = f.read().strip() + return youml_settings if youml_settings else None + except: + return None + + +def set_youml_settings(settings): + with open(os.path.join(core.manager_files_path, ".youml"), "w") as f: + f.write(settings) + + +@PromptServer.instance.routes.get("/manager/get_openart_auth") +async def api_get_openart_auth(request): + # print("Getting stored Matrix credentials...") + openart_key = get_openart_auth() + if not openart_key: + return web.Response(status=404) + return web.json_response({"openart_key": openart_key}) + + +@PromptServer.instance.routes.post("/manager/set_openart_auth") +async def api_set_openart_auth(request): + json_data = await request.json() + openart_key = json_data['openart_key'] + with open(os.path.join(core.manager_files_path, ".openart_key"), "w") as f: + f.write(openart_key) + return web.Response(status=200) + + +@PromptServer.instance.routes.get("/manager/get_matrix_auth") +async def api_get_matrix_auth(request): + # print("Getting stored Matrix credentials...") + matrix_auth = get_matrix_auth() + if not matrix_auth: + return web.Response(status=404) + return web.json_response(matrix_auth) + + +@PromptServer.instance.routes.get("/manager/youml/settings") +async def api_get_youml_settings(request): + youml_settings = get_youml_settings() + if not youml_settings: + return web.Response(status=404) + return web.json_response(json.loads(youml_settings)) + + +@PromptServer.instance.routes.post("/manager/youml/settings") +async def api_set_youml_settings(request): + json_data = await request.json() + set_youml_settings(json.dumps(json_data)) + return web.Response(status=200) + + +@PromptServer.instance.routes.get("/manager/get_comfyworkflows_auth") +async def api_get_comfyworkflows_auth(request): + # Check if the user has provided Matrix credentials in a file called 'matrix_accesstoken' + # in the same directory as the ComfyUI base folder + # print("Getting stored Comfyworkflows.com auth...") + comfyworkflows_auth = get_comfyworkflows_auth() + if not comfyworkflows_auth: + return web.Response(status=404) + return web.json_response({"comfyworkflows_sharekey": comfyworkflows_auth}) + + +@PromptServer.instance.routes.post("/manager/set_esheep_workflow_and_images") +async def set_esheep_workflow_and_images(request): + json_data = await request.json() + with open(os.path.join(core.manager_files_path, "esheep_share_message.json"), "w", encoding='utf-8') as file: + json.dump(json_data, file, indent=4) + return web.Response(status=200) + + +@PromptServer.instance.routes.get("/manager/get_esheep_workflow_and_images") +async def get_esheep_workflow_and_images(request): + with open(os.path.join(core.manager_files_path, "esheep_share_message.json"), 'r', encoding='utf-8') as file: + data = json.load(file) + return web.Response(status=200, text=json.dumps(data)) + + +def set_matrix_auth(json_data): + homeserver = json_data['homeserver'] + username = json_data['username'] + password = json_data['password'] + with open(os.path.join(core.manager_files_path, "matrix_auth"), "w") as f: + f.write("\n".join([homeserver, username, password])) + + +def set_comfyworkflows_auth(comfyworkflows_sharekey): + with open(os.path.join(core.manager_files_path, "comfyworkflows_sharekey"), "w") as f: + f.write(comfyworkflows_sharekey) + + +def has_provided_matrix_auth(matrix_auth): + return matrix_auth['homeserver'].strip() and matrix_auth['username'].strip() and matrix_auth['password'].strip() + + +def has_provided_comfyworkflows_auth(comfyworkflows_sharekey): + return comfyworkflows_sharekey.strip() + + +@PromptServer.instance.routes.post("/manager/share") +async def share_art(request): + # get json data + json_data = await request.json() + + matrix_auth = json_data['matrix_auth'] + comfyworkflows_sharekey = json_data['cw_auth']['cw_sharekey'] + + set_matrix_auth(matrix_auth) + set_comfyworkflows_auth(comfyworkflows_sharekey) + + share_destinations = json_data['share_destinations'] + credits = json_data['credits'] + title = json_data['title'] + description = json_data['description'] + is_nsfw = json_data['is_nsfw'] + prompt = json_data['prompt'] + potential_outputs = json_data['potential_outputs'] + selected_output_index = json_data['selected_output_index'] + + try: + output_to_share = potential_outputs[int(selected_output_index)] + except: + # for now, pick the first output + output_to_share = potential_outputs[0] + + assert output_to_share['type'] in ('image', 'output') + output_dir = folder_paths.get_output_directory() + + if output_to_share['type'] == 'image': + asset_filename = output_to_share['image']['filename'] + asset_subfolder = output_to_share['image']['subfolder'] + + if output_to_share['image']['type'] == 'temp': + output_dir = folder_paths.get_temp_directory() + else: + asset_filename = output_to_share['output']['filename'] + asset_subfolder = output_to_share['output']['subfolder'] + + if asset_subfolder: + asset_filepath = os.path.join(output_dir, asset_subfolder, asset_filename) + else: + asset_filepath = os.path.join(output_dir, asset_filename) + + # get the mime type of the asset + assetFileType = mimetypes.guess_type(asset_filepath)[0] + + share_website_host = "UNKNOWN" + if "comfyworkflows" in share_destinations: + share_website_host = "https://comfyworkflows.com" + share_endpoint = f"{share_website_host}/api" + + # get presigned urls + async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: + async with session.post( + f"{share_endpoint}/get_presigned_urls", + json={ + "assetFileName": asset_filename, + "assetFileType": assetFileType, + "workflowJsonFileName": 'workflow.json', + "workflowJsonFileType": 'application/json', + }, + ) as resp: + assert resp.status == 200 + presigned_urls_json = await resp.json() + assetFilePresignedUrl = presigned_urls_json["assetFilePresignedUrl"] + assetFileKey = presigned_urls_json["assetFileKey"] + workflowJsonFilePresignedUrl = presigned_urls_json["workflowJsonFilePresignedUrl"] + workflowJsonFileKey = presigned_urls_json["workflowJsonFileKey"] + + # upload asset + async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: + async with session.put(assetFilePresignedUrl, data=open(asset_filepath, "rb")) as resp: + assert resp.status == 200 + + # upload workflow json + async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: + async with session.put(workflowJsonFilePresignedUrl, data=json.dumps(prompt['workflow']).encode('utf-8')) as resp: + assert resp.status == 200 + + model_filenames = extract_model_file_names(prompt['workflow']) + model_file_paths = find_file_paths(folder_paths.base_path, model_filenames) + + models_info = {} + for filename, filepath in model_file_paths.items(): + models_info[filename] = { + "filename": filename, + "sha256_checksum": compute_sha256_checksum(filepath), + "relative_path": os.path.relpath(filepath, folder_paths.base_path), + } + + # make a POST request to /api/upload_workflow with form data key values + async with aiohttp.ClientSession(trust_env=True, connector=aiohttp.TCPConnector(verify_ssl=False)) as session: + form = aiohttp.FormData() + if comfyworkflows_sharekey: + form.add_field("shareKey", comfyworkflows_sharekey) + form.add_field("source", "comfyui_manager") + form.add_field("assetFileKey", assetFileKey) + form.add_field("assetFileType", assetFileType) + form.add_field("workflowJsonFileKey", workflowJsonFileKey) + form.add_field("sharedWorkflowWorkflowJsonString", json.dumps(prompt['workflow'])) + form.add_field("sharedWorkflowPromptJsonString", json.dumps(prompt['output'])) + form.add_field("shareWorkflowCredits", credits) + form.add_field("shareWorkflowTitle", title) + form.add_field("shareWorkflowDescription", description) + form.add_field("shareWorkflowIsNSFW", str(is_nsfw).lower()) + form.add_field("currentSnapshot", json.dumps(await core.get_current_snapshot())) + form.add_field("modelsInfo", json.dumps(models_info)) + + async with session.post( + f"{share_endpoint}/upload_workflow", + data=form, + ) as resp: + assert resp.status == 200 + upload_workflow_json = await resp.json() + workflowId = upload_workflow_json["workflowId"] + + # check if the user has provided Matrix credentials + if "matrix" in share_destinations: + comfyui_share_room_id = '!LGYSoacpJPhIfBqVfb:matrix.org' + filename = os.path.basename(asset_filepath) + content_type = assetFileType + + try: + from nio import AsyncClient, LoginResponse, UploadResponse + + homeserver = 'matrix.org' + if matrix_auth: + homeserver = matrix_auth.get('homeserver', 'matrix.org') + homeserver = homeserver.replace("http://", "https://") + if not homeserver.startswith("https://"): + homeserver = "https://" + homeserver + + client = AsyncClient(homeserver, matrix_auth['username']) + + # Login + login_resp = await client.login(matrix_auth['password']) + if not isinstance(login_resp, LoginResponse) or not login_resp.access_token: + await client.close() + return web.json_response({"error": "Invalid Matrix credentials."}, content_type='application/json', status=400) + + # Upload asset + with open(asset_filepath, 'rb') as f: + upload_resp, _maybe_keys = await client.upload(f, content_type=content_type, filename=filename) + asset_data = f.seek(0) or f.read() # get size for info below + if not isinstance(upload_resp, UploadResponse) or not upload_resp.content_uri: + await client.close() + return web.json_response({"error": "Failed to upload asset to Matrix."}, content_type='application/json', status=500) + mxc_url = upload_resp.content_uri + + # Upload workflow JSON + import io + workflow_json_bytes = json.dumps(prompt['workflow']).encode('utf-8') + workflow_io = io.BytesIO(workflow_json_bytes) + upload_workflow_resp, _maybe_keys = await client.upload(workflow_io, content_type='application/json', filename='workflow.json') + workflow_io.seek(0) + if not isinstance(upload_workflow_resp, UploadResponse) or not upload_workflow_resp.content_uri: + await client.close() + return web.json_response({"error": "Failed to upload workflow to Matrix."}, content_type='application/json', status=500) + workflow_json_mxc_url = upload_workflow_resp.content_uri + + # Send text message + text_content = "" + if title: + text_content += f"{title}\n" + if description: + text_content += f"{description}\n" + if credits: + text_content += f"\ncredits: {credits}\n" + await client.room_send( + room_id=comfyui_share_room_id, + message_type="m.room.message", + content={"msgtype": "m.text", "body": text_content} + ) + + # Send image + await client.room_send( + room_id=comfyui_share_room_id, + message_type="m.room.message", + content={ + "msgtype": "m.image", + "body": filename, + "url": mxc_url, + "info": { + "mimetype": content_type, + "size": len(asset_data) + } + } + ) + + # Send workflow JSON file + await client.room_send( + room_id=comfyui_share_room_id, + message_type="m.room.message", + content={ + "msgtype": "m.file", + "body": "workflow.json", + "url": workflow_json_mxc_url, + "info": { + "mimetype": "application/json", + "size": len(workflow_json_bytes) + } + } + ) + + await client.close() + + except: + import traceback + traceback.print_exc() + return web.json_response({"error": "An error occurred when sharing your art to Matrix."}, content_type='application/json', status=500) + + return web.json_response({ + "comfyworkflows": { + "url": None if "comfyworkflows" not in share_destinations else f"{share_website_host}/workflows/{workflowId}", + }, + "matrix": { + "success": None if "matrix" not in share_destinations else True + } + }, content_type='application/json', status=200) diff --git a/js/README.md b/js/README.md new file mode 100644 index 00000000..3832a17c --- /dev/null +++ b/js/README.md @@ -0,0 +1,50 @@ +# ComfyUI-Manager: Frontend (js) + +This directory contains the JavaScript frontend implementation for ComfyUI-Manager, providing the user interface components that interact with the backend API. + +## Core Components + +- **comfyui-manager.js**: Main entry point that initializes the manager UI and integrates with ComfyUI. +- **custom-nodes-manager.js**: Implements the UI for browsing, installing, and managing custom nodes. +- **model-manager.js**: Handles the model management interface for downloading and organizing AI models. +- **components-manager.js**: Manages reusable workflow components system. +- **snapshot.js**: Implements the snapshot system for backing up and restoring installations. + +## Sharing Components + +- **comfyui-share-common.js**: Base functionality for workflow sharing features. +- **comfyui-share-copus.js**: Integration with the ComfyUI Opus sharing platform. +- **comfyui-share-openart.js**: Integration with the OpenArt sharing platform. +- **comfyui-share-youml.js**: Integration with the YouML sharing platform. + +## Utility Components + +- **cm-api.js**: Client-side API wrapper for communication with the backend. +- **common.js**: Shared utilities and helper functions used across the frontend. +- **node_fixer.js**: Utilities for fixing disconnected links and repairing malformed nodes by recreating them while preserving connections. +- **popover-helper.js**: UI component for popup tooltips and contextual information. +- **turbogrid.esm.js**: Grid component library - https://github.com/cenfun/turbogrid +- **workflow-metadata.js**: Handles workflow metadata parsing, validation and cross-repository compatibility including versioning, dependencies tracking, and resource management. + +## Architecture + +The frontend follows a modular component-based architecture: + +1. **Integration Layer**: Connects with ComfyUI's existing UI system +2. **Manager Components**: Individual functional UI components (node manager, model manager, etc.) +3. **Sharing Components**: Platform-specific sharing implementations +4. **Utility Layer**: Reusable UI components and helpers + +## Implementation Details + +- The frontend integrates directly with ComfyUI's UI system through `app.js` +- Dialog-based UI for most manager functions to avoid cluttering the main interface +- Asynchronous API calls to handle backend operations without blocking the UI + +## Styling + +CSS files are included for specific components: +- **custom-nodes-manager.css**: Styling for the node management UI +- **model-manager.css**: Styling for the model management UI + +This frontend implementation provides a comprehensive yet user-friendly interface for managing the ComfyUI ecosystem. \ No newline at end of file diff --git a/js/a1111-alter-downloader.js b/js/a1111-alter-downloader.js deleted file mode 100644 index 65780a6b..00000000 --- a/js/a1111-alter-downloader.js +++ /dev/null @@ -1,566 +0,0 @@ -import { app } from "../../scripts/app.js"; -import { api } from "../../scripts/api.js" -import { ComfyDialog, $el } from "../../scripts/ui.js"; -import { install_checked_custom_node, manager_instance, rebootAPI } from "./common.js"; - -async function getAlterList() { - var mode = manager_instance.datasrc_combo.value; - - var skip_update = ""; - if(manager_instance.update_check_checkbox.checked) - skip_update = "&skip_update=true"; - - const response = await api.fetchApi(`/alternatives/getlist?mode=${mode}${skip_update}`); - - const data = await response.json(); - return data; -} - -export class AlternativesInstaller extends ComfyDialog { - static instance = null; - - install_buttons = []; - message_box = null; - data = null; - - clear() { - this.install_buttons = []; - this.message_box = null; - this.data = null; - } - - constructor(app, manager_dialog) { - super(); - this.manager_dialog = manager_dialog; - this.search_keyword = ''; - this.element = $el("div.comfy-modal", { parent: document.body }, []); - } - - startInstall(target) { - const self = AlternativesInstaller.instance; - - self.updateMessage(`
Installing '${target.title}'`); - } - - disableButtons() { - for(let i in this.install_buttons) { - this.install_buttons[i].disabled = true; - this.install_buttons[i].style.backgroundColor = 'gray'; - } - } - - apply_searchbox(data) { - let keyword = this.search_box.value.toLowerCase(); - for(let i in this.grid_rows) { - let data1 = this.grid_rows[i].data; - let data2 = data1.custom_node; - - if(!data2) - continue; - - let content = data1.tags.toLowerCase() + data1.description.toLowerCase() + data2.author.toLowerCase() + data2.description.toLowerCase() + data2.title.toLowerCase(); - - if(this.filter && this.filter != '*') { - if(this.filter != data2.installed) { - this.grid_rows[i].control.style.display = 'none'; - continue; - } - } - - if(keyword == "") - this.grid_rows[i].control.style.display = null; - else if(content.includes(keyword)) { - this.grid_rows[i].control.style.display = null; - } - else { - this.grid_rows[i].control.style.display = 'none'; - } - } - } - - async invalidateControl() { - this.clear(); - - // splash - while (this.element.children.length) { - this.element.removeChild(this.element.children[0]); - } - - const msg = $el('div', {id:'custom-message'}, - [$el('br'), - 'The custom node DB is currently being updated, and updates to custom nodes are being checked for.', - $el('br'), - 'NOTE: Update only checks for extensions that have been fetched.', - $el('br')]); - msg.style.height = '100px'; - msg.style.verticalAlign = 'middle'; - this.element.appendChild(msg); - - // invalidate - this.data = (await getAlterList()).items; - - this.element.removeChild(msg); - - while (this.element.children.length) { - this.element.removeChild(this.element.children[0]); - } - - this.createHeaderControls(); - await this.createGrid(); - this.apply_searchbox(this.data); - this.createBottomControls(); - } - - updateMessage(msg, btn_id) { - this.message_box.innerHTML = msg; - if(btn_id) { - const rebootButton = document.getElementById(btn_id); - const self = this; - rebootButton.addEventListener("click", - function() { - if(rebootAPI()) { - self.close(); - self.manager_dialog.close(); - } - }); - } - } - - invalidate_checks(is_checked, install_state) { - if(is_checked) { - for(let i in this.grid_rows) { - let data = this.grid_rows[i].data; - let checkbox = this.grid_rows[i].checkbox; - let buttons = this.grid_rows[i].buttons; - - checkbox.disabled = data.custom_node.installed != install_state; - - if(checkbox.disabled) { - for(let j in buttons) { - buttons[j].style.display = 'none'; - } - } - else { - for(let j in buttons) { - buttons[j].style.display = null; - } - } - } - - this.checkbox_all.disabled = false; - } - else { - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - if(checkbox.check) - return; // do nothing - } - - // every checkbox is unchecked -> enable all checkbox - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - let buttons = this.grid_rows[i].buttons; - checkbox.disabled = false; - - for(let j in buttons) { - buttons[j].style.display = null; - } - } - - this.checkbox_all.checked = false; - this.checkbox_all.disabled = true; - } - } - - check_all(is_checked) { - if(is_checked) { - // lookup first checked item's state - let check_state = null; - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - if(checkbox.checked) { - check_state = this.grid_rows[i].data.custom_node.installed; - } - } - - if(check_state == null) - return; - - // check only same state items - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - if(this.grid_rows[i].data.custom_node.installed == check_state) - checkbox.checked = true; - } - } - else { - // uncheck all - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - let buttons = this.grid_rows[i].buttons; - checkbox.checked = false; - checkbox.disabled = false; - - for(let j in buttons) { - buttons[j].style.display = null; - } - } - - this.checkbox_all.disabled = true; - } - } - - async createGrid() { - var grid = document.createElement('table'); - grid.setAttribute('id', 'alternatives-grid'); - - this.grid_rows = {}; - - let self = this; - - var thead = document.createElement('thead'); - var tbody = document.createElement('tbody'); - - var headerRow = document.createElement('tr'); - thead.style.position = "sticky"; - thead.style.top = "0px"; - thead.style.borderCollapse = "collapse"; - thead.style.tableLayout = "fixed"; - - var header0 = document.createElement('th'); - header0.style.width = "20px"; - this.checkbox_all = $el("input",{type:'checkbox', id:'check_all'},[]); - header0.appendChild(this.checkbox_all); - this.checkbox_all.checked = false; - this.checkbox_all.disabled = true; - this.checkbox_all.addEventListener('change', function() { self.check_all.call(self, self.checkbox_all.checked); }); - - var header1 = document.createElement('th'); - header1.innerHTML = '  ID  '; - header1.style.width = "20px"; - var header2 = document.createElement('th'); - header2.innerHTML = 'Tags'; - header2.style.width = "10%"; - var header3 = document.createElement('th'); - header3.innerHTML = 'Author'; - header3.style.width = "150px"; - var header4 = document.createElement('th'); - header4.innerHTML = 'Title'; - header4.style.width = "20%"; - var header5 = document.createElement('th'); - header5.innerHTML = 'Description'; - header5.style.width = "50%"; - var header6 = document.createElement('th'); - header6.innerHTML = 'Install'; - header6.style.width = "130px"; - - header1.style.position = "sticky"; - header1.style.top = "0px"; - header2.style.position = "sticky"; - header2.style.top = "0px"; - header3.style.position = "sticky"; - header3.style.top = "0px"; - header4.style.position = "sticky"; - header4.style.top = "0px"; - header5.style.position = "sticky"; - header5.style.top = "0px"; - - thead.appendChild(headerRow); - headerRow.appendChild(header0); - headerRow.appendChild(header1); - headerRow.appendChild(header2); - headerRow.appendChild(header3); - headerRow.appendChild(header4); - headerRow.appendChild(header5); - headerRow.appendChild(header6); - - headerRow.style.backgroundColor = "Black"; - headerRow.style.color = "White"; - headerRow.style.textAlign = "center"; - headerRow.style.width = "100%"; - headerRow.style.padding = "0"; - - grid.appendChild(thead); - grid.appendChild(tbody); - - if(this.data) - for (var i = 0; i < this.data.length; i++) { - const data = this.data[i]; - var dataRow = document.createElement('tr'); - - let data0 = document.createElement('td'); - let checkbox = $el("input",{type:'checkbox', id:`check_${i}`},[]); - data0.appendChild(checkbox); - checkbox.checked = false; - checkbox.addEventListener('change', function() { self.invalidate_checks.call(self, checkbox.checked, data.custom_node?.installed); }); - - var data1 = document.createElement('td'); - data1.style.textAlign = "center"; - data1.innerHTML = i+1; - var data2 = document.createElement('td'); - data2.innerHTML = ` ${data.tags}`; - var data3 = document.createElement('td'); - var data4 = document.createElement('td'); - if(data.custom_node) { - data3.innerHTML = ` ${data.custom_node.author}`; - data4.innerHTML = ` ${data.custom_node.title}`; - } - else { - data3.innerHTML = ` Unknown`; - data4.innerHTML = ` Unknown`; - } - var data5 = document.createElement('td'); - data5.innerHTML = data.description; - var data6 = document.createElement('td'); - data6.style.textAlign = "center"; - - var installBtn = document.createElement('button'); - var installBtn2 = null; - var installBtn3 = null; - - if(data.custom_node) { - this.install_buttons.push(installBtn); - - switch(data.custom_node.installed) { - case 'Disabled': - installBtn3 = document.createElement('button'); - installBtn3.innerHTML = 'Enable'; - installBtn3.style.backgroundColor = 'blue'; - installBtn3.style.color = 'white'; - this.install_buttons.push(installBtn3); - - installBtn.innerHTML = 'Uninstall'; - installBtn.style.backgroundColor = 'red'; - installBtn.style.color = 'white'; - break; - case 'Update': - installBtn2 = document.createElement('button'); - installBtn2.innerHTML = 'Update'; - installBtn2.style.backgroundColor = 'blue'; - installBtn2.style.color = 'white'; - this.install_buttons.push(installBtn2); - - installBtn3 = document.createElement('button'); - installBtn3.innerHTML = 'Disable'; - installBtn3.style.backgroundColor = 'MediumSlateBlue'; - installBtn3.style.color = 'white'; - this.install_buttons.push(installBtn3); - - installBtn.innerHTML = 'Uninstall'; - installBtn.style.backgroundColor = 'red'; - installBtn.style.color = 'white'; - break; - case 'True': - installBtn3 = document.createElement('button'); - installBtn3.innerHTML = 'Disable'; - installBtn3.style.backgroundColor = 'MediumSlateBlue'; - installBtn3.style.color = 'white'; - this.install_buttons.push(installBtn3); - - installBtn.innerHTML = 'Uninstall'; - installBtn.style.backgroundColor = 'red'; - installBtn.style.color = 'white'; - break; - case 'False': - installBtn.innerHTML = 'Install'; - installBtn.style.backgroundColor = 'black'; - installBtn.style.color = 'white'; - break; - default: - installBtn.innerHTML = 'Try Install'; - installBtn.style.backgroundColor = 'Gray'; - installBtn.style.color = 'white'; - } - - let j = i; - if(installBtn2 != null) { - installBtn2.style.width = "120px"; - installBtn2.addEventListener('click', function() { - install_checked_custom_node(self.grid_rows, j, AlternativesInstaller.instance, 'update'); - }); - - data6.appendChild(installBtn2); - } - - if(installBtn3 != null) { - installBtn3.style.width = "120px"; - installBtn3.addEventListener('click', function() { - install_checked_custom_node(self.grid_rows, j, AlternativesInstaller.instance, 'toggle_active'); - }); - - data6.appendChild(installBtn3); - } - - - installBtn.style.width = "120px"; - installBtn.addEventListener('click', function() { - if(this.innerHTML == 'Uninstall') { - if (confirm(`Are you sure uninstall ${data.title}?`)) { - install_checked_custom_node(self.grid_rows, j, AlternativesInstaller.instance, 'uninstall'); - } - } - else { - install_checked_custom_node(self.grid_rows, j, AlternativesInstaller.instance, 'install'); - } - }); - - data6.appendChild(installBtn); - } - - dataRow.style.backgroundColor = "var(--bg-color)"; - dataRow.style.color = "var(--fg-color)"; - dataRow.style.textAlign = "left"; - - dataRow.appendChild(data0); - dataRow.appendChild(data1); - dataRow.appendChild(data2); - dataRow.appendChild(data3); - dataRow.appendChild(data4); - dataRow.appendChild(data5); - dataRow.appendChild(data6); - tbody.appendChild(dataRow); - - let buttons = []; - if(installBtn) { - buttons.push(installBtn); - } - if(installBtn2) { - buttons.push(installBtn2); - } - if(installBtn3) { - buttons.push(installBtn3); - } - - this.grid_rows[i] = {data:data, buttons:buttons, checkbox:checkbox, control:dataRow}; - } - - const panel = document.createElement('div'); - panel.style.width = "100%"; - panel.appendChild(grid); - - function handleResize() { - const parentHeight = self.element.clientHeight; - const gridHeight = parentHeight - 200; - - grid.style.height = gridHeight + "px"; - } - window.addEventListener("resize", handleResize); - - grid.style.position = "relative"; - grid.style.display = "inline-block"; - grid.style.width = "100%"; - grid.style.height = "100%"; - grid.style.overflowY = "scroll"; - this.element.style.height = "85%"; - this.element.style.width = "80%"; - this.element.appendChild(panel); - - handleResize(); - } - - createFilterCombo() { - let combo = document.createElement("select"); - - combo.style.cssFloat = "left"; - combo.style.fontSize = "14px"; - combo.style.padding = "4px"; - combo.style.background = "black"; - combo.style.marginLeft = "2px"; - combo.style.width = "199px"; - combo.id = `combo-manger-filter`; - combo.style.borderRadius = "15px"; - - let items = - [ - { value:'*', text:'Filter: all' }, - { value:'Disabled', text:'Filter: disabled' }, - { value:'Update', text:'Filter: update' }, - { value:'True', text:'Filter: installed' }, - { value:'False', text:'Filter: not-installed' }, - ]; - - items.forEach(item => { - const option = document.createElement("option"); - option.value = item.value; - option.text = item.text; - combo.appendChild(option); - }); - - let self = this; - combo.addEventListener('change', function(event) { - self.filter = event.target.value; - self.apply_searchbox(); - }); - - if(self.filter) { - combo.value = self.filter; - } - - return combo; - } - - createHeaderControls() { - let self = this; - this.search_box = $el('input.cm-search-filter', {type:'text', id:'manager-alternode-search-box', placeholder:'input search keyword', value:this.search_keyword}, []); - this.search_box.style.height = "25px"; - this.search_box.onkeydown = (event) => { - if (event.key === 'Enter') { - self.search_keyword = self.search_box.value; - self.apply_searchbox(); - } - if (event.key === 'Escape') { - self.search_keyword = self.search_box.value; - self.apply_searchbox(); - } - }; - - let search_button = document.createElement("button"); - search_button.className = "cm-small-button"; - search_button.innerHTML = "Search"; - search_button.onclick = () => { - self.search_keyword = self.search_box.value; - self.apply_searchbox(); - }; - search_button.style.display = "inline-block"; - - let filter_control = this.createFilterCombo(); - filter_control.style.display = "inline-block"; - - let cell = $el('td', {width:'100%'}, [filter_control, this.search_box, ' ', search_button]); - let search_control = $el('table', {width:'100%'}, - [ - $el('tr', {}, [cell]) - ] - ); - - cell.style.textAlign = "right"; - this.element.appendChild(search_control); - } - - async createBottomControls() { - var close_button = document.createElement("button"); - close_button.className = "cm-small-button"; - close_button.innerHTML = "Close"; - close_button.onclick = () => { this.close(); } - close_button.style.display = "inline-block"; - - this.message_box = $el('div', {id:'alternatives-installer-message'}, [$el('br'), '']); - this.message_box.style.height = '60px'; - this.message_box.style.verticalAlign = 'middle'; - - this.element.appendChild(this.message_box); - this.element.appendChild(close_button); - } - - async show() { - try { - this.invalidateControl(); - this.element.style.display = "block"; - this.element.style.zIndex = 10001; - } - catch(exception) { - app.ui.dialog.show(`Failed to get alternatives list. / ${exception}`); - console.error(exception); - } - } -} diff --git a/js/cm-api.js b/js/cm-api.js index e65cb348..dabc6f1d 100644 --- a/js/cm-api.js +++ b/js/cm-api.js @@ -1,10 +1,10 @@ import { api } from "../../scripts/api.js"; import { app } from "../../scripts/app.js"; -import { sleep } from "./common.js"; +import { sleep, customConfirm, customAlert } from "./common.js"; async function tryInstallCustomNode(event) { let msg = '-= [ComfyUI Manager] extension installation request =-\n\n'; - msg += `The '${event.detail.sender}' extension requires the installation of the '${event.detail.title}' extension. `; + msg += `The '${event.detail.sender}' extension requires the installation of the '${event.detail.target.title}' extension. `; if(event.detail.target.installed == 'Disabled') { msg += 'However, the extension is currently disabled. Would you like to enable it and reboot?' @@ -19,11 +19,10 @@ async function tryInstallCustomNode(event) { msg += `\n\nRequest message:\n${event.detail.msg}`; if(event.detail.target.installed == 'True') { - alert(msg); + customAlert(msg); return; } - - let res = confirm(msg); + const res = await customConfirm(msg); if(res) { if(event.detail.target.installed == 'Disabled') { const response = await api.fetchApi(`/customnode/toggle_active`, { @@ -41,9 +40,23 @@ async function tryInstallCustomNode(event) { headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(event.detail.target) }); + + if(response.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return false; + } + else if(response.status == 400) { + let msg = await res.text(); + show_message(msg); + return false; + } } - api.fetchApi("/manager/reboot"); + let response = await api.fetchApi("/manager/reboot"); + if(response.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return false; + } await sleep(300); diff --git a/js/comfyui-manager.js b/js/comfyui-manager.js index 6b4c1ce6..6fc504b1 100644 --- a/js/comfyui-manager.js +++ b/js/comfyui-manager.js @@ -1,38 +1,60 @@ +import { api } from "../../scripts/api.js"; import { app } from "../../scripts/app.js"; -import { api } from "../../scripts/api.js" -import { ComfyDialog, $el } from "../../scripts/ui.js"; +import { $el, ComfyDialog } from "../../scripts/ui.js"; import { - ShareDialog, SUPPORTED_OUTPUT_NODE_TYPES, - getPotentialOutputsAndOutputNodes, + ShareDialog, ShareDialogChooser, + getPotentialOutputsAndOutputNodes, showOpenArtShareDialog, showShareDialog, showYouMLShareDialog } from "./comfyui-share-common.js"; import { OpenArtShareDialog } from "./comfyui-share-openart.js"; -import { CustomNodesInstaller } from "./custom-nodes-downloader.js"; -import { AlternativesInstaller } from "./a1111-alter-downloader.js"; +import { + free_models, install_pip, install_via_git_url, manager_instance, + rebootAPI, setManagerInstance, show_message, customAlert, customPrompt, + infoToast, showTerminal, setNeedRestart +} from "./common.js"; +import { ComponentBuilderDialog, getPureName, load_components, set_component_policy } from "./components-manager.js"; +import { CustomNodesManager } from "./custom-nodes-manager.js"; +import { ModelManager } from "./model-manager.js"; import { SnapshotManager } from "./snapshot.js"; -import { ModelInstaller } from "./model-downloader.js"; -import { manager_instance, setManagerInstance, install_via_git_url, install_pip, rebootAPI, free_models } from "./common.js"; -import { ComponentBuilderDialog, load_components, set_component_policy, getPureName } from "./components-manager.js"; -import { set_double_click_policy } from "./node_fixer.js"; + +let manager_version = await getVersion(); var docStyle = document.createElement('style'); docStyle.innerHTML = ` +.comfy-toast { + position: fixed; + bottom: 20px; + left: 50%; + transform: translateX(-50%); + background-color: rgba(0, 0, 0, 0.7); + color: white; + padding: 10px 20px; + border-radius: 5px; + z-index: 1000; + transition: opacity 0.5s; +} + +.comfy-toast-fadeout { + opacity: 0; +} + #cm-manager-dialog { width: 1000px; - height: 520px; + height: 455px; box-sizing: content-box; - z-index: 10000; + z-index: 1000; + overflow-y: auto; } .cb-widget { width: 400px; height: 25px; box-sizing: border-box; - z-index: 10000; + z-index: 1000; margin-top: 10px; margin-bottom: 5px; } @@ -84,24 +106,6 @@ docStyle.innerHTML = ` vertical-align: middle; } -#cm-channel-badge { - color: white; - background-color: #AA0000; - width: 220px; - height: 23px; - font-size: 13px; - border-radius: 5px; - left: 5px; - top: 5px; - align-content: center; - justify-content: center; - text-align: center; - font-weight: bold; - float: left; - vertical-align: middle; - position: relative; -} - #custom-nodes-grid a { color: #5555FF; font-weight: bold; @@ -137,7 +141,7 @@ docStyle.innerHTML = ` .cm-notice-board { width: 290px; - height: 270px; + height: 230px; overflow: auto; color: var(--input-text); border: 1px solid var(--descrip-text); @@ -185,13 +189,51 @@ docStyle.innerHTML = ` } `; +function is_legacy_front() { + let compareVersion = '1.2.49'; + try { + const frontendVersion = window['__COMFYUI_FRONTEND_VERSION__']; + if (typeof frontendVersion !== 'string') { + return false; + } + + function parseVersion(versionString) { + const parts = versionString.split('.').map(Number); + return parts.length === 3 && parts.every(part => !isNaN(part)) ? parts : null; + } + + const currentVersion = parseVersion(frontendVersion); + const comparisonVersion = parseVersion(compareVersion); + + if (!currentVersion || !comparisonVersion) { + return false; + } + + for (let i = 0; i < 3; i++) { + if (currentVersion[i] > comparisonVersion[i]) { + return false; + } else if (currentVersion[i] < comparisonVersion[i]) { + return true; + } + } + + return false; + } catch { + return true; + } +} + document.head.appendChild(docStyle); var update_comfyui_button = null; -var fetch_updates_button = null; +var switch_comfyui_button = null; var update_all_button = null; -var badge_mode = "none"; +var restart_stop_button = null; +var update_policy_combo = null; + let share_option = 'all'; +var is_updating = false; + // copied style from https://github.com/pythongosssss/ComfyUI-Custom-Scripts const style = ` @@ -236,6 +278,18 @@ const style = ` color: white !important; } + +.cm-button-orange { + width: 310px; + height: 30px; + position: relative; + overflow: hidden; + font-size: 17px !important; + font-weight: bold; + background-color: orange !important; + color: black !important; +} + .cm-experimental-button { width: 290px; height: 30px; @@ -360,14 +414,6 @@ const style = ` } `; - - -async function init_badge_mode() { - api.fetchApi('/manager/badge_mode') - .then(response => response.text()) - .then(data => { badge_mode = data; }) -} - async function init_share_option() { api.fetchApi('/manager/share_option') .then(response => response.text()) @@ -384,287 +430,362 @@ async function init_notice(notice) { }) } -await init_badge_mode(); await init_share_option(); -async function fetchNicknames() { - const response1 = await api.fetchApi(`/customnode/getmappings?mode=nickname`); - const mappings = await response1.json(); - let result = {}; - let nickname_patterns = []; +async function set_inprogress_mode() { + update_comfyui_button.disabled = true; + update_comfyui_button.style.backgroundColor = "gray"; - for (let i in mappings) { - let item = mappings[i]; - var nickname; - if (item[1].nickname) { - nickname = item[1].nickname; - } - else if (item[1].title) { - nickname = item[1].title; - } - else { - nickname = item[1].title_aux; - } + update_all_button.disabled = true; + update_all_button.style.backgroundColor = "gray"; - for (let j in item[0]) { - result[item[0][j]] = nickname; - } + switch_comfyui_button.disabled = true; + switch_comfyui_button.style.backgroundColor = "gray"; - if(item[1].nodename_pattern) { - nickname_patterns.push([item[1].nodename_pattern, nickname]); - } - } - - return [result, nickname_patterns]; + restart_stop_button.innerText = 'Stop'; } -const [nicknames, nickname_patterns] = await fetchNicknames(); -function getNickname(node, nodename) { - if(node.nickname) { - return node.nickname; +async function reset_action_buttons() { + const isElectron = 'electronAPI' in window; + + if(isElectron) { + update_all_button.innerText = "Update All Custom Nodes"; } else { - if (nicknames[nodename]) { - node.nickname = nicknames[nodename]; - } - else if(node.getInnerNodes) { - let pure_name = getPureName(node); - let groupNode = app.graph.extra?.groupNodes?.[pure_name]; - if(groupNode) { - let packname = groupNode.packname; - node.nickname = packname; - } - return node.nickname; - } - else { - for(let i in nickname_patterns) { - let item = nickname_patterns[i]; - if(nodename.match(item[0])) { - node.nickname = item[1]; - } - } - } - - return node.nickname; + update_all_button.innerText = "Update All"; } + + update_comfyui_button.innerText = "Update ComfyUI"; + switch_comfyui_button.innerText = "Switch ComfyUI"; + restart_stop_button.innerText = 'Restart'; + + update_comfyui_button.disabled = false; + update_all_button.disabled = false; + switch_comfyui_button.disabled = false; + + update_comfyui_button.style.backgroundColor = ""; + update_all_button.style.backgroundColor = ""; + switch_comfyui_button.style.backgroundColor = ""; } -function drawBadge(node, orig, restArgs) { - let ctx = restArgs[0]; - const r = orig?.apply?.(node, restArgs); - - if (!node.flags.collapsed && badge_mode != 'none' && node.constructor.title_mode != LiteGraph.NO_TITLE) { - let text = ""; - if (badge_mode.startsWith('id_nick')) - text = `#${node.id} `; - - let nick = node.getNickname(); - if (nick) { - if (nick == 'ComfyUI') { - if(badge_mode.endsWith('hide')) { - nick = ""; - } - else { - nick = "🦊" - } - } - - if (nick.length > 25) { - text += nick.substring(0, 23) + ".."; - } - else { - text += nick; - } - } - - if (text != "") { - let fgColor = "white"; - let bgColor = "#0F1F0F"; - let visible = true; - - ctx.save(); - ctx.font = "12px sans-serif"; - const sz = ctx.measureText(text); - ctx.fillStyle = bgColor; - ctx.beginPath(); - ctx.roundRect(node.size[0] - sz.width - 12, -LiteGraph.NODE_TITLE_HEIGHT - 20, sz.width + 12, 20, 5); - ctx.fill(); - - ctx.fillStyle = fgColor; - ctx.fillText(text, node.size[0] - sz.width - 6, -LiteGraph.NODE_TITLE_HEIGHT - 6); - ctx.restore(); - - if (node.has_errors) { - ctx.save(); - ctx.font = "bold 14px sans-serif"; - const sz2 = ctx.measureText(node.type); - ctx.fillStyle = 'white'; - ctx.fillText(node.type, node.size[0] / 2 - sz2.width / 2, node.size[1] / 2); - ctx.restore(); - } - } - } - return r; -} - - async function updateComfyUI() { let prev_text = update_comfyui_button.innerText; update_comfyui_button.innerText = "Updating ComfyUI..."; - update_comfyui_button.disabled = true; - update_comfyui_button.style.backgroundColor = "gray"; - try { - const response = await api.fetchApi('/comfyui_manager/update_comfyui'); + set_inprogress_mode(); - if (response.status == 400) { - app.ui.dialog.show('Failed to update ComfyUI.'); - app.ui.dialog.element.style.zIndex = 10010; - return false; - } + const response = await api.fetchApi('/manager/queue/update_comfyui'); - if (response.status == 201) { - app.ui.dialog.show('ComfyUI has been successfully updated.'); - app.ui.dialog.element.style.zIndex = 10010; - } - else { - app.ui.dialog.show('ComfyUI is already up to date with the latest version.'); - app.ui.dialog.element.style.zIndex = 10010; - } + showTerminal(); - return true; - } - catch (exception) { - app.ui.dialog.show(`Failed to update ComfyUI / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; - return false; - } - finally { - update_comfyui_button.disabled = false; - update_comfyui_button.innerText = prev_text; - update_comfyui_button.style.backgroundColor = ""; - } + is_updating = true; + await api.fetchApi('/manager/queue/start'); } -async function fetchUpdates(update_check_checkbox) { - let prev_text = fetch_updates_button.innerText; - fetch_updates_button.innerText = "Fetching updates..."; - fetch_updates_button.disabled = true; - fetch_updates_button.style.backgroundColor = "gray"; +function showVersionSelectorDialog(versions, current, onSelect) { + const dialog = new ComfyDialog(); + dialog.element.style.zIndex = 1100; + dialog.element.style.width = "300px"; + dialog.element.style.padding = "0"; + dialog.element.style.backgroundColor = "#2a2a2a"; + dialog.element.style.border = "1px solid #3a3a3a"; + dialog.element.style.borderRadius = "8px"; + dialog.element.style.boxSizing = "border-box"; + dialog.element.style.overflow = "hidden"; - try { - var mode = manager_instance.datasrc_combo.value; + const contentStyle = { + width: "300px", + display: "flex", + flexDirection: "column", + alignItems: "center", + padding: "20px", + boxSizing: "border-box", + gap: "15px" + }; - const response = await api.fetchApi(`/customnode/fetch_updates?mode=${mode}`); + let selectedVersion = versions[0]; - if (response.status != 200 && response.status != 201) { - app.ui.dialog.show('Failed to fetch updates.'); - app.ui.dialog.element.style.zIndex = 10010; - return false; - } + const versionList = $el("select", { + multiple: true, + size: Math.min(10, versions.length), + style: { + width: "260px", + height: "auto", + backgroundColor: "#383838", + color: "#ffffff", + border: "1px solid #4a4a4a", + borderRadius: "4px", + padding: "5px", + boxSizing: "border-box" + } + }, + versions.map((v, index) => $el("option", { + value: v, + textContent: v, + selected: v === current + })) + ); - if (response.status == 201) { - app.ui.dialog.show("There is an updated extension available.

NOTE:
Fetch Updates is not an update.
Please update from

"); + versionList.addEventListener('change', (e) => { + selectedVersion = e.target.value; + Array.from(e.target.options).forEach(opt => { + opt.selected = opt.value === selectedVersion; + }); + }); - const button = document.getElementById('cm-install-customnodes-button'); - button.addEventListener("click", - async function() { - app.ui.dialog.close(); - - if(!CustomNodesInstaller.instance) - CustomNodesInstaller.instance = new CustomNodesInstaller(app, self); - - await CustomNodesInstaller.instance.show(CustomNodesInstaller.ShowMode.UPDATE); + const content = $el("div", { + style: contentStyle + }, [ + $el("h3", { + textContent: "Select Version", + style: { + color: "#ffffff", + backgroundColor: "#1a1a1a", + padding: "10px 15px", + margin: "0 0 10px 0", + width: "260px", + textAlign: "center", + borderRadius: "4px", + boxSizing: "border-box", + whiteSpace: "nowrap", + overflow: "hidden", + textOverflow: "ellipsis" } - ); + }), + versionList, + $el("div", { + style: { + display: "flex", + justifyContent: "space-between", + width: "260px", + gap: "10px" + } + }, [ + $el("button", { + textContent: "Cancel", + onclick: () => dialog.close(), + style: { + flex: "1", + padding: "8px", + backgroundColor: "#4a4a4a", + color: "#ffffff", + border: "none", + borderRadius: "4px", + cursor: "pointer", + whiteSpace: "nowrap", + overflow: "hidden", + textOverflow: "ellipsis" + } + }), + $el("button", { + textContent: "Select", + onclick: () => { + if (selectedVersion) { + onSelect(selectedVersion); + dialog.close(); + } else { + customAlert("Please select a version."); + } + }, + style: { + flex: "1", + padding: "8px", + backgroundColor: "#4CAF50", + color: "#ffffff", + border: "none", + borderRadius: "4px", + cursor: "pointer", + whiteSpace: "nowrap", + overflow: "hidden", + textOverflow: "ellipsis" + } + }), + ]) + ]); - app.ui.dialog.element.style.zIndex = 10010; - update_check_checkbox.checked = false; - } - else { - app.ui.dialog.show('All extensions are already up-to-date with the latest versions.'); - app.ui.dialog.element.style.zIndex = 10010; + dialog.show(content); +} + +async function switchComfyUI() { + switch_comfyui_button.disabled = true; + switch_comfyui_button.style.backgroundColor = "gray"; + + let res = await api.fetchApi(`/comfyui_manager/comfyui_versions`, { cache: "no-store" }); + + switch_comfyui_button.disabled = false; + switch_comfyui_button.style.backgroundColor = ""; + + if(res.status == 200) { + let obj = await res.json(); + + let versions = []; + let default_version; + + for(let v of obj.versions) { + default_version = v; + versions.push(v); } - return true; + showVersionSelectorDialog(versions, obj.current, async (selected_version) => { + if(selected_version == 'nightly') { + update_policy_combo.value = 'nightly-comfyui'; + api.fetchApi('/manager/policy/update?value=nightly-comfyui'); + } + else { + update_policy_combo.value = 'stable-comfyui'; + api.fetchApi('/manager/policy/update?value=stable-comfyui'); + } + + let response = await api.fetchApi(`/comfyui_manager/comfyui_switch_version?ver=${selected_version}`, { cache: "no-store" }); + if (response.status == 200) { + infoToast(`ComfyUI version is switched to ${selected_version}`); + } + else { + customAlert('Failed to switch ComfyUI version.'); + } + }); } - catch (exception) { - app.ui.dialog.show(`Failed to update custom nodes / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; - return false; - } - finally { - fetch_updates_button.disabled = false; - fetch_updates_button.innerText = prev_text; - fetch_updates_button.style.backgroundColor = ""; + else { + customAlert('Failed to fetch ComfyUI versions.'); } } -async function updateAll(update_check_checkbox, manager_dialog) { - let prev_text = update_all_button.innerText; - update_all_button.innerText = "Updating all...(ComfyUI)"; - update_all_button.disabled = true; - update_all_button.style.backgroundColor = "gray"; +async function onQueueStatus(event) { + const isElectron = 'electronAPI' in window; - try { - var mode = manager_instance.datasrc_combo.value; + if(event.detail.status == 'in_progress') { + set_inprogress_mode(); + update_all_button.innerText = `in progress.. (${event.detail.done_count}/${event.detail.total_count})`; + } + else if(event.detail.status == 'done') { + reset_action_buttons(); - update_all_button.innerText = "Updating all..."; - const response1 = await api.fetchApi('/comfyui_manager/update_comfyui'); - const response2 = await api.fetchApi(`/customnode/update_all?mode=${mode}`); - - if (response1.status != 200 && response2.status != 201) { - app.ui.dialog.show('Failed to update ComfyUI or several extensions.

See terminal log.
'); - app.ui.dialog.element.style.zIndex = 10010; - return false; + if(!is_updating) { + return; } - if(response1.status == 201 || response2.status == 201) { - const update_info = await response2.json(); - let failed_list = ""; - if(update_info.failed.length > 0) { - failed_list = "
FAILED: "+update_info.failed.join(", "); + is_updating = false; + + let success_list = []; + let failed_list = []; + let comfyui_state = null; + + for(let k in event.detail.nodepack_result){ + let v = event.detail.nodepack_result[k]; + + if(k == 'comfyui') { + comfyui_state = v; + continue; } - let updated_list = ""; - if(update_info.updated.length > 0) { - updated_list = "
UPDATED: "+update_info.updated.join(", "); + if(v.msg == 'success') { + success_list.push(k); } + else if(v.msg != 'skip') + failed_list.push(k); + } - app.ui.dialog.show( - "ComfyUI and all extensions have been updated to the latest version.
To apply the updated custom node, please ComfyUI. And refresh browser.
" - +failed_list - +updated_list - ); - - const rebootButton = document.getElementById('cm-reboot-button5'); - rebootButton.addEventListener("click", - function() { - if(rebootAPI()) { - manager_dialog.close(); - } - }); - - app.ui.dialog.element.style.zIndex = 10010; + let msg = ""; + + if(success_list.length == 0 && comfyui_state.startsWith('skip')) { + if(failed_list.length == 0) { + msg += "You are already up to date."; + } } else { - app.ui.dialog.show('ComfyUI and all extensions are already up-to-date with the latest versions.'); - app.ui.dialog.element.style.zIndex = 10010; + msg = "To apply the updates, you need to ComfyUI.
"; + + if(comfyui_state == 'success-nightly') { + msg += "ComfyUI has been updated to latest nightly version.

"; + infoToast("ComfyUI has been updated to the latest nightly version."); + } + else if(comfyui_state.startsWith('success-stable')) { + const ver = comfyui_state.split("-").pop(); + msg += `ComfyUI has been updated to ${ver}.

`; + infoToast(`ComfyUI has been updated to ${ver}`); + } + else if(comfyui_state == 'skip') { + msg += "ComfyUI is already up to date.

" + } + else if(comfyui_state != null) { + msg += "Failed to update ComfyUI.

" + } + + if(success_list.length > 0) { + msg += "The following custom nodes have been updated:
    "; + for(let x in success_list) { + let k = success_list[x]; + let url = event.detail.nodepack_result[k].url; + let title = event.detail.nodepack_result[k].title; + if(url) { + msg += `
  • ${title}
  • `; + } + else { + msg += `
  • ${k}
  • `; + } + } + msg += "
"; + } + + setNeedRestart(true); + } + + if(failed_list.length > 0) { + msg += '
The update for the following custom nodes has failed:
    '; + for(let x in failed_list) { + let k = failed_list[x]; + let url = event.detail.nodepack_result[k].url; + let title = event.detail.nodepack_result[k].title; + if(url) { + msg += `
  • ${title}
  • `; + } + else { + msg += `
  • ${k}
  • `; + } + } + + msg += '
' } - return true; + show_message(msg); + + const rebootButton = document.getElementById('cm-reboot-button5'); + rebootButton?.addEventListener("click", + function() { + if(rebootAPI()) { + manager_dialog.close(); + } + }); } - catch (exception) { - app.ui.dialog.show(`Failed to update ComfyUI or several extensions / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; - return false; +} + +api.addEventListener("cm-queue-status", onQueueStatus); + + +async function updateAll(update_comfyui) { + update_all_button.innerText = "Updating..."; + + set_inprogress_mode(); + + var mode = manager_instance.datasrc_combo.value; + + showTerminal(); + + if(update_comfyui) { + update_all_button.innerText = "Updating ComfyUI..."; + await api.fetchApi('/manager/queue/update_comfyui'); } - finally { - update_all_button.disabled = false; - update_all_button.innerText = prev_text; - update_all_button.style.backgroundColor = ""; + + const response = await api.fetchApi(`/manager/queue/update_all?mode=${mode}`); + + if (response.status == 401) { + customAlert('Another task is already in progress. Please stop the ongoing task first.'); + } + else if(response.status == 200) { + is_updating = true; + await api.fetchApi('/manager/queue/start'); } } @@ -688,45 +809,81 @@ const isOutputNode = (node) => { return SUPPORTED_OUTPUT_NODE_TYPES.includes(node.type); } +function restartOrStop() { + if(restart_stop_button.innerText == 'Restart'){ + rebootAPI(); + } + else { + api.fetchApi('/manager/queue/reset'); + infoToast('Cancel', 'Remaining tasks will stop after completing the current task.'); + } +} + // ----------- class ManagerMenuDialog extends ComfyDialog { createControlsMid() { let self = this; - + const isElectron = 'electronAPI' in window; + update_comfyui_button = $el("button.cm-button", { type: "button", textContent: "Update ComfyUI", + style: { + display: isElectron ? 'none' : 'block' + }, onclick: () => updateComfyUI() }); - fetch_updates_button = + switch_comfyui_button = $el("button.cm-button", { type: "button", - textContent: "Fetch Updates", + textContent: "Switch ComfyUI", + style: { + display: isElectron ? 'none' : 'block' + }, onclick: - () => fetchUpdates(this.update_check_checkbox) + () => switchComfyUI() }); - update_all_button = - $el("button.cm-button", { + restart_stop_button = + $el("button.cm-button-red", { type: "button", - textContent: "Update All", - onclick: - () => updateAll(this.update_check_checkbox, self) + textContent: "Restart", + onclick: () => restartOrStop() }); + if(isElectron) { + update_all_button = + $el("button.cm-button", { + type: "button", + textContent: "Update All Custom Nodes", + onclick: + () => updateAll(false) + }); + } + else { + update_all_button = + $el("button.cm-button", { + type: "button", + textContent: "Update All", + onclick: + () => updateAll(true) + }); + } + const res = [ $el("button.cm-button", { type: "button", - textContent: "Install Custom Nodes", + textContent: "Custom Nodes Manager", onclick: () => { - if(!CustomNodesInstaller.instance) - CustomNodesInstaller.instance = new CustomNodesInstaller(app, self); - CustomNodesInstaller.instance.show(CustomNodesInstaller.ShowMode.NORMAL); + if(!CustomNodesManager.instance) { + CustomNodesManager.instance = new CustomNodesManager(app, self); + } + CustomNodesManager.instance.show(CustomNodesManager.ShowMode.NORMAL); } }), @@ -735,28 +892,43 @@ class ManagerMenuDialog extends ComfyDialog { textContent: "Install Missing Custom Nodes", onclick: () => { - if(!CustomNodesInstaller.instance) - CustomNodesInstaller.instance = new CustomNodesInstaller(app, self); - CustomNodesInstaller.instance.show(CustomNodesInstaller.ShowMode.MISSING_NODES); + if(!CustomNodesManager.instance) { + CustomNodesManager.instance = new CustomNodesManager(app, self); + } + CustomNodesManager.instance.show(CustomNodesManager.ShowMode.MISSING); } }), $el("button.cm-button", { type: "button", - textContent: "Install Models", + textContent: "Custom Nodes In Workflow", onclick: () => { - if(!ModelInstaller.instance) - ModelInstaller.instance = new ModelInstaller(app, self); - ModelInstaller.instance.show(); + if(!CustomNodesManager.instance) { + CustomNodesManager.instance = new CustomNodesManager(app, self); + } + CustomNodesManager.instance.show(CustomNodesManager.ShowMode.IN_WORKFLOW); + } + }), + + $el("br", {}, []), + $el("button.cm-button", { + type: "button", + textContent: "Model Manager", + onclick: + () => { + if(!ModelManager.instance) { + ModelManager.instance = new ModelManager(app, self); + } + ModelManager.instance.show(); } }), $el("button.cm-button", { type: "button", textContent: "Install via Git URL", - onclick: () => { - var url = prompt("Please enter the URL of the Git repository to install", ""); + onclick: async () => { + var url = await customPrompt("Please enter the URL of the Git repository to install", ""); if (url !== null) { install_via_git_url(url, self); @@ -767,39 +939,20 @@ class ManagerMenuDialog extends ComfyDialog { $el("br", {}, []), update_all_button, update_comfyui_button, - fetch_updates_button, + switch_comfyui_button, + // fetch_updates_button, $el("br", {}, []), - $el("button.cm-button", { - type: "button", - textContent: "Alternatives of A1111", - onclick: - () => { - if(!AlternativesInstaller.instance) - AlternativesInstaller.instance = new AlternativesInstaller(app, self); - AlternativesInstaller.instance.show(); - } - }), - - $el("br", {}, []), - $el("button.cm-button-red", { - type: "button", - textContent: "Restart", - onclick: () => rebootAPI() - }), + restart_stop_button, ]; return res; } createControlsLeft() { - let self = this; + const isElectron = 'electronAPI' in window; - this.update_check_checkbox = $el("input",{type:'checkbox', id:"skip_update_check"},[]) - const uc_checkbox_text = $el("label",{for:"skip_update_check"},[" Skip update check"]) - uc_checkbox_text.style.color = "var(--fg-color)"; - uc_checkbox_text.style.cursor = "pointer"; - this.update_check_checkbox.checked = true; + let self = this; // db mode this.datasrc_combo = document.createElement("select"); @@ -807,7 +960,15 @@ class ManagerMenuDialog extends ComfyDialog { this.datasrc_combo.className = "cm-menu-combo"; this.datasrc_combo.appendChild($el('option', { value: 'cache', text: 'DB: Channel (1day cache)' }, [])); this.datasrc_combo.appendChild($el('option', { value: 'local', text: 'DB: Local' }, [])); - this.datasrc_combo.appendChild($el('option', { value: 'url', text: 'DB: Channel (remote)' }, [])); + this.datasrc_combo.appendChild($el('option', { value: 'remote', text: 'DB: Channel (remote)' }, [])); + + api.fetchApi('/manager/db_mode') + .then(response => response.text()) + .then(data => { this.datasrc_combo.value = data; }); + + this.datasrc_combo.addEventListener('change', function (event) { + api.fetchApi(`/manager/db_mode?value=${event.target.value}`); + }); // preview method let preview_combo = document.createElement("select"); @@ -826,29 +987,9 @@ class ManagerMenuDialog extends ComfyDialog { api.fetchApi(`/manager/preview_method?value=${event.target.value}`); }); - // nickname - let badge_combo = document.createElement("select"); - badge_combo.setAttribute("title", "Configure the content to be displayed on the badge at the top right corner of the node. The ID is the identifier of the node. If 'hide built-in' is selected, both unknown nodes and built-in nodes will be omitted, making them indistinguishable"); - badge_combo.className = "cm-menu-combo"; - badge_combo.appendChild($el('option', { value: 'none', text: 'Badge: None' }, [])); - badge_combo.appendChild($el('option', { value: 'nick', text: 'Badge: Nickname' }, [])); - badge_combo.appendChild($el('option', { value: 'nick_hide', text: 'Badge: Nickname (hide built-in)' }, [])); - badge_combo.appendChild($el('option', { value: 'id_nick', text: 'Badge: #ID Nickname' }, [])); - badge_combo.appendChild($el('option', { value: 'id_nick_hide', text: 'Badge: #ID Nickname (hide built-in)' }, [])); - - api.fetchApi('/manager/badge_mode') - .then(response => response.text()) - .then(data => { badge_combo.value = data; badge_mode = data; }); - - badge_combo.addEventListener('change', function (event) { - api.fetchApi(`/manager/badge_mode?value=${event.target.value}`); - badge_mode = event.target.value; - app.graph.setDirtyCanvas(true); - }); - // channel let channel_combo = document.createElement("select"); - channel_combo.setAttribute("title", "Configure the channel for retrieving data from the Custom Node list (including missing nodes) or the Model list. Note that the badge utilizes local information."); + channel_combo.setAttribute("title", "Configure the channel for retrieving data from the Custom Node list (including missing nodes) or the Model list."); channel_combo.className = "cm-menu-combo"; api.fetchApi('/manager/channel_url_list') .then(response => response.json()) @@ -873,21 +1014,6 @@ class ManagerMenuDialog extends ComfyDialog { } }); - // default ui state - let default_ui_combo = document.createElement("select"); - default_ui_combo.setAttribute("title", "Set the default state to be displayed in the main menu when the browser starts."); - default_ui_combo.className = "cm-menu-combo"; - default_ui_combo.appendChild($el('option', { value: 'none', text: 'Default UI: None' }, [])); - default_ui_combo.appendChild($el('option', { value: 'history', text: 'Default UI: History' }, [])); - default_ui_combo.appendChild($el('option', { value: 'queue', text: 'Default UI: Queue' }, [])); - api.fetchApi('/manager/default_ui') - .then(response => response.text()) - .then(data => { default_ui_combo.value = data; }); - - default_ui_combo.addEventListener('change', function (event) { - api.fetchApi(`/manager/default_ui?value=${event.target.value}`); - }); - // share let share_combo = document.createElement("select"); @@ -899,52 +1025,13 @@ class ManagerMenuDialog extends ComfyDialog { ['youml', 'YouML'], ['matrix', 'Matrix Server'], ['comfyworkflows', 'ComfyWorkflows'], + ['copus', 'Copus'], ['all', 'All'], ]; for (const option of share_options) { share_combo.appendChild($el('option', { value: option[0], text: `Share: ${option[1]}` }, [])); } - // default ui state - let component_policy_combo = document.createElement("select"); - component_policy_combo.setAttribute("title", "When loading the workflow, configure which version of the component to use."); - component_policy_combo.className = "cm-menu-combo"; - component_policy_combo.appendChild($el('option', { value: 'workflow', text: 'Component: Use workflow version' }, [])); - component_policy_combo.appendChild($el('option', { value: 'higher', text: 'Component: Use higher version' }, [])); - component_policy_combo.appendChild($el('option', { value: 'mine', text: 'Component: Use my version' }, [])); - api.fetchApi('/manager/component/policy') - .then(response => response.text()) - .then(data => { - component_policy_combo.value = data; - set_component_policy(data); - }); - - component_policy_combo.addEventListener('change', function (event) { - api.fetchApi(`/manager/component/policy?value=${event.target.value}`); - set_component_policy(event.target.value); - }); - - let dbl_click_policy_combo = document.createElement("select"); - dbl_click_policy_combo.setAttribute("title", "When loading the workflow, configure which version of the component to use."); - dbl_click_policy_combo.className = "cm-menu-combo"; - dbl_click_policy_combo.appendChild($el('option', { value: 'none', text: 'Double-Click: None' }, [])); - dbl_click_policy_combo.appendChild($el('option', { value: 'copy-all', text: 'Double-Click: Copy All Connections' }, [])); - dbl_click_policy_combo.appendChild($el('option', { value: 'copy-input', text: 'Double-Click: Copy Input Connections' }, [])); - dbl_click_policy_combo.appendChild($el('option', { value: 'possible-input', text: 'Double-Click: Possible Input Connections' }, [])); - dbl_click_policy_combo.appendChild($el('option', { value: 'dual', text: 'Double-Click: Possible(left) + Copy(right)' }, [])); - - api.fetchApi('/manager/dbl_click/policy') - .then(response => response.text()) - .then(data => { - dbl_click_policy_combo.value = data; - set_double_click_policy(data); - }); - - dbl_click_policy_combo.addEventListener('change', function (event) { - api.fetchApi(`/manager/dbl_click/policy?value=${event.target.value}`); - set_double_click_policy(event.target.value); - }); - api.fetchApi('/manager/share_option') .then(response => response.text()) .then(data => { @@ -964,17 +1051,51 @@ class ManagerMenuDialog extends ComfyDialog { } }); + let component_policy_combo = document.createElement("select"); + component_policy_combo.setAttribute("title", "When loading the workflow, configure which version of the component to use."); + component_policy_combo.className = "cm-menu-combo"; + component_policy_combo.appendChild($el('option', { value: 'workflow', text: 'Component: Use workflow version' }, [])); + component_policy_combo.appendChild($el('option', { value: 'higher', text: 'Component: Use higher version' }, [])); + component_policy_combo.appendChild($el('option', { value: 'mine', text: 'Component: Use my version' }, [])); + api.fetchApi('/manager/policy/component') + .then(response => response.text()) + .then(data => { + component_policy_combo.value = data; + set_component_policy(data); + }); + + component_policy_combo.addEventListener('change', function (event) { + api.fetchApi(`/manager/policy/component?value=${event.target.value}`); + set_component_policy(event.target.value); + }); + + update_policy_combo = document.createElement("select"); + + if(isElectron) + update_policy_combo.style.display = 'none'; + + update_policy_combo.setAttribute("title", "Sets the policy to be applied when performing an update."); + update_policy_combo.className = "cm-menu-combo"; + update_policy_combo.appendChild($el('option', { value: 'stable-comfyui', text: 'Update: ComfyUI Stable Version' }, [])); + update_policy_combo.appendChild($el('option', { value: 'nightly-comfyui', text: 'Update: ComfyUI Nightly Version' }, [])); + api.fetchApi('/manager/policy/update') + .then(response => response.text()) + .then(data => { + update_policy_combo.value = data; + }); + + update_policy_combo.addEventListener('change', function (event) { + api.fetchApi(`/manager/policy/update?value=${event.target.value}`); + }); + return [ - $el("div", {}, [this.update_check_checkbox, uc_checkbox_text]), $el("br", {}, []), this.datasrc_combo, channel_combo, preview_combo, - badge_combo, - default_ui_combo, share_combo, component_policy_combo, - dbl_click_policy_combo, + update_policy_combo, $el("br", {}, []), $el("br", {}, []), @@ -994,18 +1115,13 @@ class ManagerMenuDialog extends ComfyDialog { type: "button", textContent: "Install PIP packages", onclick: - () => { - var url = prompt("Please enumerate the pip packages to be installed.\n\nExample: insightface opencv-python-headless>=4.1.1\n", ""); + async () => { + var url = await customPrompt("Please enumerate the pip packages to be installed.\n\nExample: insightface opencv-python-headless>=4.1.1\n", ""); if (url !== null) { install_pip(url, self); } } - }), - $el("button.cm-experimental-button", { - type: "button", - textContent: "Unload models", - onclick: () => { free_models(); } }) ]), ]; @@ -1028,6 +1144,10 @@ class ManagerMenuDialog extends ComfyDialog { LiteGraph.closeAllContextMenus(); const menu = new LiteGraph.ContextMenu( [ + { + title: "ComfyUI Docs", + callback: () => { window.open("https://docs.comfy.org/", "comfyui-official-manual"); }, + }, { title: "Comfy Custom Node How To", callback: () => { window.open("https://github.com/chrisgoringe/Comfy-Custom-Node-How-To/wiki/aaa_index", "comfyui-community-manual1"); }, @@ -1079,7 +1199,7 @@ class ManagerMenuDialog extends ComfyDialog { textContent: 'Workflow Gallery', style: { 'text-align': 'center', - 'color': 'white', + 'color': 'var(--input-text)', 'font-size': '18px', 'margin': 0, 'padding': 0, @@ -1090,7 +1210,7 @@ class ManagerMenuDialog extends ComfyDialog { textContent: `(${localStorage.getItem("wg_last_visited") ? localStorage.getItem("wg_last_visited").split('/')[2] : ''})`, style: { 'text-align': 'center', - 'color': 'white', + 'color': 'var(--input-text)', 'font-size': '12px', 'margin': 0, 'padding': 0, @@ -1130,7 +1250,7 @@ class ManagerMenuDialog extends ComfyDialog { $el("div.comfy-modal-content", [ $el("tr.cm-title", {}, [ - $el("font", {size:6, color:"white"}, [`ComfyUI Manager Menu`])] + $el("font", {size:6, color:"white"}, [`ComfyUI Manager ${manager_version}`])] ), $el("br", {}, []), $el("div.cm-menu-container", @@ -1151,10 +1271,22 @@ class ManagerMenuDialog extends ComfyDialog { this.element = $el("div.comfy-modal", { id:'cm-manager-dialog', parent: document.body }, [ content ]); } + get isVisible() { + return this.element?.style?.display !== "none"; + } + show() { this.element.style.display = "block"; } + toggleVisibility() { + if (this.isVisible) { + this.close(); + } else { + this.show(); + } + } + handleWorkflowGalleryButtonClick(e) { e.preventDefault(); e.stopPropagation(); @@ -1219,18 +1351,18 @@ class ManagerMenuDialog extends ComfyDialog { }, }, { - title: "Open 'flowt.ai'", + title: "Open 'esheep'", callback: () => { - const url = "https://flowt.ai/"; + const url = "https://www.esheep.com"; localStorage.setItem("wg_last_visited", url); window.open(url, url); modifyButtonStyle(url); }, }, { - title: "Open 'esheep'", + title: "Open 'Copus.io'", callback: () => { - const url = "https://www.esheep.com"; + const url = "https://www.copus.io"; localStorage.setItem("wg_last_visited", url); window.open(url, url); modifyButtonStyle(url); @@ -1255,9 +1387,57 @@ class ManagerMenuDialog extends ComfyDialog { } } +async function getVersion() { + let version = await api.fetchApi(`/manager/version`); + return await version.text(); +} app.registerExtension({ name: "Comfy.ManagerMenu", + + aboutPageBadges: [ + { + label: `ComfyUI-Manager ${manager_version}`, + url: 'https://github.com/ltdrdata/ComfyUI-Manager', + icon: 'pi pi-th-large' + } + ], + + commands: [ + { + id: "Comfy.Manager.Menu.ToggleVisibility", + label: "Toggle Manager Menu Visibility", + icon: "mdi mdi-puzzle", + function: () => { + if (!manager_instance) { + setManagerInstance(new ManagerMenuDialog()); + manager_instance.show(); + } else { + manager_instance.toggleVisibility(); + } + }, + }, + { + id: "Comfy.Manager.CustomNodesManager.ToggleVisibility", + label: "Toggle Custom Nodes Manager Visibility", + icon: "pi pi-server", + function: () => { + if (CustomNodesManager.instance?.isVisible) { + CustomNodesManager.instance.close(); + return; + } + + if (!manager_instance) { + setManagerInstance(new ManagerMenuDialog()); + } + if (!CustomNodesManager.instance) { + CustomNodesManager.instance = new CustomNodesManager(app, self); + } + CustomNodesManager.instance.show(CustomNodesManager.ShowMode.NORMAL); + }, + } + ], + init() { $el("style", { textContent: style, @@ -1280,6 +1460,78 @@ app.registerExtension({ separator.style.width = "100%"; menu.append(separator); + try { + // new style Manager buttons + // unload models button into new style Manager button + let cmGroup = new (await import("../../scripts/ui/components/buttonGroup.js")).ComfyButtonGroup( + new(await import("../../scripts/ui/components/button.js")).ComfyButton({ + icon: "puzzle", + action: () => { + if(!manager_instance) + setManagerInstance(new ManagerMenuDialog()); + manager_instance.show(); + }, + tooltip: "ComfyUI Manager", + content: "Manager", + classList: "comfyui-button comfyui-menu-mobile-collapse primary" + }).element, + new(await import("../../scripts/ui/components/button.js")).ComfyButton({ + icon: "star", + action: () => { + if(!manager_instance) + setManagerInstance(new ManagerMenuDialog()); + + if(!CustomNodesManager.instance) { + CustomNodesManager.instance = new CustomNodesManager(app, self); + } + CustomNodesManager.instance.show(CustomNodesManager.ShowMode.FAVORITES); + }, + tooltip: "Show favorite custom node list" + }).element, + new(await import("../../scripts/ui/components/button.js")).ComfyButton({ + icon: "vacuum-outline", + action: () => { + free_models(); + }, + tooltip: "Unload Models" + }).element, + new(await import("../../scripts/ui/components/button.js")).ComfyButton({ + icon: "vacuum", + action: () => { + free_models(true); + }, + tooltip: "Free model and node cache" + }).element, + new(await import("../../scripts/ui/components/button.js")).ComfyButton({ + icon: "share", + action: () => { + if (share_option === 'openart') { + showOpenArtShareDialog(); + return; + } else if (share_option === 'matrix' || share_option === 'comfyworkflows') { + showShareDialog(share_option); + return; + } else if (share_option === 'youml') { + showYouMLShareDialog(); + return; + } + + if(!ShareDialogChooser.instance) { + ShareDialogChooser.instance = new ShareDialogChooser(); + } + ShareDialogChooser.instance.show(); + }, + tooltip: "Share" + }).element + ); + + app.menu?.settingsGroup.element.before(cmGroup.element); + } + catch(exception) { + console.log('ComfyUI is outdated. New style menu based features are disabled.'); + } + + // old style Manager button const managerButton = document.createElement("button"); managerButton.textContent = "Manager"; managerButton.onclick = () => { @@ -1289,7 +1541,6 @@ app.registerExtension({ } menu.append(managerButton); - const shareButton = document.createElement("button"); shareButton.id = "shareButton"; shareButton.textContent = "Share"; @@ -1326,35 +1577,13 @@ app.registerExtension({ this._addExtraNodeContextMenu(nodeType, app); }, - async nodeCreated(node, app) { - if(!node.badge_enabled) { - node.getNickname = function () { return getNickname(node, node.comfyClass.trim()) }; - let orig = node.onDrawForeground; - if(!orig) - orig = node.__proto__.onDrawForeground; - - node.onDrawForeground = function (ctx) { - drawBadge(node, orig, arguments) - }; - node.badge_enabled = true; - } - }, - - async loadedGraphNode(node, app) { - if(!node.badge_enabled) { - const orig = node.onDrawForeground; - node.getNickname = function () { return getNickname(node, node.type.trim()) }; - node.onDrawForeground = function (ctx) { drawBadge(node, orig, arguments) }; - } - }, - _addExtraNodeContextMenu(node, app) { const origGetExtraMenuOptions = node.prototype.getExtraMenuOptions; node.prototype.cm_menu_added = true; node.prototype.getExtraMenuOptions = function (_, options) { origGetExtraMenuOptions?.apply?.(this, arguments); - if (node.category.startsWith('group nodes/')) { + if (node.category.startsWith('group nodes>')) { options.push({ content: "Save As Component", callback: (obj) => { @@ -1403,27 +1632,3 @@ app.registerExtension({ } }, }); - - -async function set_default_ui() -{ - let res = await api.fetchApi('/manager/default_ui'); - if(res.status == 200) { - let mode = await res.text(); - switch(mode) { - case 'history': - app.ui.queue.hide(); - app.ui.history.show(); - break; - case 'queue': - app.ui.queue.show(); - app.ui.history.hide(); - break; - default: - // do nothing - break; - } - } -} - -set_default_ui(); \ No newline at end of file diff --git a/js/comfyui-share-common.js b/js/comfyui-share-common.js index ca09dd76..e6f3e103 100644 --- a/js/comfyui-share-common.js +++ b/js/comfyui-share-common.js @@ -1,8 +1,10 @@ -import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js"; -import { ComfyDialog, $el } from "../../scripts/ui.js"; +import { app } from "../../scripts/app.js"; +import { $el, ComfyDialog } from "../../scripts/ui.js"; +import { CopusShareDialog } from "./comfyui-share-copus.js"; import { OpenArtShareDialog } from "./comfyui-share-openart.js"; import { YouMLShareDialog } from "./comfyui-share-youml.js"; +import { customAlert } from "./common.js"; export const SUPPORTED_OUTPUT_NODE_TYPES = [ "PreviewImage", @@ -187,6 +189,21 @@ export const shareToEsheep= () => { }) } +export const showCopusShareDialog = () => { + if (!CopusShareDialog.instance) { + CopusShareDialog.instance = new CopusShareDialog(); + } + + return app.graphToPrompt() + .then(prompt => { + return app.graph._nodes; + }) + .then(nodes => { + const { potential_outputs, potential_output_nodes } = getPotentialOutputsAndOutputNodes(nodes); + CopusShareDialog.instance.show({ potential_outputs, potential_output_nodes}); + }) +} + export const showOpenArtShareDialog = () => { if (!OpenArtShareDialog.instance) { OpenArtShareDialog.instance = new OpenArtShareDialog(); @@ -236,9 +253,9 @@ export const showShareDialog = async (share_option) => { if (potential_output_nodes.length === 0) { // todo: add support for other output node types (animatediff combine, etc.) const supported_nodes_string = SUPPORTED_OUTPUT_NODE_TYPES.join(", "); - alert(`No supported output node found (${supported_nodes_string}). To share this workflow, please add an output node to your graph and re-run your prompt.`); + customAlert(`No supported output node found (${supported_nodes_string}). To share this workflow, please add an output node to your graph and re-run your prompt.`); } else { - alert("To share this, first run a prompt. Once it's done, click 'Share'.\n\nNOTE: Images of the Share target can only be selected in the PreviewImage, SaveImage, and VHS_VideoCombine nodes. In the case of VHS_VideoCombine, only the image/gif and image/webp formats are supported."); + customAlert("To share this, first run a prompt. Once it's done, click 'Share'.\n\nNOTE: Images of the Share target can only be selected in the PreviewImage, SaveImage, and VHS_VideoCombine nodes. In the case of VHS_VideoCombine, only the image/gif and image/webp formats are supported."); } return false; } @@ -299,7 +316,7 @@ export class ShareDialogChooser extends ComfyDialog { key: "comfyworkflows", textContent: "ComfyWorkflows", website: "https://comfyworkflows.com", - description: "Share & browse thousands of ComfyUI workflows and art 🎨

ComfyWorkflows.com", + description: "Share & browse thousands of ComfyUI workflows and art 🎨

ComfyWorkflows.com", onclick: () => { showShareDialog('comfyworkflows').then((suc) => { suc && this.close(); @@ -310,12 +327,22 @@ export class ShareDialogChooser extends ComfyDialog { key: "esheep", textContent: "eSheep", website: "https://www.esheep.com", - description: "Share & download thousands of ComfyUI workflows on esheep.com", + description: "Share & download thousands of ComfyUI workflows on esheep.com", onclick: () => { shareToEsheep(); this.close(); } }, + { + key: "Copus", + textContent: "Copus", + website: "https://www.copus.io", + description: "🔴 Earn simple. Get paid from your ComfyUI workflows—no revenue sharing. Ever.", + onclick: () => { + showCopusShareDialog(); + this.close(); + } + }, ]; function createShareButtonsWithDescriptions() { @@ -330,7 +357,8 @@ export class ShareDialogChooser extends ComfyDialog { }); buttons.forEach(b => { - const button = $el("button", { + const button = $el("button", + { type: "button", textContent: b.textContent, onclick: b.onclick, @@ -343,8 +371,14 @@ export class ShareDialogChooser extends ComfyDialog { 'padding': '5px 5px', 'margin-bottom': '5px', 'transition': 'background-color 0.3s', + 'position':'relative' } - }); + }, + [ + $el("span", { style: { + } }), + ] + ); button.addEventListener('mouseover', () => { button.style.backgroundColor = '#007BFF'; // Change color on hover }); @@ -356,18 +390,40 @@ export class ShareDialogChooser extends ComfyDialog { innerHTML: b.description, style: { 'text-align': 'left', - color: 'white', + color: 'var(--input-text)', 'font-size': '14px', 'margin-bottom': '0', }, }); + const copus_ui =$el("div", { style: { + 'position': 'absolute', + 'height': '100%', + 'left': '-25px', + 'top': '-26px', + 'width': '100%', + 'z-index':'-1', + 'background':'url("https://static.copus.io/images/client/202412/test/f28ac6ef8f4c6f3d5d50856a272ed02c.png")', + 'background-repeat': 'no-repeat', + } }); + const copus_ui_bottom =$el("div", { style: { + 'position': 'absolute', + 'height': '100%', + 'left': '25px', + 'bottom': '-26px', + 'width': '100%', + 'transform':'scale(-1, -1)', + 'z-index':'-1', + 'background':'url("https://static.copus.io/images/client/202412/test/f28ac6ef8f4c6f3d5d50856a272ed02c.png")', + 'background-repeat': 'no-repeat', + } }); + const websiteLink = $el("a", { textContent: "🌐 Website", href: b.website, target: "_blank", style: { - color: 'white', + color: 'var(--input-text)', 'margin-left': '10px', 'font-size': '12px', 'text-decoration': 'none', @@ -391,7 +447,6 @@ export class ShareDialogChooser extends ComfyDialog { 'margin-bottom': '10px', } }, [button, websiteLink]); - const column = $el("div", { style: { 'flex-basis': '100%', @@ -400,8 +455,17 @@ export class ShareDialogChooser extends ComfyDialog { 'border': '1px solid #ddd', 'border-radius': '5px', 'box-shadow': '0 2px 4px rgba(0, 0, 0, 0.1)', + 'position':'relative' } - }, [buttonLinkContainer, description]); + }, [buttonLinkContainer, description + , + b.key ==='Copus' ? + copus_ui + :'', + b.key ==='Copus' ? + copus_ui_bottom + :'', + ]); container.appendChild(column); }); @@ -414,7 +478,7 @@ export class ShareDialogChooser extends ComfyDialog { textContent: 'Choose a platform to share your workflow', style: { 'text-align': 'center', - 'color': 'white', + 'color': 'var(--input-text)', 'font-size': '18px', 'margin-bottom': '10px', }, @@ -449,7 +513,7 @@ export class ShareDialogChooser extends ComfyDialog { } show() { this.element.style.display = "block"; - this.element.style.zIndex = 10001; + this.element.style.zIndex = 1099; } } export class ShareDialog extends ComfyDialog { @@ -660,7 +724,7 @@ export class ShareDialog extends ComfyDialog { $el("div", {}, [ $el("p", { size: 3, color: "white", style: { - color: 'white' + color: 'var(--input-text)' } }, [`Select where to share your art:`]), this.matrix_destination_checkbox, @@ -675,7 +739,7 @@ export class ShareDialog extends ComfyDialog { size: 3, color: "white", style: { - color: 'white' + color: 'var(--input-text)' } }, []), this.credits_input, @@ -686,7 +750,7 @@ export class ShareDialog extends ComfyDialog { size: 3, color: "white", style: { - color: 'white' + color: 'var(--input-text)' } }, []), this.title_input, @@ -697,7 +761,7 @@ export class ShareDialog extends ComfyDialog { size: 3, color: "white", style: { - color: 'white' + color: 'var(--input-text)' } }, []), this.description_input, @@ -798,7 +862,7 @@ export class ShareDialog extends ComfyDialog { if (destinations.includes("matrix")) { let definedMatrixAuth = !!this.matrix_homeserver_input.value && !!this.matrix_username_input.value && !!this.matrix_password_input.value; if (!definedMatrixAuth) { - alert("Please set your Matrix account details."); + customAlert("Please set your Matrix account details."); return; } } @@ -815,9 +879,9 @@ export class ShareDialog extends ComfyDialog { if (potential_output_nodes.length === 0) { // todo: add support for other output node types (animatediff combine, etc.) const supported_nodes_string = SUPPORTED_OUTPUT_NODE_TYPES.join(", "); - alert(`No supported output node found (${supported_nodes_string}). To share this workflow, please add an output node to your graph and re-run your prompt.`); + customAlert(`No supported output node found (${supported_nodes_string}). To share this workflow, please add an output node to your graph and re-run your prompt.`); } else { - alert("To share this, first run a prompt. Once it's done, click 'Share'.\n\nNOTE: Images of the Share target can only be selected in the PreviewImage, SaveImage, and VHS_VideoCombine nodes. In the case of VHS_VideoCombine, only the image/gif and image/webp formats are supported."); + customAlert("To share this, first run a prompt. Once it's done, click 'Share'.\n\nNOTE: Images of the Share target can only be selected in the PreviewImage, SaveImage, and VHS_VideoCombine nodes. In the case of VHS_VideoCombine, only the image/gif and image/webp formats are supported."); } this.selectedOutputIndex = 0; this.close(); @@ -855,16 +919,16 @@ export class ShareDialog extends ComfyDialog { try { const response_json = await response.json(); if (response_json.error) { - alert(response_json.error); + customAlert(response_json.error); this.close(); return; } else { - alert("Failed to share your art. Please try again."); + customAlert("Failed to share your art. Please try again."); this.close(); return; } } catch (e) { - alert("Failed to share your art. Please try again."); + customAlert("Failed to share your art. Please try again."); this.close(); return; } @@ -963,7 +1027,7 @@ export class ShareDialog extends ComfyDialog { } const radio_button_text = $el("label", { // style: { - // color: 'white' + // color: 'var(--input-text)' // } }, [output.title]) radio_button.style.color = "var(--fg-color)"; @@ -1002,7 +1066,7 @@ export class ShareDialog extends ComfyDialog { color: "white", style: { 'text-align': 'center', - color: 'white', + color: 'var(--input-text)', backgroundColor: 'black', padding: '10px', 'margin-top': '0px', @@ -1014,7 +1078,7 @@ export class ShareDialog extends ComfyDialog { color: "white", style: { 'text-align': 'center', - color: 'white', + color: 'var(--input-text)', 'margin-bottom': '5px', 'font-style': 'italic', 'font-size': '12px', diff --git a/js/comfyui-share-copus.js b/js/comfyui-share-copus.js new file mode 100644 index 00000000..46288e59 --- /dev/null +++ b/js/comfyui-share-copus.js @@ -0,0 +1,1168 @@ +import { app } from "../../scripts/app.js"; +import { $el, ComfyDialog } from "../../scripts/ui.js"; +import { customAlert } from "./common.js"; + +const env = "prod"; + +let DEFAULT_HOMEPAGE_URL = "https://copus.io"; + +let API_ENDPOINT = "https://api.client.prod.copus.io"; + +if (env !== "prod") { + API_ENDPOINT = "https://api.test.copus.io"; + DEFAULT_HOMEPAGE_URL = "https://test.copus.io"; +} + +const style = ` + .copus-share-dialog a { + color: #f8f8f8; + } + .copus-share-dialog a:hover { + color: #007bff; + } + .output_label { + border: 5px solid transparent; + } + .output_label:hover { + border: 5px solid #59E8C6; + } + .output_label.checked { + border: 5px solid #59E8C6; + } +`; + +// Shared component styles +const sectionStyle = { + marginBottom: 0, + padding: 0, + borderRadius: "8px", + boxShadow: "0 2px 4px rgba(0, 0, 0, 0.05)", + display: "flex", + flexDirection: "column", + justifyContent: "center", + position: "relative", +}; + +export class CopusShareDialog extends ComfyDialog { + static instance = null; + + constructor() { + super(); + $el("style", { + textContent: style, + parent: document.head, + }); + this.element = $el( + "div.comfy-modal.copus-share-dialog", + { + parent: document.body, + style: { + "overflow-y": "auto", + }, + }, + [$el("div.comfy-modal-content", {}, [...this.createButtons()])] + ); + this.selectedOutputIndex = 0; + this.selectedOutput_lock = 0; + this.selectedNodeId = null; + this.uploadedImages = []; + this.allFilesImages = []; + this.selectedFile = null; + this.allFiles = []; + this.titleNum = 0; + } + + createButtons() { + const inputStyle = { + display: "block", + minWidth: "500px", + width: "100%", + padding: "10px", + margin: "10px 0", + borderRadius: "4px", + border: "1px solid #ddd", + boxSizing: "border-box", + }; + + const textAreaStyle = { + display: "block", + minWidth: "500px", + width: "100%", + padding: "10px", + margin: "10px 0", + borderRadius: "4px", + border: "1px solid #ddd", + boxSizing: "border-box", + minHeight: "100px", + background: "#222", + resize: "vertical", + color: "#f2f2f2", + fontFamily: "Arial", + fontWeight: "400", + fontSize: "15px", + }; + + const hyperLinkStyle = { + display: "block", + marginBottom: "15px", + fontWeight: "bold", + fontSize: "14px", + }; + + const labelStyle = { + color: "#f8f8f8", + display: "block", + margin: "10px 0 0 0", + fontWeight: "bold", + textDecoration: "none", + }; + + const buttonStyle = { + padding: "10px 80px", + margin: "10px 5px", + borderRadius: "4px", + border: "none", + cursor: "pointer", + color: "#fff", + backgroundColor: "#007bff", + }; + + // upload images input + this.uploadImagesInput = $el("input", { + type: "file", + multiple: false, + style: inputStyle, + accept: "image/*", + }); + + this.uploadImagesInput.addEventListener("change", async (e) => { + const file = e.target.files[0]; + if (!file) { + this.previewImage.src = ""; + this.previewImage.style.display = "none"; + return; + } + const reader = new FileReader(); + reader.onload = async (e) => { + const imgData = e.target.result; + this.previewImage.src = imgData; + this.previewImage.style.display = "block"; + this.selectedFile = null; + // Once user uploads an image, we uncheck all radio buttons + this.radioButtons.forEach((ele) => { + ele.checked = false; + ele.parentElement.classList.remove("checked"); + }); + + // Add the opacity style toggle here to indicate that they only need + // to upload one image or choose one from the outputs. + this.outputsSection.style.opacity = 0.35; + this.uploadImagesInput.style.opacity = 1; + }; + reader.readAsDataURL(file); + }); + + // preview image + this.previewImage = $el("img", { + src: "", + style: { + width: "100%", + maxHeight: "100px", + objectFit: "contain", + display: "none", + marginTop: "10px", + }, + }); + + this.keyInput = $el("input", { + type: "password", + placeholder: "Copy & paste your API key", + style: inputStyle, + }); + this.TitleInput = $el("input", { + type: "text", + placeholder: "Title (Required)", + style: inputStyle, + maxLength: "70", + oninput: () => { + const titleNum = this.TitleInput.value.length; + titleNumDom.textContent = `${titleNum}/70`; + }, + }); + this.SubTitleInput = $el("input", { + type: "text", + placeholder: "Subtitle (Optional)", + style: inputStyle, + maxLength: "350", + oninput: () => { + const titleNum = this.SubTitleInput.value.length; + subTitleNumDom.textContent = `${titleNum}/350`; + }, + }); + this.LockInput = $el("input", { + type: "text", + placeholder: "0", + style: { + width: "100px", + padding: "7px", + paddingLeft: "30px", + borderRadius: "4px", + border: "1px solid #ddd", + boxSizing: "border-box", + position: "relative", + }, + oninput: (event) => { + let input = event.target.value; + // Use a regular expression to match a number with up to two decimal places + const regex = /^\d*\.?\d{0,2}$/; + if (!regex.test(input)) { + // If the input doesn't match, remove the last entered character + event.target.value = input.slice(0, -1); + } + const numericValue = parseFloat(input); + if (numericValue > 9999) { + input = "9999"; + } + // Update the input field with the valid value + event.target.value = input; + }, + }); + this.descriptionInput = $el("textarea", { + placeholder: "Content (Optional)", + style: { + ...textAreaStyle, + minHeight: "100px", + }, + }); + + // Header Section + const headerSection = $el("h3", { + textContent: "Share your workflow to Copus", + size: 3, + color: "white", + style: { + "text-align": "center", + color: "white", + margin: "0 0 10px 0", + }, + }); + this.getAPIKeyLink = $el( + "a", + { + style: { + ...hyperLinkStyle, + color: "#59E8C6", + }, + href: `${DEFAULT_HOMEPAGE_URL}?fromPage=comfyUI`, + target: "_blank", + }, + ["👉 Get your API key here"] + ); + const linkSection = $el( + "div", + { + style: { + marginTop: "10px", + display: "flex", + flexDirection: "column", + }, + }, + [ + // this.communityLink, + this.getAPIKeyLink, + ] + ); + + // Account Section + const accountSection = $el("div", { style: sectionStyle }, [ + $el("label", { style: labelStyle }, ["1️⃣ Copus API Key"]), + this.keyInput, + ]); + + // Output Upload Section + const outputUploadSection = $el("div", { style: sectionStyle }, [ + $el( + "label", + { + style: { + ...labelStyle, + margin: "10px 0 0 0", + }, + }, + ["2️⃣ Image/Thumbnail (Required)"] + ), + this.previewImage, + this.uploadImagesInput, + ]); + + // Outputs Section + this.outputsSection = $el( + "div", + { + id: "selectOutputs", + }, + [] + ); + + const titleNumDom = $el( + "label", + { + style: { + fontSize: "12px", + position: "absolute", + right: "10px", + bottom: "-10px", + color: "#999", + }, + }, + ["0/70"] + ); + const subTitleNumDom = $el( + "label", + { + style: { + fontSize: "12px", + position: "absolute", + right: "10px", + bottom: "-10px", + color: "#999", + }, + }, + ["0/350"] + ); + const descriptionNumDom = $el( + "label", + { + style: { + fontSize: "12px", + position: "absolute", + right: "10px", + bottom: "-10px", + color: "#999", + }, + }, + ["0/70"] + ); + // Additional Inputs Section + const additionalInputsSection = $el("div", { style: { ...sectionStyle } }, [ + $el("label", { style: labelStyle }, ["3️⃣ Title "]), + this.TitleInput, + titleNumDom, + ]); + const SubtitleSection = $el("div", { style: sectionStyle }, [ + $el("label", { style: labelStyle }, ["4️⃣ Subtitle "]), + this.SubTitleInput, + subTitleNumDom, + ]); + const DescriptionSection = $el("div", { style: sectionStyle }, [ + $el("label", { style: labelStyle }, ["5️⃣ Description "]), + this.descriptionInput, + // descriptionNumDom, + ]); + // switch between outputs section and additional inputs section + this.radioButtons_lock = []; + + this.radioButtonsCheck_lock = $el("input", { + type: "radio", + name: "output_type_lock", + value: "0", + id: "blockchain1_lock", + checked: true, + }); + this.radioButtonsCheckOff_lock = $el("input", { + type: "radio", + name: "output_type_lock", + value: "1", + id: "blockchain_lock", + }); + + const blockChainSection_lock = $el("div", { style: sectionStyle }, [ + $el("label", { style: labelStyle }, ["6️⃣ Download threshold"]), + $el( + "label", + { + style: { + marginTop: "10px", + display: "flex", + alignItems: "center", + cursor: "pointer", + }, + }, + [ + this.radioButtonsCheck_lock, + $el( + "div", + { + style: { + marginLeft: "5px", + display: "flex", + alignItems: "center", + position: "relative", + }, + }, + [ + $el("span", { style: { marginLeft: "5px" } }, ["ON"]), + $el( + "span", + { + style: { + marginLeft: "20px", + marginRight: "10px", + color: "#fff", + }, + }, + ["Unlock with"] + ), + $el("img", { + style: { + width: "16px", + height: "16px", + position: "absolute", + right: "75px", + zIndex: "100", + }, + src: "https://static.copus.io/images/admin/202507/prod/e2919a1d8f3c2d99d3b8fe27ff94b841.png", + }), + this.LockInput, + ] + ), + ] + ), + $el( + "label", + { style: { display: "flex", alignItems: "center", cursor: "pointer" } }, + [ + this.radioButtonsCheckOff_lock, + $el( + "div", + { + style: { + marginLeft: "5px", + display: "flex", + alignItems: "center", + }, + }, + [$el("span", { style: { marginLeft: "5px" } }, ["OFF"])] + ), + ] + ), + + $el( + "p", + { style: { fontSize: "16px", color: "#fff", margin: "10px 0 0 0" } }, + [ + ] + ), + ]); + + this.radioButtons = []; + + this.radioButtonsCheck = $el("input", { + type: "radio", + name: "output_type", + value: "0", + id: "blockchain1", + checked: true, + }); + this.radioButtonsCheckOff = $el("input", { + type: "radio", + name: "output_type", + value: "1", + id: "blockchain", + }); + + const blockChainSection = $el("div", { style: sectionStyle }, [ + $el("label", { style: labelStyle }, ["8️⃣ Store on blockchain "]), + $el( + "label", + { + style: { + marginTop: "10px", + display: "flex", + alignItems: "center", + cursor: "pointer", + }, + }, + [ + this.radioButtonsCheck, + $el("span", { style: { marginLeft: "5px" } }, ["ON"]), + ] + ), + $el( + "label", + { style: { display: "flex", alignItems: "center", cursor: "pointer" } }, + [ + this.radioButtonsCheckOff, + $el("span", { style: { marginLeft: "5px" } }, ["OFF"]), + ] + ), + $el( + "p", + { style: { fontSize: "16px", color: "#fff", margin: "10px 0 0 0" } }, + ["Secure ownership with a permanent & decentralized storage"] + ), + ]); + + this.ratingRadioButtonsCheck0 = $el("input", { + type: "radio", + name: "content_rating", + value: "0", + id: "content_rating0", + }); + this.ratingRadioButtonsCheck1 = $el("input", { + type: "radio", + name: "content_rating", + value: "1", + id: "content_rating1", + }); + this.ratingRadioButtonsCheck2 = $el("input", { + type: "radio", + name: "content_rating", + value: "2", + id: "content_rating2", + }); + this.ratingRadioButtonsCheck_1 = $el("input", { + type: "radio", + name: "content_rating", + value: "-1", + id: "content_rating_1", + checked: true, + }); + + // content rating + const contentRatingSection = $el("div", { style: sectionStyle }, [ + $el("label", { style: labelStyle }, ["7️⃣ Content rating "]), + $el( + "label", + { + style: { + marginTop: "10px", + display: "flex", + alignItems: "center", + cursor: "pointer", + }, + }, + [ + this.ratingRadioButtonsCheck0, + $el("img", { + style: { + width: "12px", + height: "12px", + marginLeft: "5px", + }, + src: "https://static.copus.io/images/client/202507/test/b9f17da83b054d53cd0cb4508c2c30dc.png", + }), + $el("span", { style: { marginLeft: "5px", color: "#fff" } }, [ + "All ages", + ]), + ] + ), + $el( + "p", + { style: { fontSize: "10px", color: "#fff", marginLeft: "20px" } }, + ["Safe for all viewers; no profanity, violence, or mature themes."] + ), + $el( + "label", + { style: { display: "flex", alignItems: "center", cursor: "pointer" } }, + [ + this.ratingRadioButtonsCheck1, + $el("img", { + style: { + width: "12px", + height: "12px", + marginLeft: "5px", + }, + src: "https://static.copus.io/images/client/202507/test/7848bc0d3690671df21c7cf00c4cfc81.png", + }), + $el("span", { style: { marginLeft: "5px", color: "#fff" } }, [ + "13+ (Teen)", + ]), + ] + ), + $el( + "p", + { style: { fontSize: "10px", color: "#fff", marginLeft: "20px" } }, + [ + "Mild language, light themes, or cartoon violence; no explicit content. ", + ] + ), + $el( + "label", + { style: { display: "flex", alignItems: "center", cursor: "pointer" } }, + [ + this.ratingRadioButtonsCheck2, + $el("img", { + style: { + width: "12px", + height: "12px", + marginLeft: "5px", + }, + src: "https://static.copus.io/images/client/202507/test/bc51839c208d68d91173e43c23bff039.png", + }), + $el("span", { style: { marginLeft: "5px", color: "#fff" } }, [ + "18+ (Explicit)", + ]), + ] + ), + $el( + "p", + { style: { fontSize: "10px", color: "#fff", marginLeft: "20px" } }, + [ + "Explicit content, including sexual content, strong violence, or intense themes. ", + ] + ), + $el( + "label", + { style: { display: "flex", alignItems: "center", cursor: "pointer" } }, + [ + this.ratingRadioButtonsCheck_1, + $el("img", { + style: { + width: "12px", + height: "12px", + marginLeft: "5px", + }, + src: "https://static.copus.io/images/client/202507/test/5c802fdcaaea4e7bbed37393eec0d5ba.png", + }), + $el("span", { style: { marginLeft: "5px", color: "#fff" } }, [ + "Not Rated", + ]), + ] + ), + $el( + "p", + { style: { fontSize: "10px", color: "#fff", marginLeft: "20px" } }, + ["No age rating provided."] + ), + ]); + + // Message Section + this.message = $el( + "div", + { + style: { + color: "#ff3d00", + textAlign: "center", + padding: "10px", + fontSize: "20px", + }, + }, + [] + ); + + this.shareButton = $el("button", { + type: "submit", + textContent: "Share", + style: buttonStyle, + onclick: () => { + this.handleShareButtonClick(); + }, + }); + + // Share and Close Buttons + const buttonsSection = $el( + "div", + { + style: { + textAlign: "right", + marginTop: "20px", + display: "flex", + justifyContent: "space-between", + }, + }, + [ + $el("button", { + type: "button", + textContent: "Close", + style: { + ...buttonStyle, + backgroundColor: undefined, + }, + onclick: () => { + this.close(); + }, + }), + this.shareButton, + ] + ); + + // Composing the full layout + const layout = [ + headerSection, + linkSection, + accountSection, + outputUploadSection, + this.outputsSection, + additionalInputsSection, + SubtitleSection, + DescriptionSection, + // contestSection, + blockChainSection_lock, + contentRatingSection, + blockChainSection, + this.message, + buttonsSection, + ]; + + return layout; + } + /** + * api + * @param {url} path + * @param {params} options + * @param {statusText} statusText + * @returns + */ + async fetchApi(path, options, statusText) { + if (statusText) { + this.message.textContent = statusText; + } + const fullPath = new URL(API_ENDPOINT + path); + const response = await fetch(fullPath, options); + if (!response.ok) { + throw new Error(response.statusText); + } + if (statusText) { + this.message.textContent = ""; + } + const data = await response.json(); + return { + ok: response.ok, + statusText: response.statusText, + status: response.status, + data, + }; + } + /** + * @param {file} uploadFile + */ + async uploadThumbnail(uploadFile, type) { + const form = new FormData(); + form.append("file", uploadFile); + form.append("apiToken", this.keyInput.value); + try { + const res = await this.fetchApi( + `/client/common/opus/uploadImage`, + { + method: "POST", + body: form, + }, + "Uploading thumbnail..." + ); + if (res.status && res.data.status && res.data) { + const { data } = res.data; + if (type) { + this.allFilesImages.push({ + url: data, + }); + } + this.uploadedImages.push({ + url: data, + }); + } else { + throw new Error( + "make sure your API key is correct and try again later" + ); + } + } catch (e) { + if (e?.response?.status === 413) { + throw new Error("File size is too large (max 20MB)"); + } else { + throw new Error("Error uploading thumbnail: " + e.message); + } + } + } + + async handleShareButtonClick() { + this.message.textContent = ""; + try { + this.shareButton.disabled = true; + this.shareButton.textContent = "Sharing..."; + await this.share(); + } catch (e) { + customAlert(e.message); + } + this.shareButton.disabled = false; + this.shareButton.textContent = "Share"; + } + /** + * share + * @param {string} title + * @param {string} subtitle + * @param {string} content + * @param {boolean} storeOnChain + * @param {string} coverUrl + * @param {string[]} imageUrls + * @param {string} apiToken + */ + async share() { + const prompt = await app.graphToPrompt(); + const workflowJSON = prompt["workflow"]; + const form_values = { + title: this.TitleInput.value, + subTitle: this.SubTitleInput.value, + content: this.descriptionInput.value, + storeOnChain: this.radioButtonsCheck.checked ? true : false, + lockState: this.radioButtonsCheck_lock.checked ? 2 : 0, + unlockPrice: this.LockInput.value, + rating: this.ratingRadioButtonsCheck0.checked + ? 0 + : this.ratingRadioButtonsCheck1.checked + ? 1 + : this.ratingRadioButtonsCheck2.checked + ? 2 + : -1, + }; + + if (!this.keyInput.value) { + throw new Error("API key is required"); + } + + if (!this.uploadImagesInput.files[0] && !this.selectedFile) { + throw new Error("Thumbnail is required"); + } + + if (!form_values.title) { + throw new Error("Title is required"); + } + + if (this.radioButtonsCheck_lock.checked) { + if (!this.LockInput.value) { + throw new Error("Price is required"); + } + } + + if (!this.uploadedImages.length) { + if (this.selectedFile) { + await this.uploadThumbnail(this.selectedFile); + } else { + for (const file of this.uploadImagesInput.files) { + try { + await this.uploadThumbnail(file); + } catch (e) { + this.uploadedImages = []; + throw new Error(e.message); + } + } + + if (this.uploadImagesInput.files.length === 0) { + throw new Error("No thumbnail uploaded"); + } + } + } + if (this.allFiles.length > 0) { + for (const file of this.allFiles) { + try { + await this.uploadThumbnail(file, true); + } catch (e) { + this.allFilesImages = []; + throw new Error(e.message); + } + } + } + try { + const res = await this.fetchApi( + "/client/common/opus/shareFromComfyUI", + { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + workflowJson: workflowJSON, + apiToken: this.keyInput.value, + coverUrl: this.uploadedImages[0].url, + imageUrls: this.allFilesImages.map((image) => image.url), + ...form_values, + }), + }, + "Uploading workflow..." + ); + + if (res.status && res.data.status && res.data) { + localStorage.setItem("copus_token", this.keyInput.value); + const { data } = res.data; + if (data) { + const url = `${DEFAULT_HOMEPAGE_URL}/work/${data}`; + this.message.innerHTML = `Workflow has been shared successfully. Click here to view it.`; + this.previewImage.src = ""; + this.previewImage.style.display = "none"; + this.uploadedImages = []; + this.allFilesImages = []; + this.allFiles = []; + this.TitleInput.value = ""; + this.SubTitleInput.value = ""; + this.descriptionInput.value = ""; + this.selectedFile = null; + } + } + } catch (e) { + throw new Error("Error sharing workflow: " + e.message); + } + } + + async fetchImageBlob(url) { + const response = await fetch(url); + const blob = await response.blob(); + return blob; + } + + async show({ potential_outputs, potential_output_nodes } = {}) { + // Sort `potential_output_nodes` by node ID to make the order always + // consistent, but we should also keep `potential_outputs` in the same + // order as `potential_output_nodes`. + const potential_output_to_order = {}; + potential_output_nodes.forEach((node, index) => { + if (node.id in potential_output_to_order) { + potential_output_to_order[node.id][1].push(potential_outputs[index]); + } else { + potential_output_to_order[node.id] = [node, [potential_outputs[index]]]; + } + }); + // Sort the object `potential_output_to_order` by key (node ID) + const sorted_potential_output_to_order = Object.fromEntries( + Object.entries(potential_output_to_order).sort( + (a, b) => a[0].id - b[0].id + ) + ); + const sorted_potential_outputs = []; + const sorted_potential_output_nodes = []; + for (const [key, value] of Object.entries( + sorted_potential_output_to_order + )) { + sorted_potential_output_nodes.push(value[0]); + sorted_potential_outputs.push(...value[1]); + } + potential_output_nodes = sorted_potential_output_nodes; + potential_outputs = sorted_potential_outputs; + const apiToken = localStorage.getItem("copus_token"); + this.message.innerHTML = ""; + this.message.textContent = ""; + this.element.style.display = "block"; + this.previewImage.src = ""; + this.previewImage.style.display = "none"; + this.keyInput.value = apiToken != null ? apiToken : ""; + this.uploadedImages = []; + this.allFilesImages = []; + this.allFiles = []; + // If `selectedNodeId` is provided, we will select the corresponding radio + // button for the node. In addition, we move the selected radio button to + // the top of the list. + if (this.selectedNodeId) { + const index = potential_output_nodes.findIndex( + (node) => node.id === this.selectedNodeId + ); + if (index >= 0) { + this.selectedOutputIndex = index; + } + } + + this.radioButtons = []; + const new_radio_buttons = $el( + "div", + { + id: "selectOutput-Options", + style: { + "overflow-y": "scroll", + "max-height": "200px", + display: "grid", + "grid-template-columns": "repeat(auto-fit, minmax(100px, 1fr))", + "grid-template-rows": "auto", + "grid-column-gap": "10px", + "grid-row-gap": "10px", + "margin-bottom": "10px", + padding: "10px", + "border-radius": "8px", + "box-shadow": "0 2px 4px rgba(0, 0, 0, 0.05)", + "background-color": "var(--bg-color)", + }, + }, + potential_outputs.map((output, index) => { + const { node_id } = output; + const radio_button = $el( + "input", + { + type: "radio", + name: "selectOutputImages", + value: index, + required: index === 0, + }, + [] + ); + let radio_button_img; + let filename; + if (output.type === "image" || output.type === "temp") { + radio_button_img = $el( + "img", + { + src: `/view?filename=${output.image.filename}&subfolder=${output.image.subfolder}&type=${output.image.type}`, + style: { + width: "100px", + height: "100px", + objectFit: "cover", + borderRadius: "5px", + }, + }, + [] + ); + filename = output.image.filename; + } else if (output.type === "output") { + radio_button_img = $el( + "img", + { + src: output.output.value, + style: { + width: "auto", + height: "100px", + objectFit: "cover", + borderRadius: "5px", + }, + }, + [] + ); + filename = output.filename; + } else { + // unsupported output type + // this should never happen + radio_button_img = $el( + "img", + { + src: "", + style: { width: "auto", height: "100px" }, + }, + [] + ); + } + const radio_button_text = $el( + "span", + { + style: { + color: "gray", + display: "block", + fontSize: "12px", + overflowX: "hidden", + textOverflow: "ellipsis", + textWrap: "nowrap", + maxWidth: "100px", + }, + }, + [output.title] + ); + const node_id_chip = $el( + "span", + { + style: { + color: "#FBFBFD", + display: "block", + backgroundColor: "rgba(0, 0, 0, 0.5)", + fontSize: "12px", + overflowX: "hidden", + padding: "2px 3px", + textOverflow: "ellipsis", + textWrap: "nowrap", + maxWidth: "100px", + position: "absolute", + top: "3px", + left: "3px", + borderRadius: "3px", + }, + }, + [`Node: ${node_id}`] + ); + radio_button.style.color = "var(--fg-color)"; + radio_button.checked = this.selectedOutputIndex === index; + + radio_button.onchange = async () => { + this.selectedOutputIndex = parseInt(radio_button.value); + + // Remove the "checked" class from all radio buttons + this.radioButtons.forEach((ele) => { + ele.parentElement.classList.remove("checked"); + }); + radio_button.parentElement.classList.add("checked"); + + this.fetchImageBlob(radio_button_img.src).then((blob) => { + const file = new File([blob], filename, { + type: blob.type, + }); + this.previewImage.src = radio_button_img.src; + this.previewImage.style.display = "block"; + this.selectedFile = file; + }); + + // Add the opacity style toggle here to indicate that they only need + // to upload one image or choose one from the outputs. + this.outputsSection.style.opacity = 1; + this.uploadImagesInput.style.opacity = 0.35; + }; + + if (radio_button.checked) { + this.fetchImageBlob(radio_button_img.src).then((blob) => { + const file = new File([blob], filename, { + type: blob.type, + }); + this.previewImage.src = radio_button_img.src; + this.previewImage.style.display = "block"; + this.selectedFile = file; + }); + // Add the opacity style toggle here to indicate that they only need + // to upload one image or choose one from the outputs. + this.outputsSection.style.opacity = 1; + this.uploadImagesInput.style.opacity = 0.35; + } + this.radioButtons.push(radio_button); + let src = ""; + if (output.type === "image" || output.type === "temp") { + filename = output.image.filename; + src = `/view?filename=${output.image.filename}&subfolder=${output.image.subfolder}&type=${output.image.type}`; + } else if (output.type === "output") { + src = output.output.value; + filename = output.filename; + } + if (src) { + this.fetchImageBlob(src).then((blob) => { + const file = new File([blob], filename, { + type: blob.type, + }); + this.allFiles.push(file); + }); + } + return $el( + `label.output_label${radio_button.checked ? ".checked" : ""}`, + { + style: { + display: "flex", + flexDirection: "column", + alignItems: "center", + justifyContent: "center", + marginBottom: "10px", + cursor: "pointer", + position: "relative", + }, + }, + [radio_button_img, radio_button_text, radio_button, node_id_chip] + ); + }) + ); + + const header = $el( + "p", + { + textContent: + this.radioButtons.length === 0 + ? "Queue Prompt to see the outputs" + : "Or choose one from the outputs (scroll to see all)", + size: 2, + color: "white", + style: { + color: "white", + margin: "0 0 5px 0", + fontSize: "12px", + }, + }, + [] + ); + this.outputsSection.innerHTML = ""; + this.outputsSection.appendChild(header); + this.outputsSection.appendChild(new_radio_buttons); + } +} diff --git a/js/comfyui-share-openart.js b/js/comfyui-share-openart.js index 15770907..1c96a8c7 100644 --- a/js/comfyui-share-openart.js +++ b/js/comfyui-share-openart.js @@ -1,6 +1,7 @@ import {app} from "../../scripts/app.js"; import {api} from "../../scripts/api.js"; import {ComfyDialog, $el} from "../../scripts/ui.js"; +import { customAlert } from "./common.js"; const LOCAL_STORAGE_KEY = "openart_comfy_workflow_key"; const DEFAULT_HOMEPAGE_URL = "https://openart.ai/workflows/dev?developer=true"; @@ -199,7 +200,7 @@ export class OpenArtShareDialog extends ComfyDialog { color: "white", style: { 'text-align': 'center', - color: 'white', + color: 'var(--input-text)', margin: '0 0 10px 0', } }); @@ -431,7 +432,7 @@ export class OpenArtShareDialog extends ComfyDialog { this.shareButton.textContent = "Sharing..."; await this.share(); } catch (e) { - alert(e.message); + customAlert(e.message); } this.shareButton.disabled = false; this.shareButton.textContent = "Share"; @@ -481,10 +482,6 @@ export class OpenArtShareDialog extends ComfyDialog { if (this.uploadImagesInput.files.length === 0) { throw new Error("No thumbnail uploaded"); } - - if (this.uploadImagesInput.files.length === 0) { - throw new Error("No thumbnail uploaded"); - } } } @@ -737,7 +734,7 @@ export class OpenArtShareDialog extends ComfyDialog { size: 2, color: "white", style: { - color: 'white', + color: 'var(--input-text)', margin: '0 0 5px 0', fontSize: '12px', }, diff --git a/js/comfyui-share-youml.js b/js/comfyui-share-youml.js index 80077b25..efd8916f 100644 --- a/js/comfyui-share-youml.js +++ b/js/comfyui-share-youml.js @@ -1,6 +1,7 @@ import {app} from "../../scripts/app.js"; import {api} from "../../scripts/api.js"; import {ComfyDialog, $el} from "../../scripts/ui.js"; +import { customAlert } from "./common.js"; const BASE_URL = "https://youml.com"; //const BASE_URL = "http://localhost:3000"; @@ -347,7 +348,7 @@ export class YouMLShareDialog extends ComfyDialog { this.shareButton.textContent = "Sharing..."; await this.share(); } catch (e) { - alert(e.message); + customAlert(e.message); } finally { this.shareButton.disabled = false; this.shareButton.textContent = "Share"; diff --git a/js/common.js b/js/common.js index 0815c1eb..71cf58ea 100644 --- a/js/common.js +++ b/js/common.js @@ -1,75 +1,186 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js"; +import { $el, ComfyDialog } from "../../scripts/ui.js"; +import { getBestPosition, getPositionStyle, getRect } from './popover-helper.js'; + + +function internalCustomConfirm(message, confirmMessage, cancelMessage) { + return new Promise((resolve) => { + // transparent bg + const modalOverlay = document.createElement('div'); + modalOverlay.style.position = 'fixed'; + modalOverlay.style.top = 0; + modalOverlay.style.left = 0; + modalOverlay.style.width = '100%'; + modalOverlay.style.height = '100%'; + modalOverlay.style.backgroundColor = 'rgba(0, 0, 0, 0.8)'; + modalOverlay.style.display = 'flex'; + modalOverlay.style.alignItems = 'center'; + modalOverlay.style.justifyContent = 'center'; + modalOverlay.style.zIndex = '1101'; + + // Modal window container (dark bg) + const modalDialog = document.createElement('div'); + modalDialog.style.backgroundColor = '#333'; + modalDialog.style.padding = '20px'; + modalDialog.style.borderRadius = '4px'; + modalDialog.style.maxWidth = '400px'; + modalDialog.style.width = '80%'; + modalDialog.style.boxShadow = '0 2px 8px rgba(0, 0, 0, 0.5)'; + modalDialog.style.color = '#fff'; + + // Display message + const modalMessage = document.createElement('p'); + modalMessage.textContent = message; + modalMessage.style.margin = '0'; + modalMessage.style.padding = '0 0 20px'; + modalMessage.style.wordBreak = 'keep-all'; + + // Button container + const modalButtons = document.createElement('div'); + modalButtons.style.display = 'flex'; + modalButtons.style.justifyContent = 'flex-end'; + + // Confirm button (green) + const confirmButton = document.createElement('button'); + if(confirmMessage) + confirmButton.textContent = confirmMessage; + else + confirmButton.textContent = 'Confirm'; + confirmButton.style.marginLeft = '10px'; + confirmButton.style.backgroundColor = '#28a745'; // green + confirmButton.style.color = '#fff'; + confirmButton.style.border = 'none'; + confirmButton.style.padding = '6px 12px'; + confirmButton.style.borderRadius = '4px'; + confirmButton.style.cursor = 'pointer'; + confirmButton.style.fontWeight = 'bold'; + + // Cancel button (red) + const cancelButton = document.createElement('button'); + if(cancelMessage) + cancelButton.textContent = cancelMessage; + else + cancelButton.textContent = 'Cancel'; + + cancelButton.style.marginLeft = '10px'; + cancelButton.style.backgroundColor = '#dc3545'; // red + cancelButton.style.color = '#fff'; + cancelButton.style.border = 'none'; + cancelButton.style.padding = '6px 12px'; + cancelButton.style.borderRadius = '4px'; + cancelButton.style.cursor = 'pointer'; + cancelButton.style.fontWeight = 'bold'; + + const closeModal = () => { + document.body.removeChild(modalOverlay); + }; + + confirmButton.addEventListener('click', () => { + closeModal(); + resolve(true); + }); + + cancelButton.addEventListener('click', () => { + closeModal(); + resolve(false); + }); + + modalButtons.appendChild(confirmButton); + modalButtons.appendChild(cancelButton); + modalDialog.appendChild(modalMessage); + modalDialog.appendChild(modalButtons); + modalOverlay.appendChild(modalDialog); + document.body.appendChild(modalOverlay); + }); +} + +export function show_message(msg) { + app.ui.dialog.show(msg); + app.ui.dialog.element.style.zIndex = 1100; +} export async function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } -export function rebootAPI() { - if (confirm("Are you sure you'd like to reboot the server?")) { - try { - api.fetchApi("/manager/reboot"); - } - catch(exception) { +export async function customConfirm(message) { + try { + let res = await + window['app'].extensionManager.dialog + .confirm({ + title: 'Confirm', + message: message + }); - } - return true; + return res; } + catch { + let res = await internalCustomConfirm(message); + return res; + } +} + + +export function customAlert(message) { + try { + window['app'].extensionManager.toast.addAlert(message); + } + catch { + alert(message); + } +} + +export function infoToast(summary, message) { + try { + app.extensionManager.toast.add({ + severity: 'info', + summary: summary, + detail: message, + life: 3000 + }) + } + catch { + // do nothing + } +} + + +export async function customPrompt(title, message) { + try { + let res = await + window['app'].extensionManager.dialog + .prompt({ + title: title, + message: message + }); + + return res; + } + catch { + return prompt(title, message) + } +} + + +export function rebootAPI() { + if ('electronAPI' in window) { + window.electronAPI.restartApp(); + return true; + } + + customConfirm("Are you sure you'd like to reboot the server?").then((isConfirmed) => { + if (isConfirmed) { + try { + api.fetchApi("/manager/reboot"); + } + catch(exception) {} + } + }); return false; } -export async function install_checked_custom_node(grid_rows, target_i, caller, mode) { - if(caller) { - let failed = ''; - - caller.disableButtons(); - - for(let i in grid_rows) { - if(!grid_rows[i].checkbox.checked && i != target_i) - continue; - - var target; - - if(grid_rows[i].data.custom_node) { - target = grid_rows[i].data.custom_node; - } - else { - target = grid_rows[i].data; - } - - caller.startInstall(target); - - try { - const response = await api.fetchApi(`/customnode/${mode}`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(target) - }); - - if(response.status == 400) { - show_message(`${mode} failed: ${target.title}`); - continue; - } - - const status = await response.json(); - app.ui.dialog.close(); - target.installed = 'True'; - continue; - } - catch(exception) { - failed += `
${target.title}`; - } - } - - if(failed != '') { - show_message(`${mode} failed: ${failed}`); - } - - await caller.invalidateControl(); - caller.updateMessage("
To apply the installed/updated/disabled/enabled custom node, please ComfyUI. And refresh browser.", 'cm-reboot-button1'); - } -}; export var manager_instance = null; @@ -77,33 +188,48 @@ export function setManagerInstance(obj) { manager_instance = obj; } +export function showToast(message, duration = 3000) { + const toast = $el("div.comfy-toast", {textContent: message}); + document.body.appendChild(toast); + setTimeout(() => { + toast.classList.add("comfy-toast-fadeout"); + setTimeout(() => toast.remove(), 500); + }, duration); +} + function isValidURL(url) { if(url.includes('&')) return false; - const pattern = /^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/; - return pattern.test(url); + const http_pattern = /^(https?|ftp):\/\/[^\s$?#]+$/; + const ssh_pattern = /^(.+@|ssh:\/\/).+:.+$/; + return http_pattern.test(url) || ssh_pattern.test(url); } export async function install_pip(packages) { if(packages.includes('&')) app.ui.dialog.show(`Invalid PIP package enumeration: '${packages}'`); - const res = await api.fetchApi(`/customnode/install/pip?packages=${packages}`); + const res = await api.fetchApi("/customnode/install/pip", { + method: "POST", + body: packages, + }); + + if(res.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return; + } if(res.status == 200) { - app.ui.dialog.show(`PIP package installation is processed.
To apply the pip packages, please click the button in ComfyUI.`); + show_message(`PIP package installation is processed.
To apply the pip packages, please click the button in ComfyUI.`); const rebootButton = document.getElementById('cm-reboot-button3'); const self = this; rebootButton.addEventListener("click", rebootAPI); - - app.ui.dialog.element.style.zIndex = 10010; } else { - app.ui.dialog.show(`Failed to install '${packages}'
See terminal log.`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Failed to install '${packages}'
See terminal log.`); } } @@ -113,18 +239,24 @@ export async function install_via_git_url(url, manager_dialog) { } if(!isValidURL(url)) { - app.ui.dialog.show(`Invalid Git url '${url}'`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Invalid Git url '${url}'`); return; } - app.ui.dialog.show(`Wait...

Installing '${url}'`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Wait...

Installing '${url}'`); - const res = await api.fetchApi(`/customnode/install/git_url?url=${url}`); + const res = await api.fetchApi("/customnode/install/git_url", { + method: "POST", + body: url, + }); + + if(res.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return; + } if(res.status == 200) { - app.ui.dialog.show(`'${url}' is installed
To apply the installed custom node, please ComfyUI.`); + show_message(`'${url}' is installed
To apply the installed custom node, please ComfyUI.`); const rebootButton = document.getElementById('cm-reboot-button4'); const self = this; @@ -135,32 +267,388 @@ export async function install_via_git_url(url, manager_dialog) { manager_dialog.close(); } }); - - app.ui.dialog.element.style.zIndex = 10010; } else { - app.ui.dialog.show(`Failed to install '${url}'
See terminal log.`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Failed to install '${url}'
See terminal log.`); } } -export async function free_models() { - let res = await api.fetchApi(`/free`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: '{}' - }); +export async function free_models(free_execution_cache) { + try { + let mode = ""; + if(free_execution_cache) { + mode = '{"unload_models": true, "free_memory": true}'; + } + else { + mode = '{"unload_models": true}'; + } - if(res.status == 200) { - app.ui.dialog.show('Models have been unloaded.') + let res = await api.fetchApi(`/free`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: mode + }); + + if (res.status == 200) { + if(free_execution_cache) { + showToast("'Models' and 'Execution Cache' have been cleared.", 3000); + } + else { + showToast("Models' have been unloaded.", 3000); + } + } else { + showToast('Unloading of models failed. Installed ComfyUI may be an outdated version.', 5000); + } + } catch (error) { + showToast('An error occurred while trying to unload models.', 5000); } - else { - app.ui.dialog.show('Unloading of models failed.

Installed ComfyUI may be an outdated version.') - } - app.ui.dialog.element.style.zIndex = 10010; } -export function show_message(msg) { - app.ui.dialog.show(msg); - app.ui.dialog.element.style.zIndex = 10010; -} \ No newline at end of file +export function md5(inputString) { + const hc = '0123456789abcdef'; + const rh = n => {let j,s='';for(j=0;j<=3;j++) s+=hc.charAt((n>>(j*8+4))&0x0F)+hc.charAt((n>>(j*8))&0x0F);return s;} + const ad = (x,y) => {let l=(x&0xFFFF)+(y&0xFFFF);let m=(x>>16)+(y>>16)+(l>>16);return (m<<16)|(l&0xFFFF);} + const rl = (n,c) => (n<>>(32-c)); + const cm = (q,a,b,x,s,t) => ad(rl(ad(ad(a,q),ad(x,t)),s),b); + const ff = (a,b,c,d,x,s,t) => cm((b&c)|((~b)&d),a,b,x,s,t); + const gg = (a,b,c,d,x,s,t) => cm((b&d)|(c&(~d)),a,b,x,s,t); + const hh = (a,b,c,d,x,s,t) => cm(b^c^d,a,b,x,s,t); + const ii = (a,b,c,d,x,s,t) => cm(c^(b|(~d)),a,b,x,s,t); + const sb = x => { + let i;const nblk=((x.length+8)>>6)+1;const blks=[];for(i=0;i>2]|=x.charCodeAt(i)<<((i%4)*8);} + blks[i>>2]|=0x80<<((i%4)*8);blks[nblk*16-2]=x.length*8;return blks; + } + let i,x=sb(inputString),a=1732584193,b=-271733879,c=-1732584194,d=271733878,olda,oldb,oldc,oldd; + for(i=0;i { + err = e; + }); + + if (!res) { + return { + status: 400, + error: new Error("Unknown Error") + } + } + + const { status, statusText } = res; + if (err) { + return { + status, + error: err + } + } + + if (status !== 200) { + return { + status, + error: new Error(statusText || "Unknown Error") + } + } + + const data = await res.json(); + if (!data) { + return { + status, + error: new Error(`Failed to load data: ${route}`) + } + } + return { + status, + data + } +} + +// https://cenfun.github.io/open-icons/ +export const icons = { + search: '', + conflicts: '', + passed: '', + download: '', + close: '', + arrowRight: '' +} + +export function sanitizeHTML(str) { + return str + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); +} + +export function showTerminal() { + try { + const panel = app.extensionManager.bottomPanel; + const isTerminalVisible = panel.bottomPanelVisible && panel.activeBottomPanelTab.id === 'logs-terminal'; + if (!isTerminalVisible) + panel.toggleBottomPanelTab('logs-terminal'); + } + catch(exception) { + // do nothing + } +} + +let need_restart = false; + +export function setNeedRestart(value) { + need_restart = value; +} + +async function onReconnected(event) { + if(need_restart) { + setNeedRestart(false); + + const confirmed = await customConfirm("To apply the changes to the node pack's installation status, you need to refresh the browser. Would you like to refresh?"); + if (!confirmed) { + return; + } + + window.location.reload(true); + } +} + +api.addEventListener('reconnected', onReconnected); + +const storeId = "comfyui-manager-grid"; +let timeId; +export function storeColumnWidth(gridId, columnItem) { + clearTimeout(timeId); + timeId = setTimeout(() => { + let data = {}; + const dataStr = localStorage.getItem(storeId); + if (dataStr) { + try { + data = JSON.parse(dataStr); + } catch (e) {} + } + + if (!data[gridId]) { + data[gridId] = {}; + } + + data[gridId][columnItem.id] = columnItem.width; + + localStorage.setItem(storeId, JSON.stringify(data)); + + }, 200) +} + +export function restoreColumnWidth(gridId, columns) { + const dataStr = localStorage.getItem(storeId); + if (!dataStr) { + return; + } + let data; + try { + data = JSON.parse(dataStr); + } catch (e) {} + if(!data) { + return; + } + const widthMap = data[gridId]; + if (!widthMap) { + return; + } + + columns.forEach(columnItem => { + const w = widthMap[columnItem.id]; + if (w) { + columnItem.width = w; + } + }); + +} + +export function getTimeAgo(dateStr) { + const date = new Date(dateStr); + + if (!date || !(date instanceof Date) || isNaN(date.getTime())) { + return ""; + } + + const units = [ + { max: 2760000, value: 60000, name: 'minute', past: 'a minute ago', future: 'in a minute' }, + { max: 72000000, value: 3600000, name: 'hour', past: 'an hour ago', future: 'in an hour' }, + { max: 518400000, value: 86400000, name: 'day', past: 'yesterday', future: 'tomorrow' }, + { max: 2419200000, value: 604800000, name: 'week', past: 'last week', future: 'in a week' }, + { max: 28512000000, value: 2592000000, name: 'month', past: 'last month', future: 'in a month' } + ]; + const diff = Date.now() - date.getTime(); + // less than a minute + if (Math.abs(diff) < 60000) + return 'just now'; + for (let i = 0; i < units.length; i++) { + if (Math.abs(diff) < units[i].max) { + return format(diff, units[i].value, units[i].name, units[i].past, units[i].future, diff < 0); + } + } + function format(diff, divisor, unit, past, future, isInTheFuture) { + const val = Math.round(Math.abs(diff) / divisor); + if (isInTheFuture) + return val <= 1 ? future : 'in ' + val + ' ' + unit + 's'; + return val <= 1 ? past : val + ' ' + unit + 's ago'; + } + return format(diff, 31536000000, 'year', 'last year', 'in a year', diff < 0); +}; + +export const loadCss = (cssFile) => { + const cssPath = import.meta.resolve(cssFile); + //console.log(cssPath); + const $link = document.createElement("link"); + $link.setAttribute("rel", 'stylesheet'); + $link.setAttribute("href", cssPath); + document.head.appendChild($link); +}; + +export const copyText = (text) => { + return new Promise((resolve) => { + let err; + try { + navigator.clipboard.writeText(text); + } catch (e) { + err = e; + } + if (err) { + resolve(false); + } else { + resolve(true); + } + }); +}; + +function renderPopover($elem, target, options = {}) { + // async microtask + queueMicrotask(() => { + + const containerRect = getRect(window); + const targetRect = getRect(target); + const elemRect = getRect($elem); + + const positionInfo = getBestPosition( + containerRect, + targetRect, + elemRect, + options.positions + ); + const style = getPositionStyle(positionInfo, { + bgColor: options.bgColor, + borderColor: options.borderColor, + borderRadius: options.borderRadius + }); + + $elem.style.top = positionInfo.top + "px"; + $elem.style.left = positionInfo.left + "px"; + $elem.style.background = style.background; + + }); +} + +let $popover; +export function hidePopover() { + if ($popover) { + $popover.remove(); + $popover = null; + } +} +export function showPopover(target, text, className, options) { + hidePopover(); + $popover = document.createElement("div"); + $popover.className = ['cn-popover', className].filter(it => it).join(" "); + document.body.appendChild($popover); + $popover.innerHTML = text; + $popover.style.display = "block"; + renderPopover($popover, target, { + borderRadius: 10, + ... options + }); +} + +let $tooltip; +export function hideTooltip(target) { + if ($tooltip) { + $tooltip.style.display = "none"; + $tooltip.innerHTML = ""; + $tooltip.style.top = "0px"; + $tooltip.style.left = "0px"; + } +} +export function showTooltip(target, text, className = 'cn-tooltip', styleMap = {}) { + if (!$tooltip) { + $tooltip = document.createElement("div"); + $tooltip.className = className; + $tooltip.style.cssText = ` + pointer-events: none; + position: fixed; + z-index: 10001; + padding: 20px; + color: #1e1e1e; + max-width: 350px; + filter: drop-shadow(1px 5px 5px rgb(0 0 0 / 30%)); + ${Object.keys(styleMap).map(k=>k+":"+styleMap[k]+";").join("")} + `; + document.body.appendChild($tooltip); + } + + $tooltip.innerHTML = text; + $tooltip.style.display = "block"; + renderPopover($tooltip, target, { + positions: ['top', 'bottom', 'right', 'center'], + bgColor: "#ffffff", + borderColor: "#cccccc", + borderRadius: 5 + }); +} + +function initTooltip () { + const mouseenterHandler = (e) => { + const target = e.target; + const text = target.getAttribute('tooltip'); + if (text) { + showTooltip(target, text); + } + }; + const mouseleaveHandler = (e) => { + const target = e.target; + const text = target.getAttribute('tooltip'); + if (text) { + hideTooltip(target); + } + }; + document.body.removeEventListener('mouseenter', mouseenterHandler, true); + document.body.removeEventListener('mouseleave', mouseleaveHandler, true); + document.body.addEventListener('mouseenter', mouseenterHandler, true); + document.body.addEventListener('mouseleave', mouseleaveHandler, true); +} + +initTooltip(); \ No newline at end of file diff --git a/js/components-manager.js b/js/components-manager.js index 248a74d2..9244d2a4 100644 --- a/js/components-manager.js +++ b/js/components-manager.js @@ -1,9 +1,11 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js" -import { sleep, show_message } from "./common.js"; +import { sleep, show_message, customConfirm, customAlert } from "./common.js"; import { GroupNodeConfig, GroupNodeHandler } from "../../extensions/core/groupNode.js"; import { ComfyDialog, $el } from "../../scripts/ui.js"; +const SEPARATOR = ">" + let pack_map = {}; let rpack_map = {}; @@ -20,7 +22,7 @@ export function getPureName(node) { let purename = node.comfyClass.substring(category.length+1); return purename; } - else if(node.comfyClass.startsWith('workflow/')) { + else if(node.comfyClass.startsWith('workflow/') || node.comfyClass.startsWith(`workflow${SEPARATOR}`)) { return node.comfyClass.substring(9); } else { @@ -76,7 +78,7 @@ export async function load_components() { let category = data.packname; if(data.category) { - category += "/" + data.category; + category += SEPARATOR + data.category; } if(category == '') { category = 'components'; @@ -100,7 +102,7 @@ export async function load_components() { try { let category = nodeData.packname; if(nodeData.category) { - category += "/" + nodeData.category; + category += SEPARATOR + nodeData.category; } if(category == '') { category = 'components'; @@ -139,7 +141,7 @@ export async function load_components() { try { let category = nodeData.packname; if(nodeData.workflow.category) { - category += "/" + nodeData.category; + category += SEPARATOR + nodeData.category; } if(category == '') { category = 'components'; @@ -174,7 +176,7 @@ export async function load_components() { try { let category = nodeData.workflow.packname; if(nodeData.workflow.category) { - category += "/" + nodeData.category; + category += SEPARATOR + nodeData.category; } if(category == '') { category = 'components'; @@ -234,7 +236,7 @@ async function save_as_component(node, version, author, prefix, nodename, packna let category = body.workflow.packname; if(body.workflow.category) { - category += "/" + body.workflow.category; + category += SEPARATOR + body.workflow.category; } if(category == '') { category = 'components'; @@ -266,7 +268,7 @@ async function import_component(component_name, component, mode) { let category = component.packname; if(component.category) { - category += "/" + component.category; + category += SEPARATOR + component.category; } if(category == '') { category = 'components'; @@ -363,7 +365,7 @@ function checkVersion(name, component) { return msg; } -function handle_import_components(components) { +async function handle_import_components(components) { let msg = 'Components:\n'; let cnt = 0; for(let name in components) { @@ -385,8 +387,9 @@ function handle_import_components(components) { let last_name = null; msg += '\nWill you load components?\n'; - if(confirm(msg)) { - let mode = confirm('\nWill you save components?\n(cancel=load without save)'); + const confirmed = await customConfirm(msg); + if(confirmed) { + const mode = await customConfirm('\nWill you save components?\n(cancel=load without save)'); for(let name in components) { let component = components[name]; @@ -403,13 +406,13 @@ function handle_import_components(components) { } if(cnt == 1 && last_name) { - const node = LiteGraph.createNode(`workflow/${last_name}`); + const node = LiteGraph.createNode(`workflow${SEPARATOR}${last_name}`); node.pos = [app.canvas.graph_mouse[0], app.canvas.graph_mouse[1]]; app.canvas.graph.add(node, false); } } -function handlePaste(e) { +async function handlePaste(e) { let data = (e.clipboardData || window.clipboardData); const items = data.items; for(const item of items) { @@ -419,7 +422,7 @@ function handlePaste(e) { let json_data = JSON.parse(data); if(json_data.kind == 'ComfyUI Components' && last_paste_timestamp != json_data.timestamp) { last_paste_timestamp = json_data.timestamp; - handle_import_components(json_data.components); + await handle_import_components(json_data.components); // disable paste node localStorage.removeItem("litegrapheditor_clipboard", null); @@ -453,7 +456,7 @@ export class ComponentBuilderDialog extends ComfyDialog { this.invalidateControl(); this.element.style.display = "block"; - this.element.style.zIndex = 10001; + this.element.style.zIndex = 1099; this.element.style.width = "500px"; this.element.style.height = "480px"; } @@ -619,7 +622,7 @@ export class ComponentBuilderDialog extends ComfyDialog { self.version_string.value = self.default_ver; } else { - alert('If you are not the author, it is not recommended to change the version, as it may cause component update issues.'); + customAlert('If you are not the author, it is not recommended to change the version, as it may cause component update issues.'); } }; @@ -675,7 +678,7 @@ export class ComponentBuilderDialog extends ComfyDialog { let orig_handleFile = app.handleFile; -function handleFile(file) { +async function handleFile(file) { if (file.name?.endsWith(".json") || file.name?.endsWith(".pack")) { const reader = new FileReader(); reader.onload = async () => { @@ -688,7 +691,7 @@ function handleFile(file) { } if(is_component) { - handle_import_components(jsonContent); + await handle_import_components(jsonContent); } else { orig_handleFile.call(app, file); @@ -706,7 +709,7 @@ app.handleFile = handleFile; let current_component_policy = 'workflow'; try { - api.fetchApi('/manager/component/policy') + api.fetchApi('/manager/policy/component') .then(response => response.text()) .then(data => { current_component_policy = data; }); } @@ -786,7 +789,7 @@ app.graphToPrompt = async function () { // get used group nodes let used_group_nodes = new Set(); for(let node of p.workflow.nodes) { - if(node.type.startsWith('workflow/')) { + if(node.type.startsWith(`workflow/`) || node.type.startsWith(`workflow${SEPARATOR}`)) { used_group_nodes.add(node.type.substring(9)); } } diff --git a/js/custom-nodes-downloader.js b/js/custom-nodes-downloader.js deleted file mode 100644 index e60cde7e..00000000 --- a/js/custom-nodes-downloader.js +++ /dev/null @@ -1,943 +0,0 @@ -import { app } from "../../scripts/app.js"; -import { api } from "../../scripts/api.js" -import { ComfyDialog, $el } from "../../scripts/ui.js"; -import { install_checked_custom_node, manager_instance, rebootAPI } from "./common.js"; - - -async function getCustomNodes() { - var mode = manager_instance.datasrc_combo.value; - - var skip_update = ""; - if(manager_instance.update_check_checkbox.checked) - skip_update = "&skip_update=true"; - - const response = await api.fetchApi(`/customnode/getlist?mode=${mode}${skip_update}`); - - const data = await response.json(); - return data; -} - -async function getCustomnodeMappings() { - var mode = manager_instance.datasrc_combo.value; - - const response = await api.fetchApi(`/customnode/getmappings?mode=${mode}`); - - const data = await response.json(); - return data; -} - -async function getConflictMappings() { - var mode = manager_instance.datasrc_combo.value; - - const response = await api.fetchApi(`/customnode/getmappings?mode=${mode}`); - - const data = await response.json(); - - let node_to_extensions_map = {}; - - for(let k in data) { - for(let i in data[k][0]) { - let node = data[k][0][i]; - let l = node_to_extensions_map[node]; - if(!l) { - l = []; - node_to_extensions_map[node] = l; - } - l.push(k); - } - } - - let conflict_map = {}; - for(let node in node_to_extensions_map) { - if(node_to_extensions_map[node].length > 1) { - for(let i in node_to_extensions_map[node]) { - let extension = node_to_extensions_map[node][i]; - let l = conflict_map[extension]; - - if(!l) { - l = []; - conflict_map[extension] = l; - } - - for(let j in node_to_extensions_map[node]) { - let extension2 = node_to_extensions_map[node][j]; - if(extension != extension2) - l.push([node, extension2]); - } - } - } - } - - return conflict_map; -} - -async function getUnresolvedNodesInComponent() { - try { - var mode = manager_instance.datasrc_combo.value; - - const response = await api.fetchApi(`/component/get_unresolved`); - - const data = await response.json(); - return data.nodes; - } - catch { - return []; - } -} - -export class CustomNodesInstaller extends ComfyDialog { - static instance = null; - - install_buttons = []; - message_box = null; - data = null; - - static ShowMode = { - NORMAL: 0, - MISSING_NODES: 1, - UPDATE: 2, - }; - - clear() { - this.install_buttons = []; - this.message_box = null; - this.data = null; - } - - constructor(app, manager_dialog) { - super(); - this.manager_dialog = manager_dialog; - this.search_keyword = ''; - this.element = $el("div.comfy-modal", { parent: document.body }, []); - - this.currentSortProperty = ''; // The property currently being sorted - this.currentSortAscending = true; // The direction of the current sort - } - - startInstall(target) { - const self = CustomNodesInstaller.instance; - - self.updateMessage(`
Installing '${target.title}'`); - } - - disableButtons() { - for(let i in this.install_buttons) { - this.install_buttons[i].disabled = true; - this.install_buttons[i].style.backgroundColor = 'gray'; - } - } - - apply_searchbox(data) { - let keyword = this.search_box.value.toLowerCase(); - for(let i in this.grid_rows) { - let data = this.grid_rows[i].data; - let content = data.author.toLowerCase() + data.description.toLowerCase() + data.title.toLowerCase() + data.reference.toLowerCase(); - - if(this.filter && this.filter != '*') { - if(this.filter == 'True' && (data.installed == 'Update' || data.installed == 'Fail')) { - this.grid_rows[i].control.style.display = null; - } - else if(this.filter != data.installed) { - this.grid_rows[i].control.style.display = 'none'; - continue; - } - } - - if(keyword == "") - this.grid_rows[i].control.style.display = null; - else if(content.includes(keyword)) { - this.grid_rows[i].control.style.display = null; - } - else { - this.grid_rows[i].control.style.display = 'none'; - } - } - } - - async filter_missing_node(data) { - const mappings = await getCustomnodeMappings(); - - // build regex->url map - const regex_to_url = []; - for (let i in data) { - if(data[i]['nodename_pattern']) { - let item = {regex: new RegExp(data[i].nodename_pattern), url: data[i].files[0]}; - regex_to_url.push(item); - } - } - - // build name->url map - const name_to_urls = {}; - for (const url in mappings) { - const names = mappings[url]; - - for(const name in names[0]) { - let v = name_to_urls[names[0][name]]; - if(v == undefined) { - v = []; - name_to_urls[names[0][name]] = v; - } - v.push(url); - } - } - - const registered_nodes = new Set(); - for (let i in LiteGraph.registered_node_types) { - registered_nodes.add(LiteGraph.registered_node_types[i].type); - } - - const missing_nodes = new Set(); - const workflow = app.graph.serialize(); - const group_nodes = workflow.extra && workflow.extra.groupNodes ? workflow.extra.groupNodes : []; - let nodes = workflow.nodes; - - for (let i in group_nodes) { - let group_node = group_nodes[i]; - nodes = nodes.concat(group_node.nodes); - } - - for (let i in nodes) { - const node_type = nodes[i].type; - if(node_type.startsWith('workflow/')) - continue; - - if (!registered_nodes.has(node_type)) { - const urls = name_to_urls[node_type.trim()]; - if(urls) - urls.forEach(url => { - missing_nodes.add(url); - }); - else { - for(let j in regex_to_url) { - if(regex_to_url[j].regex.test(node_type)) { - missing_nodes.add(regex_to_url[j].url); - } - } - } - } - } - - let unresolved_nodes = await getUnresolvedNodesInComponent(); - for (let i in unresolved_nodes) { - let node_type = unresolved_nodes[i]; - const url = name_to_urls[node_type]; - if(url) - missing_nodes.add(url); - } - - return data.filter(node => node.files.some(file => missing_nodes.has(file))); - } - - async invalidateControl() { - this.clear(); - - // splash - while (this.element.children.length) { - this.element.removeChild(this.element.children[0]); - } - - const msg = $el('div', {id:'custom-message'}, - [$el('br'), - 'The custom node DB is currently being updated, and updates to custom nodes are being checked for.', - $el('br'), - 'NOTE: Update only checks for extensions that have been fetched.', - $el('br')]); - msg.style.height = '100px'; - msg.style.verticalAlign = 'middle'; - msg.style.color = "var(--fg-color)"; - - this.element.appendChild(msg); - - // invalidate - let data = await getCustomNodes(); - this.data = data.custom_nodes; - this.channel = data.channel; - - this.conflict_mappings = await getConflictMappings(); - - if(this.show_mode == CustomNodesInstaller.ShowMode.MISSING_NODES) - this.data = await this.filter_missing_node(this.data); - - this.element.removeChild(msg); - - while (this.element.children.length) { - this.element.removeChild(this.element.children[0]); - } - - this.createHeaderControls(); - await this.createGrid(); - this.apply_searchbox(this.data); - this.createBottomControls(); - } - - updateMessage(msg, btn_id) { - this.message_box.innerHTML = msg; - if(btn_id) { - const rebootButton = document.getElementById(btn_id); - const self = this; - rebootButton.addEventListener("click", - function() { - if(rebootAPI()) { - self.close(); - self.manager_dialog.close(); - } - }); - console.log(rebootButton); - } - } - - invalidate_checks(is_checked, install_state) { - if(is_checked) { - for(let i in this.grid_rows) { - let data = this.grid_rows[i].data; - let checkbox = this.grid_rows[i].checkbox; - let buttons = this.grid_rows[i].buttons; - - checkbox.disabled = data.installed != install_state; - - if(checkbox.disabled) { - for(let j in buttons) { - buttons[j].style.display = 'none'; - } - } - else { - for(let j in buttons) { - buttons[j].style.display = null; - } - } - } - - this.checkbox_all.disabled = false; - } - else { - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - if(checkbox.check) - return; // do nothing - } - - // every checkbox is unchecked -> enable all checkbox - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - let buttons = this.grid_rows[i].buttons; - checkbox.disabled = false; - - for(let j in buttons) { - buttons[j].style.display = null; - } - } - - this.checkbox_all.checked = false; - this.checkbox_all.disabled = true; - } - } - - check_all(is_checked) { - if(is_checked) { - // lookup first checked item's state - let check_state = null; - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - if(checkbox.checked) { - check_state = this.grid_rows[i].data.installed; - } - } - - if(check_state == null) - return; - - // check only same state items - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - if(this.grid_rows[i].data.installed == check_state) - checkbox.checked = true; - } - } - else { - // uncheck all - for(let i in this.grid_rows) { - let checkbox = this.grid_rows[i].checkbox; - let buttons = this.grid_rows[i].buttons; - checkbox.checked = false; - checkbox.disabled = false; - - for(let j in buttons) { - buttons[j].style.display = null; - } - } - - this.checkbox_all.disabled = true; - } - } - - sortData(property, ascending = true) { - this.data.sort((a, b) => { - // Check if either value is -1 and handle accordingly - if (a[property] === -1) return 1; // Always put a at the end if its value is -1 - if (b[property] === -1) return -1; // Always put b at the end if its value is -1 - // And be careful here, (-1<'2024-01-01') and (-1>'2024-01-01') are both false! So I handle -1 seperately. - if (a[property] < b[property]) return ascending ? -1 : 1; - if (a[property] > b[property]) return ascending ? 1 : -1; - return 0; - }); - } - - resetHeaderStyles() { - const headers = ['th_author', 'th_title', 'th_stars', 'th_last_update']; // Add the IDs of all your sortable headers here - headers.forEach(headerId => { - const header = this.element.querySelector(`#${headerId}`); - if (header) { - header.style.backgroundColor = ''; // Reset to default background color - // Add other style resets if necessary - } - }); - } - - toggleSort(property) { - // If currently sorted by this property, toggle the direction; else, sort ascending - if (this.currentSortProperty === property) { - this.currentSortAscending = !this.currentSortAscending; - } else { - this.currentSortAscending = false; - } - this.currentSortProperty = property; - - this.resetHeaderStyles(); // Reset styles of all sortable headers - - // Determine the ID of the header based on the property - let headerId = ''; - if (property === 'stars') { - headerId = 'th_stars'; - } else if (property === 'last_update') { - headerId = 'th_last_update'; - } else if (property === 'author') { - headerId = 'th_author'; - } else if (property === 'title') { - headerId = 'th_title'; - } - - // If we have a valid headerId, change its style to indicate it's the active sort column - if (headerId) { - const activeHeader = this.element.querySelector(`#${headerId}`); - if (activeHeader) { - activeHeader.style.backgroundColor = '#222'; - // Slightly brighter. Add other style changes if necessary. - } - } - - // Call sortData with the current property and direction - this.sortData(property, this.currentSortAscending); - - // Refresh the grid to display sorted data - this.createGrid(); - this.apply_searchbox(this.data); - } - - async createGrid() { - // Remove existing table if present - var grid = this.element.querySelector('#custom-nodes-grid'); - var panel; - let self = this; - if (grid) { - grid.querySelector('tbody').remove(); - panel = grid.parentNode; - } else { - grid = document.createElement('table'); - grid.setAttribute('id', 'custom-nodes-grid'); - - this.grid_rows = {}; - - var thead = document.createElement('thead'); - - var headerRow = document.createElement('tr'); - thead.style.position = "sticky"; - thead.style.top = "0px"; - thead.style.borderCollapse = "collapse"; - thead.style.tableLayout = "fixed"; - - var header0 = document.createElement('th'); - header0.style.width = "20px"; - this.checkbox_all = $el("input",{type:'checkbox', id:'check_all'},[]); - header0.appendChild(this.checkbox_all); - this.checkbox_all.checked = false; - this.checkbox_all.disabled = true; - this.checkbox_all.addEventListener('change', function() { self.check_all.call(self, self.checkbox_all.checked); }); - - var header1 = document.createElement('th'); - header1.innerHTML = '  ID  '; - header1.style.width = "20px"; - - var header2 = document.createElement('th'); - header2.innerHTML = 'Author'; - header2.style.width = "150px"; - header2.style.cursor = 'pointer'; - header2.setAttribute('id', 'th_author'); - header2.onclick = () => this.toggleSort('author'); - - var header3 = document.createElement('th'); - header3.innerHTML = 'Name'; - header3.style.width = "20%"; - header3.style.cursor = 'pointer'; - header3.setAttribute('id', 'th_title'); - header3.onclick = () => this.toggleSort('title'); - - var header4 = document.createElement('th'); - header4.innerHTML = 'Description'; - header4.style.width = "60%"; - // header4.classList.add('expandable-column'); - - var header5 = document.createElement('th'); - header5.innerHTML = '   ★   '; - header5.style.width = "130px"; - header5.setAttribute('id', 'th_stars'); - header5.style.cursor = 'pointer'; - header5.onclick = () => this.toggleSort('stars'); - - var header6 = document.createElement('th'); - header6.innerHTML = 'Last Update'; - header6.style.width = "130px"; - header6.setAttribute('id', 'th_last_update'); - header6.style.cursor = 'pointer'; - header6.onclick = () => this.toggleSort('last_update'); - - var header7 = document.createElement('th'); - header7.innerHTML = 'Install'; - header7.style.width = "130px"; - - header0.style.position = "sticky"; - header0.style.top = "0px"; - header1.style.position = "sticky"; - header1.style.top = "0px"; - header2.style.position = "sticky"; - header2.style.top = "0px"; - header3.style.position = "sticky"; - header3.style.top = "0px"; - header4.style.position = "sticky"; - header4.style.top = "0px"; - header5.style.position = "sticky"; - header5.style.top = "0px"; - header6.style.position = "sticky"; - header6.style.top = "0px"; - header7.style.position = "sticky"; - header7.style.top = "0px"; - - thead.appendChild(headerRow); - headerRow.appendChild(header0); - headerRow.appendChild(header1); - headerRow.appendChild(header2); - headerRow.appendChild(header3); - headerRow.appendChild(header4); - headerRow.appendChild(header5); - headerRow.appendChild(header6); - headerRow.appendChild(header7); - - headerRow.style.backgroundColor = "Black"; - headerRow.style.color = "White"; - headerRow.style.textAlign = "center"; - headerRow.style.width = "100%"; - headerRow.style.padding = "0"; - - grid.appendChild(thead); - - panel = document.createElement('div'); - panel.style.width = "100%"; - panel.appendChild(grid); - this.element.appendChild(panel); - } - var tbody = document.createElement('tbody'); - grid.appendChild(tbody); - - if(this.data) - for (var i = 0; i < this.data.length; i++) { - const data = this.data[i]; - let dataRow = document.createElement('tr'); - - let data0 = document.createElement('td'); - let checkbox = $el("input",{type:'checkbox', id:`check_${i}`},[]); - data0.appendChild(checkbox); - checkbox.checked = false; - checkbox.addEventListener('change', function() { self.invalidate_checks.call(self, checkbox.checked, data.installed); }); - - var data1 = document.createElement('td'); - data1.style.textAlign = "center"; - data1.innerHTML = i+1; - - var data2 = document.createElement('td'); - data2.style.maxWidth = "100px"; - data2.className = "cm-node-author" - data2.textContent = ` ${data.author}`; - data2.style.whiteSpace = "nowrap"; - data2.style.overflow = "hidden"; - data2.style.textOverflow = "ellipsis"; - - var data3 = document.createElement('td'); - data3.style.maxWidth = "200px"; - data3.style.wordWrap = "break-word"; - data3.className = "cm-node-name" - data3.innerHTML = ` ${data.title}`; - if(data.installed == 'Fail') - data3.innerHTML = ' (IMPORT FAILED)' + data3.innerHTML; - - var data4 = document.createElement('td'); - data4.innerHTML = data.description; - data4.className = "cm-node-desc" - - let conflicts = this.conflict_mappings[data.files[0]]; - if(conflicts) { - let buf = '

Conflicted Nodes:
'; - for(let k in conflicts) { - let node_name = conflicts[k][0]; - - let extension_name = conflicts[k][1].split('/').pop(); - if(extension_name.endsWith('/')) { - extension_name = extension_name.slice(0, -1); - } - if(node_name.endsWith('.git')) { - extension_name = extension_name.slice(0, -4); - } - - buf += `${node_name} [${extension_name}], `; - } - - if(buf.endsWith(', ')) { - buf = buf.slice(0, -2); - } - buf += "

"; - data4.innerHTML += buf; - } - - var data5 = document.createElement('td'); - data5.style.maxWidth = "100px"; - data5.className = "cm-node-stars" - if(data.stars < 0) { - data5.textContent = 'N/A'; - } - else { - data5.textContent = `${data.stars}`; - } - data5.style.whiteSpace = "nowrap"; - data5.style.overflow = "hidden"; - data5.style.textOverflow = "ellipsis"; - data5.style.textAlign = "center"; - - var lastUpdateDate = new Date(); - var data6 = document.createElement('td'); - data6.style.maxWidth = "100px"; - data6.className = "cm-node-last-update"; - if(data.last_update < 0) { - data6.textContent = 'N/A'; - } - else { - data6.textContent = `${data.last_update}`.split(' ')[0]; - } - data6.style.whiteSpace = "nowrap"; - data6.style.overflow = "hidden"; - data6.style.textOverflow = "ellipsis"; - data6.style.textAlign = "center"; - - var data7 = document.createElement('td'); - data7.style.textAlign = "center"; - - var installBtn = document.createElement('button'); - installBtn.className = "cm-btn-install"; - var installBtn2 = null; - var installBtn3 = null; - var installBtn4 = null; - - this.install_buttons.push(installBtn); - - switch(data.installed) { - case 'Disabled': - installBtn3 = document.createElement('button'); - installBtn3.innerHTML = 'Enable'; - installBtn3.className = "cm-btn-enable"; - installBtn3.style.backgroundColor = 'blue'; - installBtn3.style.color = 'white'; - this.install_buttons.push(installBtn3); - - installBtn.innerHTML = 'Uninstall'; - installBtn.style.backgroundColor = 'red'; - break; - - case 'Update': - installBtn2 = document.createElement('button'); - installBtn2.innerHTML = 'Update'; - installBtn2.className = "cm-btn-update"; - installBtn2.style.backgroundColor = 'blue'; - installBtn2.style.color = 'white'; - this.install_buttons.push(installBtn2); - - installBtn3 = document.createElement('button'); - installBtn3.innerHTML = 'Disable'; - installBtn3.className = "cm-btn-disable"; - installBtn3.style.backgroundColor = 'MediumSlateBlue'; - installBtn3.style.color = 'white'; - this.install_buttons.push(installBtn3); - - installBtn.innerHTML = 'Uninstall'; - installBtn.style.backgroundColor = 'red'; - break; - - case 'Fail': - installBtn4 = document.createElement('button'); - installBtn4.innerHTML = 'Try fix'; - installBtn4.className = "cm-btn-disable"; - installBtn4.style.backgroundColor = '#6495ED'; - installBtn4.style.color = 'white'; - this.install_buttons.push(installBtn4); - - case 'True': - if(manager_instance.update_check_checkbox.checked) { - installBtn2 = document.createElement('button'); - installBtn2.innerHTML = 'Try update'; - installBtn2.className = "cm-btn-update"; - installBtn2.style.backgroundColor = 'Gray'; - installBtn2.style.color = 'white'; - this.install_buttons.push(installBtn2); - } - - installBtn3 = document.createElement('button'); - installBtn3.innerHTML = 'Disable'; - installBtn3.className = "cm-btn-disable"; - installBtn3.style.backgroundColor = 'MediumSlateBlue'; - installBtn3.style.color = 'white'; - this.install_buttons.push(installBtn3); - - installBtn.innerHTML = 'Uninstall'; - installBtn.style.backgroundColor = 'red'; - break; - case 'False': - installBtn.innerHTML = 'Install'; - installBtn.style.backgroundColor = 'black'; - installBtn.style.color = 'white'; - break; - - default: - installBtn.innerHTML = `Try Install`; - installBtn.style.backgroundColor = 'Gray'; - installBtn.style.color = 'white'; - } - - let j = i; - if(installBtn2 != null) { - installBtn2.style.width = "120px"; - installBtn2.addEventListener('click', function() { - install_checked_custom_node(self.grid_rows, j, CustomNodesInstaller.instance, 'update'); - }); - - data7.appendChild(installBtn2); - } - - if(installBtn3 != null) { - installBtn3.style.width = "120px"; - installBtn3.addEventListener('click', function() { - install_checked_custom_node(self.grid_rows, j, CustomNodesInstaller.instance, 'toggle_active'); - }); - - data7.appendChild(installBtn3); - } - - if(installBtn4 != null) { - installBtn4.style.width = "120px"; - installBtn4.addEventListener('click', function() { - install_checked_custom_node(self.grid_rows, j, CustomNodesInstaller.instance, 'fix'); - }); - - data7.appendChild(installBtn4); - } - - installBtn.style.width = "120px"; - installBtn.addEventListener('click', function() { - if(this.innerHTML == 'Uninstall') { - if (confirm(`Are you sure uninstall ${data.title}?`)) { - install_checked_custom_node(self.grid_rows, j, CustomNodesInstaller.instance, 'uninstall'); - } - } - else { - install_checked_custom_node(self.grid_rows, j, CustomNodesInstaller.instance, 'install'); - } - }); - - if(!data.author.startsWith('#NOTICE')){ - data7.appendChild(installBtn); - } - - if(data.installed == 'Fail' || data.author.startsWith('#NOTICE')) - dataRow.style.backgroundColor = "#880000"; - else - dataRow.style.backgroundColor = "var(--bg-color)"; - dataRow.style.color = "var(--fg-color)"; - dataRow.style.textAlign = "left"; - - dataRow.appendChild(data0); - dataRow.appendChild(data1); - dataRow.appendChild(data2); - dataRow.appendChild(data3); - dataRow.appendChild(data4); - dataRow.appendChild(data5); - dataRow.appendChild(data6); - dataRow.appendChild(data7); - tbody.appendChild(dataRow); - - let buttons = []; - if(installBtn) { - buttons.push(installBtn); - } - if(installBtn2) { - buttons.push(installBtn2); - } - if(installBtn3) { - buttons.push(installBtn3); - } - - this.grid_rows[i] = {data:data, buttons:buttons, checkbox:checkbox, control:dataRow}; - } - - function handleResize() { - const parentHeight = self.element.clientHeight; - const gridHeight = parentHeight - 200; - - grid.style.height = gridHeight + "px"; - } - window.addEventListener("resize", handleResize); - - grid.style.position = "relative"; - grid.style.display = "inline-block"; - grid.style.width = "100%"; - grid.style.height = "100%"; - grid.style.overflowY = "scroll"; - this.element.style.height = "85%"; - this.element.style.width = "80%"; - - handleResize(); - } - - createFilterCombo() { - let combo = document.createElement("select"); - - combo.style.cssFloat = "left"; - combo.style.fontSize = "14px"; - combo.style.padding = "4px"; - combo.style.background = "black"; - combo.style.marginLeft = "2px"; - combo.style.width = "199px"; - combo.id = `combo-manger-filter`; - combo.style.borderRadius = "15px"; - - let items = - [ - { value:'*', text:'Filter: all' }, - { value:'Disabled', text:'Filter: disabled' }, - { value:'Update', text:'Filter: update' }, - { value:'True', text:'Filter: installed' }, - { value:'False', text:'Filter: not-installed' }, - { value:'Fail', text:'Filter: import failed' }, - ]; - - items.forEach(item => { - const option = document.createElement("option"); - option.value = item.value; - option.text = item.text; - combo.appendChild(option); - }); - - if(this.show_mode == CustomNodesInstaller.ShowMode.UPDATE) { - this.filter = 'Update'; - } - else if(this.show_mode == CustomNodesInstaller.ShowMode.MISSING_NODES) { - this.filter = '*'; - } - - let self = this; - combo.addEventListener('change', function(event) { - self.filter = event.target.value; - self.apply_searchbox(); - }); - - if(self.filter) { - combo.value = self.filter; - } - - return combo; - } - - createHeaderControls() { - let self = this; - this.search_box = $el('input.cm-search-filter', {type:'text', id:'manager-customnode-search-box', placeholder:'input search keyword', value:this.search_keyword}, []); - this.search_box.style.height = "25px"; - this.search_box.onkeydown = (event) => { - if (event.key === 'Enter') { - self.search_keyword = self.search_box.value; - self.apply_searchbox(); - } - if (event.key === 'Escape') { - self.search_keyword = self.search_box.value; - self.apply_searchbox(); - } - }; - - - let search_button = document.createElement("button"); - search_button.className = "cm-small-button"; - search_button.innerHTML = "Search"; - search_button.onclick = () => { - self.search_keyword = self.search_box.value; - self.apply_searchbox(); - }; - search_button.style.display = "inline-block"; - - let filter_control = this.createFilterCombo(); - filter_control.style.display = "inline-block"; - - let channel_badge = ''; - if(this.channel != 'default') { - channel_badge = $el('span', {id:'cm-channel-badge'}, [`Channel: ${this.channel} (Incomplete list)`]); - } - else { - - } - let cell = $el('td', {width:'100%'}, [filter_control, channel_badge, this.search_box, ' ', search_button]); - let search_control = $el('table', {width:'100%'}, - [ - $el('tr', {}, [cell]) - ] - ); - - cell.style.textAlign = "right"; - - this.element.appendChild(search_control); - } - - async createBottomControls() { - var close_button = document.createElement("button"); - close_button.className = "cm-small-button"; - close_button.innerHTML = "Close"; - close_button.onclick = () => { this.close(); } - close_button.style.display = "inline-block"; - - this.message_box = $el('div', {id:'custom-installer-message'}, [$el('br'), '']); - this.message_box.style.height = '60px'; - this.message_box.style.verticalAlign = 'middle'; - - this.element.appendChild(this.message_box); - this.element.appendChild(close_button); - } - - async show(show_mode) { - this.show_mode = show_mode; - - if(this.show_mode != CustomNodesInstaller.ShowMode.NORMAL) { - this.search_keyword = ''; - } - - try { - this.invalidateControl(); - - this.element.style.display = "block"; - this.element.style.zIndex = 10001; - } - catch(exception) { - app.ui.dialog.show(`Failed to get custom node list. / ${exception}`); - } - } -} \ No newline at end of file diff --git a/js/custom-nodes-manager.css b/js/custom-nodes-manager.css new file mode 100644 index 00000000..00e1e4c1 --- /dev/null +++ b/js/custom-nodes-manager.css @@ -0,0 +1,699 @@ +.cn-manager { + --grid-font: -apple-system, BlinkMacSystemFont, "Segue UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + z-index: 1099; + width: 80%; + height: 80%; + display: flex; + flex-direction: column; + gap: 10px; + color: var(--fg-color); + font-family: arial, sans-serif; + text-underline-offset: 3px; + outline: none; +} + +.cn-manager .cn-flex-auto { + flex: auto; +} + +.cn-manager button { + font-size: 16px; + color: var(--input-text); + background-color: var(--comfy-input-bg); + border-radius: 8px; + border-color: var(--border-color); + border-style: solid; + margin: 0; + padding: 4px 8px; + min-width: 100px; +} + +.cn-manager button:disabled, +.cn-manager input:disabled, +.cn-manager select:disabled { + color: gray; +} + +.cn-manager button:disabled { + background-color: var(--comfy-input-bg); +} + +.cn-manager .cn-manager-restart { + display: none; + background-color: #500000; + color: white; +} + +.cn-manager .cn-manager-stop { + display: none; + background-color: #500000; + color: white; +} + +.cn-manager .cn-manager-back { + align-items: center; + justify-content: center; +} + +.arrow-icon { + height: 1em; + width: 1em; + margin-right: 5px; + transform: translateY(2px); +} + +.cn-icon { + display: block; + width: 16px; + height: 16px; +} + +.cn-icon svg { + display: block; + margin: 0; + pointer-events: none; +} + +.cn-manager-header { + display: flex; + flex-wrap: wrap; + gap: 5px; + align-items: center; + padding: 0 5px; +} + +.cn-manager-header label { + display: flex; + gap: 5px; + align-items: center; +} + +.cn-manager-filter { + height: 28px; + line-height: 28px; +} + +.cn-manager-keywords { + height: 28px; + line-height: 28px; + padding: 0 5px 0 26px; + background-size: 16px; + background-position: 5px center; + background-repeat: no-repeat; + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20pointer-events%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23888%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22m21%2021-4.486-4.494M19%2010.5a8.5%208.5%200%201%201-17%200%208.5%208.5%200%200%201%2017%200%22%2F%3E%3C%2Fsvg%3E"); +} + +.cn-manager-status { + padding-left: 10px; +} + +.cn-manager-grid { + flex: auto; + border: 1px solid var(--border-color); + overflow: hidden; + position: relative; +} + +.cn-manager-selection { + display: flex; + flex-wrap: wrap; + gap: 10px; + align-items: center; +} + +.cn-manager-message { + position: relative; +} + +.cn-manager-footer { + display: flex; + flex-wrap: wrap; + gap: 10px; + align-items: center; +} + +.cn-manager-grid .tg-turbogrid { + font-family: var(--grid-font); + font-size: 15px; + background: var(--bg-color); +} + +.cn-manager-grid .tg-turbogrid .tg-highlight::after { + position: absolute; + top: 0; + left: 0; + content: ""; + display: block; + width: 100%; + height: 100%; + box-sizing: border-box; + background-color: #80bdff11; + pointer-events: none; +} + +.cn-manager-grid .cn-pack-name a { + color: skyblue; + text-decoration: none; + word-break: break-word; +} + +.cn-manager-grid .cn-pack-desc a { + color: #5555FF; + font-weight: bold; + text-decoration: none; +} + +.cn-manager-grid .tg-cell a:hover { + text-decoration: underline; +} + +.cn-manager-grid .cn-pack-version { + line-height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + height: 100%; + gap: 5px; +} + +.cn-manager-grid .cn-pack-nodes { + line-height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + gap: 5px; + cursor: pointer; + height: 100%; +} + +.cn-manager-grid .cn-pack-nodes:hover { + text-decoration: underline; +} + +.cn-manager-grid .cn-pack-conflicts { + color: orange; +} + +.cn-popover { + position: fixed; + z-index: 10000; + padding: 20px; + color: #1e1e1e; + filter: drop-shadow(1px 5px 5px rgb(0 0 0 / 30%)); + overflow: hidden; +} + +.cn-flyover { + position: absolute; + top: 0; + right: 0; + z-index: 1000; + display: none; + width: 50%; + height: 100%; + background-color: var(--comfy-menu-bg); + animation-duration: 0.2s; + animation-fill-mode: both; + flex-direction: column; +} + +.cn-flyover::before { + position: absolute; + top: 0; + content: ""; + z-index: 10; + display: block; + width: 10px; + height: 100%; + pointer-events: none; + left: -10px; + background-image: linear-gradient(to left, rgb(0 0 0 / 20%), rgb(0 0 0 / 0%)); +} + +.cn-flyover-header { + height: 45px; + display: flex; + align-items: center; + gap: 5px; + border-bottom: 1px solid var(--border-color); +} + +.cn-flyover-close { + display: flex; + align-items: center; + padding: 0 10px; + justify-content: center; + cursor: pointer; + opacity: 0.8; + height: 100%; +} + +.cn-flyover-close:hover { + opacity: 1; +} + +.cn-flyover-close svg { + display: block; + margin: 0; + pointer-events: none; + width: 20px; + height: 20px; +} + +.cn-flyover-title { + display: flex; + align-items: center; + font-weight: bold; + gap: 10px; + flex: auto; +} + +.cn-flyover-body { + height: calc(100% - 45px); + overflow-y: auto; + position: relative; + background-color: var(--comfy-menu-secondary-bg); +} + +@keyframes cn-slide-in-right { + from { + visibility: visible; + transform: translate3d(100%, 0, 0); + } + + to { + transform: translate3d(0, 0, 0); + } +} + +.cn-slide-in-right { + animation-name: cn-slide-in-right; +} + +@keyframes cn-slide-out-right { + from { + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + transform: translate3d(100%, 0, 0); + } +} + +.cn-slide-out-right { + animation-name: cn-slide-out-right; +} + +.cn-nodes-list { + width: 100%; +} + +.cn-nodes-row { + display: flex; + align-items: center; + gap: 10px; +} + +.cn-nodes-row:nth-child(odd) { + background-color: rgb(0 0 0 / 5%); +} + +.cn-nodes-row:hover { + background-color: rgb(0 0 0 / 10%); +} + +.cn-nodes-sn { + text-align: right; + min-width: 35px; + color: var(--drag-text); + flex-shrink: 0; + font-size: 12px; + padding: 8px 5px; +} + +.cn-nodes-name { + cursor: pointer; + white-space: nowrap; + flex-shrink: 0; + position: relative; + padding: 8px 5px; +} + +.cn-nodes-name::after { + content: attr(action); + position: absolute; + pointer-events: none; + top: 50%; + left: 100%; + transform: translate(5px, -50%); + font-size: 12px; + color: var(--drag-text); + background-color: var(--comfy-input-bg); + border-radius: 10px; + border: 1px solid var(--border-color); + padding: 3px 8px; + display: none; +} + +.cn-nodes-name.action::after { + display: block; +} + +.cn-nodes-name:hover { + text-decoration: underline; +} + +.cn-nodes-conflict .cn-nodes-name, +.cn-nodes-conflict .cn-icon { + color: orange; +} + +.cn-conflicts-list { + display: flex; + flex-wrap: wrap; + gap: 5px; + align-items: center; + padding: 5px 0; +} + +.cn-conflicts-list b { + font-weight: normal; + color: var(--descrip-text); +} + +.cn-nodes-pack { + cursor: pointer; + color: skyblue; +} + +.cn-nodes-pack:hover { + text-decoration: underline; +} + +.cn-pack-badge { + font-size: 12px; + font-weight: normal; + background-color: var(--comfy-input-bg); + border-radius: 10px; + border: 1px solid var(--border-color); + padding: 3px 8px; + color: var(--error-text); +} + +.cn-preview { + min-width: 300px; + max-width: 500px; + min-height: 120px; + overflow: hidden; + font-size: 12px; + pointer-events: none; + padding: 12px; + color: var(--fg-color); +} + +.cn-preview-header { + display: flex; + gap: 8px; + align-items: center; + border-bottom: 1px solid var(--comfy-input-bg); + padding: 5px 10px; +} + +.cn-preview-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background-color: grey; + position: relative; + filter: drop-shadow(1px 2px 3px rgb(0 0 0 / 30%)); +} + +.cn-preview-dot.cn-preview-optional::after { + content: ""; + position: absolute; + pointer-events: none; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background-color: var(--comfy-input-bg); + border-radius: 50%; + width: 3px; + height: 3px; +} + +.cn-preview-dot.cn-preview-grid { + border-radius: 0; +} + +.cn-preview-dot.cn-preview-grid::before { + content: ''; + position: absolute; + border-left: 1px solid var(--comfy-input-bg); + border-right: 1px solid var(--comfy-input-bg); + width: 4px; + height: 100%; + left: 2px; + top: 0; + z-index: 1; +} + +.cn-preview-dot.cn-preview-grid::after { + content: ''; + position: absolute; + border-top: 1px solid var(--comfy-input-bg); + border-bottom: 1px solid var(--comfy-input-bg); + width: 100%; + height: 4px; + left: 0; + top: 2px; + z-index: 1; +} + +.cn-preview-name { + flex: auto; + font-size: 14px; +} + +.cn-preview-io { + display: flex; + justify-content: space-between; + padding: 10px 10px; +} + +.cn-preview-column > div { + display: flex; + gap: 10px; + align-items: center; + height: 18px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.cn-preview-input { + justify-content: flex-start; +} + +.cn-preview-output { + justify-content: flex-end; +} + +.cn-preview-list { + display: flex; + flex-direction: column; + gap: 3px; + padding: 0 10px 10px 10px; +} + +.cn-preview-switch { + position: relative; + display: flex; + justify-content: space-between; + align-items: center; + background: var(--bg-color); + border: 2px solid var(--border-color); + border-radius: 10px; + text-wrap: nowrap; + padding: 2px 20px; + gap: 10px; +} + +.cn-preview-switch::before, +.cn-preview-switch::after { + position: absolute; + pointer-events: none; + top: 50%; + transform: translate(0, -50%); + color: var(--fg-color); + opacity: 0.8; +} + +.cn-preview-switch::before { + content: "◀"; + left: 5px; +} + +.cn-preview-switch::after { + content: "▶"; + right: 5px; +} + +.cn-preview-value { + color: var(--descrip-text); +} + +.cn-preview-string { + min-height: 30px; + max-height: 300px; + background: var(--bg-color); + color: var(--descrip-text); + border-radius: 3px; + padding: 3px 5px; + overflow-y: auto; + overflow-x: hidden; +} + +.cn-preview-description { + margin: 0px 10px 10px 10px; + padding: 6px; + background: var(--border-color); + color: var(--descrip-text); + border-radius: 5px; + font-style: italic; + word-break: break-word; +} + +.cn-tag-list { + display: flex; + flex-wrap: wrap; + gap: 5px; + align-items: center; + margin-bottom: 5px; +} + +.cn-tag-list > div { + background-color: var(--border-color); + border-radius: 5px; + padding: 0 5px; +} + +.cn-install-buttons { + display: flex; + flex-direction: column; + gap: 3px; + padding: 3px; + align-items: center; + justify-content: center; + height: 100%; +} + +.cn-selected-buttons { + display: flex; + gap: 5px; + align-items: center; + padding-right: 20px; +} + +.cn-manager .cn-btn-enable { + background-color: #333399; + color: white; +} + +.cn-manager .cn-btn-disable { + background-color: #442277; + color: white; +} + +.cn-manager .cn-btn-update { + background-color: #1155AA; + color: white; +} + +.cn-manager .cn-btn-try-update { + background-color: Gray; + color: white; +} + +.cn-manager .cn-btn-try-fix { + background-color: #6495ED; + color: white; +} + +.cn-manager .cn-btn-import-failed { + background-color: #AA1111; + font-size: 10px; + font-weight: bold; + color: white; +} + +.cn-manager .cn-btn-install { + background-color: black; + color: white; +} + +.cn-manager .cn-btn-try-install { + background-color: Gray; + color: white; +} + +.cn-manager .cn-btn-uninstall { + background-color: #993333; + color: white; +} + +.cn-manager .cn-btn-reinstall { + background-color: #993333; + color: white; +} + +.cn-manager .cn-btn-switch { + background-color: #448833; + color: white; + +} + +@keyframes cn-btn-loading-bg { + 0% { + left: 0; + } + 100% { + left: -105px; + } +} + +.cn-manager button.cn-btn-loading { + position: relative; + overflow: hidden; + border-color: rgb(0 119 207 / 80%); + background-color: var(--comfy-input-bg); +} + +.cn-manager button.cn-btn-loading::after { + position: absolute; + top: 0; + left: 0; + content: ""; + width: 500px; + height: 100%; + background-image: repeating-linear-gradient( + -45deg, + rgb(0 119 207 / 30%), + rgb(0 119 207 / 30%) 10px, + transparent 10px, + transparent 15px + ); + animation: cn-btn-loading-bg 2s linear infinite; +} + +.cn-manager-light .cn-pack-name a { + color: blue; +} + +.cn-manager-light .cm-warn-note { + background-color: #ccc !important; +} + +.cn-manager-light .cn-btn-install { + background-color: #333; +} \ No newline at end of file diff --git a/js/custom-nodes-manager.js b/js/custom-nodes-manager.js new file mode 100644 index 00000000..a5683a2d --- /dev/null +++ b/js/custom-nodes-manager.js @@ -0,0 +1,2193 @@ +import { app } from "../../scripts/app.js"; +import { ComfyDialog, $el } from "../../scripts/ui.js"; +import { api } from "../../scripts/api.js"; + +import { + manager_instance, rebootAPI, install_via_git_url, + fetchData, md5, icons, show_message, customConfirm, customAlert, customPrompt, + sanitizeHTML, infoToast, showTerminal, setNeedRestart, + storeColumnWidth, restoreColumnWidth, getTimeAgo, copyText, loadCss, + showPopover, hidePopover +} from "./common.js"; + +// https://cenfun.github.io/turbogrid/api.html +import TG from "./turbogrid.esm.js"; + +loadCss("./custom-nodes-manager.css"); + +const gridId = "node"; + +const pageHtml = ` +
+ + +
+
+
+
+
+
+
+ +`; + +const ShowMode = { + NORMAL: "Normal", + UPDATE: "Update", + MISSING: "Missing", + FAVORITES: "Favorites", + ALTERNATIVES: "Alternatives", + IN_WORKFLOW: "In Workflow", +}; + +export class CustomNodesManager { + static instance = null; + static ShowMode = ShowMode; + + constructor(app, manager_dialog) { + this.app = app; + this.manager_dialog = manager_dialog; + this.id = "cn-manager"; + + app.registerExtension({ + name: "Comfy.CustomNodesManager", + afterConfigureGraph: (missingNodeTypes) => { + const item = this.getFilterItem(ShowMode.MISSING); + if (item) { + item.hasData = false; + item.hashMap = null; + } + } + }); + + this.filter = ''; + this.keywords = ''; + this.restartMap = {}; + + this.init(); + + api.addEventListener("cm-queue-status", this.onQueueStatus); + api.getNodeDefs().then(objs => { + this.nodeMap = objs; + }) + } + + init() { + this.element = $el("div", { + parent: document.body, + className: "comfy-modal cn-manager" + }); + this.element.innerHTML = pageHtml; + this.element.setAttribute("tabindex", 0); + this.element.focus(); + + this.initFilter(); + this.bindEvents(); + this.initGrid(); + } + + showVersionSelectorDialog(versions, onSelect) { + const dialog = new ComfyDialog(); + dialog.element.style.zIndex = 1100; + dialog.element.style.width = "300px"; + dialog.element.style.padding = "0"; + dialog.element.style.backgroundColor = "#2a2a2a"; + dialog.element.style.border = "1px solid #3a3a3a"; + dialog.element.style.borderRadius = "8px"; + dialog.element.style.boxSizing = "border-box"; + dialog.element.style.overflow = "hidden"; + + const contentStyle = { + width: "300px", + display: "flex", + flexDirection: "column", + alignItems: "center", + padding: "20px", + boxSizing: "border-box", + gap: "15px" + }; + + let selectedVersion = versions[0]; + + const versionList = $el("select", { + multiple: true, + size: Math.min(10, versions.length), + style: { + width: "260px", + height: "auto", + backgroundColor: "#383838", + color: "#ffffff", + border: "1px solid #4a4a4a", + borderRadius: "4px", + padding: "5px", + boxSizing: "border-box" + } + }, + versions.map((v, index) => $el("option", { + value: v, + textContent: v, + selected: index === 0 + })) + ); + + versionList.addEventListener('change', (e) => { + selectedVersion = e.target.value; + Array.from(e.target.options).forEach(opt => { + opt.selected = opt.value === selectedVersion; + }); + }); + + const content = $el("div", { + style: contentStyle + }, [ + $el("h3", { + textContent: "Select Version", + style: { + color: "#ffffff", + backgroundColor: "#1a1a1a", + padding: "10px 15px", + margin: "0 0 10px 0", + width: "260px", + textAlign: "center", + borderRadius: "4px", + boxSizing: "border-box", + whiteSpace: "nowrap", + overflow: "hidden", + textOverflow: "ellipsis" + } + }), + versionList, + $el("div", { + style: { + display: "flex", + justifyContent: "space-between", + width: "260px", + gap: "10px" + } + }, [ + $el("button", { + textContent: "Cancel", + onclick: () => dialog.close(), + style: { + flex: "1", + padding: "8px", + backgroundColor: "#4a4a4a", + color: "#ffffff", + border: "none", + borderRadius: "4px", + cursor: "pointer", + whiteSpace: "nowrap", + overflow: "hidden", + textOverflow: "ellipsis" + } + }), + $el("button", { + textContent: "Select", + onclick: () => { + if (selectedVersion) { + onSelect(selectedVersion); + dialog.close(); + } else { + customAlert("Please select a version."); + } + }, + style: { + flex: "1", + padding: "8px", + backgroundColor: "#4CAF50", + color: "#ffffff", + border: "none", + borderRadius: "4px", + cursor: "pointer", + whiteSpace: "nowrap", + overflow: "hidden", + textOverflow: "ellipsis" + } + }), + ]) + ]); + + dialog.show(content); + } + + initFilter() { + const $filter = this.element.querySelector(".cn-manager-filter"); + const filterList = [{ + label: "All", + value: "", + hasData: true + }, { + label: "Installed", + value: "installed", + hasData: true + }, { + label: "Enabled", + value: "enabled", + hasData: true + }, { + label: "Disabled", + value: "disabled", + hasData: true + }, { + label: "Import Failed", + value: "import-fail", + hasData: true + }, { + label: "Not Installed", + value: "not-installed", + hasData: true + }, { + label: "ComfyRegistry", + value: "cnr", + hasData: true + }, { + label: "Non-ComfyRegistry", + value: "unknown", + hasData: true + }, { + label: "Update", + value: ShowMode.UPDATE, + hasData: false + }, { + label: "In Workflow", + value: ShowMode.IN_WORKFLOW, + hasData: false + }, { + label: "Missing", + value: ShowMode.MISSING, + hasData: false + }, { + label: "Favorites", + value: ShowMode.FAVORITES, + hasData: false + }, { + label: "Alternatives of A1111", + value: ShowMode.ALTERNATIVES, + hasData: false + }]; + this.filterList = filterList; + $filter.innerHTML = filterList.map(item => { + return `` + }).join(""); + } + + getFilterItem(filter) { + return this.filterList.find(it => it.value === filter) + } + + getActionButtons(action, rowItem, is_selected_button) { + const buttons = { + "enable": { + label: "Enable", + mode: "enable" + }, + "disable": { + label: "Disable", + mode: "disable" + }, + + "update": { + label: "Update", + mode: "update" + }, + "try-update": { + label: "Try update", + mode: "update" + }, + + "try-fix": { + label: "Try fix", + mode: "fix" + }, + + "reinstall": { + label: "Reinstall", + mode: "reinstall" + }, + + "install": { + label: "Install", + mode: "install" + }, + + "try-install": { + label: "Try install", + mode: "install" + }, + + "uninstall": { + label: "Uninstall", + mode: "uninstall" + }, + + "switch": { + label: "Switch Ver", + mode: "switch" + } + } + + const installGroups = { + "disabled": ["enable", "switch", "uninstall"], + "updatable": ["update", "switch", "disable", "uninstall"], + "import-fail": ["try-fix", "switch", "disable", "uninstall"], + "enabled": ["try-update", "switch", "disable", "uninstall"], + "not-installed": ["install"], + 'unknown': ["try-install"], + "invalid-installation": ["reinstall"], + } + + if (!installGroups.updatable) { + installGroups.enabled = installGroups.enabled.filter(it => it !== "try-update"); + } + + if (rowItem?.title === "ComfyUI-Manager") { + installGroups.enabled = installGroups.enabled.filter(it => it !== "disable" && it !== "uninstall" && it !== "switch"); + } + + let list = installGroups[action]; + + if(is_selected_button || rowItem?.version === "unknown") { + list = list.filter(it => it !== "switch"); + } + + if (!list) { + return ""; + } + + return list.map(id => { + const bt = buttons[id]; + return ``; + }).join(""); + } + + getButton(target) { + if(!target) { + return; + } + const mode = target.getAttribute("mode"); + if (!mode) { + return; + } + const group = target.getAttribute("group"); + if (!group) { + return; + } + return { + group, + mode, + target, + label: target.innerText + } + } + + bindEvents() { + const eventsMap = { + ".cn-manager-filter": { + change: (e) => { + + if (this.grid) { + this.grid.selectAll(false); + } + + const value = e.target.value + this.filter = value; + const item = this.getFilterItem(value); + if (item && (!item.hasData)) { + this.loadData(value); + return; + } + this.updateGrid(); + } + }, + + ".cn-manager-keywords": { + input: (e) => { + const keywords = `${e.target.value}`.trim(); + if (keywords !== this.keywords) { + this.keywords = keywords; + this.updateGrid(); + } + }, + focus: (e) => e.target.select() + }, + + ".cn-manager-selection": { + click: (e) => { + const btn = this.getButton(e.target); + if (btn) { + const nodes = this.selectedMap[btn.group]; + if (nodes) { + this.installNodes(nodes, btn); + } + } + } + }, + + ".cn-manager-back": { + click: (e) => { + this.flyover.hide(true); + this.removeHighlight(); + hidePopover(); + this.close() + manager_instance.show(); + } + }, + + ".cn-manager-restart": { + click: () => { + this.close(); + this.manager_dialog.close(); + rebootAPI(); + } + }, + + ".cn-manager-stop": { + click: () => { + api.fetchApi('/manager/queue/reset'); + infoToast('Cancel', 'Remaining tasks will stop after completing the current task.'); + } + }, + + ".cn-manager-used-in-workflow": { + click: (e) => { + e.target.classList.add("cn-btn-loading"); + this.setFilter(ShowMode.IN_WORKFLOW); + this.loadData(ShowMode.IN_WORKFLOW); + } + }, + + ".cn-manager-check-update": { + click: (e) => { + e.target.classList.add("cn-btn-loading"); + this.setFilter(ShowMode.UPDATE); + this.loadData(ShowMode.UPDATE); + } + }, + + ".cn-manager-check-missing": { + click: (e) => { + e.target.classList.add("cn-btn-loading"); + this.setFilter(ShowMode.MISSING); + this.loadData(ShowMode.MISSING); + } + }, + + ".cn-manager-install-url": { + click: async (e) => { + const url = await customPrompt("Please enter the URL of the Git repository to install", ""); + if (url !== null) { + install_via_git_url(url, this.manager_dialog); + } + } + } + }; + Object.keys(eventsMap).forEach(selector => { + const target = this.element.querySelector(selector); + if (target) { + const events = eventsMap[selector]; + if (events) { + Object.keys(events).forEach(type => { + target.addEventListener(type, events[type]); + }); + } + } + }); + + } + + // =========================================================================================== + + initGrid() { + const container = this.element.querySelector(".cn-manager-grid"); + const grid = new TG.Grid(container); + this.grid = grid; + + this.flyover = this.createFlyover(container); + + let prevViewRowsLength = -1; + grid.bind('onUpdated', (e, d) => { + const viewRows = grid.viewRows; + prevViewRowsLength = viewRows.length; + this.showStatus(`${prevViewRowsLength.toLocaleString()} custom nodes`); + }); + + grid.bind('onSelectChanged', (e, changes) => { + this.renderSelected(); + }); + + grid.bind("onColumnWidthChanged", (e, columnItem) => { + storeColumnWidth(gridId, columnItem) + }); + + grid.bind('onClick', (e, d) => { + + this.addHighlight(d.rowItem); + + if (d.columnItem.id === "nodes") { + this.showNodes(d); + return; + } + + const btn = this.getButton(d.e.target); + if (btn) { + const item = this.grid.getRowItemBy("hash", d.rowItem.hash); + + const { target, label, mode} = btn; + if((mode === "install" || mode === "switch" || mode == "enable") && item.originalData.version != 'unknown') { + // install after select version via dialog if item is cnr node + this.installNodeWithVersion(d.rowItem, btn, mode == 'enable'); + } else { + this.installNodes([d.rowItem.hash], btn, d.rowItem.title); + } + return; + } + + }); + + // iteration events + this.element.addEventListener("click", (e) => { + if (container === e.target || container.contains(e.target)) { + return; + } + this.removeHighlight(); + }); + // proxy keyboard events + this.element.addEventListener("keydown", (e) => { + if (e.target === this.element) { + grid.containerKeyDownHandler(e); + } + }, true); + + + grid.setOption({ + theme: 'dark', + selectVisible: true, + selectMultiple: true, + selectAllVisible: true, + + textSelectable: true, + scrollbarRound: true, + + frozenColumn: 1, + rowNotFound: "No Results", + + rowHeight: 40, + bindWindowResize: true, + bindContainerResize: true, + + cellResizeObserver: (rowItem, columnItem) => { + const autoHeightColumns = ['title', 'action', 'description', "alternatives"]; + return autoHeightColumns.includes(columnItem.id) + }, + + // updateGrid handler for filter and keywords + rowFilter: (rowItem) => { + + const searchableColumns = ["title", "author", "description"]; + if (this.hasAlternatives()) { + searchableColumns.push("alternatives"); + } + + let shouldShown = grid.highlightKeywordsFilter(rowItem, searchableColumns, this.keywords); + + if (shouldShown) { + if(this.filter && rowItem.filterTypes) { + shouldShown = rowItem.filterTypes.includes(this.filter); + } + } + + return shouldShown; + } + }); + + } + + hasAlternatives() { + return this.filter === ShowMode.ALTERNATIVES + } + + async handleImportFail(rowItem) { + var info; + if(rowItem.version == 'unknown'){ + info = { + 'url': rowItem.originalData.files[0] + }; + } + else{ + info = { + 'cnr_id': rowItem.originalData.id + }; + } + + const response = await api.fetchApi(`/customnode/import_fail_info`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(info) + }); + + let res = await response.json(); + + let title = `Error message occurred while importing the '${rowItem.title}' module.


` + + if(res.code == 400) + { + show_message(title+'The information is not available.') + } + else { + show_message(title+sanitizeHTML(res['msg']).replace(/ /g, ' ').replace(/\n/g, '
')); + } + } + + renderGrid() { + + // update theme + const globalStyle = window.getComputedStyle(document.body); + this.colorVars = { + bgColor: globalStyle.getPropertyValue('--comfy-menu-bg'), + borderColor: globalStyle.getPropertyValue('--border-color') + } + + const colorPalette = this.app.ui.settings.settingsValues['Comfy.ColorPalette']; + this.colorPalette = colorPalette; + Array.from(this.element.classList).forEach(cn => { + if (cn.startsWith("cn-manager-")) { + this.element.classList.remove(cn); + } + }); + this.element.classList.add(`cn-manager-${colorPalette}`); + + const options = { + theme: colorPalette === "light" ? "" : "dark" + }; + + + let self = this; + const columns = [{ + id: 'id', + name: 'ID', + width: 50, + align: 'center' + }, { + id: 'title', + name: 'Title', + width: 200, + minWidth: 100, + maxWidth: 500, + classMap: 'cn-pack-name', + formatter: (title, rowItem, columnItem) => { + const container = document.createElement('div'); + + if (rowItem.action === 'invalid-installation') { + const invalidTag = document.createElement('span'); + invalidTag.style.color = 'red'; + invalidTag.innerHTML = '(INVALID)'; + container.appendChild(invalidTag); + } else if (rowItem.action === 'import-fail') { + const button = document.createElement('button'); + button.className = 'cn-btn-import-failed'; + button.innerText = 'IMPORT FAILED ↗'; + button.onclick = () => self.handleImportFail(rowItem); + container.appendChild(button); + container.appendChild(document.createElement('br')); + } + + const link = document.createElement('a'); + if(rowItem.originalData.repository) + link.href = rowItem.originalData.repository; + else + link.href = rowItem.reference; + link.target = '_blank'; + link.innerHTML = `${title}`; + link.title = rowItem.originalData.id; + container.appendChild(link); + + return container; + } + }, { + id: 'version', + name: 'Version', + width: 100, + minWidth: 80, + maxWidth: 300, + classMap: 'cn-pack-version', + formatter: (version, rowItem, columnItem) => { + if(!version) { + return; + } + if(rowItem.cnr_latest && version != rowItem.cnr_latest) { + if(version == 'nightly') { + return `
${version}
[${rowItem.cnr_latest}]
`; + } + return `
${version}
[↑${rowItem.cnr_latest}]
`; + } + return version; + } + }, { + id: 'action', + name: 'Action', + width: 130, + minWidth: 110, + maxWidth: 200, + sortable: false, + align: 'center', + formatter: (action, rowItem, columnItem) => { + if (rowItem.restart) { + return `Restart Required`; + } + const buttons = this.getActionButtons(action, rowItem); + return `
${buttons}
`; + } + }, { + id: "nodes", + name: "Nodes", + width: 100, + formatter: (v, rowItem, columnItem) => { + if (!rowItem.nodes) { + return ''; + } + const list = [`
`]; + list.push(`
${rowItem.nodes} node${(rowItem.nodes>1?'s':'')}
`); + if (rowItem.conflicts) { + list.push(`
${rowItem.conflicts} conflict${(rowItem.conflicts>1?'s':'')}
`); + } + list.push('
'); + return list.join(""); + } + }, { + id: "alternatives", + name: "Alternatives", + width: 400, + maxWidth: 5000, + invisible: !this.hasAlternatives(), + classMap: 'cn-pack-desc' + }, { + id: 'description', + name: 'Description', + width: 400, + maxWidth: 5000, + classMap: 'cn-pack-desc' + }, { + id: 'author', + name: 'Author', + width: 120, + classMap: "cn-pack-author", + formatter: (author, rowItem, columnItem) => { + if (rowItem.trust) { + return `✅ ${author}`; + } + return author; + } + }, { + id: 'stars', + name: '★', + align: 'center', + classMap: "cn-pack-stars", + formatter: (stars) => { + if (stars < 0) { + return 'N/A'; + } + if (typeof stars === 'number') { + return stars.toLocaleString(); + } + return stars; + } + }, { + id: 'last_update', + name: 'Last Update', + align: 'center', + type: 'date', + width: 100, + classMap: "cn-pack-last-update", + formatter: (last_update) => { + if (last_update < 0) { + return 'N/A'; + } + const ago = getTimeAgo(last_update); + const short = `${last_update}`.split(' ')[0]; + return `${short}`; + } + }]; + + restoreColumnWidth(gridId, columns); + + const rows_values = Object.values(this.custom_nodes); + rows_values.sort((a, b) => { + if (a.version == 'unknown' && b.version != 'unknown') return 1; + if (a.version != 'unknown' && b.version == 'unknown') return -1; + + if (a.stars !== b.stars) { + return b.stars - a.stars; + } + + if (a.last_update !== b.last_update) { + return new Date(b.last_update) - new Date(a.last_update); + } + + return 0; + }); + + rows_values.forEach((it, i) => { + it.id = i + 1; + }); + + this.grid.setData({ + options: options, + rows: rows_values, + columns: columns + }); + + this.grid.render(); + } + + updateGrid() { + if (this.grid) { + this.grid.update(); + if (this.hasAlternatives()) { + this.grid.showColumn("alternatives"); + } else { + this.grid.hideColumn("alternatives"); + } + } + } + + addHighlight(rowItem) { + this.removeHighlight(); + if (this.grid && rowItem) { + this.grid.setRowState(rowItem, 'highlight', true); + this.highlightRow = rowItem; + } + } + + removeHighlight() { + if (this.grid && this.highlightRow) { + this.grid.setRowState(this.highlightRow, 'highlight', false); + this.highlightRow = null; + } + } + + // =========================================================================================== + + getWidgetType(type, inputName) { + if (type === 'COMBO') { + return 'COMBO' + } + const widgets = app.widgets; + if (`${type}:${inputName}` in widgets) { + return `${type}:${inputName}` + } + if (type in widgets) { + return type + } + } + + createNodePreview(nodeItem) { + // console.log(nodeItem); + const list = [`
+
+
${nodeItem.name}
+
Preview
+
`]; + + // Node slot I/O + const inputList = []; + nodeItem.input_order.required?.map(name => { + inputList.push({ + name + }); + }) + nodeItem.input_order.optional?.map(name => { + inputList.push({ + name, + optional: true + }); + }); + + const slotInputList = []; + const widgetInputList = []; + const inputMap = Object.assign({}, nodeItem.input.optional, nodeItem.input.required); + inputList.forEach(it => { + const inputName = it.name; + const _inputData = inputMap[inputName]; + let type = _inputData[0]; + let options = _inputData[1] || {}; + if (Array.isArray(type)) { + options.default = type[0]; + type = 'COMBO'; + } + it.type = type; + it.options = options; + + // convert force/default inputs + if (options.forceInput || options.defaultInput) { + slotInputList.push(it); + return; + } + + const widgetType = this.getWidgetType(type, inputName); + if (widgetType) { + it.default = options.default; + widgetInputList.push(it); + } else { + slotInputList.push(it); + } + }); + + const outputList = nodeItem.output.map((type, i) => { + return { + type, + name: nodeItem.output_name[i], + list: nodeItem.output_is_list[i] + } + }); + + // dark + const colorMap = { + "CLIP": "#FFD500", + "CLIP_VISION": "#A8DADC", + "CLIP_VISION_OUTPUT": "#ad7452", + "CONDITIONING": "#FFA931", + "CONTROL_NET": "#6EE7B7", + "IMAGE": "#64B5F6", + "LATENT": "#FF9CF9", + "MASK": "#81C784", + "MODEL": "#B39DDB", + "STYLE_MODEL": "#C2FFAE", + "VAE": "#FF6E6E", + "NOISE": "#B0B0B0", + "GUIDER": "#66FFFF", + "SAMPLER": "#ECB4B4", + "SIGMAS": "#CDFFCD", + "TAESD": "#DCC274" + } + + const inputHtml = slotInputList.map(it => { + const color = colorMap[it.type] || "gray"; + const optional = it.optional ? " cn-preview-optional" : "" + return `
+
+ ${it.name} +
`; + }).join(""); + + const outputHtml = outputList.map(it => { + const color = colorMap[it.type] || "gray"; + const grid = it.list ? " cn-preview-grid" : ""; + return `
+ ${it.name} +
+
`; + }).join(""); + + list.push(`
+
${inputHtml}
+
${outputHtml}
+
`); + + // Node widget inputs + if (widgetInputList.length) { + list.push(`
`); + + // console.log(widgetInputList); + widgetInputList.forEach(it => { + + let value = it.default; + if (typeof value === "object" && value && Object.prototype.hasOwnProperty.call(value, "content")) { + value = value.content; + } + if (typeof value === "undefined" || value === null) { + value = ""; + } else { + value = `${value}`; + } + + if ( + (it.type === "STRING" && (value || it.options.multiline)) + || it.type === "MARKDOWN" + ) { + if (value) { + value = value.replace(/\r?\n/g, "
") + } + list.push(`
${value || it.name}
`); + return; + } + + list.push(`
+
${it.name}
+
${value}
+
`); + }); + list.push(`
`); + } + + if (nodeItem.description) { + list.push(`
${nodeItem.description}
`) + } + + return list.join(""); + } + + showNodePreview(target) { + const nodeName = target.innerText; + const nodeItem = this.nodeMap[nodeName]; + if (!nodeItem) { + this.hideNodePreview(); + return; + } + const html = this.createNodePreview(nodeItem); + showPopover(target, html, "cn-preview cn-preview-"+this.colorPalette, { + positions: ['left'], + bgColor: this.colorVars.bgColor, + borderColor: this.colorVars.borderColor + }) + } + + hideNodePreview() { + hidePopover(); + } + + createFlyover(container) { + const $flyover = document.createElement("div"); + $flyover.className = "cn-flyover"; + $flyover.innerHTML = `
+
${icons.arrowRight}
+
+
${icons.close}
+
+
` + container.appendChild($flyover); + + const $flyoverTitle = $flyover.querySelector(".cn-flyover-title"); + const $flyoverBody = $flyover.querySelector(".cn-flyover-body"); + + let width = '50%'; + let visible = false; + + let timeHide; + const closeHandler = (e) => { + if ($flyover === e.target || $flyover.contains(e.target)) { + return; + } + clearTimeout(timeHide); + timeHide = setTimeout(() => { + flyover.hide(); + }, 100); + } + + const hoverHandler = (e) => { + if(e.type === "mouseenter") { + if(e.target.classList.contains("cn-nodes-name")) { + this.showNodePreview(e.target); + } + return; + } + this.hideNodePreview(); + } + + const displayHandler = () => { + if (visible) { + $flyover.classList.remove("cn-slide-in-right"); + } else { + $flyover.classList.remove("cn-slide-out-right"); + $flyover.style.width = '0px'; + $flyover.style.display = "none"; + } + } + + const flyover = { + show: (titleHtml, bodyHtml) => { + clearTimeout(timeHide); + this.element.removeEventListener("click", closeHandler); + $flyoverTitle.innerHTML = titleHtml; + $flyoverBody.innerHTML = bodyHtml; + $flyover.style.display = "block"; + $flyover.style.width = width; + if(!visible) { + $flyover.classList.add("cn-slide-in-right"); + } + visible = true; + setTimeout(() => { + this.element.addEventListener("click", closeHandler); + }, 100); + }, + hide: (now) => { + visible = false; + this.element.removeEventListener("click", closeHandler); + if(now) { + displayHandler(); + return; + } + $flyover.classList.add("cn-slide-out-right"); + } + } + + $flyover.addEventListener("animationend", (e) => { + displayHandler(); + }); + + $flyover.addEventListener("mouseenter", hoverHandler, true); + $flyover.addEventListener("mouseleave", hoverHandler, true); + + $flyover.addEventListener("click", (e) => { + + if(e.target.classList.contains("cn-nodes-name")) { + const nodeName = e.target.innerText; + const nodeItem = this.nodeMap[nodeName]; + if (!nodeItem) { + copyText(nodeName).then((res) => { + if (res) { + e.target.setAttribute("action", "Copied"); + e.target.classList.add("action"); + setTimeout(() => { + e.target.classList.remove("action"); + e.target.removeAttribute("action"); + }, 1000); + } + }); + return; + } + + const [x, y, w, h] = app.canvas.ds.visible_area; + const dpi = Math.max(window.devicePixelRatio ?? 1, 1); + const node = window.LiteGraph?.createNode( + nodeItem.name, + nodeItem.display_name, + { + pos: [x + (w-300) / dpi / 2, y] + } + ); + if (node) { + app.graph.add(node); + e.target.setAttribute("action", "Added to Workflow"); + e.target.classList.add("action"); + setTimeout(() => { + e.target.classList.remove("action"); + e.target.removeAttribute("action"); + }, 1000); + } + + return; + } + if(e.target.classList.contains("cn-nodes-pack")) { + const hash = e.target.getAttribute("hash"); + const rowItem = this.grid.getRowItemBy("hash", hash); + //console.log(rowItem); + this.grid.scrollToRow(rowItem); + this.addHighlight(rowItem); + return; + } + if(e.target.classList.contains("cn-flyover-close")) { + flyover.hide(); + return; + } + }); + + return flyover; + } + + showNodes(d) { + const nodesList = d.rowItem.nodesList; + if (!nodesList) { + return; + } + + const rowItem = d.rowItem; + const isNotInstalled = rowItem.action == "not-installed"; + + let titleHtml = `
${rowItem.title}
`; + if (isNotInstalled) { + titleHtml += '
Not Installed
' + } + + const list = []; + list.push(`
`); + + nodesList.forEach((it, i) => { + let rowClass = 'cn-nodes-row' + if (it.conflicts) { + rowClass += ' cn-nodes-conflict'; + } + + list.push(`
`); + list.push(`
${i+1}
`); + list.push(`
${it.name}
`); + + if (it.conflicts) { + list.push(`
${icons.conflicts}
Conflict with${it.conflicts.map(c => { + return `
${c.title}
`; + }).join(",")}
`); + } + list.push(`
`); + }); + + list.push("
"); + const bodyHtml = list.join(""); + + this.flyover.show(titleHtml, bodyHtml); + } + + async loadNodes(node_packs) { + const mode = manager_instance.datasrc_combo.value; + this.showStatus(`Loading node mappings (${mode}) ...`); + const res = await fetchData(`/customnode/getmappings?mode=${mode}`); + if (res.error) { + console.log(res.error); + return; + } + + const data = res.data; + + const findNode = (k, title) => { + let item = node_packs[k]; + if (item) { + return item; + } + + // git url + if (k.includes("/")) { + const gitName = k.split("/").pop(); + item = node_packs[gitName]; + if (item) { + return item; + } + } + + return node_packs[title]; + } + + const conflictsMap = {}; + + // add nodes data + Object.keys(data).forEach(k => { + const [nodes, metadata] = data[k]; + if (nodes?.length) { + const title = metadata?.title_aux; + const nodeItem = findNode(k, title); + if (nodeItem) { + + // deduped + const eList = Array.from(new Set(nodes)); + + nodeItem.nodes = eList.length; + const nodesMap = {}; + eList.forEach(extName => { + nodesMap[extName] = { + name: extName + }; + let cList = conflictsMap[extName]; + if(!cList) { + cList = []; + conflictsMap[extName] = cList; + } + cList.push(nodeItem.key); + }); + nodeItem.nodesMap = nodesMap; + } else { + // should be removed + // console.log("not found", k, title, nodes) + } + } + }); + + // calculate conflicts data + Object.keys(conflictsMap).forEach(extName => { + const cList = conflictsMap[extName]; + if(cList.length <= 1) { + return; + } + cList.forEach(key => { + const nodeItem = node_packs[key]; + const extItem = nodeItem.nodesMap[extName]; + if(!extItem.conflicts) { + extItem.conflicts = [] + } + const conflictsList = cList.filter(k => k !== key); + conflictsList.forEach(k => { + const nItem = node_packs[k]; + extItem.conflicts.push({ + key: k, + title: nItem.title, + hash: nItem.hash + }) + + }) + }) + }) + + Object.values(node_packs).forEach(nodeItem => { + if (nodeItem.nodesMap) { + nodeItem.nodesList = Object.values(nodeItem.nodesMap); + nodeItem.conflicts = nodeItem.nodesList.filter(it => it.conflicts).length; + } + }) + + } + + // =========================================================================================== + + renderSelected() { + const selectedList = this.grid.getSelectedRows(); + if (!selectedList.length) { + this.showSelection(""); + return; + } + + const selectedMap = {}; + selectedList.forEach(item => { + let type = item.action; + if (item.restart) { + type = "Restart Required"; + } + if (selectedMap[type]) { + selectedMap[type].push(item.hash); + } else { + selectedMap[type] = [item.hash]; + } + }); + + this.selectedMap = selectedMap; + + const list = []; + Object.keys(selectedMap).forEach(v => { + const filterItem = this.getFilterItem(v); + list.push(`
+ Selected ${selectedMap[v].length} ${filterItem ? filterItem.label : v} + ${this.grid.hasMask ? "" : this.getActionButtons(v, null, true)} +
`); + }); + + this.showSelection(list.join("")); + } + + focusInstall(item, mode) { + const cellNode = this.grid.getCellNode(item, "action"); + if (cellNode) { + const cellBtn = cellNode.querySelector(`button[mode="${mode}"]`); + if (cellBtn) { + cellBtn.classList.add("cn-btn-loading"); + return true + } + } + } + + async installNodeWithVersion(rowItem, btn, is_enable) { + let hash = rowItem.hash; + let title = rowItem.title; + + const item = this.grid.getRowItemBy("hash", hash); + + let node_id = item.originalData.id; + + this.showLoading(); + let res; + if(is_enable) { + res = await api.fetchApi(`/customnode/disabled_versions/${node_id}`, { cache: "no-store" }); + } + else { + res = await api.fetchApi(`/customnode/versions/${node_id}`, { cache: "no-store" }); + } + this.hideLoading(); + + if(res.status == 200) { + let obj = await res.json(); + + let versions = []; + let default_version; + let version_cnt = 0; + + if(!is_enable) { + + if(rowItem.cnr_latest != rowItem.originalData.active_version && obj.length > 0) { + versions.push('latest'); + } + + if(rowItem.originalData.active_version != 'nightly') { + versions.push('nightly'); + default_version = 'nightly'; + version_cnt++; + } + } + + for(let v of obj) { + if(rowItem.originalData.active_version != v.version) { + default_version = v.version; + versions.push(v.version); + version_cnt++; + } + } + + this.showVersionSelectorDialog(versions, (selected_version) => { + this.installNodes([hash], btn, title, selected_version); + }); + } + else { + show_message('Failed to fetch versions from ComfyRegistry.'); + } + } + + async installNodes(list, btn, title, selected_version) { + let stats = await api.fetchApi('/manager/queue/status'); + stats = await stats.json(); + if(stats.is_processing) { + customAlert(`[ComfyUI-Manager] There are already tasks in progress. Please try again after it is completed. (${stats.done_count}/${stats.total_count})`); + return; + } + + const { target, label, mode} = btn; + + if(mode === "uninstall") { + title = title || `${list.length} custom nodes`; + + const confirmed = await customConfirm(`Are you sure uninstall ${title}?`); + if (!confirmed) { + return; + } + } + + if(mode === "reinstall") { + title = title || `${list.length} custom nodes`; + + const confirmed = await customConfirm(`Are you sure reinstall ${title}?`); + if (!confirmed) { + return; + } + } + + target.classList.add("cn-btn-loading"); + this.showError(""); + + let needRestart = false; + let errorMsg = ""; + + await api.fetchApi('/manager/queue/reset'); + + let target_items = []; + + for (const hash of list) { + const item = this.grid.getRowItemBy("hash", hash); + target_items.push(item); + + if (!item) { + errorMsg = `Not found custom node: ${hash}`; + break; + } + + this.grid.scrollRowIntoView(item); + + if (!this.focusInstall(item, mode)) { + this.grid.onNextUpdated(() => { + this.focusInstall(item, mode); + }); + } + + this.showStatus(`${label} ${item.title} ...`); + + const data = item.originalData; + data.selected_version = selected_version; + data.channel = this.channel; + data.mode = this.mode; + data.ui_id = hash; + + let install_mode = mode; + if(mode == 'switch') { + install_mode = 'install'; + } + + // don't post install if install_mode == 'enable' + data.skip_post_install = install_mode == 'enable'; + let api_mode = install_mode; + if(install_mode == 'enable') { + api_mode = 'install'; + } + + if(install_mode == 'reinstall') { + api_mode = 'reinstall'; + } + + const res = await api.fetchApi(`/manager/queue/${api_mode}`, { + method: 'POST', + body: JSON.stringify(data) + }); + + if (res.status != 200) { + errorMsg = `'${item.title}': `; + + if(res.status == 403) { + errorMsg += `This action is not allowed with this security level configuration.\n`; + } else if(res.status == 404) { + errorMsg += `With the current security level configuration, only custom nodes from the "default channel" can be installed.\n`; + } else { + errorMsg += await res.text() + '\n'; + } + + break; + } + } + + this.install_context = {btn: btn, targets: target_items}; + + if(errorMsg) { + this.showError(errorMsg); + show_message("[Installation Errors]\n"+errorMsg); + + // reset + for(let k in target_items) { + const item = target_items[k]; + this.grid.updateCell(item, "action"); + } + } + else { + await api.fetchApi('/manager/queue/start'); + this.showStop(); + showTerminal(); + } + } + + async onQueueStatus(event) { + let self = CustomNodesManager.instance; + if(event.detail.status == 'in_progress' && event.detail.ui_target == 'nodepack_manager') { + const hash = event.detail.target; + + const item = self.grid.getRowItemBy("hash", hash); + + item.restart = true; + self.restartMap[item.hash] = true; + self.grid.updateCell(item, "action"); + self.grid.setRowSelected(item, false); + } + else if(event.detail.status == 'done') { + self.hideStop(); + self.onQueueCompleted(event.detail); + } + } + + async onQueueCompleted(info) { + let result = info.nodepack_result; + + if(result.length == 0) { + return; + } + + let self = CustomNodesManager.instance; + + if(!self.install_context) { + return; + } + + const { target, label, mode } = self.install_context.btn; + target.classList.remove("cn-btn-loading"); + + let errorMsg = ""; + + for(let hash in result){ + let v = result[hash]; + + if(v != 'success' && v != 'skip') + errorMsg += v+'\n'; + } + + for(let k in self.install_context.targets) { + let item = self.install_context.targets[k]; + self.grid.updateCell(item, "action"); + } + + if (errorMsg) { + self.showError(errorMsg); + show_message("Installation Error:\n"+errorMsg); + } else { + self.showStatus(`${label} ${result.length} custom node(s) successfully`); + } + + self.showRestart(); + self.showMessage(`To apply the installed/updated/disabled/enabled custom node, please restart ComfyUI. And refresh browser.`, "red"); + + infoToast(`[ComfyUI-Manager] All node pack tasks in the queue have been completed.\n${info.done_count}/${info.total_count}`); + self.install_context = undefined; + } + + // =========================================================================================== + + getNodesInWorkflow() { + let usedGroupNodes = new Set(); + let allUsedNodes = {}; + const visitedGraphs = new Set(); + + const visitGraph = (graph) => { + if (!graph || visitedGraphs.has(graph)) return; + visitedGraphs.add(graph); + + const nodes = graph._nodes || graph.nodes || []; + for(let k in nodes) { + let node = nodes[k]; + if (!node) continue; + + // If it's a SubgraphNode, recurse into its graph and continue searching + if (node.isSubgraphNode?.() && node.subgraph) { + visitGraph(node.subgraph); + } + + if (!node.type) continue; + + // Group nodes / components + if(typeof node.type === 'string' && node.type.startsWith('workflow>')) { + usedGroupNodes.add(node.type.slice(9)); + continue; + } + + allUsedNodes[node.type] = node; + } + }; + + visitGraph(app.graph); + + for(let k of usedGroupNodes) { + let subnodes = app.graph.extra.groupNodes[k]?.nodes; + + if(subnodes) { + for(let k2 in subnodes) { + let node = subnodes[k2]; + allUsedNodes[node.type] = node; + } + } + } + + return allUsedNodes; + } + + async getMissingNodes() { + let unresolved_missing_nodes = new Set(); + let hashMap = {}; + let allUsedNodes = this.getNodesInWorkflow(); + + const registered_nodes = new Set(); + for (let i in LiteGraph.registered_node_types) { + registered_nodes.add(LiteGraph.registered_node_types[i].type); + } + + let unresolved_aux_ids = {}; + let outdated_comfyui = false; + let unresolved_cnr_list = []; + + for(let k in allUsedNodes) { + let node = allUsedNodes[k]; + + if(!registered_nodes.has(node.type)) { + // missing node + if(node.properties.cnr_id) { + if(node.properties.cnr_id == 'comfy-core') { + outdated_comfyui = true; + } + + let item = this.custom_nodes[node.properties.cnr_id]; + if(item) { + hashMap[item.hash] = true; + } + else { + console.log(`CM: cannot find '${node.properties.cnr_id}' from cnr list.`); + unresolved_aux_ids[node.properties.cnr_id] = node.type; + unresolved_cnr_list.push(node.properties.cnr_id); + } + } + else if(node.properties.aux_id) { + unresolved_aux_ids[node.properties.aux_id] = node.type; + } + else { + unresolved_missing_nodes.add(node.type); + } + } + } + + + if(unresolved_cnr_list.length > 0) { + let error_msg = "Failed to find the following ComfyRegistry list.\nThe cache may be outdated, or the nodes may have been removed from ComfyRegistry.
"; + for(let i in unresolved_cnr_list) { + error_msg += '
  • '+unresolved_cnr_list[i]+'
  • '; + } + + show_message(error_msg); + } + + if(outdated_comfyui) { + customAlert('ComfyUI is outdated, so some built-in nodes cannot be used.'); + } + + if(Object.keys(unresolved_aux_ids).length > 0) { + // building aux_id to nodepack map + let aux_id_to_pack = {}; + for(let k in this.custom_nodes) { + let nodepack = this.custom_nodes[k]; + let aux_id; + if(nodepack.repository?.startsWith('https://github.com')) { + aux_id = nodepack.repository.split('/').slice(-2).join('/'); + aux_id_to_pack[aux_id] = nodepack; + } + else if(nodepack.repository) { + aux_id = nodepack.repository.split('/').slice(-1); + aux_id_to_pack[aux_id] = nodepack; + } + } + + // resolving aux_id + for(let k in unresolved_aux_ids) { + let nodepack = aux_id_to_pack[k]; + if(nodepack) { + hashMap[nodepack.hash] = true; + } + else { + unresolved_missing_nodes.add(unresolved_aux_ids[k]); + } + } + } + + if(unresolved_missing_nodes.size > 0) { + await this.getMissingNodesLegacy(hashMap, unresolved_missing_nodes); + } + + return hashMap; + } + + async getMissingNodesLegacy(hashMap, missing_nodes) { + const mode = manager_instance.datasrc_combo.value; + this.showStatus(`Loading missing nodes (${mode}) ...`); + const res = await fetchData(`/customnode/getmappings?mode=${mode}`); + if (res.error) { + this.showError(`Failed to get custom node mappings: ${res.error}`); + return; + } + + const mappings = res.data; + + // build regex->url map + const regex_to_pack = []; + for(let k in this.custom_nodes) { + let node = this.custom_nodes[k]; + + if(node.nodename_pattern) { + regex_to_pack.push({ + regex: new RegExp(node.nodename_pattern), + url: node.files[0] + }); + } + } + + // build name->url map + const name_to_packs = {}; + for (const url in mappings) { + const names = mappings[url]; + + for(const name in names[0]) { + let v = name_to_packs[names[0][name]]; + if(v == undefined) { + v = []; + name_to_packs[names[0][name]] = v; + } + v.push(url); + } + } + + let unresolved_missing_nodes = new Set(); + for (let node_type of missing_nodes) { + const packs = name_to_packs[node_type.trim()]; + if(packs) + packs.forEach(url => { + unresolved_missing_nodes.add(url); + }); + else { + for(let j in regex_to_pack) { + if(regex_to_pack[j].regex.test(node_type)) { + unresolved_missing_nodes.add(regex_to_pack[j].url); + } + } + } + } + + for(let k in this.custom_nodes) { + let item = this.custom_nodes[k]; + + if(unresolved_missing_nodes.has(item.id)) { + hashMap[item.hash] = true; + } + else if (item.files?.some(file => unresolved_missing_nodes.has(file))) { + hashMap[item.hash] = true; + } + } + + return hashMap; + } + + async getFavorites() { + const hashMap = {}; + for(let k in this.custom_nodes) { + let item = this.custom_nodes[k]; + if(item.is_favorite) + hashMap[item.hash] = true; + } + + return hashMap; + } + + async getNodepackInWorkflow() { + let allUsedNodes = this.getNodesInWorkflow(); + + // building aux_id to nodepack map + let aux_id_to_pack = {}; + for(let k in this.custom_nodes) { + let nodepack = this.custom_nodes[k]; + let aux_id; + if(nodepack.repository?.startsWith('https://github.com')) { + aux_id = nodepack.repository.split('/').slice(-2).join('/'); + aux_id_to_pack[aux_id] = nodepack; + } + else if(nodepack.repository) { + aux_id = nodepack.repository.split('/').slice(-1); + aux_id_to_pack[aux_id] = nodepack; + } + } + + const hashMap = {}; + for(let k in allUsedNodes) { + var item; + if(allUsedNodes[k].properties.cnr_id) { + item = this.custom_nodes[allUsedNodes[k].properties.cnr_id]; + } + else if(allUsedNodes[k].properties.aux_id) { + item = aux_id_to_pack[allUsedNodes[k].properties.aux_id]; + } + + if(item) + hashMap[item.hash] = true; + } + + return hashMap; + } + + async getAlternatives() { + const mode = manager_instance.datasrc_combo.value; + this.showStatus(`Loading alternatives (${mode}) ...`); + const res = await fetchData(`/customnode/alternatives?mode=${mode}`); + if (res.error) { + this.showError(`Failed to get alternatives: ${res.error}`); + return []; + } + + const hashMap = {}; + const items = res.data; + + for(let i in items) { + let item = items[i]; + let custom_node = this.custom_nodes[i]; + + if (!custom_node) { + console.log(`Not found custom node: ${item.id}`); + continue; + } + + const tags = `${item.tags}`.split(",").map(tag => { + return `
    ${tag.trim()}
    `; + }).join(""); + + hashMap[custom_node.hash] = { + alternatives: `
    ${tags}
    ${item.description}` + } + + } + + return hashMap; + } + + async loadData(show_mode = ShowMode.NORMAL) { + const isElectron = 'electronAPI' in window; + + this.show_mode = show_mode; + console.log("Show mode:", show_mode); + + this.showLoading(); + + const mode = manager_instance.datasrc_combo.value; + this.showStatus(`Loading custom nodes (${mode}) ...`); + + const skip_update = this.show_mode === ShowMode.UPDATE ? "" : "&skip_update=true"; + + if(this.show_mode === ShowMode.UPDATE) { + infoToast('Fetching updated information. This may take some time if many custom nodes are installed.'); + } + + const res = await fetchData(`/customnode/getlist?mode=${mode}${skip_update}`); + if (res.error) { + this.showError("Failed to get custom node list."); + this.hideLoading(); + return; + } + + const { channel, node_packs } = res.data; + + if(isElectron) { + delete node_packs['comfyui-manager']; + } + + this.channel = channel; + this.mode = mode; + this.custom_nodes = node_packs; + + if(this.channel !== 'default') { + this.element.querySelector(".cn-manager-channel").innerHTML = `Channel: ${this.channel} (Incomplete list)`; + } + + for (const k in node_packs) { + let item = node_packs[k]; + item.originalData = JSON.parse(JSON.stringify(item)); + if(item.originalData.id == undefined) { + item.originalData.id = k; + } + item.key = k; + item.hash = md5(k); + } + + await this.loadNodes(node_packs); + + const filterItem = this.getFilterItem(this.show_mode); + if(filterItem) { + let hashMap; + if(this.show_mode == ShowMode.UPDATE) { + hashMap = {}; + for (const k in node_packs) { + let it = node_packs[k]; + if (it['update-state'] === "true") { + hashMap[it.hash] = true; + } + } + } else if(this.show_mode == ShowMode.MISSING) { + hashMap = await this.getMissingNodes(); + } else if(this.show_mode == ShowMode.ALTERNATIVES) { + hashMap = await this.getAlternatives(); + } else if(this.show_mode == ShowMode.FAVORITES) { + hashMap = await this.getFavorites(); + } else if(this.show_mode == ShowMode.IN_WORKFLOW) { + hashMap = await this.getNodepackInWorkflow(); + } + filterItem.hashMap = hashMap; + + if(this.show_mode != ShowMode.IN_WORKFLOW) { + filterItem.hasData = true; + } + } + + for(let k in node_packs) { + let nodeItem = node_packs[k]; + + if (this.restartMap[nodeItem.hash]) { + nodeItem.restart = true; + } + + if(nodeItem['update-state'] == "true") { + nodeItem.action = 'updatable'; + } + else if(nodeItem['import-fail']) { + nodeItem.action = 'import-fail'; + } + else { + nodeItem.action = nodeItem.state; + } + + if(nodeItem['invalid-installation']) { + nodeItem.action = 'invalid-installation'; + } + + const filterTypes = new Set(); + this.filterList.forEach(filterItem => { + const { value, hashMap } = filterItem; + if (hashMap) { + const hashData = hashMap[nodeItem.hash] + if (hashData) { + filterTypes.add(value); + if (value === ShowMode.UPDATE) { + nodeItem['update-state'] = "true"; + } + if (value === ShowMode.MISSING) { + nodeItem['missing-node'] = "true"; + } + if (typeof hashData === "object") { + Object.assign(nodeItem, hashData); + } + } + } else { + if (nodeItem.state === value) { + filterTypes.add(value); + } + + switch(nodeItem.state) { + case "enabled": + filterTypes.add("enabled"); + case "disabled": + filterTypes.add("installed"); + break; + case "not-installed": + filterTypes.add("not-installed"); + break; + } + + if(nodeItem.version != 'unknown') { + filterTypes.add("cnr"); + } + else { + filterTypes.add("unknown"); + } + + if(nodeItem['update-state'] == 'true') { + filterTypes.add("updatable"); + } + + if(nodeItem['import-fail']) { + filterTypes.add("import-fail"); + } + + if(nodeItem['invalid-installation']) { + filterTypes.add("invalid-installation"); + } + } + }); + + nodeItem.filterTypes = Array.from(filterTypes); + } + + this.renderGrid(); + + this.hideLoading(); + + } + + // =========================================================================================== + + showSelection(msg) { + this.element.querySelector(".cn-manager-selection").innerHTML = msg; + } + + showError(err) { + this.showMessage(err, "red"); + } + + showMessage(msg, color) { + if (color) { + msg = `${msg}`; + } + this.element.querySelector(".cn-manager-message").innerHTML = msg; + } + + showStatus(msg, color) { + if (color) { + msg = `${msg}`; + } + this.element.querySelector(".cn-manager-status").innerHTML = msg; + } + + showLoading() { + this.setDisabled(true); + if (this.grid) { + this.grid.showLoading(); + this.grid.showMask({ + opacity: 0.05 + }); + } + } + + hideLoading() { + this.setDisabled(false); + if (this.grid) { + this.grid.hideLoading(); + this.grid.hideMask(); + } + } + + setDisabled(disabled) { + const $close = this.element.querySelector(".cn-manager-close"); + const $restart = this.element.querySelector(".cn-manager-restart"); + const $stop = this.element.querySelector(".cn-manager-stop"); + + const list = [ + ".cn-manager-header input", + ".cn-manager-header select", + ".cn-manager-footer button", + ".cn-manager-selection button" + ].map(s => { + return Array.from(this.element.querySelectorAll(s)); + }) + .flat() + .filter(it => { + return it !== $close && it !== $restart && it !== $stop; + }); + + list.forEach($elem => { + if (disabled) { + $elem.setAttribute("disabled", "disabled"); + } else { + $elem.removeAttribute("disabled"); + } + }); + + Array.from(this.element.querySelectorAll(".cn-btn-loading")).forEach($elem => { + $elem.classList.remove("cn-btn-loading"); + }); + + } + + showRestart() { + this.element.querySelector(".cn-manager-restart").style.display = "block"; + setNeedRestart(true); + } + + showStop() { + this.element.querySelector(".cn-manager-stop").style.display = "block"; + } + + hideStop() { + this.element.querySelector(".cn-manager-stop").style.display = "none"; + } + + setFilter(filterValue) { + let filter = ""; + const filterItem = this.getFilterItem(filterValue); + if(filterItem) { + filter = filterItem.value; + } + this.filter = filter; + this.element.querySelector(".cn-manager-filter").value = filter; + } + + setKeywords(keywords = "") { + this.keywords = keywords; + this.element.querySelector(".cn-manager-keywords").value = keywords; + } + + show(show_mode) { + this.element.style.display = "flex"; + this.element.focus(); + this.setFilter(show_mode); + this.setKeywords(""); + this.showSelection(""); + this.showMessage(""); + this.loadData(show_mode); + } + + close() { + this.element.style.display = "none"; + } + + get isVisible() { + return this.element?.style?.display !== "none"; + } +} \ No newline at end of file diff --git a/js/model-downloader.js b/js/model-downloader.js deleted file mode 100644 index 9642bcd1..00000000 --- a/js/model-downloader.js +++ /dev/null @@ -1,389 +0,0 @@ -import { app } from "../../scripts/app.js"; -import { api } from "../../scripts/api.js" -import { ComfyDialog, $el } from "../../scripts/ui.js"; -import { install_checked_custom_node, manager_instance, rebootAPI } from "./common.js"; - -async function install_model(target) { - if(ModelInstaller.instance) { - ModelInstaller.instance.startInstall(target); - - try { - const response = await api.fetchApi('/model/install', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(target) - }); - - const status = await response.json(); - app.ui.dialog.close(); - target.installed = 'True'; - return true; - } - catch(exception) { - app.ui.dialog.show(`Install failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; - return false; - } - finally { - await ModelInstaller.instance.invalidateControl(); - ModelInstaller.instance.updateMessage("
    To apply the installed model, please click the 'Refresh' button on the main menu."); - } - } -} - -async function getModelList() { - var mode = manager_instance.datasrc_combo.value; - - const response = await api.fetchApi(`/externalmodel/getlist?mode=${mode}`); - - const data = await response.json(); - return data; -} - -export class ModelInstaller extends ComfyDialog { - static instance = null; - - install_buttons = []; - message_box = null; - data = null; - - clear() { - this.install_buttons = []; - this.message_box = null; - this.data = null; - } - - constructor(app, manager_dialog) { - super(); - this.manager_dialog = manager_dialog; - this.search_keyword = ''; - this.element = $el("div.comfy-modal", { parent: document.body }, []); - } - - createControls() { - return [ - $el("button.cm-small-button", { - type: "button", - textContent: "Close", - onclick: () => { this.close(); } - }) - ]; - } - - startInstall(target) { - const self = ModelInstaller.instance; - - self.updateMessage(`
    Installing '${target.name}'`); - - for(let i in self.install_buttons) { - self.install_buttons[i].disabled = true; - self.install_buttons[i].style.backgroundColor = 'gray'; - } - } - - apply_searchbox(data) { - let keyword = this.search_box.value.toLowerCase(); - for(let i in this.grid_rows) { - let data = this.grid_rows[i].data; - let content = data.name.toLowerCase() + data.type.toLowerCase() + data.base.toLowerCase() + data.description.toLowerCase(); - - if(this.filter && this.filter != '*') { - if(this.filter != data.installed) { - this.grid_rows[i].control.style.display = 'none'; - continue; - } - } - - if(keyword == "") - this.grid_rows[i].control.style.display = null; - else if(content.includes(keyword)) { - this.grid_rows[i].control.style.display = null; - } - else { - this.grid_rows[i].control.style.display = 'none'; - } - } - } - - async invalidateControl() { - this.clear(); - this.data = (await getModelList()).models; - - while (this.element.children.length) { - this.element.removeChild(this.element.children[0]); - } - - await this.createHeaderControls(); - - if(this.search_keyword) { - this.search_box.value = this.search_keyword; - } - - await this.createGrid(); - await this.createBottomControls(); - - this.apply_searchbox(this.data); - } - - updateMessage(msg, btn_id) { - this.message_box.innerHTML = msg; - if(btn_id) { - const rebootButton = document.getElementById(btn_id); - const self = this; - rebootButton.addEventListener("click", - function() { - if(rebootAPI()) { - self.close(); - self.manager_dialog.close(); - } - }); - } - } - - async createGrid(models_json) { - var grid = document.createElement('table'); - grid.setAttribute('id', 'external-models-grid'); - - var thead = document.createElement('thead'); - var tbody = document.createElement('tbody'); - - var headerRow = document.createElement('tr'); - thead.style.position = "sticky"; - thead.style.top = "0px"; - thead.style.borderCollapse = "collapse"; - thead.style.tableLayout = "fixed"; - - var header1 = document.createElement('th'); - header1.innerHTML = '  ID  '; - header1.style.width = "20px"; - var header2 = document.createElement('th'); - header2.innerHTML = 'Type'; - header2.style.width = "100px"; - var header3 = document.createElement('th'); - header3.innerHTML = 'Base'; - header3.style.width = "100px"; - var header4 = document.createElement('th'); - header4.innerHTML = 'Name'; - header4.style.width = "30%"; - var header5 = document.createElement('th'); - header5.innerHTML = 'Filename'; - header5.style.width = "20%"; - header5.style.tableLayout = "fixed"; - var header6 = document.createElement('th'); - header6.innerHTML = 'Description'; - header6.style.width = "50%"; - var header_down = document.createElement('th'); - header_down.innerHTML = 'Download'; - header_down.style.width = "50px"; - - thead.appendChild(headerRow); - headerRow.appendChild(header1); - headerRow.appendChild(header2); - headerRow.appendChild(header3); - headerRow.appendChild(header4); - headerRow.appendChild(header5); - headerRow.appendChild(header6); - headerRow.appendChild(header_down); - - headerRow.style.backgroundColor = "Black"; - headerRow.style.color = "White"; - headerRow.style.textAlign = "center"; - headerRow.style.width = "100%"; - headerRow.style.padding = "0"; - - grid.appendChild(thead); - grid.appendChild(tbody); - - this.grid_rows = {}; - - if(this.data) - for (var i = 0; i < this.data.length; i++) { - const data = this.data[i]; - var dataRow = document.createElement('tr'); - var data1 = document.createElement('td'); - data1.style.textAlign = "center"; - data1.innerHTML = i+1; - var data2 = document.createElement('td'); - data2.innerHTML = ` ${data.type}`; - var data3 = document.createElement('td'); - data3.innerHTML = ` ${data.base}`; - var data4 = document.createElement('td'); - data4.className = "cm-node-name"; - data4.innerHTML = ` ${data.name}`; - var data5 = document.createElement('td'); - data5.className = "cm-node-filename"; - data5.innerHTML = ` ${data.filename}`; - data5.style.wordBreak = "break-all"; - var data6 = document.createElement('td'); - data6.className = "cm-node-desc"; - data6.innerHTML = data.description; - data6.style.wordBreak = "break-all"; - var data_install = document.createElement('td'); - var installBtn = document.createElement('button'); - data_install.style.textAlign = "center"; - - installBtn.innerHTML = 'Install'; - this.install_buttons.push(installBtn); - - switch(data.installed) { - case 'True': - installBtn.innerHTML = 'Installed'; - installBtn.style.backgroundColor = 'green'; - installBtn.style.color = 'white'; - installBtn.disabled = true; - break; - default: - installBtn.innerHTML = 'Install'; - installBtn.style.backgroundColor = 'black'; - installBtn.style.color = 'white'; - break; - } - - installBtn.style.width = "100px"; - - installBtn.addEventListener('click', function() { - install_model(data); - }); - - data_install.appendChild(installBtn); - - dataRow.style.backgroundColor = "var(--bg-color)"; - dataRow.style.color = "var(--fg-color)"; - dataRow.style.textAlign = "left"; - - dataRow.appendChild(data1); - dataRow.appendChild(data2); - dataRow.appendChild(data3); - dataRow.appendChild(data4); - dataRow.appendChild(data5); - dataRow.appendChild(data6); - dataRow.appendChild(data_install); - tbody.appendChild(dataRow); - - this.grid_rows[i] = {data:data, control:dataRow}; - } - - let self = this; - const panel = document.createElement('div'); - panel.style.width = "100%"; - panel.appendChild(grid); - - function handleResize() { - const parentHeight = self.element.clientHeight; - const gridHeight = parentHeight - 200; - - grid.style.height = gridHeight + "px"; - } - window.addEventListener("resize", handleResize); - - grid.style.position = "relative"; - grid.style.display = "inline-block"; - grid.style.width = "100%"; - grid.style.height = "100%"; - grid.style.overflowY = "scroll"; - this.element.style.height = "85%"; - this.element.style.width = "80%"; - this.element.appendChild(panel); - - handleResize(); - } - - createFilterCombo() { - let combo = document.createElement("select"); - - combo.style.cssFloat = "left"; - combo.style.fontSize = "14px"; - combo.style.padding = "4px"; - combo.style.background = "black"; - combo.style.marginLeft = "2px"; - combo.style.width = "199px"; - combo.id = `combo-manger-filter`; - combo.style.borderRadius = "15px"; - - let items = - [ - { value:'*', text:'Filter: all' }, - { value:'True', text:'Filter: installed' }, - { value:'False', text:'Filter: not-installed' }, - ]; - - items.forEach(item => { - const option = document.createElement("option"); - option.value = item.value; - option.text = item.text; - combo.appendChild(option); - }); - - let self = this; - combo.addEventListener('change', function(event) { - self.filter = event.target.value; - self.apply_searchbox(); - }); - - return combo; - } - - createHeaderControls() { - let self = this; - this.search_box = $el('input.cm-search-filter', {type:'text', id:'manager-model-search-box', placeholder:'input search keyword', value:this.search_keyword}, []); - this.search_box.style.height = "25px"; - this.search_box.onkeydown = (event) => { - if (event.key === 'Enter') { - self.search_keyword = self.search_box.value; - self.apply_searchbox(); - } - if (event.key === 'Escape') { - self.search_keyword = self.search_box.value; - self.apply_searchbox(); - } - }; - - let search_button = document.createElement("button"); - search_button.className = "cm-small-button"; - search_button.innerHTML = "Search"; - search_button.onclick = () => { - self.search_keyword = self.search_box.value; - self.apply_searchbox(); - }; - search_button.style.display = "inline-block"; - - let filter_control = this.createFilterCombo(); - filter_control.style.display = "inline-block"; - - let cell = $el('td', {width:'100%'}, [filter_control, this.search_box, ' ', search_button]); - let search_control = $el('table', {width:'100%'}, - [ - $el('tr', {}, [cell]) - ] - ); - - cell.style.textAlign = "right"; - this.element.appendChild(search_control); - } - - async createBottomControls() { - var close_button = document.createElement("button"); - close_button.className = "cm-small-button"; - close_button.innerHTML = "Close"; - close_button.onclick = () => { this.close(); } - close_button.style.display = "inline-block"; - - this.message_box = $el('div', {id:'custom-download-message'}, [$el('br'), '']); - this.message_box.style.height = '60px'; - this.message_box.style.verticalAlign = 'middle'; - - this.element.appendChild(this.message_box); - this.element.appendChild(close_button); - } - - async show() { - try { - this.invalidateControl(); - this.element.style.display = "block"; - this.element.style.zIndex = 10001; - } - catch(exception) { - app.ui.dialog.show(`Failed to get external model list. / ${exception}`); - } - } -} diff --git a/js/model-manager.css b/js/model-manager.css new file mode 100644 index 00000000..3a34cb2d --- /dev/null +++ b/js/model-manager.css @@ -0,0 +1,213 @@ +.cmm-manager { + --grid-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + z-index: 1099; + width: 80%; + height: 80%; + display: flex; + flex-direction: column; + gap: 10px; + color: var(--fg-color); + font-family: arial, sans-serif; +} + +.cmm-manager .cmm-flex-auto { + flex: auto; +} + +.cmm-manager button { + font-size: 16px; + color: var(--input-text); + background-color: var(--comfy-input-bg); + border-radius: 8px; + border-color: var(--border-color); + border-style: solid; + margin: 0; + padding: 4px 8px; + min-width: 100px; +} + +.cmm-manager button:disabled, +.cmm-manager input:disabled, +.cmm-manager select:disabled { + color: gray; +} + +.cmm-manager button:disabled { + background-color: var(--comfy-input-bg); +} + +.cmm-manager .cmm-manager-refresh { + display: none; + background-color: #000080; + color: white; +} + +.cmm-manager .cmm-manager-stop { + display: none; + background-color: #500000; + color: white; +} + +.cmm-manager-header { + display: flex; + flex-wrap: wrap; + gap: 5px; + align-items: center; + padding: 0 5px; +} + +.cmm-manager-header label { + display: flex; + gap: 5px; + align-items: center; +} + +.cmm-manager-type, +.cmm-manager-base, +.cmm-manager-filter { + height: 28px; + line-height: 28px; +} + +.cmm-manager-keywords { + height: 28px; + line-height: 28px; + padding: 0 5px 0 26px; + background-size: 16px; + background-position: 5px center; + background-repeat: no-repeat; + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20pointer-events%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23888%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222%22%20d%3D%22m21%2021-4.486-4.494M19%2010.5a8.5%208.5%200%201%201-17%200%208.5%208.5%200%200%201%2017%200%22%2F%3E%3C%2Fsvg%3E"); +} + +.cmm-manager-status { + padding-left: 10px; +} + +.cmm-manager-grid { + flex: auto; + border: 1px solid var(--border-color); + overflow: hidden; +} + +.cmm-manager-selection { + display: flex; + flex-wrap: wrap; + gap: 10px; + align-items: center; +} + +.cmm-manager-footer { + display: flex; + flex-wrap: wrap; + gap: 10px; + align-items: center; +} + +.cmm-manager-grid .tg-turbogrid { + font-family: var(--grid-font); + font-size: 15px; + background: var(--bg-color); +} + +.cmm-manager-grid .cmm-node-name a { + color: skyblue; + text-decoration: none; + word-break: break-word; +} + +.cmm-manager-grid .cmm-node-desc a { + color: #5555FF; + font-weight: bold; + text-decoration: none; +} + +.cmm-manager-grid .tg-cell a:hover { + text-decoration: underline; +} + +.cmm-icon-passed { + width: 20px; + height: 20px; + position: absolute; + left: calc(50% - 10px); + top: calc(50% - 10px); +} + +.cmm-manager .cmm-btn-enable { + background-color: blue; + color: white; +} + +.cmm-manager .cmm-btn-disable { + background-color: MediumSlateBlue; + color: white; +} + +.cmm-manager .cmm-btn-install { + background-color: black; + color: white; +} + +.cmm-btn-download { + width: 18px; + height: 18px; + position: absolute; + left: calc(50% - 10px); + top: calc(50% - 10px); + cursor: pointer; + opacity: 0.8; + color: #fff; +} + +.cmm-btn-download:hover { + opacity: 1; +} + +.cmm-manager-light .cmm-btn-download { + color: #000; +} + +@keyframes cmm-btn-loading-bg { + 0% { + left: 0; + } + 100% { + left: -105px; + } +} + +.cmm-manager button.cmm-btn-loading { + position: relative; + overflow: hidden; + border-color: rgb(0 119 207 / 80%); + background-color: var(--comfy-input-bg); +} + +.cmm-manager button.cmm-btn-loading::after { + position: absolute; + top: 0; + left: 0; + content: ""; + width: 500px; + height: 100%; + background-image: repeating-linear-gradient( + -45deg, + rgb(0 119 207 / 30%), + rgb(0 119 207 / 30%) 10px, + transparent 10px, + transparent 15px + ); + animation: cmm-btn-loading-bg 2s linear infinite; +} + +.cmm-manager-light .cmm-node-name a { + color: blue; +} + +.cmm-manager-light .cm-warn-note { + background-color: #ccc !important; +} + +.cmm-manager-light .cmm-btn-install { + background-color: #333; +} \ No newline at end of file diff --git a/js/model-manager.js b/js/model-manager.js new file mode 100644 index 00000000..7811ab65 --- /dev/null +++ b/js/model-manager.js @@ -0,0 +1,820 @@ +import { app } from "../../scripts/app.js"; +import { $el } from "../../scripts/ui.js"; +import { + manager_instance, rebootAPI, + fetchData, md5, icons, show_message, customAlert, infoToast, showTerminal, + storeColumnWidth, restoreColumnWidth, loadCss +} from "./common.js"; +import { api } from "../../scripts/api.js"; + +// https://cenfun.github.io/turbogrid/api.html +import TG from "./turbogrid.esm.js"; + +loadCss("./model-manager.css"); + +const gridId = "model"; + +const pageHtml = ` +
    + + + + +
    +
    +
    +
    +
    +
    + +`; + +export class ModelManager { + static instance = null; + + constructor(app, manager_dialog) { + this.app = app; + this.manager_dialog = manager_dialog; + this.id = "cmm-manager"; + + this.filter = ''; + this.type = ''; + this.base = ''; + this.keywords = ''; + + this.init(); + + api.addEventListener("cm-queue-status", this.onQueueStatus); + } + + init() { + this.element = $el("div", { + parent: document.body, + className: "comfy-modal cmm-manager" + }); + this.element.innerHTML = pageHtml; + this.initFilter(); + this.bindEvents(); + this.initGrid(); + } + + initFilter() { + + this.filterList = [{ + label: "All", + value: "" + }, { + label: "Installed", + value: "installed" + }, { + label: "Not Installed", + value: "not_installed" + }, { + label: "In Workflow", + value: "in_workflow" + }]; + + this.typeList = [{ + label: "All", + value: "" + }]; + + this.baseList = [{ + label: "All", + value: "" + }]; + + this.updateFilter(); + + } + + updateFilter() { + const $filter = this.element.querySelector(".cmm-manager-filter"); + $filter.innerHTML = this.filterList.map(item => { + const selected = item.value === this.filter ? " selected" : ""; + return `` + }).join(""); + + const $type = this.element.querySelector(".cmm-manager-type"); + $type.innerHTML = this.typeList.map(item => { + const selected = item.value === this.type ? " selected" : ""; + return `` + }).join(""); + + const $base = this.element.querySelector(".cmm-manager-base"); + $base.innerHTML = this.baseList.map(item => { + const selected = item.value === this.base ? " selected" : ""; + return `` + }).join(""); + + } + + bindEvents() { + const eventsMap = { + ".cmm-manager-filter": { + change: (e) => { + this.filter = e.target.value; + this.updateGrid(); + } + }, + ".cmm-manager-type": { + change: (e) => { + this.type = e.target.value; + this.updateGrid(); + } + }, + ".cmm-manager-base": { + change: (e) => { + this.base = e.target.value; + this.updateGrid(); + } + }, + + ".cmm-manager-keywords": { + input: (e) => { + const keywords = `${e.target.value}`.trim(); + if (keywords !== this.keywords) { + this.keywords = keywords; + this.updateGrid(); + } + }, + focus: (e) => e.target.select() + }, + + ".cmm-manager-selection": { + click: (e) => { + const target = e.target; + const mode = target.getAttribute("mode"); + if (mode === "install") { + this.installModels(this.selectedModels, target); + } + } + }, + + ".cmm-manager-refresh": { + click: () => { + app.refreshComboInNodes(); + } + }, + + ".cmm-manager-stop": { + click: () => { + api.fetchApi('/manager/queue/reset'); + infoToast('Cancel', 'Remaining tasks will stop after completing the current task.'); + } + }, + + ".cmm-manager-back": { + click: (e) => { + this.close() + manager_instance.show(); + } + } + }; + Object.keys(eventsMap).forEach(selector => { + const target = this.element.querySelector(selector); + if (target) { + const events = eventsMap[selector]; + if (events) { + Object.keys(events).forEach(type => { + target.addEventListener(type, events[type]); + }); + } + } + }); + } + + // =========================================================================================== + + initGrid() { + const container = this.element.querySelector(".cmm-manager-grid"); + const grid = new TG.Grid(container); + this.grid = grid; + + grid.bind('onUpdated', (e, d) => { + + this.showStatus(`${grid.viewRows.length.toLocaleString()} external models`); + + }); + + grid.bind('onSelectChanged', (e, changes) => { + this.renderSelected(); + }); + + grid.bind("onColumnWidthChanged", (e, columnItem) => { + storeColumnWidth(gridId, columnItem) + }); + + grid.bind('onClick', (e, d) => { + const { rowItem } = d; + const target = d.e.target; + const mode = target.getAttribute("mode"); + if (mode === "install") { + this.installModels([rowItem], target); + } + + }); + + grid.setOption({ + theme: 'dark', + + selectVisible: true, + selectMultiple: true, + selectAllVisible: true, + + textSelectable: true, + scrollbarRound: true, + + frozenColumn: 1, + rowNotFound: "No Results", + + rowHeight: 40, + bindWindowResize: true, + bindContainerResize: true, + + cellResizeObserver: (rowItem, columnItem) => { + const autoHeightColumns = ['name', 'description']; + return autoHeightColumns.includes(columnItem.id) + }, + + // updateGrid handler for filter and keywords + rowFilter: (rowItem) => { + + const searchableColumns = ["name", "type", "base", "description", "filename", "save_path"]; + const models_extensions = ['.ckpt', '.pt', '.pt2', '.bin', '.pth', '.safetensors', '.pkl', '.sft']; + + let shouldShown = grid.highlightKeywordsFilter(rowItem, searchableColumns, this.keywords); + + if (shouldShown) { + if(this.filter) { + if (this.filter == "in_workflow") { + rowItem.in_workflow = null; + if (Array.isArray(app.graph._nodes)) { + app.graph._nodes.forEach((item, i) => { + if (Array.isArray(item.widgets_values)) { + item.widgets_values.forEach((_item, i) => { + if (rowItem.in_workflow === null && _item !== null && models_extensions.includes("." + _item.toString().split('.').pop())) { + let filename = _item.match(/([^\/]+)(?=\.\w+$)/)[0]; + if (grid.highlightKeywordsFilter(rowItem, searchableColumns, filename)) { + rowItem.in_workflow = "True"; + grid.highlightKeywordsFilter(rowItem, searchableColumns, ""); + } + } + }); + } + }); + } + } + return ((this.filter == "installed" && rowItem.installed == "True") || (this.filter == "not_installed" && rowItem.installed == "False") || (this.filter == "in_workflow" && rowItem.in_workflow == "True")); + } + + if(this.type && rowItem.type !== this.type) { + return false; + } + + if(this.base && rowItem.base !== this.base) { + return false; + } + + } + + return shouldShown; + } + }); + + } + + renderGrid() { + + // update theme + const colorPalette = this.app.ui.settings.settingsValues['Comfy.ColorPalette']; + Array.from(this.element.classList).forEach(cn => { + if (cn.startsWith("cmm-manager-")) { + this.element.classList.remove(cn); + } + }); + this.element.classList.add(`cmm-manager-${colorPalette}`); + + const options = { + theme: colorPalette === "light" ? "" : "dark" + }; + + const rows = this.modelList || []; + + const columns = [{ + id: 'id', + name: 'ID', + width: 50, + align: 'center' + }, { + id: 'name', + name: 'Name', + width: 200, + minWidth: 100, + maxWidth: 500, + classMap: 'cmm-node-name', + formatter: function(name, rowItem, columnItem, cellNode) { + return `${name}`; + } + }, { + id: 'installed', + name: 'Install', + width: 130, + minWidth: 110, + maxWidth: 200, + sortable: false, + align: 'center', + formatter: (installed, rowItem, columnItem) => { + if (rowItem.refresh) { + return `Refresh Required`; + } + if (installed === "True") { + return `
    ${icons.passed}
    `; + } + return ``; + } + }, { + id: 'url', + name: '', + width: 50, + sortable: false, + align: 'center', + formatter: (url, rowItem, columnItem) => { + return `${icons.download}`; + } + }, { + id: 'size', + name: 'Size', + width: 100, + formatter: (size) => { + if (typeof size === "number") { + return this.formatSize(size); + } + return size; + } + }, { + id: 'type', + name: 'Type', + width: 100 + }, { + id: 'base', + name: 'Base' + }, { + id: 'description', + name: 'Description', + width: 400, + maxWidth: 5000, + classMap: 'cmm-node-desc' + }, { + id: "save_path", + name: 'Save Path', + width: 200 + }, { + id: 'filename', + name: 'Filename', + width: 200 + }]; + + restoreColumnWidth(gridId, columns); + + this.grid.setData({ + options, + rows, + columns + }); + + this.grid.render(); + + } + + updateGrid() { + if (this.grid) { + this.grid.update(); + } + } + + // =========================================================================================== + + renderSelected() { + const selectedList = this.grid.getSelectedRows(); + if (!selectedList.length) { + this.showSelection(""); + this.selectedModels = []; + return; + } + + this.selectedModels = selectedList; + this.showSelection(`Selected ${selectedList.length} models `); + } + + focusInstall(item) { + const cellNode = this.grid.getCellNode(item, "installed"); + if (cellNode) { + const cellBtn = cellNode.querySelector(`button[mode="install"]`); + if (cellBtn) { + cellBtn.classList.add("cmm-btn-loading"); + return true + } + } + } + + async installModels(list, btn) { + let stats = await api.fetchApi('/manager/queue/status'); + + stats = await stats.json(); + if(stats.is_processing) { + customAlert(`[ComfyUI-Manager] There are already tasks in progress. Please try again after it is completed. (${stats.done_count}/${stats.total_count})`); + return; + } + + btn.classList.add("cmm-btn-loading"); + this.showError(""); + + let needRefresh = false; + let errorMsg = ""; + + await api.fetchApi('/manager/queue/reset'); + + let target_items = []; + + for (const item of list) { + this.grid.scrollRowIntoView(item); + target_items.push(item); + + if (!this.focusInstall(item)) { + this.grid.onNextUpdated(() => { + this.focusInstall(item); + }); + } + + this.showStatus(`Install ${item.name} ...`); + + const data = item.originalData; + data.ui_id = item.hash; + + const res = await api.fetchApi(`/manager/queue/install_model`, { + method: 'POST', + body: JSON.stringify(data) + }); + + if (res.status != 200) { + errorMsg = `'${item.name}': `; + + if(res.status == 403) { + errorMsg += `This action is not allowed with this security level configuration.\n`; + } else { + errorMsg += await res.text() + '\n'; + } + + break; + } + } + + this.install_context = {btn: btn, targets: target_items}; + + if(errorMsg) { + this.showError(errorMsg); + show_message("[Installation Errors]\n"+errorMsg); + + // reset + for(let k in target_items) { + const item = target_items[k]; + this.grid.updateCell(item, "installed"); + } + } + else { + await api.fetchApi('/manager/queue/start'); + this.showStop(); + showTerminal(); + } + } + + async onQueueStatus(event) { + let self = ModelManager.instance; + + if(event.detail.status == 'in_progress' && event.detail.ui_target == 'model_manager') { + const hash = event.detail.target; + + const item = self.grid.getRowItemBy("hash", hash); + + item.refresh = true; + self.grid.setRowSelected(item, false); + item.selectable = false; +// self.grid.updateCell(item, "tg-column-select"); + self.grid.updateRow(item); + } + else if(event.detail.status == 'done') { + self.hideStop(); + self.onQueueCompleted(event.detail); + } + } + + async onQueueCompleted(info) { + let result = info.model_result; + + if(result.length == 0) { + return; + } + + let self = ModelManager.instance; + + if(!self.install_context) { + return; + } + + let btn = self.install_context.btn; + + self.hideLoading(); + btn.classList.remove("cmm-btn-loading"); + + let errorMsg = ""; + + for(let hash in result){ + let v = result[hash]; + + if(v != 'success') + errorMsg += v + '\n'; + } + + for(let k in self.install_context.targets) { + let item = self.install_context.targets[k]; + self.grid.updateCell(item, "installed"); + } + + if (errorMsg) { + self.showError(errorMsg); + show_message("Installation Error:\n"+errorMsg); + } else { + self.showStatus(`Install ${result.length} models successfully`); + } + + self.showRefresh(); + self.showMessage(`To apply the installed model, please click the 'Refresh' button.`, "red") + + infoToast('Tasks done', `[ComfyUI-Manager] All model downloading tasks in the queue have been completed.\n${info.done_count}/${info.total_count}`); + self.install_context = undefined; + } + + getModelList(models) { + const typeMap = new Map(); + const baseMap = new Map(); + + models.forEach((item, i) => { + const { type, base, name, reference, installed } = item; + item.originalData = JSON.parse(JSON.stringify(item)); + item.size = this.sizeToBytes(item.size); + item.hash = md5(name + reference); + item.id = i + 1; + + if (installed === "True") { + item.selectable = false; + } + + typeMap.set(type, type); + baseMap.set(base, base); + + }); + + const typeList = []; + typeMap.forEach(type => { + typeList.push({ + label: type, + value: type + }); + }); + typeList.sort((a,b)=> { + const au = a.label.toUpperCase(); + const bu = b.label.toUpperCase(); + if (au !== bu) { + return au > bu ? 1 : -1; + } + return 0; + }); + this.typeList = [{ + label: "All", + value: "" + }].concat(typeList); + + + const baseList = []; + baseMap.forEach(base => { + baseList.push({ + label: base, + value: base + }); + }); + baseList.sort((a,b)=> { + const au = a.label.toUpperCase(); + const bu = b.label.toUpperCase(); + if (au !== bu) { + return au > bu ? 1 : -1; + } + return 0; + }); + this.baseList = [{ + label: "All", + value: "" + }].concat(baseList); + + return models; + } + + // =========================================================================================== + + async loadData() { + + this.showLoading(); + + this.showStatus(`Loading external model list ...`); + + const mode = manager_instance.datasrc_combo.value; + + const res = await fetchData(`/externalmodel/getlist?mode=${mode}`); + if (res.error) { + this.showError("Failed to get external model list."); + this.hideLoading(); + return + } + + const { models } = res.data; + + this.modelList = this.getModelList(models); + // console.log("models", this.modelList); + + this.updateFilter(); + + this.renderGrid(); + + this.hideLoading(); + + } + + // =========================================================================================== + + formatSize(v) { + const base = 1000; + const units = ['', 'K', 'M', 'G', 'T', 'P']; + const space = ''; + const postfix = 'B'; + if (v <= 0) { + return `0${space}${postfix}`; + } + for (let i = 0, l = units.length; i < l; i++) { + const min = Math.pow(base, i); + const max = Math.pow(base, i + 1); + if (v > min && v <= max) { + const unit = units[i]; + if (unit) { + const n = v / min; + const nl = n.toString().split('.')[0].length; + const fl = Math.max(3 - nl, 1); + v = n.toFixed(fl); + } + v = v + space + unit + postfix; + break; + } + } + return v; + } + + // for size sort + sizeToBytes(v) { + if (typeof v === "number") { + return v; + } + if (typeof v === "string") { + const n = parseFloat(v); + const unit = v.replace(/[0-9.B]+/g, "").trim().toUpperCase(); + if (unit === "K") { + return n * 1000; + } + if (unit === "M") { + return n * 1000 * 1000; + } + if (unit === "G") { + return n * 1000 * 1000 * 1000; + } + if (unit === "T") { + return n * 1000 * 1000 * 1000 * 1000; + } + } + return v; + } + + showSelection(msg) { + this.element.querySelector(".cmm-manager-selection").innerHTML = msg; + } + + showError(err) { + this.showMessage(err, "red"); + } + + showMessage(msg, color) { + if (color) { + msg = `${msg}`; + } + this.element.querySelector(".cmm-manager-message").innerHTML = msg; + } + + showStatus(msg, color) { + if (color) { + msg = `${msg}`; + } + this.element.querySelector(".cmm-manager-status").innerHTML = msg; + } + + showLoading() { +// this.setDisabled(true); + if (this.grid) { + this.grid.showLoading(); + this.grid.showMask({ + opacity: 0.05 + }); + } + } + + hideLoading() { +// this.setDisabled(false); + if (this.grid) { + this.grid.hideLoading(); + this.grid.hideMask(); + } + } + + setDisabled(disabled) { + const $close = this.element.querySelector(".cmm-manager-close"); + const $refresh = this.element.querySelector(".cmm-manager-refresh"); + const $stop = this.element.querySelector(".cmm-manager-stop"); + + const list = [ + ".cmm-manager-header input", + ".cmm-manager-header select", + ".cmm-manager-footer button", + ".cmm-manager-selection button" + ].map(s => { + return Array.from(this.element.querySelectorAll(s)); + }) + .flat() + .filter(it => { + return it !== $close && it !== $refresh && it !== $stop; + }); + + list.forEach($elem => { + if (disabled) { + $elem.setAttribute("disabled", "disabled"); + } else { + $elem.removeAttribute("disabled"); + } + }); + + Array.from(this.element.querySelectorAll(".cmm-btn-loading")).forEach($elem => { + $elem.classList.remove("cmm-btn-loading"); + }); + + } + + showRefresh() { + this.element.querySelector(".cmm-manager-refresh").style.display = "block"; + } + + showStop() { + this.element.querySelector(".cmm-manager-stop").style.display = "block"; + } + + hideStop() { + this.element.querySelector(".cmm-manager-stop").style.display = "none"; + } + + setKeywords(keywords = "") { + this.keywords = keywords; + this.element.querySelector(".cmm-manager-keywords").value = keywords; + } + + show() { + this.element.style.display = "flex"; + this.setKeywords(""); + this.showSelection(""); + this.showMessage(""); + this.loadData(); + } + + close() { + this.element.style.display = "none"; + } +} diff --git a/js/node_fixer.js b/js/node_fixer.js index 94b4c747..867a7b81 100644 --- a/js/node_fixer.js +++ b/js/node_fixer.js @@ -1,16 +1,6 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js"; -let double_click_policy = "copy-all"; - -api.fetchApi('/manager/dbl_click/policy') - .then(response => response.text()) - .then(data => set_double_click_policy(data)); - -export function set_double_click_policy(mode) { - double_click_policy = mode; -} - function addMenuHandler(nodeType, cb) { const getOpts = nodeType.prototype.getExtraMenuOptions; nodeType.prototype.getExtraMenuOptions = function () { @@ -101,10 +91,14 @@ function connect_inputs(nearest_inputs, node) { } } -function node_info_copy(src, dest, connect_both) { +function node_info_copy(src, dest, connect_both, copy_shape) { // copy input connections for(let i in src.inputs) { let input = src.inputs[i]; + if (input.widget !== undefined) { + const destWidget = dest.widgets.find(x => x.name === input.widget.name); + dest.convertWidgetToInput(destWidget); + } if(input.link) { let link = app.graph.links[input.link]; let src_node = app.graph.getNodeById(link.origin_id); @@ -138,62 +132,17 @@ function node_info_copy(src, dest, connect_both) { } } + if(copy_shape) { + dest.color = src.color; + dest.bgcolor = src.bgcolor; + dest.size = max(src.size, dest.size); + } + app.graph.afterChange(); } app.registerExtension({ name: "Comfy.Manager.NodeFixer", - - async nodeCreated(node, app) { - let orig_dblClick = node.onDblClick; - node.onDblClick = function (e, pos, self) { - orig_dblClick?.apply?.(this, arguments); - - if((!node.inputs && !node.outputs) || pos[1] > 0) - return; - - switch(double_click_policy) { - case "copy-all": - case "copy-input": - { - if(node.inputs?.some(x => x.link != null) || node.outputs?.some(x => x.links != null && x.links.length > 0) ) - return; - - let src_node = lookup_nearest_nodes(node); - if(src_node) - node_info_copy(src_node, node, double_click_policy == "copy-all"); - } - break; - case "possible-input": - { - let nearest_inputs = lookup_nearest_inputs(node); - if(nearest_inputs) - connect_inputs(nearest_inputs, node); - } - break; - case "dual": - { - if(pos[0] < node.size[0]/2) { - // left: possible-input - let nearest_inputs = lookup_nearest_inputs(node); - if(nearest_inputs) - connect_inputs(nearest_inputs, node); - } - else { - // right: copy-all - if(node.inputs?.some(x => x.link != null) || node.outputs?.some(x => x.links != null && x.links.length > 0) ) - return; - - let src_node = lookup_nearest_nodes(node); - if(src_node) - node_info_copy(src_node, node, true); - } - } - break; - } - } - }, - beforeRegisterNodeDef(nodeType, nodeData, app) { addMenuHandler(nodeType, function (_, options) { options.push({ @@ -202,8 +151,9 @@ app.registerExtension({ let new_node = LiteGraph.createNode(nodeType.comfyClass); new_node.pos = [this.pos[0], this.pos[1]]; app.canvas.graph.add(new_node, false); - node_info_copy(this, new_node); + node_info_copy(this, new_node, true); app.canvas.graph.remove(this); + requestAnimationFrame(() => app.canvas.setDirty(true, true)) }, }); }); diff --git a/js/popover-helper.js b/js/popover-helper.js new file mode 100644 index 00000000..8c214b8c --- /dev/null +++ b/js/popover-helper.js @@ -0,0 +1,619 @@ +const hasOwn = function(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); +}; + +const isNum = function(num) { + if (typeof num !== 'number' || isNaN(num)) { + return false; + } + const isInvalid = function(n) { + if (n === Number.MAX_VALUE || n === Number.MIN_VALUE || n === Number.NEGATIVE_INFINITY || n === Number.POSITIVE_INFINITY) { + return true; + } + return false; + }; + if (isInvalid(num)) { + return false; + } + return true; +}; + +const toNum = (num) => { + if (typeof (num) !== 'number') { + num = parseFloat(num); + } + if (isNaN(num)) { + num = 0; + } + num = Math.round(num); + return num; +}; + +const clamp = function(value, min, max) { + return Math.max(min, Math.min(max, value)); +}; + +const isWindow = (obj) => { + return Boolean(obj && obj === obj.window); +}; + +const isDocument = (obj) => { + return Boolean(obj && obj.nodeType === 9); +}; + +const isElement = (obj) => { + return Boolean(obj && obj.nodeType === 1); +}; + +// =========================================================================================== + +export const toRect = (obj) => { + if (obj) { + return { + left: toNum(obj.left || obj.x), + top: toNum(obj.top || obj.y), + width: toNum(obj.width), + height: toNum(obj.height) + }; + } + return { + left: 0, + top: 0, + width: 0, + height: 0 + }; +}; + +export const getElement = (selector) => { + if (typeof selector === 'string' && selector) { + if (selector.startsWith('#')) { + return document.getElementById(selector.slice(1)); + } + return document.querySelector(selector); + } + + if (isDocument(selector)) { + return selector.body; + } + if (isElement(selector)) { + return selector; + } +}; + +export const getRect = (target, fixed) => { + if (!target) { + return toRect(); + } + + if (isWindow(target)) { + return { + left: 0, + top: 0, + width: window.innerWidth, + height: window.innerHeight + }; + } + + const elem = getElement(target); + if (!elem) { + return toRect(target); + } + + const br = elem.getBoundingClientRect(); + const rect = toRect(br); + + // fix offset + if (!fixed) { + rect.left += window.scrollX; + rect.top += window.scrollY; + } + + rect.width = elem.offsetWidth; + rect.height = elem.offsetHeight; + + return rect; +}; + +// =========================================================================================== + +const calculators = { + + bottom: (info, containerRect, targetRect) => { + info.space = containerRect.top + containerRect.height - targetRect.top - targetRect.height - info.height; + info.top = targetRect.top + targetRect.height; + info.left = Math.round(targetRect.left + targetRect.width * 0.5 - info.width * 0.5); + }, + + top: (info, containerRect, targetRect) => { + info.space = targetRect.top - info.height - containerRect.top; + info.top = targetRect.top - info.height; + info.left = Math.round(targetRect.left + targetRect.width * 0.5 - info.width * 0.5); + }, + + right: (info, containerRect, targetRect) => { + info.space = containerRect.left + containerRect.width - targetRect.left - targetRect.width - info.width; + info.top = Math.round(targetRect.top + targetRect.height * 0.5 - info.height * 0.5); + info.left = targetRect.left + targetRect.width; + }, + + left: (info, containerRect, targetRect) => { + info.space = targetRect.left - info.width - containerRect.left; + info.top = Math.round(targetRect.top + targetRect.height * 0.5 - info.height * 0.5); + info.left = targetRect.left - info.width; + } +}; + +// with order +export const getDefaultPositions = () => { + return Object.keys(calculators); +}; + +const calculateSpace = (info, containerRect, targetRect) => { + const calculator = calculators[info.position]; + calculator(info, containerRect, targetRect); + if (info.space >= 0) { + info.passed += 1; + } +}; + +// =========================================================================================== + +const calculateAlignOffset = (info, containerRect, targetRect, alignType, sizeType) => { + + const popoverStart = info[alignType]; + const popoverSize = info[sizeType]; + + const containerStart = containerRect[alignType]; + const containerSize = containerRect[sizeType]; + + const targetStart = targetRect[alignType]; + const targetSize = targetRect[sizeType]; + + const targetCenter = targetStart + targetSize * 0.5; + + // size overflow + if (popoverSize > containerSize) { + const overflow = (popoverSize - containerSize) * 0.5; + info[alignType] = containerStart - overflow; + info.offset = targetCenter - containerStart + overflow; + return; + } + + const space1 = popoverStart - containerStart; + const space2 = (containerStart + containerSize) - (popoverStart + popoverSize); + + // both side passed, default to center + if (space1 >= 0 && space2 >= 0) { + if (info.passed) { + info.passed += 2; + } + info.offset = popoverSize * 0.5; + return; + } + + // one side passed + if (info.passed) { + info.passed += 1; + } + + if (space1 < 0) { + const min = containerStart; + info[alignType] = min; + info.offset = targetCenter - min; + return; + } + + // space2 < 0 + const max = containerStart + containerSize - popoverSize; + info[alignType] = max; + info.offset = targetCenter - max; + +}; + +const calculateHV = (info, containerRect) => { + if (['top', 'bottom'].includes(info.position)) { + info.top = clamp(info.top, containerRect.top, containerRect.top + containerRect.height - info.height); + return ['left', 'width']; + } + info.left = clamp(info.left, containerRect.left, containerRect.left + containerRect.width - info.width); + return ['top', 'height']; +}; + +const calculateOffset = (info, containerRect, targetRect) => { + + const [alignType, sizeType] = calculateHV(info, containerRect); + + calculateAlignOffset(info, containerRect, targetRect, alignType, sizeType); + + info.offset = clamp(info.offset, 0, info[sizeType]); + +}; + +// =========================================================================================== + +const calculateDistance = (info, previousPositionInfo) => { + if (!previousPositionInfo) { + return; + } + // no change if position no change with previous + if (info.position === previousPositionInfo.position) { + return; + } + const ax = info.left + info.width * 0.5; + const ay = info.top + info.height * 0.5; + const bx = previousPositionInfo.left + previousPositionInfo.width * 0.5; + const by = previousPositionInfo.top + previousPositionInfo.height * 0.5; + const dx = Math.abs(ax - bx); + const dy = Math.abs(ay - by); + info.distance = Math.round(Math.sqrt(dx * dx + dy * dy)); +}; + +// =========================================================================================== + +const calculatePositionInfo = (info, containerRect, targetRect, previousPositionInfo) => { + calculateSpace(info, containerRect, targetRect); + calculateOffset(info, containerRect, targetRect); + calculateDistance(info, previousPositionInfo); +}; + +// =========================================================================================== + +const calculateBestPosition = (containerRect, targetRect, infoMap, withOrder, previousPositionInfo) => { + + // position space: +1 + // align space: + // two side passed: +2 + // one side passed: +1 + + const safePassed = 3; + + if (previousPositionInfo) { + const prevInfo = infoMap[previousPositionInfo.position]; + if (prevInfo) { + calculatePositionInfo(prevInfo, containerRect, targetRect); + if (prevInfo.passed >= safePassed) { + return prevInfo; + } + prevInfo.calculated = true; + } + } + + const positionList = []; + Object.values(infoMap).forEach((info) => { + if (!info.calculated) { + calculatePositionInfo(info, containerRect, targetRect, previousPositionInfo); + } + positionList.push(info); + }); + + positionList.sort((a, b) => { + if (a.passed !== b.passed) { + return b.passed - a.passed; + } + + if (withOrder && a.passed >= safePassed && b.passed >= safePassed) { + return a.index - b.index; + } + + if (a.space !== b.space) { + return b.space - a.space; + } + + return a.index - b.index; + }); + + // logTable(positionList); + + return positionList[0]; +}; + +// const logTable = (() => { +// let time_id; +// return (info) => { +// clearTimeout(time_id); +// time_id = setTimeout(() => { +// console.table(info); +// }, 10); +// }; +// })(); + +// =========================================================================================== + +const getAllowPositions = (positions, defaultAllowPositions) => { + if (!positions) { + return; + } + if (Array.isArray(positions)) { + positions = positions.join(','); + } + positions = String(positions).split(',').map((it) => it.trim().toLowerCase()).filter((it) => it); + positions = positions.filter((it) => defaultAllowPositions.includes(it)); + if (!positions.length) { + return; + } + return positions; +}; + +const isPositionChanged = (info, previousPositionInfo) => { + if (!previousPositionInfo) { + return true; + } + + if (info.left !== previousPositionInfo.left) { + return true; + } + + if (info.top !== previousPositionInfo.top) { + return true; + } + + return false; +}; + +// =========================================================================================== + +// const log = (name, time) => { +// if (time > 0.1) { +// console.log(name, time); +// } +// }; + +export const getBestPosition = (containerRect, targetRect, popoverRect, positions, previousPositionInfo) => { + + const defaultAllowPositions = getDefaultPositions(); + let withOrder = true; + let allowPositions = getAllowPositions(positions, defaultAllowPositions); + if (!allowPositions) { + allowPositions = defaultAllowPositions; + withOrder = false; + } + + // console.log('withOrder', withOrder); + + // const start_time = performance.now(); + + const infoMap = {}; + allowPositions.forEach((k, i) => { + infoMap[k] = { + position: k, + index: i, + + top: 0, + left: 0, + width: popoverRect.width, + height: popoverRect.height, + + space: 0, + + offset: 0, + passed: 0, + + distance: 0 + }; + }); + + // log('infoMap', performance.now() - start_time); + + + const bestPosition = calculateBestPosition(containerRect, targetRect, infoMap, withOrder, previousPositionInfo); + + // check left/top + bestPosition.changed = isPositionChanged(bestPosition, previousPositionInfo); + + return bestPosition; +}; + +// =========================================================================================== + +const getTemplatePath = (width, height, arrowOffset, arrowSize, borderRadius) => { + const p = (px, py) => { + return [px, py].join(','); + }; + + const px = function(num, alignEnd) { + const floor = Math.floor(num); + let n = num < floor + 0.5 ? floor + 0.5 : floor + 1.5; + if (alignEnd) { + n -= 1; + } + return n; + }; + + const pxe = function(num) { + return px(num, true); + }; + + const ls = []; + + const innerLeft = px(arrowSize); + const innerRight = pxe(width - arrowSize); + arrowOffset = clamp(arrowOffset, innerLeft, innerRight); + + const innerTop = px(arrowSize); + const innerBottom = pxe(height - arrowSize); + + const startPoint = p(innerLeft, innerTop + borderRadius); + const arrowPoint = p(arrowOffset, 1); + + const LT = p(innerLeft, innerTop); + const RT = p(innerRight, innerTop); + + const AOT = p(arrowOffset - arrowSize, innerTop); + const RRT = p(innerRight - borderRadius, innerTop); + + ls.push(`M${startPoint}`); + ls.push(`V${innerBottom - borderRadius}`); + ls.push(`Q${p(innerLeft, innerBottom)} ${p(innerLeft + borderRadius, innerBottom)}`); + ls.push(`H${innerRight - borderRadius}`); + ls.push(`Q${p(innerRight, innerBottom)} ${p(innerRight, innerBottom - borderRadius)}`); + ls.push(`V${innerTop + borderRadius}`); + + if (arrowOffset < innerLeft + arrowSize + borderRadius) { + ls.push(`Q${RT} ${RRT}`); + ls.push(`H${arrowOffset + arrowSize}`); + ls.push(`L${arrowPoint}`); + if (arrowOffset < innerLeft + arrowSize) { + ls.push(`L${LT}`); + ls.push(`L${startPoint}`); + } else { + ls.push(`L${AOT}`); + ls.push(`Q${LT} ${startPoint}`); + } + } else if (arrowOffset > innerRight - arrowSize - borderRadius) { + if (arrowOffset > innerRight - arrowSize) { + ls.push(`L${RT}`); + } else { + ls.push(`Q${RT} ${p(arrowOffset + arrowSize, innerTop)}`); + } + ls.push(`L${arrowPoint}`); + ls.push(`L${AOT}`); + ls.push(`H${innerLeft + borderRadius}`); + ls.push(`Q${LT} ${startPoint}`); + } else { + ls.push(`Q${RT} ${RRT}`); + ls.push(`H${arrowOffset + arrowSize}`); + ls.push(`L${arrowPoint}`); + ls.push(`L${AOT}`); + ls.push(`H${innerLeft + borderRadius}`); + ls.push(`Q${LT} ${startPoint}`); + } + return ls.join(''); +}; + +const getPathData = function(position, width, height, arrowOffset, arrowSize, borderRadius) { + + const handlers = { + + bottom: () => { + const d = getTemplatePath(width, height, arrowOffset, arrowSize, borderRadius); + return { + d, + transform: '' + }; + }, + + top: () => { + const d = getTemplatePath(width, height, width - arrowOffset, arrowSize, borderRadius); + return { + d, + transform: `rotate(180,${width * 0.5},${height * 0.5})` + }; + }, + + left: () => { + const d = getTemplatePath(height, width, arrowOffset, arrowSize, borderRadius); + const x = (width - height) * 0.5; + const y = (height - width) * 0.5; + return { + d, + transform: `translate(${x} ${y}) rotate(90,${height * 0.5},${width * 0.5})` + }; + }, + + right: () => { + const d = getTemplatePath(height, width, height - arrowOffset, arrowSize, borderRadius); + const x = (width - height) * 0.5; + const y = (height - width) * 0.5; + return { + d, + transform: `translate(${x} ${y}) rotate(-90,${height * 0.5},${width * 0.5})` + }; + } + }; + + return handlers[position](); +}; + +// =========================================================================================== + +// position style cache +const styleCache = { + // position: '', + // top: {}, + // bottom: {}, + // left: {}, + // right: {} +}; + +export const getPositionStyle = (info, options = {}) => { + + const o = { + bgColor: '#fff', + borderColor: '#ccc', + borderRadius: 5, + arrowSize: 10 + }; + Object.keys(o).forEach((k) => { + + if (hasOwn(options, k)) { + const d = o[k]; + const v = options[k]; + + if (typeof d === 'string') { + // string + if (typeof v === 'string' && v) { + o[k] = v; + } + } else { + // number + if (isNum(v) && v >= 0) { + o[k] = v; + } + + } + + } + }); + + const key = [ + info.width, + info.height, + info.offset, + o.arrowSize, + o.borderRadius, + o.bgColor, + o.borderColor + ].join('-'); + + const positionCache = styleCache[info.position]; + if (positionCache && key === positionCache.key) { + const st = positionCache.style; + st.changed = styleCache.position !== info.position; + styleCache.position = info.position; + return st; + } + + // console.log(options); + + const data = getPathData(info.position, info.width, info.height, info.offset, o.arrowSize, o.borderRadius); + // console.log(data); + + const viewBox = [0, 0, info.width, info.height].join(' '); + const svg = [ + ``, + ``, + '' + ].join(''); + + // console.log(svg); + const backgroundImage = `url("data:image/svg+xml;charset=utf8,${encodeURIComponent(svg)}")`; + + const background = `${backgroundImage} center no-repeat`; + + const padding = `${o.arrowSize + o.borderRadius}px`; + + const style = { + background, + backgroundImage, + padding, + changed: true + }; + + styleCache.position = info.position; + styleCache[info.position] = { + key, + style + }; + + return style; +}; diff --git a/js/snapshot.js b/js/snapshot.js index 0ca7c76a..520ca615 100644 --- a/js/snapshot.js +++ b/js/snapshot.js @@ -1,24 +1,28 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js" import { ComfyDialog, $el } from "../../scripts/ui.js"; -import { manager_instance, rebootAPI } from "./common.js"; +import { manager_instance, rebootAPI, show_message } from "./common.js"; async function restore_snapshot(target) { if(SnapshotManager.instance) { try { const response = await api.fetchApi(`/snapshot/restore?target=${target}`, { cache: "no-store" }); + + if(response.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return false; + } + if(response.status == 400) { - app.ui.dialog.show(`Restore snapshot failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Restore snapshot failed: ${target.title} / ${exception}`); } app.ui.dialog.close(); return true; } catch(exception) { - app.ui.dialog.show(`Restore snapshot failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Restore snapshot failed: ${target.title} / ${exception}`); return false; } finally { @@ -32,17 +36,21 @@ async function remove_snapshot(target) { if(SnapshotManager.instance) { try { const response = await api.fetchApi(`/snapshot/remove?target=${target}`, { cache: "no-store" }); + + if(response.status == 403) { + show_message('This action is not allowed with this security level configuration.'); + return false; + } + if(response.status == 400) { - app.ui.dialog.show(`Remove snapshot failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Remove snapshot failed: ${target.title} / ${exception}`); } app.ui.dialog.close(); return true; } catch(exception) { - app.ui.dialog.show(`Restore snapshot failed: ${target.title} / ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Restore snapshot failed: ${target.title} / ${exception}`); return false; } finally { @@ -58,8 +66,7 @@ async function save_current_snapshot() { return true; } catch(exception) { - app.ui.dialog.show(`Backup snapshot failed: ${exception}`); - app.ui.dialog.element.style.zIndex = 10010; + show_message(`Backup snapshot failed: ${exception}`); return false; } finally { @@ -284,7 +291,7 @@ export class SnapshotManager extends ComfyDialog { try { this.invalidateControl(); this.element.style.display = "block"; - this.element.style.zIndex = 10001; + this.element.style.zIndex = 1099; } catch(exception) { app.ui.dialog.show(`Failed to get external model list. / ${exception}`); diff --git a/js/terminal.js b/js/terminal.js deleted file mode 100644 index 091959fa..00000000 --- a/js/terminal.js +++ /dev/null @@ -1,81 +0,0 @@ -import {app} from "../../scripts/app.js"; -import {ComfyWidgets} from "../../scripts/widgets.js"; -// Node that add notes to your project - -let terminal_node; -let log_mode = false; - -app.registerExtension({ - name: "Comfy.Manager.Terminal", - - registerCustomNodes() { - class TerminalNode { - color = "#222222"; - bgcolor = "#000000"; - groupcolor = LGraphCanvas.node_colors.black.groupcolor; - constructor() { - this.logs = []; - - if (!this.properties) { - this.properties = {}; - this.properties.text=""; - } - - ComfyWidgets.STRING(this, "", ["", {default:this.properties.text, multiline: true}], app) - ComfyWidgets.BOOLEAN(this, "mode", ["", {default:true, label_on:'Logging', label_off:'Stop'}], app) - ComfyWidgets.INT(this, "lines", ["", {default:500, min:10, max:10000, steps:1}], app) - - let self = this; - Object.defineProperty(this.widgets[1], 'value', { - set: (v) => { - api.fetchApi(`/manager/terminal?mode=${v}`, {}); - log_mode = v; - }, - get: () => { - return log_mode; - } - }); - - this.serialize_widgets = false; - this.isVirtualNode = true; - - if(terminal_node) { - try { - terminal_node.widgets[0].value = 'The output of this node is disabled because another terminal node has appeared.'; - } - catch {} - } - terminal_node = this; - } - } - - // Load default visibility - LiteGraph.registerNodeType( - "Terminal Log //CM", - Object.assign(TerminalNode, { - title_mode: LiteGraph.NORMAL_TITLE, - title: "Terminal Log (Manager)", - collapsable: true, - }) - ); - - TerminalNode.category = "utils"; - }, -}); - - -import { api } from "../../scripts/api.js"; - -function terminalFeedback(event) { - if(terminal_node) { - terminal_node.logs.push(event.detail.data); - if(terminal_node.logs.length > terminal_node.widgets[2].value) { - terminal_node.logs.shift(); - if(terminal_node.logs[0] == '' || terminal_node.logs[0] == '\n') - terminal_node.logs.shift(); - } - terminal_node.widgets[0].value = [...terminal_node.logs].reverse().join('').trim(); - } -} - -api.addEventListener("manager-terminal-feedback", terminalFeedback); diff --git a/js/turbogrid.esm.js b/js/turbogrid.esm.js new file mode 100644 index 00000000..fd0bfb57 --- /dev/null +++ b/js/turbogrid.esm.js @@ -0,0 +1 @@ +var t={915:(t,e,i)=>{i.d(e,{A:()=>l});var o=i(256),n=i.n(o),s=i(505),r=i.n(s)()(n());r.push([t.id,'.tg-turbogrid{position:relative;z-index:0;width:100%;height:100%;margin:0;padding:0;box-sizing:border-box;font-size:14px;font-family:arial,sans-serif;outline:0;cursor:default;overflow:hidden}.tg-turbogrid *,.tg-turbogrid *::before,.tg-turbogrid *::after{box-sizing:border-box}.tg-text-unselectable.tg-turbogrid{user-select:none}.tg-turbogrid svg{display:block;pointer-events:none}.tg-turbogrid .tg-symbols{font-family:webdings,sans-serif}.tg-turbogrid .tg-nowrap{white-space:nowrap}.tg-turbogrid .tg-align-left{text-align:left}.tg-turbogrid .tg-align-center{text-align:center}.tg-turbogrid .tg-align-right{text-align:right}@keyframes tg-fade-in{from{opacity:0}to{opacity:1}}@keyframes tg-fade-out{from{opacity:1}to{opacity:0}}.tg-turbogrid .tg-fade-in{animation-name:tg-fade-in;animation-duration:.2s;animation-fill-mode:both}.tg-turbogrid .tg-fade-in .tg-scrollbar-track{display:none}.tg-turbogrid .tg-fade-out{animation-name:tg-fade-out;animation-duration:.2s;animation-fill-mode:both}.tg-turbogrid .tg-fade-out .tg-scrollbar-track{display:none}.tg-turbogrid .tg-mask{position:absolute;top:0;left:0;z-index:200;display:none;width:100%;height:100%;background-color:#000;opacity:.1}@keyframes tg-loading-animation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.tg-turbogrid .tg-loading{position:absolute;top:50%;left:50%;z-index:300;display:none;transform:translate(-50%, -50%);pointer-events:none}.tg-turbogrid .tg-loading-default{width:35px;height:35px;color:#0077cf;animation:1s tg-loading-animation linear infinite}.tg-turbogrid .tg-loading-fast{animation:.382s tg-loading-animation linear infinite}.tg-turbogrid .tg-checkbox{width:100%;height:100%;cursor:pointer;overflow:hidden}.tg-turbogrid .tg-checkbox:hover .tg-checkbox-item{fill:#005ba1}.tg-turbogrid .tg-checkbox.tg-select-icon-all{height:18px}.tg-turbogrid .tg-checkbox .tg-icon-checkbox{position:absolute;top:50%;left:50%;display:block;width:16px;height:16px;transform:translate(-50%, -50%)}.tg-turbogrid .tg-checkbox .tg-checkbox-item{display:none;fill:gray}.tg-turbogrid .tg-checkbox .tg-checkbox-none{display:block}.tg-turbogrid .tg-checkbox.tg-selected .tg-checkbox-selected{display:block;fill:#0077cf}.tg-turbogrid .tg-checkbox.tg-mixed .tg-checkbox-mixed{display:block;fill:#0077cf}.tg-turbogrid .tg-radio{cursor:pointer;overflow:hidden}.tg-turbogrid .tg-radio:hover .tg-icon-radio::before{border-color:#005ba1}.tg-turbogrid .tg-radio .tg-icon-radio{position:absolute;top:50%;left:50%;width:16px;height:16px;transform:translate(-50%, -50%)}.tg-turbogrid .tg-radio .tg-icon-radio::before{position:absolute;top:50%;left:50%;content:"";display:block;width:16px;height:16px;border:thin solid gray;border-radius:50%;background:#fff;transform:translate(-50%, -50%)}.tg-turbogrid .tg-radio .tg-icon-radio::after{position:absolute;top:50%;left:50%;content:"";display:none;width:10px;height:10px;border-radius:50%;background:#0077cf;transform:translate(-50%, -50%)}.tg-turbogrid .tg-radio.tg-selected .tg-icon-radio::after{display:block;border-color:#0077cf}.tg-turbogrid .tg-scrollbar{position:absolute;z-index:100;overflow:hidden;user-select:none}.tg-turbogrid .tg-scrollbar-v{top:0;right:0}.tg-turbogrid .tg-scrollbar-h{left:0;bottom:0}.tg-turbogrid .tg-scrollbar-track{position:relative;width:100%;height:100%;background:#f9f9f9;overflow:hidden;user-select:none}.tg-turbogrid .tg-scrollbar-thumb{position:absolute;top:0;left:0;border-radius:1px;background:#999;overflow:hidden;user-select:none}.tg-turbogrid .tg-scrollbar-thumb:hover{background:#888}.tg-turbogrid .tg-scrollbar-thumb-hold{background:#666}.tg-turbogrid .tg-scrollbar-thumb-hold:hover{background:#666}.tg-turbogrid .tg-scrollbar-round .tg-scrollbar-track{border-radius:10px}.tg-turbogrid .tg-scrollbar-round .tg-scrollbar-thumb{border-radius:10px}.tg-turbogrid .tg-scroll-pane{position:relative;margin:0;padding:0;border:none;outline:none;overflow:hidden}.tg-turbogrid .tg-scroll-view{position:relative;width:100%;height:100%;margin:0;padding:0;border:none;overflow:hidden}.tg-turbogrid .tg-scroll-body{position:absolute}.tg-turbogrid .tg-header{position:relative;width:10000px;border-left:0;overflow:hidden}.tg-turbogrid .tg-header-table{position:relative;color:#5e5e5e;font-weight:bold;font-size:14px;line-height:16px;border-bottom:thin solid #e5e5e5;overflow:hidden}.tg-turbogrid .tg-header-item{position:absolute;bottom:0}.tg-turbogrid .tg-header-group-item{overflow:hidden}.tg-turbogrid .tg-header-group-item::after{position:absolute;left:5px;bottom:0;content:"";display:block;width:calc(100% - 10px);height:1px;border-bottom:thin solid #ccc}.tg-turbogrid .tg-column-header{position:absolute;bottom:0;overflow:hidden}.tg-turbogrid .tg-column-header .tg-column-name{padding:10px 5px;text-overflow:ellipsis;overflow:hidden}.tg-turbogrid .tg-column-header .tg-column-name.tg-header-group-name{margin:0 5px;padding:5px 0}.tg-turbogrid .tg-column-resizing{position:absolute;top:0;right:-5px;z-index:100;width:10px;height:100%;background:#ccc;cursor:ew-resize;opacity:0}.tg-turbogrid .tg-header-column-last .tg-column-resizing{right:0}.tg-turbogrid .tg-column-sortable .tg-column-name{cursor:pointer}.tg-turbogrid .tg-column-sortable .tg-sort-indicator{cursor:pointer}.tg-turbogrid .tg-column-sorted{color:#000}.tg-turbogrid .tg-header-sort-h .tg-column-name{padding:12px 5px 15px}.tg-turbogrid .tg-header-sort-h .tg-column-sort{width:100%;height:15px;margin-top:-15px;padding:0 5px;overflow:hidden}.tg-turbogrid .tg-header-sort-h .tg-sort-indicator{position:relative;display:none;width:100%;height:100%}.tg-turbogrid .tg-header-sort-h .tg-column-sorted .tg-column-sort .tg-sort-indicator{display:block}.tg-turbogrid .tg-header-sort-h .tg-sort-indicator-line{position:absolute;top:1px;width:100%;height:0;border-top:thin solid #1e1e1e;overflow:hidden}.tg-turbogrid .tg-header-sort-h .tg-sort-indicator-icon{position:absolute;top:5px;left:0;right:inherit}.tg-turbogrid .tg-header-sort-h .tg-align-right .tg-sort-indicator-icon{left:inherit;right:0}.tg-turbogrid .tg-header-sort-h .tg-align-center .tg-sort-indicator-icon{left:50%;transform:translateX(-50%)}.tg-turbogrid .tg-header-sort-h .tg-sort-indicator-icon .tg-icon-sort-h{display:block;width:19px;height:6px}.tg-turbogrid .tg-header-sort-h .tg-sort-indicator-icon .tg-icon-item{display:none;fill:#1e1e1e}.tg-turbogrid .tg-header-sort-h .tg-sort-indicator-icon .tg-icon-item-light{fill:#ababab}.tg-turbogrid .tg-column-sort-v{display:flex;flex-direction:row;align-items:center}.tg-turbogrid .tg-column-sort-v .tg-column-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tg-turbogrid .tg-column-sort-v.tg-align-right{justify-content:right}.tg-turbogrid .tg-column-sort-v .tg-sort-indicator{position:relative;width:16px;height:16px}.tg-turbogrid .tg-column-sort-v .tg-sort-indicator-icon{position:absolute}.tg-turbogrid .tg-column-sort-v .tg-sort-indicator-icon .tg-icon-sort-v{display:block;width:10px;height:16px}.tg-turbogrid .tg-column-sort-v .tg-sort-indicator-icon .tg-icon-item{fill:#ababab}.tg-turbogrid .tg-column-sort-v .tg-sort-indicator-icon .tg-icon-item-light{fill:#ababab}.tg-turbogrid .tg-column-sort-v.tg-column-sorted .tg-sort-indicator-icon .tg-icon-item{fill:#1e1e1e}.tg-turbogrid .tg-column-sort-v.tg-column-sorted .tg-sort-indicator-icon .tg-icon-item-light{fill:#ababab}.tg-turbogrid .tg-sort-desc .tg-sort-indicator .tg-sort-indicator-icon .tg-desc{display:block}.tg-turbogrid .tg-sort-desc .tg-sort-indicator .tg-sort-indicator-icon .tg-asc{display:none}.tg-turbogrid .tg-sort-asc .tg-sort-indicator .tg-sort-indicator-icon .tg-desc{display:none}.tg-turbogrid .tg-sort-asc .tg-sort-indicator .tg-sort-indicator-icon .tg-asc{display:block}.tg-turbogrid .tg-column-line{position:absolute;top:0;left:0;z-index:100;display:none;height:100%;pointer-events:none}.tg-turbogrid .tg-column-line-item{position:absolute;top:0;bottom:0;display:block;width:0;height:100%;border-left:thin solid #ccc}.tg-turbogrid .tg-column-line-item.tg-active{border-left:thin solid #0077cf}.tg-turbogrid .tg-column-dragging{cursor:ew-resize}.tg-turbogrid .tg-column-dragging .tg-column-name{cursor:ew-resize}.tg-turbogrid .tg-column-dragging .tg-column-resizing:not(.tg-resizing-active){display:none}.tg-turbogrid .tg-tree{position:relative;display:flex;flex-direction:row;place-items:center left;width:100%;height:100%;overflow:hidden}.tg-turbogrid .tg-tree-icon{position:relative;width:15px;height:100%;min-height:9px;text-align:left;cursor:pointer;overflow:hidden}.tg-turbogrid .tg-tree-icon .tg-icon-tree{position:absolute;top:50%;left:0;display:block;width:9px;height:9px;transform:translate(0, -50%);overflow:hidden}.tg-turbogrid .tg-tree-icon .tg-tree-item{display:none}.tg-turbogrid .tg-tree-icon-collapsed .tg-tree-collapsed{display:block}.tg-turbogrid .tg-tree-icon-empty .tg-tree-collapsed{opacity:.5}.tg-turbogrid .tg-tree-icon-expanded .tg-tree-expanded{display:block}.tg-turbogrid .tg-tree-name{flex:1;text-overflow:ellipsis;overflow:hidden}.tg-turbogrid .tg-tree-header .tg-tree .tg-tree-icon{display:none}.tg-turbogrid .tg-tree-icon-all{position:relative;height:17px}.tg-turbogrid .tg-tree-header-indent .tg-tree{padding-left:5px}.tg-turbogrid .tg-tree-header-indent .tg-tree .tg-tree-icon{display:block}.tg-turbogrid .tg-tree-header-indent.tg-column-sort-h .tg-column-sort{width:calc(100% - 20px);margin-left:20px}.tg-turbogrid .tg-pane{position:absolute;width:100%;outline:0;overflow:hidden}.tg-turbogrid .tg-header-frame{position:relative;display:block;outline:0;overflow:hidden}.tg-turbogrid .tg-header-frame .tg-pane{height:100%}.tg-turbogrid .tg-body-frame{position:relative;width:100%;outline:0}.tg-turbogrid .tg-body-message{position:absolute;display:none;width:100%;height:100%;padding:10px;overflow:hidden}.tg-turbogrid .tg-body-message img,.tg-turbogrid .tg-body-message div{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.tg-turbogrid .tg-body{position:absolute;outline:0}.tg-turbogrid .tg-cell-hover-icon{display:none}.tg-touch-device.tg-turbogrid .tg-cell-hover-icon{display:inherit}.tg-turbogrid .tg-cell-row-number{font-weight:normal}.tg-turbogrid .tg-cell-row-drag .tg-row-drag-icon{position:absolute;top:50%;left:50%;width:24px;height:24px;cursor:move;opacity:.8;transform:translate(-50%, -50%)}.tg-turbogrid .tg-cell-row-drag .tg-row-drag-icon:hover{opacity:1}.tg-turbogrid .tg-cell{position:absolute;z-index:1;height:100%;margin:0;padding:0 5px;color:#1e1e1e;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;overflow:hidden}.tg-turbogrid .tg-cell:focus{outline:none}.tg-turbogrid .tg-cell.tg-flashing{border:1px solid red !important}.tg-turbogrid .tg-cell.tg-selected{background-color:beige}.tg-turbogrid .tg-cell.tg-align-left.tg-cell-negative{padding-left:1px}.tg-turbogrid .tg-cell.tg-align-right.tg-cell-negative{padding-right:1px}.tg-turbogrid .tg-cell.tg-cell-observer{display:flex;flex-direction:column;justify-content:center;padding:5px;line-height:normal;white-space:normal;text-overflow:ellipsis;overflow:hidden}.tg-turbogrid .tg-cell.tg-cell-observer .tg-observer{position:relative;margin:0;padding:0;border:none}.tg-turbogrid .tg-row{position:absolute;width:100%;border:0;border-bottom:thin solid #e5e5e5}.tg-turbogrid .tg-row.tg-group-line{border-bottom:thin solid #999}.tg-turbogrid .tg-row.tg-none-line{border-bottom:none}.tg-turbogrid .tg-row.tg-top-line{border-top:thin solid #e5e5e5}.tg-turbogrid .tg-row.tg-group{font-weight:bold;overflow:hidden}.tg-turbogrid .tg-row.tg-group .tg-cell.tg-align-left.tg-cell-negative{padding-left:0}.tg-turbogrid .tg-row.tg-group .tg-cell.tg-align-right.tg-cell-negative{padding-right:0}.tg-turbogrid .tg-row.tg-hover .tg-cell .tg-cell-hover-icon{display:inherit}.tg-turbogrid .tg-row.tg-dragging{opacity:.3}.tg-turbogrid .tg-row.tg-clone{z-index:1000;border:1px dashed #ccc;border-right:none;border-left:none;background:#fff;cursor:move;opacity:.5}.tg-turbogrid .tg-row.tg-clone *{cursor:move}.tg-turbogrid .tg-row-placeholder{position:absolute;z-index:9999;width:100%;border-top:2px solid #00a8e1;pointer-events:none}.tg-turbogrid .tg-row::before,.tg-turbogrid .tg-row::after{position:absolute;top:0;left:0;content:"";z-index:100;display:none;width:100%;height:100%;pointer-events:none}.tg-turbogrid .tg-hover.tg-row::before{display:block;background:rgba(0,0,0,.08)}.tg-turbogrid .tg-selected.tg-row::after{display:block;background:rgba(0,0,0,.13)}.tg-lightblue .tg-header-item{border-top:thin solid #e8eaf0;border-right:thin solid #e8eaf0}.tg-lightblue .tg-column-name{padding:5px;color:#304265}.tg-lightblue .tg-header-group-item::after{display:none}.tg-lightblue .tg-checkbox .tg-icon-item{fill:#d4d7e0}.tg-lightblue .tg-checkbox:hover .tg-icon-item{fill:#107fff}.tg-lightblue .tg-checkbox.tg-selected .tg-select-checkbox{fill:#107fff}.tg-lightblue .tg-checkbox.tg-mixed .tg-select-mixed{fill:#107fff}.tg-lightblue .tg-cell{color:#304265;border-right:thin solid #e8eaf0}.tg-lightblue .tg-row{border-bottom:thin solid #e8eaf0}.tg-lightblue .tg-row.tg-group-line{border-bottom:thin solid #c9ccd8}.tg-lightblue .tg-row.tg-selected{background:rgba(58,116,213,.05)}.tg-lightblue .tg-row.tg-hover{background:rgba(58,116,213,.05)}.tg-lightblue .tg-row.tg-even{background:#fbfcfe}.tg-lightblue .tg-row.tg-odd{background:#fff}.tg-lightblue .tg-hover.tg-row::before{background:rgba(58,116,213,.05)}.tg-lightblue .tg-selected.tg-row::after{background:rgba(58,116,213,.1)}.tg-lightblue .tg-header-frame{border-bottom:thin solid #e8eaf0}.tg-lightblue .tg-row-not-found .tg-frozen-line-v{border-right:none}.tg-lightblue .tg-scrollbar-track{background:#fff}.tg-lightblue .tg-scrollbar-thumb{background:rgba(48,66,101,.35)}.tg-lightblue .tg-scrollbar-thumb:hover{background-color:#a8a8a8}.tg-lightblue .tg-scrollbar-thumb:active{background-color:#787878}.tg-dark{background:#1e1e1e}.tg-dark .tg-checkbox .tg-icon-item{fill:#ababab}.tg-dark .tg-header-table{color:#ccc;border-bottom:thin solid #333}.tg-dark .tg-header-group-item::after{border-bottom:1px solid #999}.tg-dark .tg-column-sorted{color:#fff}.tg-dark .tg-column-sorted .tg-tree-icon-all .tg-icon-item{fill:#fff}.tg-dark .tg-header-sort-h .tg-sort-indicator-line{border-top:thin solid #eee}.tg-dark .tg-header-sort-h .tg-sort-indicator-icon .tg-icon-item{fill:#eee}.tg-dark .tg-header-sort-h .tg-sort-indicator-icon .tg-icon-item-light{fill:#666}.tg-dark .tg-column-sort-v .tg-sort-indicator-icon .tg-icon-item{fill:#666}.tg-dark .tg-column-sort-v .tg-sort-indicator-icon .tg-icon-item-light{fill:#666}.tg-dark .tg-column-sort-v.tg-column-sorted .tg-sort-indicator-icon .tg-icon-item{fill:#fff}.tg-dark .tg-column-sort-v.tg-column-sorted .tg-sort-indicator-icon .tg-icon-item-light{fill:#666}.tg-dark .tg-tree-icon .tg-icon-item{fill:#fff}.tg-dark .tg-tree-icon-all .tg-icon-item{fill:#999}.tg-dark .tg-header-item .tg-tree-icon .tg-icon-item{fill:#999}.tg-dark .tg-header-item .tg-column-sorted .tg-tree-icon .tg-icon-item{fill:#fff}.tg-dark .tg-row{border-bottom:thin solid #333}.tg-dark .tg-row.tg-group-line{border-bottom:thin solid #666}.tg-dark .tg-row.tg-clone{border:1px dashed #1e1e1e;opacity:.1}.tg-dark .tg-cell{color:#eee}.tg-dark .tg-body-message{color:#eee}.tg-dark .tg-hover.tg-row::before{background:rgba(255,255,255,.1)}.tg-dark .tg-selected.tg-row::after{background:rgba(255,255,255,.2)}.tg-dark .tg-mask{background-color:#fff}.tg-dark .tg-scrollbar-track{background:#333}.tg-dark .tg-scrollbar-thumb{background:#bbb}.tg-dark .tg-scrollbar-thumb:hover{background:#ddd}.tg-dark .tg-scrollbar-thumb-hold{background:#eee}.tg-dark .tg-scrollbar-thumb-hold:hover{background:#eee}.tg-pointer-events-none{pointer-events:none}',""]);const l=r},505:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i="",o=void 0!==e[5];return e[4]&&(i+="@supports (".concat(e[4],") {")),e[2]&&(i+="@media ".concat(e[2]," {")),o&&(i+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),i+=t(e),o&&(i+="}"),e[2]&&(i+="}"),e[4]&&(i+="}"),i})).join("")},e.i=function(t,i,o,n,s){"string"==typeof t&&(t=[[null,t,void 0]]);var r={};if(o)for(var l=0;l0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=s),i&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=i):c[2]=i),n&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=n):c[4]="".concat(n)),e.push(c))}},e}},256:t=>{t.exports=function(t){return t[1]}}},e={};function i(o){var n=e[o];if(void 0!==n)return n.exports;var s=e[o]={id:o,exports:{}};return t[o](s,s.exports,i),s.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o={};(()=>{i.d(o,{$:()=>w,MP:()=>e,_d:()=>k,xA:()=>Xt,In:()=>X,T8:()=>B,Gr:()=>kt,ht:()=>Kt,J0:()=>d,xv:()=>Yt,Ay:()=>qt});const t="turbogrid",e={ID:t,NS:`tg-${t}`,VERSION:"3.2.0",TIMESTAMP:"2024-06-20T10:33:49.165Z",UP:"up",DOWN:"down",LEFT:"left",RIGHT:"right",TREE_INDENT:15},n=function(t){if(!t||"object"!=typeof t)return!1;const e=Object.prototype.toString.call(t);return!!["[object Object]","[object Array]"].includes(e)&&(!t.constructor||!![Object,Array].includes(t.constructor))},s=function(t,e){let i;return t.forEach((t=>{n(t)&&(i||(i=t instanceof Array?[]:{}),t instanceof Array?function(t,e,i){const o=e.length;for(let s=0;s{this.execute()})):Promise.resolve().then((()=>{this.execute()}))}execute(){if(!this.started)return;this.started=!1;const t=this.callback;this.callback=null,"function"==typeof t&&t.call(this)}cancel(){this.started=!1,this.callback=null}}const a=new WeakMap,c={isObject:n,merge:l,hasOwn:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},uid:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;const e="0123456789abcdefghijklmnopqrstuvwxyz";let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";for(;t--;)i+=e[36*Math.random()|0];return i},isNum:function(t){if("number"!=typeof t||isNaN(t))return!1;return(e=t)!==Number.MAX_VALUE&&e!==Number.MIN_VALUE&&e!==Number.NEGATIVE_INFINITY&&e!==Number.POSITIVE_INFINITY;var e},toNum:function(t,e){return"number"!=typeof t&&(t=parseFloat(t)),isNaN(t)&&(t=0),e&&!Number.isInteger(t)&&(t=Math.round(t)),t},convertNum:function(t){if("string"==typeof t){if(/^[-+]?\d+(\.\d+)?$/gi.test(t))return parseFloat(t)}return t},clamp:function(t,e,i){return Math.max(Math.min(t,i),e)},per:function(t){return t=c.toNum(t),t=c.clamp(t,0,1)},replace:function(t,e){return t=`${t}`,e?t=t.replace(/\{([^}]+)\}/g,(function(t,i){return c.hasOwn(e,i)?e[i]:t})):t},isArray:function(t){return!!(t&&t instanceof Array)},toList:function(t){return t instanceof Array?t:void 0===t?[]:"string"==typeof t?[t]:t&&c.hasOwn(t,"length")?Array.from(t):[t]},isList:function(t){return!!(c.isArray(t)&&t.length>0)},inList:function(t,e){if(!c.isList(e))return!1;for(let i=0,o=e.length;i{if(!c.isList(t))return;let n=0;const s=t.length;for(;nt.startsWith(e))).forEach((e=>{t[e]=null}))},hasShiftKey:function(t){let e=!1;return t&&(e=t.shiftKey),e},isTouchDevice:function(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0},contains:function(t,e){if(!t||!e)return!1;if(t===e)return!0;if("function"==typeof t.contains)return t.contains(e);let i=e.parentNode;for(;i;){if(i===t)return!0;i=i.parentNode}return!1},isNarrowCharacter:function(t){const e=t.codePointAt(0);return e>=32&&e<=126||162===e||163===e||165===e||166===e||172===e||175===e||8361===e||e>=10214&&e<=10221||10629===e||10630===e||e>=65377&&e<=65470||e>=65474&&e<=65479||e>=65482&&e<=65487||e>=65490&&e<=65495||e>=65498&&e<=65500||e>=65512&&e<=65518},getCharLen:function(t){let e=0;if(!t)return e;for(const i of String(t))e+=c.isNarrowCharacter(i)?1:2;return e},pascalToKebabCase:function(t){return`${t}`.trim().replace(/([a-z])([A-Z])/g,"$1-$2").replace(/\W/g,(t=>/[À-ž]/.test(t)?t:"-")).replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").toLowerCase()},classMap:function(t){if("string"==typeof t)return t.trim();if(Array.isArray(t)){let e=t.filter((t=>t));return e=e.map((t=>t&&"object"==typeof t?c.classMap(t):String(t).trim())),e=e.filter((t=>t)),e=Array.from(new Set(e)),e.join(" ")}if(t&&"object"==typeof t){const e=[];return Object.keys(t).forEach((i=>{t[i]&&e.push(i)})),e.join(" ")}return""},styleMap:function(t){if("string"==typeof t)return t.trim();if(Array.isArray(t)){let e=t.filter((t=>t));return e=e.map((t=>{const e=String(t).trim();return e?-1===e.indexOf(":")?"":e.endsWith(";")?e:`${e};`:""})),e=e.filter((t=>t)),e=Array.from(new Set(e)),e.join(" ")}if(t&&"object"==typeof t){const e=[];return Object.keys(t).forEach((i=>{const o=t[i];if(o||0===o){const t=String(o).trim();t&&e.push(`${c.pascalToKebabCase(i)}: ${t};`)}})),e.join(" ")}return""},getInstance:function(t){if(t){const e=document.getElementById(t);if(e)return a.get(e)}},setInstance:function(t,e){t&&a.set(t,e)},bindEvents:function(t,e){t&&(c.unbindEvents(t),Object.keys(t).forEach((i=>{const o=t[i];o.target=o.target||e,o.target.addEventListener(i,o.handler,o.options)})))},unbindEvents:function(t){t&&Object.keys(t).forEach((e=>{const i=t[e];i.target&&i.target.removeEventListener(e,i.handler,i.options)}))},preventDefault:function(t){t&&"function"==typeof t.preventDefault&&t.cancelable&&t.preventDefault()},debounce:function(t){let e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;const o=function(){clearTimeout(e),e=setTimeout((()=>{t.apply(this,arguments)}),i)};return o.cancel=()=>{clearTimeout(e)},o},throttle:function(t){let e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,o=0;const n=function(){const n=Date.now();if(n>o+i)return clearTimeout(e),o=n,void t.apply(this,arguments);clearTimeout(e),e=setTimeout((()=>{o=n,t.apply(this,arguments)}),i)};return n.cancel=()=>{clearTimeout(e),o=0},n},microtask:function(t){const e=new h,i=function(){e.start((()=>{t.apply(this,arguments)}))};return i.cancel=()=>{e.cancel()},i},nextTick:function(t){"function"==typeof window.queueMicrotask?window.queueMicrotask((()=>{t()})):Promise.resolve().then((()=>{t()}))},cancelAsync:function(t){t&&(Object.keys(t).filter((e=>e.startsWith("async")&&"function"==typeof t[e])).forEach((e=>{const i=t[e];"function"==typeof i.cancel&&(i.cancel(),t[e]=null)})),Object.keys(t).filter((t=>t.startsWith("timeout"))).forEach((e=>{clearTimeout(t[e])})))}},d=c,u={animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},g=function(t){return null!==t&&1===t.nodeType},f=function(t){let e=t.ownerDocument.defaultView;return e&&e.opener||(e=window),e.getComputedStyle(t)},p={},m=function(t,e){return null!=(i=t)&&i===i.window?t[`inner${e}`]:(function(t){return null!==t&&9===t.nodeType}(t)&&(t=t.body),t[`client${e}`]);var i},b=function(t){return this.list=[],t?this.create(t):this};function w(t){return new b(t)}b.prototype={constructor:b,Query:"Query",list:[],create:function(t){return t instanceof b?t:"string"==typeof t?this.createFromString(t):((t.nodeType||t===window)&&(this.list=[t]),this)},createFromString:function(t){if("<"===(t=t.trim())[0]&&">"===t[t.length-1]&&t.length>=3)this.parseHTML(t);else{const e=document.querySelectorAll(t);for(let t=0,i=e.length;t{this.css(e,t[e])}))}var i;return this.each((function(i){let o=e;"number"!=typeof o||u[t]||(o+="px"),i.style[t]=o})),this},attr:function(t,e){if(!t)return this;if(1===arguments.length){if("object"==typeof t)return Object.keys(t).forEach((e=>{this.attr(e,t[e])})),this;const e=this.get(0);return e?e.getAttribute(t):void 0}return this.each((function(i){i.setAttribute(t,e)})),this},removeAttr:function(t){return t?(this.each((function(e){e.hasAttribute(t)&&e.removeAttribute(t)})),this):this},removeClass:function(t){if(!arguments.length)return this.each((function(t){t.className=""})),this;if(!t||"string"!=typeof t)return this;const e=t.split(" ");return this.each((function(t){e.forEach((function(e){e&&t.classList.remove(e)}))})),this},addClass:function(t){if(!t||"string"!=typeof t)return this;const e=t.split(" ");return this.each((function(t){e.forEach((function(e){e&&t.classList.add(e)}))})),this},hasClass:function(t){if(!t||"string"!=typeof t)return!1;let e=!1;return this.each((function(i){if(i.classList.contains(t))return e=!0,!1})),e},show:function(){return this.each((function(t){if(!g(t))return;const e=function(t){if(!p[t]){const e=document.createElement(t);document.body.appendChild(e);const i=f(e).display;e.parentNode.removeChild(e),p[t]=i}return p[t]}(t.nodeName);t.style.display=e})),this},hide:function(){return this.each((function(t){if(!g(t))return;"none"!==t.style.display&&(t.style.display="none")})),this},click:function(){const t=this.get(0);return t&&"function"==typeof t.click&&t.click(),this},offset:function(){const t={left:0,top:0},e=this.get(0);if(e){const i=e.getBoundingClientRect();t.left=i.left+window.scrollX,t.top=i.top+window.scrollY}return t},clone:function(){const t=new b;return this.each((function(e){if(e&&e.cloneNode){const i=e.cloneNode(!0);t.add(i)}})),t},children:function(){const t=new b;return this.each((function(e){let i=e.firstChild;for(;i;)t.add(i),i=i.nextSibling})),t},parent:function(){const t=this.get(0);return t?new b(t.parentNode):new b},is:function(t){if(!t)return!1;const e=t.split(",");let i=!0;return this.each((function(t){if(!t.nodeName)return i=!1,!1;const o=t.nodeName.toLowerCase();return d.inList(o,e)?void 0:(i=!1,!1)})),i}},Object.defineProperty(b.prototype,"length",{get:function(){return this.list.length}});const v={createCache:function(){this.headerCache=new Map,this.rowsCache=new Map,this.dataCache=new WeakMap,this.cellResizeObserver=this.createResizeObserver((t=>{this.cellResizeHandler(t)}))},setHeaderCache:function(t,e){this.headerCache.set(t,e)},getHeaderCache:function(t){return this.headerCache.get(t)},clearHeaderCache:function(){this.headerCache.clear()},setRowCache:function(t,e){this.rowsCache.set(t,{rowNodes:e,cellNodes:new Map,observerNodes:new Map})},getRowCache:function(t){return this.rowsCache.get(t)},deleteRowCache:function(t){const e=this.getRowCache(t);if(!e)return;this.rowsCache.delete(t);const i=e.observerNodes;i&&i.forEach((t=>{t&&this.cellResizeObserver.unobserve(t)}));const o=e.rowNodes;o&&o.each((t=>{this.removeNode(t)}))},deleteCellCache:function(t,e,i){if(i){const e=i.get(t);e&&this.cellResizeObserver.unobserve(e),i.delete(t)}e&&(this.removeNode(e.get(t)),e.delete(t))},getRowNodesByIndex:function(t){const e=this.getRowCache(t);if(e)return e.rowNodes},getCellNodeByIndex:function(t,e){const i=this.getRowCache(t);if(i)return i.cellNodes.get(e)},forEachRowsCache:function(t){this.rowsCache.forEach(((e,i)=>{t.call(this,i,e.rowNodes,e.cellNodes,e.observerNodes)}))},updateRowCacheTopOffset:function(){const t=this.frozenInfo.row;this.forEachRowsCache(((e,i)=>{if(!(e<=t)&&i){const t=this.getViewRowItem(e),o=this.getViewRowTop(t);i.css("top",o)}}))},updateRowCacheTopAndHeight:function(){this.forEachRowsCache(((t,e)=>{if(e){const i=this.getViewRowItem(t),o=this.getViewRowTop(i),n=this.getRowHeight(i);e.css({top:o,height:n,"line-height":n})}}))},setNodeDataCache:function(t,e){if(t)return this.dataCache.set(t,e)},getNodeDataCache:function(t){if(t)return this.dataCache.get(t)},removeCache:function(){this.headerCache=null,this.rowsCache=null,this.dataCache=null,this.cellResizeObserver&&(this.cellResizeObserver.disconnect(),this.cellResizeObserver=null)}},H=["onUpdated","onFirstUpdated","onHeaderUpdated","onSort","onColumnAdded","onColumnRemoved","onColumnWidthChanged","onRowAdded","onRowRemoved","onRowExpanded","onRowCollapsed","onRowSubsRequest","onRowDragged","onRowDropped","onRowMoved","onRowMouseEnter","onRowMouseLeave","onSelectChanged","onCellUpdated","onCellMouseEnter","onCellMouseLeave","onClick","onDblClick","onContextMenu","onMouseOver","onMouseOut","onTouchStart","onTouchMove","onTouchEnd","onScroll","onScrollStateChanged","onMouseWheel","onResize","onLayout","onKeyDown","onDestroy"],C={};H.forEach((t=>{C[t]=t}));const y=C,R={renderCells:function(t,e){t.forEach((t=>{this.drawRowCells(t,e)}))},getCellValue:function(t,e){return t[e.id]},renderCell:function(t){const{rowItem:e,columnItem:i,cellNode:o,observerNode:n}=t,s=this.getCellValue(e,i);let r=s;this.nullFormatter&&(r=this.nullFormatter.call(this,r,e,i,o,n));const l=e.tg_formatter||i.tg_formatter;"function"==typeof l&&(r=l.call(this,r,e,i,o,n));const h=n||o;this.renderNodeContent(h,r);const{highlightKey:a}=this.options.highlightKeywords;e[a+i.id]&&this.renderSettings.highlightCells.push(o),this.trigger(y.onCellUpdated,{value:s,rowItem:e,columnItem:i,node:o})},getPreRenderColumnList:function(t,e){const i=[];if(!e.length)return i;for(let o=0,n=e.length;o{this.createCellNode(t,e)}))},getCellClass:function(t,e,i){const o=e.tg_view_index,n=["tg-cell"];return i&&n.push("tg-cell-observer"),n.push(`tg-c-${o}`),e.align&&n.push(`tg-align-${e.align}`),0===e.tg_list_index&&n.push("tg-list-first"),e.tg_list_last&&n.push("tg-list-last"),n.push(d.classMap(e.classMap)),n.push(d.classMap(t[`${e.id}ClassMap`])),d.classMap(n)},cellResizeObserverHandler:function(t,e){const i=this.options.cellResizeObserver;if("function"==typeof i)return i.apply(this,[t,e])},cellResizeHandler:function(t){const e=new Map;t.forEach((t=>{const{target:i}=t,o=this.getNodeDataCache(i.parentNode);if(!o)return;const{row:n,rowItem:s}=o;e.set(n,s)}));let i=!1;e.forEach(((t,e)=>{const o=this.getRowCache(e);if(!o)return;const n=o.observerNodes;if(!n)return;const{rowHeight:s,rowMinHeight:r}=this.options;let l=Math.max(r||s,1);n.forEach((t=>{if(t){const e=t.clientHeight+11;e>l&&(l=e)}}));this.getRowHeight(t)!==l&&(t.tg_height=l,i=!0)})),i&&this.render("rows_cache")},createCellNode:function(t,e){const i=this.getRowCache(t);if(!i)return;const o=this.getViewRowItem(t),n=this.getViewColumnItem(e);if(!o||!n)return;const s=this.cellResizeObserverHandler(o,n),r=document.createElement("div");r.setAttribute("column",e);const l=this.getCellClass(o,n,s);r.className=l;const h=d.styleMap(n.styleMap)+d.styleMap(o[`${n.id}StyleMap`]);h&&(r.style.cssText=h);const a=i.rowNodes,c=n.tg_frozen,u=this.getCellRowNode(a,c);let g;this.appendNode(u,r),s&&(g=document.createElement("div"),g.className="tg-observer",r.appendChild(g),this.cellResizeObserver.observe(g),i.observerNodes.set(e,g));const f={row:t,rowItem:o,rowNode:u,column:e,columnItem:n,cellNode:r,observerNode:g};this.setNodeDataCache(r,f),i.cellNodes.set(e,r),this.renderCell(f)},getCellRowNode:function(t,e){const i=t.get(0);if(this.frozenInfo.columns){const o=t.get(1);return this.frozenInfo.right?e?o:i:e?i:o}return i}},S={addColumn:function(t,e,i){let o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const n=this.getToBeAddedItemList(t);if(!n.length)return!1;let s;if(null!=e&&(s=this.getColumnItem(e),!s))return!1;const r=this.getToBeAddedParentSubs(s,this.columns),l=[this.getToBeAddedPositionIndex(i,r),0].concat(n);r.splice.apply(r,l),this.onNextUpdated((function(){this.trigger(y.onColumnAdded,n)}));const h={type:"columns"};return o&&(h.scrollColumn=n[n.length-1]),this.render(h),!0},deleteColumn:function(t){const e=this.toColumnItemList(t,(t=>!t.private));return!!e.length&&(this.removeColumnsHandler(e),this.onNextUpdated((function(){this.trigger(y.onColumnRemoved,e)})),this.render("columns"),!0)},removeColumnsHandler:function(t){const e=[].concat(t);e.sort((function(t,e){return e.tg_index-t.tg_index})),e.forEach((t=>{let e;if(t===this.sortColumn&&this.removeSortColumn(),t.tg_parent)e=t.tg_parent.subs,e.splice(t.tg_sub_index,1);else{e=this.columns;const i=e.findIndex((e=>e===t));-1!==i&&e.splice(i,1)}!e.length&&t.tg_parent&&(t.tg_parent.subs=null)}))}},T={setColumnWidth:function(t,e){return this.updateColumnWidth(t,e)?(this.resize(),this):this},updateColumnWidth:function(t,e){const i=this.getColumnItem(t);return!!i&&(!!d.isNum(e)&&(e=Math.round(e),e=Math.max(0,e),i.tg_width!==e&&(i.width=e,i.minWidth=Math.min(i.minWidth,e),i.maxWidth=Math.max(i.maxWidth,e),this.updateViewColumnWidth(i),!0)))},showColumn:function(t){return this.updateColumnsInvisible(this.toColumnItemList(t),!1)},hideColumn:function(t){return this.updateColumnsInvisible(this.toColumnItemList(t),!0)},updateColumnsInvisible:function(t,e){if(!t.length)return!1;const i=[];return t.forEach((t=>{t.invisible!==e&&(t.invisible=e,t.tg_invisible=e,i.push(t))})),!!i.length&&(this.render("columns"),!0)}},E={showColumnLine:function(t){t&&(this.$columnLineContainer.show(),this.renderColumnLine(t))},hideColumnLine:function(){this.previousColumnLineActive||this.$columnLineContainer.hide()},setColumnLineActive:function(t){this.setTextSelectable(!t),this.rowHoverable=!t,t!==this.previousColumnLineActive&&(this.previousColumnLineActive=t,t?this.$columnLineItem.addClass("tg-active"):this.$columnLineItem.removeClass("tg-active"))},getColumnLineLeft:function(t){let e=t.tg_left;return t.tg_frozen||(e-=this.scrollLeft),this.frozenInfo.right&&(t.tg_frozen?e=t.tg_left+this.paneWidthL:e-=this.columnsWidthR),e},renderColumnLine:function(t){const e=this.getHeaderItemNode(t).offsetTop,i=t.tg_width,o=this.getColumnLineLeft(t);this.$columnLineItemL.css({top:e,left:o}),this.$columnLineItemR.css({top:e,left:o+i-1}),this.frozenInfo.right||(this.frozenInfo.columns&&!t.tg_frozen&&o{this.renderColumnLine(e.columnItem)})),this.resize()},columnWidthTouchStartHandler:function(t,e){d.preventDefault(e.e);const i=e.columnItem;this.showColumnLine(i),this.setColumnLineActive(!0),e.index=i.tg_index;const o=this.getColumnHeaderNode(i);e.width=o.clientWidth},columnWidthTouchMoveHandler:function(t,e){d.preventDefault(e.e);const i=e.columnItem;let o=e.width+e.offsetX;o=d.clamp(o,i.minWidth,i.maxWidth),i.tg_width!==o&&(i.width=o,this.updateViewColumnWidth(i),this.renderColumnLine(i))},columnWidthTouchEndHandler:function(t,e){d.preventDefault(e.e),this.setColumnLineActive(!1),this.hideColumnLine(),this.resize()}},I={getColumnItem:function(t){return d.isNum(t)?(t<0&&(t=this.columnsInfo.length+t),this.columnsInfo.indexCache[t]):t?d.isNum(t.tg_index)?t:this.getColumnItemById(t.id||t):void 0},getColumnItemById:function(t){return this.getColumnItemBy("id",t)},getColumnItemBy:function(t,e){if(void 0!==e)return this.columnsInfo.indexCache.find((i=>i[t]===e))},getColumnsLength:function(t){return t?this.columnsInfo.length:this.viewColumns.length},getViewColumnItem:function(t){return this.viewAllColumns[t]},isColumnSortable:function(t){return!!t&&(!t.tg_group&&(!(!t.name||!t.id)&&this.isSortable(t)))},isColumnResizable:function(t){return!!t&&(!t.tg_group&&(!d.hasOwn(t,"resizable")||Boolean(t.resizable)))},updateViewColumnWidth:function(t){return t.tg_width=t.width,this.updateColumnHeaderSize(t),this.updateTotalColumnsWidth(),this.updateHeaderLayerHeight(),this.cssRulesInvalid=!0,this.resizeBodyHandler(),this.trigger(y.onColumnWidthChanged,t),!0},updateTotalColumnsWidth:function(){this.blankColumn.tg_width=0;const t=this.viewColumns;let e=0,i=0;const o=this.frozenInfo.columns,n=t.length;let s=0;for(let r=0;r0&&(s+=l,o&&r>=o?i+=l:e+=l)}if(this.frozenInfo.right){const t=e;e=i,i=t}this.columnsWidthL=e,this.columnsWidthR=i,this.columnsWidth=e+i},updateColumnHeaderSize:function(t){this.updateColumnHeaderWidth(t),this.updateColumnHeaderHeight(t,!0),this.updateColumnGroupWidth(t)},updateColumnHeaderWidth:function(t){const e=this.getColumnHeaderNode(t);if(!e)return;const i=t.tg_width;this.isInvisible(t)||i<=0?e.style.display="none":(e.style.display="",e.style.width=`${i}px`)},updateColumnHeaderHeight:function(t,e){if(t.tg_height=0,t.tg_width<=0)return;if(this.isInvisible(t))return;e&&(t.tg_element_height=0);const i=t.tg_element_height;if(i)return void(t.tg_height=i);const o=this.getColumnHeaderHeight(t);t.tg_height=o,t.tg_element_height=o},getColumnHeaderHeight:function(t){const e=this.getColumnHeaderNode(t);return e?e.clientHeight:0},updateColumnGroupWidth:function(t){const e=t.tg_parent;if(!e)return;const i=this.getColumnGroupWidth(e);e.tg_width!==i&&(e.tg_width=i,this.updateColumnHeaderSize(e))},getColumnGroupWidth:function(t){if(this.isInvisible(t))return 0;let e=0;return t.subs&&t.subs.forEach((t=>{this.isInvisible(t)||d.isNum(t.tg_width)&&(e+=t.tg_width)})),e}},L={initTreeInfo:function(t,e){const i=[];let o=!1,n=0,s=0;const r=function(t,r,l){(t=>{t.invisible?t.tg_invisible=!0:t.tg_invisible&&(t.tg_invisible=!1)})(t),((t,i)=>{if(e>=0&&!t.tg_invisible)return t.tg_frozen=!0,void(e-=1);t.tg_frozen&&(t.tg_frozen=!1)})(t),(t=>{if(d.hasOwn(t,"subs")){if(Array.isArray(t.subs))return o=!0,t.tg_group=!0,void(t.tg_subs_length=t.subs.length);t.subs=null}t.tg_group&&(t.tg_group=!1)})(t),((t,e)=>{t.tg_parent=e;let i=0;e&&(i=e.tg_level+1,i>n&&(n=i)),t.tg_level=i})(t,l),t.tg_index=s,t.tg_sub_index=r,i.push(t),s+=1},l=function(t,e){let i=0;const o=t.length;for(;i{if(!this.isInvisible(e))return this.isRowSelectable(e)?t(e,i,o):void 0})),this},toRowItemList:function(t,e){let i=d.toList(t).map((t=>this.getRowItem(t))).filter((t=>t));return"function"==typeof e&&(i=i.filter(e)),i},toColumnItemList:function(t,e){let i=d.toList(t).map((t=>this.getColumnItem(t))).filter((t=>t));return"function"==typeof e&&(i=i.filter(e)),i},isRowLeaf:function(t){return!!t&&("blank"!==t.formatter&&(!t.tg_frozen&&!t.tg_group))},isRowSelectable:function(t){return!!t&&(d.hasOwn(t,"selectable")?Boolean(t.selectable):this.isRowLeaf(t))},isEmptyGroup:function(t){return!(!t||!t.tg_group||0!==t.tg_subs_length)},isInvisible:function(t){return!!t&&(!(!t.tg_filtered&&!t.tg_invisible)||!!this.isInvisible(t.tg_parent))},isSortable:function(t){return!!t&&(!d.hasOwn(t,"sortable")||Boolean(t.sortable))},isCollapsedChanged:function(t,e){return Boolean(t.collapsed)!==e},isSelectedChanged:function(t,e){return Boolean(t.selected)!==e}},x={updateCssRules:function(){this.cssRulesInvalid&&(this.cssRulesInvalid=!1,this.initCssRules(),this.updateColumnsCssRules(),this.updateHeadersCssRules(),this.updateStyleElement())},initCssRules:function(){this.removeCssRules(),this.cssList={},this.cssDisplayCache={};const t=this.getRowHeight(),e=this.createCssRule(".tg-row");e.height=`${t}px`,e["line-height"]=`${t}px`},resetCssDisplay:function(t){if(this.cssDisplayCache){t=t||"";for(const e in this.cssDisplayCache)if(d.hasOwn(this.cssDisplayCache,e)){this.cssDisplayCache[e].style.display=t}}},updateColumnsCssRules:function(){const t=this.viewColumns,e=this.frozenInfo.column,i={};let o=0;for(let n=0,s=t.length;n=0;i--){const e=this.headerLayerHeight[i],o=this.createCssRule(`.tg-h-${i}`);o.bottom=`${t}px`,o.height=`${e}px`,t+=e}this.getLayerCombinations(e).forEach((t=>{const e=this.createCssRule(`.tg-h-${t}`);let i=0;t.split("").forEach((t=>{i+=this.headerLayerHeight[t]||0})),e.height=`${i}px`}))},getLayerCombinations:function(t){let e="";for(;t>=0;)e+=t,t--;if(e.length<2)return[];const i=[],o=function(t,e){const n=t.length;let s=e+2;for(;s<=n;){const o=t.substring(e,s);i.push(o),s++}e=i){let t="Possible Event memory leak detected. ";return t+=`More than ${i} (max limit) listeners added. `,t+="Use setMaxListeners(n) to increase limit.",void console.warn(t,e)}t.events.push(e)},addEvents:function(t,e,i){e.forEach((function(e){const o=e.type;t[o]||(t[o]={events:[]});if("function"!=typeof e.handler)return;const n=t[o];N.addEvent(n,e,i)}))},removeEventByNamespace:function(t,e){Object.keys(t).forEach((function(i){const o=t[i],n=[];o.events.forEach((function(t){t&&t.namespace!==e&&n.push(t)})),o.events=n}))},removeEventByHandler:function(t,e,i){const o=t[e];if(!o)return;const n=[];o.events.forEach((function(t){t&&t.handler!==i&&n.push(t)})),o.events=n},removeEventByType:function(t,e){const i=t[e];i&&(i.events=[])},removeEvent:function(t,e){const i=e.type,o=e.namespace;if(!i&&o)return void N.removeEventByNamespace(t,o);const n=e.handler;"function"!=typeof n?N.removeEventByType(t,i):N.removeEventByHandler(t,i,n)},removeEvents:function(t,e){e.forEach((function(e){N.removeEvent(t,e)}))},removeAllEvents:function(t){Object.keys(t).forEach((function(e){N.removeEventByType(t,e)}))},sendEventList:function(t,e,i,o){const n=e.events;for(let e=0;e!t.onceCalled))},sendEvent:function(t,e,i,o){const n=e[i];if(!n)return;const s=new P({type:i,target:t,currentTarget:t,data:o});N.sendEventList(t,n,s,o)}},_=N;class k{maxListeners=10;setMaxListeners(t){this.maxListeners=Number(t)||10}getMaxListeners(){return this.maxListeners}getEventListeners(){return this.eventListeners||(this.eventListeners={}),this.eventListeners}delEventListeners(){this.eventListeners=null}bind(t,e,i){const o=_.getEventList(this,t,e,i);if(!o.length)return this;const n=this.getEventListeners();return _.addEvents(n,o,this.maxListeners),this}once(t,e){return this.bind(t,e,{once:!0})}unbind(t,e,i){const o=this.getEventListeners();if(!arguments.length)return _.removeAllEvents(o),this;const n=_.getEventList(this,t,e,i);return n.length?(_.removeEvents(o,n),this):this}trigger(t,e){const i=this.getEventListeners();return _.sendEvent(this,i,t,e),this}}const V={DRAG_START:"drag_start",DRAG_MOVE:"drag_move",DRAG_END:"drag_end"};class O extends k{static EVENT=V;generateOptions(t){return d.merge({type:"mouse",startX:0,startY:0,previousX:0,previousY:0,currentX:0,currentY:0,moveX:0,moveY:0,offsetX:0,offsetY:0,changed:!1},t)}start(t,e){t&&(this.unbindEvents(),this.bindEvents(),this.options=this.generateOptions(e),this.startHandler(t))}bindEvents(){this.windowEvents={mousemove:{handler:t=>{this.iframeHandler(t),this.mouseMoveHandler(t)},options:!0},mouseup:{handler:t=>{this.mouseUpHandler(t)},options:{once:!0}}},d.bindEvents(this.windowEvents,window)}unbindEvents(){d.unbindEvents(this.windowEvents),this.windowEvents=null,this.previousIframe&&(this.previousIframe.classList.remove("tg-pointer-events-none"),this.previousIframe=null)}iframeHandler(t){const e=t.target;"IFRAME"===e.nodeName&&e!==this.previousIframe&&(this.previousIframe&&this.previousIframe.classList.remove("tg-pointer-events-none"),e.classList.add("tg-pointer-events-none"),this.previousIframe=e)}startHandler(t){const e=this.options;e.e=t,e.startX=t.pageX,e.startY=t.pageY,e.currentX=e.startX,e.currentY=e.startY,this.hasMoved=!1}mouseMoveHandler(t){d.preventDefault(t);const e=this.options;e.e=t,e.previousX=e.currentX,e.previousY=e.currentY,e.currentX=t.pageX,e.currentY=t.pageY,e.moveX=e.currentX-e.previousX,e.moveY=e.currentY-e.previousY,e.offsetX=e.currentX-e.startX,e.offsetY=e.currentY-e.startY,e.changed=!(0===e.offsetX&&0===e.offsetY),this.hasMoved?this.trigger(V.DRAG_MOVE,e):(this.hasMoved=!0,this.trigger(V.DRAG_START,e))}mouseUpHandler(t){this.unbindEvents();const e=this.options;this.hasMoved&&(e.e=t,d.preventDefault(t),this.trigger(V.DRAG_END,e))}destroy(){this.unbindEvents(),this.unbind()}}const $={Linear:{None:function(t){return t}}},D={MOTION_START:"motion_start",MOTION_MOVE:"motion_move",MOTION_END:"motion_end",MOTION_STOP:"motion_stop"};class B extends k{static EVENT=D;constructor(t){super(),this.constructorOptions=t,this.stopped=!0}generateOptions(t){return d.merge({easing:null,duration:100,from:0,till:1,data:0},this.constructorOptions,t)}stop(){return this.stopped||(this.stopped=!0,this.cancelAnimationFrame(),this.trigger(D.MOTION_STOP,this.data)),this}start(t){return this.stop(),this.stopped=!1,this.options=this.generateOptions(t),this.initCalculation(),this.data=this.calculateHandler(0),this.trigger(D.MOTION_START,this.data),this.stopped||(this.time=Date.now(),this.requestAnimationFrame(this.moveHandler)),this}requestAnimationFrame(t){this.requestId=window.requestAnimationFrame((()=>{t.apply(this)}))}cancelAnimationFrame(){window.cancelAnimationFrame(this.requestId)}getEasing(t){return"function"!=typeof t&&(t=d.getValue($,t,$.Linear.None)),t}moveHandler(){const t=Date.now()-this.time,e=this.duration;if(t{o[n]=this.calculateNumber(t,e[n],i[n])})),o):(this.calculateKeys=[],Object.keys(e).forEach((n=>{const s=e[n],r=i[n];d.isNum(s)&&d.isNum(r)&&(o[n]=this.calculateNumber(t,s,r),this.calculateKeys.push(n))})),o)}calculateNumber(t,e,i){return(i-e)*t+e}calculateNone(t,e,i){return e}destroy(){this.stop(),this.unbind()}}const A={TOUCH_START:"touch_start",TOUCH_MOVE:"touch_move",TOUCH_END:"touch_end",TOUCH_INERTIA:"touch_inertia"};class W extends k{static EVENT=A;generateOptions(t){return d.merge({type:"touch",startX:0,startY:0,previousX:0,previousY:0,currentX:0,currentY:0,moveX:0,moveY:0,offsetX:0,offsetY:0,changed:!1,touchLength:0,direction:"",inertia:!1,inertiaTime:200},t)}start(t,e){t&&(this.unbindEvents(),this.bindEvents(),this.options=this.generateOptions(e),this.startHandler(t))}bindEvents(){this.touchEvents={touchmove:{handler:t=>{this.touchMoveHandler(t)},options:{passive:!1}},touchend:{handler:t=>{this.touchEndHandler(t)},options:{passive:!1,once:!0}},touchcancel:{handler:t=>{this.touchCancelHandler(t)},options:{passive:!1,once:!0}}},d.bindEvents(this.touchEvents,document.body)}unbindEvents(){this.motionStop(),d.unbindEvents(this.touchEvents),this.touchEvents=null}startHandler(t){this.trackingPoints=[];const e=t.touches,i=e[0];if(!i)return;const o=this.options;o.e=t,o.startX=i.clientX,o.startY=i.clientY,o.currentX=o.startX,o.currentY=o.startY,o.touchLength=e.length,this.addTrackingPoint(o),this.trigger(A.TOUCH_START,o)}touchMoveHandler(t){const e=t.touches,i=e[0];if(!i)return;const o=this.options;o.e=t,o.previousX=o.currentX,o.previousY=o.currentY,o.currentX=i.clientX,o.currentY=i.clientY,o.moveX=o.currentX-o.previousX,o.moveY=o.currentY-o.previousY,o.offsetX=o.currentX-o.startX,o.offsetY=o.currentY-o.startY,o.changed=!(0===o.offsetX&&0===o.offsetY),o.touchLength=e.length,o.direction=this.getDirection(o),this.addTrackingPoint(o),this.trigger(A.TOUCH_MOVE,o)}touchEndHandler(t){this.unbindEvents();const e=this.options;e.e=t,this.trigger(A.TOUCH_END,e);const i=t.changedTouches[0];if(!i)return;const o=t.touches;e.touchLength=o.length,e.touchLength>0||(e.currentX=i.clientX,e.currentY=i.clientY,this.addTrackingPoint(e),this.motionStart())}touchCancelHandler(t){this.unbindEvents(),this.trigger(A.TOUCH_END,this.options)}getMotionInfo(){const t=this.trackingPoints;if(t.length<2)return;if(this.filterTrackingPoints(t),t.length<2)return;const e=t[0],i=t[t.length-1],o=i.t-e.t;if(o<=0)return;let n=i.x-e.x,s=i.y-e.y;const r=Math.abs(n),l=Math.abs(s);r>l?s=0:n=0;return{offsetDistance:Math.max(r,l),offsetTime:o,offsetX:n,offsetY:s}}motionStart(){const t=this.options;if(!t.inertia)return;const e=this.getMotionInfo();if(!e)return;const i=500*e.offsetDistance/50,o=d.clamp(i,20,2e3),n={x:20*(e.offsetX/e.offsetTime),y:20*(e.offsetY/e.offsetTime)};this.motion=new B,this.motion.bind(B.EVENT.MOTION_MOVE,((e,i)=>{t.touchInertiaX=i.x,t.touchInertiaY=i.y,this.trigger(A.TOUCH_INERTIA,t)})),this.motion.start({duration:o,from:n,till:{x:0,y:0}})}motionStop(){this.motion&&(this.motion.destroy(),this.motion=null)}getDirection(t){const i=t.offsetX,o=t.offsetY,n=Math.abs(i),s=Math.abs(o);if(n0)return e.UP;if(o<0)return e.DOWN}if(n>s){if(i>0)return e.LEFT;if(i<0)return e.RIGHT}return""}filterTrackingPoints(t){t.reverse();const e=t.length,i=Date.now(),o=this.options.inertiaTime;for(let n=0;no){t.length=n;break}t.reverse()}addTrackingPoint(t){if(!t.inertia)return;const e=t.currentX,i=t.currentY,o=Date.now(),n=this.trackingPoints;n.push({x:e,y:i,t:o}),n.length>100&&this.filterTrackingPoints(n)}destroy(){this.unbindEvents(),this.unbind()}}const F={getAllEvents:function(){return[].concat(H)},bindEvents:function(){this.unbindEvents(),this.containerEvents={mousedown:{handler:t=>{this.containerMouseDownHandler(t)},options:!0},mousemove:{handler:t=>{this.containerMouseMoveHandler(t)},options:!0},mouseover:{handler:t=>{this.containerMouseOverOutHandler(t,!0)},options:!0},mouseout:{handler:t=>{this.containerMouseOverOutHandler(t,!1)},options:!0},mouseenter:{handler:t=>{this.containerMouseEnterLeaveHandler(t,!0)},options:!0},mouseleave:{handler:t=>{this.containerMouseEnterLeaveHandler(t,!1)},options:!0},touchstart:{handler:t=>{this.containerTouchStartHandler(t)},options:{passive:!1}},touchmove:{handler:t=>{this.containerTouchMoveHandler(t)},options:{passive:!1}},touchend:{handler:t=>{this.containerTouchEndHandler(t)},options:{passive:!1}},touchcancel:{handler:t=>{this.containerTouchCancelHandler(t)},options:{passive:!1}},wheel:{handler:t=>{this.containerWheelHandler(t)},options:{passive:!1}},click:{handler:t=>{this.containerClickHandler(t)},options:!0},dblclick:{handler:t=>{this.containerDblClickHandler(t)},options:!0},contextmenu:{handler:t=>{this.containerContextMenuHandler(t)},options:!0},selectstart:{handler:t=>{this.containerSelectStartHandler(t)},options:!0},keydown:{handler:t=>{this.containerKeyDownHandler(t)},options:!0}},d.bindEvents(this.containerEvents,this.container),this.columnWidthDrag=new O,this.columnWidthDrag.bind(O.EVENT.DRAG_START,((t,e)=>{this.columnWidthDragStartHandler(t,e)})).bind(O.EVENT.DRAG_MOVE,((t,e)=>{this.columnWidthDragMoveHandler(t,e)})).bind(O.EVENT.DRAG_END,((t,e)=>{this.columnWidthDragEndHandler(t,e)})),this.columnWidthTouch=new W,this.columnWidthTouch.bind(W.EVENT.TOUCH_START,((t,e)=>{this.columnWidthTouchStartHandler(t,e)})).bind(W.EVENT.TOUCH_MOVE,((t,e)=>{this.columnWidthTouchMoveHandler(t,e)})).bind(W.EVENT.TOUCH_END,((t,e)=>{this.columnWidthTouchEndHandler(t,e)})),this.rowDrag=new O,this.rowDrag.bind(O.EVENT.DRAG_START,((t,e)=>{this.rowDragStartHandler(t,e)})).bind(O.EVENT.DRAG_MOVE,((t,e)=>{this.rowDragMoveHandler(t,e)})).bind(O.EVENT.DRAG_END,((t,e)=>{this.rowDragEndHandler(t,e)})),this.rowTouch=new W,this.rowTouch.bind(W.EVENT.TOUCH_START,((t,e)=>{this.rowDragStartHandler(t,e)})).bind(W.EVENT.TOUCH_MOVE,((t,e)=>{this.rowDragMoveHandler(t,e)})).bind(W.EVENT.TOUCH_END,((t,e)=>{this.rowDragEndHandler(t,e)})),this.scrollTouch=new W,this.scrollTouch.bind(W.EVENT.TOUCH_START,((t,e)=>{this.scrollTouchStartHandler(t,e)})).bind(W.EVENT.TOUCH_MOVE,((t,e)=>{this.scrollTouchMoveHandler(t,e)})).bind(W.EVENT.TOUCH_END,((t,e)=>{this.scrollTouchEndHandler(t,e)})).bind(W.EVENT.TOUCH_INERTIA,((t,e)=>{this.scrollTouchInertiaHandler(t,e)}))},isDefaultPrevented:function(t){if(t){if(t.defaultPrevented)return!0;if(t.e&&t.e.defaultPrevented)return!0}return!1},getEventClosestNode:function(t,e){if(t&&t!==this.container)return t.classList.contains(e)?t:this.getEventClosestNode(t.parentNode,e)},getEventClosestData:function(t){if(!t||t===this.container)return;const e=this.getNodeDataCache(t);return e||this.getEventClosestData(t.parentNode)},getEventData:function(t){const e=this.getEventClosestData(t.target);if(e)return e.e=t,e},getWheelDelta:function(t,e,i){let o=t.deltaX,n=t.deltaY;return d.isNum(o)||(o=d.toNum(t.wheelDeltaX)),d.isNum(n)||(n=d.toNum(t.wheelDeltaY||t.wheelDelta)),1===t.deltaMode?(n*=e,o*=e):2===t.deltaMode&&(n*=i,o*=i),{deltaX:o,deltaY:n}},columnResizingMouseDownHandler:function(t){const e=this.getEventData(t);e&&this.columnWidthDrag.start(t,{columnItem:e.columnItem})},columnResizingTouchStartHandler:function(t){const e=this.getEventData(t);e&&this.columnWidthTouch.start(t,{columnItem:e.columnItem})},columnResizingMouseEnterLeaveHandler:function(t,e){const i=this.getEventData(t);i&&(e?this.showColumnLine(i.columnItem):this.hideColumnLine())},rowDragMouseDownHandler:function(t){const e=this.getEventData(t);e&&this.rowDrag.start(t,{rowItem:e.rowItem})},rowDragTouchStartHandler:function(t){const e=this.getEventData(t);e&&(this.protectedItem=e,this.rowTouch.start(t,{rowItem:e.rowItem}))},scrollPaneTouchStartHandler:function(t){if(!this.hasHScroll&&!this.hasVScroll)return;const e=this.getEventData(t);this.protectedItem=e,this.scrollTouch.start(t,{inertia:!0})},sortHandler:function(t,e){const i=e.columnItem;if(!this.isColumnSortable(i))return;const o=this.getEventClosestNode(t.target,"tg-column-name"),n=this.getEventClosestNode(t.target,"tg-column-sort");(o||n)&&(this.trigger(y.onSort,e),this.isDefaultPrevented(e)||this.setSortColumn(i))},selectIconAllClickHandler:function(t){const e=w(t);let i=!1;(e.hasClass("tg-selected")||e.hasClass("tg-mixed"))&&(i=!0),i=!i,this.selectAll(i)},cellEnterLeaveHandler:function(t,e){const i=this.getEventData(t);i&&(e?this.trigger(y.onCellMouseEnter,i):this.trigger(y.onCellMouseLeave,i))},rowEnterLeaveHandler:function(t,e){const i=this.getEventData(t);if(i&&(e?this.trigger(y.onRowMouseEnter,i):this.trigger(y.onRowMouseLeave,i),!this.isDefaultPrevented(i)))return this.renderRowHover(i.rowItem,e),this},containerMouseDownHandler:function(t){if(this.getEventClosestNode(t.target,"tg-column-resizing"))this.columnResizingMouseDownHandler(t);else if(this.options.rowDragVisible){this.getEventClosestNode(t.target,"tg-row-drag-icon")&&this.rowDragMouseDownHandler(t)}},containerMouseMoveHandler:function(t){this.scrollbarFadeInOutHandler(t,!0)},containerMouseOverOutHandler:function(t,e){const i=this.getEventClosestNode(t.target,"tg-cell"),o=this.getEventClosestNode(t.target,"tg-header-item");if(i||o){const i=this.getEventData(t);if(!i)return;e?this.trigger(y.onMouseOver,i):this.trigger(y.onMouseOut,i)}},containerMouseEnterLeaveHandler:function(t,e){this.scrollbarFadeInOutHandler(t,e);if(w(t.target).hasClass("tg-column-resizing"))return void this.columnResizingMouseEnterLeaveHandler(t,e);if(w(t.target).hasClass("tg-cell"))return void this.cellEnterLeaveHandler(t,e);w(t.target).hasClass("tg-row")&&this.rowEnterLeaveHandler(t,e)},containerTouchStartHandler:function(t){this.scrollTouch.motionStop();if(this.getEventClosestNode(t.target,"tg-column-resizing"))return void this.columnResizingTouchStartHandler(t);if(this.options.rowDragVisible){if(this.getEventClosestNode(t.target,"tg-row-drag-icon"))return void this.rowDragTouchStartHandler(t)}const e=this.getEventData(t);e&&(this.trigger(y.onTouchStart,e),this.isDefaultPrevented(e))||this.scrollPaneTouchStartHandler(t)},containerTouchMoveHandler:function(t){const e=this.getEventData(t);e&&this.trigger(y.onTouchMove,e)},containerTouchEndHandler:function(t){const e=this.getEventData(t);e&&this.trigger(y.onTouchEnd,e)},containerTouchCancelHandler:function(t){this.trigger(y.onTouchEnd,{e:t})},containerWheelHandler:function(t){if(this.hasMask)return;const e=this.getRowHeight(),i=this.bodyHeight,o=this.getWheelDelta(t,e,i),n={e:t,deltaX:o.deltaX,deltaY:o.deltaY,delta:o};if(this.trigger(y.onMouseWheel,n),this.isDefaultPrevented(n))return;let s=!1;this.scrollPaneHidden&&(s=this.scrollPaneFrozen.setOffsetH(o.deltaX),o.deltaX=0);(this.scrollPane.mouseWheelHandler(o)||s)&&d.preventDefault(t)},containerClickHandler:function(t){if(this.getEventClosestNode(t.target,"tg-tree-icon-all"))return void this.toggleAllRows();const e=this.getEventClosestNode(t.target,"tg-select-icon-all");if(e)return void this.selectIconAllClickHandler(e);const i=this.getEventData(t);if(!i)return;if(this.getEventClosestNode(t.target,"tg-header-item")){if(this.trigger(y.onClick,i),this.isDefaultPrevented(i))return;return void this.sortHandler(t,i)}if(this.getEventClosestNode(t.target,"tg-tree-icon"))return void this.toggleRow(i.rowItem);this.getEventClosestNode(t.target,"tg-select-icon")?this.setRowSelected(i.rowItem,t):this.trigger(y.onClick,i)},containerDblClickHandler:function(t){const e=this.getEventData(t)||{e:t};this.trigger(y.onDblClick,e)},containerContextMenuHandler:function(t){const e=this.getEventData(t)||{e:t};this.trigger(y.onContextMenu,e)},containerSelectStartHandler:function(t){if(this.options.textSelectable)return;w(t.target).is("input,textarea,code")||d.preventDefault(t)},containerKeyDownHandler:function(t){if(this.hasMask)return;const e={e:t};if(this.trigger(y.onKeyDown,e),this.isDefaultPrevented(e))return;const i=t.keyCode,o={9:this.keyTabHandler,13:this.keyEnterHandler,27:this.keyEscHandler,33:this.keyPageUpHandler,34:this.keyPageDownHandler,35:this.keyEndHandler,36:this.keyHomeHandler,37:this.keyLeftHandler,38:this.keyUpHandler,39:this.keyRightHandler,40:this.keyDownHandler}[i];if(!o)return;o.call(this,t)&&d.preventDefault(t)},unbindEvents:function(){d.unbindEvents(this.containerEvents),this.containerEvents=null,this.columnWidthDrag&&(this.columnWidthDrag.destroy(),this.columnWidthDrag=null),this.columnWidthTouch&&(this.columnWidthTouch.destroy(),this.columnWidthTouch=null),this.rowDrag&&(this.rowDrag.destroy(),this.rowDrag=null),this.rowTouch&&(this.rowTouch.destroy(),this.rowTouch=null),this.scrollTouch&&(this.scrollTouch.destroy(),this.scrollTouch=null),this.protectedItem=null}},G={exportData:function(t){const e=this.getData();return{columns:this.getTreeSnapshot(e.columns,t),rows:this.getTreeSnapshot(e.rows,t)}},isItemExportable:function(t){return!!t&&(!d.hasOwn(t,"exportable")||Boolean(t.exportable))},getTreeSnapshot:function(t,e){const i=(t,o)=>{d.isList(o)&&o.forEach((o=>{if(!this.isItemExportable(o))return;const n=this.getItemSnapshot(o,e),s=o.subs;Array.isArray(s)&&(n.subs=[],i(n.subs,s)),t.push(n)}))},o=[];return i(o,t),o},getItemSnapshot:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i={};return Object.keys(t).forEach((o=>{!0!==e[o]?!1!==e[o]&&"subs"!==o&&0!==o.indexOf("tg_")&&(i[o]=t[o]):i[o]=t[o]})),i}},j={flushRow:function(t){d.toList(t).forEach((t=>{this.deleteRowCache(t)}))},flushRowFrom:function(t){d.isNum(t)&&(0!==t?this.forEachRowsCache((e=>{e>=t&&this.deleteRowCache(e)})):this.flushBody())},flushBody:function(){this.forEachRowsCache((t=>{this.deleteRowCache(t)}))},flushSort:function(){this.frozenInfo.rows?this.flushRowFrom(this.frozenInfo.rows):this.flushBody()},flushColumn:function(t){const e=d.toList(t);this.forEachRowsCache(((t,i,o,n)=>{e.forEach((t=>{this.deleteCellCache(t,o,n)}))}))},flushColumnFrom:function(t){d.isNum(t)&&this.forEachRowsCache(((e,i,o,n)=>{o.forEach(((e,i)=>{i>=t&&this.deleteCellCache(i,o,n)}))}))},flushCell:function(t,e){const i=d.toList(t),o=d.toList(e);i.forEach((t=>{const e=this.getRowCache(t);if(!e)return;const i=e.cellNodes,n=e.observerNodes;o.forEach((t=>{this.deleteCellCache(t,i,n)}))}))},flushWithViewport:function(){const{rows:t,columns:e}=this.viewport;this.forEachRowsCache(((i,o,n,s)=>{t.includes(i)?n.forEach(((t,i)=>{e.includes(i)||this.deleteCellCache(i,n,s)})):this.deleteRowCache(i)}))}},U={"sort-h":'\n\n \n \n \n \n\n',"sort-v":'\n\n \n \n \n \n\n',checkbox:'\n\n \n \n \n\n',radio:'
    ',drag:'\n\n \n\n',tree:'\n\n \n \n\n'},X={icons:U,getIcon:function(t){let e=U[t];return e=String(e).trim(),e}},Y={header:function(t,e,i,o){return t},null:function(t,e,i,o){return e&&e.tg_group?t:null==t?"—":t},blank:function(t,e,i,o){return""},string:function(t,e,i,o){return t},number:function(t,e,i,o){return t},icon:function(t,e,i,o){return`${t}`},select:function(t,e,i,o){return this.isRowSelectable(e)?this.getSelectFormatterContent(e):""},rowDrag:function(t,e,i,o){return this.getRowDragFormatterContent(e)},rowNumber:function(t,e,i,o){return e.tg_row_number||""},tree:function(t,e,i,o){return this.getTreeFormatterContent(t,e)}},K={setFormatter:function(t,e){this.renderType="all";let i=t;if("string"==typeof t){if(this.formatters)return this.formatters[t]=e,this;i={},i[t]=e}return this.customFormatters=i,this},getFormatter:function(t){if(!t)return;const e=this.formatters[t];return"function"==typeof e?e.bind(this):void 0},getDefaultFormatter:function(t){return(Y[t]||Y.string).bind(this)},getSelectFormatterContent:function(t){let e="radio";this.options.selectMultiple&&(e="checkbox");const i=X.getIcon(e);return`
    ${i}
    `},getRowDragFormatterContent:function(t){if(t.tg_frozen)return"";return`
    ${X.getIcon("drag")}
    `},getTreeIndentWidth:function(t,i,o){if(!t)return 0;let n=5;return i||(n+=e.TREE_INDENT),n+=o*e.TREE_INDENT,n},getTreeFormatterContent:function(t,e){const i=this.rowsInfo.isTree,o=e.tg_group,n=this.isEmptyGroup(e);n&&(e.collapsed=!0);const s=e.collapsed,r=d.toNum(e.tg_level),l=this.getTreeIndentWidth(i,o,r),h=[];if(h.push(`
    `),o){const t={"tg-tree-icon":!0,"tg-tree-icon-collapsed":s,"tg-tree-icon-expanded":!s,"tg-tree-icon-empty":n},e=X.getIcon("tree"),i=`
    ${e}
    `;h.push(i)}return h.push(`
    ${t}
    `),h.push("
    "),h.join("")}},q={renderHeaderTables:function(){this.clearHeaderCache();const t=this.viewColumns,e=this.frozenInfo.columns;this.hasTreeColumn=!1,this.hasSortColumn=!1;let i=[],o=[];for(let n=0,s=t.length;n=e?o.push(s):i.push(s)}if(this.frozenInfo.right){const t=i;i=o,o=t}this.renderHeaderTable(i,this.$headerL),this.renderHeaderTable(o,this.$headerR)},renderHeaderTable:function(t,e){const i=document.createElement("div"),o=["tg-header-table"];this.hasSortColumn&&(o.push("tg-header-sortable"),o.push(`tg-header-sort-${this.options.sortIndicator}`)),i.className=d.classMap(o);const n=t.length;if(n){let e=t[n-1];e&&"tg-column-blank"===e.id&&(e=t[n-2]),t.forEach((t=>{this.renderHeaderItem(t,i,e)}))}e.append(i)},renderHeaderItem:function(t,e,i){const o=t.tg_view_index;if(this.getHeaderCache(o))return;const n=this.getHeaderItemClass(t,i),s=d.styleMap(t.headerStyleMap),r={column:o,class:n,data:t.id};s&&(r.style=s);const l=[this.createColumnHeader(t)];if(this.isColumnResizable(t)){const e=this.createColumnResizing(t);l.push(e)}const h=this.createElement("div",r,l);e.appendChild(h),this.setHeaderCache(o,h),this.setNodeDataCache(h,{rowItem:this.headerRowItem,column:o,columnItem:t,headerNode:h}),t.tg_parent&&this.renderHeaderItem(t.tg_parent,e)},createColumnHeader:function(t){const e={class:this.getHeaderClass(t),style:this.getHeaderStyle(t)},i=[this.createColumnName(t)];if(this.hasSortColumn&&!t.tg_group){const e=this.createColumnSort(t);i.push(e)}return this.createElement("div",e,i)},createColumnName:function(t){const e=["tg-column-name"];t.tg_group&&e.push("tg-header-group-name");const i={class:e.join(" ")};let o=t.name;const n=t.tg_headerFormatter;return"function"==typeof n&&(o=n.call(this,o,this.headerRowItem,t)),"tree"===t.formatter?o=this.createHeaderTreeName(o):t===this.selectColumn&&this.isSelectAllVisible()&&(o=this.createHeaderSelectName()),this.createElement("div",i,o)},createHeaderTreeName:function(t){this.hasTreeColumn=!0;const e=[];if(this.options.collapseAllVisible){const t=X.getIcon("tree"),i=this.createElement("div",{class:"tg-tree-icon tg-tree-icon-all"},t);e.push(i)}else{const t=this.createElement("div",{class:"tg-tree-icon"});e.push(t)}const i=this.createElement("div",{class:"tg-tree-name"},t);e.push(i);return this.createElement("div",{class:"tg-tree"},e)},createHeaderSelectName:function(){const t=X.getIcon("checkbox");return this.createElement("div",{class:"tg-select-icon-all tg-checkbox"},t)},createColumnSort:function(t){let e;return this.isColumnSortable(t)&&(e="h"===this.options.sortIndicator?this.createSortIndicatorH(t):this.createSortIndicatorV(t)),this.createElement("div",{class:"tg-column-sort"},e)},createSortIndicatorH:function(t){const e=X.getIcon("sort-h"),i=[this.createElement("div",{class:"tg-sort-indicator-line"}),this.createElement("div",{class:"tg-sort-indicator-icon"},e)];return this.createElement("div",{class:"tg-sort-indicator"},i)},createSortIndicatorV:function(t){const e=X.getIcon("sort-v"),i=[this.createElement("div",{class:"tg-sort-indicator-icon"},e)];return this.createElement("div",{class:"tg-sort-indicator"},i)},createColumnResizing:function(){return this.createElement("div",{class:"tg-column-resizing"})},getHeaderItemClass:function(t,e){const i=["tg-header-item"];return t.tg_group&&i.push("tg-header-group-item"),t===e&&i.push("tg-header-column-last"),i.push(`tg-c-${t.tg_view_index}`),i.push(`tg-h-${t.tg_layer}`),t.tg_combination&&i.push(`tg-h-${t.tg_combination}`),i.push(d.classMap(t.headerClassMap)),d.classMap(i)},getHeaderClass:function(t){const e=["tg-column-header"];return"tree"===t.formatter&&(e.push("tg-tree-header"),this.rowsInfo.isTree&&e.push("tg-tree-header-indent")),this.isColumnSortable(t)&&e.push(`tg-column-sortable tg-column-sort-${this.options.sortIndicator}`),t.align&&e.push(`tg-align-${t.align}`),e.join(" ")},getHeaderStyle:function(t){const e=[d.styleMap(t.headerStyleMap)],i=t.tg_width;return this.isInvisible(t)||i<=0?e.push("display:none;"):e.push(`width:${i}px;`),e.join("")}},J={renderHeader:function(){this.cssRulesInvalid=!0,this.$headerL.empty(),this.$headerR.empty(),this.resetCssDisplay(),this.renderHeaderTables(),this.renderHeaderSort(),this.headerCreated=!0,this.trigger(y.onHeaderUpdated,{node:this.$headerFrame.get(0)})},initHeaderLayerHeight:function(){this.updateScrollPaneHiddenState(),this.resetCssDisplay(),this.viewAllColumns.forEach((t=>{this.updateColumnHeaderHeight(t)})),this.resetCssDisplay("none"),this.updateHeaderLayerHeight()},updateHeaderLayerHeight:function(){const t={},e=this.columnsInfo.maxLevel;for(let i=0;i<=e;i++)t[i]=0;const i=[];this.viewAllColumns.forEach((function(e){if(e.tg_combination)i.push(e);else{const i=e.tg_height,o=e.tg_layer;t[o]=Math.max(t[o],i)}})),i.forEach((function(e){let i=e.tg_height;const o=e.tg_combination.split(""),n=o.pop();o.forEach((function(e){i-=t[e]||0})),t[n]=Math.max(t[n],i)}));const o=JSON.stringify(t);this.previousHeaderLayerHeight!==o&&(this.previousHeaderLayerHeight=o,this.headerLayerHeight=t,this.cssRulesInvalid=!0)}};var Q=i(915);const Z={create:function(t){this.id=d.uid(4,"tg-"),d.isObject(t)||(t={container:t}),this.constructorOptions=t,this.createCache(),this.createView(t.container)},createView:function(t){this.createHolder(t),this.$holder?(this.createGlobalStyle(),this.createContainer()):console.error("ERROR: Grid requires a container")},createHolder:function(t){const e=w(t);if(!e.length)return;this.$holder=e,this.$holder.empty(),this.holder=this.$holder.get(0);const i=this.holder.getRootNode();this.shadowRoot=null,i&&i.host&&(this.shadowRoot=i)},createGlobalStyle:function(){const t=this.shadowRoot||document.head;if(t.querySelector(`style[context="${e.ID}"]`))return;const i=document.createElement("style");i.setAttribute("context",e.ID),i.innerHTML=Q.A.toString(),t.appendChild(i)},createContainer:function(){return this.$container=w('
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n').appendTo(this.$holder),this.$container.attr("id",this.id),this.$container.addClass(`${e.NS} ${this.id}`),this.container=this.$container.get(0),d.setInstance(this.container,this),this.$headerFrame=this.$container.find(".tg-header-frame"),this.$paneHL=this.$headerFrame.find(".tg-pane-header-left"),this.$paneHR=this.$headerFrame.find(".tg-pane-header-right"),this.$headerL=this.$paneHL.find(".tg-header-left"),this.$headerR=this.$paneHR.find(".tg-header-right"),this.$header=w().add(this.$headerL).add(this.$headerR),this.$bodyFrame=this.$container.find(".tg-body-frame"),this.$paneTL=this.$bodyFrame.find(".tg-pane-top-left"),this.$paneTR=this.$bodyFrame.find(".tg-pane-top-right"),this.$paneBL=this.$bodyFrame.find(".tg-pane-bottom-left"),this.$paneBR=this.$bodyFrame.find(".tg-pane-bottom-right"),this.$bodyTL=this.$paneTL.find(".tg-body-top-left"),this.$bodyTR=this.$paneTR.find(".tg-body-top-right"),this.$bodyBL=this.$paneBL.find(".tg-body-bottom-left"),this.$bodyBR=this.$paneBR.find(".tg-body-bottom-right"),this.$body=w().add(this.$bodyTL).add(this.$bodyTR).add(this.$bodyBL).add(this.$bodyBR),this.$columnLineContainer=this.$container.find(".tg-column-line"),this.$columnLineItem=this.$columnLineContainer.find(".tg-column-line-item"),this.$columnLineItemL=this.$columnLineContainer.find(".tg-column-line-l"),this.$columnLineItemR=this.$columnLineContainer.find(".tg-column-line-r"),this}},tt={initColumnsHandler:function(){this.columns=this.data.columns,this.columns.forEach(((t,e)=>{t&&"object"==typeof t||(this.columns[e]={})}));const t=this.getPrivateColumns();this.columnsInfo=this.initTreeInfo(t,this.frozenInfo.column);const e=[],i=[],o=(t,n)=>{if(!d.isList(t))return;let s,r=0;t.forEach((t=>{if(!this.isInvisible(t))if(t.tg_group){if(this.isEmptyGroup(t))return;i.push(t),o(t.subs,t)}else t.tg_list_index=r,r+=1,t.tg_list_last=!1,s=t,e.push(t)})),s&&(s.tg_list_last=!0)};o(t),e.forEach((t=>{this.initColumnItemHandler(t)})),i.forEach((t=>{this.initColumnGroupHandler(t)}));const n=[].concat(e).concat(i);this.initViewList(n,((t,e)=>{})),this.viewColumns=e,this.viewGroupColumns=i,this.viewAllColumns=n,this.initHeaderHandler(t),this.initSortColumn()},getPrivateColumns:function(){const t=this.options;this.selectColumn=t.selectColumn,this.rowDragColumn=t.rowDragColumn,this.rowNumberColumn=t.rowNumberColumn,this.blankColumn=t.blankColumn;let e=[];const i=()=>{t.selectVisible&&e.push(this.selectColumn),t.rowDragVisible&&e.push(this.rowDragColumn),t.rowNumberVisible&&(this.rowNumberColumn.width=t.rowNumberWidth,e.push(this.rowNumberColumn))};if(this.frozenInfo.right){const t=this.frozenInfo.column;this.columns.forEach(((o,n)=>{e.push(o),n===t&&i()}))}else i(),e=e.concat(this.columns);return e.push(this.blankColumn),e},setColumns:function(t){this.data.columns=d.toList(t),this.rerender()},getColumns:function(){return this.columns},getViewColumns:function(t){return t?this.viewAllColumns:this.viewColumns},initColumnItemHandler:function(t){this.initColumnProps(t),this.initColumnFormatter(t),this.initColumnWidth(t)},initColumnGroupHandler:function(t){this.initColumnFormatterByName(t,"headerFormatter","header")},initColumnProps:function(t){const e=this.options.columnTypes;if(!d.hasOwn(t,"type")){const i=e[t.id];"string"==typeof i&&(t.type=i)}let i=this.options.columnProps;const o=e[t.type];o&&"object"==typeof o&&(i=d.merge(i,o));for(const e in i)d.hasOwn(t,e)||(t[e]=i[e])},initColumnFormatter:function(t){this.initColumnFormatterByName(t,"headerFormatter","header");let e=t.type;const i=t.formatter;"string"==typeof i&&(e=i),this.initColumnFormatterByName(t,"formatter",e)},initColumnFormatterByName:function(t,e,i){let o=t[e];"function"!=typeof o?(o=this.getFormatter(i),t[`tg_${e}`]=o||this.getFormatter("string")):t[`tg_${e}`]=o.bind(this)},initColumnWidth:function(t){if(t!==this.blankColumn)return d.isNum(t.width)&&t.width>=0?(t.tg_width=t.width,t.minWidth=Math.min(t.minWidth,t.tg_width),void(t.maxWidth=Math.max(t.maxWidth,t.tg_width))):void this.initColumnWidthByName(t);t.tg_width=0},initColumnWidthByName:function(t){const e=this.getComputedColumnWidth(t);d.isNum(e)&&(t.tg_width=e)},getComputedColumnWidth:function(t){const e=t.name||"",i=d.getCharLen(e);let o=Math.round(10*i);return o>103&&(o=Math.max(103,Math.round(10*i/2)),o>133&&(o=Math.max(133,Math.round(10*i/3)),o>163&&(o=Math.max(163,Math.round(10*i/4))))),d.clamp(o,t.minWidth,t.maxWidth)},initSortColumn:function(){this.sortColumn=null;const t=this.options,e=t.sortField;if(!e)return;const i=this.getColumnItemById(e);return i&&this.isColumnSortable(i)?(d.hasOwn(i,"sortAsc")||(i.sortAsc=t.sortAsc),this.sortColumn=i,this):void 0}},et={initHeaderHandler:function(t){this.initHeaderRowItem(),this.viewGroupColumns.reverse(),this.initGroupColumnsWidth(),this.initGroupColumnsLayer(t)},initHeaderRowItem:function(){this.headerRowItem={tg_index:-1,tg_view_index:-1},this.viewAllColumns.forEach((t=>{d.hasOwn(t,"id")&&(this.headerRowItem[t.id]=t.name)}))},initGroupColumnsWidth:function(){this.viewGroupColumns.forEach((t=>{let e=0;t.subs.forEach((t=>{this.isInvisible(t)||(e+=t.tg_width)})),t.tg_width=e}))},initGroupColumnsLayer:function(t){const e=this.columnsInfo.maxLevel;this.viewColumns.forEach((function(t){t.tg_layer=e,t.tg_parent&&(t.tg_parent.tg_layer=e-1)})),this.viewGroupColumns.forEach((function(t){const e=t.tg_layer,i=t.tg_parent;if(i){let t=e-1;d.isNum(i.tg_layer)&&(t=Math.min(t,i.tg_layer)),i.tg_layer=t}})),this.initColumnRowspanHandler(t,0)},initColumnRowspanHandler:function(t,e){t.forEach((t=>{const i=this.initColumnCombinationHandler(t,e);t.tg_group&&this.initColumnRowspanHandler(t.subs,e+i)}))},initColumnCombinationHandler:function(t,e){const i=[],o=t.tg_layer;for(;e<=o;)i.push(e),e+=1;i.reverse();const n=i.length;let s="";return n>1&&(s=i.join("")),t.tg_combination=s,n}},it={},ot={name:"",minWidth:81,maxWidth:300},nt=function(t){return null==t},st=function(t,e){const i=nt(t),o=nt(e);return i&&o?0:i?1:o?-1:void 0},rt=function(t,e){return t.tg_index>e.tg_index?1:-1},lt=function(t,e){return rt(t,e)},ht=function(t,e){if("string"==typeof t&&"string"==typeof e){const i=t.toUpperCase(),o=e.toUpperCase();if(i!==o)return i>o?-1:1}return t>e?-1:1},at=function(t,e,i,o){return t?-1:e?1:ht(i,o)},ct=function(t,e){const i="number"==typeof t,o="number"==typeof e;return i&&o?t>e?-1:1:at(i,o,t,e)},dt=function(t,e){const i=new Date(t),o=new Date(e),n=d.isDate(i),s=d.isDate(o);if(n&&s){const t=i.getTime(),e=o.getTime();if(t===e)return;return t>e?-1:1}return at(n,s,t,e)},ut=function(t,e){const i="boolean"==typeof t,o="boolean"==typeof e;return i&&o?t>e?-1:1:at(i,o,t,e)},gt=function(t,e,i,o){const n=t[i.sortField],s=e[i.sortField],r=st(n,s);if("number"==typeof r)return 0===r?lt(t,e):i.sortBlankFactor*r;if(n!==s&&"function"==typeof o){const t=o(n,s);if(d.isNum(t))return i.sortFactor*t}return lt(t,e)},ft={blankValue:st,equal:lt,index:rt,value:gt,diffType:at,string:function(t,e,i){return gt(t,e,i,ht)},stringValue:ht,number:function(t,e,i){return gt(t,e,i,ct)},numberValue:ct,date:function(t,e,i){return gt(t,e,i,dt)},dateValue:dt,boolean:function(t,e,i){return gt(t,e,i,ut)},booleanValue:ut};const pt={initOptionsHandler:function(){return this.options=this.generateOptions(),this.initOptionsFormatters(),this.initOptionsSort(),this.initOptionsFrozen(),this.initOptionsScrollbar(),this.initOptionsContainer(),this.initBindWindowResize(),this.initBindContainerResize(),this},generateOptions(){const t={className:e.NS,theme:e.ID,headerVisible:!0,rowHeight:32,rowFilter:null,rowFilteredSort:null,rowNotFound:"",rowMoveCrossLevel:!0,rowCacheLength:0,rowProps:it,columnTypes:{tree:{type:"tree",formatter:"tree",width:230,minWidth:120,maxWidth:810},number:{type:"number",align:"right"},date:{type:"date",align:"right"},name:"tree"},columnCacheLength:0,columnProps:ot,collapseAllOnInit:null,collapseAllVisible:!0,selectAllOnInit:null,selectVisible:!1,selectAllVisible:!0,selectMultiple:!0,selectColumn:{private:!0,id:"tg-column-select",name:"",formatter:"select",headerClassMap:"tg-header-select",classMap:"tg-cell-select",width:36,align:"center",resizable:!1,sortable:!1,exportable:!1},rowDragCrossLevel:!0,rowDragVisible:!1,rowDragColumn:{private:!0,id:"tg-column-row-drag",name:"",formatter:"rowDrag",headerClassMap:"tg-header-row-drag",classMap:"tg-cell-row-drag",align:"center",width:36,resizable:!1,sortable:!1,exportable:!1},rowNumberWidth:36,rowNumberFilter:null,rowNumberVisible:!1,rowNumberColumn:{private:!0,id:"tg-column-row-number",name:"",formatter:"rowNumber",headerClassMap:"tg-header-row-number",classMap:"tg-cell-row-number",align:"center",maxWidth:100,sortable:!1,exportable:!1},blankColumn:{private:!0,id:"tg-column-blank",name:"",formatter:"blank",headerClassMap:"tg-header-blank",classMap:"tg-cell-blank",width:0,minWidth:0,maxWidth:4096,resizable:!1,sortable:!1,exportable:!1},sortField:"",sortAsc:!0,sortBlankValueBottom:!0,sortComparers:ft,sortOnInit:!1,sortIndicator:"h",highlightKeywords:{textKey:"tg_text_",textGenerator:null,highlightKey:"tg_highlight_",highlightPre:"",highlightPost:""},frozenRow:-1,frozenRowMax:10,frozenRowHoverable:!1,frozenBottom:!1,frozenColumn:-1,frozenColumnMax:10,frozenRight:!1,scrollbarSize:12,scrollbarSizeH:null,scrollbarSizeV:null,scrollbarRound:!1,scrollbarFade:!1,scrollbarFadeTimeout:1e3,scrollbarType:"auto",scrollPaneMinWidth:30,scrollPaneGradient:30,autoHeight:!1,textSelectable:!1,bindWindowResize:!1,bindContainerResize:!1,cellResizeObserver:null},i=this.generateThemeOptions();return d.merge(t,i,this.constructorOptions,this.customOptions,this.dataOptions)},generateThemeOptions(){const t=this.pickOptions("theme").pop();if(t)return this.getThemeOptions(t)},pickOptions(t){return[this.constructorOptions,this.customOptions,this.dataOptions].map((e=>e&&e[t])).filter((t=>t))},initOptionsFormatters(){let t;const e=this.pickOptions("formatters");e.length&&(t=d.merge.apply(null,e)),this.formatters=d.merge(Y,t,this.customFormatters),this.nullFormatter=this.getFormatter("null")},initOptionsSort(){"v"!==this.options.sortIndicator&&(this.options.sortIndicator="h")},initOptionsFrozen:function(){const t=this.options;this.frozenInfo={column:-1,row:-1,columns:0,rows:0,bottom:Boolean(t.frozenBottom),right:Boolean(t.frozenRight)};let e=d.toNum(t.frozenColumn,!0);e=d.clamp(e,-1,t.frozenColumnMax),e>-1&&!this.frozenInfo.right&&(t.selectVisible&&(e+=1),t.rowDragVisible&&(e+=1),t.rowNumberVisible&&(e+=1)),this.frozenInfo.column=e,e>-1?this.frozenInfo.columns=e+1:(this.frozenInfo.columns=0,this.frozenInfo.right=!1);let i=d.toNum(t.frozenRow,!0);i=d.clamp(i,-1,t.frozenRowMax),this.frozenInfo.row=i,i>-1?this.frozenInfo.rows=i+1:(this.frozenInfo.rows=0,this.frozenInfo.bottom=!1)},initOptionsScrollbar:function(){const t=this.options;("auto"===t.scrollbarType&&d.isTouchDevice()||["touch","mobile"].includes(t.scrollbarType))&&(t.scrollbarFade=!0,t.scrollbarSize=6,t.scrollbarRound=!0);const e=d.toNum(t.scrollbarSize);this.scrollbarSizeH=e,d.isNum(t.scrollbarSizeH)&&(this.scrollbarSizeH=t.scrollbarSizeH),this.scrollbarSizeV=e,d.isNum(t.scrollbarSizeV)&&(this.scrollbarSizeV=t.scrollbarSizeV)},initOptionsContainer:function(){this.$container.attr("id",this.id);const t=this.options;this.$container.removeClass();const i=[e.NS,this.id,`tg-${t.theme}`,t.className];t.textSelectable||i.push("tg-text-unselectable"),d.isTouchDevice()&&i.push("tg-touch-device"),this.$container.addClass(d.classMap(i))},setTextSelectable:function(t){this.options.textSelectable&&(t?this.$container.removeClass("tg-text-unselectable"):this.$container.addClass("tg-text-unselectable"))}},mt={initBindWindowResize:function(){this.unbindWindowResize(),this.options.bindWindowResize&&(this.windowResizeEvents={resize:{handler:t=>{this.resize()}}},d.bindEvents(this.windowResizeEvents,window))},unbindWindowResize:function(){d.unbindEvents(this.windowResizeEvents)},createResizeObserver:function(t){if("undefined"==typeof ResizeObserver)return console.error("ERROR: This browser does not support ResizeObserver"),{observe:()=>{},unobserve:()=>{},disconnect:()=>{}};return new ResizeObserver((e=>{t.call(this,e)}))},initBindContainerResize:function(){this.unbindContainerResize(),this.options.bindContainerResize&&this.holder&&(this.resizeObserver=this.createResizeObserver((t=>{Boolean(this.holder.offsetWidth||this.holder.offsetHeight||this.holder.getClientRects().length)&&this.resize()})),this.resizeObserver.observe(this.holder))},unbindContainerResize:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},bt={initRowsHandler:function(){this.rows=this.data.rows,this.rowsInfo=this.initTreeInfo(this.rows,this.frozenInfo.row)},getRows:function(){return this.rows},getViewRows:function(){return this.viewRows},createViewRows:function(){this.initRowFilterHandler();const t=[],e=this.getRowNumberFilter();let i=1;const o=(t,o)=>{if(e.call(this,t,o))return t.tg_row_number=i,void(i+=1);t.tg_row_number=""},n=(e,i,s)=>{if(!d.isList(e))return;let r,l=0;e.forEach((e=>{if(this.isInvisible(e))return;e.tg_list_index=l,l+=1,e.tg_list_last=!1,r=e,this.gridRowItemHandler(e),o(e,l),s||t.push(e);const i=s||e.tg_group&&e.collapsed;n(e.subs,e,i)})),r&&(r.tg_list_last=!0)};n(this.rows);let s,r=0;return this.initViewList(t,((t,e)=>{t.tg_top=r,r+=this.getRowHeight(t),t.tg_group_line=!1,t.collapsed&&(t.tg_group_line=!0),s&&(t.tg_group||t.tg_level{if(e.tg_invisible)return;const n=!t.call(this,e,i,o);if(e.tg_filtered=n,!n){let t=e;for(;t.tg_parent;)t.tg_parent.tg_filtered=!1,t=t.tg_parent}})),this.sortColumn)return;let e=this.options.rowFilteredSort;if("function"==typeof e&&(e=e.call(this)),!e)return;"string"==typeof e&&(e={sortField:e,sortAsc:this.options.sortAsc});const i=e.sortField||e.id;i&&this.sortRows(i,e)},highlightKeywordsFilter:function(t,e,i){const{textKey:o,textGenerator:n,highlightKey:s}=this.options.highlightKeywords;if(e.forEach((e=>{t[`${s}${e}`]=null})),!i)return!0;const r=`${i}`.trim().toLowerCase().split(/\s+/g).filter((t=>t));if(!r.length)return!0;let l=!1;const h=(e,i)=>(/<\/?[a-z][\s\S]*>/i.test(e)&&(e=((e,i)=>{const n=`${o}${i}`,s=t[n];if(s)return s;const r=document.createElement("div");r.innerHTML=e;const l=r.innerText;return t[n]=l,l})(e,i)),(t=>{const e=t.toLowerCase();let i=0;for(const t of r){const o=e.indexOf(t,i);if(-1===o)return;i=o+t.length}return!0})(e));let a=function(t,e){return t[e]};return"function"==typeof n&&(a=n),e.forEach((e=>{const i=a(t,e);if(null==i)return;const o=`${i}`.trim();if(!o)return;const n=h(o,e);n&&(t[`${s}${e}`]=n,l=!0,this.highlightKeywords=r)})),l},highlightKeywordsHandler:function(){const{highlightCells:t}=this.renderSettings;if(!t.length)return;const e=this.highlightKeywords;e&&(this.asyncHighlightKeywords||(this.asyncHighlightKeywords=d.debounce(this.highlightKeywordsSync,10)),this.asyncHighlightKeywords.apply(this,[t,e]))},highlightKeywordsSync:function(t,e){t.forEach((t=>{const i=Array.from(t.querySelectorAll("svg")).concat(Array.from(t.querySelectorAll("textarea"))),o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,(t=>{if(i.length)for(const e of i)if(e.contains(t))return NodeFilter.FILTER_SKIP;return NodeFilter.FILTER_ACCEPT})),n=[];let s=o.nextNode();for(;s;)n.push(s),s=o.nextNode();n.length&&this.highlightTextNodes(n,e)}))},highlightTextNodes:function(t,e){const{highlightPre:i,highlightPost:o}=this.options.highlightKeywords;let n=0;const s=()=>(n>=e.length&&(n=0),e[n++]);let r=s();t.forEach((t=>{const e=t.textContent,n=e.toLowerCase(),l=[];let h=0;const a=e.length;let c=!1;for(;h{if(e.selected){if(t)return void(e.selected=!1);t=e}}))}const t=this.options.selectAllOnInit;!0!==t?!1===t&&this.updateAllRowsSelected(!1):this.updateAllRowsSelected(!0)},updateAllRowsSelected:function(t){this.forEachSelectableRow((e=>{e.selected=t}))},initCollapseAllOnInitHandler:function(){const t=this.options.collapseAllOnInit;!0!==t?!1===t&&this.updateAllRowsCollapsed(!1):this.updateAllRowsCollapsed(!0)},getToBeAddedItemList:function(t){const e=[];return d.toList(t).forEach((t=>{t&&"object"==typeof t?e.push(t):void 0!==t&&e.push({name:t})})),e},getToBeAddedParentSubs:function(t,e){return t?(t.subs||(t.subs=[]),t.subs):e},getToBeAddedPositionIndex:function(t,e){const i=e.length;return d.isNum(t)&&t>=0&&t<=i?Math.round(t):i},generateDataSnapshot:function(t){if(!t||"object"!=typeof t)return t;const e=this.cleanTreeList(t.rows),i=this.cleanTreeList(t.columns);return this.convertNumberType(e,i),t.rows=e,t.columns=i,t},cleanTreeList:function(t){if(!d.isList(t))return[];const e=(t,i)=>{i.forEach((i=>{if(!i||"object"!=typeof i)return void t.push({});const o=this.getItemSnapshot(i),n=i.subs;Array.isArray(n)&&(o.subs=[],e(o.subs,n)),t.push(o)}))},i=[];return e(i,t),i},convertNumberType:function(t,e){const i=[];d.forEachTree(e,(function(t){"number"===t.type&&t.id&&i.push(t.id)})),i.length&&d.forEachTree(t,(function(t){i.forEach((function(e){t[e]=d.convertNum(t[e])}))}))}},vt={setDefaultLoading:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return;const i=t.style;e.size&&(i.width=e.size,i.height=e.size),e.color&&(i.color=e.color),e.size||e.color||t.removeAttribute("style"),e.fast?t.classList.add("tg-loading-fast"):t.classList.remove("tg-loading-fast")},getDefaultLoading:function(t){return this.setDefaultLoading(this.$defaultLoading,t),this.$defaultLoading},getLoadingHolder:function(){return this.$container?this.$container.find(".tg-loading"):w()},setLoading:function(t){if(!this.$container)return this;this.$defaultLoading||(this.$defaultLoading=this.$container.find(".tg-loading-default").get(0));const e=this.getLoadingHolder().get(0);return"function"==typeof t&&(t=t.call(this,e)),d.isObject(t)&&(t=this.getDefaultLoading(t)),t||(t=this.getDefaultLoading()),this.renderNodeContent(e,t),this},showLoading:function(){return this.getLoadingHolder().show(),this},hideLoading:function(){return this.getLoadingHolder().hide(),this}},Ht={showMask:function(t){if(!this.hasMask||t){const e=this.$container.find(".tg-mask"),i=e.get(0);if(t&&i){const e=d.styleMap(t);e&&(i.style.cssText=e)}e.show(),this.hasMask=!0}return this},hideMask:function(){return this.hasMask&&(this.$container.find(".tg-mask").hide(),this.hasMask=!1),this}},Ct={renderNodeContent:function(t,e){if(t){if(e&&e.nodeType)return this.emptyNode(t),void t.appendChild(e);if(Array.isArray(e))return this.emptyNode(t),void e.forEach((e=>{e&&e.nodeType&&t.appendChild(e)}));void 0===e&&(e=""),t.innerHTML=e}},emptyNode:function(t){if(t)for(;t.firstChild;)t.removeChild(t.firstChild)},removeNode:function(t){t&&t.parentNode&&t.parentNode.removeChild(t)},appendNode:function(t,e){t&&e&&t.appendChild(e)},createElement:function(t,e,i){const o=document.createElement(t);e&&Object.keys(e).forEach((function(t){const i=e[t];void 0!==i&&o.setAttribute(t,i)})),d.isArray(i)||(i=[i]);let n="";return i.forEach((function(t){t&&t.nodeType?o.appendChild(t):void 0!==t&&(n+=t)})),n&&(o.innerHTML=n),o},find:function(t,e){return w(e||this.$container).find(t)},getRowNodes:function(t){const e=this.getRowItem(t);if(e)return this.getRowNodesByIndex(e.tg_view_index)},getCellNode:function(t,e){const i=this.getRowItem(t);if(!i)return;const o=this.getColumnItem(e);return o?this.getCellNodeByIndex(i.tg_view_index,o.tg_view_index):void 0},getHeaderItemNode:function(t){const e=this.getColumnItem(t);if(e)return this.getHeaderCache(e.tg_view_index)},getColumnHeaderNode:function(t){const e=this.getHeaderItemNode(t);if(e)return e.querySelector(".tg-column-header")}},yt={render:function(){this.asyncRender||(this.asyncRender=d.microtask(this.renderSync)),this.asyncRender.apply(this,arguments)},renderSync:function(){this.renderStartedTimestamp=Date.now();const t=this.generateRenderSettings.apply(this,arguments);return this.renderSettings=t,"all"===t.type?(this.flushBody(),this.initHandler(),this.renderHeader(),this.updateViewRowsAndSize(),this.renderBody(),this):"columns"===t.type?(this.flushBody(),this.initColumnsHandler(),this.renderHeader(),this.updateViewRowsAndSize(),this.renderBody(),this):"rows"===t.type?(this.updateViewRowsAndSize(),this.renderBody(),this):"rows_cache"===t.type?(this.cssRulesInvalid=!0,this.updateViewRowsAndSize(),this.updateRowCacheTopAndHeight(),this.renderBody(),this):"resize"===t.type?(this.resizeHandler(),this.renderBody(),this):(this.renderBody(),this)},generateRenderSettings:function(t){const e={type:this.renderType,scrollLeft:null,scrollTop:null,scrollColumn:null,scrollRow:null,highlightCells:[]};return"string"==typeof t?e.type=t:t&&Object.assign(e,t),this.headerCreated||(e.type="all"),e},renderBody:function(){this.scrollOnInit(),this.scrollTopOffset=this.scrollPane.getScrollTopOffset();const t=this.getViewport();return this.viewport=t,this.flushWithViewport(),this.previousScrollTopOffset!==this.scrollTopOffset&&(this.previousScrollTopOffset=this.scrollTopOffset,this.updateRowCacheTopOffset()),this.renderRows(t.rows),this.renderCells(t.rows,t.columns),this.renderUpdatedTimestamp=Date.now(),this.renderDuration=this.renderUpdatedTimestamp-this.renderStartedTimestamp,this.trigger(y.onUpdated,t),this.firstUpdated||(this.firstUpdated=!0,this.trigger(y.onFirstUpdated,t)),this.layoutEventHandler(),this.resizeEventHandler(),this.highlightKeywordsHandler(),this.renderSettings=null,this.renderType=null,this},rerender:function(){return this.render("all"),this}},Rt={resize:function(){return this.asyncResize||(this.asyncResize=d.throttle(this.resizeSync,100)),this.asyncResize.apply(this,arguments),this},resizeSync:function(){return this.headerCreated?(this.resizeHolderHandler.apply(this,arguments),this.firstUpdated&&this.isHolderInvisible()||this.render("resize"),this):this},resizeHolderHandler(t,e){if(0!==arguments.length)return 1===arguments.length?t&&"object"==typeof t?void this.$holder.css(t):void this.$holder.css({width:t}):void this.$holder.css({width:t,height:e})},isHolderInvisible(){const t=this.$holder.width(),e=this.$holder.height();return!t||!e},resizeHandler:function(){this.containerWidth=this.$container.width(),this.containerHeight=this.$container.height(),this.headerWidth=this.containerWidth,this.bodyWidth=this.containerWidth,this.updateTotalColumnsWidth(),this.resizeHeaderHandler(),this.resizeBodyHandler()},layoutEventHandler:function(){const t=this.previousLayout||{},e={headerWidth:this.headerWidth,headerHeight:this.headerHeight,bodyWidth:this.bodyWidth,bodyHeight:this.bodyHeight,scrollbarWidth:this.getScrollbarWidth(),scrollbarHeight:this.getScrollbarHeight()};Object.values(e).join("")!==Object.values(t).join("")&&(this.previousLayout=e,this.trigger(y.onLayout,d.merge({previous:t},e)))},resizeEventHandler:function(){const t=this.previousSize||{},e={width:this.containerWidth,height:this.containerHeight};Object.values(e).join("")!==Object.values(t).join("")&&(this.previousSize=e,this.trigger(y.onResize,d.merge({previous:t},e)))},resizeHeaderHandler:function(){this.initHeaderLayerHeight();const t=this.options;t.autoHeight&&this.viewRows.length>5e3&&(t.autoHeight=!1),this.headerHeight=0,t.headerVisible&&(this.containerHeight>0||t.autoHeight)&&this.updateHeaderTableHeight(),this.$headerFrame.css({width:this.headerWidth,height:this.headerHeight})},updateHeaderTableHeight:function(){let t=0;Object.keys(this.headerLayerHeight).forEach((e=>{t+=this.headerLayerHeight[e]}));const e=this.$headerL.find(".tg-header-table"),i=this.$headerR.find(".tg-header-table");e.css({height:t}),i.css({height:t}),this.headerHeight=t},resizeBodyHandler:function(){this.updateScrollState(),this.bodyHeight=this.containerHeight-this.headerHeight,this.$bodyFrame.css({width:this.bodyWidth,height:this.bodyHeight}),this.updatePaneWidth(),this.updatePaneHeight(),this.updateCanvasWidth(),this.updateCanvasHeight(),this.updateScrollPane(),this.updateCssRules()},updatePaneWidth:function(){let t=this.bodyWidth,e=0;if(this.frozenInfo.columns){const i=this.getScrollbarWidth();this.frozenInfo.right?(e=this.columnsWidthR+i,t=this.bodyWidth-e):(t=this.columnsWidthL,e=this.bodyWidth-t),this.scrollPaneHidden&&(this.frozenInfo.right?(t<=0&&(t=0),e=Math.max(0,this.bodyWidth-t)):(e3&&void 0!==arguments[3])||arguments[3];const n=this.getToBeAddedItemList(t);if(!n.length)return!1;let s;if(null!=e&&(s=this.getRowItem(e),!s))return!1;const r=this.getToBeAddedParentSubs(s,this.rows),l=this.getToBeAddedPositionIndex(i,r),h=[l,0].concat(n);r.splice.apply(r,h),this.initRowsHandler(),s?(s.collapsed=!1,this.flushRowFrom(s.tg_view_index+l)):this.flushRowFrom(l),this.onNextUpdated((function(){this.trigger(y.onRowAdded,n)}));const a={type:"rows"};return o&&(a.scrollRow=n[n.length-1]),this.render(a),!0},deleteRow:function(t){const e=d.toList(t),i=[];if(e.forEach((t=>{const e=this.getRowItem(t);e&&i.push(e)})),!i.length)return!1;const o=this.removeRowsHandler(i);this.initRowsHandler();const n=this.getRemovedMinIndex(o);return this.flushRowFrom(n),this.onNextUpdated((function(){this.trigger(y.onRowRemoved,i)})),this.render("rows"),!0},getRemovedMinIndex:function(t){let e=0;const i=t[t.length-1];if(this.isInvisible(i))return e;e=i.tg_view_index,e>0&&(e-=1);let o=i.tg_parent;for(;o;)o.collapsed&&(e=o.tg_view_index),o=o.tg_parent;return e},removeRowsHandler:function(t){const e=[].concat(t);e.sort((function(t,e){return e.tg_index-t.tg_index}));const i=[];return e.forEach((t=>{this.getRowParentSubs(t).splice(t.tg_sub_index,1),i.push(t)})),i}},Tt={renderCollapseAllState:function(){this.hasTreeColumn&&(this.asyncRenderCollapseAllState||(this.asyncRenderCollapseAllState=d.microtask(this.renderCollapseAllStateSync)),this.asyncRenderCollapseAllState.apply(this,arguments))},renderCollapseAllStateSync:function(){const t=this.$header.find(".tg-tree-header");this.rowsInfo.isTree?t.addClass("tg-tree-header-indent"):t.removeClass("tg-tree-header-indent"),this.renderCollapseAllIcon()},checkCollapseAllState:function(t){if(t!==this.allRowsCollapsed){if(t){let t=0;const e=this.rows.length;for(;t{if(e.tg_group&&e.tg_subs_length&&e.collapsed)return t=!0,!1})),t)return}this.allRowsCollapsed=t,this.renderCollapseAllIcon()}},expandAllRows:function(){return this.renderAllRowsCollapsed(!1)},collapseAllRows:function(){return this.renderAllRowsCollapsed(!0)},toggleAllRows:function(){return this.allRowsCollapsed?this.expandAllRows():this.collapseAllRows()},renderAllRowsCollapsed:function(t){const e=this.updateAllRowsCollapsed(t);return e.length?(this.flushBody(),this.onNextUpdated((()=>{this.renderCollapseAllIcon(),t?this.trigger(y.onRowCollapsed,e):this.trigger(y.onRowExpanded,e)})),this.render("rows"),this):this},updateAllRowsCollapsed:function(t){this.allRowsCollapsed=t;const e=[];return this.forEachRow((i=>{i.subs&&i.tg_subs_length&&this.isCollapsedChanged(i,t)&&(i.collapsed=t,e.push(i))})),e},expandRow:function(t){const e=this.getRowItem(t);return e?this.isEmptyGroup(e)?(this.trigger(y.onRowSubsRequest,e),this):this.isCollapsedChanged(e,!1)?(e.collapsed=!1,this.flushRowFrom(e.tg_view_index),this.renderCollapseIcon(e),this.onNextUpdated((()=>{this.checkCollapseAllState(!1),this.trigger(y.onRowExpanded,e)})),this.render("rows"),this):this:this},collapseRow:function(t){const e=this.getRowItem(t);return e&&e.subs&&e.tg_subs_length&&this.isCollapsedChanged(e,!0)?(e.collapsed=!0,this.flushRowFrom(e.tg_view_index),this.renderCollapseIcon(e),this.onNextUpdated((()=>{this.checkCollapseAllState(!0),this.trigger(y.onRowCollapsed,e)})),this.render("rows"),this):this},toggleRow:function(t){const e=this.getRowItem(t);return e?(e.collapsed?this.expandRow(e):this.collapseRow(e),this):this},expandRowLevel:function(t){t=d.toNum(t,!0);const e=[],i=[];return this.forEachRow((o=>{o.subs&&o.tg_subs_length&&(o.tg_level<=t?this.isCollapsedChanged(o,!1)&&(o.collapsed=!1,i.push(o)):this.isCollapsedChanged(o,!0)&&(o.collapsed=!0,e.push(o)))})),e.length||i.length?(this.flushBody(),this.onNextUpdated((()=>{e.length&&this.trigger(y.onRowCollapsed,e),i.length&&this.trigger(y.onRowExpanded,i)})),this.render("rows"),this):this},renderCollapseAllIcon:function(){if(!this.options.collapseAllVisible||!this.hasTreeColumn)return;const t=this.$header.find(".tg-tree-icon-all");this.renderTreeIcon(t,this.allRowsCollapsed)},renderCollapseIcon:function(t){if(!this.headerCreated)return;const e=this.getRowNodesByIndex(t.tg_view_index);if(!e)return;const i=e.find(".tg-tree-icon");this.renderTreeIcon(i,t.collapsed)},renderTreeIcon:function(t,e){t&&(e?t.removeClass("tg-tree-icon-expanded").addClass("tg-tree-icon-collapsed"):t.removeClass("tg-tree-icon-collapsed").addClass("tg-tree-icon-expanded"))}},Et={rowDragStartHandler:function(t,e){this.removeSortColumn();const i=e.rowItem;if(!i)return;const o=this.getRowNodesByIndex(i.tg_view_index);if(!o)return;e.dragCloneNodes=this.getRowDragCloneNodes(o),e.dropPlaceholder=this.getRowDropPlaceholder(o),e.dragStartTop=this.getRowTop(i),e.dragRowHeight=this.getRowHeight(i),e.dragStartScrollTop=this.scrollTop,e.dragMaxScrollTop=this.scrollPane.getMaxScrollTop();const n={e:t,rowItem:i};this.trigger(y.onRowDragged,n),this.isDefaultPrevented(n)||("touch"===e.type&&d.preventDefault(e.e),this.setRowState(i,"dragging"),this.setTextSelectable(!1),this.rowDropListHandler(e),this.updateDragCloneRowPosition(e))},rowDragMoveHandler:function(t,e){"touch"===e.type&&d.preventDefault(e.e),this.updateDragCloneRowPosition(e),this.updateDragPlaceholderPosition(e),this.rowDragAutoScrollHandler(e)},rowDragEndHandler:function(t,e){"touch"===e.type&&(this.protectedItem=null,d.preventDefault(e.e)),this.autoScrollStop(),this.setRowState(e.rowItem,"dragging",!1),this.setTextSelectable(!0),e.dragCloneNodes&&(e.dragCloneNodes.remove(),e.dragCloneNodes=null),e.dropPlaceholder&&(e.dropPlaceholder.remove(),e.dropPlaceholder=null),e.changed&&this.rowDropHandler(e)},updateDragCloneRowPosition:function(t){const e=this.scrollTop-t.dragStartScrollTop,i=t.dragStartTop+t.offsetY+e,o=i-this.scrollTopOffset;t.dragCloneNodes&&t.dragCloneNodes.css("top",o).show(),t.dragCurrentPosition=i+.5*t.dragRowHeight},getRowDragCloneNodes:function(t){const e=w();return t.each((function(t){const i=w(t),o=i.clone();o.appendTo(i.parent()),e.add(o)})),e.addClass("tg-clone").hide(),e},getRowDropPlaceholder:function(t){const e=w();return t.each((function(t){const i=w(t),o=w("
    ").addClass("tg-row-placeholder").hide(),n=i.parent();n.find(".tg-row-placeholder").remove(),o.appendTo(n),e.add(o)})),e},updateDragPlaceholderPosition:function(t){this.rowDropItemHandler(t);const e=t.dropItem;if(!e)return;let i=t.dropPosition-1;t.dropBottom?e.tg_view_last&&(i=t.dropPosition-2):e.tg_view_index-this.frozenInfo.rows==0&&(i=t.dropPosition);const o=i-this.scrollTopOffset;t.dropPlaceholder&&t.dropPlaceholder.css("top",o).show()},rowDragAutoScrollHandler:function(t){const e=t.dragCurrentPosition,i=this.scrollTop,o=this.bodyHeight-this.frozenRowsHeight,n=i+o,s=this.options.rowHeight,r=Math.min(3*s,.5*o);if(!(rn-r){const i=e-(n-r),o=this.getAutoScrollOffset(i,r);this.autoScrollStart(o,t)}else this.autoScrollStop()},getAutoScrollOffset:function(t,e){return Math.floor(t/e*20)},autoScrollStop:function(){this.autoScrollMotion&&(this.autoScrollMotion.destroy(),this.autoScrollMotion=null)},autoScrollStart:function(t,e){this.autoScrollStop();const i=e.dragMaxScrollTop;this.autoScrollMotion=new B,this.autoScrollMotion.bind(B.EVENT.MOTION_MOVE,(()=>{const o=d.clamp(this.scrollTop+t,0,i);o!==this.scrollTop?(this.setScrollTop(o),this.updateDragCloneRowPosition(e),this.updateDragPlaceholderPosition(e)):this.autoScrollStop()})),this.autoScrollMotion.once(B.EVENT.MOTION_END,(()=>{this.autoScrollStart(t,e)})),this.autoScrollMotion.start({duration:200})},rowDropListHandler:function(t){const e=this.getRowDropList(t);if(!d.isList(e))return;const i=t.rowItem,o=e.filter((t=>{if(t===i)return!1;if(t.tg_frozen)return!1;let e=t.tg_parent;for(;e;){if(e===i)return!1;e=e.tg_parent}return!0}));if(!d.isList(o))return;const n=[];o.forEach((t=>{const e=this.getRowTop(t),i=this.getRowHeight(t);n.push({rowItem:t,position:e}),n.push({rowItem:t,position:e+i-1,dropBottom:!0})})),t.dropList=n},getRowDropList:function(t){const e=this.options.rowDragCrossLevel;return e?"function"==typeof e?e.call(this,t):this.viewRows:this.getRowParentSubs(t.rowItem)},rowDropItemHandler:function(t){const e=t.dropList;if(!e)return;const i=t.dragCurrentPosition;let o=Number.MAX_VALUE;for(let n=0,s=e.length;no)break;o=r,t.dropItem=s.rowItem,t.dropBottom=s.dropBottom,t.dropPosition=s.position}},rowDragDropPositionHandler:function(t,e,i){const o=this.getRowParentSubs(t),n=t.tg_sub_index;let s,r;return this.isDropIntoGroupFirstChild(e,i)?(s=e.subs,r=0):(s=this.getRowParentSubs(e),r=e.tg_sub_index,o===s&&n{this.trigger(y.onRowDropped,n)})),this.render({type:"rows",scrollRow:i})}},It={getMoveFocusRow:function(t,e){let i=t[0];return e>0&&(i=t[t.length-1]),i},getMoveLengthInList:function(t,e){let i=0;return t.forEach((t=>{this.getRowParentSubs(t)===e&&(i+=1)})),i},getMoveInfo:function(t,e,i){const o=this.getRowParentSubs(i);let n=i.tg_sub_index+e;const s=i.tg_parent;if(s&&this.options.rowMoveCrossLevel){const e=0,i=s.tg_subs_length-1;if(ni){const e=n-i;return this.getMoveInfo(t,e,s)}}if(e>0){n-=this.getMoveLengthInList(t,o)-1}return n=d.clamp(n,0,o.length),{list:o,index:n}},moveRowsHandler:function(t,e){(t=this.removeRowsHandler(t)).reverse();const i=this.getMoveFocusRow(t,e),o=this.getMoveInfo(t,e,i),n=[o.index,0].concat(t);return o.list.splice.apply(o.list,n),this.initRowsHandler(),this.onNextUpdated((function(){this.scrollRowIntoView(i),this.trigger(y.onRowMoved,t)})),this.removeSortColumn(),this.update(),!0},moveRows:function(t,e){t=d.toList(t);const i=[];return t.forEach((t=>{const e=this.getRowItem(t);e&&i.push(e)})),!!i.length&&(!(i.length>=this.getRowsLength())&&(0!==(e=d.toNum(e,!0))&&this.moveRowsHandler(i,e)))},moveRowsUp:function(t){return this.moveRows(t,-1)},moveRowsDown:function(t){return this.moveRows(t,1)},moveRowsToTop:function(t){return this.moveRows(t,-this.getRowsLength(!0))},moveRowsToBottom:function(t){return this.moveRows(t,this.getRowsLength(!0))},moveSelectedRowsUp:function(){return this.moveRows(this.getSelectedRows(),-1)},moveSelectedRowsDown:function(){return this.moveRows(this.getSelectedRows(),1)},moveSelectedRowsToTop:function(){return this.moveRows(this.getSelectedRows(),-this.getRowsLength(!0))},moveSelectedRowsToBottom:function(){return this.moveRows(this.getSelectedRows(),this.getRowsLength(!0))}},Lt={getSelectedRow:function(){let t=null;return this.forEachSelectableRow((function(e){if(e.selected)return t=e,!1})),t},getSelectedRows:function(){const t=[];return this.forEachSelectableRow((function(e){e.selected&&t.push(e)})),t.length>1&&t.sort((function(t,e){const i=t.tg_selected_index,o=e.tg_selected_index;return i>o?1:i0&&void 0!==arguments[0])||arguments[0];if(t=Boolean(t),this.globalSelectedIndex=0,t&&!this.options.selectMultiple)return this;const e=this.getAllSelectedChangedList(t);return e.length?(this.updateRowsSelectedState(e),this):this},setRowSelected:function(){return(this.options.selectMultiple?this.setRowMultipleSelected:this.setRowSingleSelected).apply(this,arguments)},setRowSingleSelected:function(t){const e=this.getRowItem(t);if(!e)return this;if(!this.isRowSelectable(e))return this;if(e.selected)return this;const i=[],o=this.getSelectedRow();return o&&o.selected&&i.push(o),e.selected||i.push(e),i.length?(this.updateRowsSelectedState(i),this):this},setRowMultipleSelected:function(t,e){if(0===arguments.length)return this;if(1===arguments.length&&!1===arguments[0])return this.selectAll(!1);const i=this.toRowItemList(t,(t=>this.isRowSelectable(t)));return i.length?!1===e?(this.setRowListUnselected(i),this):d.hasShiftKey(e)&&1===i.length?(this.setRowBetweenListSelected(i[0]),this):(this.updateRowsSelectedState(i),this):this},setRowListUnselected:function(t){const e=this.getSelectedChangedList(t,!1);e.length&&this.updateRowsSelectedState(e)},setRowBetweenListSelected:function(t){const e=this.previousSelectedRow;if(e&&e!==t){const i=this.getBetweenSelectedChangedList(e,t);if(!i.length)return;this.updateRowsSelectedState(i,!0)}else this.updateRowsSelectedState([t])},getAllSelectedChangedList:function(t){const e=[];return this.forEachSelectableRow((i=>{this.isSelectedChanged(i,t)&&e.push(i)})),e},getSelectedChangedList:function(t,e){const i=[];return t.forEach((t=>{this.isSelectedChanged(t,e)&&i.push(t)})),i},getBetweenSelectedChangedList:function(t,e){const i=t.tg_index,o=e.tg_index,n=[];if(i=o;)n.push(t),t--}return this.toRowItemList(n,(t=>this.isRowSelectable(t)&&!t.selected))},updateRowsSelectedState:function(t,e){let i;t.forEach((t=>{const e=!t.selected;t.selected=e,e&&(t.tg_selected_index=this.globalSelectedIndex++,i=t),this.renderRowSelectedState(t)})),e||(this.previousSelectedRow=i),this.renderSelectAllState(),this.onNextUpdated((()=>{this.trigger(y.onSelectChanged,t)})),this.render()},renderRowSelectedState:function(t){const e=t.tg_view_index;this.viewport.rows.includes(e)&&(this.renderRowState(t,"selected"),this.flushCell(e,this.selectColumn.tg_view_index))},renderSelectAllState:function(){this.isSelectAllVisible()&&(this.asyncRenderSelectAllState||(this.asyncRenderSelectAllState=d.microtask(this.renderSelectAllStateSync)),this.asyncRenderSelectAllState.apply(this,arguments))},renderSelectAllStateSync:function(){const t=this.getSelectAllState();if(t===this.previousSelectAllState)return;this.previousSelectAllState=t;const e=this.selectColumn,i=w(this.getColumnHeaderNode(e)).find(".tg-select-icon-all");i.length&&(i.removeClass("tg-selected tg-mixed"),t&&i.addClass(`tg-${t}`))},getSelectAllState:function(){let t=0;this.forEachSelectableRow((e=>{t+=1}));const e=this.getSelectedRows().length;let i="mixed";return 0===e?(i="",this.previousSelectedRow=null):e===t&&(i="selected"),i},isSelectAllVisible:function(){const t=this.options;return!!(t.selectVisible&&t.selectAllVisible&&t.selectMultiple)}},xt={setRowHover:function(t,e){const i=this.getRowItem(t);return i?(this.renderRowHover(i,e),this):this},renderRowHover:function(t,e){if(this.previousHover&&(this.previousHover.removeClass("tg-hover"),this.previousHover=null),!e)return this;if(!1===this.rowHoverable)return;if(!1===t.hoverable)return this;if(t.tg_frozen&&!this.options.frozenRowHoverable)return this;const i=t.tg_view_index;return this.previousHover=this.$body.find(`.tg-row[row='${i}']`).addClass("tg-hover"),this},setRowState:function(t,e){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const o=this.getRowItem(t);return o?(o.tg_state_names||(o.tg_state_names=new Set),o.tg_state_names.add(e),o[e]=i,this.renderRowState(o,e),this):this},renderRowState:function(t,e){const i=this.getRowNodesByIndex(t.tg_view_index);if(i){const o=`tg-${e}`;t[e]?i.addClass(o):i.removeClass(o)}}},zt={getRowItem:function(t){return d.isNum(t)?(t<0&&(t=this.rowsInfo.length+t),this.rowsInfo.indexCache[t]):t?d.isNum(t.tg_index)?t:this.getRowItemById(t.id||t):void 0},getRowItemById:function(t){return this.getRowItemBy("id",t)},getRowItemBy:function(t,e){if(void 0!==e)return this.rowsInfo.indexCache.find((i=>i[t]===e))},getRowsLength:function(t){return t?this.rowsInfo.length:this.viewRows.length},getViewRowItem:function(t){return this.viewRows[t]},getPreRenderRowInfo:function(t){const e={rows:[],rowNotFound:!1,benchmark:0};if(!t.length)return 0===this.getRowsLength()&&(e.rowNotFound=!0),e;const i=[],o=this.frozenInfo.row;return t.forEach((t=>{this.getRowCache(t)?t>o&&i.push(t):e.rows.push(t)})),i.length&&(e.benchmark=Math.min.apply(Math,i)),e.rows.sort((function(t,i){return t{this.renderRowNodes(t,e.benchmark)}))},createRowNode:function(t,e,i,o,n,s){const r=document.createElement("div");return r.setAttribute("row",t),r.className=i,o&&(r.style.cssText=o),r.style.top=`${n}px`,s!==this.options.rowHeight&&(r.style.height=`${s}px`,r.style.lineHeight=`${s}px`),this.setNodeDataCache(r,{row:t,rowItem:e,rowNode:r}),r},appendRowNode:function(t,e,i,o){ithis.frozenInfo.row))return e;e-=this.frozenRowsHeight}return e-=this.scrollTopOffset,e},getRowTop:function(t){let e=t.tg_top;return t.tg_frozen||(e-=this.frozenRowsHeight),e},getRowVPos:function(t){const e=this.frozenInfo.bottom,i=this.frozenInfo.row;let o="top";return this.frozenInfo.rows&&(t<=i?e&&(o="bottom"):e||(o="bottom")),o},getRowCanvas:function(t,e){return"top"===t?"left"===e?this.$bodyTL:this.$bodyTR:"left"===e?this.$bodyBL:this.$bodyBR}},Mt={CHANGE:"change",START:"start",END:"end"},Pt={h:{type:"h",className:"tg-scrollbar-h",offset:"left",size:"width",page:"pageX",axis:"x",offsetName:"offsetX"},v:{type:"v",className:"tg-scrollbar-v",offset:"top",size:"height",page:"pageY",axis:"y",offsetName:"offsetY"}};class Nt extends k{static EVENT=Mt;static H="h";static V="v";type="h";settings={};size=0;viewSize=0;bodySize=0;trackSize=0;position=0;scale=0;thumbPosition=0;thumbScale=0;constructor(t,e){super(),this.settings=Pt[t]||Pt.h,this.type=this.settings.type,this.id=d.uid(4,`tg-scrollbar-${this.type}-`),this.$holder=w(e),this.$holder.find(`.${this.settings.className}`).remove(),this.options=this.generateOptions()}generateOptions(t){return d.merge({size:15,round:!1,blank:!1,motionDuration:200},t)}updateOptions(t){this.options=this.generateOptions(t);let e=this.options.size;d.isNum(e)||(e=d.toNum(e)),e=Math.round(e),e=Math.max(e,0),e=Math.min(e,30),this.size=e}create(){this.$container=w('
    ').appendTo(this.$holder),this.$container.attr("id",this.id),this.$container.addClass(d.classMap(["tg-scrollbar",this.settings.className,{"tg-scrollbar-round":this.options.round}])),this.$track=this.$container.find(".tg-scrollbar-track"),this.$thumb=this.$container.find(".tg-scrollbar-thumb"),this.thumbDrag=new O,this.thumbDrag.bind(O.EVENT.DRAG_START,((t,e)=>{this.thumbDragStart(e)})).bind(O.EVENT.DRAG_MOVE,((t,e)=>{this.thumbDragMove(e)})).bind(O.EVENT.DRAG_END,((t,e)=>{this.thumbDragEnd(e)}));const t=this.$container.get(0);return this.scrollEvents={mousedown:{handler:e=>{e.target.classList.contains("tg-scrollbar-thumb")?this.thumbMouseDownHandler(e):(this.trackEvents={mouseup:{handler:t=>{this.trackMouseupHandler(t)},options:{once:!0}}},d.bindEvents(this.trackEvents,t),this.trackMousedownHandler(e))},options:!0},selectstart:{handler:t=>{d.preventDefault(t)},options:!0}},d.bindEvents(this.scrollEvents,t),this}getBlank(){return this.options.blank}getSize(){return this.size}getViewSize(){return this.viewSize}getBodySize(){return this.bodySize}getTrackMouseDirection(){let t=1;return this.trackMousePosition0){const i=this.getMaxThumbPosition();t=Math.round(i*this.position/e),t=d.clamp(t,0,i)}return this.setThumbPosition(t),this}trackMousedownHandler(t){return this.motionStop(),this.trackMousePosition=this.getTrackMousePos(t),this.motionStart(),this}trackMouseupHandler(t){return d.unbindEvents(this.trackEvents),this.motionStop(),this.motionStarted||(this.trackMousePosition=this.getTrackMousePos(t),this.trackScrollHandler(),this.triggerEvent()),this}trackScrollHandler(){const t=Math.max(0,this.viewSize-20)*this.getTrackMouseDirection();return this.setOffset(t),this}motionStop(){return this.motion&&(this.motion.destroy(),this.motion=null),this}motionStart(){const t=this.position,e=Math.round(this.trackMousePosition/this.viewSize*this.getMaxPosition());return this.motionStarted=!1,this.motion=new B,this.motion.bind(B.EVENT.MOTION_START,((t,e)=>{this.motionStarted=!0})),this.motion.bind(B.EVENT.MOTION_MOVE,((t,e)=>{this.motionUpdateHandler(t,e)})),this.motion.start({duration:this.options.motionDuration,from:t,till:e}),this}motionUpdateHandler(t,e){e!==this.position&&(this.setPosition(e),this.triggerEvent())}thumbMouseDownHandler(t){this.$thumb.addClass("tg-scrollbar-thumb-hold"),this.thumbDrag.start(t,{target:this.$thumb})}thumbDragStart(t){this.motionStop(),t.thumbPositionStart=this.thumbPosition,this.trigger(Mt.START)}thumbDragMove(t){let e=t.thumbPositionStart+t[this.settings.offsetName];const i=this.getMaxThumbPosition();e=d.clamp(e,0,i),this.setThumbPosition(e);let o=0;i>0&&(o=d.per(e/i)*this.getMaxPosition(),o=Math.round(o)),this.position=o,this.triggerEvent()}thumbDragEnd(t){this.$thumb&&this.$thumb.removeClass("tg-scrollbar-thumb-hold"),this.trigger(Mt.END)}triggerEvent(){this.trigger(Mt.CHANGE,this.position)}getPosition(){return this.position}setPosition(t){t=d.toNum(t,!0);const e=this.getMaxPosition();t=d.clamp(t,0,e),this.position=t,this.updateThumbPosition()}getMaxPosition(){return this.bodySize-this.viewSize}updatePosition(){const t=this.getMaxPosition(),e=d.clamp(this.position,0,t);this.position=e}setOffset(t){t=d.toNum(t);const e=this.position+t;return this.setPosition(e),this}getScale(){return this.scale}setScale(t){return t=d.per(t),this.scale=t,this.scaleChangeHandler(),this}scaleChangeHandler(){let t=Math.round(this.viewSize*this.scale);if(t=Math.max(t,Math.round(1.5*this.options.size)),t=Math.min(t,this.viewSize-1),this.thumbSize=t,this.$thumb){const t={};"h"===this.type?(t.height=this.size,t.width=this.thumbSize):(t.width=this.size,t.height=this.thumbSize),this.$thumb.css(t)}}updateTrackSize(){const t={};return"h"===this.type?(t.width=this.trackSize,t.height=this.size):(t.height=this.trackSize,t.width=this.size),this.$container.css(t),this}updateThumbSize(){let t=0;return this.bodySize&&(t=this.trackSize/this.bodySize),this.setScale(t),this}parseSize(t){return t=d.toNum(t),t=Math.round(t),t=Math.max(t,0)}updateSize(t,e,i){t=this.parseSize(t),this.viewSize=t,e=this.parseSize(e),this.bodySize=e,i=d.isNum(i)?this.parseSize(i):t,this.trackSize=i,this.previousFadeIn=null}fade(t){return!(!this.$container||!this.size)&&(this.previousFadeIn!==t&&(this.previousFadeIn=t,t?this.$container.hasClass("tg-fade-out")&&this.$container.removeClass("tg-fade-out").addClass("tg-fade-in"):this.$container.removeClass("tg-fade-in").addClass("tg-fade-out"),!0))}show(){if(this.updatePosition(),!this.getBlank())return!this.$container&&this.size>0&&this.create(),this.$container?(this.updateTrackSize(),this.updateThumbSize(),this):this;this.remove()}hide(){return this.updatePosition(),this.remove(),this}remove(){if(this.motionStop(),d.unbindEvents(this.scrollEvents),d.unbindEvents(this.trackEvents),this.thumbDrag&&(this.thumbDrag.destroy(),this.thumbDrag=null),!this.$container)return this;this.$thumb=null,this.$track=null,this.$container.remove(),this.$container=null}destroy(){return this.remove(),this}}const _t={CHANGE:"change",START:"start",END:"end"};class kt extends k{static EVENT=_t;visible=!0;constructor(t,e){super(),this.id=d.uid(4,`tg-scroll-pane-${e}-`),this.gradientInfo=[],this.$container=w(t).attr("id",this.id),this.$container.addClass("tg-scroll-pane"),this.$scrollView=this.$container.find(".tg-scroll-view"),this.$scrollBody=this.$scrollView.find(".tg-scroll-body"),this.scrollbarH=new Nt(Nt.H,this.$container),this.scrollbarH.bind(Nt.EVENT.CHANGE,((t,e)=>{this.scrollHChangeHandler()})).bind(Nt.EVENT.START,(t=>{this.scrollStartEndHandler(!0)})).bind(Nt.EVENT.END,(t=>{this.scrollStartEndHandler()})),this.scrollbarV=new Nt(Nt.V,this.$container),this.scrollbarV.bind(Nt.EVENT.CHANGE,((t,e)=>{this.scrollVChangeHandler()})).bind(Nt.EVENT.START,(t=>{this.scrollStartEndHandler(!0)})).bind(Nt.EVENT.END,(t=>{this.scrollStartEndHandler()})),this.options=this.generateOptions()}generateOptions(t){return d.merge({scrollbarH:{},scrollbarV:{},scrollbarFade:!1,scrollSizeOnKeyPress:20,gradient:30},t)}scrollStartEndHandler(t){t?this.trigger(_t.START):this.trigger(_t.END)}show(){return this.$container.show(),this.visible=!0,this}hide(){return this.$container.hide(),this.visible=!1,this}width(){return this.scrollPaneW}height(){return this.scrollPaneH}render(t){return this.visible?(this.options=this.generateOptions(t),this.update(),this):this}update(){this.scrollPaneW=this.options.scrollPaneW,this.scrollPaneH=this.options.scrollPaneH,this.scrollBodyW=this.options.scrollBodyW,this.scrollBodyH=this.options.scrollBodyH,this.updateScrollbar()}setGroupH(t){this.groupH=d.toList(t)}setGroupV(t){this.groupV=d.toList(t)}updateGroupH(){if(!d.isList(this.groupH))return this;const t=this.scrollbarH.getPosition();return this.groupH.forEach((function(e){e&&e.updateScrollHFromGroup(t)})),this}updateGroupV(){if(!d.isList(this.groupV))return this;const t=this.scrollbarV.getPosition();return this.groupV.forEach((function(e){e&&e.updateScrollVFromGroup(t)})),this}updateGroupList(){this.updateGroupH(),this.updateGroupV()}updateScrollHFromGroup(t){this.scrollbarH.getPosition()!==t&&(this.scrollbarH.setPosition(t),this.updateScrollLeft(),this.triggerEvent())}updateScrollVFromGroup(t){this.scrollbarV.getPosition()!==t&&(this.scrollbarV.setPosition(t),this.updateScrollTop(),this.triggerEvent())}setPosition(t,e){return this.scrollbarH.setPosition(t),this.scrollbarV.setPosition(e),this.updateScrollLeft(),this.updateScrollTop(),this.updateGroupList(),this}updateScrollbar(){this.scrollbarH.updateOptions(this.options.scrollbarH),this.scrollbarV.updateOptions(this.options.scrollbarV),this.updateScrollState(),this.updateScrollView(),this.updateScrollTrack(),this.scrollbarH.updateSize(this.scrollViewW,this.scrollBodyW,this.scrollTrackW),this.scrollbarV.updateSize(this.scrollViewH,this.scrollBodyH,this.scrollTrackH),this.hasScrollH?(this.scrollbarH.show(),this.scrollbarH.setPosition(this.scrollbarH.getPosition())):this.scrollbarH.hide(),this.hasScrollV?(this.scrollbarV.show(),this.scrollbarV.setPosition(this.scrollbarV.getPosition())):this.scrollbarV.hide(),this.updateScrollLeft(),this.updateScrollTop(),this.updateGroupList()}updateScrollState(){const t=this.scrollbarH.getSize(),e=this.scrollbarV.getSize(),i=this.scrollbarH.getBlank(),o=this.scrollbarV.getBlank(),n=this.options.scrollbarFade;let s=!1,r=0;(function(){(this.scrollPaneWe&&t.push("left"),ie&&t.push("top"),o{const i=`tg-gradient-${e}`;t.includes(e)?this.$container.addClass(i):this.$container.removeClass(i)})))}getScrollLeft(){return this.scrollbarH.getPosition()}getScrollTop(){return this.scrollbarV.getPosition()}getMaxScrollLeft(){return this.scrollbarH.getMaxPosition()}getMaxScrollTop(){return this.scrollbarV.getMaxPosition()}getScrollTopOffset(){const t=this.getScrollTop();return t-t%1e4}triggerEvent(){this.trigger(_t.CHANGE,{scrollLeft:this.getScrollLeft(),scrollTop:this.getScrollTop()})}scrollHChangeHandler(){this.updateScrollLeft(),this.updateGroupList(),this.triggerEvent()}scrollVChangeHandler(){this.updateScrollTop(),this.updateGroupList(),this.triggerEvent()}setOffsetH(t){const e=this.getScrollLeft();this.scrollbarH.setOffset(t);return this.getScrollLeft()!==e&&(this.updateScrollLeft(),this.updateGroupList(),this.triggerEvent(),!0)}setOffsetV(t){const e=this.getScrollTop();this.scrollbarV.setOffset(t);return this.getScrollTop()!==e&&(this.updateScrollTop(),this.updateGroupList(),this.triggerEvent(),!0)}mouseWheelHandler(t){const e=t.deltaX,i=t.deltaY,o=Math.abs(e);if(o>Math.abs(i)){if(this.hasScrollH)return this.setOffsetH(e)}else{if(this.hasScrollV)return this.setOffsetV(i);if(this.hasScrollH&&!o)return this.setOffsetH(i)}return!1}keyPageUpHandler(t){return this.setOffsetV(-this.scrollViewH)}keyPageDownHandler(t){return this.setOffsetV(this.scrollViewH)}keyEndHandler(t){return this.setOffsetV(this.scrollBodyH)}keyHomeHandler(t){return this.setOffsetV(-this.scrollBodyH)}keyLeftHandler(t){return this.setOffsetH(-this.options.scrollSizeOnKeyPress)}keyUpHandler(t){return this.setOffsetV(-this.options.scrollSizeOnKeyPress)}keyRightHandler(t){return this.setOffsetH(this.options.scrollSizeOnKeyPress)}keyDownHandler(t){return this.setOffsetV(this.options.scrollSizeOnKeyPress)}destroy(){return this.visible=!1,this.groupH=null,this.groupV=null,this.scrollbarV&&(this.scrollbarV.destroy(),this.scrollbarV=null),this.scrollbarH&&(this.scrollbarH.destroy(),this.scrollbarH=null),this.$container=null,this.$scrollView=null,this.$scrollBody=null,this}}const Vt={initScrollPane:function(){this.initFrozenStyle(),this.createScrollPane()},initFrozenStyle:function(){const t={HL:{container:this.$paneHL,cls:[]},HR:{container:this.$paneHR,cls:[]},TL:{container:this.$paneTL,cls:[]},TR:{container:this.$paneTR,cls:[]},BL:{container:this.$paneBL,cls:[]},BR:{container:this.$paneBR,cls:[]}},e="tg-frozen-h";this.frozenInfo.rows&&(this.frozenInfo.bottom?(t.BL.cls.push(e),t.BR.cls.push(e)):(t.TL.cls.push(e),t.TR.cls.push(e)));const i="tg-frozen-v",o="tg-frozen-line-v";this.frozenInfo.columns&&(this.frozenInfo.right?(t.HR.cls.push(i),t.TR.cls.push(i),t.BR.cls.push(i)):(t.HL.cls.push(i),t.TL.cls.push(i),t.BL.cls.push(i)),t.HL.cls.push(o),t.TL.cls.push(o),t.BL.cls.push(o));const n="tg-frozen",s=[n,e,i,o].join(" ");Object.keys(t).forEach((function(e){const i=t[e],o=i.container;o.removeClass(s);const r=i.cls;if(!r.length)return;const l=[n].concat(r).join(" ");o.addClass(l)}))},createScrollPane:function(){this.removeScrollPane(),this.scrollPaneMap={HL:new kt(this.$paneHL,"header-left"),HR:new kt(this.$paneHR,"header-right"),TL:new kt(this.$paneTL,"top-left"),TR:new kt(this.$paneTR,"top-right"),BL:new kt(this.$paneBL,"bottom-left"),BR:new kt(this.$paneBR,"bottom-right")},this.scrollPaneMap.BR.setGroupH([this.scrollPaneMap.HR,this.scrollPaneMap.TR]),this.scrollPaneMap.TR.setGroupH([this.scrollPaneMap.HR,this.scrollPaneMap.BR]),this.scrollPaneMap.BL.setGroupH([this.scrollPaneMap.HL,this.scrollPaneMap.TL]),this.scrollPaneMap.TL.setGroupH([this.scrollPaneMap.HL,this.scrollPaneMap.BL]),this.scrollPaneMap.BR.setGroupV(this.scrollPaneMap.BL),this.scrollPaneMap.BL.setGroupV(this.scrollPaneMap.BR),this.scrollPaneMap.TR.setGroupV(this.scrollPaneMap.TL),this.scrollPaneMap.TL.setGroupV(this.scrollPaneMap.TR),this.initActiveScrollPane(),this.initPaneVisibility()},initActiveScrollPane:function(){const t=this.getScrollPaneVP(),e=this.getScrollPaneHP(),i=`${t}${e}`;this.scrollPane=this.scrollPaneMap[i],this.scrollPane.bind(kt.EVENT.CHANGE,((t,e)=>{this.scrollPaneChangeHandler(t,e)})).bind(kt.EVENT.START,(t=>{this.rowHoverable=!1})).bind(kt.EVENT.END,(t=>{this.rowHoverable=!0}));let o={L:"L",R:"L"};this.frozenInfo.columns&&this.frozenInfo.right&&(o={L:"R",R:"L"});const n=`${t}${o[e]}`;this.scrollPaneFrozen=this.scrollPaneMap[n]},getScrollPaneVP:function(){return this.frozenInfo.rows&&!this.frozenInfo.bottom?"B":"T"},getScrollPaneHP:function(){return this.frozenInfo.columns&&!this.frozenInfo.right?"R":"L"},initPaneVisibility:function(){this.scrollPaneMap.HL.show(),this.scrollPaneMap.TL.show(),this.frozenInfo.columns?(this.scrollPaneMap.HR.show(),this.scrollPaneMap.TR.show(),this.frozenInfo.rows?(this.scrollPaneMap.BL.show(),this.scrollPaneMap.BR.show()):(this.scrollPaneMap.BL.hide(),this.scrollPaneMap.BR.hide())):(this.scrollPaneMap.HR.hide(),this.scrollPaneMap.TR.hide(),this.scrollPaneMap.BR.hide(),this.frozenInfo.rows?this.scrollPaneMap.BL.show():this.scrollPaneMap.BL.hide())},scrollPaneChangeHandler:function(t,e){this.hideColumnLine(),this.scrollLeft=e.scrollLeft,this.scrollTop=e.scrollTop,this.scrollRenderHandler()},scrollbarFadeInOutHandler:function(t,e){this.options.scrollbarFade&&(e?this.updateScrollPaneFade(!0):this.options.scrollbarFadeTimeout||this.updateScrollPaneFade(!1))},updateScrollPaneFade:function(t){if(!this.options.scrollbarFade)return;this.updateScrollPaneFadeSync(t);const e=this.options.scrollbarFadeTimeout;e&&(clearTimeout(this.timeout_fade),this.timeout_fade=setTimeout((()=>{this.updateScrollPaneFadeSync(!1)}),e))},updateScrollPaneFadeSync:function(t){if(this.previousScrollbarFadeIn===t)return;this.previousScrollbarFadeIn=t;const e=[];Object.keys(this.scrollPaneMap).forEach((t=>{const i=this.scrollPaneMap[t];i.hasScrollbar()&&e.push(i)})),e.length&&e.forEach((function(e){e.fade(t)}))},updateScrollPane:function(){const t=this.getScrollbarOptions();this.scrollPaneMap.HL.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthL,scrollPaneH:this.headerHeight,scrollBodyW:this.bodyWidthL,scrollBodyH:this.headerHeight,scrollbarV:t.HLV,scrollbarH:t.HLH})),this.scrollPaneMap.HR.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthR,scrollPaneH:this.headerHeight,scrollBodyW:this.bodyWidthR,scrollBodyH:this.headerHeight,scrollbarV:t.HRV,scrollbarH:t.HRH})),this.scrollPaneMap.TL.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthL,scrollPaneH:this.paneHeightT,scrollBodyW:this.bodyWidthL,scrollBodyH:this.bodyHeightT,scrollbarV:t.TLV,scrollbarH:t.TLH})),this.scrollPaneMap.TR.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthR,scrollPaneH:this.paneHeightT,scrollBodyW:this.bodyWidthR,scrollBodyH:this.bodyHeightT,scrollbarV:t.TRV,scrollbarH:t.TRH})),this.scrollPaneMap.BL.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthL,scrollPaneH:this.paneHeightB,scrollBodyW:this.bodyWidthL,scrollBodyH:this.bodyHeightB,scrollbarV:t.BLV,scrollbarH:t.BLH})),this.scrollPaneMap.BR.render(this.getScrollPaneOptions({scrollPaneW:this.paneWidthR,scrollPaneH:this.paneHeightB,scrollBodyW:this.bodyWidthR,scrollBodyH:this.bodyHeightB,scrollbarV:t.BRV,scrollbarH:t.BRH})),this.scrollLeft=this.getScrollLeft(),this.scrollTop=this.getScrollTop(),this.updateScrollPaneFade(Boolean(this.options.scrollbarFadeTimeout))},getScrollPaneOptions:function(t){const e=this.options;return t.scrollbarFade=e.scrollbarFade,t.gradient=d.clamp(d.toNum(e.scrollPaneGradient,!0),0,100),t},getScrollbarOptions:function(){const t=this.options.scrollbarRound,e={};return["HLH","HLV","HRH","HRV","TLH","TLV","TRH","TRV","BLH","BLV","BRH","BRV"].forEach((function(i){e[i]={size:0,round:t,blank:!1}})),this.scrollbarOptionsHandler(e),this.scrollbarFadeHandler(e),e},scrollbarOptionsHandler:function(t){const e=this.scrollbarSizeH,i=this.scrollbarSizeV;this.scrollbarHeaderHandler(t,e,i),this.frozenInfo.columns?this.frozenInfo.rows?this.scrollbarC1R1Handler(t,e,i):this.scrollbarC1R0Handler(t,e,i):this.frozenInfo.rows?this.scrollbarC0R1Handler(t,e,i):this.scrollbarC0R0Handler(t,e,i)},scrollbarFadeHandler:function(t){if(this.options.scrollbarFade)for(const e in t)if(d.hasOwn(t,e)){const i=t[e];i.size>0&&i.blank&&(i.blank=!1,i.size=0)}},scrollbarHeaderHandler:function(t,e,i){this.hasVScroll&&(this.frozenInfo.columns?(t.HRV.size=i,t.HRV.blank=1):(t.HLV.size=i,t.HLV.blank=1))},scrollbarC0R0Handler:function(t,e,i){t.TLH.size=e,t.TLV.size=i},scrollbarC0R1Handler:function(t,e,i){this.frozenInfo.bottom?this.scrollbarC0R1B1Handler(t,e,i):this.scrollbarC0R1B0Handler(t,e,i)},scrollbarC0R1B1Handler:function(t,e,i){t.BLH.size=e,t.TLV.size=i,this.hasVScroll&&(t.BLV.size=i,t.BLV.blank=1)},scrollbarC0R1B0Handler:function(t,e,i){t.BLH.size=e,t.BLV.size=i,this.hasVScroll&&(t.TLV.size=i,t.TLV.blank=1)},scrollbarC1R0Handler:function(t,e,i){this.frozenInfo.right?this.scrollbarC1R0R1Handler(t,e,i):this.scrollbarC1R0R0Handler(t,e,i)},scrollbarC1R0R1Handler:function(t,e,i){this.hasHScroll&&(t.TLH.size=e,this.scrollPaneHidden?(t.TRH.size=e,t.TLH.blank=!0):(t.TRH.size=e,t.TRH.blank=!0)),t.TRV.size=i},scrollbarC1R0R0Handler:function(t,e,i){this.hasHScroll&&(t.TRH.size=e,this.scrollPaneHidden?(t.TLH.size=e,t.TRH.blank=!0):(t.TLH.size=e,t.TLH.blank=!0)),t.TRV.size=i},scrollbarC1R1Handler:function(t,e,i){this.frozenInfo.right?this.frozenInfo.bottom?this.scrollbarC1R1R1B1Handler(t,e,i):this.scrollbarC1R1R1B0Handler(t,e,i):this.frozenInfo.bottom?this.scrollbarC1R1R0B1Handler(t,e,i):this.scrollbarC1R1R0B0Handler(t,e,i)},scrollbarC1R1R1B1Handler:function(t,e,i){this.hasHScroll&&(t.BLH.size=e,this.scrollPaneHidden&&(t.BRH.size=e,t.BLH.blank=!0)),t.TRV.size=i,this.hasVScroll&&(t.BRV.size=i,t.BRV.blank=1)},scrollbarC1R1R1B0Handler:function(t,e,i){this.hasHScroll&&(t.BLH.size=e,this.scrollPaneHidden?(t.BRH.size=e,t.BLH.blank=!0):(t.BRH.size=e,t.BRH.blank=!0)),t.BRV.size=i,this.hasVScroll&&(t.TRV.size=i,t.TRV.blank=1)},scrollbarC1R1R0B1Handler:function(t,e,i){this.hasHScroll&&(t.BRH.size=e,this.scrollPaneHidden&&(t.BLH.size=e,t.BRH.blank=!0)),t.TRV.size=i,this.hasVScroll&&(t.BRV.size=i,t.BRV.blank=1)},scrollbarC1R1R0B0Handler:function(t,e,i){this.hasHScroll&&(t.BRH.size=e,this.scrollPaneHidden?(t.BLH.size=e,t.BRH.blank=!0):(t.BLH.size=e,t.BLH.blank=!0)),t.BRV.size=i,this.hasVScroll&&(t.TRV.size=i,t.TRV.blank=1)},removeScrollPane:function(){clearTimeout(this.timeout_fade),this.previousScrollbarFadeIn=null,this.scrollPaneMap&&(Object.keys(this.scrollPaneMap).forEach((t=>{const e=this.scrollPaneMap[t];e&&e.destroy()})),this.scrollPaneMap=null,this.scrollPane=null,this.scrollPaneFrozen=null)}},Ot={updateScrollState:function(){this.updateGlobalScrollInfo(),this.updateHScrollState(),this.updateVScrollState(),this.updateBlankColumnWidth(),this.scrollStateChanged=!1,this.previousHasHScroll===this.hasHScroll&&this.previousHasVScroll===this.hasVScroll||(this.scrollStateChanged=!0,this.previousHasHScroll=this.hasHScroll,this.previousHasVScroll=this.hasVScroll,this.trigger(y.onScrollStateChanged,{hasHScroll:this.hasHScroll,hasVScroll:this.hasVScroll}))},updateGlobalScrollInfo:function(){this.totalRowsLength=this.getRowsLength(),this.totalRowsHeight=this.getRowsHeight(),this.frozenRowsHeight=this.getFrozenRowsHeight(),this.scrollRowsHeight=this.totalRowsHeight-this.frozenRowsHeight,this.totalRowsHeight=Math.max(this.totalRowsHeight,1),this.scrollRowsHeight=Math.max(this.scrollRowsHeight,1),this.flushRowFrom(this.totalRowsLength)},updateHScrollState:function(){if(this.hasHScroll=!0,this.updateScrollPaneHiddenState(),this.updateHScrollByScrollPaneHidden(),this.scrollPaneHidden)return;this.containerWidth-this.columnsWidth>=0&&(this.hasHScroll=!1)},getScrollPaneCurrentWidth:function(){return this.frozenInfo.right?this.bodyWidth-this.columnsWidthR:this.bodyWidth-this.columnsWidthL},updateHScrollByScrollPaneHidden:function(){if(this.scrollPaneHidden){this.hasHScroll=!1;this.getScrollPaneCurrentWidth()=this.totalRowsHeight&&(this.hasVScroll=!1)}},updateBlankColumnWidth:function(){let t=this.containerWidth-this.columnsWidth;!this.hasVScroll||this.hasHScroll||this.options.scrollbarFade||(t-=this.scrollbarSizeV),this.scrollPaneHidden&&(t=0),this.hasHScroll||(t>=0?(this.frozenInfo.columns?this.columnsWidthR+=t:this.columnsWidthL+=t,this.blankColumn.tg_width=t):this.hasHScroll=!0)}},$t={scrollToRow:function(t){const e=this.getRowItem(t);return this.scrollToItem(e,null),this},scrollToColumn:function(t){const e=this.getColumnItem(t);return this.scrollToItem(null,e),this},scrollToCell:function(t,e){const i=this.getRowItem(t),o=this.getColumnItem(e);return this.scrollToItem(i,o),this},scrollToFirstRow:function(){return this.setScrollTop(0),this},scrollToLastRow:function(){const t=this.getViewRows(),e=t[t.length-1],i=this.getScrollRowPosition(e);if(d.isNum(i))return this.setScrollTop(i),this},scrollToFirstColumn:function(){return this.setScrollLeft(0),this},scrollToLastColumn:function(t){const e=this.getViewColumns();let i=e[e.length-2];t&&(i=e[e.length-1]);const o=this.getScrollColumnPosition(i);if(d.isNum(o))return this.setScrollLeft(o),this},scrollRowIntoView:function(t){const e=this.getRowItem(t);return this.scrollItemIntoView(e,null),this},scrollColumnIntoView:function(t){const e=this.getColumnItem(t);return this.scrollItemIntoView(null,e),this},scrollCellIntoView:function(t,e){const i=this.getRowItem(t),o=this.getColumnItem(e);return this.scrollItemIntoView(i,o),this},setScroll:function(t,e){return t===this.scrollLeft&&e===this.scrollTop||(this.scrollLeft=t,this.scrollTop=e,this.scrollHandler()),this},setScrollLeft:function(t){return t===this.scrollLeft||(this.scrollLeft=t,this.scrollHandler()),this},setScrollTop:function(t){return t===this.scrollTop||(this.scrollTop=t,this.scrollHandler()),this},getScrollRowPosition:function(t){if(!t)return;let e=t.tg_view_index;return e-=this.frozenInfo.rows,e>=0?this.getRowTop(t):void 0},getScrollColumnPosition:function(t){if(!t)return;let e=t.tg_left;return this.frozenInfo.columns&&(e-=this.bodyWidthL),e>=0?e:void 0},scrollToItem:function(t,e){return this.scrollToChanged=!1,this.scrollToRowHandler(t),this.scrollToColumnHandler(e),this.scrollToChanged?(this.scrollHandler(),this):this},scrollToRowHandler:function(t){if(!t)return;const e=this.getScrollRowPosition(t);d.isNum(e)&&e!==this.scrollTop&&(this.scrollTop=e,this.scrollToChanged=!0)},scrollToColumnHandler:function(t){if(!t)return;const e=this.getScrollColumnPosition(t);d.isNum(e)&&e!==this.scrollLeft&&(this.scrollLeft=e,this.scrollToChanged=!0)},scrollItemIntoView:function(t,e){return this.scrollIntoViewChanged=!1,this.scrollRowIntoViewHandler(t),this.scrollColumnIntoViewHandler(e),this.scrollIntoViewChanged?(this.scrollHandler(),this):this},scrollRowIntoViewHandler:function(t){if(!t)return;const e=this.getScrollRowPosition(t);if(!d.isNum(e))return;if(ethis.scrollTop+o){const t=e-(o-i);this.scrollTop=t,this.scrollIntoViewChanged=!0}},scrollColumnIntoViewHandler:function(t){if(!t)return;const e=this.getScrollColumnPosition(t);if(!d.isNum(e))return;if(ethis.scrollLeft+o){const t=e-(o-i);this.scrollLeft=t,this.scrollIntoViewChanged=!0}},scrollOnInit:function(){const{scrollLeft:t,scrollTop:e,scrollColumn:i,scrollRow:o}=this.renderSettings;this.scrollIntoViewChanged=!1,Number.isInteger(t)&&t!==this.scrollLeft&&(this.scrollLeft=t,this.scrollIntoViewChanged=!0),Number.isInteger(e)&&e!==this.scrollTop&&(this.scrollTop=e,this.scrollIntoViewChanged=!0),i&&this.scrollColumnIntoViewHandler(i),o&&this.scrollRowIntoViewHandler(o),this.scrollIntoViewChanged&&this.scrollPane.setPosition(this.scrollLeft,this.scrollTop)},scrollHandler:function(){this.scrollPane.setPosition(this.scrollLeft,this.scrollTop),this.scrollRenderHandler()},scrollRenderHandler:function(){this.previousScrollLeft===this.scrollLeft&&this.previousScrollTop===this.scrollTop||(this.previousScrollLeft=this.scrollLeft,this.previousScrollTop=this.scrollTop,this.onNextUpdated((()=>{this.updateScrollPaneFade(!0),this.trigger(y.onScroll,{scrollLeft:this.scrollLeft,scrollTop:this.scrollTop})})),this.render())},scrollTouchStartHandler:function(t,e){this.hideColumnLine(),this.scrollTouchLeft=this.getScrollLeft(),this.scrollTouchTop=this.getScrollTop(),this.scrollMaxTouchLeft=this.getMaxScrollLeft(),this.scrollMaxTouchTop=this.getMaxScrollTop()},getTouchOrientation:function(t){return t.orientation?t.orientation:[e.LEFT,e.RIGHT].includes(t.direction)?(t.orientation||(t.orientation="Y"),t.orientation):[e.UP,e.DOWN].includes(t.direction)?(t.orientation||(t.orientation="X"),t.orientation):void 0},scrollTouchMoveHandler:function(t,e){if(e.touchLength>1)return;let i=e.offsetX,o=e.offsetY;const n=this.getTouchOrientation(e);"X"===n?i=0:"Y"===n&&(o=0);let s=this.scrollTouchLeft-i,r=this.scrollTouchTop-o;s=d.clamp(s,0,this.scrollMaxTouchLeft),r=d.clamp(r,0,this.scrollMaxTouchTop);let l=!1;this.scrollPaneHidden&&(l=this.scrollPaneFrozen.setOffsetH(-e.moveX),s=0);const h=this.getScrollLeft(),a=this.getScrollTop();(s!==h||r!==a||l)&&(d.preventDefault(e.e),this.setScroll(s,r))},scrollTouchEndHandler:function(){this.protectedItem=null},scrollTouchInertiaHandler:function(t,e){const i=this.getScrollLeft(),o=this.getScrollTop(),n=i-e.touchInertiaX,s=o-e.touchInertiaY;this.setScroll(n,s)},getScrollViewWidth:function(){let t=this.getScrollPaneWidth();return this.frozenInfo.right||(t-=this.getScrollbarWidth()),t},getScrollViewHeight:function(){let t=this.getScrollPaneHeight();return this.frozenInfo.bottom||(t-=this.getScrollbarHeight()),t},getScrollPaneWidth:function(){return this.scrollPane.width()},getScrollPaneHeight:function(){return this.scrollPane.height()},getScrollbarWidth:function(){return this.hasVScroll&&!this.options.scrollbarFade?this.scrollbarSizeV:0},getScrollbarHeight:function(){return this.hasHScroll&&!this.options.scrollbarFade?this.scrollbarSizeH:0},getScrollLeft:function(){return this.scrollPane.getScrollLeft()},getScrollTop:function(){return this.scrollPane.getScrollTop()},getMaxScrollLeft:function(){return this.scrollPane.getMaxScrollLeft()},getMaxScrollTop:function(){return this.scrollPane.getMaxScrollTop()}};class Dt{constructor(t){this.options=this.generateOptions(t)}generateOptions(t){return d.merge({ignore:null,sortField:"",sortFactor:1,sortBlankFactor:1,sortComparer:null},t)}sortList(t){if(!d.isList(t)||1===t.length)return!1;this.ignoreExcludeHandler(t);const e=this.comparerHandler(t);return this.ignoreIncludeHandler(t),e}getDefaultComparer(t){return(ft[t]||ft.string).bind(this)}comparerHandler(t){const e=this.options,i=e.sortField,o=e.sortFactor,n=e.sortBlankFactor,s=e.sortComparer;return"function"==typeof s&&(t.sort(((t,e)=>s.call(this,t,e,{sortField:i,sortFactor:o,sortBlankFactor:n}))),!0)}ignoreExcludeHandler(t){const e=this.options.ignore;this.ignoreListTop=[],this.ignoreListBottom=[];const i=[];for(let o=0,n=t.length;o{t.unshift(e.item)})),this.ignoreListBottom.forEach((e=>{t.push(e.item)}))}}const Bt={removeSortColumn:function(){return this.sortColumn=null,this.$header&&this.$header.find(".tg-column-sorted").removeClass("tg-column-sorted"),this},setSortColumn:function(t){if(!(t=this.getColumnItem(t)))return;if(!this.isColumnSortable(t))return;t===this.sortColumn?t.sortAsc=!t.sortAsc:d.hasOwn(t,"sortAsc")||(t.sortAsc=this.options.sortAsc),this.sortColumn=t;if(this.getRowsLength()-this.frozenInfo.rows<2)return;if(!this.headerCreated)return;this.updateRowsSort()&&(this.renderHeaderSort(),this.flushSort(),this.render("rows"))},renderHeaderSort:function(){const t=this.sortColumn;if(!t)return this;if(!this.isColumnSortable(t))return this;this.$header.find(".tg-column-sorted").removeClass("tg-column-sorted");const e=t.tg_view_index,i=this.$header.find(`.tg-header-item[column='${e}']`).find(".tg-column-header").addClass("tg-column-sorted");return t.sortAsc?i.removeClass("tg-sort-desc").addClass("tg-sort-asc"):i.removeClass("tg-sort-asc").addClass("tg-sort-desc"),this},getSortComparer:function(t){const e=t.comparer;if("function"==typeof e)return e;const i=this.options.sortComparers,o=i[e||t.type];return"function"==typeof o?o:i.string},updateRowsSort:function(){const t=this.sortColumn;if(!t)return!1;const e=t.id;return!!e&&this.sortRows(e,t)},sortRows:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=e.sortAsc?-1:1,o=this.options.sortBlankValueBottom?1:i,n=this.getSortComparer(e);let s=!1;const r=new Dt({ignore:function(t){return t.tg_frozen?{item:t,top:!0}:t.sortFixed?{item:t,top:"top"===t.sortFixed}:void 0},sortField:t,sortFactor:i,sortBlankFactor:o,sortComparer:n}),l=function(t){r.sortList(t)&&(s=!0),t.forEach((function(t,e){t.tg_sub_index=e,t.subs&&l(t.subs)}))};return l(this.rows),s&&this.initRowsHandler(),s}},At={default:{},lightblue:{rowHeight:35,scrollbarSize:10,scrollbarRound:!0},dark:{}},Wt={getAllThemes:function(){return Object.keys(At)},getThemeOptions:function(t){return At[t]}},Ft={update:function(){return this.flushBody(),this.render("rows"),this},updateRow:function(t,e){const i=this.getRowItem(t);if(!i)return this;if(e&&"object"==typeof e){const t=this.getItemSnapshot(e);Object.keys(t).forEach((function(e){i[e]=t[e]}))}return this.flushRow(i.tg_view_index),this.render("rows"),this},updateCell:function(t,e,i){const o=this.getRowItem(t);if(!o)return this;const n=this.getColumnItem(e);return n?(arguments.length>2&&(o[n.id]=i),this.flushCell(o.tg_view_index,n.tg_view_index),this.render("rows"),this):this},onNextUpdated:function(t){return"function"!=typeof t||this.once(y.onUpdated,t),this}},Gt={getViewport:function(){this.scrollLeft=this.getScrollLeft(),this.scrollTop=this.getScrollTop();return{rows:this.getViewportRows(),columns:this.getViewportColumns()}},getViewportRows:function(){const t=[],e=this.viewRows,i=e.length;if(!i)return t;let o=this.options.rowCacheLength;o=d.clamp(d.toNum(o,!0),0,i);const n=this.frozenInfo.rows;if(n){let e=0;for(;e1;){const n=Math.floor(.5*(e+i)),s=t[n],r=this.getRowTop(s),l=this.getRowHeight(s);if(or+l))return n;e=n}}const n=t[i];return o=e)return[];const i=[],o=this.frozenInfo.columns,n=this.viewColumns;for(let s=o,r=n.length;s0;){const n=t[0]-1;n>o&&t.unshift(n);const s=t[t.length-1]+1;si)&&!(n0&&(e.rows.length=o),i=t.options}return this.data=e,this.dataOptions=i,this}setDataSnapshot(t){return this.setData(this.generateDataSnapshot(t)),this}getData(){return this.data}toString(){return"[object Grid]"}}var Ut;Ut=jt.prototype,[v,R,S,T,E,I,L,x,z,F,G,j,K,q,J,Z,tt,et,pt,mt,bt,wt,vt,Ht,{keyTabHandler:function(t){},keyEnterHandler:function(t){},keyEscHandler:function(t){},keyPageUpHandler:function(t){return this.scrollPane.keyPageUpHandler(t)},keyPageDownHandler:function(t){return this.scrollPane.keyPageDownHandler(t)},keyEndHandler:function(t){return this.scrollPane.keyEndHandler(t)},keyHomeHandler:function(t){return this.scrollPane.keyHomeHandler(t)},keyLeftHandler:function(t){return this.scrollPaneHidden?this.scrollPaneFrozen.keyLeftHandler(t):this.scrollPane.keyLeftHandler(t)},keyUpHandler:function(t){return this.scrollPane.keyUpHandler(t)},keyRightHandler:function(t){return this.scrollPaneHidden?this.scrollPaneFrozen.keyRightHandler(t):this.scrollPane.keyRightHandler(t)},keyDownHandler:function(t){return this.scrollPane.keyDownHandler(t)}},Ct,yt,Rt,St,Tt,{showRow:function(t){return this.updateRowsInvisible(this.toRowItemList(t),!1)},hideRow:function(t){return this.updateRowsInvisible(this.toRowItemList(t),!0)},updateRowsInvisible:function(t,e){if(!t.length)return!1;const i=[];return t.forEach((t=>{t.invisible!==e&&(t.invisible=e,t.tg_invisible=e,i.push(t))})),!!i.length&&(this.update(),!0)}},Et,It,Lt,xt,zt,Vt,Ot,$t,Bt,Wt,Ft,Gt].forEach((t=>{for(const e in t){if(d.hasOwn(Ut,e))throw new Error(`ERROR: extends with an existing key: "${e}"`);Ut[e]=t[e]}}));const Xt=jt,Yt=e.VERSION,Kt=e.TIMESTAMP,qt={VERSION:Yt,TIMESTAMP:Kt,Grid:Xt,$:w,CONST:e,EventBase:k,Icon:X,Motion:B,ScrollPane:kt,Util:d}})();var n=o.$,s=o.MP,r=o._d,l=o.xA,h=o.In,a=o.T8,c=o.Gr,d=o.ht,u=o.J0,g=o.xv,f=o.Ay;export{n as $,s as CONST,r as EventBase,l as Grid,h as Icon,a as Motion,c as ScrollPane,d as TIMESTAMP,u as Util,g as VERSION,f as default}; \ No newline at end of file diff --git a/js/workflow-metadata.js b/js/workflow-metadata.js new file mode 100644 index 00000000..82dbe016 --- /dev/null +++ b/js/workflow-metadata.js @@ -0,0 +1,84 @@ +/** + * Attaches metadata to the workflow on save + * - custom node pack version to all custom nodes used in the workflow + * + * Example metadata: + * "nodes": { + * "1": { + * type: "CheckpointLoaderSimple", + * ... + * properties: { + * cnr_id: "comfy-core", + * version: "0.3.8", + * }, + * }, + * } + * + * @typedef {Object} NodeInfo + * @property {string} ver - Version (git hash or semantic version) + * @property {string} cnr_id - ComfyRegistry node ID + * @property {boolean} enabled - Whether the node is enabled + */ + +import { app } from "../../scripts/app.js"; +import { api } from "../../scripts/api.js"; + +class WorkflowMetadataExtension { + constructor() { + this.name = "Comfy.CustomNodesManager.WorkflowMetadata"; + this.installedNodes = {}; + this.comfyCoreVersion = null; + } + + /** + * Get the installed nodes info + * @returns {Promise>} The mapping from node name to its info. + * ver can either be a git commit hash or a semantic version such as "1.0.0" + * cnr_id is the id of the node in the ComfyRegistry + * enabled is true if the node is enabled, false if it is disabled + */ + async getInstalledNodes() { + const res = await api.fetchApi("/customnode/installed"); + return await res.json(); + } + + async init() { + this.installedNodes = await this.getInstalledNodes(); + this.comfyCoreVersion = (await api.getSystemStats()).system.comfyui_version; + } + + /** + * Called when any node is created + * @param {LGraphNode} node The newly created node + */ + nodeCreated(node) { + try { + // nodeData doesn't exist if node is missing or node is frontend only node + if (!node?.constructor?.nodeData?.python_module) return; + + const nodeProperties = (node.properties ??= {}); + const modules = node.constructor.nodeData.python_module.split("."); + const moduleType = modules[0]; + + if (moduleType === "custom_nodes") { + const nodePackageName = modules[1]; + const { cnr_id, aux_id, ver } = + this.installedNodes[nodePackageName] ?? + this.installedNodes[nodePackageName.toLowerCase()] ?? + {}; + + if (cnr_id === "comfy-core") return; // don't allow hijacking comfy-core name + if (cnr_id) nodeProperties.cnr_id = cnr_id; + else nodeProperties.aux_id = aux_id; + if (ver) nodeProperties.ver = ver.trim(); + } else if (["nodes", "comfy_extras", "comfy_api_nodes"].includes(moduleType)) { + nodeProperties.cnr_id = "comfy-core"; + nodeProperties.ver = this.comfyCoreVersion; + } + } catch (e) { + console.error(e); + } + } +} + +app.registerExtension(new WorkflowMetadataExtension()); diff --git a/json-checker.py b/json-checker.py index a6c1317f..1961ee68 100644 --- a/json-checker.py +++ b/json-checker.py @@ -3,10 +3,12 @@ import argparse def check_json_syntax(file_path): try: - with open(file_path, 'r') as file: + with open(file_path, 'r', encoding='utf-8') as file: json_str = file.read() json.loads(json_str) print(f"[ OK ] {file_path}") + except UnicodeDecodeError as e: + print(f"Unicode decode error: {e}") except json.JSONDecodeError as e: print(f"[FAIL] {file_path}\n\n {e}\n") except FileNotFoundError: diff --git a/misc/custom-nodes.jpg b/misc/custom-nodes.jpg deleted file mode 100644 index 10482f1b..00000000 Binary files a/misc/custom-nodes.jpg and /dev/null differ diff --git a/misc/main.jpg b/misc/main.jpg deleted file mode 100644 index ec31f76f..00000000 Binary files a/misc/main.jpg and /dev/null differ diff --git a/misc/main.png b/misc/main.png deleted file mode 100644 index 910da417..00000000 Binary files a/misc/main.png and /dev/null differ diff --git a/misc/menu.jpg b/misc/menu.jpg deleted file mode 100644 index bf98d421..00000000 Binary files a/misc/menu.jpg and /dev/null differ diff --git a/misc/missing-list.png b/misc/missing-list.png deleted file mode 100644 index f1cc4fd2..00000000 Binary files a/misc/missing-list.png and /dev/null differ diff --git a/misc/missing-menu.png b/misc/missing-menu.png deleted file mode 100644 index 5e74744b..00000000 Binary files a/misc/missing-menu.png and /dev/null differ diff --git a/misc/models.png b/misc/models.png deleted file mode 100644 index 9e985fb4..00000000 Binary files a/misc/models.png and /dev/null differ diff --git a/misc/nickname.jpg b/misc/nickname.jpg deleted file mode 100644 index e3cfdcac..00000000 Binary files a/misc/nickname.jpg and /dev/null differ diff --git a/misc/portable-install.png b/misc/portable-install.png deleted file mode 100644 index 17717451..00000000 Binary files a/misc/portable-install.png and /dev/null differ diff --git a/misc/share-setting.jpg b/misc/share-setting.jpg deleted file mode 100644 index 0ceacf2c..00000000 Binary files a/misc/share-setting.jpg and /dev/null differ diff --git a/misc/share.jpg b/misc/share.jpg deleted file mode 100644 index 97c0ae7d..00000000 Binary files a/misc/share.jpg and /dev/null differ diff --git a/misc/snapshot.jpg b/misc/snapshot.jpg deleted file mode 100644 index 33269564..00000000 Binary files a/misc/snapshot.jpg and /dev/null differ diff --git a/model-list.json b/model-list.json index f636f9d6..71525c06 100644 --- a/model-list.json +++ b/model-list.json @@ -1,5 +1,49 @@ { "models": [ + { + "name": "TAEF1 Decoder", + "type": "TAESD", + "base": "FLUX.1", + "save_path": "vae_approx", + "description": "(FLUX.1 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taef1_decoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taef1_decoder.pth", + "size": "4.71MB" + }, + { + "name": "TAEF1 Encoder", + "type": "TAESD", + "base": "FLUX.1", + "save_path": "vae_approx", + "description": "(FLUX.1 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taef1_encoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taef1_encoder.pth", + "size": "4.71MB" + }, + { + "name": "TAESD3 Decoder", + "type": "TAESD", + "base": "SD3", + "save_path": "vae_approx", + "description": "(SD3 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taesd3_decoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taesd3_decoder.pth", + "size": "4.94MB" + }, + { + "name": "TAESD3 Encoder", + "type": "TAESD", + "base": "SD3", + "save_path": "vae_approx", + "description": "(SD3 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taesd3_encoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taesd3_encoder.pth", + "size": "4.94MB" + }, { "name": "TAESDXL Decoder", "type": "TAESD", @@ -8,7 +52,8 @@ "description": "(SDXL Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", "reference": "https://github.com/madebyollin/taesd", "filename": "taesdxl_decoder.pth", - "url": "https://github.com/madebyollin/taesd/raw/main/taesdxl_decoder.pth" + "url": "https://github.com/madebyollin/taesd/raw/main/taesdxl_decoder.pth", + "size": "4.91MB" }, { "name": "TAESDXL Encoder", @@ -18,7 +63,8 @@ "description": "(SDXL Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", "reference": "https://github.com/madebyollin/taesd", "filename": "taesdxl_encoder.pth", - "url": "https://github.com/madebyollin/taesd/raw/main/taesdxl_encoder.pth" + "url": "https://github.com/madebyollin/taesd/raw/main/taesdxl_encoder.pth", + "size": "4.91MB" }, { "name": "TAESD Decoder", @@ -28,7 +74,8 @@ "description": "To view the preview in high quality while running samples in ComfyUI, you will need this model.", "reference": "https://github.com/madebyollin/taesd", "filename": "taesd_decoder.pth", - "url": "https://github.com/madebyollin/taesd/raw/main/taesd_decoder.pth" + "url": "https://github.com/madebyollin/taesd/raw/main/taesd_decoder.pth", + "size": "4.91MB" }, { "name": "TAESD Encoder", @@ -38,7 +85,8 @@ "description": "To view the preview in high quality while running samples in ComfyUI, you will need this model.", "reference": "https://github.com/madebyollin/taesd", "filename": "taesd_encoder.pth", - "url": "https://github.com/madebyollin/taesd/raw/main/taesd_encoder.pth" + "url": "https://github.com/madebyollin/taesd/raw/main/taesd_encoder.pth", + "size": "4.91MB" }, { "name": "RealESRGAN x2", @@ -48,7 +96,8 @@ "description": "RealESRGAN x2 upscaler model", "reference": "https://huggingface.co/ai-forever/Real-ESRGAN", "filename": "RealESRGAN_x2.pth", - "url": "https://huggingface.co/ai-forever/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth" + "url": "https://huggingface.co/ai-forever/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth", + "size": "67.1MB" }, { "name": "RealESRGAN x4", @@ -58,7 +107,8 @@ "description": "RealESRGAN x4 upscaler model", "reference": "https://huggingface.co/ai-forever/Real-ESRGAN", "filename": "RealESRGAN_x4.pth", - "url": "https://huggingface.co/ai-forever/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth" + "url": "https://huggingface.co/ai-forever/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth", + "size": "67.0MB" }, { "name": "ESRGAN x4", @@ -68,7 +118,8 @@ "description": "ESRGAN x4 upscaler model", "reference": "https://huggingface.co/Afizi/ESRGAN_4x.pth", "filename": "ESRGAN_4x.pth", - "url": "https://huggingface.co/Afizi/ESRGAN_4x.pth/resolve/main/ESRGAN_4x.pth" + "url": "https://huggingface.co/Afizi/ESRGAN_4x.pth/resolve/main/ESRGAN_4x.pth", + "size": "66.9MB" }, { "name": "4x_foolhardy_Remacri", @@ -78,7 +129,8 @@ "description": "4x_foolhardy_Remacri upscaler model", "reference": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri", "filename": "4x_foolhardy_Remacri.pth", - "url": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri/resolve/main/4x_foolhardy_Remacri.pth" + "url": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri/resolve/main/4x_foolhardy_Remacri.pth", + "size": "67.0MB" }, { "name": "4x-AnimeSharp", @@ -88,7 +140,8 @@ "description": "4x-AnimeSharp upscaler model", "reference": "https://huggingface.co/Kim2091/AnimeSharp/", "filename": "4x-AnimeSharp.pth", - "url": "https://huggingface.co/Kim2091/AnimeSharp/resolve/main/4x-AnimeSharp.pth" + "url": "https://huggingface.co/Kim2091/AnimeSharp/resolve/main/4x-AnimeSharp.pth", + "size": "67.0MB" }, { "name": "4x-UltraSharp", @@ -98,7 +151,8 @@ "description": "4x-UltraSharp upscaler model", "reference": "https://huggingface.co/Kim2091/UltraSharp/", "filename": "4x-UltraSharp.pth", - "url": "https://huggingface.co/Kim2091/UltraSharp/resolve/main/4x-UltraSharp.pth" + "url": "https://huggingface.co/Kim2091/UltraSharp/resolve/main/4x-UltraSharp.pth", + "size": "67.0MB" }, { "name": "4x_NMKD-Siax_200k", @@ -108,7 +162,8 @@ "description": "4x_NMKD-Siax_200k upscaler model", "reference": "https://huggingface.co/gemasai/4x_NMKD-Siax_200k", "filename": "4x_NMKD-Siax_200k.pth", - "url": "https://huggingface.co/gemasai/4x_NMKD-Siax_200k/resolve/main/4x_NMKD-Siax_200k.pth" + "url": "https://huggingface.co/gemasai/4x_NMKD-Siax_200k/resolve/main/4x_NMKD-Siax_200k.pth", + "size": "67.0MB" }, { "name": "8x_NMKD-Superscale_150000_G", @@ -118,7 +173,19 @@ "description": "8x_NMKD-Superscale_150000_G upscaler model", "reference": "https://huggingface.co/uwg/upscaler", "filename": "8x_NMKD-Superscale_150000_G.pth", - "url": "https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/8x_NMKD-Superscale_150000_G.pth" + "url": "https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/8x_NMKD-Superscale_150000_G.pth", + "size": "67.1MB" + }, + { + "name": "8x_NMKD-Faces_160000_G", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "8x_NMKD-Faces_160000_G upscaler model", + "reference": "https://huggingface.co/gemasai/8x_NMKD-Faces_160000_G/tree/main", + "filename": "8x_NMKD-Faces_160000_G.pth", + "url": "https://huggingface.co/gemasai/8x_NMKD-Faces_160000_G/resolve/main/8x_NMKD-Faces_160000_G.pth", + "size": "67.2MB" }, { "name": "LDSR(Latent Diffusion Super Resolution)", @@ -128,37 +195,19 @@ "description": "LDSR upscale model. Through the [a/ComfyUI-Flowty-LDSR](https://github.com/flowtyone/ComfyUI-Flowty-LDSR) extension, the upscale model can be utilized.", "reference": "https://github.com/CompVis/latent-diffusion", "filename": "last.ckpt", - "url": "https://heibox.uni-heidelberg.de/f/578df07c8fc04ffbadf3/?dl=1" + "url": "https://heibox.uni-heidelberg.de/f/578df07c8fc04ffbadf3/?dl=1", + "size": "2.04GB" }, { "name": "stabilityai/stable-diffusion-x4-upscaler", - "type": "checkpoints", + "type": "checkpoint", "base": "upscale", "save_path": "checkpoints/upscale", - "description": "[3.53GB] This upscaling model is a latent text-guided diffusion model and should be used with SD_4XUpscale_Conditioning and KSampler.", + "description": "This upscaling model is a latent text-guided diffusion model and should be used with SD_4XUpscale_Conditioning and KSampler.", "reference": "https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler", "filename": "x4-upscaler-ema.safetensors", - "url": "https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler/resolve/main/x4-upscaler-ema.safetensors" - }, - { - "name": "Inswapper-fp16 (face swap)", - "type": "insightface", - "base" : "inswapper", - "save_path": "insightface", - "description": "[264MB] Checkpoint of the insightface swapper model\n(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,\nComfyUI roop and comfy_mtb)", - "reference": "https://github.com/facefusion/facefusion-assets", - "filename": "inswapper_128_fp16.onnx", - "url": "https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128_fp16.onnx" - }, - { - "name": "Inswapper (face swap)", - "type": "insightface", - "base" : "inswapper", - "save_path": "insightface", - "description": "[529MB] Checkpoint of the insightface swapper model\n(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,\nComfyUI roop and comfy_mtb)", - "reference": "https://github.com/facefusion/facefusion-assets", - "filename": "inswapper_128.onnx", - "url": "https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128.onnx" + "url": "https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler/resolve/main/x4-upscaler-ema.safetensors", + "size": "3.53GB" }, { "name": "Deepbump", @@ -168,8 +217,9 @@ "description": "Checkpoint of the deepbump model to generate height and normal maps textures from an image (requires comfy_mtb)", "reference": "https://github.com/HugoTini/DeepBump", "filename": "deepbump256.onnx", - "url": "https://github.com/HugoTini/DeepBump/raw/master/deepbump256.onnx" - }, + "url": "https://github.com/HugoTini/DeepBump/raw/master/deepbump256.onnx", + "size": "26.7MB" + }, { "name": "GFPGAN 1.3", "type": "face_restore", @@ -178,7 +228,8 @@ "description": "Face restoration", "reference": "https://github.com/TencentARC/GFPGAN", "filename": "GFPGANv1.3.pth", - "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth" + "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth", + "size": "348.6MB" }, { "name": "GFPGAN 1.4", @@ -188,8 +239,9 @@ "description": "Face restoration", "reference": "https://github.com/TencentARC/GFPGAN", "filename": "GFPGANv1.4.pth", - "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth" - }, + "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth", + "size": "348.6MB" + }, { "name": "RestoreFormer", "type": "face_restore", @@ -198,17 +250,19 @@ "description": "Face restoration", "reference": "https://github.com/TencentARC/GFPGAN", "filename": "RestoreFormer.pth", - "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/RestoreFormer.pth" + "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/RestoreFormer.pth", + "size": "290.8MB" }, { "name": "Stable Video Diffusion Image-to-Video", - "type": "checkpoints", + "type": "checkpoint", "base": "SVD", "save_path": "checkpoints/SVD", "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 14 frames @ 576x1024", "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid", "filename": "svd.safetensors", - "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid/resolve/main/svd.safetensors" + "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid/resolve/main/svd.safetensors", + "size": "9.56GB" }, { "name": "stabilityai/Stable Zero123", @@ -218,492 +272,1022 @@ "description": "Stable Zero123 is a model for view-conditioned image generation based on [a/Zero123](https://github.com/cvlab-columbia/zero123).", "reference": "https://huggingface.co/stabilityai/stable-zero123", "filename": "stable_zero123.ckpt", - "url": "https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt" + "url": "https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt", + "size": "8.58GB" }, { "name": "Stable Video Diffusion Image-to-Video (XT)", - "type": "checkpoints", + "type": "checkpoint", "base": "SVD", "save_path": "checkpoints/SVD", "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 25 frames @ 576x1024 ", "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt", "filename": "svd_xt.safetensors", - "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/resolve/main/svd_xt.safetensors" + "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/resolve/main/svd_xt.safetensors", + "size": "9.56GB" }, { "name": "negative_hand Negative Embedding", - "type": "embeddings", + "type": "embedding", "base": "SD1.5", - "save_path": "default", + "save_path": "embeddings/SD1.5", "description": "If you use this embedding with negatives, you can solve the issue of damaging your hands.", "reference": "https://civitai.com/models/56519/negativehand-negative-embedding", "filename": "negative_hand-neg.pt", - "url": "https://civitai.com/api/download/models/60938" + "url": "https://civitai.com/api/download/models/60938", + "size": "25KB" }, { "name": "bad_prompt Negative Embedding", - "type": "embeddings", + "type": "embedding", "base": "SD1.5", - "save_path": "default", + "save_path": "embeddings/SD1.5", "description": "The idea behind this embedding was to somehow train the negative prompt as an embedding, thus unifying the basis of the negative prompt into one word or embedding.", "reference": "https://civitai.com/models/55700/badprompt-negative-embedding", "filename": "bad_prompt_version2-neg.pt", - "url": "https://civitai.com/api/download/models/60095" + "url": "https://civitai.com/api/download/models/60095", + "size": "25KB" }, { "name": "Deep Negative V1.75", - "type": "embeddings", + "type": "embedding", "base": "SD1.5", - "save_path": "default", + "save_path": "embeddings/SD1.5", "description": "These embedding learn what disgusting compositions and color patterns are, including faulty human anatomy, offensive color schemes, upside-down spatial structures, and more. Placing it in the negative can go a long way to avoiding these things.", "reference": "https://civitai.com/models/4629/deep-negative-v1x", "filename": "ng_deepnegative_v1_75t.pt", - "url": "https://civitai.com/api/download/models/5637" + "url": "https://civitai.com/api/download/models/5637", + "size": "226KB" }, { "name": "EasyNegative", - "type": "embeddings", + "type": "embedding", "base": "SD1.5", - "save_path": "default", + "save_path": "embeddings/SD1.5", "description": "This embedding should be used in your NEGATIVE prompt. Adjust the strength as desired (seems to scale well without any distortions), the strength required may vary based on positive and negative prompts.", "reference": "https://civitai.com/models/7808/easynegative", "filename": "easynegative.safetensors", - "url": "https://civitai.com/api/download/models/9208" + "url": "https://civitai.com/api/download/models/9208", + "size": "25KB" }, - { "name": "stabilityai/comfyui_checkpoints/stable_cascade_stage_b.safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "Stable Cascade", "save_path": "checkpoints/Stable-Cascade", - "description": "[4.55GB] Stable Cascade stage_b checkpoints", + "description": "Stable Cascade stage_b checkpoints", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stable_cascade_stage_b.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_b.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_b.safetensors", + "size": "4.55GB" }, { "name": "stabilityai/comfyui_checkpoints/stable_cascade_stage_c.safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "Stable Cascade", "save_path": "checkpoints/Stable-Cascade", - "description": "[9.22GB] Stable Cascade stage_c checkpoints", + "description": "Stable Cascade stage_c checkpoints", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stable_cascade_stage_c.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_c.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_c.safetensors", + "size": "9.22GB" }, { "name": "stabilityai/Stable Cascade: stage_a.safetensors (VAE)", "type": "VAE", "base": "Stable Cascade", "save_path": "vae/Stable-Cascade", - "description": "[73.7MB] Stable Cascade: stage_a", + "description": "Stable Cascade: stage_a", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stage_a.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_a.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_a.safetensors", + "size": "73.7MB" }, { "name": "stabilityai/Stable Cascade: effnet_encoder.safetensors (VAE)", "type": "VAE", "base": "Stable Cascade", "save_path": "vae/Stable-Cascade", - "description": "[81.5MB] Stable Cascade: effnet_encoder.\nVAE encoder for stage_c latent.", + "description": "Stable Cascade: effnet_encoder.\nVAE encoder for stage_c latent.", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "effnet_encoder.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/effnet_encoder.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/effnet_encoder.safetensors", + "size": "81.5MB" }, { "name": "stabilityai/Stable Cascade: stage_b.safetensors (UNET)", - "type": "unet", + "type": "diffusion_model", "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[6.25GB] Stable Cascade: stage_b", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_b", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stage_b.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b.safetensors", + "size": "6.25GB" }, { "name": "stabilityai/Stable Cascade: stage_b_bf16.safetensors (UNET)", - "type": "unet", + "type": "diffusion_model", "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[3.13GB] Stable Cascade: stage_b/bf16", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_b/bf16", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stage_b_bf16.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_bf16.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_bf16.safetensors", + "size": "3.13GB" }, { "name": "stabilityai/Stable Cascade: stage_b_lite.safetensors (UNET)", - "type": "unet", + "type": "diffusion_model", "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[2.8GB] Stable Cascade: stage_b/lite", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_b/lite", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stage_b_lite.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite.safetensors", + "size": "2.80GB" }, { "name": "stabilityai/Stable Cascade: stage_b_lite.safetensors (UNET)", - "type": "unet", + "type": "diffusion_model", "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[1.4GB] Stable Cascade: stage_b/bf16,lite", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_b/bf16,lite", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stage_b_lite_bf16.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite_bf16.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite_bf16.safetensors", + "size": "1.40GB" }, { "name": "stabilityai/Stable Cascade: stage_c.safetensors (UNET)", - "type": "unet", + "type": "diffusion_model", "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[14.4GB] Stable Cascade: stage_c", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_c", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stage_c.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c.safetensors", + "size": "14.4GB" }, { "name": "stabilityai/Stable Cascade: stage_c_bf16.safetensors (UNET)", - "type": "unet", + "type": "diffusion_model", "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[7.18GB] Stable Cascade: stage_c/bf16", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_c/bf16", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stage_c_bf16.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_bf16.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_bf16.safetensors", + "size": "7.18GB" }, { "name": "stabilityai/Stable Cascade: stage_c_lite.safetensors (UNET)", - "type": "unet", + "type": "diffusion_model", "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[4.12GB] Stable Cascade: stage_c/lite", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_c/lite", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stage_c_lite.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite.safetensors", + "size": "4.12GB" }, { "name": "stabilityai/Stable Cascade: stage_c_lite.safetensors (UNET)", - "type": "unet", + "type": "diffusion_model", "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[2.06GB] Stable Cascade: stage_c/bf16,lite", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_c/bf16,lite", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "stage_c_lite_bf16.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite_bf16.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite_bf16.safetensors", + "size": "2.06GB" }, { "name": "stabilityai/Stable Cascade: text_encoder (CLIP)", "type": "clip", "base": "Stable Cascade", - "save_path": "clip/Stable-Cascade", - "description": "[1.39GB] Stable Cascade: text_encoder", + "save_path": "text_encoders/Stable-Cascade", + "description": "Stable Cascade: text_encoder", "reference": "https://huggingface.co/stabilityai/stable-cascade", "filename": "model.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/text_encoder/model.safetensors" + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/text_encoder/model.safetensors", + "size": "1.39GB" }, - { "name": "SDXL-Turbo 1.0 (fp16)", - "type": "checkpoints", + "type": "checkpoint", "base": "SDXL", "save_path": "checkpoints/SDXL-TURBO", - "description": "[6.9GB] SDXL-Turbo 1.0 fp16", + "description": "SDXL-Turbo 1.0 fp16", "reference": "https://huggingface.co/stabilityai/sdxl-turbo", "filename": "sd_xl_turbo_1.0_fp16.safetensors", - "url": "https://huggingface.co/stabilityai/sdxl-turbo/resolve/main/sd_xl_turbo_1.0_fp16.safetensors" + "url": "https://huggingface.co/stabilityai/sdxl-turbo/resolve/main/sd_xl_turbo_1.0_fp16.safetensors", + "size": "6.94GB" }, { "name": "SDXL-Turbo 1.0", - "type": "checkpoints", + "type": "checkpoint", "base": "SDXL", "save_path": "checkpoints/SDXL-TURBO", - "description": "[13.9GB] SDXL-Turbo 1.0", + "description": "SDXL-Turbo 1.0", "reference": "https://huggingface.co/stabilityai/sdxl-turbo", "filename": "sd_xl_turbo_1.0.safetensors", - "url": "https://huggingface.co/stabilityai/sdxl-turbo/resolve/main/sd_xl_turbo_1.0.safetensors" + "url": "https://huggingface.co/stabilityai/sdxl-turbo/resolve/main/sd_xl_turbo_1.0.safetensors", + "size": "13.9GB" }, { "name": "sd_xl_base_1.0_0.9vae.safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "SDXL", - "save_path": "default", + "save_path": "checkpoints/SDXL", "description": "Stable Diffusion XL base model (VAE 0.9)", "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0", "filename": "sd_xl_base_1.0_0.9vae.safetensors", - "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0_0.9vae.safetensors" + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0_0.9vae.safetensors", + "size": "6.94GB" }, { "name": "sd_xl_base_1.0.safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "SDXL", - "save_path": "default", + "save_path": "checkpoints/SDXL", "description": "Stable Diffusion XL base model", "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0", "filename": "sd_xl_base_1.0.safetensors", - "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors" + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors", + "size": "6.94GB" }, { "name": "sd_xl_refiner_1.0_0.9vae.safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "SDXL", - "save_path": "default", + "save_path": "checkpoints/SDXL", "description": "Stable Diffusion XL refiner model (VAE 0.9)", "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0", "filename": "sd_xl_refiner_1.0_0.9vae.safetensors", - "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0_0.9vae.safetensors" + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0_0.9vae.safetensors", + "size": "6.08GB" }, { "name": "stable-diffusion-xl-refiner-1.0", - "type": "checkpoints", + "type": "checkpoint", "base": "SDXL", - "save_path": "default", + "save_path": "checkpoints/SDXL", "description": "Stable Diffusion XL refiner model", "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0", "filename": "sd_xl_refiner_1.0.safetensors", - "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors" + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors", + "size": "6.08GB" }, { - "name": "diffusers/stable-diffusion-xl-1.0-inpainting-0.1 (UNET/fp16)", - "type": "unet", + "name": "diffusers/stable-diffusion-xl-1.0-inpainting-0.1 (diffusion_models/fp16)", + "type": "diffusion_model", "base": "SDXL", - "save_path": "unet/xl-inpaint-0.1", - "description": "[5.14GB] Stable Diffusion XL inpainting model 0.1. You need UNETLoader instead of CheckpointLoader.", + "save_path": "diffusion_models/xl-inpaint-0.1", + "description": "Stable Diffusion XL inpainting model 0.1. You need UNETLoader instead of CheckpointLoader.", "reference": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1", "filename": "diffusion_pytorch_model.fp16.safetensors", - "url": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1/resolve/main/unet/diffusion_pytorch_model.fp16.safetensors" + "url": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1/resolve/main/unet/diffusion_pytorch_model.fp16.safetensors", + "size": "5.14GB" }, { "name": "diffusers/stable-diffusion-xl-1.0-inpainting-0.1 (UNET)", - "type": "unet", + "type": "diffusion_model", "base": "SDXL", - "save_path": "unet/xl-inpaint-0.1", - "description": "[10.3GB] Stable Diffusion XL inpainting model 0.1. You need UNETLoader instead of CheckpointLoader.", + "save_path": "diffusion_models/xl-inpaint-0.1", + "description": "Stable Diffusion XL inpainting model 0.1. You need UNETLoader instead of CheckpointLoader.", "reference": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1", "filename": "diffusion_pytorch_model.safetensors", - "url": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1/resolve/main/unet/diffusion_pytorch_model.safetensors" + "url": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1/resolve/main/unet/diffusion_pytorch_model.safetensors", + "size": "10.3GB" }, { "name": "sd_xl_offset_example-lora_1.0.safetensors", "type": "lora", "base": "SDXL", - "save_path": "default", + "save_path": "loras/SDXL", "description": "Stable Diffusion XL offset LoRA", "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0", "filename": "sd_xl_offset_example-lora_1.0.safetensors", - "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors" + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors", + "size": "49.6MB" }, { - "name": "SDXL Lightning LoRA (2step)", + "name": "SDXL Lightning LoRA (2steps)", "type": "lora", "base": "SDXL", "save_path": "loras/SDXL-Lightning", - "description": "SDXL Lightning LoRA (2step)", + "description": "SDXL Lightning LoRA (2steps)", "reference": "https://huggingface.co/ByteDance/SDXL-Lightning", "filename": "sdxl_lightning_2step_lora.safetensors", - "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_2step_lora.safetensors" + "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_2step_lora.safetensors", + "size": "393.9MB" }, { - "name": "SDXL Lightning LoRA (4step)", + "name": "SDXL Lightning LoRA (4steps)", "type": "lora", "base": "SDXL", "save_path": "loras/SDXL-Lightning", - "description": "SDXL Lightning LoRA (4step)", + "description": "SDXL Lightning LoRA (4steps)", "reference": "https://huggingface.co/ByteDance/SDXL-Lightning", "filename": "sdxl_lightning_4step_lora.safetensors", - "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_4step_lora.safetensors" + "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_4step_lora.safetensors", + "size": "393.9MB" }, { - "name": "SDXL Lightning LoRA (8step)", + "name": "SDXL Lightning LoRA (8steps)", "type": "lora", "base": "SDXL", "save_path": "loras/SDXL-Lightning", - "description": "SDXL Lightning LoRA (8tep)", + "description": "SDXL Lightning LoRA (8steps)", "reference": "https://huggingface.co/ByteDance/SDXL-Lightning", "filename": "sdxl_lightning_8step_lora.safetensors", - "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_8step_lora.safetensors" + "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_8step_lora.safetensors", + "size": "393.9MB" + }, + + { + "name": "DMD2 LoRA (4steps)", + "type": "lora", + "base": "SDXL", + "save_path": "loras/DMD2", + "description": "DMD2 LoRA (4steps)", + "reference": "https://huggingface.co/tianweiy/DMD2", + "filename": "dmd2_sdxl_4step_lora.safetensors", + "url": "https://huggingface.co/tianweiy/DMD2/resolve/main/dmd2_sdxl_4step_lora.safetensors", + "size": "787MB" + }, + { + "name": "DMD2 LoRA (4steps/fp16)", + "type": "lora", + "base": "SDXL", + "save_path": "loras/DMD2", + "description": "DMD2 LoRA (4steps/fp16)", + "reference": "https://huggingface.co/tianweiy/DMD2", + "filename": "dmd2_sdxl_4step_lora_fp16.safetensors", + "url": "https://huggingface.co/tianweiy/DMD2/resolve/main/dmd2_sdxl_4step_lora_fp16.safetensors", + "size": "394MB" + }, + + { + "name": "Hyper-SD LoRA (8steps) - FLUX.1 [Dev]", + "type": "lora", + "base": "FLUX.1", + "save_path": "loras/HyperSD/FLUX.1", + "description": "Hyper-SD LoRA (8steps) - FLUX.1 [Dev]", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-FLUX.1-dev-8steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-FLUX.1-dev-8steps-lora.safetensors", + "size": "1.39GB" + }, + { + "name": "Hyper-SD LoRA (16steps) - FLUX.1 [Dev]", + "type": "lora", + "base": "FLUX.1", + "save_path": "loras/HyperSD/FLUX.1", + "description": "Hyper-SD LoRA (16steps) - FLUX.1 [Dev]", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-FLUX.1-dev-16steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-FLUX.1-dev-16steps-lora.safetensors", + "size": "1.39GB" + }, + + { + "name": "Hyper-SD LoRA (1step) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD LoRA (1step) - SD1.5", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-1step-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-1step-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD LoRA (2steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD LoRA (2steps) - SD1.5", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-2steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-2steps-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD LoRA (4steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD LoRA (4steps)", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-4steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-4steps-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD LoRA (8steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD LoRA (8steps)", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-8steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-8steps-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD CFG LoRA (8steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD CFG LoRA (8steps)", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-8steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-8steps-CFG-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD CFG LoRA (12steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD CFG LoRA (12steps)", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-12steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-12steps-CFG-lora.safetensors", + "size": "269MB" + }, + + { + "name": "Hyper-SD LoRA (1step) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD LoRA (1step) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-1step-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-1step-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD LoRA (2steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD LoRA (2steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-2steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-2steps-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD LoRA (4steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD LoRA (4steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-4steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-4steps-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD LoRA (8steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD LoRA (8steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-8steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-8steps-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD CFG LoRA (8steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD CFG LoRA (8steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-8steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-8steps-CFG-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD CFG LoRA (12steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD CFG LoRA (12steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-12steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-12steps-CFG-lora.safetensors", + "size": "787MB" + }, + + { + "name": "Hyper-SD CFG LoRA (4steps) - SD3", + "type": "lora", + "base": "SD3", + "save_path": "loras/HyperSD/SD3", + "description": "Hyper-SD CFG LoRA (4steps) - SD3", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD3-4steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD3-4steps-CFG-lora.safetensors", + "size": "472MB" + }, + { + "name": "Hyper-SD CFG LoRA (8steps) - SD3", + "type": "lora", + "base": "SD3", + "save_path": "loras/HyperSD/SD3", + "description": "Hyper-SD CFG LoRA (8steps) - SD3", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD3-8steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD3-8steps-CFG-lora.safetensors", + "size": "472MB" + }, + { + "name": "Hyper-SD CFG LoRA (16steps) - SD3", + "type": "lora", + "base": "SD3", + "save_path": "loras/HyperSD/SD3", + "description": "Hyper-SD CFG LoRA (16steps) - SD3", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD3-16steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD3-16steps-CFG-lora.safetensors", + "size": "472MB" + }, + + { + "name": "comfyanonymous/flux_text_encoders - t5xxl (fp16)", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "Text Encoders for FLUX (fp16)", + "reference": "https://huggingface.co/comfyanonymous/flux_text_encoders", + "filename": "t5xxl_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors", + "size": "9.79GB" + }, + { + "name": "comfyanonymous/flux_text_encoders - t5xxl (fp8_e4m3fn)", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "Text Encoders for FLUX (fp8_e4m3fn)", + "reference": "https://huggingface.co/comfyanonymous/flux_text_encoders", + "filename": "t5xxl_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn.safetensors", + "size": "4.89GB" + }, + { + "name": "comfyanonymous/flux_text_encoders - t5xxl (fp8_e4m3fn_scaled)", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "Text Encoders for FLUX (fp16)", + "reference": "https://huggingface.co/comfyanonymous/flux_text_encoders", + "filename": "t5xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors", + "size": "5.16GB" + }, + + { + "name": "comfyanonymous/cosmos_cv8x8x8_1.0.safetensors", + "type": "VAE", + "base": "Cosmos-1.0", + "save_path": "default", + "description": "VAE model for Cosmos 1.0", + "reference": "https://huggingface.co/comfyanonymous/cosmos_1.0_text_encoder_and_VAE_ComfyUI/tree/main", + "filename": "cosmos_cv8x8x8_1.0.safetensors", + "url": "https://huggingface.co/comfyanonymous/cosmos_1.0_text_encoder_and_VAE_ComfyUI/resolve/main/vae/cosmos_cv8x8x8_1.0.safetensors", + "size": "211MB" + }, + { + "name": "mcmonkey/Cosmos-1_0-Diffusion-7B-Text2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Text2World Diffusion Model (7B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-7B-Text2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-7B-Text2World.safetensors", + "size": "14.5GB" + }, + { + "name": "mcmonkey/Cosmos-1_0-Diffusion-7B-Video2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Video2World Diffusion Model (7B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-7B-Video2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-7B-Video2World.safetensors", + "size": "14.5GB" + }, + { + "name": "mcmonkey/Cosmos-1_0-Diffusion-14B-Text2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Text2World Diffusion Model (14B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-14B-Text2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-14B-Text2World.safetensors", + "size": "28.5GB" + }, + { + "name": "mcmonkey/Cosmos-1_0-Diffusion-14B-Video2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Video2World Diffusion Model (14B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-14B-Video2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-14B-Video2World.safetensors", + "size": "28.5GB" + }, + + { + "name": "google-t5/t5-base", + "type": "clip", + "base": "t5-base", + "save_path": "text_encoders/t5-base", + "description": "T5 Base: Text-To-Text Transfer Transformer. This model can be loaded via CLIPLoader for Stable Audio workflow.", + "reference": "https://huggingface.co/google-t5/t5-base", + "filename": "model.safetensors", + "url": "https://huggingface.co/google-t5/t5-base/resolve/main/model.safetensors", + "size": "892MB" + }, + { + "name": "google-t5/t5-v1_1-xxl_encoderonly-fp16", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "The encoder part of https://huggingface.co/google/t5-v1_1-xxl, used with SD3 and Flux1", + "reference": "https://huggingface.co/mcmonkey/google_t5-v1_1-xxl_encoderonly", + "filename": "google_t5-v1_1-xxl_encoderonly-fp16.safetensors", + "url": "https://huggingface.co/mcmonkey/google_t5-v1_1-xxl_encoderonly/resolve/main/model.safetensors", + "size": "10.1GB" + }, + { + "name": "google-t5/t5-v1_1-xxl_encoderonly-fp8_e4m3fn", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "The encoder part of https://huggingface.co/google/t5-v1_1-xxl, used with SD3 and Flux1", + "reference": "https://huggingface.co/mcmonkey/google_t5-v1_1-xxl_encoderonly", + "filename": "google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/mcmonkey/google_t5-v1_1-xxl_encoderonly/resolve/main/t5xxl_fp8_e4m3fn.safetensors", + "size": "4.89GB" + }, + + + { + "name": "city96/t5-v1_1-xxl-encoder-Q3_K_L.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q3_K_L quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q3_K_L.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q3_K_L.gguf", + "size": "2.46GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q3_K_M.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q3_K_M quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q3_K_M.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q3_K_M.gguf", + "size": "2.3GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q3_K_S.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q3_K_S quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q3_K_S.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q3_K_S.gguf", + "size": "2.1GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q4_K_M.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q4_K_M quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q4_K_M.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q4_K_M.gguf", + "size": "2.9GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q4_K_S.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q4_K_S quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q4_K_S.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q4_K_S.gguf", + "size": "2.74GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q5_K_M.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q5_K_M quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q5_K_M.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q5_K_M.gguf", + "size": "3.39GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q5_K_S.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q5_K_S quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q5_K_S.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q5_K_S.gguf", + "size": "3.29GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q6_K.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q6_K quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q6_K.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q6_K.gguf", + "size": "3.91GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q8_0.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q8_0 quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q8_0.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q8_0.gguf", + "size": "5.06GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-f16.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (float 16)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-f16.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-f16.gguf", + "size": "9.53GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-f32.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (float 32)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-f32.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-f32.gguf", + "size": "19.1GB" }, + { + "name": "Comfy-Org/clip_l", + "type": "clip", + "base": "clip", + "save_path": "default", + "description": "clip_l model (for SD1.x, SD2.x, SDXL, SD3.5, FLUX.1, HunyuanVideo, ...) ", + "reference": "https://huggingface.co/Comfy-Org/stable-diffusion-3.5-fp8", + "filename": "clip_l.safetensors", + "url": "https://huggingface.co/Comfy-Org/stable-diffusion-3.5-fp8/resolve/main/text_encoders/clip_l.safetensors", + "size": "246MB" + }, + { + "name": "Comfy-Org/clip_g", + "type": "clip", + "base": "clip", + "save_path": "default", + "description": "clip_g model (for SDXL, SD3.5)", + "reference": "https://huggingface.co/Comfy-Org/stable-diffusion-3.5-fp8", + "filename": "clip_g.safetensors", + "url": "https://huggingface.co/Comfy-Org/stable-diffusion-3.5-fp8/resolve/main/text_encoders/clip_g.safetensors", + "size": "1.39GB" + }, { "name": "v1-5-pruned-emaonly.ckpt", - "type": "checkpoints", + "type": "checkpoint", "base": "SD1.5", - "save_path": "default", + "save_path": "checkpoints/SD1.5", "description": "Stable Diffusion 1.5 base model", "reference": "https://huggingface.co/runwayml/stable-diffusion-v1-5", "filename": "v1-5-pruned-emaonly.ckpt", - "url": "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt" + "url": "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt", + "size": "4.27GB" }, { "name": "v2-1_512-ema-pruned.safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "SD2", - "save_path": "default", + "save_path": "checkpoints/SD2.1", "description": "Stable Diffusion 2 base model (512)", "reference": "https://huggingface.co/stabilityai/stable-diffusion-2-1-base", "filename": "v2-1_512-ema-pruned.safetensors", - "url": "https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors" + "url": "https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors", + "size": "5.21GB" }, { "name": "v2-1_768-ema-pruned.safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "SD2", - "save_path": "default", + "save_path": "checkpoints/SD2.1", "description": "Stable Diffusion 2 base model (768)", "reference": "https://huggingface.co/stabilityai/stable-diffusion-2-1", "filename": "v2-1_768-ema-pruned.safetensors", - "url": "https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors" + "url": "https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors", + "size": "5.21GB" }, { "name": "AbyssOrangeMix2 (hard)", - "type": "checkpoints", + "type": "checkpoint", "base": "SD1.5", - "save_path": "default", + "save_path": "checkpoints/SD1.5", "description": "AbyssOrangeMix2 - hard version (anime style)", "reference": "https://huggingface.co/WarriorMama777/OrangeMixs", "filename": "AbyssOrangeMix2_hard.safetensors", - "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors" + "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors", + "size": "5.57GB" }, { "name": "AbyssOrangeMix3 A1", - "type": "checkpoints", + "type": "checkpoint", "base": "SD1.5", - "save_path": "default", + "save_path": "checkpoints/SD1.5", "description": "AbyssOrangeMix3 - A1 (anime style)", "reference": "https://huggingface.co/WarriorMama777/OrangeMixs", "filename": "AOM3A1_orangemixs.safetensors", - "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors" + "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors", + "size": "2.13GB" }, { "name": "AbyssOrangeMix3 A3", - "type": "checkpoints", + "type": "checkpoint", "base": "SD1.5", - "save_path": "default", + "save_path": "checkpoints/SD1.5", "description": "AbyssOrangeMix - A3 (anime style)", "reference": "https://huggingface.co/WarriorMama777/OrangeMixs", "filename": "AOM3A3_orangemixs.safetensors", - "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors" + "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors", + "size": "2.13GB" }, { "name": "Waifu Diffusion 1.5 Beta3 (fp16)", - "type": "checkpoints", + "type": "checkpoint", "base": "SD2.1", - "save_path": "default", + "save_path": "checkpoints/SD2.1", "description": "Waifu Diffusion 1.5 Beta3", "reference": "https://huggingface.co/waifu-diffusion/wd-1-5-beta3", "filename": "wd-illusion-fp16.safetensors", - "url": "https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors" + "url": "https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors", + "size": "2.58GB" }, { "name": "illuminatiDiffusionV1_v11 unCLIP model", "type": "unclip", "base": "SD2.1", - "save_path": "default", + "save_path": "checkpoints/SD2.1", "description": "Mix model (SD2.1 unCLIP + illuminatiDiffusionV1_v11)", "reference": "https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP", "filename": "illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors", + "size": "3.98GB" }, { "name": "Waifu Diffusion 1.5 unCLIP model", "type": "unclip", "base": "SD2.1", - "save_path": "default", + "save_path": "checkpoints/SD2.1", "description": "Mix model (SD2.1 unCLIP + Waifu Diffusion 1.5)", "reference": "https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP", "filename": "wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors", + "size": "3.98GB" }, { "name": "sdxl_vae.safetensors", "type": "VAE", - "base": "SDXL VAE", - "save_path": "default", + "base": "SDXL", + "save_path": "vae/SDXL", "description": "SDXL-VAE", "reference": "https://huggingface.co/stabilityai/sdxl-vae", "filename": "sdxl_vae.safetensors", - "url": "https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors" + "url": "https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors", + "size": "334.6MB" }, { "name": "vae-ft-mse-840000-ema-pruned", "type": "VAE", - "base": "SD1.5 VAE", - "save_path": "default", + "base": "SD1.5", + "save_path": "vae/SD1.5", "description": "vae-ft-mse-840000-ema-pruned", "reference": "https://huggingface.co/stabilityai/sd-vae-ft-mse-original", "filename": "vae-ft-mse-840000-ema-pruned.safetensors", - "url": "https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors" + "url": "https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors", + "size": "334.6MB" }, { "name": "orangemix.vae", "type": "VAE", - "base": "SD1.5 VAE", - "save_path": "default", + "base": "SD1.5", + "save_path": "vae/SD1.5", "description": "orangemix vae model", "reference": "https://huggingface.co/WarriorMama777/OrangeMixs", "filename": "orangemix.vae.pt", - "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt" + "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt", + "size": "822.8MB" }, { "name": "kl-f8-anime2", "type": "VAE", - "base": "SD2.1 VAE", - "save_path": "default", + "base": "SD2.1", + "save_path": "vae/SD2.1", "description": "kl-f8-anime2 vae model", "reference": "https://huggingface.co/hakurei/waifu-diffusion-v1-4", "filename": "kl-f8-anime2.ckpt", - "url": "https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt" + "url": "https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt", + "size": "404.7MB" }, { "name": "OpenAI Consistency Decoder", "type": "VAE", - "base": "SD1.5 VAE", - "save_path": "vae/openai_consistency_decoder", - "description": "[2.3GB] OpenAI Consistency Decoder. Improved decoding for stable diffusion vaes.", + "base": "SD1.5", + "save_path": "vae/SD1.5/openai_consistency_decoder", + "description": "OpenAI Consistency Decoder. Improved decoding for stable diffusion vaes.", "reference": "https://github.com/openai/consistencydecoder", "filename": "decoder.pt", - "url": "https://openaipublic.azureedge.net/diff-vae/c9cebd3132dd9c42936d803e33424145a748843c8f716c0814838bdc8a2fe7cb/decoder.pt" + "url": "https://openaipublic.azureedge.net/diff-vae/c9cebd3132dd9c42936d803e33424145a748843c8f716c0814838bdc8a2fe7cb/decoder.pt", + "size": "2.49GB" }, { "name": "LCM LoRA SD1.5", "type": "lora", "base": "SD1.5", - "save_path": "loras/lcm/SD1.5", + "save_path": "loras/SD1.5/lcm", "description": "Latent Consistency LoRA for SD1.5", "reference": "https://huggingface.co/latent-consistency/lcm-lora-sdv1-5", "filename": "pytorch_lora_weights.safetensors", - "url": "https://huggingface.co/latent-consistency/lcm-lora-sdv1-5/resolve/main/pytorch_lora_weights.safetensors" + "url": "https://huggingface.co/latent-consistency/lcm-lora-sdv1-5/resolve/main/pytorch_lora_weights.safetensors", + "size": "134.6MB" }, { "name": "LCM LoRA SSD-1B", "type": "lora", "base": "SSD-1B", - "save_path": "loras/lcm/SSD-1B", + "save_path": "loras/SSD-1B/lcm", "description": "Latent Consistency LoRA for SSD-1B", "reference": "https://huggingface.co/latent-consistency/lcm-lora-ssd-1b", "filename": "pytorch_lora_weights.safetensors", - "url": "https://huggingface.co/latent-consistency/lcm-lora-ssd-1b/resolve/main/pytorch_lora_weights.safetensors" + "url": "https://huggingface.co/latent-consistency/lcm-lora-ssd-1b/resolve/main/pytorch_lora_weights.safetensors", + "size": "210.0MB" }, { "name": "LCM LoRA SDXL", "type": "lora", - "base": "SSD-1B", - "save_path": "loras/lcm/SDXL", + "base": "SDXL", + "save_path": "loras/SDXL/lcm", "description": "Latent Consistency LoRA for SDXL", "reference": "https://huggingface.co/latent-consistency/lcm-lora-sdxl", "filename": "pytorch_lora_weights.safetensors", - "url": "https://huggingface.co/latent-consistency/lcm-lora-sdxl/resolve/main/pytorch_lora_weights.safetensors" + "url": "https://huggingface.co/latent-consistency/lcm-lora-sdxl/resolve/main/pytorch_lora_weights.safetensors", + "size": "393.9MB" }, { "name": "Segmind-Vega", - "type": "checkpoints", + "type": "checkpoint", "base": "segmind-vega", "save_path": "checkpoints/segmind-vega", "description": "The Segmind-Vega Model is a distilled version of the Stable Diffusion XL (SDXL), offering a remarkable 70% reduction in size and an impressive 100% speedup while retaining high-quality text-to-image generation capabilities.", "reference": "https://huggingface.co/segmind/Segmind-Vega", "filename": "segmind-vega.safetensors", - "url": "https://huggingface.co/segmind/Segmind-Vega/resolve/main/segmind-vega.safetensors" + "url": "https://huggingface.co/segmind/Segmind-Vega/resolve/main/segmind-vega.safetensors", + "size": "3.29GB" }, { "name": "Segmind-VegaRT - Latent Consistency Model (LCM) LoRA of Segmind-Vega", @@ -713,580 +1297,648 @@ "description": "Segmind-VegaRT a distilled consistency adapter for Segmind-Vega that allows to reduce the number of inference steps to only between 2 - 8 steps.", "reference": "https://huggingface.co/segmind/Segmind-VegaRT", "filename": "pytorch_lora_weights.safetensors", - "url": "https://huggingface.co/segmind/Segmind-VegaRT/resolve/main/pytorch_lora_weights.safetensors" + "url": "https://huggingface.co/segmind/Segmind-VegaRT/resolve/main/pytorch_lora_weights.safetensors", + "size": "239.2MB" }, { "name": "Theovercomer8's Contrast Fix (SD2.1)", "type": "lora", "base": "SD2.1", - "save_path": "default", + "save_path": "loras/SD2.1", "description": "LORA: Theovercomer8's Contrast Fix (SD2.1)", "reference": "https://civitai.com/models/8765/theovercomer8s-contrast-fix-sd15sd21-768", "filename": "theovercomer8sContrastFix_sd21768.safetensors", - "url": "https://civitai.com/api/download/models/10350" + "url": "https://civitai.com/api/download/models/10350", + "size": "163MB" }, { "name": "Theovercomer8's Contrast Fix (SD1.5)", "type": "lora", "base": "SD1.5", - "save_path": "default", + "save_path": "loras/SD1.5", "description": "LORA: Theovercomer8's Contrast Fix (SD1.5)", "reference": "https://civitai.com/models/8765/theovercomer8s-contrast-fix-sd15sd21-768", "filename": "theovercomer8sContrastFix_sd15.safetensors", - "url": "https://civitai.com/api/download/models/10638" + "url": "https://civitai.com/api/download/models/10638", + "size": "113MB" }, { "name": "T2I-Adapter (depth)", "type": "T2I-Adapter", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/SD1.5", "description": "ControlNet T2I-Adapter for depth", "reference": "https://huggingface.co/TencentARC/T2I-Adapter", "filename": "t2iadapter_depth_sd14v1.pth", - "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth" + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth", + "size": "309.5MB" }, { "name": "T2I-Adapter (seg)", "type": "T2I-Adapter", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/SD1.5", "description": "ControlNet T2I-Adapter for seg", "reference": "https://huggingface.co/TencentARC/T2I-Adapter", "filename": "t2iadapter_seg_sd14v1.pth", - "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth" + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth", + "size": "309.5MB" }, { "name": "T2I-Adapter (sketch)", "type": "T2I-Adapter", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/SD1.5", "description": "ControlNet T2I-Adapter for sketch", "reference": "https://huggingface.co/TencentARC/T2I-Adapter", "filename": "t2iadapter_sketch_sd14v1.pth", - "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth" + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth", + "size": "308.0MB" }, { "name": "T2I-Adapter (keypose)", "type": "T2I-Adapter", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/SD1.5", "description": "ControlNet T2I-Adapter for keypose", "reference": "https://huggingface.co/TencentARC/T2I-Adapter", "filename": "t2iadapter_keypose_sd14v1.pth", - "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth" + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth", + "size": "309.5MB" }, { "name": "T2I-Adapter (openpose)", "type": "T2I-Adapter", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/SD1.5", "description": "ControlNet T2I-Adapter for openpose", "reference": "https://huggingface.co/TencentARC/T2I-Adapter", "filename": "t2iadapter_openpose_sd14v1.pth", - "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth" + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth", + "size": "309.5MB" }, { "name": "T2I-Adapter (color)", "type": "T2I-Adapter", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/SD1.5", "description": "ControlNet T2I-Adapter for color", "reference": "https://huggingface.co/TencentARC/T2I-Adapter", "filename": "t2iadapter_color_sd14v1.pth", - "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth" + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth", + "size": "74.8MB" }, { "name": "T2I-Adapter (canny)", "type": "T2I-Adapter", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/SD1.5", "description": "ControlNet T2I-Adapter for canny", "reference": "https://huggingface.co/TencentARC/T2I-Adapter", "filename": "t2iadapter_canny_sd14v1.pth", - "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth" + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth", + "size": "308.0MB" }, { "name": "T2I-Style model", "type": "T2I-Style", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/SD1.5", "description": "ControlNet T2I-Adapter style model. Need to download CLIPVision model.", "reference": "https://huggingface.co/TencentARC/T2I-Adapter", "filename": "t2iadapter_style_sd14v1.pth", - "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth" + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth", + "size": "154.4MB" }, { - "name": "T2I-Adapter XL (lineart) FP16", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for lineart", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0", - "filename": "t2i-adapter-lineart-sdxl-1.0.fp16.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors" + "name": "T2I-Adapter XL (lineart) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for lineart", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0", + "filename": "t2i-adapter-lineart-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" }, { - "name": "T2I-Adapter XL (canny) FP16", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for canny", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0", - "filename": "t2i-adapter-canny-sdxl-1.0.fp16.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors" + "name": "T2I-Adapter XL (canny) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for canny", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0", + "filename": "t2i-adapter-canny-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" }, { - "name": "T2I-Adapter XL (depth-zoe) FP16", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for depth-zoe", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0", - "filename": "t2i-adapter-depth-zoe-sdxl-1.0.fp16.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors" + "name": "T2I-Adapter XL (depth-zoe) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for depth-zoe", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0", + "filename": "t2i-adapter-depth-zoe-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" }, { - "name": "T2I-Adapter XL (depth-midas) FP16", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for depth-midas", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0", - "filename": "t2i-adapter-depth-midas-sdxl-1.0.fp16.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors" + "name": "T2I-Adapter XL (depth-midas) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for depth-midas", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0", + "filename": "t2i-adapter-depth-midas-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" }, { - "name": "T2I-Adapter XL (sketch) FP16", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for sketch", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0", - "filename": "t2i-adapter-sketch-sdxl-1.0.fp16.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors" + "name": "T2I-Adapter XL (sketch) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for sketch", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0", + "filename": "t2i-adapter-sketch-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" }, { - "name": "T2I-Adapter XL (lineart)", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for lineart", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0", - "filename": "t2i-adapter-lineart-sdxl-1.0.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors" + "name": "T2I-Adapter XL (lineart)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for lineart", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0", + "filename": "t2i-adapter-lineart-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" }, { - "name": "T2I-Adapter XL (canny)", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for canny", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0", - "filename": "t2i-adapter-canny-sdxl-1.0.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors" + "name": "T2I-Adapter XL (canny)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for canny", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0", + "filename": "t2i-adapter-canny-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" }, { - "name": "T2I-Adapter XL (depth-zoe)", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for depth-zoe", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0", - "filename": "t2i-adapter-depth-zoe-sdxl-1.0.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors" + "name": "T2I-Adapter XL (depth-zoe)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for depth-zoe", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0", + "filename": "t2i-adapter-depth-zoe-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" }, { - "name": "T2I-Adapter XL (depth-midas)", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for depth-midas", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0", - "filename": "t2i-adapter-depth-midas-sdxl-1.0.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors" + "name": "T2I-Adapter XL (depth-midas)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for depth-midas", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0", + "filename": "t2i-adapter-depth-midas-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" }, { - "name": "T2I-Adapter XL (sketch)", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for sketch", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0", - "filename": "t2i-adapter-sketch-sdxl-1.0.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors" + "name": "T2I-Adapter XL (sketch)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for sketch", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0", + "filename": "t2i-adapter-sketch-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" }, { - "name": "T2I-Adapter XL (openpose)", - "type": "T2I-Adapter", - "base": "SDXL 1.0", - "save_path": "default", - "description": "ControlNet T2I-Adapter XL for openpose", - "reference": "https://huggingface.co/TencentARC/t2i-adapter-openpose-sdxl-1.0", - "filename": "t2i-adapter-openpose-sdxl-1.0.safetensors", - "url": "https://huggingface.co/TencentARC/t2i-adapter-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors" + "name": "T2I-Adapter XL (openpose)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for openpose", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-openpose-sdxl-1.0", + "filename": "t2i-adapter-openpose-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" }, { "name": "CiaraRowles/TemporalNet2", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/SD1.5", "description": "TemporalNet was a ControlNet model designed to enhance the temporal consistency of generated outputs", "reference": "https://huggingface.co/CiaraRowles/TemporalNet2", "filename": "temporalnetversion2.safetensors", - "url": "https://huggingface.co/CiaraRowles/TemporalNet2/resolve/main/temporalnetversion2.safetensors" + "url": "https://huggingface.co/CiaraRowles/TemporalNet2/resolve/main/temporalnetversion2.safetensors", + "size": "5.71GB" }, { "name": "CiaraRowles/TemporalNet1XL (1.0)", "type": "controlnet", - "base": "SD1.5", - "save_path": "controlnet/TemporalNet1XL", + "base": "SDXL", + "save_path": "controlnet/SDXL/TemporalNet1XL", "description": "This is TemporalNet1XL, it is a re-train of the controlnet TemporalNet1 with Stable Diffusion XL.", "reference": "https://huggingface.co/CiaraRowles/controlnet-temporalnet-sdxl-1.0", "filename": "diffusion_pytorch_model.safetensors", - "url": "https://huggingface.co/CiaraRowles/controlnet-temporalnet-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors" + "url": "https://huggingface.co/CiaraRowles/controlnet-temporalnet-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "5.00GB" }, + + { + "name": "Comfy-Org/sigclip_vision_384 (patch14_384)", + "type": "clip_vision", + "base": "sigclip", + "save_path": "clip_vision", + "description": "This clip vision model is required for FLUX.1 Redux.", + "reference": "https://huggingface.co/Comfy-Org/sigclip_vision_384/tree/main", + "filename": "sigclip_vision_patch14_384.safetensors", + "url": "https://huggingface.co/Comfy-Org/sigclip_vision_384/resolve/main/sigclip_vision_patch14_384.safetensors", + "size": "857MB" + }, + { "name": "CLIPVision model (stabilityai/clip_vision_g)", "type": "clip_vision", - "base": "vit-g", + "base": "ViT-G", "save_path": "clip_vision", - "description": "[3.69GB] clip_g vision model", + "description": "clip_g vision model", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "clip_vision_g.safetensors", - "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/revision/clip_vision_g.safetensors" + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/revision/clip_vision_g.safetensors", + "size": "3.69GB" }, { "name": "CLIPVision model (openai/clip-vit-large)", "type": "clip_vision", "base": "ViT-L", "save_path": "clip_vision", - "description": "[1.7GB] CLIPVision model (needed for styles model)", + "description": "CLIPVision model (needed for styles model)", "reference": "https://huggingface.co/openai/clip-vit-large-patch14", - "filename": "clip-vit-large-patch14.bin", - "url": "https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/model.safetensors" + "filename": "clip-vit-large-patch14.safetensors", + "url": "https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/model.safetensors", + "size": "1.71GB" + }, + { + "name": "CLIPVision model (Kwai-Kolors/Kolors-IP-Adapter-Plus/clip-vit-large)", + "type": "clip_vision", + "base": "ViT-L", + "save_path": "clip_vision", + "description": "CLIPVision model (needed for IP-Adapter)", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-Plus", + "filename": "clip-vit-large-patch14-336.bin", + "url": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-Plus/resolve/main/image_encoder/pytorch_model.bin", + "size": "1.71GB" }, { "name": "CLIPVision model (IP-Adapter) CLIP-ViT-H-14-laion2B-s32B-b79K", "type": "clip_vision", "base": "ViT-H", "save_path": "clip_vision", - "description": "[2.5GB] CLIPVision model (needed for IP-Adapter)", + "description": "CLIPVision model (needed for IP-Adapter)", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors", + "size": "2.53GB" }, { "name": "CLIPVision model (IP-Adapter) CLIP-ViT-bigG-14-laion2B-39B-b160k", "type": "clip_vision", "base": "ViT-G", "save_path": "clip_vision", - "description": "[3.69GB] CLIPVision model (needed for IP-Adapter)", + "description": "CLIPVision model (needed for IP-Adapter)", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/image_encoder/model.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/image_encoder/model.safetensors", + "size": "3.69GB" }, { "name": "stabilityai/control-lora-canny-rank128.safetensors", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "Control-LoRA: canny rank128", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "control-lora-canny-rank128.safetensors", - "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-canny-rank128.safetensors" + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-canny-rank128.safetensors", + "size": "395.7MB" }, { "name": "stabilityai/control-lora-depth-rank128.safetensors", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "Control-LoRA: depth rank128", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "control-lora-depth-rank128.safetensors", - "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-depth-rank128.safetensors" + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-depth-rank128.safetensors", + "size": "395.7MB" }, { "name": "stabilityai/control-lora-recolor-rank128.safetensors", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "Control-LoRA: recolor rank128", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "control-lora-recolor-rank128.safetensors", - "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-recolor-rank128.safetensors" + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-recolor-rank128.safetensors", + "size": "395.7MB" }, { "name": "stabilityai/control-lora-sketch-rank128-metadata.safetensors", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "Control-LoRA: sketch rank128 metadata", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "control-lora-sketch-rank128-metadata.safetensors", - "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-sketch-rank128-metadata.safetensors" + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-sketch-rank128-metadata.safetensors", + "size": "395.7MB" }, { "name": "stabilityai/control-lora-canny-rank256.safetensors", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "Control-LoRA: canny rank256", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "control-lora-canny-rank256.safetensors", - "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors" + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors", + "size": "774.5MB" }, { "name": "stabilityai/control-lora-depth-rank256.safetensors", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "Control-LoRA: depth rank256", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "control-lora-depth-rank256.safetensors", - "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors" + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors", + "size": "774.4MB" }, { "name": "stabilityai/control-lora-recolor-rank256.safetensors", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "Control-LoRA: recolor rank256", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "control-lora-recolor-rank256.safetensors", - "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors" + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors", + "size": "774.4MB" }, { "name": "stabilityai/control-lora-sketch-rank256.safetensors", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "Control-LoRA: sketch rank256", "reference": "https://huggingface.co/stabilityai/control-lora", "filename": "control-lora-sketch-rank256.safetensors", - "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors" + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors", + "size": "774.5MB" }, - - { - "name": "kohya-ss/ControlNet-LLLite: SDXL Canny Anime", - "type": "controlnet", - "base": "SDXL", - "save_path": "custom_nodes/ControlNet-LLLite-ComfyUI/models", - "description": "[46.2MB] An extremely compactly designed controlnet model (a.k.a. ControlNet-LLLite). Note: The model structure is highly experimental and may be subject to change in the future.", - "reference": "https://huggingface.co/kohya-ss/controlnet-lllite", - "filename": "controllllite_v01032064e_sdxl_canny_anime.safetensors", - "url": "https://huggingface.co/kohya-ss/controlnet-lllite/resolve/main/controllllite_v01032064e_sdxl_canny_anime.safetensors" - }, - { "name": "SDXL-controlnet: OpenPose (v2)", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "ControlNet openpose model for SDXL", "reference": "https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0", "filename": "OpenPoseXL2.safetensors", - "url": "https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0/resolve/main/OpenPoseXL2.safetensors" + "url": "https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0/resolve/main/OpenPoseXL2.safetensors", + "size": "5.00GB" }, { "name": "controlnet-SargeZT/controlnet-sd-xl-1.0-softedge-dexined", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "ControlNet softedge model for SDXL", "reference": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-softedge-dexined", "filename": "controlnet-sd-xl-1.0-softedge-dexined.safetensors", - "url": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-softedge-dexined/resolve/main/controlnet-sd-xl-1.0-softedge-dexined.safetensors" + "url": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-softedge-dexined/resolve/main/controlnet-sd-xl-1.0-softedge-dexined.safetensors", + "size": "5.00GB" }, { "name": "controlnet-SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe", "type": "controlnet", "base": "SDXL", - "save_path": "default", + "save_path": "controlnet/SDXL", "description": "ControlNet depth-zoe model for SDXL", "reference": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe", "filename": "depth-zoe-xl-v1.0-controlnet.safetensors", - "url": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe/resolve/main/depth-zoe-xl-v1.0-controlnet.safetensors" + "url": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe/resolve/main/depth-zoe-xl-v1.0-controlnet.safetensors", + "size": "5.00GB" }, - { "name": "ControlNet-v1-1 (ip2p; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (ip2p)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11e_sd15_ip2p_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (shuffle; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (shuffle)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11e_sd15_shuffle_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors" - }, + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors", + "size": "722.6MB" + }, { "name": "ControlNet-v1-1 (canny; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (canny)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15_canny_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (depth; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (depth)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11f1p_sd15_depth_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (inpaint; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (inpaint)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15_inpaint_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (lineart; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (lineart)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15_lineart_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (mlsd; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (mlsd)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15_mlsd_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (normalbae; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (normalbae)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15_normalbae_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (openpose; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (openpose)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15_openpose_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (scribble; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (scribble)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15_scribble_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (seg; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (seg)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15_seg_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (softedge; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (softedge)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15_softedge_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (anime; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (anime)", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11p_sd15s2_lineart_anime_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (tile; fp16; v11u)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (tile) / v11u", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11u_sd15_tile_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-v1-1 (tile; fp16; v11f1e)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (tile) / v11f1e\nYou need to this model for Tiled Resample", "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", "filename": "control_v11f1e_sd15_tile_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1e_sd15_tile_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1e_sd15_tile_fp16.safetensors", + "size": "722.6MB" }, { "name": "ControlNet-HandRefiner-pruned (inpaint-depth-hand; fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "This inpaint-depth controlnet model is specialized for the hand refiner.", "reference": "https://huggingface.co/hr16/ControlNet-HandRefiner-pruned", "filename": "control_sd15_inpaint_depth_hand_fp16.safetensors", - "url": "https://huggingface.co/hr16/ControlNet-HandRefiner-pruned/resolve/main/control_sd15_inpaint_depth_hand_fp16.safetensors" + "url": "https://huggingface.co/hr16/ControlNet-HandRefiner-pruned/resolve/main/control_sd15_inpaint_depth_hand_fp16.safetensors", + "size": "722.6MB" }, { "name": "control_boxdepth_LooseControlfp16 (fp16)", "type": "controlnet", "base": "SD1.5", - "save_path": "default", + "save_path": "controlnet/1.5", "description": "Loose ControlNet model", "reference": "https://huggingface.co/ioclab/LooseControl_WebUICombine", "filename": "control_boxdepth_LooseControlfp16.safetensors", - "url": "https://huggingface.co/ioclab/LooseControl_WebUICombine/resolve/main/control_boxdepth_LooseControlfp16.safetensors" + "url": "https://huggingface.co/ioclab/LooseControl_WebUICombine/resolve/main/control_boxdepth_LooseControlfp16.safetensors", + "size": "722.6MB" }, { "name": "GLIGEN textbox (fp16; pruned)", "type": "gligen", "base": "SD1.5", - "save_path": "default", + "save_path": "gligen/SD1.5", "description": "GLIGEN textbox model", "reference": "https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors", "filename": "gligen_sd14_textbox_pruned_fp16.safetensors", - "url": "https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors" + "url": "https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors", + "size": "418.2MB" }, { "name": "ViT-H SAM model", @@ -1296,7 +1948,8 @@ "description": "Segmenty Anything SAM model (ViT-H)", "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints", "filename": "sam_vit_h_4b8939.pth", - "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth" + "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth", + "size": "2.56GB" }, { "name": "ViT-L SAM model", @@ -1306,7 +1959,8 @@ "description": "Segmenty Anything SAM model (ViT-L)", "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints", "filename": "sam_vit_l_0b3195.pth", - "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth" + "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth", + "size": "1.25GB" }, { "name": "ViT-B SAM model", @@ -1316,8 +1970,100 @@ "description": "Segmenty Anything SAM model (ViT-B)", "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints", "filename": "sam_vit_b_01ec64.pth", - "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth" + "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth", + "size": "375.0MB" }, + + { + "name": "sam2.1_hiera_tiny.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (tiny)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_tiny.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_tiny.pt", + "size": "149.0MB" + }, + { + "name": "sam2.1_hiera_small.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (small)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_small.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_small.pt", + "size": "176.0MB" + }, + { + "name": "sam2.1_hiera_base_plus.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (base+)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_base_plus.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_base_plus.pt", + "size": "309.0MB" + }, + { + "name": "sam2.1_hiera_large.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (large)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_large.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_large.pt", + "size": "857.0MB" + }, + + { + "name": "sam2_hiera_tiny.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (tiny)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_tiny.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_tiny.pt", + "size": "149.0MB" + }, + { + "name": "sam2_hiera_small.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (small)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_small.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_small.pt", + "size": "176.0MB" + }, + { + "name": "sam2_hiera_base_plus.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (base+)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_base_plus.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_base_plus.pt", + "size": "309.0MB" + }, + { + "name": "sam2_hiera_large.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (large)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_large.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt", + "size": "857.0MB" + }, + { "name": "seecoder v1.0", "type": "seecoder", @@ -1326,7 +2072,8 @@ "description": "SeeCoder model", "reference": "https://huggingface.co/shi-labs/prompt-free-diffusion/tree/main/pretrained/pfd/seecoder", "filename": "seecoder-v1-0.safetensors", - "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-v1-0.safetensors" + "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-v1-0.safetensors", + "size": "1.18GB" }, { "name": "seecoder pa v1.0", @@ -1336,7 +2083,8 @@ "description": "SeeCoder model", "reference": "https://huggingface.co/shi-labs/prompt-free-diffusion/tree/main/pretrained/pfd/seecoder", "filename": "seecoder-pa-v1-0.safetensors", - "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-pa-v1-0.safetensors" + "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-pa-v1-0.safetensors", + "size": "1.19GB" }, { "name": "seecoder anime v1.0", @@ -1346,7 +2094,8 @@ "description": "SeeCoder model", "reference": "https://huggingface.co/shi-labs/prompt-free-diffusion/tree/main/pretrained/pfd/seecoder", "filename": "seecoder-anime-v1-0.safetensors", - "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-anime-v1-0.safetensors" + "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-anime-v1-0.safetensors", + "size": "1.18GB" }, { "name": "face_yolov8m (bbox)", @@ -1356,7 +2105,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "face_yolov8m.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8m.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8m.pt", + "size": "52.0MB" }, { "name": "face_yolov8n (bbox)", @@ -1366,7 +2116,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "face_yolov8n.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8n.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8n.pt", + "size": "6.23MB" }, { "name": "face_yolov8n_v2 (bbox)", @@ -1376,7 +2127,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "face_yolov8n_v2.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8n_v2.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8n_v2.pt", + "size": "6.24MB" }, { "name": "face_yolov8s (bbox)", @@ -1386,7 +2138,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "face_yolov8s.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8s.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8s.pt", + "size": "22.5MB" }, { "name": "hand_yolov8n (bbox)", @@ -1396,7 +2149,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "hand_yolov8n.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8n.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8n.pt", + "size": "6.24MB" }, { "name": "hand_yolov8s (bbox)", @@ -1406,7 +2160,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "hand_yolov8s.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8s.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8s.pt", + "size": "22.5MB" }, { "name": "person_yolov8m (segm)", @@ -1416,7 +2171,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "person_yolov8m-seg.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8m-seg.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8m-seg.pt", + "size": "54.8MB" }, { "name": "person_yolov8n (segm)", @@ -1426,7 +2182,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "person_yolov8n-seg.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8n-seg.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8n-seg.pt", + "size": "6.78MB" }, { "name": "person_yolov8s (segm)", @@ -1436,7 +2193,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "person_yolov8s-seg.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8s-seg.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8s-seg.pt", + "size": "23.9MB" }, { "name": "deepfashion2_yolov8s (segm)", @@ -1446,9 +2204,9 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", "filename": "deepfashion2_yolov8s-seg.pt", - "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/deepfashion2_yolov8s-seg.pt" + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/deepfashion2_yolov8s-seg.pt", + "size": "23.9MB" }, - { "name": "face_yolov8m-seg_60.pt (segm)", "type": "Ultralytics", @@ -1457,7 +2215,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", "filename": "face_yolov8m-seg_60.pt", - "url": "https://github.com/hben35096/assets/releases/download/yolo8/face_yolov8m-seg_60.pt" + "url": "https://github.com/hben35096/assets/releases/download/yolo8/face_yolov8m-seg_60.pt", + "size": "54.8MB" }, { "name": "face_yolov8n-seg2_60.pt (segm)", @@ -1467,7 +2226,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", "filename": "face_yolov8n-seg2_60.pt", - "url": "https://github.com/hben35096/assets/releases/download/yolo8/face_yolov8n-seg2_60.pt" + "url": "https://github.com/hben35096/assets/releases/download/yolo8/face_yolov8n-seg2_60.pt", + "size": "6.77MB" }, { "name": "hair_yolov8n-seg_60.pt (segm)", @@ -1477,7 +2237,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", "filename": "hair_yolov8n-seg_60.pt", - "url": "https://github.com/hben35096/assets/releases/download/yolo8/hair_yolov8n-seg_60.pt" + "url": "https://github.com/hben35096/assets/releases/download/yolo8/hair_yolov8n-seg_60.pt", + "size": "6.77MB" }, { "name": "skin_yolov8m-seg_400.pt (segm)", @@ -1487,7 +2248,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", "filename": "skin_yolov8m-seg_400.pt", - "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8m-seg_400.pt" + "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8m-seg_400.pt", + "size": "54.9MB" }, { "name": "skin_yolov8n-seg_400.pt (segm)", @@ -1497,7 +2259,8 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", "filename": "skin_yolov8n-seg_400.pt", - "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8n-seg_400.pt" + "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8n-seg_400.pt", + "size": "6.83MB" }, { "name": "skin_yolov8n-seg_800.pt (segm)", @@ -1507,9 +2270,9 @@ "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", "filename": "skin_yolov8n-seg_800.pt", - "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8n-seg_800.pt" + "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8n-seg_800.pt", + "size": "6.84MB" }, - { "name": "animatediff/mmd_sd_v14.ckpt (comfyui-animatediff) (Updated path)", "type": "animatediff", @@ -1518,7 +2281,8 @@ "description": "Pressing 'install' directly downloads the model from the ArtVentureX/AnimateDiff extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "mm_sd_v14.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v14.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v14.ckpt", + "size": "1.67GB" }, { "name": "animatediff/mm_sd_v15.ckpt (comfyui-animatediff) (Updated path)", @@ -1528,9 +2292,9 @@ "description": "Pressing 'install' directly downloads the model from the ArtVentureX/AnimateDiff extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "mm_sd_v15.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15.ckpt", + "size": "1.67GB" }, - { "name": "animatediff/mmd_sd_v14.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", "type": "animatediff", @@ -1539,7 +2303,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "mm_sd_v14.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v14.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v14.ckpt", + "size": "1.67GB" }, { "name": "animatediff/mm_sd_v15.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1549,7 +2314,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "mm_sd_v15.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15.ckpt", + "size": "1.67GB" }, { "name": "animatediff/mm_sd_v15_v2.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1559,7 +2325,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "mm_sd_v15_v2.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt", + "size": "1.82GB" }, { "name": "animatediff/v3_sd15_mm.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1569,9 +2336,9 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v3_sd15_mm.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_mm.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_mm.ckpt", + "size": "1.67GB" }, - { "name": "animatediff/mm_sdxl_v10_beta.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", "type": "animatediff", @@ -1580,7 +2347,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "mm_sdxl_v10_beta.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sdxl_v10_beta.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sdxl_v10_beta.ckpt", + "size": "950.1MB" }, { "name": "AD_Stabilized_Motion/mm-Stabilized_high.pth (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1590,7 +2358,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/manshoety/AD_Stabilized_Motion", "filename": "mm-Stabilized_high.pth", - "url": "https://huggingface.co/manshoety/AD_Stabilized_Motion/resolve/main/mm-Stabilized_high.pth" + "url": "https://huggingface.co/manshoety/AD_Stabilized_Motion/resolve/main/mm-Stabilized_high.pth", + "size": "1.67GB" }, { "name": "AD_Stabilized_Motion/mm-Stabilized_mid.pth (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1600,7 +2369,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/manshoety/AD_Stabilized_Motion", "filename": "mm-Stabilized_mid.pth", - "url": "https://huggingface.co/manshoety/AD_Stabilized_Motion/resolve/main/mm-Stabilized_mid.pth" + "url": "https://huggingface.co/manshoety/AD_Stabilized_Motion/resolve/main/mm-Stabilized_mid.pth", + "size": "1.67GB" }, { "name": "CiaraRowles/temporaldiff-v1-animatediff.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1610,7 +2380,19 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/CiaraRowles/TemporalDiff", "filename": "temporaldiff-v1-animatediff.ckpt", - "url": "https://huggingface.co/CiaraRowles/TemporalDiff/resolve/main/temporaldiff-v1-animatediff.ckpt" + "url": "https://huggingface.co/CiaraRowles/TemporalDiff/resolve/main/temporaldiff-v1-animatediff.ckpt", + "size": "1.67GB" + }, + { + "name": "Leoxing/pia.ckpt", + "type": "animatediff-pia", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "AnimateDiff-PIA Model", + "reference": "https://huggingface.co/Leoxing/PIA/tree/main", + "filename": "pia.ckpt", + "url": "https://huggingface.co/Leoxing/PIA/resolve/main/pia.ckpt", + "size": "1.67GB" }, { @@ -1621,7 +2403,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v2_lora_PanLeft.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_PanLeft.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_PanLeft.ckpt", + "size": "77.5MB" }, { "name": "animatediff/v2_lora_PanRight.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1631,7 +2414,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v2_lora_PanRight.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_PanRight.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_PanRight.ckpt", + "size": "77.5MB" }, { "name": "animatediff/v2_lora_RollingAnticlockwise.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1641,7 +2425,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v2_lora_RollingAnticlockwise.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_RollingAnticlockwise.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_RollingAnticlockwise.ckpt", + "size": "77.5MB" }, { "name": "animatediff/v2_lora_RollingClockwise.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1651,7 +2436,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v2_lora_RollingClockwise.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_RollingClockwise.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_RollingClockwise.ckpt", + "size": "77.5MB" }, { "name": "animatediff/v2_lora_TiltDown.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1661,7 +2447,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v2_lora_TiltDown.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_TiltDown.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_TiltDown.ckpt", + "size": "77.5MB" }, { "name": "animatediff/v2_lora_TiltUp.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1671,7 +2458,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v2_lora_TiltUp.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_TiltUp.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_TiltUp.ckpt", + "size": "77.5MB" }, { "name": "animatediff/v2_lora_ZoomIn.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1681,7 +2469,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v2_lora_ZoomIn.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_ZoomIn.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_ZoomIn.ckpt", + "size": "77.5MB" }, { "name": "animatediff/v2_lora_ZoomOut.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1691,7 +2480,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v2_lora_ZoomOut.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_ZoomOut.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_ZoomOut.ckpt", + "size": "77.5MB" }, { "name": "LongAnimatediff/lt_long_mm_32_frames.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1701,7 +2491,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", "filename": "lt_long_mm_32_frames.ckpt", - "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_32_frames.ckpt" + "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_32_frames.ckpt", + "size": "1.82GB" }, { "name": "LongAnimatediff/lt_long_mm_16_64_frames.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1711,7 +2502,8 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", "filename": "lt_long_mm_16_64_frames.ckpt", - "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames.ckpt" + "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames.ckpt", + "size": "1.83GB" }, { "name": "LongAnimatediff/lt_long_mm_16_64_frames_v1.1.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", @@ -1721,10 +2513,9 @@ "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", "filename": "lt_long_mm_16_64_frames_v1.1.ckpt", - "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames_v1.1.ckpt" + "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames_v1.1.ckpt", + "size": "1.83GB" }, - - { "name": "animatediff/v3_sd15_sparsectrl_rgb.ckpt (ComfyUI-AnimateDiff-Evolved)", "type": "controlnet", @@ -1733,7 +2524,8 @@ "description": "AnimateDiff SparseCtrl RGB ControlNet model", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v3_sd15_sparsectrl_rgb.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_rgb.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_rgb.ckpt", + "size": "1.99GB" }, { "name": "animatediff/v3_sd15_sparsectrl_scribble.ckpt", @@ -1743,7 +2535,8 @@ "description": "AnimateDiff SparseCtrl Scribble ControlNet model", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v3_sd15_sparsectrl_scribble.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_scribble.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_scribble.ckpt", + "size": "1.99GB" }, { "name": "animatediff/v3_sd15_adapter.ckpt", @@ -1753,20 +2546,20 @@ "description": "AnimateDiff Adapter LoRA (SD1.5)", "reference": "https://huggingface.co/guoyww/animatediff", "filename": "v3_sd15_adapter.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_adapter.ckpt" + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_adapter.ckpt", + "size": "102.1MB" }, - { "name": "TencentARC/motionctrl.pth", - "type": "checkpoints", + "type": "checkpoint", "base": "MotionCtrl", "save_path": "checkpoints/motionctrl", "description": "To use the ComfyUI-MotionCtrl extension, downloading this model is required.", "reference": "https://huggingface.co/TencentARC/MotionCtrl", "filename": "motionctrl.pth", - "url": "https://huggingface.co/TencentARC/MotionCtrl/resolve/main/motionctrl.pth" + "url": "https://huggingface.co/TencentARC/MotionCtrl/resolve/main/motionctrl.pth", + "size": "4.02GB" }, - { "name": "ip-adapter_sd15.safetensors", "type": "IP-Adapter", @@ -1775,27 +2568,30 @@ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.safetensors", + "size": "44.6MB" }, { - "name": "ip-adapter_sd15_light.safetensors", + "name": "ip-adapter_sd15_light_v11.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter_sd15_light_v11.bin", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light_v11.bin", + "size": "44.6MB" + }, + { + "name": "ip-adapter_sd15_light.safetensors [DEPRECATED]", "type": "IP-Adapter", "base": "SD1.5", "save_path": "ipadapter", "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter_sd15_light.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light.safetensors" - }, - { - "name": "ip-adapter_sd15_vit-G.safetensors", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "ip-adapter_sd15_vit-G.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_vit-G.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light.safetensors", + "size": "44.6MB" }, { "name": "ip-adapter-plus_sd15.safetensors", @@ -1805,7 +2601,8 @@ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter-plus_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors", + "size": "98.2MB" }, { "name": "ip-adapter-plus-face_sd15.safetensors", @@ -1815,7 +2612,8 @@ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter-plus-face_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus-face_sd15.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus-face_sd15.safetensors", + "size": "98.2MB" }, { "name": "ip-adapter-full-face_sd15.safetensors", @@ -1825,7 +2623,19 @@ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter-full-face_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-full-face_sd15.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-full-face_sd15.safetensors", + "size": "43.6MB" + }, + { + "name": "ip-adapter_sd15_vit-G.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter_sd15_vit-G.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_vit-G.safetensors", + "size": "46.2MB" }, { "name": "ip-adapter-faceid_sd15.bin", @@ -1835,47 +2645,96 @@ "description": "IP-Adapter-FaceID Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid_sd15.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15.bin" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15.bin", + "size": "96.7MB" }, { - "name": "ip-adapter-faceid-plus_sd15.bin", + "name": "ip-adapter-faceid-plusv2_sd15.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Plus V2 Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plusv2_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15.bin", + "size": "156.6MB" + }, + { + "name": "ip-adapter-faceid-plus_sd15.bin [DEPRECATED]", "type": "IP-Adapter", "base": "SD1.5", "save_path": "ipadapter", "description": "IP-Adapter-FaceID Plus Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid-plus_sd15.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15.bin" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15.bin", + "size": "156.6MB" }, { - "name": "ip-adapter-faceid-portrait_sd15.bin", + "name": "ip-adapter-faceid-portrait-v11_sd15.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Portrait V11 Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-portrait-v11_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait-v11_sd15.bin", + "size": "64.6MB" + }, + { + "name": "ip-adapter-faceid-portrait_sd15.bin [DEPRECATED]", "type": "IP-Adapter", "base": "SD1.5", "save_path": "ipadapter", "description": "IP-Adapter-FaceID Portrait Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid-portrait_sd15.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sd15.bin" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sd15.bin", + "size": "64.6MB" }, { "name": "ip-adapter-faceid_sdxl.bin", "type": "IP-Adapter", - "base": "SD1.5", + "base": "SDXL", "save_path": "ipadapter", "description": "IP-Adapter-FaceID Model (SDXL) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid_sdxl.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl.bin" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl.bin", + "size": "1.07GB" }, { "name": "ip-adapter-faceid-plusv2_sdxl.bin", "type": "IP-Adapter", - "base": "SD1.5", + "base": "SDXL", "save_path": "ipadapter", "description": "IP-Adapter-FaceID Plus Model (SDXL) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid-plusv2_sdxl.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl.bin" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl.bin", + "size": "1.49GB" + }, + { + "name": "ip-adapter-faceid-portrait_sdxl.bin", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Portrait Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-portrait_sdxl.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sdxl.bin", + "size": "749.8MB" + }, + { + "name": "ip-adapter-faceid-portrait_sdxl_unnorm.bin", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Portrait Model (SDXL/unnorm) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-portrait_sdxl_unnorm.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sdxl_unnorm.bin", + "size": "1.01GB" }, { "name": "ip-adapter-faceid_sd15_lora.safetensors", @@ -1885,27 +2744,19 @@ "description": "IP-Adapter-FaceID LoRA Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid_sd15_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15_lora.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15_lora.safetensors", + "size": "51.1MB" }, { - "name": "ip-adapter-faceid-plus_sd15_lora.safetensors", + "name": "ip-adapter-faceid-plus_sd15_lora.safetensors [DEPRECATED]", "type": "lora", "base": "SD1.5", "save_path": "loras/ipadapter", "description": "IP-Adapter-FaceID Plus LoRA Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid-plus_sd15_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15_lora.safetensors" - }, - { - "name": "ip-adapter-faceid-plusv2_sd15.bin", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "IP-Adapter-FaceID-Plus V2 Model (SD1.5) [ipadapter]", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid-plusv2_sd15.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15.bin" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15_lora.safetensors", + "size": "51.1MB" }, { "name": "ip-adapter-faceid-plusv2_sd15_lora.safetensors", @@ -1915,7 +2766,8 @@ "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SD1.5) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid-plusv2_sd15_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15_lora.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15_lora.safetensors", + "size": "51.1MB" }, { "name": "ip-adapter-faceid_sdxl_lora.safetensors", @@ -1925,7 +2777,8 @@ "description": "IP-Adapter-FaceID LoRA Model (SDXL) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid_sdxl_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl_lora.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl_lora.safetensors", + "size": "371.8MB" }, { "name": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", @@ -1935,7 +2788,8 @@ "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SDXL) [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", "filename": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl_lora.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl_lora.safetensors", + "size": "371.8MB" }, { "name": "ip-adapter_sdxl.safetensors", @@ -1945,7 +2799,8 @@ "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter_sdxl.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl.safetensors", + "size": "702.6MB" }, { "name": "ip-adapter_sdxl_vit-h.safetensors", @@ -1955,7 +2810,8 @@ "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter_sdxl_vit-h.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl_vit-h.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl_vit-h.safetensors", + "size": "698.4MB" }, { "name": "ip-adapter-plus_sdxl_vit-h.safetensors", @@ -1965,7 +2821,8 @@ "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter-plus_sdxl_vit-h.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors", + "size": "847.5MB" }, { "name": "ip-adapter-plus-face_sdxl_vit-h.safetensors", @@ -1975,39 +2832,56 @@ "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]", "reference": "https://huggingface.co/h94/IP-Adapter", "filename": "ip-adapter-plus-face_sdxl_vit-h.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus-face_sdxl_vit-h.safetensors" + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus-face_sdxl_vit-h.safetensors", + "size": "847.5MB" + }, + { + "name": "ip_plus_composition_sd15.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/ostris/ip-composition-adapter", + "filename": "ip_plus_composition_sd15.safetensors", + "url": "https://huggingface.co/ostris/ip-composition-adapter/resolve/main/ip_plus_composition_sd15.safetensors", + "size": "98.2MB" + }, + { + "name": "ip_plus_composition_sdxl.safetensors", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/ostris/ip-composition-adapter", + "filename": "ip_plus_composition_sdxl.safetensors", + "url": "https://huggingface.co/ostris/ip-composition-adapter/resolve/main/ip_plus_composition_sdxl.safetensors", + "size": "847.5MB" + }, + { + "name": "Kolors-IP-Adapter-Plus.bin (Kwai-Kolors/Kolors-IP-Adapter-Plus)", + "type": "IP-Adapter", + "base": "Kolors", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-Plus", + "filename": "Kolors-IP-Adapter-Plus.bin", + "url": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-Plus/resolve/main/ip_adapter_plus_general.bin", + "size": "1.01GB" + }, + { + "name": "Kolors-IP-Adapter-FaceID-Plus.bin (Kwai-Kolors/Kolors-IP-Adapter-Plus)", + "type": "IP-Adapter", + "base": "Kolors", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-FaceID-Plus", + "filename": "Kolors-IP-Adapter-FaceID-Plus.bin", + "url": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-FaceID-Plus/resolve/main/ipa-faceid-plus.bin", + "size": "2.39GB" }, - { - "name": "pfg-novel-n10.pt", - "type": "PFG", - "base": "SD1.5", - "save_path": "custom_nodes/pfg-ComfyUI/models", - "description": "Pressing 'install' directly downloads the model from the pfg-ComfyUI/models extension node. (Note: Requires ComfyUI-Manager V0.24 or above)", - "reference": "https://huggingface.co/furusu/PFG", - "filename": "pfg-novel-n10.pt", - "url": "https://huggingface.co/furusu/PFG/resolve/main/pfg-novel-n10.pt" - }, - { - "name": "pfg-wd14-n10.pt", - "type": "PFG", - "base": "SD1.5", - "save_path": "custom_nodes/pfg-ComfyUI/models", - "description": "Pressing 'install' directly downloads the model from the pfg-ComfyUI/models extension node. (Note: Requires ComfyUI-Manager V0.24 or above)", - "reference": "https://huggingface.co/furusu/PFG", - "filename": "pfg-wd14-n10.pt", - "url": "https://huggingface.co/furusu/PFG/resolve/main/pfg-wd14-n10.pt" - }, - { - "name": "pfg-wd15beta2-n10.pt", - "type": "PFG", - "base": "SD1.5", - "save_path": "custom_nodes/pfg-ComfyUI/models", - "description": "Pressing 'install' directly downloads the model from the pfg-ComfyUI/models extension node. (Note: Requires ComfyUI-Manager V0.24 or above)", - "reference": "https://huggingface.co/furusu/PFG", - "filename": "pfg-wd15beta2-n10.pt", - "url": "https://huggingface.co/furusu/PFG/resolve/main/pfg-wd15beta2-n10.pt" - }, + + { "name": "GFPGANv1.4.pth", "type": "GFPGAN", @@ -2016,7 +2890,8 @@ "description": "Face Restoration Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", "reference": "https://github.com/TencentARC/GFPGAN/releases", "filename": "GFPGANv1.4.pth", - "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth" + "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth", + "size": "348.6MB" }, { "name": "codeformer.pth", @@ -2026,7 +2901,8 @@ "description": "Face Restoration Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", "reference": "https://github.com/sczhou/CodeFormer/releases", "filename": "codeformer.pth", - "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth" + "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth", + "size": "376.6MB" }, { "name": "detection_Resnet50_Final.pth", @@ -2036,7 +2912,8 @@ "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", "reference": "https://github.com/xinntao/facexlib", "filename": "detection_Resnet50_Final.pth", - "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth" + "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth", + "size": "109.5MB" }, { "name": "detection_mobilenet0.25_Final.pth", @@ -2046,7 +2923,8 @@ "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", "reference": "https://github.com/xinntao/facexlib", "filename": "detection_mobilenet0.25_Final.pth", - "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_mobilenet0.25_Final.pth" + "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_mobilenet0.25_Final.pth", + "size": "1.79MB" }, { "name": "yolov5l-face.pth", @@ -2056,7 +2934,8 @@ "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", "reference": "https://github.com/xinntao/facexlib", "filename": "yolov5l-face.pth", - "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/yolov5l-face.pth" + "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/yolov5l-face.pth", + "size": "187.0MB" }, { "name": "yolov5n-face.pth", @@ -2066,7 +2945,8 @@ "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", "reference": "https://github.com/xinntao/facexlib", "filename": "yolov5n-face.pth", - "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/yolov5n-face.pth" + "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/yolov5n-face.pth", + "size": "7.15MB" }, { "name": "photomaker-v1.bin", @@ -2076,7 +2956,19 @@ "description": "PhotoMaker model. This model is compatible with SDXL.", "reference": "https://huggingface.co/TencentARC/PhotoMaker", "filename": "photomaker-v1.bin", - "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin" + "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin", + "size": "934.1MB" + }, + { + "name": "photomaker-v2.bin", + "type": "photomaker", + "base": "SDXL", + "save_path": "photomaker", + "description": "PhotoMaker model. This model is compatible with SDXL.", + "reference": "https://huggingface.co/TencentARC/PhotoMaker-V2", + "filename": "photomaker-v2.bin", + "url": "https://huggingface.co/TencentARC/PhotoMaker-V2/resolve/main/photomaker-v2.bin", + "size": "1.8GB" }, { "name": "1k3d68.onnx", @@ -2086,7 +2978,8 @@ "description": "Antelopev2 1k3d68.onnx model for InstantId. (InstantId needs all Antelopev2 models)", "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", "filename": "1k3d68.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/1k3d68.onnx" + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/1k3d68.onnx", + "size": "143.6MB" }, { "name": "2d106det.onnx", @@ -2096,7 +2989,8 @@ "description": "Antelopev2 2d106det.onnx model for InstantId. (InstantId needs all Antelopev2 models)", "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", "filename": "2d106det.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/2d106det.onnx" + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/2d106det.onnx", + "size": "5.03MB" }, { "name": "genderage.onnx", @@ -2106,7 +3000,8 @@ "description": "Antelopev2 genderage.onnx model for InstantId. (InstantId needs all Antelopev2 models)", "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", "filename": "genderage.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/genderage.onnx" + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/genderage.onnx", + "size": "1.32MB" }, { "name": "glintr100.onnx", @@ -2116,7 +3011,8 @@ "description": "Antelopev2 glintr100.onnx model for InstantId. (InstantId needs all Antelopev2 models)", "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", "filename": "glintr100.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/glintr100.onnx" + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/glintr100.onnx", + "size": "260.7MB" }, { "name": "scrfd_10g_bnkps.onnx", @@ -2126,7 +3022,8 @@ "description": "Antelopev2 scrfd_10g_bnkps.onnx model for InstantId. (InstantId needs all Antelopev2 models)", "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", "filename": "scrfd_10g_bnkps.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/scrfd_10g_bnkps.onnx" + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/scrfd_10g_bnkps.onnx", + "size": "16.9MB" }, { "name": "ip-adapter.bin", @@ -2136,7 +3033,8 @@ "description": "InstantId main model based on IpAdapter", "reference": "https://huggingface.co/InstantX/InstantID", "filename": "ip-adapter.bin", - "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ip-adapter.bin" + "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ip-adapter.bin", + "size": "1.69GB" }, { "name": "diffusion_pytorch_model.safetensors", @@ -2146,49 +3044,8 @@ "description": "InstantId controlnet model", "reference": "https://huggingface.co/InstantX/InstantID", "filename": "diffusion_pytorch_model.safetensors", - "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ControlNetModel/diffusion_pytorch_model.safetensors" - }, - - { - "name": "efficient_sam_s_cpu.jit [ComfyUI-YoloWorld-EfficientSAM]", - "type": "efficient_sam", - "base": "efficient_sam", - "save_path": "custom_nodes/ComfyUI-YoloWorld-EfficientSAM", - "description": "Install efficient_sam_s_cpu.jit into ComfyUI-YoloWorld-EfficientSAM", - "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main", - "filename": "efficient_sam_s_cpu.jit", - "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_cpu.jit" - }, - { - "name": "efficient_sam_s_gpu.jit [ComfyUI-YoloWorld-EfficientSAM]", - "type": "efficient_sam", - "base": "efficient_sam", - "save_path": "custom_nodes/ComfyUI-YoloWorld-EfficientSAM", - "description": "Install efficient_sam_s_gpu.jit into ComfyUI-YoloWorld-EfficientSAM", - "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main", - "filename": "efficient_sam_s_gpu.jit", - "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_gpu.jit" - }, - - { - "name": "shape_predictor_68_face_landmarks.dat [Face Analysis]", - "type": "Shape Predictor", - "base": "DLIB", - "save_path": "custom_nodes/ComfyUI_FaceAnalysis/dlib", - "description": "To use the Face Analysis for ComfyUI custom node, installation of this model is needed.", - "reference": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/tree/main", - "filename": "shape_predictor_68_face_landmarks.dat", - "url": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/resolve/main/shape_predictor_68_face_landmarks.dat" - }, - { - "name": "dlib_face_recognition_resnet_model_v1.dat [Face Analysis]", - "type": "Face Recognition", - "base": "DLIB", - "save_path": "custom_nodes/ComfyUI_FaceAnalysis/dlib", - "description": "To use the Face Analysis for ComfyUI custom node, installation of this model is needed.", - "reference": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/tree/main", - "filename": "dlib_face_recognition_resnet_model_v1.dat", - "url": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/resolve/main/dlib_face_recognition_resnet_model_v1.dat" + "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ControlNetModel/diffusion_pytorch_model.safetensors", + "size": "2.50GB" }, { "name": "InstanceDiffusion/fusers", @@ -2198,7 +3055,8 @@ "description": "Fusers checkpoints for multi-object prompting with InstanceDiffusion.", "reference": "https://huggingface.co/logtd/instance_diffusion", "filename": "fusers.ckpt", - "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/fusers.ckpt" + "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/fusers.ckpt", + "size": "832.1MB" }, { "name": "InstanceDiffusion/position_net", @@ -2208,7 +3066,8 @@ "description": "PositionNet checkpoints for multi-object prompting with InstanceDiffusion.", "reference": "https://huggingface.co/logtd/instance_diffusion", "filename": "position_net.ckpt", - "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/position_net.ckpt" + "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/position_net.ckpt", + "size": "643.2MB" }, { "name": "InstanceDiffusion/scaleu", @@ -2218,7 +3077,8 @@ "description": "ScaleU checkpoints for multi-object prompting with InstanceDiffusion.", "reference": "https://huggingface.co/logtd/instance_diffusion", "filename": "scaleu.ckpt", - "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/scaleu.ckpt" + "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/scaleu.ckpt", + "size": "53.1KB" }, { "name": "1k3d68.onnx", @@ -2228,7 +3088,8 @@ "description": "Buffalo_l 1k3d68.onnx model for IpAdapterPlus", "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", "filename": "1k3d68.onnx", - "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/1k3d68.onnx" + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/1k3d68.onnx", + "size": "143.6MB" }, { "name": "2d106det.onnx", @@ -2238,7 +3099,8 @@ "description": "Buffalo_l 2d106det.onnx model for IpAdapterPlus", "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", "filename": "2d106det.onnx", - "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/2d106det.onnx" + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/2d106det.onnx", + "size": "5.03MB" }, { "name": "det_10g.onnx", @@ -2248,7 +3110,8 @@ "description": "Buffalo_l det_10g.onnx model for IpAdapterPlus", "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", "filename": "det_10g.onnx", - "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/det_10g.onnx" + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/det_10g.onnx", + "size": "16.9MB" }, { "name": "genderage.onnx", @@ -2258,7 +3121,8 @@ "description": "Buffalo_l genderage.onnx model for IpAdapterPlus", "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", "filename": "genderage.onnx", - "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/genderage.onnx" + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/genderage.onnx", + "size": "1.32MB" }, { "name": "w600k_r50.onnx", @@ -2268,137 +3132,151 @@ "description": "Buffalo_l w600k_r50.onnx model for IpAdapterPlus", "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", "filename": "w600k_r50.onnx", - "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/w600k_r50.onnx" + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/w600k_r50.onnx", + "size": "174.4MB" }, { - "name": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L", - "type": "BLIP_MODEL", - "base": "blip_model", - "save_path": "blip", - "description": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L", - "reference": "https://github.com/salesforce/BLIP", - "filename": "model_base_capfilt_large.pth", - "url": "https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_base_capfilt_large.pth" + "name": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L", + "type": "BLIP_MODEL", + "base": "blip_model", + "save_path": "blip", + "description": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L", + "reference": "https://github.com/salesforce/BLIP", + "filename": "model_base_capfilt_large.pth", + "url": "https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_base_capfilt_large.pth", + "size": "2.12GB" }, { - "name": "GroundingDINO SwinT OGC - Model", - "type": "GroundingDINO", - "base": "DINO", - "save_path": "groundingdino", - "description": "GroundingDINO SwinT OGC Model", - "reference": "https://huggingface.co/ShilongLiu/GroundingDINO", - "filename": "groundingdino_swint_ogc.pth", - "url": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/groundingdino_swint_ogc.pth" + "name": "GroundingDINO SwinT OGC - Model", + "type": "GroundingDINO", + "base": "DINO", + "save_path": "groundingdino", + "description": "GroundingDINO SwinT OGC Model", + "reference": "https://huggingface.co/ShilongLiu/GroundingDINO", + "filename": "groundingdino_swint_ogc.pth", + "url": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/groundingdino_swint_ogc.pth", + "size": "694.0MB" }, { - "name": "GroundingDINO SwinT OGC - CFG File", - "type": "GroundingDINO", - "base": "DINO", - "save_path": "groundingdino", - "description": "GroundingDINO SwinT OGC CFG File", - "reference": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/GroundingDINO_SwinT_OGC.cfg.py", - "filename": "GroundingDINO_SwinT_OGC.cfg.py", - "url": "https://huggingface.co/ShilongLiu/GroundingDINO/raw/main/GroundingDINO_SwinT_OGC.cfg.py" + "name": "GroundingDINO SwinT OGC - CFG File", + "type": "GroundingDINO", + "base": "DINO", + "save_path": "groundingdino", + "description": "GroundingDINO SwinT OGC CFG File", + "reference": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/GroundingDINO_SwinT_OGC.cfg.py", + "filename": "GroundingDINO_SwinT_OGC.cfg.py", + "url": "https://huggingface.co/ShilongLiu/GroundingDINO/raw/main/GroundingDINO_SwinT_OGC.cfg.py", + "size": "1.01KB" }, { - "name": "ViT-H SAM model", - "type": "sam", - "base": "SAM", - "save_path": "sams", - "description": "Segmenty Anything SAM model (ViT-H)", - "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints", - "filename": "sam_vit_h_4b8939.pth", - "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth" - }, - { - "name": "ViT-L SAM model", - "type": "sam", - "base": "SAM", - "save_path": "sams", - "description": "Segmenty Anything SAM model (ViT-L)", - "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints", - "filename": "sam_vit_l_0b3195.pth", - "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth" - }, - { - "name": "MobileSAM", - "type": "sam", - "base": "SAM", - "save_path": "sams", - "description": "MobileSAM", - "reference": "https://github.com/ChaoningZhang/MobileSAM/", - "filename": "mobile_sam.pt", - "url": "https://github.com/ChaoningZhang/MobileSAM/blob/master/weights/mobile_sam.pt" + "name": "MobileSAM", + "type": "sam", + "base": "SAM", + "save_path": "sams", + "description": "MobileSAM", + "reference": "https://github.com/ChaoningZhang/MobileSAM/", + "filename": "mobile_sam.pt", + "url": "https://github.com/ChaoningZhang/MobileSAM/blob/master/weights/mobile_sam.pt", + "size": "38.8MB" }, { "name": "DynamiCrafter 1024 bf16 safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "DynamiCrafter", "save_path": "checkpoints/dynamicrafter", - "description": "DynamiCrafter image2video model 1024x575", + "description": "DynamiCrafter image2video model 1024x575", "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned/", "filename": "dynamicrafter_1024_v1_bf16.safetensors", - "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_1024_v1_bf16.safetensors" + "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_1024_v1_bf16.safetensors", + "size": "5.22GB" }, { "name": "DynamiCrafter 512 interpolation bf16 safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "DynamiCrafter", "save_path": "checkpoints/dynamicrafter", - "description": "DynamiCrafter image2video interpolation model 512", + "description": "DynamiCrafter image2video interpolation model 512", "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned/", "filename": "dynamicrafter_512_interp_v1_bf16.safetensors", - "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_512_interp_v1_bf16.safetensors" + "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_512_interp_v1_bf16.safetensors", + "size": "5.22GB" }, { "name": "monster-labs - Controlnet QR Code Monster v1 For SDXL", "type": "controlnet", "base": "SDXL", - "save_path": "default", - "description": "monster-labs - Controlnet QR Code Monster v1 For SDXL", + "save_path": "controlnet/SDXL", + "description": "monster-labs - Controlnet QR Code Monster v1 For SDXL", "reference": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster", "filename": "control_v1p_sdxl_qrcode_monster.safetensors", - "url": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster/resolve/main/diffusion_pytorch_model.safetensors" + "url": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster/resolve/main/diffusion_pytorch_model.safetensors", + "size": "5.00GB" }, { "name": "Depth-FM-v1 fp16 safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "Depth-FM", "save_path": "checkpoints/depthfm", - "description": "Depth-FM monocular depth estimation model", + "description": "Depth-FM monocular depth estimation model", "reference": "https://huggingface.co/Kijai/depth-fm-pruned", "filename": "depthfm-v1_fp16.safetensors", - "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp16.safetensors" + "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp16.safetensors", + "size": "1.73GB" }, { "name": "Depth-FM-v1 fp32 safetensors", - "type": "checkpoints", + "type": "checkpoint", "base": "Depth-FM", "save_path": "checkpoints/depthfm", - "description": "Depth-FM monocular depth estimation model", + "description": "Depth-FM monocular depth estimation model", "reference": "https://huggingface.co/Kijai/depth-fm-pruned", "filename": "depthfm-v1_fp32.safetensors", - "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp32.safetensors" + "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp32.safetensors", + "size": "3.46GB" }, { "name": "SUPIR-v0F.ckpt", - "type": "checkpoints", + "type": "checkpoint", "base": "SUPIR", "save_path": "checkpoints/SUPIR", "description": "SUPIR checkpoint model", "reference": "https://huggingface.co/camenduru/SUPIR/tree/main", "filename": "SUPIR-v0F.ckpt", - "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0F.ckpt" + "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0F.ckpt", + "size": "5.33GB" }, { "name": "SUPIR-v0Q.ckpt", - "type": "checkpoints", + "type": "checkpoint", "base": "SUPIR", "save_path": "checkpoints/SUPIR", "description": "SUPIR checkpoint model", "reference": "https://huggingface.co/camenduru/SUPIR/tree/main", "filename": "SUPIR-v0Q.ckpt", - "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0Q.ckpt" + "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0Q.ckpt", + "size": "5.33GB" + }, + { + "name": "Kijai/SUPIR-v0F_fp16.safetensors (pruned)", + "type": "checkpoint", + "base": "SUPIR", + "save_path": "checkpoints/SUPIR", + "description": "SUPIR checkpoint model", + "reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main", + "filename": "SUPIR-v0F_fp16.safetensors", + "url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0F_fp16.safetensors", + "size": "2.66GB" + }, + { + "name": "Kijai/SUPIR-v0Q_fp16.safetensors (pruned)", + "type": "checkpoint", + "base": "SUPIR", + "save_path": "checkpoints/SUPIR", + "description": "SUPIR checkpoint model", + "reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main", + "filename": "SUPIR-v0Q_fp16.safetensors", + "url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0Q_fp16.safetensors", + "size": "2.66GB" }, { "name": "RAM", @@ -2408,7 +3286,8 @@ "description": "RAM Recognize Anything Model", "reference": "https://huggingface.co/xinyu1205/recognize_anything_model", "filename": "ram_swin_large_14m.pth", - "url": "https://huggingface.co/xinyu1205/recognize_anything_model/resolve/main/ram_swin_large_14m.pth" + "url": "https://huggingface.co/xinyu1205/recognize_anything_model/resolve/main/ram_swin_large_14m.pth", + "size": "5.63GB" }, { "name": "RAM++", @@ -2418,7 +3297,8 @@ "description": "RAM++ Recognize Anything Model", "reference": "https://huggingface.co/xinyu1205/recognize-anything-plus-model", "filename": "ram_plus_swin_large_14m.pth", - "url": "https://huggingface.co/xinyu1205/recognize-anything-plus-model/resolve/main/ram_plus_swin_large_14m.pth" + "url": "https://huggingface.co/xinyu1205/recognize-anything-plus-model/resolve/main/ram_plus_swin_large_14m.pth", + "size": "3.01GB" }, { "name": "tag2text", @@ -2428,7 +3308,2053 @@ "description": "tag2text Recognize Anything Model", "reference": "https://huggingface.co/xinyu1205/recognize_anything_model", "filename": "tag2text_swin_14m.pth", - "url": "https://huggingface.co/xinyu1205/recognize_anything_model/resolve/main/tag2text_swin_14m.pth" + "url": "https://huggingface.co/xinyu1205/recognize_anything_model/resolve/main/tag2text_swin_14m.pth", + "size": "4.48GB" + }, + { + "name": "Zero123 3D object Model", + "type": "zero123", + "base": "zero123", + "save_path": "checkpoints/zero123", + "description": "model that been trained on 10M+ 3D objects from Objaverse-XL, used for generated rotated CamView", + "reference": "https://objaverse.allenai.org/docs/zero123-xl/", + "filename": "zero123-xl.ckpt", + "url": "https://huggingface.co/kealiu/zero123-xl/resolve/main/zero123-xl.ckpt", + "size": "15.5GB" + }, + { + "name": "Zero123 3D object Model", + "type": "zero123", + "base": "zero123", + "save_path": "checkpoints/zero123", + "description": "Stable Zero123 is a model for view-conditioned image generation based on [a/Zero123](https://github.com/cvlab-columbia/zero123).", + "reference": "https://huggingface.co/stabilityai/stable-zero123", + "filename": "stable_zero123.ckpt", + "url": "https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt", + "size": "8.58GB" + }, + { + "name": "Zero123 3D object Model", + "type": "zero123", + "base": "zero123", + "save_path": "checkpoints/zero123", + "description": "Zero123 original checkpoints in 105000 steps.", + "reference": "https://huggingface.co/cvlab/zero123-weights", + "filename": "zero123-105000.ckpt", + "url": "https://huggingface.co/cvlab/zero123-weights/resolve/main/105000.ckpt", + "size": "15.5GB" + }, + { + "name": "Zero123 3D object Model", + "type": "zero123", + "base": "zero123", + "save_path": "checkpoints/zero123", + "description": "Zero123 original checkpoints in 165000 steps.", + "reference": "https://huggingface.co/cvlab/zero123-weights", + "filename": "zero123-165000.ckpt", + "url": "https://huggingface.co/cvlab/zero123-weights/resolve/main/165000.ckpt", + "size": "15.5GB" + }, + { + "name": "InstantID/ip-adapter", + "type": "instantid", + "base": "SDXL", + "save_path": "instantid/SDXL", + "description": "ip-adapter model for cubiq/InstantID", + "reference": "https://huggingface.co/InstantX/InstantID", + "filename": "ip-adapter.bin", + "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ip-adapter.bin", + "size": "1.69GB" + }, + { + "name": "InstantID/ControlNet", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/instantid", + "description": "instantid controlnet model for cubiq/InstantID", + "reference": "https://huggingface.co/InstantX/InstantID", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ControlNetModel/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "MonsterMMORPG/insightface (for InstantID)", + "type": "insightface", + "base": "SDXL", + "save_path": "insightface/models", + "description": "MonsterMMORPG insightface model for cubiq/InstantID", + "reference": "https://huggingface.co/MonsterMMORPG/tools/tree/main", + "filename": "antelopev2.zip", + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/antelopev2.zip", + "size": "360.7MB" + }, + { + "name": "IC-Light/fc", + "type": "IC-Light", + "base": "SD1.5", + "save_path": "diffusion_models/IC-Light", + "description": "The default relighting model, conditioned on text and foreground", + "reference": "https://huggingface.co/lllyasviel/ic-light", + "filename": "iclight_sd15_fc.safetensors", + "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fc.safetensors", + "size": "1.72GB" + }, + { + "name": "IC-Light/fbc", + "type": "IC-Light", + "base": "SD1.5", + "save_path": "diffusion_models/IC-Light", + "description": "Relighting model conditioned with text, foreground, and background", + "reference": "https://huggingface.co/lllyasviel/ic-light", + "filename": "iclight_sd15_fbc.safetensors", + "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fbc.safetensors", + "size": "1.72GB" + }, + { + "name": "IC-Light/fcon", + "type": "IC-Light", + "base": "SD1.5", + "save_path": "diffusion_models/IC-Light", + "description": "Same as iclight_sd15_fc.safetensors, but trained with offset noise", + "reference": "https://huggingface.co/lllyasviel/ic-light", + "filename": "iclight_sd15_fcon.safetensors", + "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fcon.safetensors", + "size": "1.72GB" + }, + { + "name": "TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic v2 (fp16)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Controlnet SDXL Tile model realistic version.", + "reference": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic", + "filename": "TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors", + "url": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic/resolve/main/TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors", + "size": "2.50GB" + }, + { + "name": "TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic v2 (rank256)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Controlnet SDXL Tile model realistic version.", + "reference": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic", + "filename": "TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors", + "url": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic/resolve/main/TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors", + "size": "774.4MB" + }, + { + "name": "ViperYX/RGT_x2.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT", + "description": "RGT x2 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_x2.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x2.pth", + "size": "179.8MB" + }, + { + "name": "ViperYX/RGT_x3.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT", + "description": "RGT x3 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_x3.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x3.pth", + "size": "180.5MB" + }, + { + "name": "ViperYX/RGT_x4.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT", + "description": "RGT_S x4 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_x4.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x4.pth", + "size": "180.4MB" + }, + { + "name": "ViperYX/RGT_S_x2.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT_S", + "description": "RGT_S x2 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_S_x2.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x2.pth", + "size": "135.4MB" + }, + { + "name": "ViperYX/RGT_S_x3.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT_S", + "description": "RGT_S x3 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_S_x3.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x3.pth", + "size": "136.1MB" + }, + { + "name": "ViperYX/RGT_S_x4.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT_S", + "description": "RGT_S x4 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_S_x4.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x4.pth", + "size": "136.0MB" + }, + + { + "name": "InstantX/FLUX.1-dev Controlnet (Union)", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/InstantX-FLUX1-Dev-Union", + "description": "FLUX.1 [Dev] Union Controlnet. Supports Canny, Depth, Pose, Tile, Blur, Gray Low Quality.", + "reference": "https://huggingface.co/InstantX/FLUX.1-dev-Controlnet-Union", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/FLUX.1-dev-Controlnet-Union/resolve/main/diffusion_pytorch_model.safetensors", + "size": "6.6GB" + }, + + + { + "name": "InstantX/FLUX.1-dev-IP-Adapter", + "type": "IP-Adapter", + "base": "FLUX.1", + "save_path": "ipadapter-flux", + "description": "FLUX.1-dev-IP-Adapter", + "reference": "https://huggingface.co/InstantX/FLUX.1-dev-IP-Adapter", + "filename": "ip-adapter.bin", + "url": "https://huggingface.co/InstantX/FLUX.1-dev-IP-Adapter/resolve/main/ip-adapter.bin", + "size": "5.29GB" + }, + { + "name": "Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/Shakker-Labs-ControlNet-Union-Pro", + "description": "FLUX.1 [Dev] Union Controlnet. Supports Canny, Tile, Depth, Blur, Pose, Gray, Low Quality", + "reference": "https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro/resolve/main/diffusion_pytorch_model.safetensors", + "size": "6.6GB" + }, + { + "name": "Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro (fp8_e4m3fn) by Kijai", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1", + "description": "FLUX.1 [Dev] Union Controlnet. Supports Canny, Tile, Depth, Blur, Pose, Gray, Low Quality\nVersion quantized to fp8_e4m3fn by Kijai", + "reference": "https://huggingface.co/Kijai/flux-fp8", + "filename": "flux_shakker_labs_union_pro-fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Kijai/flux-fp8/resolve/main/flux_shakker_labs_union_pro-fp8_e4m3fn.safetensors", + "size": "3.3GB" + }, + + { + "name": "jasperai/FLUX.1-dev-Controlnet-Upscaler", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/jasperai-dev-Upscaler", + "description": "This is Flux.1-dev ControlNet for low resolution images developed by Jasper research team.", + "reference": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Upscaler", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Upscaler/resolve/main/diffusion_pytorch_model.safetensors", + "size": "3.58GB" + }, + { + "name": "jasperai/FLUX.1-dev-Controlnet-Depth", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/jasperai-dev-Depth", + "description": "This is Flux.1-dev ControlNet for Depth map developed by Jasper research team.", + "reference": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Depth", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Depth/resolve/main/diffusion_pytorch_model.safetensors", + "size": "3.58GB" + }, + { + "name": "jasperai/Flux.1-dev-Controlnet-Surface-Normals", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/jasperai-dev-Surface-Normals", + "description": "This is Flux.1-dev ControlNet for Surface Normals map developed by Jasper research team.", + "reference": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Surface-Normals", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Surface-Normals/resolve/main/diffusion_pytorch_model.safetensors", + "size": "3.58GB" + }, + + { + "name": "xinsir/ControlNet++: All-in-one ControlNet", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0", + "description": "All-in-one ControlNet for image generations and editing!", + "reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/ControlNet++: All-in-one ControlNet (ProMax model)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0", + "description": "All-in-one ControlNet for image generations and editing! (ProMax model)", + "reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0", + "filename": "diffusion_pytorch_model_promax.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model_promax.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Scribble-Sdxl-1.0", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-scribble-sdxl-1.0", + "description": "Controlnet SDXL Scribble model.", + "reference": "https://huggingface.co/xinsir/controlnet-scribble-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-scribble-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Canny-Sdxl-1.0 (V2)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-canny-sdxl-1.0", + "description": "Controlnet SDXL Canny model.", + "reference": "https://huggingface.co/xinsir/controlnet-canny-sdxl-1.0", + "filename": "diffusion_pytorch_model_V2.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model_V2.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Openpose-Sdxl-1.0", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-openpose-sdxl-1.0", + "description": "Controlnet SDXL Openpose model.", + "reference": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Openpose-Sdxl-1.0 (Ver. twins)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-openpose-sdxl-1.0", + "description": "Controlnet SDXL Openpose model. (Ver. twins)", + "reference": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0", + "filename": "diffusion_pytorch_model_twins.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model_twins.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Scribble-Sdxl-1.0-Anime", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-scribble-sdxl-1.0-anime", + "description": "Controlnet SDXL Scribble model. (Ver. anime)", + "reference": "https://huggingface.co/xinsir/anime-painter", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/anime-painter/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/ControlNet Depth SDXL, support zoe, midias", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-depth-sdxl-1.0", + "description": "Controlnet SDXL Depth model.", + "reference": "https://huggingface.co/xinsir/controlnet-depth-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-depth-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/ControlNet Tile SDXL", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-tile-sdxl-1.0", + "description": "Controlnet SDXL Tile model.", + "reference": "https://huggingface.co/xinsir/controlnet-tile-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-tile-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + + { + "name": "InstantX/SD3-Controlnet-Canny", + "type": "controlnet", + "base": "SD3", + "save_path": "controlnet/SD3/InstantX-Controlnet-Canny", + "description": "Controlnet SD3 Canny model.", + "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Canny", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/SD3-Controlnet-Canny/resolve/main/diffusion_pytorch_model.safetensors", + "size": "1.19GB" + }, + { + "name": "InstantX/SD3-Controlnet-Pose", + "type": "controlnet", + "base": "SD3", + "save_path": "controlnet/SD3/InstantX-Controlnet-Pose", + "description": "Controlnet SD3 Pose model.", + "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Pose", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/SD3-Controlnet-Pose/resolve/main/diffusion_pytorch_model.safetensors", + "size": "1.19GB" + }, + { + "name": "InstantX/SD3-Controlnet-Tile", + "type": "controlnet", + "base": "SD3", + "save_path": "controlnet/SD3/InstantX-Controlnet-Tile", + "description": "Controlnet SD3 Tile model.", + "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Tile", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/SD3-Controlnet-Tile/resolve/main/diffusion_pytorch_model.safetensors", + "size": "1.19GB" + }, + + + { + "name": "stabilityai/SD3.5-Large-Controlnet-Blur", + "type": "controlnet", + "base": "SD3.5", + "save_path": "controlnet/SD3.5", + "description": "Blur Controlnet model for SD3.5 Large", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets", + "filename": "sd3.5_large_controlnet_blur.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_blur.safetensors", + "size": "8.65GB" + }, + { + "name": "stabilityai/SD3.5-Large-Controlnet-Canny", + "type": "controlnet", + "base": "SD3.5", + "save_path": "controlnet/SD3.5", + "description": "Canny Controlnet model for SD3.5 Large", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets", + "filename": "sd3.5_large_controlnet_canny.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_canny.safetensors", + "size": "8.65GB" + }, + { + "name": "stabilityai/SD3.5-Large-Controlnet-Depth", + "type": "controlnet", + "base": "SD3.5", + "save_path": "controlnet/SD3.5", + "description": "Depth Controlnet model for SD3.5 Large", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets", + "filename": "sd3.5_large_controlnet_depth.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_depth.safetensors", + "size": "8.65GB" + }, + + { + "name": "Kijai/ToonCrafter model checkpoint (interpolation fp16)", + "type": "checkpoint", + "base": "ToonCrafter", + "save_path": "checkpoints/ToonCrafter", + "description": "ToonCrafter checkpoint model for ComfyUI-DynamiCrafterWrapper", + "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned", + "filename": "tooncrafter_512_interp-fp16.safetensors", + "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/tooncrafter_512_interp-fp16.safetensors", + "size": "5.25GB" + }, + { + "name": "CN-anytest_v4-marged.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged.safetensors", + "size": "2.50GB" + }, + { + "name": "CN-anytest_v4-marged_am_dim256.safetensors (dim256/Animagine)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim256) for Animagine. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged_am_dim256.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_am_dim256.safetensors", + "size": "774.4MB" + }, + { + "name": "CN-anytest_v4-marged_am_dim128.safetensors (dim128/Animagine)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim128) for Animagine. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged_am_dim128.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_am_dim128.safetensors", + "size": "395.7MB" + }, + { + "name": "CN-anytest_v4-marged_pn_dim256.safetensors (dim256/Pony)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim256) for Pony. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged_pn_dim256.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_pn_dim256.safetensors", + "size": "774.4MB" + }, + { + "name": "CN-anytest_v4-marged_pn_dim128.safetensors (dim128/Pony)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim128) for Pony. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged_pn_dim128.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_pn_dim128.safetensors", + "size": "395.7MB" + }, + { + "name": "CN-anytest_v3-50000_fp16.safetensors (fp16)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_fp16.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_fp16.safetensors", + "size": "2.50GB" + }, + { + "name": "CN-anytest_v3-50000_am_dim256.safetensors (dim256/Animagine)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim256) for Animagine. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_am_dim256.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_am_dim256.safetensors", + "size": "774.4MB" + }, + { + "name": "CN-anytest_v3-50000_am_dim128.safetensors (dim128/Animagine)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim128) for Animagine. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_am_dim128.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_am_dim128.safetensors", + "size": "395.7MB" + }, + { + "name": "CN-anytest_v3-50000_pn_dim256.safetensors (dim256/Pony)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim256) for Pony. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_pn_dim256.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_pn_dim256.safetensors", + "size": "774.4MB" + }, + { + "name": "CN-anytest_v3-50000_pn_dim128.safetensors (dim128/Pony)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim128) for Pony. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_pn_dim128.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_pn_dim128.safetensors", + "size": "395.7MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitb/fp16)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vitb_fp16.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitb_fp16.safetensors", + "size": "195.0MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitb/fp32)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vitb_fp32.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitb_fp32.safetensors", + "size": "389.9MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitl/fp16)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vitl_fp16.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitl_fp16.safetensors", + "size": "670.7MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitl/fp32)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vitl_fp32.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitl_fp32.safetensors", + "size": "1.34GB" + }, + { + "name": "kijai/DepthAnythingV2 (vits/fp16)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vits_fp16.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vits_fp16.safetensors", + "size": "49.6MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitb/fp32)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vits_fp32.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vits_fp32.safetensors", + "size": "99.2MB" + }, + + { + "name": "PixArt-Sigma-XL-2-1024-MS.pth (checkpoint)", + "type": "checkpoint", + "base": "pixart-sigma", + "save_path": "checkpoints/PixArt-Sigma", + "description": "PixArt-Sigma Checkpoint model", + "reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma/tree/main", + "filename": "PixArt-Sigma-XL-2-1024-MS.pth", + "url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma/resolve/main/PixArt-Sigma-XL-2-1024-MS.pth", + "size": "2.47GB" + }, + + { + "name": "PixArt-Sigma-XL-2-512-MS.safetensors (diffusion)", + "type": "diffusion_model", + "base": "pixart-sigma", + "save_path": "diffusion_models/PixArt-Sigma", + "description": "PixArt-Sigma Diffusion model", + "reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-512-MS", + "filename": "PixArt-Sigma-XL-2-512-MS.safetensors", + "url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-512-MS/resolve/main/transformer/diffusion_pytorch_model.safetensors", + "size": "2.44GB" + }, + { + "name": "PixArt-Sigma-XL-2-1024-MS.safetensors (diffusion)", + "type": "diffusion_model", + "base": "pixart-sigma", + "save_path": "diffusion_models/PixArt-Sigma", + "description": "PixArt-Sigma Diffusion model", + "reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-1024-MS", + "filename": "PixArt-Sigma-XL-2-1024-MS.safetensors", + "url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-1024-MS/resolve/main/transformer/diffusion_pytorch_model.safetensors", + "size": "2.44GB" + }, + { + "name": "PixArt-XL-2-1024-MS.safetensors (diffusion)", + "type": "diffusion_model", + "base": "pixart-alpha", + "save_path": "diffusion_models/PixArt-Alpha", + "description": "PixArt-Alpha Diffusion model", + "reference": "https://huggingface.co/PixArt-alpha/PixArt-XL-2-1024-MS", + "filename": "PixArt-XL-2-1024-MS.safetensors", + "url": "https://huggingface.co/PixArt-alpha/PixArt-XL-2-1024-MS/resolve/main/transformer/diffusion_pytorch_model.safetensors", + "size": "2.45GB" + }, + + + { + "name": "hunyuan_dit_1.2.safetensors", + "type": "checkpoint", + "base": "Hunyuan-DiT", + "save_path": "checkpoints/hunyuan_dit_comfyui", + "description": "Different versions of HunyuanDIT packaged for ComfyUI use.", + "reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui", + "filename": "hunyuan_dit_1.2.safetensors", + "url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.2.safetensors", + "size": "8.24GB" + }, + { + "name": "hunyuan_dit_1.1.safetensors", + "type": "checkpoint", + "base": "Hunyuan-DiT", + "save_path": "checkpoints/hunyuan_dit_comfyui", + "description": "Different versions of HunyuanDIT packaged for ComfyUI use.", + "reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui", + "filename": "hunyuan_dit_1.1.safetensors", + "url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.1.safetensors", + "size": "8.24GB" + }, + { + "name": "hunyuan_dit_1.0.safetensors", + "type": "checkpoint", + "base": "Hunyuan-DiT", + "save_path": "checkpoints/hunyuan_dit_comfyui", + "description": "Different versions of HunyuanDIT packaged for ComfyUI use.", + "reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui", + "filename": "hunyuan_dit_1.0.safetensors", + "url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.0.safetensors", + "size": "8.24GB" + }, + + { + "name": "Comfy-Org/hunyuan_video_t2v_720p_bf16.safetensors", + "type": "diffusion_model", + "base": "Hunyuan Video", + "save_path": "diffusion_models/hunyuan_video", + "description": "Huyuan Video diffusion model. repackaged version.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "hunyuan_video_t2v_720p_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/diffusion_models/hunyuan_video_t2v_720p_bf16.safetensors", + "size": "25.6GB" + }, + { + "name": "Comfy-Org/hunyuan_video_vae_bf16.safetensors", + "type": "VAE", + "base": "Hunyuan Video", + "save_path": "default", + "description": "Huyuan Video VAE model. repackaged version.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "hunyuan_video_vae_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/vae/hunyuan_video_vae_bf16.safetensors", + "size": "493MB" + }, + { + "name": "Comfy-Org/hunyuan_video_image_to_video_720p_bf16.safetensors", + "type": "diffusion_model", + "base": "Hunyuan Video", + "save_path": "diffusion_models/hunyuan_video", + "description": "Huyuan Video Image2Video diffusion model. repackaged version.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "hunyuan_video_image_to_video_720p_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/diffusion_models/hunyuan_video_image_to_video_720p_bf16.safetensors", + "size": "25.6GB" + }, + + { + "name": "Comfy-Org/llava_llama3_fp8_scaled.safetensors", + "type": "clip", + "base": "LLaVA-Llama-3", + "save_path": "text_encoders", + "description": "llava_llama3_fp8_scaled text encoder model. This is required for using Hunyuan Video.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "llava_llama3_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/llava_llama3_fp8_scaled.safetensors", + "size": "9.09GB" + }, + { + "name": "Comfy-Org/llava_llama3_fp16.safetensors", + "type": "clip", + "base": "LLaVA-Llama-3", + "save_path": "text_encoders", + "description": "llava_llama3_fp16 text encoder model. This is required for using Hunyuan Video.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "llava_llama3_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/llava_llama3_fp16.safetensors", + "size": "16.1GB" + }, + { + "name": "Comfy-Org/llava_llama3_vision.safetensors", + "type": "clip_vision", + "base": "LLaVA-Llama-3", + "save_path": "text_encoders", + "description": "llava_llama3_vision clip vison model. This is required for using Hunyuan Video Image2Video.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "llava_llama3_vision.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/clip_vision/llava_llama3_vision.safetensors", + "size": "649MB" + }, + + { + "name": "Comfy-Org/omnigen2_fp16.safetensors", + "type": "diffusion_model", + "base": "OmniGen2", + "save_path": "default", + "description": "OmniGen2 diffusion model. This is required for using OmniGen2.", + "reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged", + "filename": "omnigen2_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/omnigen2_fp16.safetensors", + "size": "7.93GB" + }, + { + "name": "Comfy-Org/qwen_2.5_vl_fp16.safetensors", + "type": "clip", + "base": "qwen-2.5", + "save_path": "default", + "description": "text encoder for OmniGen2", + "reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged", + "filename": "qwen_2.5_vl_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/text_encoders/qwen_2.5_vl_fp16.safetensors", + "size": "7.51GB" + }, + + { + "name": "FLUX.1 [Schnell] Diffusion model", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Schnell] Diffusion model (a.k.a. FLUX.1 turbo model)[w/Due to the large size of the model, it is recommended to download it through a browser if possible.]", + "reference": "https://huggingface.co/black-forest-labs/FLUX.1-schnell", + "filename": "flux1-schnell.safetensors", + "url": "https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/flux1-schnell.safetensors", + "size": "23.8GB" + }, + + { + "name": "FLUX.1 VAE model", + "type": "VAE", + "base": "FLUX.1", + "save_path": "vae/FLUX1", + "description": "FLUX.1 VAE model\nNOTE: This VAE model can also be used for image generation with OmniGen2.", + "reference": "https://huggingface.co/black-forest-labs/FLUX.1-schnell", + "filename": "ae.safetensors", + "url": "https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/ae.safetensors", + "size": "335MB" + }, + + { + "name": "kijai/FLUX.1 [schnell] Diffusion model (float8_e4m3fn)", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Schnell] Diffusion model (float8_e4m3fn)", + "reference": "https://huggingface.co/Kijai/flux-fp8", + "filename": "flux1-schnell-fp8.safetensors", + "url": "https://huggingface.co/Kijai/flux-fp8/resolve/main/flux1-schnell-fp8.safetensors", + "size": "11.9GB" + }, + + { + "name": "FLUX.1 [Dev] Diffusion model (scaled fp8)", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (scaled fp8)[w/Due to the large size of the model, it is recommended to download it through a browser if possible.]", + "reference": "https://huggingface.co/comfyanonymous/flux_dev_scaled_fp8_test", + "filename": "flux_dev_fp8_scaled_diffusion_model.safetensors", + "url": "https://huggingface.co/comfyanonymous/flux_dev_scaled_fp8_test/resolve/main/flux_dev_fp8_scaled_diffusion_model.safetensors", + "size": "11.9GB" + }, + { + "name": "kijai/FLUX.1 [dev] Diffusion model (float8_e4m3fn)", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [dev] Diffusion model (float8_e4m3fn)", + "reference": "https://huggingface.co/Kijai/flux-fp8", + "filename": "flux1-dev-fp8.safetensors", + "url": "https://huggingface.co/Kijai/flux-fp8/resolve/main/flux1-dev-fp8.safetensors", + "size": "11.9GB" + }, + + { + "name": "Comfy Org/FLUX.1 [dev] Checkpoint model (fp8)", + "type": "checkpoint", + "base": "FLUX.1", + "save_path": "checkpoints/FLUX1", + "description": "FLUX.1 [dev] Checkpoint model (fp8)", + "reference": "https://huggingface.co/Comfy-Org/flux1-dev/tree/main", + "filename": "flux1-dev-fp8.safetensors", + "url": "https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors", + "size": "17.2GB" + }, + { + "name": "Comfy Org/FLUX.1 [schnell] Checkpoint model (fp8)", + "type": "checkpoint", + "base": "FLUX.1", + "save_path": "checkpoints/FLUX1", + "description": "FLUX.1 [schnell] Checkpoint model (fp8)", + "reference": "https://huggingface.co/Comfy-Org/flux1-dev/tree/main", + "filename": "flux1-schnell-fp8.safetensors", + "url": "https://huggingface.co/Comfy-Org/flux1-schnell/resolve/main/flux1-schnell-fp8.safetensors", + "size": "17.2GB" + }, + + { + "name": "city96/flux1-dev-F16.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (f16/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-F16.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-F16.gguf", + "size": "23.8GB" + }, + { + "name": "city96/flux1-dev-Q2_K.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q2_K/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q2_K.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q2_K.gguf", + "size": "4.03GB" + }, + { + "name": "city96/flux1-dev-Q3_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q3_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q3_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q3_K_S.gguf", + "size": "5.23GB" + }, + { + "name": "city96/flux1-dev-Q4_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q4_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q4_0.gguf", + "size": "6.79GB" + }, + { + "name": "city96/flux1-dev-Q4_1.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_1/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q4_1.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q4_1.gguf", + "size": "7.53GB" + }, + { + "name": "city96/flux1-dev-Q4_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q4_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q4_K_S.gguf", + "size": "6.81GB" + }, + { + "name": "city96/flux1-dev-Q5_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q5_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_0.gguf", + "size": "8.27GB" + }, + { + "name": "city96/flux1-dev-Q5_1.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_1/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q5_1.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_1.gguf", + "size": "9.01GB" + }, + { + "name": "city96/flux1-dev-Q5_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q5_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_K_S.gguf", + "size": "8.29GB" + }, + { + "name": "city96/flux1-dev-Q6_K.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q6_K/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q6_K.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q6_K.gguf", + "size": "9.86GB" + }, + { + "name": "city96/flux1-dev-Q8_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q8_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q8_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q8_0.gguf", + "size": "12.7GB" + }, + + { + "name": "city96/flux1-schnell-F16.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (f16/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-F16.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-F16.gguf", + "size": "23.8GB" + }, + { + "name": "city96/flux1-schnell-Q2_K.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q2_K/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q2_K.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q2_K.gguf", + "size": "4.01GB" + }, + { + "name": "city96/flux1-schnell-Q3_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q3_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q3_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q3_K_S.gguf", + "size": "5.21GB" + }, + { + "name": "city96/flux1-schnell-Q4_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q4_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q4_0.gguf", + "size": "6.77GB" + }, + { + "name": "city96/flux1-schnell-Q4_1.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_1/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q4_1.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q4_1.gguf", + "size": "7.51GB" + }, + { + "name": "city96/flux1-schnell-Q4_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q4_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q4_K_S.gguf", + "size": "6.78GB" + }, + { + "name": "city96/flux1-schnell-Q5_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q5_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q5_0.gguf", + "size": "8.25GB" + }, + { + "name": "city96/flux1-schnell-Q5_1.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_1/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q5_1.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q5_1.gguf", + "size": "8.99GB" + }, + { + "name": "city96/flux1-schnell-Q5_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q5_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q5_K_S.gguf", + "size": "8.26GB" + }, + { + "name": "city96/flux1-schnell-Q6_K.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q6_K/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q6_K.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q6_K.gguf", + "size": "9.83GB" + }, + { + "name": "city96/flux1-schnell-Q8_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q8_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q8_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q8_0.gguf", + "size": "12.7GB" + }, + + { + "name": "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors [Long CLIP L]", + "type": "clip", + "base": "clip", + "save_path": "text_encoders/long_clip", + "description": "Greatly improved TEXT + Detail (as CLIP-L for Flux.1)", + "reference": "https://huggingface.co/zer0int", + "filename": "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors", + "url": "https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/resolve/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors", + "size": "931MB" + }, + { + "name": "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors [Long CLIP L]", + "type": "clip", + "base": "clip", + "save_path": "text_encoders/long_clip", + "description": "Greatly improved TEXT + Detail (as CLIP-L for Flux.1)", + "reference": "https://huggingface.co/zer0int", + "filename": "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors", + "url": "https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/resolve/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors", + "size": "323MB" + }, + + { + "name": "Depth Pro model", + "type": "depth-pro", + "base": "depth-pro", + "save_path": "depth/ml-depth-pro", + "description": "Depth pro model for [a/ComfyUI-Depth-Pro](https://github.com/spacepxl/ComfyUI-Depth-Pro)", + "reference": "https://huggingface.co/spacepxl/ml-depth-pro", + "filename": "depth_pro.fp16.safetensors", + "url": "https://huggingface.co/spacepxl/ml-depth-pro/resolve/main/depth_pro.fp16.safetensors", + "size": "1.9GB" + }, + + { + "name": "kijai/lotus depth d model v1.1 (fp16)", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus depth d model v1.1 (fp16). This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-depth-d-v-1-1-fp16.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-depth-d-v-1-1-fp16.safetensors", + "size": "1.74GB" + }, + { + "name": "kijai/lotus depth g model v1.0 (fp16)", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus depth g model v1.0 (fp16). This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-depth-g-v1-0-fp16.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-depth-g-v1-0-fp16.safetensors", + "size": "1.74GB" + }, + { + "name": "kijai/lotus depth g model v1.0", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus depth g model v1.0. This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-depth-g-v1-0.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-depth-g-v1-0.safetensors", + "size": "3.47GB" + }, + { + "name": "kijai/lotus normal d model v1.0 (fp16)", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus normal d model v1.0 (fp16). This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-normal-d-v1-0-fp16.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-normal-d-v1-0-fp16.safetensors", + "size": "1.74GB" + }, + { + "name": "kijai/lotus normal d model v1.0", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus normal d model v1.0. This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-normal-d-v1-0.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-normal-d-v1-0.safetensors", + "size": "3.47GB" + }, + { + "name": "kijai/lotus normal g model v1.0 (fp16)", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus normal g model v1.0 (fp16). This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-normal-g-v1-0-fp16.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-normal-g-v1-0-fp16.safetensors", + "size": "1.74GB" + }, + { + "name": "kijai/lotus normal g model v1.0", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus normal g model v1.0. This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-normal-g-v1-0.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-normal-g-v1-0.safetensors", + "size": "3.47GB" + }, + + { + "name": "Kolors UNet model", + "type": "diffusion_model", + "base": "Kolors", + "save_path": "diffusion_models/kolors", + "description": "Kolors UNet model", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/unet/diffusion_pytorch_model.safetensors", + "size": "10.3GB" + }, + { + "name": "Kolors UNet model (fp16)", + "type": "diffusion_model", + "base": "Kolors", + "save_path": "diffusion_models/kolors", + "description": "Kolors UNet model", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.fp16.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/unet/diffusion_pytorch_model.fp16.safetensors", + "size": "5.16GB" + }, + { + "name": "Kijai/ChatGLM3 (4bit)", + "type": "LLM", + "base": "ChatGLM3", + "save_path": "LLM", + "description": "This is required for Kolors", + "reference": "https://huggingface.co/Kijai/ChatGLM3-safetensors/tree/main", + "filename": "chatglm3-4bit.safetensors", + "url": "https://huggingface.co/Kijai/ChatGLM3-safetensors/resolve/main/chatglm3-4bit.safetensors", + "size": "3.92GB" + }, + { + "name": "Kijai/ChatGLM3 (8bit)", + "type": "LLM", + "base": "ChatGLM3", + "save_path": "LLM", + "description": "This is required for Kolors", + "reference": "https://huggingface.co/Kijai/ChatGLM3-safetensors/tree/main", + "filename": "chatglm3-8bit.safetensors", + "url": "https://huggingface.co/Kijai/ChatGLM3-safetensors/resolve/main/chatglm3-8bit.safetensors", + "size": "3.92GB" + }, + { + "name": "Kijai/ChatGLM3 (16bit)", + "type": "LLM", + "base": "ChatGLM3", + "save_path": "LLM", + "description": "This is required for Kolors", + "reference": "https://huggingface.co/Kijai/ChatGLM3-safetensors/tree/main", + "filename": "chatglm3-fp16.safetensors", + "url": "https://huggingface.co/Kijai/ChatGLM3-safetensors/resolve/main/chatglm3-fp16.safetensors", + "size": "12.52GB" + }, + + { + "name": "pulid_flux_v0.9.1.safetensors", + "type": "PuLID", + "base": "FLUX.1", + "save_path": "pulid", + "description": "This is required for PuLID (FLUX)", + "reference": "https://huggingface.co/guozinan/PuLID", + "filename": "pulid_flux_v0.9.1.safetensors", + "url": "https://huggingface.co/guozinan/PuLID/resolve/main/pulid_flux_v0.9.1.safetensors", + "size": "1.14GB" + }, + { + "name": "pulid_v1.1.safetensors", + "type": "PuLID", + "base": "SDXL", + "save_path": "pulid", + "description": "This is required for PuLID (SDXL)", + "reference": "https://huggingface.co/guozinan/PuLID", + "filename": "pulid_v1.1.safetensors", + "url": "https://huggingface.co/guozinan/PuLID/resolve/main/pulid_v1.1.safetensors", + "size": "984MB" + }, + + { + "name": "kijai/MoGe_ViT_L_fp16.safetensors", + "type": "MoGe", + "base": "MoGe", + "save_path": "MoGe", + "description": "Safetensors versions of [a/https://github.com/microsoft/MoGe](https://github.com/microsoft/MoGe)", + "reference": "https://huggingface.co/Kijai/MoGe_safetensors", + "filename": "MoGe_ViT_L_fp16.safetensors", + "url": "https://huggingface.co/Kijai/MoGe_safetensors/resolve/main/MoGe_ViT_L_fp16.safetensors", + "size": "628MB" + }, + { + "name": "kijai/MoGe_ViT_L_fp16.safetensors", + "type": "MoGe", + "base": "MoGe", + "save_path": "MoGe", + "description": "Safetensors versions of [a/https://github.com/microsoft/MoGe](https://github.com/microsoft/MoGe)", + "reference": "https://huggingface.co/Kijai/MoGe_safetensors", + "filename": "MoGe_ViT_L_fp16.safetensors", + "url": "https://huggingface.co/Kijai/MoGe_safetensors/resolve/main/MoGe_ViT_L_fp16.safetensors", + "size": "1.26GB" + }, + + { + "name": "LTX-Video 2B v0.9 Checkpoint", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltx-video-2b-v0.9.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.safetensors", + "size": "9.37GB" + }, + { + "name": "LTX-Video 2B v0.9.1 Checkpoint", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltx-video-2b-v0.9.1.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.1.safetensors", + "size": "5.72GB" + }, + { + "name": "LTX-Video 2B v0.9.5 Checkpoint", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltx-video-2b-v0.9.5.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.5.safetensors", + "size": "6.34GB" + }, + + { + "name": "XLabs-AI/flux-canny-controlnet-v3.safetensors", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "xlabs/controlnets", + "description": "ControlNet checkpoints for FLUX.1-dev model by Black Forest Labs.", + "reference": "https://huggingface.co/XLabs-AI/flux-controlnet-collections", + "filename": "flux-canny-controlnet-v3.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-controlnet-collections/resolve/main/flux-canny-controlnet-v3.safetensors", + "size": "1.49GB" + }, + { + "name": "XLabs-AI/flux-depth-controlnet-v3.safetensors", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "xlabs/controlnets", + "description": "ControlNet checkpoints for FLUX.1-dev model by Black Forest Labs.", + "reference": "https://huggingface.co/XLabs-AI/flux-controlnet-collections", + "filename": "flux-depth-controlnet-v3.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-controlnet-collections/resolve/main/flux-depth-controlnet-v3.safetensors", + "size": "1.49GB" + }, + { + "name": "XLabs-AI/flux-hed-controlnet-v3.safetensors", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "xlabs/controlnets", + "description": "ControlNet checkpoints for FLUX.1-dev model by Black Forest Labs.", + "reference": "https://huggingface.co/XLabs-AI/flux-controlnet-collections", + "filename": "flux-hed-controlnet-v3.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-controlnet-collections/resolve/main/flux-hed-controlnet-v3.safetensors", + "size": "1.49GB" + }, + + { + "name": "XLabs-AI/realism_lora.safetensors", + "type": "lora", + "base": "FLUX.1", + "save_path": "xlabs/loras", + "description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs", + "reference": "https://huggingface.co/XLabs-AI/flux-lora-collection", + "filename": "realism_lora.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-lora-collection/resolve/main/realism_lora.safetensors", + "size": "44.8MB" + }, + { + "name": "XLabs-AI/art_lora.safetensors", + "type": "lora", + "base": "FLUX.1", + "save_path": "xlabs/loras", + "description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs", + "reference": "https://huggingface.co/XLabs-AI/flux-lora-collection", + "filename": "art_lora.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-lora-collection/resolve/main/scenery_lora.safetensors", + "size": "44.8MB" + }, + { + "name": "XLabs-AI/mjv6_lora.safetensors", + "type": "lora", + "base": "FLUX.1", + "save_path": "xlabs/loras", + "description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs", + "reference": "https://huggingface.co/XLabs-AI/flux-lora-collection", + "filename": "mjv6_lora.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-lora-collection/resolve/main/mjv6_lora.safetensors", + "size": "44.8MB" + }, + + { + "name": "XLabs-AI/flux-ip-adapter", + "type": "lora", + "base": "FLUX.1", + "save_path": "xlabs/ipadapters", + "description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs", + "reference": "https://huggingface.co/XLabs-AI/flux-ip-adapter", + "filename": "ip_adapter.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-ip-adapter/resolve/main/ip_adapter.safetensors", + "size": "982MB" + }, + + { + "name": "efficient_sam_s_cpu.jit [ComfyUI-YoloWorld-EfficientSAM]", + "type": "efficient_sam", + "base": "efficient_sam", + "save_path": "yolo_world", + "description": "Install efficient_sam_s_cpu.jit into ComfyUI-YoloWorld-EfficientSAM", + "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main", + "filename": "efficient_sam_s_cpu.jit", + "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_cpu.jit", + "size": "106.0MB" + }, + { + "name": "efficient_sam_s_gpu.jit [ComfyUI-YoloWorld-EfficientSAM]", + "type": "efficient_sam", + "base": "efficient_sam", + "save_path": "yolo_world", + "description": "Install efficient_sam_s_gpu.jit into ComfyUI-YoloWorld-EfficientSAM", + "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main", + "filename": "efficient_sam_s_gpu.jit", + "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_gpu.jit", + "size": "106.0MB" + }, + + { + "name": "TencentARC/CustomNet V1", + "type": "CustomNet", + "base": "CustomNet", + "save_path": "checkpoints/customnet", + "description": "CustomNet pretrained model for ComfyUI_CustomNet", + "reference": "https://huggingface.co/TencentARC/CustomNet/tree/main", + "filename": "customnet_v1.pt", + "url": "https://huggingface.co/TencentARC/CustomNet/resolve/main/customnet_v1.pt", + "size": "5.71GB" + }, + { + "name": "TencentARC/CustomNet Inpaint V1", + "type": "CustomNet", + "base": "CustomNet", + "save_path": "checkpoints/customnet", + "description": "CustomNet Inpaint pretrained model for ComfyUI_CustomNet", + "reference": "https://huggingface.co/TencentARC/CustomNet/tree/main", + "filename": "customnet_inpaint_v1.pt", + "url": "https://huggingface.co/TencentARC/CustomNet/resolve/main/customnet_inpaint_v1.pt", + "size": "5.71GB" + }, + + { + "name": "deepseek-ai/Janus-Pro-1B", + "type": "Janus-Pro", + "base": "Janus-Pro", + "save_path": "Janus-Pro", + "description": "[SNAPSHOT] Janus-Pro-1B model.[w/You cannot download this item on ComfyUI-Manager versions below V3.18]", + "reference": "https://huggingface.co/deepseek-ai/Janus-Pro-1B", + "filename": "", + "url": "deepseek-ai/Janus-Pro-1B", + "size": "7.8GB" + }, + { + "name": "deepseek-ai/Janus-Pro-7B", + "type": "Janus-Pro", + "base": "Janus-Pro", + "save_path": "Janus-Pro", + "description": "[SNAPSHOT] Janus-Pro-7B model.[w/You cannot download this item on ComfyUI-Manager versions below V3.18]", + "reference": "https://huggingface.co/deepseek-ai/Janus-Pro-7B", + "filename": "", + "url": "deepseek-ai/Janus-Pro-7B", + "size": "14.85GB" + }, + { + "name": "kolors/vae/diffusion_pytorch_model.fp16.safetensors", + "type": "VAE", + "base": "Kolors", + "save_path": "vae/kolors", + "description": "Kolors VAE", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.fp16.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/vae/diffusion_pytorch_model.fp16.safetensors", + "size": "167MB" + }, + { + "name": "kolors/vae/diffusion_pytorch_model.safetensors", + "type": "VAE", + "base": "Kolors", + "save_path": "vae/kolors", + "description": "Kolors VAE", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/vae/diffusion_pytorch_model.safetensors", + "size": "335MB" + }, + + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_bf16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp8_e4m3fn.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp8_scaled.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_bf16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_fp16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_fp8_e4m3fn.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_fp8_scaled.safetensors", + "size": "16.4GB" + }, + + { + "name": "Comfy-Org/Wan2.1 t2v 1.3B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 1.3B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_1.3B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_1.3B_bf16.safetensors", + "size": "2.84GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 1.3B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 1.3B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_1.3B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_1.3B_fp16.safetensors", + "size": "2.84GB" + }, + + { + "name": "Comfy-Org/Wan2.1 t2v 14B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_bf16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 14B (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_fp8_e4m3fn.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.1 VAE", + "type": "vae", + "base": "Wan2.1", + "save_path": "vae", + "description": "Wan2.1 VAE model", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "size": "254MB" + }, + { + "name": "Comfy-Org/clip_vision_h.safetensors", + "type": "clip_vision", + "base": "clip_vision_h", + "save_path": "clip_vision", + "description": "clip_vision_h model for Wan2.1", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "clip_vision_h.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/clip_vision/clip_vision_h.safetensors", + "size": "1.26GB" + }, + + { + "name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v high noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_high_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v high noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v low noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_low_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v low noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v high noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_high_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v high noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v low noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_low_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v low noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 ti2v 5B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for ti2v 5B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_ti2v_5B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_ti2v_5B_fp16.safetensors", + "size": "10.0GB" + }, + + { + "name": "Comfy-Org/umt5_xxl_fp16.safetensors", + "type": "clip", + "base": "umt5_xxl", + "save_path": "text_encoders", + "description": "umt5_xxl_fp16 text encoder for Wan2.1", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "umt5_xxl_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp16.safetensors", + "size": "11.4GB" + }, + { + "name": "Comfy-Org/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "type": "clip", + "base": "umt5_xxl", + "save_path": "text_encoders", + "description": "umt5_xxl_fp8_e4m3fn_scaled text encoder for Wan2.1", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "size": "6.74GB" + }, + + { + "name": "lllyasviel/FramePackI2V_HY", + "type": "FramePackI2V", + "base": "FramePackI2V", + "save_path": "diffusers/lllyasviel", + "description": "[SNAPSHOT] This is the f1k1_x_g9_f1k1f2k2f16k4_td FramePack for HY. [w/You cannot download this item on ComfyUI-Manager versions below V3.18]", + "reference": "https://huggingface.co/lllyasviel/FramePackI2V_HY", + "filename": "", + "url": "lllyasviel/FramePackI2V_HY", + "size": "25.75GB" + }, + + { + "name": "LTX-Video Spatial Upscaler v0.9.7", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "Spatial upscaler model for LTX-Video. This model enhances the spatial resolution of generated videos.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-spatial-upscaler-0.9.7.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-spatial-upscaler-0.9.7.safetensors", + "size": "505MB" + }, + { + "name": "LTX-Video Temporal Upscaler v0.9.7", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "Temporal upscaler model for LTX-Video. This model enhances the temporal resolution and smoothness of generated videos.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-temporal-upscaler-0.9.7.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-temporal-upscaler-0.9.7.safetensors", + "size": "524MB" + }, + { + "name": "LTX-Video 13B v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "High-resolution quality LTX-Video 13B model.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-dev.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-dev.safetensors", + "size": "28.6GB" + }, + { + "name": "LTX-Video 13B FP8 v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized version of the LTX-Video 13B model, optimized for lower VRAM usage while maintaining high quality.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-dev-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-dev-fp8.safetensors", + "size": "15.7GB" + }, + { + "name": "LTX-Video 13B Distilled v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Distilled version of the LTX-Video 13B model, providing improved efficiency while maintaining high-resolution quality.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-distilled.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled.safetensors", + "size": "28.6GB" + }, + { + "name": "LTX-Video 13B Distilled FP8 v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized distilled version of the LTX-Video 13B model, optimized for even lower VRAM usage while maintaining quality.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-distilled-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-fp8.safetensors", + "size": "15.7GB" + }, + { + "name": "LTX-Video 2B Distilled v0.9.8", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video 2B distilled model v0.9.8 with improved prompt understanding and detail generation.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-2b-0.9.8-distilled.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-2b-0.9.8-distilled.safetensors", + "size": "6.34GB" + }, + { + "name": "LTX-Video 2B Distilled FP8 v0.9.8", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized LTX-Video 2B distilled model v0.9.8 with improved prompt understanding and detail generation, optimized for lower VRAM usage.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-2b-0.9.8-distilled-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-2b-0.9.8-distilled-fp8.safetensors", + "size": "4.46GB" + }, + { + "name": "LTX-Video 13B Distilled v0.9.8", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video 13B distilled model v0.9.8 with improved prompt understanding and detail generation.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.8-distilled.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.8-distilled.safetensors", + "size": "28.6GB" + }, + { + "name": "LTX-Video 13B Distilled FP8 v0.9.8", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized LTX-Video 13B distilled model v0.9.8 with improved prompt understanding and detail generation, optimized for lower VRAM usage.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.8-distilled-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.8-distilled-fp8.safetensors", + "size": "15.7GB" + }, + { + "name": "LTX-Video 13B Distilled LoRA v0.9.7", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "A LoRA adapter that transforms the standard LTX-Video 13B model into a distilled version when loaded.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-distilled-lora128.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-lora128.safetensors", + "size": "1.33GB" + }, + { + "name": "LTX-Video ICLoRA Depth 13B v0.9.7", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "In-Context LoRA (IC LoRA) for depth-controlled video-to-video generation with precise depth conditioning.", + "reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-depth-13b-0.9.7", + "filename": "ltxv-097-ic-lora-depth-control-comfyui.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-depth-13b-0.9.7/resolve/main/ltxv-097-ic-lora-depth-control-comfyui.safetensors", + "size": "81.9MB" + }, + { + "name": "LTX-Video ICLoRA Pose 13B v0.9.7", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "In-Context LoRA (IC LoRA) for pose-controlled video-to-video generation with precise pose conditioning.", + "reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-pose-13b-0.9.7", + "filename": "ltxv-097-ic-lora-pose-control-comfyui.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-pose-13b-0.9.7/resolve/main/ltxv-097-ic-lora-pose-control-comfyui.safetensors", + "size": "151MB" + }, + { + "name": "LTX-Video ICLoRA Canny 13B v0.9.7", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "In-Context LoRA (IC LoRA) for canny edge-controlled video-to-video generation with precise edge conditioning.", + "reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-canny-13b-0.9.7", + "filename": "ltxv-097-ic-lora-canny-control-comfyui.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-canny-13b-0.9.7/resolve/main/ltxv-097-ic-lora-canny-control-comfyui.safetensors", + "size": "81.9MB" + }, + { + "name": "LTX-Video ICLoRA Detailer 13B v0.9.8", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "A video detailer model on top of LTXV_13B_098_DEV trained on custom data using In-Context LoRA (IC LoRA) method.", + "reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-detailer-13b-0.9.8", + "filename": "ltxv-098-ic-lora-detailer-comfyui.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-detailer-13b-0.9.8/resolve/main/ltxv-098-ic-lora-detailer-comfyui.safetensors", + "size": "1.31GB" + }, + { + "name": "Latent Bridge Matching for Image Relighting", + "type": "diffusion_model", + "base": "LBM", + "save_path": "diffusion_models/LBM", + "description": "Latent Bridge Matching (LBM) Relighting model", + "reference": "https://huggingface.co/jasperai/LBM_relighting", + "filename": "LBM_relighting.safetensors", + "url": "https://huggingface.co/jasperai/LBM_relighting/resolve/main/model.safetensors", + "size": "5.02GB" } ] } diff --git a/node_db/README.md b/node_db/README.md new file mode 100644 index 00000000..378845c5 --- /dev/null +++ b/node_db/README.md @@ -0,0 +1,95 @@ +# ComfyUI-Manager: Node Database (node_db) + +This directory contains the JSON database files that power ComfyUI-Manager's legacy node registry system. While the manager is gradually transitioning to the online Custom Node Registry (CNR), these local JSON files continue to provide important metadata about custom nodes, models, and their integrations. + +## Directory Structure + +The node_db directory is organized into several subdirectories, each serving a specific purpose: + +- **dev/**: Development channel files with latest additions and experimental nodes +- **legacy/**: Historical/legacy nodes that may require special handling +- **new/**: New nodes that have passed initial verification but are still being evaluated +- **forked/**: Forks of existing nodes with modifications +- **tutorial/**: Example and tutorial nodes designed for learning purposes + +## Core Database Files + +Each subdirectory contains a standard set of JSON files: + +- **custom-node-list.json**: Primary database of custom nodes with metadata +- **extension-node-map.json**: Maps between extensions and individual nodes they provide +- **model-list.json**: Catalog of models that can be downloaded through the manager +- **alter-list.json**: Alternative implementations of nodes for compatibility or functionality +- **github-stats.json**: GitHub repository statistics for node popularity metrics + +## Database Schema + +### custom-node-list.json +```json +{ + "custom_nodes": [ + { + "title": "Node display name", + "name": "Repository name", + "reference": "Original repository if forked", + "files": ["GitHub URL or other source location"], + "install_type": "git", + "description": "Description of the node's functionality", + "pip": ["optional pip dependencies"], + "js": ["optional JavaScript files"], + "tags": ["categorization tags"] + } + ] +} +``` + +### extension-node-map.json +```json +{ + "extension-id": [ + ["list", "of", "node", "classes"], + { + "author": "Author name", + "description": "Extension description", + "nodename_pattern": "Optional regex pattern for node name matching" + } + ] +} +``` + +## Transition to Custom Node Registry (CNR) + +This local database system is being progressively replaced by the online Custom Node Registry (CNR), which provides: +- Real-time updates without manual JSON maintenance +- Improved versioning support +- Better security validation +- Enhanced metadata + +The Manager supports both systems simultaneously during the transition period. + +## Implementation Details + +- The database follows a channel-based architecture for different sources +- Multiple database modes are supported: Channel, Local, and Remote +- The system supports differential updates to minimize bandwidth usage +- Security levels are enforced for different node installations based on source + +## Usage in the Application + +The Manager's backend uses these database files to: + +1. Provide browsable lists of available nodes and models +2. Resolve dependencies for installation +3. Track updates and new versions +4. Map node classes to their source repositories +5. Assess risk levels for installation security + +## Maintenance Scripts + +Each subdirectory contains a `scan.sh` script that assists with: +- Scanning repositories for new nodes +- Updating metadata +- Validating database integrity +- Generating proper JSON structures + +This database system enables a flexible, secure, and comprehensive management system for the ComfyUI ecosystem while the transition to CNR continues. \ No newline at end of file diff --git a/node_db/dev/custom-node-list.json b/node_db/dev/custom-node-list.json index 9a4a7d38..73eff097 100644 --- a/node_db/dev/custom-node-list.json +++ b/node_db/dev/custom-node-list.json @@ -1,22 +1,7782 @@ { "custom_nodes": [ { - "author": "#NOTICE_1.13", - "title": "NOTICE: This channel is not the default channel.", - "reference": "https://github.com/ltdrdata/ComfyUI-Manager", - "files": [], + "author": "jerryname2022", + "title": "MegaTTS 3 [WIP]", + "reference": "https://github.com/jerryname2022/ComfyUI-MegaTTS3", + "files": [ + "https://github.com/jerryname2022/ComfyUI-MegaTTS3" + ], "install_type": "git-clone", - "description": "If you see this message, your ComfyUI-Manager is outdated.\nDev channel provides only the list of the developing nodes. If you want to find the complete node list, please go to the Default channel." + "description": "NODES: MegaTTS3 Model Loader, MegaTTS3 Zero Shot, Text Editor\nNOTE: The files in the repo are not organized." + }, + { + "author": "punicfaith", + "title": "ComfyUI-GoogleAIStudio", + "reference": "https://github.com/punicfaith/ComfyUI-GoogleAIStudio", + "files": [ + "https://github.com/punicfaith/ComfyUI-GoogleAIStudio" + ], + "install_type": "git-clone", + "description": "NODES: Google Gemini Prompt" + }, + { + "author": "numq", + "title": "comfyui-camera-capture-node", + "reference": "https://github.com/numq/comfyui-camera-capture-node", + "files": [ + "https://github.com/numq/comfyui-camera-capture-node" + ], + "install_type": "git-clone", + "description": "NODES: Camera Capture" + }, + { + "author": "maoper11", + "title": "ComfyUI_Inteliweb_nodes", + "reference": "https://github.com/maoper11/comfyui_inteliweb_nodes", + "files": [ + "https://github.com/maoper11/comfyui_inteliweb_nodes" + ], + "install_type": "git-clone", + "description": "System Check (Inteliweb): RAM/VRAM live, Free RAM/VRAM buttons, Flash-Attn check." + }, + { + "author": "casterpollux", + "title": "ComfyUI Affine Transform Mapper [WIP]", + "reference": "https://github.com/GuardSkill/ComfyUI-AffineImage", + "files": [ + "https://github.com/GuardSkill/ComfyUI-AffineImage" + ], + "install_type": "git-clone", + "description": "Insert one image into specific location on another image by affine transform.\nNOTE: The files in the repo are not organized." + }, + { + "author": "casterpollux", + "title": "ComfyUI USO Custom Node [WIP]", + "reference": "https://github.com/casterpollux/ComfyUI-USO", + "files": [ + "https://github.com/casterpollux/ComfyUI-USO" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node implementation of ByteDance's USO (Unified Style and Subject-Driven Generation) model, which enables advanced style transfer and subject preservation using FLUX.\nNOTE: The files in the repo are not organized." + }, + { + "author": "Fabio Sarracino", + "title": "VibeVoice ComfyUI [NAME CONFLICT]", + "reference": "https://github.com/Enemyx-net/VibeVoice-ComfyUI", + "files": [ + "https://github.com/Enemyx-net/VibeVoice-ComfyUI" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper for Microsoft VibeVoice TTS model. Supports single speaker, multi-speaker, and text file loading" + }, + { + "author": "chaserhkj", + "title": "Chaser's Custom Nodes", + "reference": "https://github.com/chaserhkj/ComfyUI-Chaser-nodes", + "files": [ + "https://github.com/chaserhkj/ComfyUI-Chaser-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Upload image(s) to WebDAV, Upload video as WebM to WebDAV, Load image from WebDAV, Evaluate S-Expr with integer output, Evaluate S-Expr with float output" + }, + { + "author": "numq", + "title": "comfyui-camera-capture-node", + "reference": "https://github.com/numq/comfyui-camera-capture-node", + "files": [ + "https://github.com/numq/comfyui-camera-capture-node" + ], + "install_type": "git-clone", + "description": "NODES: Camera Capture" + }, + { + "author": "pickles", + "title": "PyPromptGenerator [UNSAFE]", + "reference": "https://github.com/pickles/ComfyUI-PyPromptGenerator", + "files": [ + "https://github.com/pickles/ComfyUI-PyPromptGenerator" + ], + "install_type": "git-clone", + "description": "Generate positve/negative prompt via python script. [w/This node allows you to execute arbitrary code via the workflow.]" + }, + { + "author": "bmgjet", + "title": "ComfyUI GPU Power Limit Node", + "reference": "https://github.com/bmgjet/comfyui-powerlimit", + "files": [ + "https://github.com/bmgjet/comfyui-powerlimit" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node to change NVIDIA GPU power limits dynamically while passing through any input. NOTE: Windows only.[w/This node warns if ComfyUI is not running as administrator/root — it does not attempt to elevate the process.]" + }, + { + "author": "Karlmeister", + "title": "comfyui-karlmeister-nodes-suit", + "reference": "https://github.com/Karlmeister/comfyui-karlmeister-nodes-suit", + "files": [ + "https://github.com/Karlmeister/comfyui-karlmeister-nodes-suit" + ], + "install_type": "git-clone", + "description": "NODES: Seed with Filename Generator, KSampler Config Selector, KSampler Config Selector With Tuple Output, KSampler Config Tuple, Text Concatenator, A If Not None., Split a string. " + }, + { + "author": "ServiceStack", + "title": "classifier-agent", + "reference": "https://github.com/ServiceStack/classifier-agent", + "files": [ + "https://github.com/ServiceStack/classifier-agent" + ], + "install_type": "git-clone", + "description": "NODES: Classifiy Image, Classifiy Audio" + }, + { + "author": "elfatherbrown", + "title": "Real-CUGAN ComfyUI Custom Node [WIP]", + "reference": "https://github.com/elfatherbrown/comfyui-realcugan-node", + "files": [ + "https://github.com/elfatherbrown/comfyui-realcugan-node" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node implementation for Real-CUGAN anime/illustration upscaling models from Bilibili's AI Lab.\nNOTE: The files in the repo are not organized." + }, + { + "author": "sthao42", + "title": "ComfyUI Melodkeet TTS", + "reference": "https://github.com/sthao42/comfyui-melodkeet-tts", + "files": [ + "https://github.com/sthao42/comfyui-melodkeet-tts" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that provides a simple and direct way to use OpenAI-compatible Text-to-Speech (TTS) services." + }, + { + "author": "Jairodaniel-17", + "title": "ComfyUI-traductor-offline", + "reference": "https://github.com/Jairodaniel-17/ComfyUI-traductor-offline", + "files": [ + "https://github.com/Jairodaniel-17/ComfyUI-traductor-offline" + ], + "install_type": "git-clone", + "description": "NODES: Traductor: CLIP Texto (EN↔ES), Traductor: Prompt Texto (EN↔ES)" + }, + { + "author": "aesethtics", + "title": "ComfyUI-OpenPoser [WIP]", + "reference": "https://github.com/aesethtics/ComfyUI-OpenPoser", + "files": [ + "https://github.com/aesethtics/ComfyUI-OpenPoser" + ], + "install_type": "git-clone", + "description": "ComfyUI-OpenPoser is a custom node extension for ComfyUI that provides an interactive pose editor.\nIt allows you to freely define 18 OpenPose-style keypoints (joints) directly in the ComfyUI front-end without bone-length constraints! The node generates an image tensor representing the skeleton that can be passed to models which support OpenPose/DWPose/etc input." + }, + { + "author": "dead-matrix", + "title": "ComfyUI-RMBG-Custom", + "reference": "https://github.com/dead-matrix/ComfyUI-RMBG-Custom", + "files": [ + "https://github.com/dead-matrix/ComfyUI-RMBG-Custom" + ], + "install_type": "git-clone", + "description": "NODES: RMBG Custom" + }, + { + "author": "gmammolo", + "title": "comfyui-gmammolo", + "reference": "https://github.com/gmammolo/comfyui-gmammolo", + "files": [ + "https://github.com/gmammolo/comfyui-gmammolo" + ], + "install_type": "git-clone", + "description": "NODES: Simple Textbox, Filter Text Prompt" + }, + { + "author": "543872524", + "title": "ComfyUI_crdong", + "reference": "https://github.com/543872524/ComfyUI_crdong", + "files": [ + "https://github.com/543872524/ComfyUI_crdong" + ], + "install_type": "git-clone", + "description": "NODES: INT Constant, Simple Int Math Handle, Simple Json Array Handle, Simple Json Object Handle, Select Image Size, Video Time & FPS, Video Frame Size, Wan22 Step Handle, Prompt Selector String, Prompt Example Node, Prompt Join or List, Prompt List, CRD Audio Length Node, ..." + }, + { + "author": "Saganaki22", + "title": "ComfyUI YTDL Nodes [WIP]", + "reference": "https://github.com/Saganaki22/ComfyUI-ytdl_nodes", + "files": [ + "https://github.com/Saganaki22/ComfyUI-ytdl_nodes" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI nodes for downloading, converting, and previewing audio/video from YouTube and 1,000+ other platforms" + }, + { + "author": "LSDJesus", + "title": "ComfyUI-Pyrite-Core [WIP]", + "reference": "https://github.com/LSDJesus/ComfyUI-Pyrite-Core", + "files": [ + "https://github.com/LSDJesus/ComfyUI-Pyrite-Core" + ], + "install_type": "git-clone", + "description": "This repository contains ComfyUI-Pyrite-Core, a bespoke collection of custom nodes for ComfyUI, engineered for power, flexibility, and a ruthlessly efficient workflow. These tools are born from a collaborative project between a human architect and their AI muse, Pyrite.\nNOTE: The files in the repo are not organized." + }, + { + "author": "comfyscript", + "title": "ComfyUI-CloudClient", + "reference": "https://github.com/comfyscript/ComfyUI-CloudClient", + "files": [ + "https://github.com/comfyscript/ComfyUI-CloudClient" + ], + "install_type": "git-clone", + "description": "Design to Easily Remote Operate ComfyUI in the Cloud" + }, + { + "author": "RobbertB80", + "title": "ComfyUI SharePoint/OneDrive Upload Node [UNSAFE]", + "reference": "https://github.com/RobbertB80/ComfyUI-SharePoint-Upload", + "files": [ + "https://github.com/RobbertB80/ComfyUI-SharePoint-Upload" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that automatically uploads generated images to SharePoint or OneDrive document libraries.[w/This nodepack contains a node that can write files to an arbitrary path.]" + }, + { + "author": "RegulusAlpha", + "title": "ComfyUI Dynamic Prompting Simplified [WIP]", + "reference": "https://github.com/RegulusAlpha/ComfyUI-DynPromptSimplified", + "files": [ + "https://github.com/RegulusAlpha/ComfyUI-DynPromptSimplified" + ], + "install_type": "git-clone", + "description": "A minimal dynamic prompting + mirrored wildcards node for ComfyUI.\nNOTE: The files in the repo are not organized." + }, + { + "author": "jtrue", + "title": "MaskTools", + "reference": "https://github.com/jtrue/ComfyUI-MaskTools", + "files": [ + "https://github.com/jtrue/ComfyUI-MaskTools" + ], + "install_type": "git-clone", + "description": "Pixel-selection tools (masks) for ComfyUI — modular." + }, + { + "author": "nadushu", + "title": "comfyui-handy-nodes [UNSAFE]", + "reference": "https://github.com/nadushu/comfyui-handy-nodes", + "files": [ + "https://github.com/nadushu/comfyui-handy-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Empty Random Latent Image, Filename Prompt Extractor, My Image Save, Queue Batch Fixed Seed, Text Cleaner, Text Splitter[w/This nodepack contains a node that can write files to an arbitrary path.]" + }, + { + "author": "borisfaley", + "title": "ComfyUI-ACES-EXR-OCIOr [UNSAFE]", + "reference": "https://github.com/borisfaley/ComfyUI-ACES-EXR-OCIO", + "files": [ + "https://github.com/borisfaley/ComfyUI-ACES-EXR-OCIO" + ], + "install_type": "git-clone", + "description": "Save images and videos in ACESCg or ACES-2065-1[w/This nodepack contains a node that can write files to an arbitrary path.]" + }, + { + "author": "NSFW-API", + "title": "ComfyUI-Embedding-Delta-Adapter", + "reference": "https://github.com/NSFW-API/ComfyUI-Embedding-Delta-Adapter", + "files": [ + "https://github.com/NSFW-API/ComfyUI-Embedding-Delta-Adapter" + ], + "install_type": "git-clone", + "description": "NODES: Load EmbDelta Adapter, Apply EmbDelta (WAN TextEmbeds)" + }, + { + "author": "clcimir", + "title": "FileTo64", + "reference": "https://github.com/clcimir/FileTo64", + "files": [ + "https://github.com/clcimir/FileTo64" + ], + "install_type": "git-clone", + "description": "ComfyUI FileTo64" + }, + { + "author": "chaserhkj", + "title": "ComfyUI Chaser Custom Nodes", + "reference": "https://github.com/chaserhkj/ComfyUI-Chaser-nodes", + "files": [ + "https://github.com/chaserhkj/ComfyUI-Chaser-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Upload image(s) to WebDAV, Upload video as WebM to WebDAV, Load image from WebDAV" + }, + { + "author": "LittleTechPomp", + "title": "comfyui-pixxio", + "reference": "https://github.com/LittleTechPomp/comfyui-pixxio", + "files": [ + "https://github.com/LittleTechPomp/comfyui-pixxio" + ], + "install_type": "git-clone", + "description": "NODES: Load Image from Pixx.io, Auto-Upload Image to Pixxio Collection" + }, + { + "author": "RomanticQq", + "title": "ComfyUI-Groudingdino-Sam", + "reference": "https://github.com/RomanticQq/ComfyUI-Groudingdino-Sam", + "files": [ + "https://github.com/RomanticQq/ComfyUI-Groudingdino-Sam" + ], + "install_type": "git-clone", + "description": "NODES: GroundingDino, GroundedSam2CutGaussian" + }, + { + "author": "Firetheft", + "title": "ComfyUI Local Media Manager [UNSAFE]", + "reference": "https://github.com/Firetheft/ComfyUI_Local_Image_Gallery", + "files": [ + "https://github.com/Firetheft/ComfyUI_Local_Image_Gallery" + ], + "install_type": "git-clone", + "description": "The Ultimate Local File Manager for Images, Videos, and Audio in ComfyUI.[w/This nodepack provides functionality to access files through an endpoint.]" + }, + { + "author": "Omario92", + "title": "ComfyUI-OmarioNodes", + "reference": "https://github.com/Omario92/ComfyUI-OmarioNodes", + "files": [ + "https://github.com/Omario92/ComfyUI-OmarioNodes" + ], + "install_type": "git-clone", + "description": "NODES: Dual Endpoint Color Blend (by Frames)" + }, + { + "author": "locphan201", + "title": "ComfyUI-Alter-Nodes", + "reference": "https://github.com/locphan201/ComfyUI-Alter-Nodes", + "files": [ + "https://github.com/locphan201/ComfyUI-Alter-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Alter MMAudio Config, Alter MMAudio Model Loader, Alter MMAudio Feature Utils, Alter MMAudio Sampler" + }, + { + "author": "mrCodinghero", + "title": "ComfyUI File Transfer Plugin (comfyui-rsync-plugin) [UNSAFE]", + "reference": "https://github.com/tg-tjmitchell/comfyui-rsync-plugin", + "files": [ + "https://github.com/tg-tjmitchell/comfyui-rsync-plugin" + ], + "install_type": "git-clone", + "description": "Lightweight helper for using rsync and rclone from ComfyUI with a dedicated UI panel. This repository contains Python wrappers for file transfer CLI tools and a ComfyUI plugin that adds a user-friendly panel for file transfer operations." + }, + { + "author": "mrCodinghero", + "title": "ComfyUI-Codinghero", + "reference": "https://github.com/mrCodinghero/ComfyUI-Codinghero", + "files": [ + "https://github.com/mrCodinghero/ComfyUI-Codinghero" + ], + "install_type": "git-clone", + "description": "NODES: Image Size, Video Settings" + }, + { + "author": "Vsolon", + "title": "ComfyUI-CBZ-Pack [UNSAFE]", + "reference": "https://github.com/Vsolon/ComfyUI-CBZ-Pack", + "files": [ + "https://github.com/Vsolon/ComfyUI-CBZ-Pack" + ], + "install_type": "git-clone", + "description": "Nodes for Handling CBZ MetaData and Images as List or Bash.[w/This nodepack contains a node that has a vulnerability allowing access to arbitrary file paths.]" + }, + { + "author": "odedgranot", + "title": "ComfyUI Video Save Node [UNSAFE]", + "reference": "https://github.com/odedgranot/comfyui_video_save_node", + "files": [ + "https://github.com/odedgranot/comfyui_video_save_node" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node that saves video outputs as H.264 .mp4 files with unique naming and returns the file path as a string.[w/This nodepack contains a node that has a vulnerability allowing write to arbitrary file paths.]" + }, + { + "author": "odedgranot", + "title": "ComfyUI FFmpeg Node [UNSAFE]", + "reference": "https://github.com/odedgranot/comfyui-ffmpeg-node", + "files": [ + "https://github.com/odedgranot/comfyui-ffmpeg-node" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node that allows you to run FFmpeg commands directly within your ComfyUI workflows. [w/This nodepack contains a vulnerability that allows remote code execution.]" + }, + { + "author": "viik420", + "title": "Model Copy Node for ComfyUI [UNSAFE]", + "reference": "https://github.com/apeirography/ModelCopyNode", + "files": [ + "https://github.com/apeirography/ModelCopyNode" + ], + "install_type": "git-clone", + "description": "A simple ComfyUI custom node that copies model files from the models/ folder to the output/ folder.[w/This nodepack has a vulnerability that allows writing files to arbitrary paths.]" + }, + { + "author": "Maff3u", + "title": "MattiaNodes - Points Editor On Cropped [WIP]", + "reference": "https://github.com/Maff3u/MattiaNodes", + "files": [ + "https://github.com/Maff3u/MattiaNodes" + ], + "install_type": "git-clone", + "description": "A standalone ComfyUI custom node for interactive coordinate editing with crop factor correction.\nNOTE: The files in the repo are not organized." + }, + { + "author": "viik420", + "title": "AdvancedModelDownloader [UNSAFE]", + "reference": "https://github.com/viik420/AdvancedModelDownloader", + "files": [ + "https://github.com/viik420/AdvancedModelDownloader" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that adds a powerful, integrated downloader to the main menu, complete with an automatic update checker.[w/This nodepack provides functionality to access files through an endpoint.]" + }, + { + "author": "DenRakEiw", + "title": "Comfyui-Aspect-Ratio-Processor [WIP]", + "reference": "https://github.com/DenRakEiw/Comfyui-Aspect-Ratio-Processor", + "files": [ + "https://github.com/DenRakEiw/Comfyui-Aspect-Ratio-Processor" + ], + "install_type": "git-clone", + "description": "Comfyui Aspect Ratio Processor 2:3 / 3:2\nNOTE: The files in the repo are not organized." + }, + { + "author": "yuvraj108c", + "title": "ComfyUI HYPIR [NAME CONFLICT]", + "reference": "https://github.com/yuvraj108c/ComfyUI-HYPIR", + "files": [ + "https://github.com/yuvraj108c/ComfyUI-HYPIR" + ], + "install_type": "git-clone", + "description": "This project is a ComfyUI wrapper for [a/HYPIR](https://github.com/XPixelGroup/HYPIR) (Harnessing Diffusion-Yielded Score Priors for Image Restoration)" + }, + { + "author": "miabrahams", + "title": "ComfyUI-WebAutomation [UNSAFE]", + "reference": "https://github.com/miabrahams/ComfyUI-WebAutomation", + "files": [ + "https://github.com/miabrahams/ComfyUI-WebAutomation" + ], + "install_type": "git-clone", + "description": "Automation for ComfyUI Web UI [w/This nodepack provides functionality to access files through an endpoint.]" + }, + { + "author": "kblueleaf", + "title": "HDM [WIP]", + "reference": "https://github.com/KohakuBlueleaf/HDM-ext", + "files": [ + "https://github.com/KohakuBlueleaf/HDM-ext" + ], + "install_type": "git-clone", + "description": "HDM(HomeDiffusionModel) Extension" + }, + { + "author": "Rizzlord", + "title": "ComfyUI-SeqTex", + "reference": "https://github.com/Rizzlord/ComfyUI-SeqTex", + "files": [ + "https://github.com/Rizzlord/ComfyUI-SeqTex" + ], + "install_type": "git-clone", + "description": "NODES: SeqTex Load Mesh, SeqTex Loader, SeqTex Step 1: Process Mesh, SeqTex Step 2: Generate Condition, SeqTex Step 3: Generate Texture, SeqTex Step 4: Apply Texture to Trimesh" + }, + { + "author": "BiodigitalJaz", + "title": "ComfyUI-Dafaja-Nodes [WIP]", + "reference": "https://github.com/BiodigitalJaz/ComfyUI-Dafaja-Nodes", + "files": [ + "https://github.com/BiodigitalJaz/ComfyUI-Dafaja-Nodes" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI nodes for 3D mesh processing and STL export\nNOTE: The files in the repo are not organized." + }, + { + "author": "ervinne13", + "title": "ComfyUI-Metadata-Hub", + "reference": "https://github.com/ervinne13/ComfyUI-Metadata-Hub", + "files": [ + "https://github.com/ervinne13/ComfyUI-Metadata-Hub" + ], + "install_type": "git-clone", + "description": "NODES: Metadata Hub, Save Image With Metadata" + }, + { + "author": "mico-world", + "title": "comfyui_mico_node", + "reference": "https://github.com/mico-world/comfyui_mico_node", + "files": [ + "https://github.com/mico-world/comfyui_mico_node" + ], + "install_type": "git-clone", + "description": "NODES: HF UNET Loader" + }, + { + "author": "GuusF", + "title": "Comfyui_CrazyMaths [WIP]", + "reference": "https://github.com/GuusF/Comfyui_CrazyMaths", + "files": [ + "https://github.com/GuusF/Comfyui_CrazyMaths" + ], + "install_type": "git-clone", + "description": "A custom nodepack with a bunch of nodes that helps you generate fun math paterns directly inside of comfyui for masking or other reasons.\nNOTE: The files in the repo are not organized." + }, + { + "author": "TimothyCMeehan", + "title": "ComfyUI CK3 Presets", + "reference": "https://github.com/TimothyCMeehan/comfyui-ck3-presets", + "files": [ + "https://github.com/TimothyCMeehan/comfyui-ck3-presets" + ], + "install_type": "git-clone", + "description": "ComfyUI custom nodes for Crusader Kings III modding - size presets, image resize, style helpers" + }, + { + "author": "driftjohnson", + "title": "DaimalyadNodes [WIP]", + "reference": "https://github.com/MushroomFleet/DJZ-Nodes", + "files": [ + "https://github.com/MushroomFleet/DJZ-Nodes" + ], + "install_type": "git-clone", + "description": "AspectSize and 100 more nodes\nNOTE: The files in the repo are not organized." + }, + { + "author": "tnil25", + "title": "ComfyUI-TJNodes [WIP]", + "reference": "https://github.com/tnil25/ComfyUI-TJNodes", + "files": [ + "https://github.com/tnil25/ComfyUI-TJNodes" + ], + "install_type": "git-clone", + "description": "NODES: Point Tracker\nNOTE: The files in the repo are not organized." + }, + { + "author": "zhu733756", + "title": "ivan_knows [UNSAFE]", + "reference": "https://github.com/Babiduba/ivan_knows", + "files": [ + "https://github.com/Babiduba/ivan_knows" + ], + "install_type": "git-clone", + "description": "NODES: Role Selector, Save Absolute. [w/This nodepack contains a node that has a vulnerability allowing write to arbitrary file paths.]" + }, + { + "author": "zhu733756", + "title": "Comfyui-Anything-Converter [UNSAFE]", + "reference": "https://github.com/zhu733756/Comfyui-Anything-Converter", + "files": [ + "https://github.com/zhu733756/Comfyui-Anything-Converter" + ], + "install_type": "git-clone", + "description": "This is a custom node extension designed for ComfyUI, providing JSON/TEXT/IMG handling functionality etc.[w/This nodepack contains a node that has a vulnerability allowing write to arbitrary file paths.]" + }, + { + "author": "twj515895394", + "title": "ComfComfyUI-LowMemVideoSuite [UNSAFE]", + "reference": "https://github.com/twj515895394/ComfyUI-LowMemVideoSuite", + "files": [ + "https://github.com/twj515895394/ComfyUI-LowMemVideoSuite" + ], + "install_type": "git-clone", + "description": "This is a low-memory video composition plugin designed for ComfyUI, which uses FFmpeg to combine disk-stored frame images into a video, avoiding loading all frames into memory at once.[w/This nodepack contains a node that has a vulnerability allowing write to arbitrary file paths.]" + }, + { + "author": "chenpipi0807", + "title": "ComfyUI-InstantCharacterFlux [WIP]", + "reference": "https://github.com/chenpipi0807/ComfyUI-InstantCharacterFlux", + "files": [ + "https://github.com/chenpipi0807/ComfyUI-InstantCharacterFlux" + ], + "install_type": "git-clone", + "description": "NODES: IC → FLUX One-Knob, IC Strength Controller (InstantCharacter → FLUX), Load IC Weights, Load SigLIP Vision, Load DINOv2 Vision, Encode Reference Image (InstantCharacter)\nNOTE: The files in the repo are not organized." + }, + { + "author": "Randomwalkforest", + "title": "Comfyui-Koi-Toolkit", + "reference": "https://github.com/Randomwalkforest/Comfyui-Koi-Toolkit", + "files": [ + "https://github.com/Randomwalkforest/Comfyui-Koi-Toolkit" + ], + "install_type": "git-clone", + "description": "Koi Toolkit provides advanced nodes" + }, + { + "author": "Yuan-ManX", + "title": "ComfyUI-Step1X-Edit [NAME CONFLICT]", + "reference": "https://github.com/Yuan-ManX/ComfyUI-Step1X-Edit", + "files": [ + "https://github.com/Yuan-ManX/ComfyUI-Step1X-Edit" + ], + "install_type": "git-clone", + "description": "Make Step1X-Edit avialbe in ComfyUI." + }, + { + "author": "hben35096", + "title": "hben35096/ComfyUI-ToolBox [NAME CONFLICT]", + "id": "hben-toolbox", + "reference": "https://github.com/hben35096/ComfyUI-ToolBox", + "files": [ + "https://github.com/hben35096/ComfyUI-ToolBox" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for ComfyUI, including audio/video processing, file uploads, and AI image generation." + }, + { + "author": "locphan201", + "title": "ComfyUI-Alternatives", + "reference": "https://github.com/locphan201/ComfyUI-Alternatives", + "files": [ + "https://github.com/locphan201/ComfyUI-Alternatives" + ], + "install_type": "git-clone", + "description": "NODES: LoraPreLoader, LoraApplier" + }, + { + "author": "tg-tjmitchell", + "title": "ComfyUI Manager Package Lister", + "reference": "https://github.com/tg-tjmitchell/comfyui-custom-node-lister", + "files": [ + "https://github.com/tg-tjmitchell/comfyui-custom-node-lister" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that lists installed custom nodepackages in ComfyUI Manager compatible format, providing the exact package names and install commands for sharing or reinstalling." + }, + { + "author": "duckmartians", + "title": "Duck_Nodes [UNSAFE]", + "reference": "https://github.com/duckmartians/Duck_Nodes", + "files": [ + "https://github.com/duckmartians/Duck_Nodes" + ], + "install_type": "git-clone", + "description": "Load data from Google Sheets, Google Docs, Excel, Word, and TXT with built-in login system for ComfyUI.[w/This nodepack contains a node with a vulnerability that allows reading files from arbitrary paths.]" + }, + { + "author": "xsai-collab", + "title": "ComfyUI-CombineVideoAndSubtitle", + "reference": "https://github.com/xsai-collab/ComfyUI-CombineVideoAndSubtitle", + "files": [ + "https://github.com/xsai-collab/ComfyUI-CombineVideoAndSubtitle" + ], + "install_type": "git-clone", + "description": "NODES: Combine Video and Subtitle" + }, + { + "author": "Lovzu", + "title": "ComfyUI-Qwen [NAME CONFLICT]", + "reference": "https://github.com/Lovzu/ComfyUI-Qwen", + "files": [ + "https://github.com/Lovzu/ComfyUI-Qwen" + ], + "install_type": "git-clone", + "description": "This custom node Qwen3 designed to integrate with a GPT-based system under the category GPT_QWEN/Qwen. It serves as an interface to interact with the Qwen language model, specifically the 'Qwen/Qwen3-4B-Instruct-2507' variant." + }, + { + "author": "MatthewClayHarrison", + "title": "MetaMan - Universal AI Image Metadata Manager [UNSAFE]", + "reference": "https://github.com/MatthewClayHarrison/ComfyUI-MetaMan", + "files": [ + "https://github.com/MatthewClayHarrison/ComfyUI-MetaMan" + ], + "install_type": "git-clone", + "description": "First universal metadata system for AI image generation, with template-driven architecture allowing easy extension to new services; comprehensive dependency tracking with automatic download resolution; lossless conversion between platform formats where possible; future-proof design with extensible schema and validation system.[w/This nodepack has a vulnerability that allows remote access to arbitrary file paths.]" + }, + { + "author": "Charonartist", + "title": "ComfyUI LoRA Random Selector", + "reference": "https://github.com/Charonartist/comfyui-lora-random-selector", + "files": [ + "https://github.com/Charonartist/comfyui-lora-random-selector" + ], + "install_type": "git-clone", + "description": "NODES: WanMoeKSampler, WanMoeKSamplerAdvanced" + }, + { + "author": "jtydhr88", + "title": "ComfyUI-StableStudio [WIP]", + "reference": "https://github.com/jtydhr88/ComfyUI-StableStudio", + "files": [ + "https://github.com/jtydhr88/ComfyUI-StableStudio" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI plugin that provides a user interface of StableStudio, originally developed by Stability-AI [a/StableStudio](https://github.com/Stability-AI/StableStudio)" + }, + { + "author": "Charonartist", + "title": "ComfyUI LoRA Random Selector [WIP]", + "reference": "https://github.com/Charonartist/comfyui-lora-random-selector", + "files": [ + "https://github.com/Charonartist/comfyui-lora-random-selector" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that randomly selects LoRA files by category and automatically applies corresponding trigger words.\nNOTE: The files in the repo are not organized." + }, + { + "author": "idoru", + "title": "Filestash Upload Node [UNSAFE]", + "reference": "https://github.com/idoru/ComfyUI-SKCFI-NetworkFileIO", + "files": [ + "https://github.com/idoru/ComfyUI-SKCFI-NetworkFileIO" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for uploading files to Filestash server.[w/This nodepack has a vulnerability that allows remote access to arbitrary file paths.]" + }, + { + "author": "HWDigi", + "title": "Camera Factory Station [WIP]", + "reference": "https://github.com/HWDigi/Camera_Factory_Station_comfyui", + "files": [ + "https://github.com/HWDigi/Camera_Factory_Station_comfyui" + ], + "install_type": "git-clone", + "description": "Universal Photography & Visual Enhancement Suite for ComfyUI\nThe most comprehensive collection of 5 specialized nodes providing 600+ professional options for complete photography coverage. Designed to handle everything anyone needs to create professional images across all formats, platforms, and industries - from basic snapshots to high-end commercial photography." + }, + { + "author": "sschleis", + "title": "sschl-comfyui-notes", + "reference": "https://github.com/sschleis/sschl-comfyui-notes", + "files": [ + "https://github.com/sschleis/sschl-comfyui-notes" + ], + "install_type": "git-clone", + "description": "NODES: Add Numbers, Float to String, Input Text, Show Text, Combine Strings, Text Appender, SSchl Text Encoder, Character, Connector" + }, + { + "author": "KY-2000", + "title": "comfyui-ksampler-tester-loop", + "reference": "https://github.com/KY-2000/comfyui-ksampler-tester-loop", + "files": [ + "https://github.com/KY-2000/comfyui-ksampler-tester-loop" + ], + "install_type": "git-clone", + "description": "Batch samplers, schedulers, cfg, shift and steps tester custom node, automatic looping functionality for Ksampler node" + }, + { + "author": "xgfone", + "title": "ComfyUI_RasterCardMaker", + "reference": "https://github.com/xgfone/ComfyUI_RasterCardMaker", + "files": [ + "https://github.com/xgfone/ComfyUI_RasterCardMaker" + ], + "install_type": "git-clone", + "description": "NODES: Raster Card Maker" + }, + { + "author": "majocola", + "title": "Standbybutton", + "reference": "https://github.com/majocola/comfyui-standbybutton", + "files": [ + "https://github.com/majocola/comfyui-standbybutton" + ], + "install_type": "git-clone", + "description": "A Simple NODE for a Standbybutton in ComyUi. It works also with the webinterface." + }, + { + "author": "brandonkish", + "title": "comfyUI-extractable-text [WIP]", + "reference": "https://github.com/brandonkish/comfyUI-extractable-text", + "files": [ + "https://github.com/brandonkish/comfyUI-extractable-text" + ], + "install_type": "git-clone", + "description": "NODES: Save Image With Description, Save Image To Folder, Load Image With Description, LoRA Testing Node, Get Smaller Of Two Numbers, Get Larger Of Two Numbers\nNOTE: The files in the repo are not organized." + }, + { + "author": "Dream-Pixels-Forge", + "title": "ComfyUI-Mzikart-Vocal [WIP]", + "reference": "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Vocal", + "files": [ + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Vocal" + ], + "install_type": "git-clone", + "description": "Vocals mastering nodes for ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "Dream-Pixels-Forge", + "title": "ComfyUI-RendArt-Nodes", + "reference": "https://github.com/Dream-Pixels-Forge/ComfyUI-RendArt-Nodes", + "files": [ + "https://github.com/Dream-Pixels-Forge/ComfyUI-RendArt-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: RendArt Ultimate, RendArt Pro (Legacy)" + }, + { + "author": "Karniverse", + "title": "ComfyUI-Randomselector", + "reference": "https://github.com/Karniverse/ComfyUI-Randomselector", + "files": [ + "https://github.com/Karniverse/ComfyUI-Randomselector" + ], + "install_type": "git-clone", + "description": "A node that dynamically accepts multiple inputs of the same type and selects one based on choice or randomly." + }, + { + "author": "thaakeno", + "title": "comfyui-universal-asset-downloader [UNSAFE/WIP]", + "reference": "https://github.com/thaakeno/comfyui-universal-asset-downloader", + "files": [ + "https://github.com/thaakeno/comfyui-universal-asset-downloader" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that intelligently downloads assets from Civitai, Hugging Face, and MEGA.\nNOTE: The files in the repo are not organized.[w/This nodepack has a vulnerability that allows remote access to arbitrary file paths.]" + }, + { + "author": "77oussam", + "title": "Alo77 - ComfyUI Custom Nodes Collection [WIP]", + "reference": "https://github.com/77oussam/Aio77-Comfyui", + "files": [ + "https://github.com/77oussam/Aio77-Comfyui" + ], + "install_type": "git-clone", + "description": "A comprehensive collection of three powerful ComfyUI custom nodes for advanced image processing workflows.\nNOTE: The files in the repo are not organized." + }, + { + "author": "xgfone", + "title": "ComfyUI_FaceToMask", + "reference": "https://github.com/xgfone/ComfyUI_FaceToMask", + "files": [ + "https://github.com/xgfone/ComfyUI_FaceToMask" + ], + "install_type": "git-clone", + "description": "NODES: Face To Mask(Copy)" + }, + { + "author": "JasonW146", + "title": "JasonW146", + "reference": "https://github.com/pururin777/ComfyUI-Manual-Openpose", + "files": [ + "https://github.com/pururin777/ComfyUI-Manual-Openpose" + ], + "install_type": "git-clone", + "description": "ComfyUI node that provides the ability to manually map out Controlnet Openpose landmarks for a batch of images." + }, + { + "author": "slezica", + "title": "slezica/ComfyUI Personal Nodes", + "reference": "https://github.com/slezica/comfyui-personal", + "files": [ + "https://github.com/slezica/comfyui-personal" + ], + "install_type": "git-clone", + "description": "A custom node collection for ComfyUI containing simplified workflow nodes and enhanced UI features for my personal use." + }, + { + "author": "boggerrr1110", + "title": "Boggerrr Nodes [WIP]", + "reference": "https://github.com/mamamia1110/comfyui-boggerrr-nodes", + "files": [ + "https://github.com/mamamia1110/comfyui-boggerrr-nodes" + ], + "install_type": "git-clone", + "description": "A node for comfyui to use seedream3.0 and seededit3.0\nNOTE: The files in the repo are not organized." + }, + { + "author": "jonathan-bryant", + "title": "ComfyUI-ImageStraightener [WIP]", + "reference": "https://github.com/jonathan-bryant/ComfyUI-ImageStraightener", + "files": [ + "https://github.com/jonathan-bryant/ComfyUI-ImageStraightener" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that automatically detects and corrects image tilt/rotation to straighten images. This node uses computer vision techniques to detect lines in the image and calculate the optimal rotation angle to straighten the image.\nNOTE: The files in the repo are not organized." + }, + { + "author": "adithis197", + "title": "ComfyUI-multimodal-CaptionToVideoGen [WIP]", + "reference": "https://github.com/adithis197/ComfyUI-multimodal-CaptionToVideoGen", + "files": [ + "https://github.com/adithis197/ComfyUI-multimodal-CaptionToVideoGen" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for video generation using a music prompt to generate audio.\nNOTE: The files in the repo are not organized." + }, + { + "author": "adithis197", + "title": "ComfyUI-Caption_to_audio [WIP]", + "reference": "https://github.com/adithis197/ComfyUI-Caption_to_audio", + "files": [ + "https://github.com/adithis197/ComfyUI-Caption_to_audio" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node that converts image description to an appropriate prompt for music generation.\nNOTE: The files in the repo are not organized." + }, + { + "author": "alistairallan", + "title": "ComfyUI-skin-retouch", + "reference": "https://github.com/alistairallan/ComfyUI-skin-retouch", + "files": [ + "https://github.com/alistairallan/ComfyUI-skin-retouch" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI" + }, + { + "author": "sprited-ai", + "title": "Sprited ComfyUI Nodes [WIP]", + "reference": "https://github.com/sprited-ai/sprited-comfyui-nodes", + "files": [ + "https://github.com/sprited-ai/sprited-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI" + }, + { + "author": "trashkollector", + "title": "ComfyUI-TKVideoZoom [WIP]", + "reference": "https://github.com/trashkollector/TKVideoZoom", + "files": [ + "https://github.com/trashkollector/TKVideoZoom" + ], + "install_type": "git-clone", + "description": "Various Zoom/Slide effects for Video\nNOTE: The files in the repo are not organized." + }, + { + "author": "tankenyuen-ola", + "title": "comfyui-wanvideo-scheduler-loop", + "reference": "https://github.com/tankenyuen-ola/comfyui-wanvideo-scheduler-loop", + "files": [ + "https://github.com/tankenyuen-ola/comfyui-wanvideo-scheduler-loop" + ], + "install_type": "git-clone", + "description": "NODES: WanVideo Scheduler Selector, WanVideo Scheduler Loop, WanVideo Scheduler Info" + }, + { + "author": "ElyZeng", + "title": "ComfyUI-Translator [NAME CONFLICT]", + "reference": "https://github.com/ElyZeng/ComfyUI-Translator", + "files": [ + "https://github.com/ElyZeng/ComfyUI-Translator" + ], + "install_type": "git-clone", + "description": "A ComfyUI node to translate text between multiple languages using Argos Translate." + }, + { + "author": "lggcfx2020", + "title": "ComfyUI-LGGCFX-Tools", + "reference": "https://github.com/lggcfx2020/ComfyUI-LGGCFX-Tools", + "files": [ + "https://github.com/lggcfx2020/ComfyUI-LGGCFX-Tools" + ], + "install_type": "git-clone", + "description": "A small tool for calculating the frame number and total frames of a video. Originally required four nodes, but has been merged into a single node for convenience. Includes quick resolution selection and landscape mode switching." + }, + { + "author": "206811", + "title": "ComfyUI_ZhipuAIO", + "reference": "https://github.com/206811/ComfyUI_ZhipuAIO", + "files": [ + "https://github.com/206811/ComfyUI_ZhipuAIO" + ], + "install_type": "git-clone", + "description": "NODES: ZhipuAI AIO Config, ZhipuAI Translator, ZhipuAI GLM-4V Vision\nNOTE: The files in the repo are not organized." + }, + { + "author": "ahmedbana", + "title": "upload-to-azure", + "reference": "https://github.com/ahmedbana/upload-to-azure", + "files": [ + "https://github.com/ahmedbana/upload-to-azure" + ], + "install_type": "git-clone", + "description": "ComfyUI Upload to Azure Node" + }, + { + "author": "Huangcj2005", + "title": "comfyui-HandDetect", + "reference": "https://github.com/Huangcj2005/comfyui-HandDetect", + "files": [ + "https://github.com/Huangcj2005/comfyui-HandDetect" + ], + "install_type": "git-clone", + "description": "NODES: Hand Mask Generator (YOLOv8)" + }, + { + "author": "Aero-Ex", + "title": "comfyui_diffswap", + "reference": "https://github.com/Aero-Ex/comfyui_diffswap", + "files": [ + "https://github.com/Aero-Ex/comfyui_diffswap" + ], + "install_type": "git-clone", + "description": "NODES: DiffSwap" + }, + { + "author": "eggsbenedicto", + "title": "DiffusionRenderer-ComfyUI [WIP]", + "reference": "https://github.com/eggsbenedicto/DiffusionRenderer-ComfyUI", + "files": [ + "https://github.com/eggsbenedicto/DiffusionRenderer-ComfyUI" + ], + "install_type": "git-clone", + "description": "Experimental wrapper for diffusion-renderer in ComfyUI.\nNOTE: Currently unfinished and non-functioning. Will update" + }, + { + "author": "system-out-cho", + "title": "displayHistory [WIP]", + "reference": "https://github.com/system-out-cho/displayHistory_ComfyUI", + "files": [ + "https://github.com/system-out-cho/displayHistory_ComfyUI" + ], + "install_type": "git-clone", + "description": "A node that displays any node's history\nNOTE: The files in the repo are not organized." + }, + { + "author": "lazybuttalented", + "title": "ComfyUI_LBT [WIP]", + "reference": "https://github.com/lazybuttalented/ComfyUI_LBT", + "files": [ + "https://github.com/lazybuttalented/ComfyUI_LBT" + ], + "install_type": "git-clone", + "description": "A custom node to program the image & text processing flows.\nNOTE: The files in the repo are not organized." + }, + { + "author": "xgfone", + "title": "ComfyUI_PromptLogoCleaner", + "reference": "https://github.com/xgfone/ComfyUI_PromptLogoCleaner", + "files": [ + "https://github.com/xgfone/ComfyUI_PromptLogoCleaner" + ], + "install_type": "git-clone", + "description": "NODES: Prompt Cleaner (Remove Logo Words)" + }, + { + "author": "dexintenebri", + "title": "comfyui_voxel_nodes [WIP]", + "reference": "https://github.com/dexintenebri/comfyui_voxel_nodes", + "files": [ + "https://github.com/dexintenebri/comfyui_voxel_nodes" + ], + "install_type": "git-clone", + "description": "Extracts RGB and depthmap from image to create 3D Voxels, for integration into MagicaVoxel and Unity Engine\nNOTE: The files in the repo are not organized." + }, + { + "author": "1H-hobit", + "title": "ComfyComfyUI_InternVL3 [WIP]", + "reference": "https://github.com/1H-hobit/ComfyUI_InternVL3", + "files": [ + "https://github.com/1H-hobit/ComfyUI_InternVL3" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use InternVL3" + }, + { + "author": "LucianoCirino", + "title": "ComfyUI-invAIder-Nodes", + "reference": "https://github.com/LucianoCirino/ComfyUI-invAIder-Nodes", + "files": [ + "https://github.com/LucianoCirino/ComfyUI-invAIder-Nodes" + ], + "install_type": "git-clone", + "description": "Custom nodes I've created for my own personal workflows. Use at your own discretion.\nNOTE: The files in the repo are not organized." + }, + { + "author": "zhuanvi", + "title": "ComfyUI-ZVNodes [WIP]", + "reference": "https://github.com/zhuanvi/ComfyUI-ZVNodes", + "files": [ + "https://github.com/zhuanvi/ComfyUI-ZVNodes" + ], + "install_type": "git-clone", + "description": "NODES: Load One Image (Directory), Save Image (Directory), Count Image (Directory), Json Reader, Json List Node, Json List Length, Json List Indexer, Json List Slicer, Triangle Character Layout, Json List To Mask, Random Select From List, Join List, ..." + }, + { + "author": "Filexor", + "title": "File_x_dynamic_prompt2", + "reference": "https://github.com/Filexor/File_x_dynamic_prompt2", + "files": [ + "https://github.com/Filexor/File_x_dynamic_prompt2" + ], + "install_type": "git-clone", + "description": "ComfyUI node for random prompt generation" + }, + { + "author": "FileSystem Manager Team", + "title": "Comfyui-FileSytem-Manager", + "reference": "https://github.com/bleash-dev/Comfyui-FileSytem-Manager", + "files": [ + "https://github.com/bleash-dev/Comfyui-FileSytem-Manager" + ], + "install_type": "git-clone", + "description": "Comprehensive file system management for ComfyUI with multiple upload sources" + }, + { + "author": "thavocado", + "title": "comfyui-danbooru-lookup", + "reference": "https://github.com/thavocado/comfyui-danbooru-lookup", + "files": [ + "https://github.com/thavocado/comfyui-danbooru-lookup" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that performs FAISS cosine similarity lookup on Danbooru embeddings using multiple input modes: CLIP conditioning, images with WD14 tagging, or text tags.[w/This nodepack installs its dependencies automatically during execution.]" + }, + { + "author": "love2hina-net", + "title": "ComfyUI-Local-Translator", + "reference": "https://github.com/love2hina-net/ComfyUI-Local-Translator", + "files": [ + "https://github.com/love2hina-net/ComfyUI-Local-Translator" + ], + "install_type": "git-clone", + "description": "This is a text translation node using a local SLM (Microsoft Phi-4) for ComfyUI." + }, + { + "author": "DenRakEiw", + "title": "Denrakeiw Nodes [WIP]", + "reference": "https://github.com/DenRakEiw/DenRakEiw_Nodes", + "files": [ + "https://github.com/DenRakEiw/DenRakEiw_Nodes" + ], + "install_type": "git-clone", + "description": "A custom nodepack for ComfyUI that provides utility nodes for image generation and manipulation.\nNOTE: The files in the repo are not organized." + }, + { + "author": "ahmedbana", + "title": "json-creator [WIP]", + "reference": "https://github.com/ahmedbana/json-creator", + "files": [ + "https://github.com/ahmedbana/json-creator" + ], + "install_type": "git-clone", + "description": "Create Json for ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "ahmedbana", + "title": "File-Rename [UNSAFE]", + "reference": "https://github.com/ahmedbana/File-Rename", + "files": [ + "https://github.com/ahmedbana/File-Rename" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI nodepackage that allows you to rename files with incremented numbers based on various mathematical operations. Includes both basic and advanced functionality.[w/This nodepack includes a node that can rename files to arbitrary paths.]" + }, + { + "author": "ahmedbana", + "title": "ComfyUI_AC_FUNV7-FLUX- [WIP]", + "reference": "https://github.com/A719689614/ComfyUI_AC_FUNV7-FLUX-", + "files": [ + "https://github.com/A719689614/ComfyUI_AC_FUNV7-FLUX-" + ], + "install_type": "git-clone", + "description": "NODES: AC_Super_UNET(FLUX), AC_Super_CLIP(FLUX)\nNOTE: The files in the repo are not organized." + }, + { + "author": "broumbroum", + "title": "comfyui-time-system [WIP]", + "reference": "https://github.com/broumbroum/comfyui-time-system", + "files": [ + "https://github.com/broumbroum/comfyui-time-system" + ], + "install_type": "git-clone", + "description": "Package that adds nodes to retrieve the system date and time.\nNOTE: The files in the repo are not organized." + }, + { + "author": "rodpl", + "title": "comfyui-asset-manager", + "reference": "https://github.com/rodpl/comfyui-asset-manager", + "files": [ + "https://github.com/rodpl/comfyui-asset-manager" + ], + "install_type": "git-clone", + "description": "ComfyUI Asset Manager for managing assets in ComfyUI" + }, + { + "author": "blepping", + "title": "ComfyUI 'dum' samplers [WIP]", + "reference": "https://github.com/blepping/comfyui_dum_samplers", + "files": [ + "https://github.com/blepping/comfyui_dum_samplers" + ], + "install_type": "git-clone", + "description": "A collection of random, experimental (and most likely 'dum') samplers for ComfyUI." + }, + { + "author": "crimro-se", + "title": "ComfyUI-CascadedGaze", + "reference": "https://github.com/crimro-se/ComfyUI-CascadedGaze", + "files": [ + "https://github.com/crimro-se/ComfyUI-CascadedGaze" + ], + "install_type": "git-clone", + "description": "Two custom nodes that bring the CascadedGaze image denoising model architecture to ComfyUI." + }, + { + "author": "RamonGuthrie", + "title": "ComfyUI-RBG-LoRA-Converter [UNSAFE]", + "reference": "https://github.com/RamonGuthrie/ComfyUI-RBG-LoraConverter", + "files": [ + "https://github.com/RamonGuthrie/ComfyUI-RBG-LoraConverter" + ], + "install_type": "git-clone", + "description": "A node for converting LoRA (Low-Rank Adaptation) keys in ComfyUI.[w/This nodepack contains a node that has a vulnerability allowing write to arbitrary file paths.]" + }, + { + "author": "Estanislao-Oviedo", + "title": "ComfyUI-CustomNodes [NAME CONFLICT]", + "reference": "https://github.com/Estanislao-Oviedo/ComfyUI-CustomNodes", + "files": [ + "https://github.com/Estanislao-Oviedo/ComfyUI-CustomNodes" + ], + "install_type": "git-clone", + "description": "NODES: Load Image Folder (Custom), Make Batch from Single Image (Custom)" + }, + { + "author": "ctf05", + "title": "ComfyUI-AudioDuration", + "reference": "https://github.com/ctf05/ComfyUI-AudioDuration", + "files": [ + "https://github.com/ctf05/ComfyUI-AudioDuration" + ], + "install_type": "git-clone", + "description": "NODES: Audio Duration, Audio Overlay (Mix)" + }, + { + "author": "Baverne", + "title": "TiledWan ComfyUI Node Set [WIP]", + "reference": "https://github.com/Baverne/comfyUI-TiledWan", + "files": [ + "https://github.com/Baverne/comfyUI-TiledWan" + ], + "install_type": "git-clone", + "description": "A custom node set for ComfyUI that provides tiled processing capabilities.\nNOTE: The files in the repo are not organized." + }, + { + "author": "soliton", + "title": "Watermark Detection YOLO Custom Node [WIP]", + "reference": "https://github.com/Soliton80/ComfyUI-Watermark-Detection-YOLO", + "files": [ + "https://github.com/Soliton80/ComfyUI-Watermark-Detection-YOLO" + ], + "install_type": "git-clone", + "description": "Custom watermark detection using rained on 24,558 watermark images YOLO11 model for ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "Jpzz", + "title": "IxiWorks StoryBoard Nodes [WIP]", + "reference": "https://github.com/IXIWORKS-KIMJUNGHO/comfyui-ixiworks", + "files": [ + "https://github.com/IXIWORKS-KIMJUNGHO/comfyui-ixiworks" + ], + "install_type": "git-clone", + "description": "StoryBoard nodes for ComfyUI - Parse JSON templates and build prompts for generative movie creation\nNOTE: The files in the repo are not organized." + }, + { + "author": "siyonomicon", + "title": "ComfyUI-Pin", + "reference": "https://github.com/siyonomicon/ComfyUI-Pin", + "files": [ + "https://github.com/siyonomicon/ComfyUI-Pin" + ], + "install_type": "git-clone", + "description": "NODES: Pin Grid Node" + }, + { + "author": "rakete", + "title": "comfyui-rakete", + "reference": "https://github.com/rakete/comfyui-rakete", + "files": [ + "https://github.com/rakete/comfyui-rakete" + ], + "install_type": "git-clone", + "description": "NODES: Get Widget or Default Value, GPU Garbage Collector, Build String from Widget Values" + }, + { + "author": "boricuapab", + "title": "ComfyUI-Bori-KontextPresets [WIP]", + "reference": "https://github.com/boricuapab/ComfyUI-Bori-KontextPresets", + "files": [ + "https://github.com/boricuapab/ComfyUI-Bori-KontextPresets" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that uses the Kontext Presets.\nNOTE: The files in the repo are not organized." + }, + { + "author": "sh570655308", + "title": "Comfyui-RayNodes [WIP]", + "reference": "https://github.com/sh570655308/Comfyui-RayNodes", + "files": [ + "https://github.com/sh570655308/Comfyui-RayNodes" + ], + "install_type": "git-clone", + "description": "NODES: Bracketed Tag-Index Merger, Florence2 Tag Processor, Image List Converter, Image Selector, Mask Blackener, Mask Applier and Combiner, Mask Processor, Tag Array to Lines, Tag-Index Merger, Grabber Tag Processor, Image Resizer, Save Image Websocket, Border Mask, SaturationAdjuster, ...\nNOTE: The files in the repo are not organized." + }, + { + "author": "Rocky-Lee-001", + "title": "ComfyUI_SZtools", + "reference": "https://github.com/Rocky-Lee-001/ComfyUI_SZtools", + "files": [ + "https://github.com/Rocky-Lee-001/ComfyUI_SZtools" + ], + "install_type": "git-clone", + "description": "This project is the comfyui implementation of ComfyUI_SZtools, a labeling and naming tool developed for Kontext's local training package T2ITrainer.\nNOTE: The files in the repo are not organized." + }, + { + "author": "stalkervr", + "title": "Custom Path Nodes for ComfyUI [UNSAFE]", + "reference": "https://github.com/stalkervr/comfyui-custom-path-nodes", + "files": [ + "https://github.com/stalkervr/comfyui-custom-path-nodes" + ], + "install_type": "git-clone", + "description": "Nodes for path handling and image cropping.[w/This nodepack contains a node that has a vulnerability allowing access to arbitrary file paths.]" + }, + { + "author": "gorillaframeai", + "title": "GF_pixtral_node [WIP]", + "reference": "https://github.com/gorillaframeai/GF_pixtral_node", + "files": [ + "https://github.com/gorillaframeai/GF_pixtral_node" + ], + "install_type": "git-clone", + "description": "NODES: GF Mistral & Pixtral" + }, + { + "author": "enlo", + "title": "ComfyUI-CheckpointSettings", + "reference": "https://github.com/enlo/ComfyUI-CheckpointSettings", + "files": [ + "https://github.com/enlo/ComfyUI-CheckpointSettings" + ], + "install_type": "git-clone", + "description": "A custom node created to fulfill a personal need I thought of while playing around with ComfyUI — 'I want to save checkpoint names and KSampler settings together and randomly switch between them for fun.'" + }, + { + "author": "Mzikart", + "title": "ComfyUI-Mzikart-Player [WIP]", + "reference": "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Player", + "files": [ + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Player" + ], + "install_type": "git-clone", + "description": "Interactive audio player for ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "babydjac", + "title": "comfyui-grok-ponyxl [WIP]", + "reference": "https://github.com/babydjac/comfyui-grok-ponyxl", + "files": [ + "https://github.com/babydjac/comfyui-grok-ponyxl" + ], + "install_type": "git-clone", + "description": "NODES: GrokPonyXLPrompter\nNOTE: The files in the repo are not organized." + }, + { + "author": "MarkFreeDom168", + "title": "ComfyUI-image-load-url [WIP]", + "reference": "https://github.com/MarkFreeDom168/ComfyUI-image-load-url", + "files": [ + "https://github.com/MarkFreeDom168/ComfyUI-image-load-url" + ], + "install_type": "git-clone", + "description": "NODES: Load Image From URL/Base64, Load Mask From URL/Base64, Load img and mask from url\nNOTE: The files in the repo are not organized." + }, + { + "author": "realm-weaver", + "title": "Tile Seamstress 360° [WIP]", + "reference": "https://github.com/realm-weaver/ComfyUI-tile-seamstress-360", + "files": [ + "https://github.com/realm-weaver/ComfyUI-tile-seamstress-360" + ], + "install_type": "git-clone", + "description": "Tile Seamstress 360 is a set of tools for fixing seams & poles in 360° panoramic equirectangular images inside ComfyUI." + }, + { + "author": "jisenhua", + "title": "ComfyUI-yolov5-face [WIP]", + "reference": "https://github.com/UmutGuzel/tryvariantai-comfyui", + "files": [ + "https://github.com/UmutGuzel/tryvariantai-comfyui" + ], + "install_type": "git-clone", + "description": "NODES: Fill Transparency, Mask Expand Border, Mask Expand Border (Advanced), Mask to Transparent, Debug Mask Visualizer, White to Transparent, White Detector\nNOTE: The files in the repo are not organized." + }, + { + "author": "visualbruno", + "title": "ComfyUI-QRemeshify", + "reference": "https://github.com/visualbruno/ComfyUI-QRemeshify", + "files": [ + "https://github.com/visualbruno/ComfyUI-QRemeshify" + ], + "install_type": "git-clone", + "description": "NODES: QRemeshify" + }, + { + "author": "jisenhua", + "title": "ComfyUI-yolov5-face [WIP]", + "reference": "https://github.com/JiSenHua/ComfyUI-yolov5-face", + "files": [ + "https://github.com/JiSenHua/ComfyUI-yolov5-face" + ], + "install_type": "git-clone", + "description": "A YOLOv5 face detection project for ComfyUI.\nNOTE: The files in the repo are not organized." + }, + { + "author": "zopieux", + "title": "ComfyUI-zopi [UNSAFE]", + "reference": "https://github.com/zopieux/ComfyUI-zopi", + "files": [ + "https://github.com/zopieux/ComfyUI-zopi" + ], + "install_type": "git-clone", + "description": "NODES: Eval Python, Load TensortRT + checkpoint + CLIP + VAE [w/This nodepack contains a vulnerability that allows remote code execution.]" + }, + { + "author": "przewodo", + "title": "ComfyUI-Przewodo-Utils [WIP]", + "reference": "https://github.com/przewodo/ComfyUI-Przewodo-Utils", + "files": [ + "https://github.com/przewodo/ComfyUI-Przewodo-Utils" + ], + "install_type": "git-clone", + "description": "Utilities to make it easy to develop advanced Workflows without having to use a lot of nodes for simple stuff.\nNOTE: The files in the repo are not organized." + }, + { + "author": "hulipanpan", + "title": "Comfyui_tuteng [WIP]", + "reference": "https://github.com/hulipanpan/Comfyui_tuteng", + "files": [ + "https://github.com/hulipanpan/Comfyui_tuteng" + ], + "install_type": "git-clone", + "description": "NODES: Tuteng Mj, Tuteng Mj Style, Tuteng Upload, Tuteng Mj Upscale, Tuteng Mj Vary/Zoom, Tuteng Kling Text2Video, Tuteng Kling Image2Video, Tuteng Kling Video Extend, Tuteng Gemini API, Tuteng Doubao SeedEdit, Tuteng ChatGPT API, Tuteng Jimeng API, Tuteng GPT-Image-1 Edit, ...\nNOTE: The files in the repo are not organized." + }, + { + "author": "PaleBloodq", + "title": "ComfyUI-HFTransformers", + "reference": "https://github.com/PaleBloodq/ComfyUI-HFTransformers", + "files": [ + "https://github.com/PaleBloodq/ComfyUI-HFTransformers" + ], + "install_type": "git-clone", + "description": "NODES: HFT Pipeline Loader, HFT Classifier, HFT Classification Selector, HFT Object Detector, HFT Image to Text, HFT Depth Estimator" + }, + { + "author": "whmc76", + "title": "ComfyUI-AudioSuiteAdvanced [WIP]", + "reference": "https://github.com/whmc76/ComfyUI-AudioSuiteAdvanced", + "files": [ + "https://github.com/whmc76/ComfyUI-AudioSuiteAdvanced" + ], + "install_type": "git-clone", + "description": "A ComfyUI plugin for processing long text files and generating speech, supporting features such as audio separation, text segmentation, and audio merging.\nNOTE: The files in the repo are not organized." + }, + { + "author": "Letz-AI", + "title": "ComfyUI-LetzAI [UNSAFE]", + "reference": "https://github.com/Letz-AI/ComfyUI-LetzAI", + "files": [ + "https://github.com/Letz-AI/ComfyUI-LetzAI" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI Node for LetzAI Image Generation[w/The API key is embedded in the workflow.]" + }, + { + "author": "ZhouNLP", + "title": "comfyui_LK_selfuse", + "reference": "https://github.com/LK-168/comfyui_LK_selfuse", + "files": [ + "https://github.com/LK-168/comfyui_LK_selfuse" + ], + "install_type": "git-clone", + "description": "NODES: Mask Diff, Mask Connected Remove, Mask Get Max, Mask Filter with Rate, InspectModelArchitecture, Print Sigma, Adv Scheduler, LK_MaskToSEGS, LK_SegsAdjust, String Filter, String Remove Duplicate, String Modify, ... \nNOTE: The files in the repo are not organized." + }, + { + "author": "junhe421", + "title": "comfyui_batch_image_processor [WIP]", + "reference": "https://github.com/junhe421/comfyui_batch_image_processor", + "files": [ + "https://github.com/junhe421/comfyui_batch_image_processor" + ], + "install_type": "git-clone", + "description": "A Kontext Bench-style ComfyUI image difference analysis node that supports instruction-based prompt generation and batch TXT editing.\nNOTE: The files in the repo are not organized." + }, + { + "author": "Tr1dae", + "title": "ComfyUI-CustomNodes-MVM", + "reference": "https://github.com/Tr1dae/ComfyUI-CustomNodes-MVM", + "files": [ + "https://github.com/Tr1dae/ComfyUI-CustomNodes-MVM" + ], + "install_type": "git-clone", + "description": "NODES: Load Image From Folder MVM, Load Guidance Images From Folder MVM, Load Text From Folder MVM" + }, + { + "author": "Vkabuto23", + "title": "ComfyUI Custom Nodes: OpenRouter & Ollama [UNSAFE]", + "reference": "https://github.com/Vkabuto23/comfyui_openrouter_ollama", + "files": [ + "https://github.com/Vkabuto23/comfyui_openrouter_ollama" + ], + "install_type": "git-clone", + "description": "ComfyUI Custom Nodes: OpenRouter & Ollama[w/The API key is embedded in the workflow.]" + }, + { + "author": "subnet99", + "title": "ComfyUI-URLLoader", + "reference": "https://github.com/subnet99/ComfyUI-URLLoader", + "files": [ + "https://github.com/subnet99/ComfyUI-URLLoader" + ], + "install_type": "git-clone", + "description": "ComfyUI plugin for downloading and loading media files from URLs." + }, + { + "author": "bikiam", + "title": "Comfyui_AudioRecoder", + "reference": "https://github.com/bikiam/Comfyui_AudioRecoder", + "files": [ + "https://github.com/bikiam/Comfyui_AudioRecoder" + ], + "install_type": "git-clone", + "description": "NODES: AUDIO Recorder" + }, + { + "author": "SaulQiu", + "title": "comfyui-saul-plugin [WIP]", + "reference": "https://github.com/SaulQcy/comfy_saul_plugin", + "files": [ + "https://github.com/SaulQcy/comfy_saul_plugin" + ], + "install_type": "git-clone", + "description": "NODES: Cutting Video\nNOTE: The files in the repo are not organized." + }, + { + "author": "wasilone11", + "title": "comfyui-sync-translate-node", + "reference": "https://github.com/wasilone11/comfyui-sync-translate-node", + "files": [ + "https://github.com/wasilone11/comfyui-sync-translate-node" + ], + "install_type": "git-clone", + "description": "NODES: Sync.so Translator" + }, + { + "author": "ashllay", + "title": "ComfyUI_MoreComfy", + "reference": "https://github.com/ashllay/ComfyUI_MoreComfy", + "files": [ + "https://github.com/ashllay/ComfyUI_MoreComfy" + ], + "install_type": "git-clone", + "description": "NODES: MC Switch Seed, MC Switch Image, MC Switch String, MC Alter Seed, MC Set Tile Size, MC Get Image Size, MC Get Image Min Max, MC Multi Concat, MC Multi Concat(Advanced), MC Noise" + }, + { + "author": "gaowei-space", + "title": "ComfyUI Doubao LLM [WIP]", + "reference": "https://github.com/gaowei-space/ComfyUI-Doubao-LLM", + "files": [ + "https://github.com/gaowei-space/ComfyUI-Doubao-LLM" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for Doubao (ByteDance) LLM and Vision Language Model integration\nNOTE: The files in the repo are not organized." + }, + { + "author": "BrettMedia", + "title": "comfyui-bhtools [WIP]", + "reference": "https://github.com/BrettMedia/comfyui-bhtools", + "files": [ + "https://github.com/BrettMedia/comfyui-bhtools" + ], + "install_type": "git-clone", + "description": "A suite of creative tools designed to help AI artists with continuity, brainstorming, and workflow optimization. Born from real-world needs during my AI journey, these nodes solve common pain points in creative workflows.\nNOTE: The files in the repo are not organized." + }, + { + "author": "XiaoHeiziGGG", + "title": "ComfyUI-Gemini-Kontext [WIP]", + "reference": "https://github.com/XiaoHeiziGGG/ComfyUI-Gemini-Kontext", + "files": [ + "https://github.com/XiaoHeiziGGG/ComfyUI-Gemini-Kontext" + ], + "install_type": "git-clone", + "description": "Google Gemini API powered translation nodes for ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "Bwebbfx", + "title": "ComfyUI Face Parsing Nodes [WIP]", + "reference": "https://github.com/Bwebbfx/ComfyUI_FaceParsing", + "files": [ + "https://github.com/Bwebbfx/ComfyUI_FaceParsing" + ], + "install_type": "git-clone", + "description": "This package provides ComfyUI nodes for face parsing using BiSeNet (from yakhyo/face-parsing), supporting batch and video workflows.\nNOTE: The files in the repo are not organized." + }, + { + "author": "orion4d", + "title": "Unified List Selector for ComfyUI [UNSAFE]", + "reference": "https://github.com/orion4d/ComfyUI_unified_list_selector", + "files": [ + "https://github.com/orion4d/ComfyUI_unified_list_selector" + ], + "install_type": "git-clone", + "description": "This project is a custom node for ComfyUI that allows you to dynamically load lists from text (.txt) or CSV (.csv) files and select an item to use in your workflow. It features a manual selection mode (via a dropdown list) and a random selection mode, as well as the ability to add prefixes and suffixes to the selected text.[w/This nodepack contains a node with a vulnerability that allows reading files from arbitrary paths.]" + }, + { + "author": "kongds1999", + "title": "ComfyUI_was_image", + "reference": "https://github.com/kongds1999/ComfyUI_was_image", + "files": [ + "https://github.com/kongds1999/ComfyUI_was_image" + ], + "install_type": "git-clone", + "description": "NODES: Replace Color By Palette, ConvertGrayToImage" + }, + { + "author": "zl9739379", + "title": "ComfyUI Qwen Vision Language API Node [NAME CONFLICT]", + "reference": "https://github.com/zl9739379/comfyui-qwen-vl-api", + "files": [ + "https://github.com/zl9739379/comfyui-qwen-vl-api" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for describing images using Qwen Vision Language models through OpenAI-compatible APIs." + }, + { + "author": "bikiam", + "title": "ComfyUi_WhisperGTranslate", + "reference": "https://github.com/bikiam/ComfyUi_WhisperGTranslate", + "files": [ + "https://github.com/bikiam/ComfyUi_WhisperGTranslate" + ], + "install_type": "git-clone", + "description": "NODES: Whisper + AudioTranslate, Google Translate Node" + }, + { + "author": "edgerunner", + "title": "ComfyUI Queue Manager [WIP]", + "reference": "https://github.com/QuietNoise/ComfyUI-Queue-Manager", + "files": [ + "https://github.com/QuietNoise/ComfyUI-Queue-Manager" + ], + "install_type": "git-clone", + "description": "An extension supporting more streamlined prompt queue management." + }, + { + "author": "fylrid2", + "title": "lockValue", + "reference": "https://github.com/fylrid2/comfyui_lock_previous_value", + "files": [ + "https://github.com/fylrid2/comfyui_lock_previous_value" + ], + "install_type": "git-clone", + "description": "Allows the locking of a nodes value\nNOTE: The files in the repo are not organized." + }, + { + "author": "XiaoHeiziGGG", + "title": "ComfyUI Gemini Translator [WIP]", + "reference": "https://github.com/XiaoHeiziGGG/ComfyUI-GeminiTranslator", + "files": [ + "https://github.com/XiaoHeiziGGG/ComfyUI-GeminiTranslator" + ], + "install_type": "git-clone", + "description": "The API node library of gemini can be translated and recognized.The API node library of gemini can be translated and recognized.\nNOTE: The files in the repo are not organized." + }, + { + "author": "DiffusionWave-YT", + "title": "DiffusionWave_PickResolution [WIP]", + "reference": "https://github.com/DiffusionWave-YT/DiffusionWave_PickResolution", + "files": [ + "https://github.com/DiffusionWave-YT/DiffusionWave_PickResolution" + ], + "install_type": "git-clone", + "description": "Change of resolutions for ComfyUI and Upscalers\nNOTE: The files in the repo are not organized." + }, + { + "author": "pixixai", + "title": "ComfyUI_Pixix-Tools [UNSAFE/WIP]", + "reference": "https://github.com/pixixai/ComfyUI_pixixTools", + "files": [ + "https://github.com/pixixai/ComfyUI_pixixTools" + ], + "install_type": "git-clone", + "description": "Load Text (from folder)\nNOTE: The files in the repo are not organized.[w/The contents of files from arbitrary paths can be read remotely through this node.]" + }, + { + "author": "PeterMikhai", + "title": "DoomFLUX Nodes [WIP]", + "reference": "https://github.com/PeterMikhai/Doom_Flux_NodePack", + "files": [ + "https://github.com/PeterMikhai/Doom_Flux_NodePack" + ], + "install_type": "git-clone", + "description": "Custom nodes for FLUX models, including a loader and specialized samplers for standard and inpaint generation.\nNOTE: The files in the repo are not organized." + }, + { + "author": "maque", + "title": "comfyui_video_BC [WIP]", + "reference": "https://github.com/JioJe/comfyui_video_BC", + "files": [ + "https://github.com/JioJe/comfyui_video_BC" + ], + "install_type": "git-clone", + "description": "Batch load video nodes and save videos in custom paths\nNOTE: The files in the repo are not organized." + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-Gemini [NAME CONFLICT]", + "id": "gemini", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini" + ], + "install_type": "git-clone", + "description": "Using Gemini-pro & Gemini-pro-vision in ComfyUI." + }, + { + "author": "No-22-Github", + "title": "ComfyUI_SaveImageCustom", + "reference": "https://github.com/No-22-Github/ComfyUI_SaveImageCustom", + "files": [ + "https://github.com/No-22-Github/ComfyUI_SaveImageCustom" + ], + "install_type": "git-clone", + "description": "Easy save image with dir+name" + }, + { + "author": "jiafuzeng", + "title": "comfyui-fishSpeech", + "reference": "https://github.com/jiafuzeng/comfyui-fishSpeech", + "files": [ + "https://github.com/jiafuzeng/comfyui-fishSpeech" + ], + "install_type": "git-clone", + "description": "NODES: Fish-Speech Loader, Fish-Speech TTS, Fish-Speech Audio Preview" + }, + { + "author": "bleash-dev", + "title": "ComfyUI-Auth-Manager", + "reference": "https://github.com/bleash-dev/ComfyUI-Auth-Manager", + "files": [ + "https://github.com/bleash-dev/ComfyUI-Auth-Manager" + ], + "install_type": "git-clone", + "description": "A custom node that provides email/password authentication for ComfyUI pods with a beautiful modal interface." + }, + { + "author": "filliptm", + "title": "ComfyUI_Fill-Node-Loader [WIP]", + "reference": "https://github.com/filliptm/ComfyUI_Fill-Node-Loader", + "files": [ + "https://github.com/filliptm/ComfyUI_Fill-Node-Loader" + ], + "install_type": "git-clone", + "description": "A ComfyUI plugin to simplify loading and managing custom nodes with a sidebar interface." + }, + { + "author": "diogod", + "title": "Comfy Inpainting Works [WIP]", + "reference": "https://github.com/diodiogod/Comfy-Inpainting-Works", + "files": [ + "https://github.com/diodiogod/Comfy-Inpainting-Works" + ], + "install_type": "git-clone", + "description": "Go to the top menu>Workflow>Browse Templates. This is a collection of my Inpainting workflows for Flux (expanded and COMPACT) + others. Previously called: 'Proper Flux Control-Net inpainting and/or outpainting with batch size - Alimama or Flux Fill'. By installing this 'node' you can always keep them up to date by updating on the manager. This is not a new custom node. You will still need to install all other custom nodes used on the workflows. You will also find my 'Flux LoRA Block Weights Preset Tester' here as well.\nNOTE: The files in the repo are not organized." + }, + { + "author": "Malloc-pix", + "title": "comfyui-QwenVL", + "reference": "https://github.com/Malloc-pix/comfyui-QwenVL", + "files": [ + "https://github.com/Malloc-pix/comfyui-QwenVL" + ], + "install_type": "git-clone", + "description": "NODES: Qwen2.5VL, Qwen2.5" + }, + { + "author": "artifyfun", + "title": "ComfyUI-JS [UNSAFE]", + "reference": "https://github.com/artifyfun/ComfyUI-JS", + "files": [ + "https://github.com/artifyfun/ComfyUI-JS" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node capable of executing JavaScript code: it takes JavaScript code as input and outputs the execution result.[w/This extension has an XSS vulnerability that can be triggered through workflow execution.]" + }, + { + "author": "OgreLemonSoup", + "title": "ComfyUI-Notes-manager", + "reference": "https://github.com/OgreLemonSoup/ComfyUI-Notes-manager", + "files": [ + "https://github.com/OgreLemonSoup/ComfyUI-Notes-manager" + ], + "install_type": "git-clone", + "description": "This extension provides the note feature." + }, + { + "author": "WozStudios", + "title": "ComfyUI-WozNodes", + "reference": "https://github.com/WozStudios/ComfyUI-WozNodes", + "files": [ + "https://github.com/WozStudios/ComfyUI-WozNodes" + ], + "install_type": "git-clone", + "description": "NODES: Trim Image Batch, Create Image Batch, Select Image Batch by Mask, Advanced Batch Creator" + }, + { + "author": "stalkervr", + "title": "comfyui-custom-path-nodes [UNSAFE]", + "reference": "https://github.com/stalkervr/comfyui-custom-path-nodes", + "files": [ + "https://github.com/stalkervr/comfyui-custom-path-nodes" + ], + "install_type": "git-clone", + "description": "Nodes for path handling and image cropping.[w/This nodepack has a vulnerability that allows remote access to arbitrary file paths.]" + }, + { + "author": "vovler", + "title": "comfyui-vovlertools", + "reference": "https://github.com/vovler/ComfyUI-vovlerTools", + "files": [ + "https://github.com/vovler/ComfyUI-vovlerTools" + ], + "install_type": "git-clone", + "description": "Advanced ComfyUI nodes for WD14 tagging, image filtering, and CLIP to TensorRT conversion" + }, + { + "author": "ELiZswe", + "title": "ComfyUI-ELiZTools", + "reference": "https://github.com/ELiZswe/ComfyUI-ELiZTools", + "files": [ + "https://github.com/ELiZswe/ComfyUI-ELiZTools" + ], + "install_type": "git-clone", + "description": "ELIZ Tools" + }, + { + "author": "yamanacn", + "title": "comfyui_qwenbbox", + "reference": "https://github.com/yamanacn/comfyui_qwenbbox", + "files": [ + "https://github.com/yamanacn/comfyui_qwenbbox" + ], + "install_type": "git-clone", + "description": "NODES: Load Qwen Model (v2), Qwen Bbox Detection, Prepare BBox for SAM (v2)" + }, + { + "author": "mikheys", + "title": "ComfyUI-mikheys", + "reference": "https://github.com/mikheys/ComfyUI-mikheys", + "files": [ + "https://github.com/mikheys/ComfyUI-mikheys" + ], + "install_type": "git-clone", + "description": "NODES: WAN Optimal Resolution Selector, WAN Show Image Dimensions" + }, + { + "author": "iacoposk8", + "title": "ComfyUI XOR Pickle Nodes", + "reference": "https://github.com/iacoposk8/xor_pickle_nodes", + "files": [ + "https://github.com/iacoposk8/xor_pickle_nodes" + ], + "install_type": "git-clone", + "description": "Two custom nodes for ComfyUI that allow you to encrypt and decrypt Python objects using simple XOR encryption with pickle." + }, + { + "author": "yamanacn", + "title": "comfyui_qwen_object [WIP]", + "reference": "https://github.com/yamanacn/comfyui_qwen_object", + "files": [ + "https://github.com/yamanacn/comfyui_qwen_object" + ], + "install_type": "git-clone", + "description": "This is a custom node for ComfyUI that integrates the Qwen vision model for tasks such as object detection.\nNOTE: The files in the repo are not organized." + }, + { + "author": "neverbiasu", + "title": "ComfyUI-Show-o [WIP]", + "reference": "https://github.com/neverbiasu/ComfyUI-Show-o", + "files": [ + "https://github.com/neverbiasu/ComfyUI-Show-o" + ], + "install_type": "git-clone", + "description": "NODES: Show-o Model Loader, Show-o Text to Image, Show-o Image Captioning, Show-o Image Inpainting" + }, + { + "author": "zyquon", + "title": "ComfyUI Stash", + "reference": "https://github.com/zyquon/ComfyUI-Stash", + "files": [ + "https://github.com/zyquon/ComfyUI-Stash" + ], + "install_type": "git-clone", + "description": "Nodes to use Stash within Comfy workflows" + }, + { + "author": "tankenyuen-ola", + "title": "comfyui-env-variable-reader [UNSAFE]", + "reference": "https://github.com/tankenyuen-ola/comfyui-env-variable-reader", + "files": [ + "https://github.com/tankenyuen-ola/comfyui-env-variable-reader" + ], + "install_type": "git-clone", + "description": "NODES: Environment Variable Reader [w/Installing this node may expose environment variables that contain sensitive information such as API keys.]" + }, + { + "author": "ftf001-tech", + "title": "ComfyUI-Lucian [WIP]", + "reference": "https://github.com/ftf001-tech/ComfyUI-ExternalLLMDetector", + "files": [ + "https://github.com/ftf001-tech/ComfyUI-ExternalLLMDetector" + ], + "install_type": "git-clone", + "description": "These nodes allow you to configure LLM API connections, send images with custom prompts, and convert the LLM's JSON bounding box responses into a format compatible with segmentation nodes like SAM2\nNOTE: The files in the repo are not organized." + }, + { + "author": "LucianGnn", + "title": "ComfyUI-Lucian [WIP]", + "reference": "https://github.com/LucianGnn/ComfyUI-Lucian", + "files": [ + "https://github.com/LucianGnn/ComfyUI-Lucian" + ], + "install_type": "git-clone", + "description": "NODES: Audio Duration Calculator\nNOTE: The files in the repo are not organized." + }, + { + "author": "akatz-ai", + "title": "ComfyUI-Execution-Inversion", + "reference": "https://github.com/akatz-ai/ComfyUI-Execution-Inversion", + "files": [ + "https://github.com/akatz-ai/ComfyUI-Execution-Inversion" + ], + "install_type": "git-clone", + "description": "Contains nodes related to the new execution inversion engine in ComfyUI. nodepack originally from [a/https://github.com/BadCafeCode/execution-inversion-demo-comfyui](https://github.com/BadCafeCode/execution-inversion-demo-comfyui)" + }, + { + "author": "mamorett", + "title": "comfyui_minicpm_vision", + "reference": "https://github.com/mamorett/comfyui_minicpm_vision", + "files": [ + "https://github.com/mamorett/comfyui_minicpm_vision" + ], + "install_type": "git-clone", + "description": "NODES: MiniCPM Vision GGUF" + }, + { + "author": "BigStationW", + "title": "flowmatch_scheduler-comfyui", + "reference": "https://github.com/BigStationW/flowmatch_scheduler-comfyui", + "files": [ + "https://github.com/BigStationW/flowmatch_scheduler-comfyui" + ], + "install_type": "git-clone", + "description": "NODES: FlowMatchSigmas" + }, + { + "author": "casterpollux", + "title": "MiniMax-bmo", + "reference": "https://github.com/casterpollux/MiniMax-bmo", + "files": [ + "https://github.com/casterpollux/MiniMax-bmo" + ], + "install_type": "git-clone", + "description": "ComfyUI MiniMax Remover Node" + }, + { + "author": "franky519", + "title": "ComfyUI Face Four Image Matcher [WIP]", + "reference": "https://github.com/franky519/comfyui_fnckc_Face_analysis", + "files": [ + "https://github.com/franky519/comfyui_fnckc_Face_analysis" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for four face image matching and face swap control\nNOTE: Invalid pyproject.toml" + }, + { + "author": "bleash-dev", + "title": "Comfyui-Iddle-Checker", + "reference": "https://github.com/bleash-dev/Comfyui-Idle-Checker", + "files": [ + "https://github.com/bleash-dev/Comfyui-Idle-Checker" + ], + "install_type": "git-clone", + "description": "front extension for idle checker" + }, + { + "author": "fangg2000", + "title": "ComfyUI-StableAudioFG [WIP]", + "reference": "https://github.com/fangg2000/ComfyUI-StableAudioFG", + "files": [ + "https://github.com/fangg2000/ComfyUI-StableAudioFG" + ], + "install_type": "git-clone", + "description": "The ComfyUI plugin for stable-audio (supports offline use)\nNOTE: The files in the repo are not organized." + }, + { + "author": "hdfhssg", + "title": "comfyui_EvoSearch [WIP]", + "reference": "https://github.com/hdfhssg/comfyui_EvoSearch", + "files": [ + "https://github.com/hdfhssg/comfyui_EvoSearch" + ], + "install_type": "git-clone", + "description": "NODES: EvoSearch_FLUX, EvoSearch_SD21, EvoSearch_WAN, EvolutionScheduleGenerator, GuidanceRewardsGenerator" + }, + { + "author": "simonjaq", + "title": "ComfyUI-sjnodes", + "reference": "https://github.com/simonjaq/ComfyUI-sjnodes", + "files": [ + "https://github.com/simonjaq/ComfyUI-sjnodes" + ], + "install_type": "git-clone", + "description": "Some modified ComfyUI custom nodes" + }, + { + "author": "A4P7J1N7M05OT", + "title": "ComfyUI-VAELoaderSDXLmod", + "reference": "https://github.com/A4P7J1N7M05OT/ComfyUI-VAELoaderSDXLmod", + "files": [ + "https://github.com/A4P7J1N7M05OT/ComfyUI-VAELoaderSDXLmod" + ], + "install_type": "git-clone", + "description": "NODES: Modified SDXL VAE Loader, Empty Latent Image Variable" + }, + { + "author": "xzuyn", + "title": "xzuynodes-ComfyUI", + "reference": "https://github.com/xzuyn/ComfyUI-xzuynodes", + "files": [ + "https://github.com/xzuyn/ComfyUI-xzuynodes" + ], + "install_type": "git-clone", + "description": "NODES: First/Last Frame (XZ), Resize Image (Original KJ), Resize Image (XZ), CLIP Text Encode (XZ), Load CLIP (XZ), TripleCLIPLoader (XZ), WanImageToVideo (XZ)" + }, + { + "author": "gilons", + "title": "ComfyUI-GoogleDrive-Downloader [UNSAFE]", + "reference": "https://github.com/gilons/ComfyUI-GoogleDrive-Downloader", + "files": [ + "https://github.com/gilons/ComfyUI-GoogleDrive-Downloader" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for downloading files from Google Drive.[w/There is a vulnerability that allows saving a remote file to an arbitrary local path.]" + }, + { + "author": "moonwhaler", + "title": "ComfyUI-FileBrowserAPI [UNSAFE]", + "reference": "https://github.com/GalactusX31/ComfyUI-FileBrowserAPI", + "files": [ + "https://github.com/GalactusX31/ComfyUI-FileBrowserAPI" + ], + "install_type": "git-clone", + "description": "A general-purpose, dependency-free File and Folder Browser API for ComfyUI custom nodes.[w/path traversal vulnerability]" + }, + { + "author": "moonwhaler", + "title": "comfyui-moonpack", + "reference": "https://github.com/moonwhaler/comfyui-moonpack", + "files": [ + "https://github.com/moonwhaler/comfyui-moonpack" + ], + "install_type": "git-clone", + "description": "NODES: Proportional Dimension, Simple String Replace, Regex String Replace, VACE Looper Frame Scheduler" + }, + { + "author": "DreamsInAutumn", + "title": "ComfyUI-Autumn-LLM-Nodes", + "reference": "https://github.com/DreamsInAutumn/ComfyUI-Autumn-LLM-Nodes", + "files": [ + "https://github.com/DreamsInAutumn/ComfyUI-Autumn-LLM-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Gemini-Image-To-Prompt, Gemini-Prompt-Builder, LLM-Prompt-Builder" + }, + { + "author": "alexgenovese", + "title": "ComfyUI-Reica", + "reference": "https://github.com/alexgenovese/ComfyUI-Reica", + "files": [ + "https://github.com/alexgenovese/ComfyUI-Reica" + ], + "install_type": "git-clone", + "description": "NODES: 'Reica GCP: Read Image', 'Reica GCP: Write Image & Get URL', 'Reica Text Image Display', 'Reica Read Image URL', 'Reica URL Image Loader Filename', 'Reica API: Send HTTP Notification', 'Insert Anything'" + }, + { + "author": "yichengup", + "title": "ComfyUI-Transition", + "reference": "https://github.com/yichengup/ComfyUI-Transition", + "files": [ + "https://github.com/yichengup/ComfyUI-Transition" + ], + "install_type": "git-clone", + "description": "NODES: Linear Transition, Gradient Transition, Dual Line Transition, Sequence Transition, Circular Transition, Circular Sequence Transition" + }, + { + "author": "wildminder", + "title": "ComfyUI-MagCache [NAME CONFLICT|WIP]", + "reference": "https://github.com/wildminder/ComfyUI-MagCache", + "files": [ + "https://github.com/wildminder/ComfyUI-MagCache" + ], + "install_type": "git-clone", + "description": "official implementation of [zehong-ma/MagCache](https://github.com/zehong-ma/MagCache) for ComfyUI" + }, + { + "author": "laubsauger", + "title": "ComfyUI Storyboard [WIP]", + "reference": "https://github.com/laubsauger/comfyui-storyboard", + "files": [ + "https://github.com/laubsauger/comfyui-storyboard" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI provides a markdown renderer to display formatted text and notes within your workflow." + }, + { + "author": "IsItDanOrAi", + "title": "ComfyUI-exLoadout [WIP]", + "reference": "https://github.com/IsItDanOrAi/ComfyUI-exLoadout", + "files": [ + "https://github.com/IsItDanOrAi/ComfyUI-exLoadout" + ], + "install_type": "git-clone", + "description": "exLoadout is a suite of lightweight ComfyUI custom nodes that let you define and switch between full loadouts stored in an Excel sheet. A loadout could include any node inputs that expect string values—models (checkpoints, CLIP, VAE, ControlNets, LoRAs, UNets), numeric or text variables (CFG, sampler names, scheduler types, etc.)—all pulled from a row in your sheet. By selecting a row, you instantly apply all of its settings in your workflow, with built‑in support for editing and reading those cells right inside the UI." + }, + { + "author": "grokuku", + "title": "ComfyUI-Holaf-Terminal [UNSAFE]", + "reference": "https://github.com/grokuku/ComfyUI-Holaf-Utilities", + "files": [ + "https://github.com/grokuku/ComfyUI-Holaf-Utilities" + ], + "install_type": "git-clone", + "description": "Interactive Terminal in a node for ComfyUI[w/This custom extension provides a remote web-based shell (terminal) interface to the machine running the ComfyUI server. By installing and using this extension, you are opening a direct, powerful, and potentially dangerous access point to your system.]" + }, + { + "author": "usrname0", + "title": "ComfyUI-AllergicPack [WIP]", + "reference": "https://github.com/usrname0/ComfyUI-AllergicPack", + "files": [ + "https://github.com/usrname0/ComfyUI-AllergicPack" + ], + "install_type": "git-clone", + "description": "This package is not ready for primetime but I'm making it public anyway. If I'm using the node then I'm putting it here. Might make it more official later. Use at your own risk." + }, + { + "author": "cesilk10", + "title": "cesilk-comfyui-nodes", + "reference": "https://github.com/cesilk10/cesilk-comfyui-nodes", + "files": [ + "https://github.com/cesilk10/cesilk-comfyui-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Save and Upload to S3, SDXL Image Sizes" + }, + { + "author": "COcisuts", + "title": "CObot-ComfyUI-WhisperToTranscription [WIP]", + "reference": "https://github.com/COcisuts/CObot-ComfyUI-WhisperToTranscription", + "files": [ + "https://github.com/COcisuts/CObot-ComfyUI-WhisperToTranscription" + ], + "install_type": "git-clone", + "description": "CObot-ComfyUI-WhisperToTranscription\nNOTE: missing requirements.txt" + }, + { + "author": "xuhuan2048", + "title": "ExtractStoryboards [WIP]", + "reference": "https://github.com/gitadmini/comfyui_extractstoryboards", + "files": [ + "https://github.com/gitadmini/comfyui_extractstoryboards" + ], + "install_type": "git-clone", + "description": "A tool for decomposing video storyboards, which can obtain storyboards and keyframes" + }, + { + "author": "jinchanz", + "title": "ComfyUI-AliCloud-Bailian [WIP]", + "reference": "https://github.com/jinchanz/ComfyUI-AliCloud-Bailian", + "files": [ + "https://github.com/jinchanz/ComfyUI-AliCloud-Bailian" + ], + "install_type": "git-clone", + "description": "This is a collection of custom nodes for invoking Alibaba Cloud's DashScope API within ComfyUI.\nNOTE: The files in the repo are not organized." + }, + { + "author": "Yukinoshita-Yukinoe", + "title": "ComfyUI-KontextOfficialNode", + "reference": "https://github.com/Yukinoshita-Yukinoe/ComfyUI-KontextOfficialNode", + "files": [ + "https://github.com/Yukinoshita-Yukinoe/ComfyUI-KontextOfficialNode" + ], + "install_type": "git-clone", + "description": "NODES: Kontext Text-to-Image (Official Max), Kontext Image Editing (Official Max)" + }, + { + "author": "takoyaki1118", + "title": "ComfyUI_PromptExtractor", + "reference": "https://github.com/takoyaki1118/ComfyUI_PromptExtractor", + "files": [ + "https://github.com/takoyaki1118/ComfyUI_PromptExtractor" + ], + "install_type": "git-clone", + "description": "NODES: Custom Load Image With Path, Prompt Extractor Node" + }, + { + "author": "littleowl", + "title": "ComfyUI-MV-HECV", + "reference": "https://github.com/littleowl/ComfyUI-MV-HECV", + "files": [ + "https://github.com/littleowl/ComfyUI-MV-HECV" + ], + "install_type": "git-clone", + "description": "ComfyUI export of 3D Videos and Images Compatible with VR / XR, including the AVP." + }, + { + "author": "BinglongLi", + "title": "ComfyUI_ToolsForAutomask", + "reference": "https://github.com/BinglongLi/ComfyUI_ToolsForAutomask", + "files": [ + "https://github.com/BinglongLi/ComfyUI_ToolsForAutomask" + ], + "install_type": "git-clone", + "description": "NODES: Directional Mask Expansion, Remove Small Regions Mask, Precise Subtract Mask, Precise Add Mask, Closing Mask, Opening Mask, Conditional Mask Selector, Prune Thin Branches Mask, Mask Fill Gaps Convex Hull" + }, + { + "author": "strhwste", + "title": "CSV Utils [WIP]", + "reference": "https://github.com/strhwste/comfyui_csv_utils", + "files": [ + "https://github.com/strhwste/comfyui_csv_utils" + ], + "install_type": "git-clone", + "description": "Custom CSV handling nodes for ComfyUI\nNOTE: invalid pyproject.toml" + }, + { + "author": "retech995", + "title": "ComfyUI_SaveImageBulk [UNSAFE]", + "reference": "https://github.com/retech995/Save_Florence2_Bulk_Prompts", + "files": [ + "https://github.com/retech995/Save_Florence2_Bulk_Prompts" + ], + "install_type": "git-clone", + "description": "This comfyui node helps save image[w/This nodepack contains a node that can write files to an arbitrary path.]" + }, + { + "author": "Oct7", + "title": "ComfyUI-LaplaMask", + "reference": "https://github.com/Oct7/ComfyUI-LaplaMask", + "files": [ + "https://github.com/Oct7/ComfyUI-LaplaMask" + ], + "install_type": "git-clone", + "description": "NODES: Blur→Mask" + }, + { + "author": "etng", + "title": "ComfyUI-Heartbeat [UNSAFE]", + "reference": "https://github.com/etng/ComfyUI-Heartbeat", + "files": [ + "https://github.com/etng/ComfyUI-Heartbeat" + ], + "install_type": "git-clone", + "description": "A plugin for ComfyUI that sends periodic heartbeat requests to a configured gateway, including system information and node status." + }, + { + "author": "Novavision0313", + "title": "ComfyUI-NVVS [WIP]", + "reference": "https://github.com/Novavision0313/ComfyUI-NVVS", + "files": [ + "https://github.com/Novavision0313/ComfyUI-NVVS" + ], + "install_type": "git-clone", + "description": "A ComfyUI plugin customized by NOVEVISION\nNOTE: The files in the repo are not organized." + }, + { + "author": "zackabrams", + "title": "ComfyUI-KeySyncWrapper [WIP]", + "reference": "https://github.com/zackabrams/ComfyUI-KeySyncWrapper", + "files": [ + "https://github.com/zackabrams/ComfyUI-KeySyncWrapper" + ], + "install_type": "git-clone", + "description": "implementation of KeySync in ComfyUI" + }, + { + "author": "godric8", + "title": "ComfyUI_Step1X-Edit [NAME CONFLICT]", + "reference": "https://github.com/godric8/ComfyUI_Step1X-Edit", + "files": [ + "https://github.com/godric8/ComfyUI_Step1X-Edit" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for Step1X-Edit" + }, + { + "author": "violet0927", + "title": "ComfyUI-Direct3DS2 [WIP]", + "reference": "https://github.com/y4my4my4m/ComfyUI_Direct3DS2", + "files": [ + "https://github.com/y4my4my4m/ComfyUI_Direct3DS2" + ], + "install_type": "git-clone", + "description": "Direct3D-S2 plugin for ComfyUI. [w/Doesn't work yet]" + }, + { + "author": "gamtruliar", + "title": "ComfyUI-N_SwapInput [UNSAFE]", + "reference": "https://github.com/gamtruliar/ComfyUI-N_SwapInput", + "files": [ + "https://github.com/gamtruliar/ComfyUI-N_SwapInput" + ], + "install_type": "git-clone", + "description": "This is a simple tool for swapping input folders with custom suffix in comfy-UI[w/]This nodepack performs deletion operations on local files and contains a vulnerability that allows arbitrary paths to be deleted." + }, + { + "author": "bulldog68", + "title": "ComfyUI_FMJ [WIP]", + "reference": "https://github.com/bulldog68/ComfyUI_FMJ", + "files": [ + "https://github.com/bulldog68/ComfyUI_FMJ" + ], + "install_type": "git-clone", + "description": "Generate random prompts easily for FMJ.\nNOTE: The files in the repo are not organized." + }, + { + "author": "amamisonlyuser", + "title": "MixvtonComfyui [WIP]", + "reference": "https://github.com/amamisonlyuser/MixvtonComfyui", + "files": [ + "https://github.com/amamisonlyuser/MixvtonComfyui" + ], + "install_type": "git-clone", + "description": "NODES: CXH_Leffa_Viton_Load, CXH_Leffa_Viton_Run\nNOTE: The files in the repo are not organized." + }, + { + "author": "pictorialink", + "title": "comfyui-static-resource[UNSAFE]", + "reference": "https://github.com/pictorialink/ComfyUI-static-resource", + "files": [ + "https://github.com/pictorialink/ComfyUI-static-resource" + ], + "install_type": "git-clone", + "description": "Use model bending to push your model beyond its visuals' limits. These nodes allow you to apply transformations to the intemediate densoising steps during sampling, e.g. add, multiplty, scale, rotate, dilate, erode ..etc.[w/This nodepack includes a feature that allows downloading remote files to arbitrary local paths. This is a vulnerability that can lead to Remote Code Execution.]" + }, + { + "author": "brace-great", + "title": "comfyui-mc [WIP]", + "reference": "https://github.com/brace-great/comfyui-mc", + "files": [ + "https://github.com/brace-great/comfyui-mc" + ], + "install_type": "git-clone", + "description": "NODES: IncrementCounterOnMatch\nNOTE: The files in the repo are not organized." + }, + { + "author": "blueraincoatli", + "title": "ComfyModelCleaner [WIP]", + "reference": "https://github.com/blueraincoatli/ComfyUI-Model-Cleaner", + "files": [ + "https://github.com/blueraincoatli/ComfyUI-Model-Cleaner" + ], + "install_type": "git-clone", + "description": "This plugin helps identify and clean up unused model files in ComfyUI installations. It analyzes workflows, custom nodes, and model usage to safely identify redundant files." + }, + { + "author": "avocadori", + "title": "ComfyUI Audio Amplitude Converter [WIP]", + "reference": "https://github.com/avocadori/ComfyUI-AudioAmplitudeConverter", + "files": [ + "https://github.com/avocadori/ComfyUI-AudioAmplitudeConverter" + ], + "install_type": "git-clone", + "description": "This is a high-performance custom node for ComfyUI that performs audio amplitude conversion.\nNOTE: The files in the repo are not organized." + }, + { + "author": "wTechArtist", + "title": "ComfyUI_VVL_VideoCamera", + "reference": "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera", + "files": [ + "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera" + ], + "install_type": "git-clone", + "description": "NODES: VVL Video Camera Estimator, VVL Video Frame Extractor" + }, + { + "author": "wTechArtist", + "title": "ComfyUI_VVL_Segmentation [WIP]", + "reference": "https://github.com/wTechArtist/ComfyUI_VVL_Segmentation", + "files": [ + "https://github.com/wTechArtist/ComfyUI_VVL_Segmentation" + ], + "install_type": "git-clone", + "description": "NODES: VVL Mask2Former Panoptic (Enhanced), VVL OneFormer Universal Segmentation\nNOTE: The files in the repo are not organized." + }, + { + "author": "lum3on", + "title": "comfyui_RollingDepth [WIP]", + "reference": "https://github.com/lum3on/comfyui_RollingDepth", + "files": [ + "https://github.com/lum3on/comfyui_RollingDepth" + ], + "install_type": "git-clone", + "description": "ComfyuI Needs longer to start the first time, because the mode gets downloaded.\nNOTE: The files in the repo are not organized." + }, + { + "author": "abuzreq", + "title": "ComfyUI Model Bending [UNSAFE]", + "reference": "https://github.com/abuzreq/ComfyUI-Model-Bending", + "files": [ + "https://github.com/abuzreq/ComfyUI-Model-Bending" + ], + "install_type": "git-clone", + "description": "Use model bending to push your model beyond its visuals' limits. These nodes allow you to apply transformations to the intemediate densoising steps during sampling, e.g. add, multiplty, scale, rotate, dilate, erode ..etc.[w/This nodepack contains a vulnerability that allows remote code execution.]" + }, + { + "author": "Stable Diffusion VN", + "title": "SDVN Comfy node [UNSAFE]", + "id": "SDVN", + "reference": "https://github.com/StableDiffusionVN/SDVN_Comfy_node", + "files": [ + "https://github.com/StableDiffusionVN/SDVN_Comfy_node" + ], + "install_type": "git-clone", + "description": "Update IC Lora Layout Support Node[w/This nodepack contains a vulnerability that allows remote code execution.]" + }, + { + "author": "Sephrael", + "title": "comfyui_caption-around-image", + "reference": "https://github.com/Sephrael/comfyui_caption-around-image", + "files": [ + "https://github.com/Sephrael/comfyui_caption-around-image" + ], + "install_type": "git-clone", + "description": "NODES: A comfyUI node to create captions around a generated image with the ability to dynamically include generation parameters" + }, + { + "author": "EQXai", + "title": "ComfyUI_EQX", + "reference": "https://github.com/EQXai/ComfyUI_EQX", + "files": [ + "https://github.com/EQXai/ComfyUI_EQX" + ], + "install_type": "git-clone", + "description": "NODES: SaveImage_EQX, File Image Selector, Load Prompt From File - EQX, LoraStackEQX_random, Extract Filename - EQX, Extract LORA name - EQX, NSFW Detector EQX, NSFW Detector Advanced EQX" + }, + { + "author": "yincangshiwei", + "title": "ComfyUI-SEQLToolNode", + "reference": "https://github.com/yincangshiwei/ComfyUI-SEQLToolNode", + "files": [ + "https://github.com/yincangshiwei/ComfyUI-SEQLToolNode" + ], + "install_type": "git-clone", + "description": "NODES: ImageCropAlphaNode (Image), CanvasFusionNode (Image)" + }, + { + "author": "gabe-init", + "title": "comfyui_ui_render [UNSAFE]", + "reference": "https://github.com/gabe-init/comfyui_ui_render", + "files": [ + "https://github.com/gabe-init/comfyui_ui_render" + ], + "install_type": "git-clone", + "description": "ComfyUI HTML Renderer Node - Display rich HTML content within ComfyUI nodes[w/This nodepack contains nodes that potentially have XSS vulnerabilities.]" + }, + { + "author": "gabe-init", + "title": "ComfyUI LM Studio Node [WIP]", + "reference": "https://github.com/gabe-init/ComfyUI-LM-Studio", + "files": [ + "https://github.com/gabe-init/ComfyUI-LM-Studio" + ], + "install_type": "git-clone", + "description": "A powerful ComfyUI custom node that seamlessly integrates LM Studio's local language models into your ComfyUI workflows. This node supports both text-only and multimodal (text + image) inputs, making it perfect for complex AI-driven creative workflows.\nNOTE: The files in the repo are not organized." + }, + { + "author": "LyazS", + "title": "ComfyUI-aznodes", + "reference": "https://github.com/LyazS/ComfyUI-aznodes", + "files": [ + "https://github.com/LyazS/ComfyUI-aznodes" + ], + "install_type": "git-clone", + "description": "NODES: CrossFadeImageSequence, SaveImageAZ" + }, + { + "author": "truebillyblue", + "title": "lC.ComfyUI_epistemic_nodes [WIP]", + "reference": "https://github.com/truebillyblue/lC.ComfyUI_epistemic_nodes", + "files": [ + "https://github.com/truebillyblue/lC.ComfyUI_epistemic_nodes" + ], + "install_type": "git-clone", + "description": "NODES: lC L1 Startle, lC L2 FrameClick, lC L3 KeymapClick, lC L4 AnchorClick, lC L5 FieldClick, lC L6 ReflectBoom, lC Epistemic Pipeline (L1-L7), Create PBI (lC), Query PBIs (lC), Update PBI (lC), lC API LLM Agent, lC Web LLM Agent, ...\nNOTE: The files in the repo are not organized." + }, + { + "author": "aklevecz", + "title": "ComfyUI-AutoPrompt [WIP]", + "reference": "https://github.com/aklevecz/ComfyUI-AutoPrompt", + "files": [ + "https://github.com/aklevecz/ComfyUI-AutoPrompt" + ], + "install_type": "git-clone", + "description": "NODES: Ollama Prompt Generator, Ollama Model Lister, Ollama Chat, Text Display" + }, + { + "author": "AlexYez", + "title": "ComfyUI Timesaver Nodes", + "reference": "https://github.com/AlexYez/comfyui-timesaver", + "files": [ + "https://github.com/AlexYez/comfyui-timesaver" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes from [Timesaver](https://github.com/AlexYez/comfyui-timesaver)." + }, + { + "author": "aa-parky", + "title": "pipemind-comfyui", + "reference": "https://github.com/aa-parky/pipemind-comfyui", + "files": [ + "https://github.com/aa-parky/pipemind-comfyui" + ], + "install_type": "git-clone", + "description": "NODES: Random Line from File (Seeded), Keyword Prompt Composer, Simple Prompt Combiner (5x), Boolean Switch (Any), Select Line from TxT (Any), Multiline Text Input, Flux 2M Aspect Ratios, SDXL Aspect Ratios, Room Mapper, ..." + }, + { + "author": "pacchikAI", + "title": "ImagePromptBatch [UNSAFE]", + "reference": "https://github.com/pacchikAI/ImagePromptBatch", + "files": [ + "https://github.com/pacchikAI/ImagePromptBatch" + ], + "install_type": "git-clone", + "description": "NODES: Load Image and Prompt[w/This includes a node that can read the contents of a `.csv` file from an arbitrary path.]" + }, + { + "author": "papcorns", + "title": "ComfyUI-Papcorns-Node-UploadToGCS", + "reference": "https://github.com/papcorns/ComfyUI-Papcorns-Node-UploadToGCS", + "files": [ + "https://github.com/papcorns/ComfyUI-Papcorns-Node-UploadToGCS" + ], + "install_type": "git-clone", + "description": "NODES: Upload Image To GCS" + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "Qwen-2.5 in ComfyUI [NAME CONFLICT]", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen" + ], + "install_type": "git-clone", + "description": "Using Qwen-2.5 in ComfyUI" + }, + { + "author": "Charonartist", + "title": "gabe-init [WIP]", + "reference": "https://github.com/gabe-init/ComfyUI-Repo-Eater", + "files": [ + "https://github.com/gabe-init/ComfyUI-Repo-Eater" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that ingests GitHub repositories and outputs their content as text along with token count.\nNOTE: The files in the repo are not organized." + }, + { + "author": "Charonartist", + "title": "ComfyUI-send-eagle-pro", + "reference": "https://github.com/Charonartist/ComfyUI-send-eagle-pro_2", + "files": [ + "https://github.com/Charonartist/ComfyUI-send-eagle-pro_2" + ], + "install_type": "git-clone", + "description": "Eagle integration extension node for ComfyUI (Pro version)" + }, + { + "author": "Mervent", + "title": "comfyui-yaml-prompt", + "reference": "https://github.com/Mervent/comfyui-yaml-prompt", + "files": [ + "https://github.com/Mervent/comfyui-yaml-prompt" + ], + "install_type": "git-clone", + "description": "NODES: YAMLPromptParser" + }, + { + "author": "dhpdong", + "title": "ComfyUI-IPAdapter-Flux-Repair", + "reference": "https://github.com/dhpdong/ComfyUI-IPAdapter-Flux-Repair", + "files": [ + "https://github.com/dhpdong/ComfyUI-IPAdapter-Flux-Repair" + ], + "install_type": "git-clone", + "description": "The IPAdapter-Flux node may cause some GPU memory to not be properly released during multiple inferences or when alternating between two nodes, eventually leading to a memory overflow. This project addresses and fixes that issue." + }, + { + "author": "usman2003", + "title": "ComfyUI-RaceDetect", + "reference": "https://github.com/usman2003/ComfyUI-RaceDetect", + "files": [ + "https://github.com/usman2003/ComfyUI-RaceDetect" + ], + "install_type": "git-clone", + "description": "NODES: Race Detection V2" + }, + { + "author": "Mervent", + "title": "comfyui-telegram-send", + "reference": "https://github.com/Mervent/comfyui-telegram-send", + "files": [ + "https://github.com/Mervent/comfyui-telegram-send" + ], + "install_type": "git-clone", + "description": "NODES: TelegramSend, TelegramReply" + }, + { + "author": "qlikpetersen", + "title": "ComfyUI-AI_Tools [UNSAFE]", + "reference": "https://github.com/qlikpetersen/ComfyUI-AI_Tools", + "files": [ + "https://github.com/qlikpetersen/ComfyUI-AI_Tools" + ], + "install_type": "git-clone", + "description": "NODES: DoLogin, HttpRequest, Json2String, String2Json, CreateListString, CreateListJSON, Query_OpenAI, Image_Attachment, JSON_Attachment, String_Attachment, RunPython\n[w/This nodepack contains a node with a vulnerability that allows arbitrary code execution.]" + }, + { + "author": "MuAIGC", + "title": "DMXAPI Nodes [WIP]", + "reference": "https://github.com/MuAIGC/ComfyUI-DMXAPI_mmx", + "files": [ + "https://github.com/MuAIGC/ComfyUI-DMXAPI_mmx" + ], + "install_type": "git-clone", + "description": "DMXAPI integration for ComfyUI with Seedream-3.0 text-to-image model\nNOTE: invalid pyproject.toml" + }, + { + "author": "Hapseleg", + "title": "This n that (Hapse)", + "reference": "https://github.com/Hapseleg/ComfyUI-This-n-That", + "files": [ + "https://github.com/Hapseleg/ComfyUI-This-n-That" + ], + "install_type": "git-clone", + "description": "Comfyui custom nodes I use for... This n That..." + }, + { + "author": "matDobek", + "title": "ComfyUI_duck", + "reference": "https://github.com/matDobek/ComfyUI_duck", + "files": [ + "https://github.com/matDobek/ComfyUI_duck" + ], + "install_type": "git-clone", + "description": "NODES: Combine Images (duck)" + }, + { + "author": "usman2003", + "title": "ComfyUI-Classifiers", + "reference": "https://github.com/usman2003/ComfyUI-Classifiers", + "files": [ + "https://github.com/usman2003/ComfyUI-Classifiers" + ], + "install_type": "git-clone", + "description": "NODES: Gender Classification" + }, + { + "author": "wTechArtist", + "title": "ComfyUI_vvl_BBOX", + "reference": "https://github.com/wTechArtist/ComfyUI_vvl_BBOX", + "files": [ + "https://github.com/wTechArtist/ComfyUI_vvl_BBOX" + ], + "install_type": "git-clone", + "description": "NODES: vvl BBox Input" + }, + { + "author": "zhengxyz123", + "title": "zhengxyz123/ComfyUI-CLIPSeg [NAME CONFLICT]", + "reference": "https://github.com/zhengxyz123/ComfyUI-CLIPSeg", + "files": [ + "https://github.com/zhengxyz123/ComfyUI-CLIPSeg" + ], + "install_type": "git-clone", + "description": "Using CLIPSeg model to generate masks for image inpainting tasks based on text or image prompts." + }, + { + "author": "Alazuaka", + "title": "ComfyUI Image Analysis Toolkit [WIP]", + "reference": "https://github.com/ThatGlennD/ComfyUI-Image-Analysis-Tools", + "files": [ + "https://github.com/ThatGlennD/ComfyUI-Image-Analysis-Tools" + ], + "install_type": "git-clone", + "description": "A suite of custom ComfyUI nodes built to evaluate and diagnose the technical qualities of images—especially those generated by AI models. Rather than creating visuals, these tools measure them, offering precise insights into sharpness, noise, exposure, color balance, and more.\nNOTE: The files in the repo are not organized." + }, + { + "author": "trampolin", + "title": "comfy-ui-scryfall", + "reference": "https://github.com/trampolin/comfy-ui-scryfall", + "files": [ + "https://github.com/trampolin/comfy-ui-scryfall" + ], + "install_type": "git-clone", + "description": "Some ComfyUI nodes to fetch cards from scryfall" + }, + { + "author": "pomelyu", + "title": "cy-prompt-tools", + "reference": "https://github.com/pomelyu/cy-prompt-tools", + "files": [ + "https://github.com/pomelyu/cy-prompt-tools" + ], + "install_type": "git-clone", + "description": "prompt tools for comfyui" + }, + { + "author": "Alazuaka", + "title": "ES_nodes for ComfyUI by Alazuka [WIP]", + "reference": "https://github.com/Alazuaka/comfyui-lora-stack-node", + "files": [ + "https://github.com/Alazuaka/comfyui-lora-stack-node" + ], + "install_type": "git-clone", + "description": "Node for LoRA stack management in ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "fuzr0dah", + "title": "comfyui-sceneassembly", + "reference": "https://github.com/fuzr0dah/comfyui-sceneassembly", + "files": [ + "https://github.com/fuzr0dah/comfyui-sceneassembly" + ], + "install_type": "git-clone", + "description": "A bunch of nodes I created that I also find useful." + }, + { + "author": "PabloGrant", + "title": "comfyui-giraffe-test-panel", + "reference": "https://github.com/PabloGrant/comfyui-giraffe-test-panel", + "files": [ + "https://github.com/PabloGrant/comfyui-giraffe-test-panel" + ], + "install_type": "git-clone", + "description": "General-purpose test node. [w/Use at your own risk. No warranties. No guaranteed support or future updates. Feel free to fork, but remember to share in case anyone else can benefit.]" + }, + { + "author": "lrzjason", + "title": "Comfyui-Condition-Utils [WIP]", + "reference": "https://github.com/lrzjason/Comfyui-Condition-Utils", + "files": [ + "https://github.com/lrzjason/Comfyui-Condition-Utils" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for handling condition tensors in ComfyUI." + }, + { + "author": "gordon123", + "title": "ComfyUI_DreamBoard [WIP]", + "reference": "https://github.com/gordon123/ComfyUI_DreamBoard", + "files": [ + "https://github.com/gordon123/ComfyUI_DreamBoard" + ], + "install_type": "git-clone", + "description": "for making storyboard UNDERCONSTRUCTION!" + }, + { + "author": "erosDiffusion", + "title": "Select key from JSON (Alpha) [UNSAFE]", + "reference": "https://github.com/erosDiffusion/ComfyUI-enricos-json-file-load-and-value-selector", + "files": [ + "https://github.com/erosDiffusion/ComfyUI-enricos-json-file-load-and-value-selector" + ], + "install_type": "git-clone", + "description": "this node lists json files in the ComfyUI input folder[w/If this nodepack is installed and the server is running with remote access enabled, it can read the contents of JSON files located in arbitrary paths.]" + }, + { + "author": "yichengup", + "title": "ComfyUI-YCNodes_Advance", + "reference": "https://github.com/yichengup/ComfyUI-YCNodes_Advance", + "files": [ + "https://github.com/yichengup/ComfyUI-YCNodes_Advance" + ], + "install_type": "git-clone", + "description": "NODES: Face Detector Selector, YC Human Parts Ultra(Advance), Color Match (YC)" + }, + { + "author": "rakki194", + "title": "ComfyUI_WolfSigmas [UNSAFE]", + "reference": "https://github.com/rakki194/ComfyUI_WolfSigmas", + "files": [ + "https://github.com/rakki194/ComfyUI_WolfSigmas" + ], + "install_type": "git-clone", + "description": "This custom nodepack for ComfyUI provides a suite of tools for generating and manipulating sigma schedules for diffusion models. These nodes are particularly useful for fine-tuning the sampling process, experimenting with different step counts, and adapting schedules for specific models.[w/Security Warning: Remote Code Execution]" + }, + { + "author": "xl0", + "title": "q_tools", + "reference": "https://github.com/xl0/q_tools", + "files": [ + "https://github.com/xl0/q_tools" + ], + "install_type": "git-clone", + "description": "NODES: QLoadLatent, QLinearScheduler, QPreviewLatent, QGaussianLatent, QUniformLatent, QKSampler" + }, + { + "author": "virallover", + "reference": "https://github.com/maizerrr/comfyui-code-nodes", + "files": [ + "https://github.com/maizerrr/comfyui-code-nodes" + ], + "install_type": "git-clone", + "description": "NODES: BBox Drawer, BBox Parser, Dummy Passthrough Node, Batch Images (up to 5), Mask Editor, OpenAI GPT-Image-1 Node, GhatGPT Node" + }, + { + "author": "virallover", + "title": "comfyui-virallover", + "reference": "https://github.com/virallover/comfyui-virallover", + "files": [ + "https://github.com/virallover/comfyui-virallover" + ], + "install_type": "git-clone", + "description": "NODES: Download and Load Lora Model Only, Depth Fitter, Brightness Correction, Edge Noise, Feathered Sharpen, Concat Horizontal With Mask" + }, + { + "author": "nobandegani", + "title": "Ino Custom Nodes", + "reference": "https://github.com/nobandegani/comfyui_ino_nodes", + "files": [ + "https://github.com/nobandegani/comfyui_ino_nodes" + ], + "install_type": "git-clone", + "description": "NODES: BeDrive Save Image, BeDrive Save File, BeDrive Get Parent ID, Ino Parse File Path, Ino Not Boolean, Ino Count Files" + }, + { + "author": "jax-explorer", + "title": "ComfyUI-DreamO", + "reference": "https://github.com/jax-explorer/ComfyUI-DreamO", + "files": [ + "https://github.com/jax-explorer/ComfyUI-DreamO" + ], + "install_type": "git-clone", + "description": "[a/https://github.com/bytedance/DreamO](https://github.com/bytedance/DreamO]) ComfyUI Warpper" + }, + { + "author": "SKBv0", + "title": "Retro Engine Node for ComfyUI", + "reference": "https://github.com/SKBv0/ComfyUI-RetroEngine", + "files": [ + "https://github.com/SKBv0/ComfyUI-RetroEngine" + ], + "install_type": "git-clone", + "description": "This custom node integrates [a/EmulatorJS](https://github.com/EmulatorJS/EmulatorJS) into ComfyUI, allowing you to run retro games and capture their screens for your image generation workflows." + }, + { + "author": "brace-great", + "title": "comfyui-eim", + "reference": "https://github.com/brace-great/comfyui-eim", + "files": [ + "https://github.com/brace-great/comfyui-eim" + ], + "install_type": "git-clone", + "description": "NODES: EncryptImage" + }, + { + "author": "p1atdev", + "title": "comfyui-aesthetic-predictor", + "reference": "https://github.com/p1atdev/comfyui-aesthetic-predictor", + "files": [ + "https://github.com/p1atdev/comfyui-aesthetic-predictor" + ], + "install_type": "git-clone", + "description": "NODES: Load Aesthetic Predictor, Predict Aesthetic Score" + }, + { + "author": "barakapa", + "title": "barakapa-nodes", + "reference": "https://github.com/barakapa/barakapa-nodes", + "files": [ + "https://github.com/barakapa/barakapa-nodes" + ], + "install_type": "git-clone", + "description": "Compare and save unique workflows, count tokens in prompt, and other utility." + }, + { + "author": "VictorLopes643", + "title": "ComfyUI-Video-Dataset-Tools [WIP]", + "reference": "https://github.com/VictorLopes643/ComfyUI-Video-Dataset-Tools", + "files": [ + "https://github.com/VictorLopes643/ComfyUI-Video-Dataset-Tools" + ], + "install_type": "git-clone", + "description": "NODES: Video Frame Extractor, Image Frame Saver\nNOTE: The files in the repo are not organized." + }, + { + "author": "George0726", + "title": "ComfyUI-video-accessory [WIP]", + "reference": "https://github.com/George0726/ComfyUI-video-accessory", + "files": [ + "https://github.com/George0726/ComfyUI-video-accessory" + ], + "install_type": "git-clone", + "description": "accessory nodes for video generation" + }, + { + "author": "bheins", + "title": "ComfyUI-glb-to-stl [WIP]", + "reference": "https://github.com/maurorilla/ComfyUI-MisterMR-Nodes", + "files": [ + "https://github.com/maurorilla/ComfyUI-MisterMR-Nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that add drawing capabilities to your workflow.\nNOTE: The files in the repo are not organized." + }, + { + "author": "TheJorseman", + "title": "IntrinsicCompositingClean-ComfyUI", + "reference": "https://github.com/TheJorseman/IntrinsicCompositingClean-ComfyUI", + "files": [ + "https://github.com/TheJorseman/IntrinsicCompositingClean-ComfyUI" + ], + "install_type": "git-clone", + "description": "NODES: DepthModelLoader, NormalsModelLoader, IntrinsicModelLoader, AlbedoModelLoader, ReshadingModelLoader, ReshadingProcessor, ...\nNOTE: The files in the repo are not organized." + }, + { + "author": "bheins", + "title": "ComfyUI-glb-to-stl [WIP]", + "reference": "https://github.com/bheins/ComfyUI-glb-to-stl", + "files": [ + "https://github.com/bheins/ComfyUI-glb-to-stl" + ], + "install_type": "git-clone", + "description": "GLB conversion to STL node for ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "cyberhirsch", + "title": "seb_nodes [WIP]", + "reference": "https://github.com/cyberhirsch/seb_nodes", + "files": [ + "https://github.com/cyberhirsch/seb_nodes" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI providing more control over image saving, including dynamic subfolder creation and a convenient button to open the last used output folder directly from the UI.\nNOTE: The files in the repo are not organized." + }, + { + "author": "Anonymzx", + "title": "ComfyUI-Indonesia-TTS [WIP]", + "reference": "https://github.com/Anonymzx/ComfyUI-Indonesia-TTS", + "files": [ + "https://github.com/Anonymzx/ComfyUI-Indonesia-TTS" + ], + "description": "Repositori ini menyediakan integrasi model Text-to-Speech (TTS) Bahasa Indonesia dari Facebook (MMS-TTS-IND) ke dalam ComfyUI, sehingga Anda dapat langsung menyintesis suara berbahasa Indonesia dengan kontrol penuh via antarmuka node-based.\nNOTE: The files in the repo are not organized.", + "install_type": "git-clone" + }, + { + "author": "3dmindscapper", + "title": "ComfyUI-Sam-Mesh [WIP]", + "reference": "https://github.com/3dmindscapper/ComfyUI-Sam-Mesh", + "files": [ + "https://github.com/3dmindscapper/ComfyUI-Sam-Mesh" + ], + "install_type": "git-clone", + "description": "comfyui implementation of SaMesh segmentation of 3d meshes\nNOTE: The files in the repo are not organized." + }, + { + "author": "shinich39", + "title": "comfyui-run-js [UNSAFE]", + "reference": "https://github.com/shinich39/comfyui-run-js", + "files": [ + "https://github.com/shinich39/comfyui-run-js" + ], + "description": "Manipulate workflow via javascript on node.", + "install_type": "git-clone" + }, + { + "author": "fangg2000", + "title": "ComfyUI-SenseVoice [WIP]", + "reference": "https://github.com/fangg2000/ComfyUI-SenseVoice", + "files": [ + "https://github.com/fangg2000/ComfyUI-SenseVoice" + ], + "description": "A comfyui node plug-in developed based on the SenseVoise project, and a simple recording node.\nNOTE: The files in the repo are not organized.", + "install_type": "git-clone" + }, + { + "author": "risunobushi", + "title": "ComfyUI_FaceMesh_Eyewear_Mask", + "reference": "https://github.com/risunobushi/ComfyUI_FaceMesh_Eyewear_Mask", + "files": [ + "https://github.com/risunobushi/ComfyUI_FaceMesh_Eyewear_Mask" + ], + "description": "NODES: Face Mesh Eyewear Mask, OpenPose Eyewear Mask (DWPose), Mask From Facial Keypoints", + "install_type": "git-clone" + }, + { + "author": "machinesarenotpeople", + "title": "comfyui-energycost", + "reference": "https://github.com/machinesarenotpeople/comfyui-energycost", + "files": [ + "https://github.com/machinesarenotpeople/comfyui-energycost" + ], + "description": "NODES: Energy Cost Timer, Energy Cost Calculator", + "install_type": "git-clone" + }, + { + "author": "xqqe", + "title": "honey_nodes [WIP]", + "reference": "https://github.com/xqqe/honey_nodes", + "files": [ + "https://github.com/xqqe/honey_nodes" + ], + "description": "honey nodes for comfyui\nNOTE: The files in the repo are not organized.", + "install_type": "git-clone" + }, + { + "author": "Raidez", + "title": "Kuniklo Collection", + "reference": "https://github.com/Raidez/comfyui-kuniklo-collection", + "files": [ + "https://github.com/Raidez/comfyui-kuniklo-collection" + ], + "description": "NODES: Properties, Apply SVG to Image", + "install_type": "git-clone" + }, + { + "author": "AhBumm", + "title": "ComfyUI_MangaLineExtraction", + "reference": "https://github.com/AhBumm/ComfyUI_MangaLineExtraction-hf", + "files": [ + "https://github.com/AhBumm/ComfyUI_MangaLineExtraction-hf" + ], + "description": "p1atdev/MangaLineExtraction-hf as a node in comfyui", + "install_type": "git-clone" + }, + { + "author": "Kur0butiMegane", + "title": "Comfyui-StringUtils", + "reference": "https://github.com/Kur0butiMegane/Comfyui-StringUtils2", + "files": [ + "https://github.com/Kur0butiMegane/Comfyui-StringUtils2" + ], + "install_type": "git-clone", + "description": "NODES: Normalizer, Splitter, Selector, XML Parser, XML Parser, Make Property, Add XML Tag, Is String Empty, Cond Passthrough, CLIP Passthrough, ClipRegion Passthrough, Scheduler Selector (Impact), Scheduler Selector (Inspire), Save Text, XML to Cutoff" + }, + { + "author": "ronaldstg", + "title": "comfyui-plus-integrations [WIP]", + "reference": "https://github.com/ronalds-eu/comfyui-plus-integrations", + "files": [ + "https://github.com/ronalds-eu/comfyui-plus-integrations" + ], + "install_type": "git-clone", + "description": "NODES: Image Pass Through, Upload Image to S3\nNOTE: The files in the repo are not organized." + }, + { + "author": "kevin314", + "title": "ComfyUI-FastVideo", + "reference": "https://github.com/kevin314/ComfyUI-FastVideo", + "files": [ + "https://github.com/kevin314/ComfyUI-FastVideo" + ], + "description": "NODES: Video Generator, Inference Args, VAE Config, Text Encoder Config, DIT Config", + "install_type": "git-clone" + }, + { + "author": "benda1989", + "title": "Comfyui lama remover [WIP]", + "reference": "https://github.com/benda1989/WaterMarkRemover_ComfyUI", + "files": [ + "https://github.com/benda1989/WaterMarkRemover_ComfyUI" + ], + "install_type": "git-clone", + "description": "A very simple ComfyUI node to remove item like image/video with mask watermark\nNOTE: The files in the repo are not organized." + }, + { + "author": "3dmindscapper", + "title": "ComfyUI-PartField [WIP]", + "reference": "https://github.com/3dmindscapper/ComfyUI-PartField", + "files": [ + "https://github.com/3dmindscapper/ComfyUI-PartField" + ], + "install_type": "git-clone", + "description": "ComfyUI implementation of the partfield nvidea segmentation models\nNOTE: The files in the repo are not organized." + }, + { + "author": "shinich39", + "title": "comfyui-nothing-happened", + "reference": "httphttps://github.com/shinich39/comfyui-nothing-happened", + "files": [ + "https://github.com/shinich39/comfyui-nothing-happened" + ], + "description": "Save image and keep metadata.", + "install_type": "git-clone" + }, + { + "author": "CY-CHENYUE", + "title": "ComfyUI-FramePack-HY", + "reference": "https://github.com/CY-CHENYUE/ComfyUI-FramePack-HY", + "files": [ + "https://github.com/CY-CHENYUE/ComfyUI-FramePack-HY" + ], + "description": "FramePack in ComfyUI", + "install_type": "git-clone" + }, + { + "author": "silveroxides", + "title": "ComfyUI_ReduxEmbedToolkit", + "reference": "https://github.com/silveroxides/ComfyUI_ReduxEmbedToolkit", + "files": [ + "https://github.com/silveroxides/ComfyUI_ReduxEmbedToolkit" + ], + "install_type": "git-clone", + "description": "Custom nodes for managing, saving and loading of Redux/Style based embeddings." + }, + { + "author": "StaffsGull", + "title": "comfyui_scene_builder [WIP]", + "reference": "https://github.com/StaffsGull/comfyui_scene_builder", + "files": [ + "https://github.com/StaffsGull/comfyui_scene_builder" + ], + "install_type": "git-clone", + "description": "NODES: CharacterBuilderNode, ClothingItemNode, ClothingMergerNode, EnvironmentBuilderNode, MergeCharactersNode, PhotoStyleBuilderNode, SceneCombinerNode\nNOTE: The files in the repo are not organized." + }, + { + "author": "gagaprince", + "title": "ComfyUI_gaga_utils", + "reference": "https://github.com/gagaprince/ComfyUI_gaga_utils", + "files": [ + "https://github.com/gagaprince/ComfyUI_gaga_utils" + ], + "install_type": "git-clone", + "description": "NODES: GagaGetFileList, GagaGetStringListSize, GagaSplitStringToList, GagaTest, GagaBatchStringReplace" + }, + { + "author": "ftechmax", + "title": "ComfyUI-NovaKit-Pack", + "reference": "https://github.com/ftechmax/ComfyUI-NovaKit-Pack", + "files": [ + "https://github.com/ftechmax/ComfyUI-NovaKit-Pack" + ], + "install_type": "git-clone", + "description": "NODES: Count Tokens" + }, + { + "author": "BobRandomNumber", + "title": "ComfyUI DiaTest TTS Node [WIP]", + "reference": "https://github.com/BobRandomNumber/ComfyUI-DiaTTS", + "files": [ + "https://github.com/BobRandomNumber/ComfyUI-DiaTTS" + ], + "install_type": "git-clone", + "description": "Partial ComfyUI Dia implementation" + }, + { + "author": "jtydhr88", + "title": "ComfyUI-1hewNodes [WIP]", + "reference": "https://github.com/1hew/ComfyUI-1hewNodes", + "files": [ + "https://github.com/1hew/ComfyUI-1hewNodes" + ], + "install_type": "git-clone", + "description": "NODES: Solid, Luma Matte, Image Concatenate, Image Crop With BBox, Image Paste\nNOTE: The files in the repo are not organized." + }, + { + "author": "jtydhr88", + "title": "ComfyUI Frontend Vue Basic [WIP]", + "reference": "https://github.com/jtydhr88/ComfyUI_frontend_vue_basic", + "files": [ + "https://github.com/jtydhr88/ComfyUI_frontend_vue_basic" + ], + "install_type": "git-clone", + "description": "A demonstration custom node that showcases how to integrate Vue as a frontend framework within ComfyUI, complete with PrimeVue components and vue-i18n support." + }, + { + "author": "silent-rain", + "title": "ComfyUI-SilentRain", + "reference": "https://github.com/silent-rain/ComfyUI-SilentRain", + "files": [ + "https://github.com/silent-rain/ComfyUI-SilentRain" + ], + "install_type": "git-clone", + "description": "Ecological extension of comfyui using Rust language." + }, + { + "author": "Linsoo", + "title": "ComfyUI-Linsoo-Custom-Nodes", + "reference": "https://github.com/Linsoo/ComfyUI-Linsoo-Custom-Nodes", + "files": [ + "https://github.com/Linsoo/ComfyUI-Linsoo-Custom-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Linsoo Save Image, Linsoo Load Image (In development.. not working), Linsoo Empty Latent Image, Linsoo Multi Inputs, Linsoo Multi Outputs" + }, + { + "author": "facok", + "title": "ComfyUI-FokToolset", + "reference": "https://github.com/facok/ComfyUI-FokToolset", + "files": [ + "https://github.com/facok/ComfyUI-FokToolset" + ], + "install_type": "git-clone", + "description": "NODES: Fok Preprocess Ref Image (Phantom)" + }, + { + "author": "EricRollei", + "title": "Comfy-Metadata-System [WIP]", + "reference": "https://github.com/EricRollei/Comfy-Metadata-System", + "files": [ + "https://github.com/EricRollei/Comfy-Metadata-System" + ], + "install_type": "git-clone", + "description": "Series of custom Comfyui Nodes that collects and saves metadata to embedded (png, jpg) as well as optional xmp and txt sidecars and database" + }, + { + "author": "turskeli", + "title": "comfyui-SetWallpaper", + "reference": "https://github.com/turskeli/comfyui-SetWallpaper", + "files": [ + "https://github.com/turskeli/comfyui-SetWallpaper" + ], + "install_type": "git-clone", + "description": "Simple wallpaper node for ComfyUI. Curently only supports Windows OS" + }, + { + "author": "Sophylax", + "title": "ComfyUI-ReferenceMerge", + "reference": "https://github.com/Sophylax/ComfyUI-ReferenceMerge", + "files": [ + "https://github.com/Sophylax/ComfyUI-ReferenceMerge" + ], + "install_type": "git-clone", + "description": "NODES: Combine Images and Mask, Restitch Combined Crop" + }, + { + "author": "bandido37", + "title": "Kaggle ComfyUI Local Save Node [WIP]", + "reference": "https://github.com/bandido37/comfyui-kaggle-local-save", + "files": [ + "https://github.com/bandido37/comfyui-kaggle-local-save" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows you to save generated images directly to your local PC instead of Kaggle's cloud output folder.\nNOTE: The files in the repo are not organized." + }, + { + "author": "springjk", + "title": "Psutil Container Memory Patch", + "reference": "https://github.com/springjk/ComfyUI-Psutil-Container-Memory-Patch", + "files": [ + "https://github.com/springjk/ComfyUI-Psutil-Container-Memory-Patch" + ], + "install_type": "git-clone", + "description": "Make ComfyUI get correct memory information in the container (psutil monkey path)" + }, + { + "author": "songtianhui", + "title": "ComfyUI-DMM [WIP]", + "reference": "https://github.com/songtianhui/ComfyUI-DMM", + "files": [ + "https://github.com/songtianhui/ComfyUI-DMM" + ], + "install_type": "git-clone", + "description": "NODES: DMMLoader, DMMApply" + }, + { + "author": "leon-etienne", + "title": "ComfyUI_Scoring-Nodes", + "reference": "https://github.com/leon-etienne/ComfyUI_Scoring-Nodes", + "files": [ + "https://github.com/leon-etienne/ComfyUI_Scoring-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Text Similarity (CLIP), Image Similarity (CLIP), Multi Text→Image Similarity, Multi Image→Text Similarity, Aesthetic Score, Multi Aesthetic Comparison" + }, + { + "author": "tanmoy-it", + "title": "comfyuiCustomNode", + "reference": "https://github.com/tanmoy-it/comfyuiCustomNode", + "files": [ + "https://github.com/tanmoy-it/comfyuiCustomNode" + ], + "install_type": "git-clone", + "description": "NODES: Download Image (Direct/No Save)" + }, + { + "author": "Jingwen-genies", + "title": "comfyui-genies-nodes", + "reference": "https://github.com/Jingwen-genies/comfyui-genies-nodes", + "files": [ + "https://github.com/Jingwen-genies/comfyui-genies-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Genies Pose Estimation, Genies Scale Face by Keypoints, Get V Channel from HSV, Select RGB by Mask" + }, + { + "author": "Tawbaware", + "title": "ComfyUI-Tawbaware [WIP]", + "reference": "https://github.com/Tawbaware/ComfyUI-Tawbaware", + "files": [ + "https://github.com/Tawbaware/ComfyUI-Tawbaware" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "lucafoscili", + "title": "LF Nodes [UNSAFE]", + "reference": "https://github.com/lucafoscili/lf-nodes", + "files": [ + "https://github.com/lucafoscili/lf-nodes" + ], + "install_type": "git-clone", + "description": "Custom nodes with a touch of extra UX, including: history for primitives, JSON manipulation, logic switches with visual feedback, LLM chat... and more!\n[w/This nodepack contains a node with a vulnerability that allows arbitrary code execution.]" + }, + { + "author": "jerryname2022", + "title": "ComfyUI-Real-ESRGAN [WIP]", + "reference": "https://github.com/jerryname2022/ComfyUI-Real-ESRGAN", + "files": [ + "https://github.com/jerryname2022/ComfyUI-Real-ESRGAN" + ], + "install_type": "git-clone", + "description": "NODES: Real-ESRGAN Model Loader, GFPGAN Model Loader, Real-ESRGAN Image Generator, GFPGAN Image Generator" + }, + { + "author": "mm-akhtar", + "title": "comfyui-mask-selector-node", + "reference": "https://github.com/mm-akhtar/comfyui-mask-selector-node", + "files": [ + "https://github.com/mm-akhtar/comfyui-mask-selector-node" + ], + "install_type": "git-clone", + "description": "NODES: Mask Selector" + }, + { + "author": "ryanontheinside", + "title": "ComfyUI-Livepeer [WIP]", + "reference": "https://github.com/ryanontheinside/ComfyUI-Livepeer", + "files": [ + "https://github.com/ryanontheinside/ComfyUI-Livepeer" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that provides integration with [a/Livepeer](https://livepeer.org/)'s AI services allowing for both sync and async generation." + }, + { + "author": "newraina", + "title": "ComfyUI-Remote-Save-Image [UNSAFE]", + "reference": "https://github.com/newraina/ComfyUI-Remote-Save-Image", + "files": [ + "https://github.com/newraina/ComfyUI-Remote-Save-Image" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that allows uploading generated images to any HTTP endpoint.[w/This node allows any users to send any locally stored image to a specified URL.]" + }, + { + "author": "SXQBW", + "title": "ComfyUI-Qwen-VLM [WIP]", + "reference": "https://github.com/SXQBW/ComfyUI-Qwen3", + "files": [ + "https://github.com/SXQBW/ComfyUI-Qwen3" + ], + "install_type": "git-clone", + "description": "NODES: QwenVLM" + }, + { + "author": "kijai", + "title": "ComfyUI-FramePackWrapper [WIP]", + "reference": "https://github.com/kijai/ComfyUI-FramePackWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-FramePackWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI Wrapper for FramePack by lllyasviel" + }, + { + "author": "WaiyanLing", + "title": "ComfyUI-Tracking [WIP]", + "reference": "https://github.com/WaiyanLing/ComfyUI-Tracking", + "files": [ + "https://github.com/WaiyanLing/ComfyUI-Tracking" + ], + "install_type": "git-clone", + "description": "ComfyUI-Tracking This nodepack helps to conveniently collect invocation data from workflows for further study.\nNOTE: The files in the repo are not organized." + }, + { + "author": "vladp0727", + "title": "ComfyUI Simple Image Tools [WIP]", + "reference": "https://github.com/vladp0727/Comfyui-with-Furniture", + "files": [ + "https://github.com/vladp0727/Comfyui-with-Furniture" + ], + "install_type": "git-clone", + "description": "NODES: Get Mask From Alpha, Get Quadrilateral Outfit\nNOTE: The files in the repo are not organized." + }, + { + "author": "Simlym", + "title": "Simlym/comfyui-prompt-helper [WIP]", + "reference": "https://github.com/Simlym/comfyui-prompt-helper", + "files": [ + "https://github.com/Simlym/comfyui-prompt-helper" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for processing Chinese prompts and generating English prompts with LLM\nNOTE: The files in the repo are not organized." + }, + { + "author": "ryanontheinside", + "title": "ComfyUI MineWorld Nodes [WIP]", + "reference": "https://github.com/ryanontheinside/ComfyUI-MineWorld", + "files": [ + "https://github.com/ryanontheinside/ComfyUI-MineWorld" + ], + "install_type": "git-clone", + "description": "This extension integrates Microsoft's MineWorld - an interactive world model for Minecraft - into ComfyUI.\nMineWorld allows you to generate interactive Minecraft gameplay based on actions you provide, creating realistic Minecraft gameplay videos." + }, + { + "author": "SanDiegoDude", + "title": "HiDreamSampler for ComfyUI [WIP]", + "reference": "https://github.com/SanDiegoDude/ComfyUI-HiDream-Sampler", + "files": [ + "https://github.com/SanDiegoDude/ComfyUI-HiDream-Sampler" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node for generating images using the HiDream AI model.\nNOTE: The files in the repo are not organized." + }, + { + "author": "ZenAI-Vietnam", + "title": "ComfyUI_InfiniteYou [NAME CONFLICT]", + "reference": "https://github.com/ZenAI-Vietnam/ComfyUI_InfiniteYou", + "files": [ + "https://github.com/ZenAI-Vietnam/ComfyUI_InfiniteYou" + ], + "install_type": "git-clone", + "description": "An implementation of InfiniteYou for ComfyUI. Native support for [a/InfiniteYou](https://github.com/bytedance/InfiniteYou) in ComfyUI, designed by the ZenAI team." + }, + { + "author": "filipemeneses", + "title": "ComfyUI_html [UNSAFE]", + "reference": "https://github.com/filipemeneses/ComfyUI_html", + "files": [ + "https://github.com/filipemeneses/ComfyUI_html" + ], + "install_type": "git-clone", + "description": "Nodes to manipulate HTML.[w/This extension poses a risk of XSS vulnerability.]" + }, + { + "author": "FaberVS", + "title": "MultiModel", + "reference": "https://github.com/FaberVS/MultiModel", + "files": [ + "https://github.com/FaberVS/MultiModel" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI nodes enabling seamless integration of multiple models into workflows without requiring constant configuration." + }, + { + "author": "m-ai-studio", + "title": "mai-prompt-progress", + "reference": "https://github.com/m-ai-studio/mai-prompt-progress", + "files": [ + "https://github.com/m-ai-studio/mai-prompt-progress" + ], + "install_type": "git-clone", + "description": "ComfyUI extensions for sending prompt progress to webhook" + }, + { + "author": "ashllay", + "title": "ComfyUI_MoreComfy", + "reference": "https://github.com/ashllay/ComfyUI_MoreComfy", + "files": [ + "https://github.com/ashllay/ComfyUI_MoreComfy" + ], + "install_type": "git-clone", + "description": "NODES: MC Switch Seed/Image/Latent/Model/String, MC Alter Seed, MC Set Tile Size, MC Get Image Size, MC Multi Concat" + }, + { + "author": "gordon1chuge2623", + "title": "ComfyUI_seal_migration [WIP]", + "reference": "https://github.com/chuge26/ComfyUI_seal_migration", + "files": [ + "https://github.com/chuge26/ComfyUI_seal_migration" + ], + "install_type": "git-clone", + "description": "This project implements stamp migration in PDF files based on ComfyUI, allowing stamps from specified pages of a source PDF to be transferred to specified pages of a target PDF.\nNOTE: The files in the repo are not organized." + }, + { + "author": "gordon123", + "title": "ComfyUI_srt2speech [WIP]", + "reference": "https://github.com/gordon123/ComfyUI_srt2speech", + "files": [ + "https://github.com/gordon123/ComfyUI_srt2speech" + ], + "install_type": "git-clone", + "description": "ComfyUI_srt2speech" + }, + { + "author": "hnmr293", + "title": "ComfyUI-SamOne - one-step sampling", + "reference": "https://github.com/hnmr293/ComfyUI-SamOne", + "files": [ + "https://github.com/hnmr293/ComfyUI-SamOne" + ], + "install_type": "git-clone", + "description": "This is a node that advances sampling by just one step in ComfyUI." + }, + { + "author": "rphmeier", + "title": "comfyui-videodepthanything", + "reference": "https://github.com/rphmeier/comfyui-videodepthanything", + "files": [ + "https://github.com/rphmeier/comfyui-videodepthanything" + ], + "install_type": "git-clone", + "description": "VideoDepthAnything nodes for ComfyUI" + }, + { + "author": "benmizrahi", + "title": "ComfyGCS [WIP]", + "reference": "https://github.com/benmizrahi/ComfyGCS", + "files": [ + "https://github.com/benmizrahi/ComfyGCS" + ], + "install_type": "git-clone", + "description": "ComfyGCS is a robust read/write plugin for Google Cloud Storage, designed to simplify interaction with GCS buckets in your projects.\nNOTE: The files in the repo are not organized." + }, + { + "author": "dogcomplex", + "title": "ComfyUI-LOKI [WIP]", + "reference": "https://github.com/dogcomplex/ComfyUI-LOKI", + "files": [ + "https://github.com/dogcomplex/ComfyUI-LOKI" + ], + "install_type": "git-clone", + "description": "NODES: Glamour\nNOTE: This nodepack installs pip dependencies outside the control of ComfyUI-Manager." + }, + { + "author": "hunzmusic", + "title": "Comfyui-CraftsMan3DWrapper [WIP]", + "reference": "https://github.com/hunzmusic/Comfyui-CraftsMan3DWrapper", + "files": [ + "https://github.com/hunzmusic/Comfyui-CraftsMan3DWrapper" + ], + "install_type": "git-clone", + "description": "A wrapper for CraftsMan\nNOTE: The files in the repo are not organized." + }, + { + "author": "Slix-M-Lestragg", + "title": "comfyui-enhanced [WIP]", + "reference": "https://github.com/Slix-M-Lestragg/comfyui-enhanced", + "files": [ + "https://github.com/Slix-M-Lestragg/comfyui-enhanced" + ], + "install_type": "git-clone", + "description": "A collection of enhanced nodes for ComfyUI that provide powerful additional functionality to your workflows.\nNOTE: The files in the repo are not organized." + }, + { + "author": "tzsoulcap", + "title": "ComfyUI-SaveImg-W-MetaData", + "reference": "https://github.com/tzsoulcap/ComfyUI-SaveImg-W-MetaData", + "files": [ + "https://github.com/tzsoulcap/ComfyUI-SaveImg-W-MetaData" + ], + "install_type": "git-clone", + "description": "NODES: CAP Checkpoint Selector, CAP Save Image w/Metadata, CAP Load Image with Metadata, CAP Tag Image, CAP Sampler Selector, CAP Scheduler Selector, CAP Seed Generator, CAP String Literal, CAP Width/Height Literal, CAP Cfg Literal, CAP Int Literal" + }, + { + "author": "hylarucoder", + "title": "comfyui-copilot", + "reference": "https://github.com/hylarucoder/comfyui-copilot", + "files": [ + "https://github.com/hylarucoder/comfyui-copilot" + ], + "install_type": "git-clone", + "description": "NODES: Eagle Image Node for PNGInfo, SDXL Resolution Presets (ws), SDXL Prompt Styler, SDXL Prompt Styler Advanced" + }, + { + "author": "SS-snap", + "title": "Comfyui_SSsnap_pose-Remapping", + "reference": "https://github.com/SS-snap/Comfyui_SSsnap_pose-Remapping", + "files": [ + "https://github.com/SS-snap/Comfyui_SSsnap_pose-Remapping" + ], + "install_type": "git-clone", + "description": "NODES: SSsnap Apply Pose Diff ✂️, SSsnap Pose Diff Calculator 🛠️" + }, + { + "author": "AlejandroTuzzi", + "title": "TUZZI-ByPass [WIP]", + "reference": "https://github.com/AlejandroTuzzi/TUZZI-ByPass", + "files": [ + "https://github.com/AlejandroTuzzi/TUZZI-ByPass" + ], + "install_type": "git-clone", + "description": "Custom nodes for automated AI pipelines\nNOTE: The files in the repo are not organized." + }, + { + "author": "oxysoft", + "title": "Comfy-Compel", + "reference": "https://github.com/oxysoft/Comfy-Compel", + "files": [ + "https://github.com/oxysoft/Comfy-Compel" + ], + "install_type": "git-clone", + "description": "NODES: CLIP Embed (Compel)" + }, + { + "author": "QingLuanWithoutHeart", + "title": "ComfyUI File/Image Utils Nodes [UNSAFE]", + "reference": "https://github.com/QingLuanWithoutHeart/comfyui-file-image-utils", + "files": [ + "https://github.com/QingLuanWithoutHeart/comfyui-file-image-utils" + ], + "install_type": "git-clone", + "description": "This custom node set provides useful utilities for file operations and image loading in ComfyUI." + }, + { + "author": "pmarmotte2", + "title": "VibeVoiceSelector [WIP]", + "reference": "https://github.com/pmarmotte2/Comfyui-VibeVoiceSelector", + "files": [ + "https://github.com/pmarmotte2/Comfyui-VibeVoiceSelector" + ], + "install_type": "git-clone", + "description": "NODES: Vibe Voice Selector" + }, + { + "author": "Temult", + "title": "TWanVideoSigmaSampler: EXPERIMENTAL [WIP]", + "reference": "https://github.com/Temult/TWanSigmaSampler", + "files": [ + "https://github.com/Temult/TWanSigmaSampler" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node that modifies the WanVideoSampler to accept an external sigma schedule. Allows for customized and non-standard noise schedules in Wan 2.1 video generation workflow.\nNOTE: The files in the repo are not organized." + }, + { + "author": "wordbrew", + "title": "WAN Control Nodes for ComfyUI [WIP]", + "reference": "https://github.com/wordbrew/comfyui-wan-control-nodes", + "files": [ + "https://github.com/wordbrew/comfyui-wan-control-nodes" + ], + "install_type": "git-clone", + "description": "This pack provides enhanced control nodes for working with Wan video models in ComfyUI. It is under active development and may change regularly, or may not. Depends entirely on my free time and waning interest. Please don't come to rely on it for anything, but you are welcome to improve on it.\nNOTE: The files in the repo are not organized." + }, + { + "author": "techtruth", + "title": "ComfyUI-Dreambooth", + "reference": "https://github.com/techtruth/ComfyUI-Dreambooth", + "files": [ + "https://github.com/techtruth/ComfyUI-Dreambooth" + ], + "install_type": "git-clone", + "description": "NODES: Dreambooth Trainer" + }, + { + "author": "438443467", + "title": "ComfyUI-SanMian-Nodes", + "reference": "https://github.com/438443467/ComfyUI-SanMian-Nodes", + "files": [ + "https://github.com/438443467/ComfyUI-SanMian-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Add Text To Image, Adjust Hex Brightness, Adjust Transparency By Mask, Align Images with Mask, Align Restore Json, Binarize Mask, Blend ICLight, ..." + }, + { + "author": "alexgenovese", + "title": "ComfyUI-Reica", + "reference": "https://github.com/alexgenovese/ComfyUI-Reica", + "files": [ + "https://github.com/alexgenovese/ComfyUI-Reica" + ], + "install_type": "git-clone", + "description": "NODES: Reica Text Image Display, Flux Image Generator, Reica GCP: Read Image, Reica GCP: Write Image & Get URL, Reica API: Send HTTP Notification" + }, + { + "author": "yanlang0123", + "title": "ComfyUI_Lam", + "reference": "https://github.com/yanlang0123/ComfyUI_Lam", + "files": [ + "https://github.com/yanlang0123/ComfyUI_Lam" + ], + "install_type": "git-clone", + "description": "This extension has some useful nodes, loops, wechat public number +AI chat drawing, distributed cluster." + }, + { + "author": "Stable-X", + "title": "ComfyUI-Hi3DGen", + "reference": "https://github.com/Stable-X/ComfyUI-Hi3DGen", + "files": [ + "https://github.com/Stable-X/ComfyUI-Hi3DGen" + ], + "install_type": "git-clone", + "description": "This extension integrates [a/Hi3DGen](https://github.com/Stable-X/Hi3DGen) into ComfyUI, allowing user to generate high-fidelity 3D geometry generation from Images.[w/If the *sageattention* package is installed, this nodepack causes problems.]" + }, + { + "author": "stiffy-committee", + "title": "comfyui-stiffy-nodes", + "reference": "https://github.com/V-woodpecker-V/comfyui-stiffy-nodes", + "files": [ + "https://github.com/V-woodpecker-V/comfyui-stiffy-nodes" + ], + "install_type": "git-clone", + "description": "NODES: StiffyPrompter, StiffyPersistentPrompter, StiffyDecoder, StiffyDebugger, ..." + }, + { + "author": "chetusangolgi", + "title": "Comfyui-supabase", + "reference": "https://github.com/chetusangolgi/Comfyui-supabase", + "files": [ + "https://github.com/chetusangolgi/Comfyui-supabase" + ], + "install_type": "git-clone", + "description": "NODES: Watch Supabase Bucket, Upload Image to Supabase" + }, + { + "author": "rickyars", + "title": "sd-cn-animation", + "reference": "https://github.com/rickyars/sd-cn-animation", + "files": [ + "https://github.com/rickyars/sd-cn-animation" + ], + "install_type": "git-clone", + "description": "SD-CN animation for Comfyui" + }, + { + "author": "daracazamea", + "title": "DCNodess [WIP]", + "reference": "https://github.com/daracazamea/comfyUI-DCNodes", + "files": [ + "https://github.com/daracazamea/comfyUI-DCNodes" + ], + "install_type": "git-clone", + "description": "NODES: Start Timer (Pass-Through), Get Generation Time, Manual Trigger, Flux: Resolution Picker, SDXL: Resolution Picker\nNOTE: The files in the repo are not organized." + }, + { + "author": "hunzmusic", + "title": "ComfyUI-Hunyuan3DTools [WIP]", + "reference": "https://github.com/hunzmusic/ComfyUI-Hunyuan3DTools", + "files": [ + "https://github.com/hunzmusic/ComfyUI-Hunyuan3DTools" + ], + "install_type": "git-clone", + "description": "NODES: Hy3DTools Render Specific View, Hy3DTools Back-Project Inpaint\nNOTE: The files in the repo are not organized." + }, + { + "author": "grokuku", + "title": "Holaf Custom Nodes for ComfyUI", + "reference": "https://github.com/grokuku/ComfyUI-Holaf", + "files": [ + "https://github.com/grokuku/ComfyUI-Holaf" + ], + "install_type": "git-clone", + "description": "NODES: Neurogrid Overload, Tile Calculator, Slice Calculator, Save Image, Tiled KSampler, KSampler, Image Comparer, Upscale, Overlay, Resolution Preset, Benchmark Runner, Benchmark Plotter, Benchmark Loader" + }, + { + "author": "Burgstall-labs", + "title": "ComfyUI-BS_FalAi-API-Video [WIP]", + "reference": "https://github.com/Burgstall-labs/ComfyUI-BS_FalAi-API-Video", + "files": [ + "https://github.com/Burgstall-labs/ComfyUI-BS_FalAi-API-Video" + ], + "install_type": "git-clone", + "description": "Experimental ComfyUI Custom Node for generating videos using various FAL AI API endpoints.\nNOTE: The files in the repo are not organized." + }, + { + "author": "uauaouau", + "title": "Mycraft [WIP]", + "reference": "https://github.com/sorption-dev/mycraft-comfyui", + "files": [ + "https://github.com/sorption-dev/mycraft-comfyui" + ], + "install_type": "git-clone", + "description": "Mycraft provides a limitless storyboard experience for image generation, powered by the ComfyUI API.\nEach container functions as an independent ComfyUI workflow, Supports workflows (text-to-text) and fine-tuning (image-to-image), Supports workflow customization." + }, + { + "author": "zhaorishuai", + "title": "ComfyUI-StoryboardDistributor", + "reference": "https://github.com/zhaorishuai/ComfyUI-StoryboardDistributor", + "files": [ + "https://github.com/zhaorishuai/ComfyUI-StoryboardDistributor" + ], + "install_type": "git-clone", + "description": "A ComfyUI plugin that automatically assigns storyboard content to 9 storyboard nodes." + }, + { + "author": "alexgenovese", + "title": "ComfyUI-Diffusion-4k [WIP]", + "reference": "https://github.com/alexgenovese/ComfyUI-Diffusion-4k", + "files": [ + "https://github.com/alexgenovese/ComfyUI-Diffusion-4k" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node implementation of the Diffusion 4K research paper.\nNOTE: The files in the repo are not organized." + }, + { + "author": "KERRY-YUAN", + "title": "Python_Executor [UNSAFE]", + "id": "PythonExecutor", + "reference": "https://github.com/KERRY-YUAN/ComfyUI_Python_Executor", + "files": [ + "https://github.com/KERRY-YUAN/ComfyUI_Python_Executor" + ], + "install_type": "git-clone", + "description": "Nodes: Provides nodes to execute arbitrary Python code snippets and Resize images directly within ComfyUI workflows. [w/This node allows you to execute arbitrary code via the workflow.]" + }, + { + "author": "ashllay", + "title": "ComfyUI_MoreComfy", + "reference": "https://github.com/ashllay/ComfyUI_MoreComfy", + "files": [ + "https://github.com/ashllay/ComfyUI_MoreComfy" + ], + "install_type": "git-clone", + "description": "NODES: MC Switch Seed, MC Alter Seed, MC Set Tile Size, MC Multi Concat" + }, + { + "author": "ayaoayaoayaoaya", + "title": "ComfyUI-KLUT-DeepSeek-API [WIP]", + "reference": "https://github.com/ayaoayaoayaoaya/ComfyUI-KLUT-DeepSeek-API", + "files": [ + "https://github.com/ayaoayaoayaoaya/ComfyUI-KLUT-DeepSeek-API" + ], + "install_type": "git-clone", + "description": "A collection of utility / quality-of-life nodes for ComfyUI. Probably only useful to me.\nNOTE: The files in the repo are not organized." + }, + { + "author": "olyyarm", + "title": "ComfyUI-VLMStudio", + "reference": "https://github.com/KurtHokke/ComfyUI_KurtHokke_Nodes", + "files": [ + "https://github.com/KurtHokke/ComfyUI_KurtHokke_Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Node_BOOL/INT/Float, BooleanToPipe, BooleanFromPipe, ExpMath, ExpMathDual/Quad, ...." + }, + { + "author": "olyyarm", + "title": "ComfyUI-VLMStudio", + "reference": "https://github.com/olyyarm/ComfyUI-VLMStudio", + "files": [ + "https://raw.githubusercontent.com/olyyarm/ComfyUI-VLMStudio/refs/heads/master/vlm_visionary_node_v3_.py" + ], + "install_type": "copy", + "description": "NODES: GemmaMultimodalAnalyzer" + }, + { + "author": "apetitbois", + "title": "nova_utils", + "reference": "https://github.com/apetitbois/nova_utils", + "files": [ + "https://github.com/apetitbois/nova_utils" + ], + "install_type": "git-clone", + "description": "Nova utils for ComfyUI" + }, + { + "author": "sugarkwork", + "title": "comfyui_my_img_util", + "reference": "https://github.com/sugarkwork/comfyui_my_img_util", + "files": [ + "https://github.com/sugarkwork/comfyui_my_img_util" + ], + "install_type": "git-clone", + "description": "NODES: Simple Image Rotate" + }, + { + "author": "DonutsDelivery", + "title": "ComfyUI-DonutDetailer", + "reference": "https://github.com/DonutsDelivery/ComfyUI-DonutNodes", + "files": [ + "https://github.com/DonutsDelivery/ComfyUI-DonutNodes" + ], + "install_type": "git-clone", + "description": "This is an experimental node I made to mimick the 'adjust' in A1111 Supermerger [a/https://github.com/hako-mikan/sd-webui-supermerger?tab=readme-ov-file#adjust](https://github.com/hako-mikan/sd-webui-supermerger?tab=readme-ov-file#adjust)." + }, + { + "author": "ZenAI-Vietnam", + "title": "ComfyUI-gemini-IG", + "reference": "https://github.com/ZenAI-Vietnam/ComfyUI-gemini-IG", + "files": [ + "https://github.com/ZenAI-Vietnam/ComfyUI-gemini-IG" + ], + "install_type": "git-clone", + "description": "NODES: Gemini Image Generation, Gemini Text Generation" + }, + { + "author": "hunzmusic", + "title": "comfyui-hnznodes", + "reference": "https://github.com/hunzmusic/comfyui-hnznodes", + "files": [ + "https://github.com/hunzmusic/comfyui-hnznodes" + ], + "install_type": "git-clone", + "description": "NODES: Combine Channels Grayscale, Reorder Image Batch, Male Character Prompt" + }, + { + "author": "cidiro", + "title": "cid-node-pack", + "reference": "https://github.com/cidiro/cid-node-pack", + "files": [ + "https://github.com/cidiro/cid-node-pack" + ], + "install_type": "git-clone", + "description": "A lightweight nodepack for ComfyUI that adds a few handy nodes that I use in my workflows" + }, + { + "author": "CeeVeeR", + "title": "ComfyUi-Text-Tiler", + "reference": "https://github.com/CeeVeeR/ComfyUi-Text-Tiler", + "files": [ + "https://github.com/CeeVeeR/ComfyUi-Text-Tiler" + ], + "install_type": "git-clone", + "description": "NODES: Text Tiler" + }, + { + "author": "Dreamshot-io", + "title": "ComfyUI-Extend-Resolution", + "reference": "https://github.com/Dreamshot-io/ComfyUI-Extend-Resolution", + "files": [ + "https://github.com/Dreamshot-io/ComfyUI-Extend-Resolution" + ], + "install_type": "git-clone", + "description": "NODES: Resolution Padding" + }, + { + "author": "l1yongch1", + "title": "ComfyUI-YcNodes", + "reference": "https://github.com/l1yongch1/ComfyUI-YcNodes", + "files": [ + "https://github.com/l1yongch1/ComfyUI-YcNodes" + ], + "install_type": "git-clone", + "description": "NODES: RemoveHighlightAndBlur, RoundedCorners, PaddingAccordingToBackground\npersonal custom nodes for learning" + }, + { + "author": "vchopine", + "title": "ComfyUI_Toolbox", + "reference": "https://github.com/vchopine/ComfyUI_Toolbox", + "files": [ + "https://github.com/vchopine/ComfyUI_Toolbox" + ], + "install_type": "git-clone", + "description": "Model & Aspect Ratio Selector Node for ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "Solankimayursinh", + "title": "PMSnodes [WIP]", + "reference": "https://github.com/Solankimayursinh/PMSnodes", + "files": [ + "https://github.com/Solankimayursinh/PMSnodes" + ], + "install_type": "git-clone", + "description": "A custom nodes for ComfyUI to Load audio in Base64 format and Send Audio to Websocket in Base64 Format for creating API of Audio related AI\nNOTE: The files in the repo are not organized." + }, + { + "author": "rhinoflavored", + "title": "comfyui_QT", + "reference": "https://github.com/rhinoflavored/comfyui_QT", + "files": [ + "https://github.com/rhinoflavored/comfyui_QT" + ], + "install_type": "git-clone", + "description": "bunch of image manipulation nodes....\nNOTE: The files in the repo are not organized." + }, + { + "author": "ricklove", + "title": "ComfyUI-AutoSeg-SAM2", + "reference": "https://github.com/ricklove/ComfyUI-AutoSeg-SAM2", + "files": [ + "https://github.com/ricklove/ComfyUI-AutoSeg-SAM2" + ], + "install_type": "git-clone", + "description": "NODES: AutoSeg-SAM2 Batch Segmentation" + }, + { + "author": "JoeAu", + "title": "ComfyUI-PythonNode [UNSAFE]", + "reference": "https://github.com/JoeAu/ComfyUI-PythonNode", + "files": [ + "https://github.com/JoeAu/ComfyUI-PythonNode" + ], + "install_type": "git-clone", + "description": "A custom ComfyUI node that allows users to execute arbitrary Python code with a single input (value) and output (result), enabling flexible processing of the input value using any Python code before assigning the final result to result. It also captures print() output and exceptions for debugging.[w/This node is an unsafe node that includes the capability to execute arbitrary python script.]" + }, + { + "author": "smthemex", + "title": "ComfyUI_GPT_SoVITS_Lite", + "reference": "https://github.com/smthemex/ComfyUI_GPT_SoVITS_Lite", + "files": [ + "https://github.com/smthemex/ComfyUI_GPT_SoVITS_Lite" + ], + "install_type": "git-clone", + "description": "[a/GPT_SoVITS](https://github.com/RVC-Boss/GPT-SoVITS) infer only for ComfyUI users\nNOTE: The files in the repo are not organized." + }, + { + "author": "Nambi24", + "title": "ComfyUI-Save_Image", + "reference": "https://github.com/Nambi24/ComfyUI-Save_Image", + "files": [ + "https://github.com/Nambi24/ComfyUI-Save_Image" + ], + "description": "NODES: Save Image With Subfolder, Extract Last Path Component\nNOTE: The files in the repo are not organized.", + "install_type": "git-clone" + }, + { + "author": "sugarkwork", + "title": "comfyui_image_crop", + "reference": "https://github.com/sugarkwork/comfyui_image_crop", + "files": [ + "https://github.com/sugarkwork/comfyui_image_crop" + ], + "description": "NODES: CropTransparent, RestoreCrop, ExpandMultiple, CropReapply", + "install_type": "git-clone" + }, + { + "author": "AkiEvansDev", + "title": "ComfyUI-Tools", + "reference": "https://github.com/AkiEvansDev/ComfyUI-Tools", + "files": [ + "https://github.com/AkiEvansDev/ComfyUI-Tools" + ], + "install_type": "git-clone", + "description": "Custom nodes for basic actions." + }, + { + "author": "longzoho", + "title": "ComfyUI-Qdrant-Saver", + "reference": "https://github.com/longzoho/ComfyUI-Qdrant-Saver", + "files": [ + "https://github.com/longzoho/ComfyUI-Qdrant-Saver" + ], + "install_type": "git-clone", + "description": "NODES: QDrant Saver Node" + }, + { + "author": "RUFFY-369", + "title": "ComfyUI-FeatureBank", + "reference": "https://github.com/RUFFY-369/ComfyUI-FeatureBank", + "files": [ + "https://github.com/RUFFY-369/ComfyUI-FeatureBank" + ], + "install_type": "git-clone", + "description": "NODES: FeatureBankAttentionProcessor" + }, + { + "author": "Pablerdo", + "title": "ComfyUI-Sa2VAWrapper [WIP]", + "reference": "https://github.com/Pablerdo/ComfyUI-Sa2VAWrapper", + "files": [ + "https://github.com/Pablerdo/ComfyUI-Sa2VAWrapper" + ], + "install_type": "git-clone", + "description": "Wrapper for the Sa2VA model" + }, + { + "author": "aria1th", + "title": "ComfyUI-camietagger-onnx", + "reference": "https://github.com/aria1th/ComfyUI-camietagger-onnx", + "files": [ + "https://github.com/aria1th/ComfyUI-camietagger-onnx" + ], + "install_type": "git-clone", + "description": "NODES: Camie Tagger" + }, + { + "author": "zjkhurry", + "title": "comfyui_MetalFX [WIP]", + "reference": "https://github.com/zjkhurry/comfyui_MetalFX", + "files": [ + "https://github.com/zjkhurry/comfyui_MetalFX" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that enables high-quality image and video upscaling using Apple MetalFX technology.\nNOTE: The files in the repo are not organized." + }, + { + "author": "RoyKillington", + "title": "Miscomfy Nodes [WIP]", + "reference": "https://github.com/RoyKillington/miscomfy-nodes", + "files": [ + "https://github.com/RoyKillington/miscomfy-nodes" + ], + "install_type": "git-clone", + "description": "A repo of custom nodes for ComfyUI, from interacting with certain APIs to whatever other miscellanea I end up making" + }, + { + "author": "xmarked-ai", + "title": "ComfyUI_misc", + "reference": "https://github.com/xmarked-ai/ComfyUI_misc", + "files": [ + "https://github.com/xmarked-ai/ComfyUI_misc" + ], + "install_type": "git-clone", + "description": "NODES: Ace IntegerX, Ace FloatX, Ace Color FixX, White Balance X, Depth Displace X, Empty Latent X, KSampler Combo X, ..." + }, + { + "author": "Elypha", + "title": "ComfyUI-Prompt-Helper [WIP]", + "reference": "https://github.com/Elypha/ComfyUI-Prompt-Helper", + "files": [ + "https://github.com/Elypha/ComfyUI-Prompt-Helper" + ], + "install_type": "git-clone", + "description": "Concat conditions and prompts for ComfyUI" + }, + { + "author": "StoryWalker", + "title": "comfyui_flux_collection_advanced [WIP]", + "reference": "https://github.com/StoryWalker/comfyui_flux_collection_advanced", + "files": [ + "https://github.com/StoryWalker/comfyui_flux_collection_advanced" + ], + "install_type": "git-clone", + "description": "This is a collection focused in give a little more flexibility in the use of Flux models." + }, + { + "author": "OSAnimate", + "title": "ComfyUI-SpriteSheetMaker [WIP]", + "reference": "https://github.com/OSAnimate/ComfyUI-SpriteSheetMaker", + "files": [ + "https://github.com/OSAnimate/ComfyUI-SpriteSheetMaker" + ], + "install_type": "git-clone", + "description": "The sprite sheet maker node is a simple way to create sprite sheets and image grids.\nNOTE: The files in the repo are not organized." + }, + { + "author": "BuffMcBigHuge", + "title": "ComfyUI-Buff-Nodes [WIP]", + "reference": "https://github.com/BuffMcBigHuge/ComfyUI-Buff-Nodes", + "files": [ + "https://github.com/BuffMcBigHuge/ComfyUI-Buff-Nodes" + ], + "install_type": "git-clone", + "description": "Several quality-of-life batch operation and string manipulation nodes." + }, + { + "author": "ritikvirus", + "title": "ComfyUI Terminal Command Node [UNSAFE]", + "reference": "https://github.com/ritikvirus/comfyui-terminal-modal-node", + "files": [ + "https://github.com/ritikvirus/comfyui-terminal-modal-node" + ], + "install_type": "git-clone", + "description": "This repository provides a custom ComfyUI node that lets you execute arbitrary terminal commands directly from the ComfyUI interface. [w/This extension allows remote command execution.]" + }, + { + "author": "pixuai", + "title": "ComfyUI-PixuAI", + "reference": "https://github.com/pixuai/ComfyUI-PixuAI", + "files": [ + "https://github.com/pixuai/ComfyUI-PixuAI" + ], + "install_type": "git-clone", + "description": "A collection of ComfyUI nodes designed to streamline prompt creation, organization, and discovery - making your workflows faster and more intuitive." + }, + { + "author": "techidsk", + "title": "comfyui_molook_nodes [WIP]", + "reference": "https://github.com/techidsk/comfyui_molook_nodes", + "files": [ + "https://github.com/techidsk/comfyui_molook_nodes" + ], + "install_type": "git-clone", + "description": "Some extra nodes" + }, + { + "author": "Northerner1", + "title": "ComfyUI_North_Noise [WIP]", + "reference": "https://github.com/Northerner1/ComfyUI_North_Noise", + "files": [ + "https://github.com/Northerner1/ComfyUI_North_Noise" + ], + "install_type": "git-clone", + "description": "NODES: North Noise" + }, + { + "author": "ManuShamil", + "title": "ComfyUI_BodyEstimation_Nodes", + "reference": "https://github.com/ManuShamil/ComfyUI_BodyEstimation_Nodes", + "files": [ + "https://github.com/ManuShamil/ComfyUI_BodyEstimation_Nodes" + ], + "install_type": "git-clone", + "description": "NODES: CogitareLabsPoseIDExtractor" + }, + { + "author": "MockbaTheBorg", + "title": "ComfyUI-Mockba", + "reference": "https://github.com/MockbaTheBorg/ComfyUI-Mockba", + "files": [ + "https://github.com/MockbaTheBorg/ComfyUI-Mockba" + ], + "install_type": "git-clone", + "description": "NODES: Image Batch/Flip/Rotate/Subtract/Dither, Barcode, Select, ..." + }, + { + "author": "jcomeme", + "title": "AsunaroTools", + "reference": "https://github.com/jcomeme/ComfyUI-AsunaroTools", + "files": [ + "https://github.com/jcomeme/ComfyUI-AsunaroTools" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI" + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI Wan2.1 [WIP]", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Wan-ZHO", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Wan-ZHO" + ], + "install_type": "git-clone", + "description": "It’s estimated that ComfyUI itself will support it soon, so go ahead and give it a try!" + }, + { + "author": "ltdrdata", + "title": "comfyui-unsafe-torch [UNSAFE]", + "reference": "https://github.com/ltdrdata/comfyui-unsafe-torch", + "files": [ + "https://github.com/ltdrdata/comfyui-unsafe-torch" + ], + "install_type": "git-clone", + "description": "disable torch.load's `weigths_only`" + }, + { + "author": "muvich3n", + "title": "ComfyUI-Crop-Border", + "reference": "https://github.com/muvich3n/ComfyUI-Crop-Border", + "files": [ + "https://github.com/muvich3n/ComfyUI-Crop-Border" + ], + "install_type": "git-clone", + "description": "NODES: Crop Image Borders" + }, + { + "author": "masmullin2000", + "title": "ComfyUI-MMYolo", + "reference": "https://github.com/masmullin2000/ComfyUI-MMYolo", + "files": [ + "https://github.com/masmullin2000/ComfyUI-MMYolo" + ], + "install_type": "git-clone", + "description": "A comfy node to find faces and output a mask" + }, + { + "author": "Yeonri", + "title": "ComfyUI_LLM_Are_You_Listening [WIP]", + "reference": "https://github.com/Yeonri/ComfyUI_LLM_Are_You_Listening", + "files": [ + "https://github.com/Yeonri/ComfyUI_LLM_Are_You_Listening" + ], + "install_type": "git-clone", + "description": "NODES: AYL_Node, AYL_GGUF_Node, AYL_API_Node\nNOTE: The files in the repo are not organized." + }, + { + "author": "altkeyproject", + "title": "Dream Painter [WIP]", + "reference": "https://github.com/alt-key-project/comfyui-dream-painter", + "files": [ + "https://github.com/alt-key-project/comfyui-dream-painter" + ], + "install_type": "git-clone", + "description": "Provide utilities for 2D image generation and processing." + }, + { + "author": "kimara-ai", + "title": "ComfyUI-Kimara-AI-Image-From-URL [WIP]", + "reference": "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Image-From-URL", + "files": [ + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Image-From-URL" + ], + "install_type": "git-clone", + "description": "Load image from URL and downscale to desired megapixels. Set megapixels to 0 for no downscaling." + }, + { + "author": "krisshen2021", + "title": "comfyui_OpenRouterNodes [WIP]", + "reference": "https://github.com/krisshen2021/comfyui_OpenRouterNodes", + "files": [ + "https://github.com/krisshen2021/comfyui_OpenRouterNodes" + ], + "install_type": "git-clone", + "description": "LLM custom nodes for comfyui\nNOTE: The files in the repo are not organized." + }, + { + "author": "Velour-Fog", + "title": "comfy-latent-nodes [UNSAFE]", + "reference": "https://github.com/Velour-Fog/comfy-latent-nodes", + "files": [ + "https://github.com/Velour-Fog/comfy-latent-nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to save and load a latent to a specified directory. Saves time for doing operations on a latent such as upscaling without having to re-trigger the creation of the original latent.[w/This node can write files to an arbitrary path.]" + }, + { + "author": "jgbyte", + "title": "ComfyUI-RandomCube [WIP]", + "reference": "https://github.com/jgbyte/ComfyUI-RandomCube", + "files": [ + "https://github.com/jgbyte/ComfyUI-RandomCube" + ], + "install_type": "git-clone", + "description": "NODES: RandomCubeGrid" + }, + { + "author": "thot-experiment", + "title": "comfy-live-preview [WIP]", + "reference": "https://github.com/thot-experiment/comfy-live-preview", + "files": [ + "https://github.com/thot-experiment/comfy-live-preview" + ], + "install_type": "git-clone", + "description": "external live preview plugin for ComfyUI" + }, + { + "author": "AhBumm", + "title": "ComfyUI-Upscayl", + "reference": "https://github.com/AhBumm/ComfyUI-Upscayl", + "files": [ + "https://github.com/AhBumm/ComfyUI-Upscayl" + ], + "nodename_pattern": "\\(BillBum\\)$", + "install_type": "git-clone", + "description": "NODES: Upscayl Upscaler" + }, + { + "author": "NEZHA625", + "title": "ComfyUI-tools-by-dong [UNSAFE]", + "reference": "https://github.com/NEZHA625/ComfyUI-tools-by-dong", + "files": [ + "https://github.com/NEZHA625/ComfyUI-tools-by-dong" + ], + "install_type": "git-clone", + "description": "NODES: HuggingFaceUploadNode, ImageDownloader, LoraIterator, FileMoveNode, InputDetectionNode, ...\nNOTE: The files in the repo are not organized.[w/This nodepack includes nodes that can modify arbitrary files.]" + }, + { + "author": "if-ai", + "title": "ComfyUI-IF_Zonos [WIP]", + "reference": "https://github.com/if-ai/ComfyUI-IF_Zonos", + "files": [ + "https://github.com/if-ai/ComfyUI-IF_Zonos" + ], + "install_type": "git-clone", + "description": "Zonos for ComfyUI" + }, + { + "author": "grinlau18", + "title": "Xiser_Nodes [WIP]", + "reference": "https://github.com/grinlau18/ComfyUI_XISER_Nodes", + "files": [ + "https://github.com/grinlau18/ComfyUI_XISER_Nodes" + ], + "install_type": "git-clone", + "description": "Custom nodes for customizing workflows\nNOTE: The files in the repo are not organized." + }, + { + "author": "LAOGOU-666", + "title": "Comfyui_StartPatch [UNSAFE]", + "reference": "https://github.com/LAOGOU-666/Comfyui_StartPatch", + "files": [ + "https://github.com/LAOGOU-666/Comfyui_StartPatch" + ], + "install_type": "git-clone", + "description": "This patch plugin optimizes the node information processing mechanism of the ComfyUI server, significantly improving server performance and response speed. It greatly reduces the browser page initialization waiting time. [w/Since this patch modifies key functions of ComfyUI, it is highly likely to cause compatibility issues.]" + }, + { + "author": "badmike", + "title": "Prompt Factory [CONFLICT]", + "reference": "https://github.com/badmike/comfyui-prompt-factory", + "files": [ + "https://github.com/badmike/comfyui-prompt-factory" + ], + "install_type": "git-clone", + "description": "A modular system that adds randomness to prompt generation [w/This nodepack is causing a name conflict with https://github.com/satche/comfyui-prompt-factory]" + }, + { + "author": "owengillett", + "title": "ComfyUI-tilefusion", + "reference": "https://github.com/owengillett/ComfyUI-tilefusion", + "files": [ + "https://github.com/owengillett/ComfyUI-tilefusion" + ], + "install_type": "git-clone", + "description": "Helper nodes for generating seamless tiles." + }, + { + "author": "Scaryplasmon", + "title": "ComfTrellis [WIP]", + "reference": "https://github.com/Scaryplasmon/ComfTrellis", + "files": [ + "https://github.com/Scaryplasmon/ComfTrellis" + ], + "install_type": "git-clone", + "description": "1 click install to run Trellis in ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "fangziheng2321", + "title": "comfyuinode_chopmask [WIP]", + "reference": "https://github.com/fangziheng2321/comfyuinode_chopmask", + "files": [ + "https://github.com/fangziheng2321/comfyuinode_chopmask" + ], + "install_type": "git-clone", + "description": "a custom comfyui node for '/fooocusinpaint_upload'\nNOTE: The files in the repo are not organized." + }, + { + "author": "D1-3105", + "title": "ComfyUI-VideoStream", + "reference": "https://github.com/D1-3105/ComfyUI-VideoStream", + "files": [ + "https://github.com/D1-3105/ComfyUI-VideoStream" + ], + "install_type": "git-clone", + "description": "NODES: FloWWeaverExportSingleFrameGRPC" + }, + { + "author": "gmorks", + "title": "ComfyUI Animagine prompt [WIP]", + "reference": "https://github.com/gmorks/ComfyUI-Animagine-Prompt", + "files": [ + "https://github.com/gmorks/ComfyUI-Animagine-Prompt" + ], + "install_type": "git-clone", + "description": "Comfy UI node to prompt build for [a/https://huggingface.co/cagliostrolab/animagine-xl-4.0](https://huggingface.co/cagliostrolab/animagine-xl-4.0) model\nNOTE: The files in the repo are not organized." + }, + { + "author": "wirytiox", + "title": "ComfyUI-Qwen [CONFLICT]", + "reference": "https://github.com/mr-krak3n/ComfyUI-Qwen", + "files": [ + "https://github.com/mr-krak3n/ComfyUI-Qwen" + ], + "install_type": "git-clone", + "description": "This repository contains custom nodes for ComfyUI, designed to facilitate working with language models such as Qwen2.5 and DeepSeek. [w/This nodepack is causing a name conflict with https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen]" + }, + { + "author": "hiusdev", + "title": "ComfyUI_Lah_Toffee", + "reference": "https://github.com/hiusdev/ComfyUI_Lah_Toffee", + "files": [ + "https://github.com/hiusdev/ComfyUI_Lah_Toffee" + ], + "install_type": "git-clone", + "description": "NODES: Lah LoadVideoRandom" + }, + { + "author": "hdfhssg", + "title": "ComfyUI_pxtool [WIP]", + "reference": "https://github.com/hdfhssg/ComfyUI_pxtool", + "files": [ + "https://github.com/hdfhssg/ComfyUI_pxtool" + ], + "install_type": "git-clone", + "description": "This is a custom plugin node for ComfyUI that modifies and extends some features from existing projects. The main implementations include:\n* Reproducing some features of the [a/Stable-Diffusion-Webui-Civitai-Helper](https://github.com/zixaphir/Stable-Diffusion-Webui-Civitai-Helper) project within ComfyUI\n* Implementing a feature to randomly generate related prompt words by referencing the [a/noob-wiki dataset](https://huggingface.co/datasets/Laxhar/noob-wiki/tree/main)\nNOTE: The files in the repo are not organized." + }, + { + "author": "franky519", + "title": "comfyui-redux-style", + "reference": "https://github.com/franky519/comfyui-redux-style", + "files": [ + "https://github.com/franky519/comfyui-redux-style" + ], + "install_type": "git-clone", + "description": "NODES: Style Model Grid, Style Model Apply, Style Model Advanced" + }, + { + "author": "rishipandey125", + "title": "ComfyUI-FramePacking [WIP]", + "reference": "https://github.com/rishipandey125/ComfyUI-FramePacking", + "files": [ + "https://github.com/rishipandey125/ComfyUI-FramePacking" + ], + "install_type": "git-clone", + "description": "NODES: Add Grid Boundaries, Pack Frames, Unpack Frames, Resize Frame" + }, + { + "author": "Northerner1", + "title": "ComfyUI_North_Noise [WIP]", + "reference": "https://github.com/Northerner1/ComfyUI_North_Noise", + "files": [ + "https://github.com/Northerner1/ComfyUI_North_Noise" + ], + "install_type": "git-clone", + "description": "NODES: Unsampler" + }, + { + "author": "kimara-ai", + "title": "ComfyUI-Kimara-AI-Image-From-URL [WIP]", + "reference": "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Image-From-URL", + "files": [ + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Image-From-URL" + ], + "install_type": "git-clone", + "description": "Load image from URL and downscale to desired megapixels. Set megapixels to 0 for no downscaling." + }, + { + "author": "tc8M4lF3s88", + "title": "comfy-tif-support", + "reference": "https://github.com/M4lF3s/comfy-tif-support", + "files": [ + "https://github.com/M4lF3s/comfy-tif-support" + ], + "install_type": "git-clone", + "description": "NODES: Load TIFF" + }, + { + "author": "tc888", + "title": "ComfyUI_Save_Flux_Image", + "reference": "https://github.com/tc888/ComfyUI_Save_Flux_Image", + "files": [ + "https://github.com/tc888/ComfyUI_Save_Flux_Image" + ], + "install_type": "git-clone", + "description": "Customized version of comfyui-image-save tailored for saving Flux images" + }, + { + "author": "var1ableX", + "title": "ComfyUI_Accessories", + "reference": "https://github.com/var1ableX/ComfyUI_Accessories", + "files": [ + "https://github.com/var1ableX/ComfyUI_Accessories" + ], + "install_type": "git-clone", + "description": "NODES: Get Mask Dimensions, Get Random Dimensions, Is Mask Empty/Image, Any Cast, Make List From Text" + }, + { + "author": "xinyiSS", + "title": "CombineMasksNode", + "reference": "https://github.com/xinyiSS/CombineMasksNode", + "files": [ + "https://github.com/xinyiSS/CombineMasksNode" + ], + "install_type": "git-clone", + "description": "NODES: Combine Masks Node" + }, + { + "author": "osuiso-depot", + "title": "comfyui-keshigom_custom", + "reference": "https://github.com/osuiso-depot/comfyui-keshigom_custom", + "files": [ + "https://github.com/osuiso-depot/comfyui-keshigom_custom" + ], + "install_type": "git-clone", + "description": "NODES: RegexpChopper, FLIP-W/H Selector, FLIP-W/H SelectorConst, TextFind, ckpt_Loader_Simple, True-or-False, myStringNode" + }, + { + "author": "LucipherDev", + "title": "ComfyUI-Sentinel [WIP]", + "reference": "https://github.com/LucipherDev/ComfyUI-Sentinel", + "files": [ + "https://github.com/LucipherDev/ComfyUI-Sentinel" + ], + "install_type": "git-clone", + "description": "ComfyUI Extension for Advanced Security. Implements login, multi-user registration, IP filtering, and user-specific input/output directories.[w/WARN:While ComfyUI Sentinel enhances security for ComfyUI, it does not guarantee absolute protection. Security is about risk mitigation, not elimination. Users are responsible for implementing their own security measures.]" + }, + { + "author": "threadedblue", + "title": "MLXnodes [WIP]", + "reference": "https://github.com/threadedblue/MLXnodes", + "files": [ + "https://github.com/threadedblue/MLXnodes" + ], + "install_type": "git-clone", + "description": "A port of MLX Examples to ComfyUI custom_nodes. These are intended to run on a macOS M1.\nNOTE: The files in the repo are not organized." + }, + { + "author": "jschoormans", + "title": "Comfy-InterestingPixels [WIP]", + "reference": "https://github.com/jschoormans/Comfy-InterestingPixels", + "files": [ + "https://github.com/jschoormans/Comfy-InterestingPixels" + ], + "install_type": "git-clone", + "description": "NODES: Shareable Image Slider, Random Palette\nNOTE: The files in the repo are not organized." + }, + { + "author": "jschoormans", + "title": "ComfyUI-TexturePacker [WIP]", + "reference": "https://github.com/kijai/ComfyUI-TexturePacker", + "files": [ + "https://github.com/jschoormans/Comfy-InterestingPixels" + ], + "install_type": "git-clone", + "description": "ComfyUI node to use PyTexturePacker\nNOTE: The files in the repo are not organized." + }, + { + "author": "lum3on", + "title": "comfyui_LLM_Polymath [WIP]", + "reference": "https://github.com/lum3on/comfyui_LLM_Polymath", + "files": [ + "https://github.com/lum3on/comfyui_LLM_Polymath" + ], + "install_type": "git-clone", + "description": "An advanced chat node, that integrates large language models to automate data processes and enhance prompt responses through real-time web search and image handling. It supports both OpenAI's GPT-like models and a local Ollama API. Custom node finder and smart assistant tools provide tailored workflow recommendations for efficient integration. Additionally, the node dynamically augments prompts and offers flexible output compression options.\nNOTE: The files in the repo are not organized." + }, + { + "author": "MickeyJ", + "title": "ComfyUI_mickster_nodes [WIP]", + "reference": "https://github.com/MickeyJ/ComfyUI_mickster_nodes", + "files": [ + "https://github.com/MickeyJ/ComfyUI_mickster_nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI, focusing on image handling and LoRA training." + }, + { + "author": "gold24park", + "title": "loki-comfyui-node", + "reference": "https://github.com/gold24park/loki-comfyui-node", + "files": [ + "https://github.com/gold24park/loki-comfyui-node" + ], + "install_type": "git-clone", + "description": "NODES: Get Image Luminance, Get Dominant Color, Overlay Text" + }, + { + "author": "hayden-fr", + "title": "ComfyUI-Image-Browsing [USAFE]", + "id": "image-browsing", + "reference": "https://github.com/hayden-fr/ComfyUI-Image-Browsing", + "files": [ + "https://github.com/hayden-fr/ComfyUI-Image-Browsing" + ], + "install_type": "git-clone", + "description": "Image Browsing: browsing, download and delete." + }, + { + "author": "molbal", + "title": "comfy-url-fetcher [WIP]", + "reference": "https://github.com/molbal/comfy-url-fetcher", + "files": [ + "https://github.com/molbal/comfy-url-fetcher" + ], + "install_type": "git-clone", + "description": "Fetches URLs" + }, + { + "author": "neverbiasu", + "title": "ComfyUI_Output_as_Input", + "reference": "https://github.com/a-und-b/ComfyUI_Output_as_Input", + "files": [ + "https://github.com/a-und-b/ComfyUI_Output_as_Input" + ], + "install_type": "git-clone", + "description": "This is a simple custom ComfyUI node that allows you to easily use recent output images as input in your workflows. It does not allow image uploads on purpose and does not require any additional dependencies.\nNOTE: The files in the repo are not organized." + }, + { + "author": "neverbiasu", + "title": "ComfyUI-DeepSeek", + "reference": "https://github.com/neverbiasu/ComfyUI-DeepSeek", + "files": [ + "https://github.com/neverbiasu/ComfyUI-DeepSeek" + ], + "install_type": "git-clone", + "description": "NODES: DeepSeek Caller" + }, + { + "author": "Krish-701", + "title": "RK_Comfyui", + "reference": "https://github.com/Krish-701/RK_Comfyui", + "files": [ + "https://github.com/Krish-701/RK_Comfyui" + ], + "install_type": "git-clone", + "description": "NODES: RK Excel File State Looper, RK Accumulate Text, RK Advanced Script Finder, RK CSV File State Looper, RK Read Excel Row, RK Sequential Image Viewer, RK Concatenate Text, RK Write Text, RK Save Image, RK Seed Loop" + }, + { + "author": "mikebilly", + "title": "transparent-background-comfyui", + "reference": "https://github.com/mikebilly/Transparent-background-comfyUI", + "files": [ + "https://github.com/mikebilly/Transparent-background-comfyUI" + ], + "install_type": "git-clone", + "description": "NODES: Transparentbackground RemBg" + }, + { + "author": "Kayarte", + "title": "Time Series Nodes for ComfyUI [Experimental]", + "reference": "https://github.com/Kayarte/Time-Series-Nodes-for-ComfyUI", + "files": [ + "https://github.com/Kayarte/Time-Series-Nodes-for-ComfyUI" + ], + "install_type": "git-clone", + "description": "Basic nodes for time series analysis in ComfyUI. Currently in early development." + }, + { + "author": "HuangYuChuh", + "title": "ComfyUI-LLMs-Toolkit [WIP]", + "reference": "https://github.com/HuangYuChuh/ComfyUI-LLMs-Toolkit", + "files": [ + "https://github.com/HuangYuChuh/ComfyUI-LLMs-Toolkit" + ], + "install_type": "git-clone", + "description": "Enhance your ComfyUI workflows with powerful LLMs! This custom node suite integrates DeepSeek, Qwen, and other leading Chinese LLMs directly into your ComfyUI environment. Create innovative AI-powered applications with a range of useful nodes designed to leverage the advanced capabilities of these LLMs for image generation, understanding, and more.\nNOTE: The files in the repo are not organized." + }, + { + "author": "comfyuiblog", + "title": "deepseek_prompt_generator_comfyui [WIP]", + "reference": "https://github.com/comfyuiblog/deepseek_prompt_generator_comfyui", + "files": [ + "https://github.com/comfyuiblog/deepseek_prompt_generator_comfyui" + ], + "install_type": "git-clone", + "description": "Prompt Expansion for Stable Diffusion, using Deepseek API.\nNOTE: The files in the repo are not organized." + }, + { + "author": "risunobushi", + "title": "ComfyUI_HEXtoRGB", + "reference": "https://github.com/risunobushi/ComfyUI_HEXtoRGB", + "files": [ + "https://github.com/risunobushi/ComfyUI_HEXtoRGB" + ], + "install_type": "git-clone", + "description": "NODES: Hex to RGB Converter" + }, + { + "author": "EmanueleUniroma2", + "title": "ComfyUI-FLAC-to-WAV [WIP]", + "reference": "https://github.com/EmanueleUniroma2/ComfyUI-FLAC-to-WAV", + "files": [ + "https://github.com/EmanueleUniroma2/ComfyUI-FLAC-to-WAV" + ], + "install_type": "git-clone", + "description": "A custom node to convert flac files to wav inside comfy UI\nComfyUI Custom Node: FLAC to WAV Converter Welcome to the ComfyUI Custom Node: FLAC to WAV Converter repository! This project provides a custom node for ComfyUI that allows you to easily convert .flac audio files to .wav format, making it simpler to work with a variety of audio tools and applications.\nNOTE: The files in the repo are not organized." + }, + { + "author": "eyekayem", + "title": "comfyui_runway_gen3", + "reference": "https://github.com/eyekayem/comfyui_runway_gen3", + "files": [ + "https://github.com/eyekayem/comfyui_runway_gen3" + ], + "install_type": "git-clone", + "description": "NODES: Runway Video Gen, Runway Video Preview" + }, + { + "author": "StartHua", + "title": "Comfyui_CXH_joy_caption [SECURITY SCREENING]", + "reference": "https://github.com/StartHua/Comfyui_CXH_joy_caption", + "files": [ + "https://github.com/StartHua/Comfyui_CXH_joy_caption" + ], + "install_type": "git-clone", + "description": "Nodes:Joy_caption_load, Joy_caption\nNOTE:This nodepack has been transitioned to a security screening status due to policy." + }, + { + "author": "kijai", + "title": "ComfyUI-ComfyUI-Hunyuan3DWrapper [WIP]", + "reference": "https://github.com/kijai/ComfyUI-Hunyuan3DWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-Hunyuan3DWrapper" + ], + "install_type": "git-clone", + "description": "Wrapper nodes for https://github.com/Tencent/Hunyuan3D-2, additional installation steps needed, please check the github repository" + }, + { + "author": "7BEII", + "title": "comfyui-promptbymood [WIP]", + "reference": "https://github.com/7BEII/Comfyui_PDuse", + "files": [ + "https://github.com/7BEII/Comfyui_PDuse" + ], + "install_type": "git-clone", + "description": "NODES: PD_json_group_fontsize, PD_Incremental_JSON, PD_removeword, PD_Image Crop Location, PD_ImageConcanate, PD_FileName_refixer\nNOTE: The files in the repo are not organized." + }, + { + "author": "RLW-Chars", + "title": "comfyui-promptbymood [WIP]", + "reference": "https://github.com/RLW-Chars/comfyui-promptbymood", + "files": [ + "https://github.com/RLW-Chars/comfyui-promptbymood" + ], + "install_type": "git-clone", + "description": "A plugin for ComfyUI to create random prompts.\nNOTE: The files in the repo are not organized." + }, + { + "author": "mohamedsobhi777", + "title": "ComfyUI-FramerComfy [WIP]", + "reference": "https://github.com/mohamedsobhi777/ComfyUI-FramerComfy", + "files": [ + "https://github.com/mohamedsobhi777/ComfyUI-FramerComfy" + ], + "install_type": "git-clone", + "description": "NODES: FramerComfy Input String/Number/Image/Float/Boolean/Image, ...\nNOTE: The files in the repo are not organized." + }, + { + "author": "naderzare", + "title": "comfyui-inodes", + "reference": "https://github.com/naderzare/comfyui-inodes", + "files": [ + "https://github.com/naderzare/comfyui-inodes" + ], + "install_type": "git-clone", + "description": "NODES: If-Else, Multiline Split, Azure AI API" + }, + { + "author": "sizzlebop", + "title": "ComfyUI LLM Prompt Enhancer [WIP]", + "reference": "https://github.com/pinkpixel-dev/comfyui-llm-prompt-enhancer", + "files": [ + "https://github.com/pinkpixel-dev/comfyui-llm-prompt-enhancer" + ], + "install_type": "git-clone", + "description": "A ComfyUI node for enhancing prompts using various LLM providers\nNOTE: The files in the repo are not organized." + }, + { + "author": "a-One-Fan", + "title": "ComfyUI-Blenderesque-Nodes [WIP]", + "reference": "https://github.com/a-One-Fan/ComfyUI-Blenderesque-Nodes", + "files": [ + "https://github.com/a-One-Fan/ComfyUI-Blenderesque-Nodes" + ], + "install_type": "git-clone", + "description": "Blender-like nodes for ComfyUI." + }, + { + "author": "yanhuifair", + "title": "comfyui-deepseek [WIP]", + "reference": "https://github.com/yanhuifair/comfyui-deepseek", + "files": [ + "https://github.com/yanhuifair/comfyui-deepseek" + ], + "install_type": "git-clone", + "description": "nodes for deepseek api\nNOTE: The files in the repo are not organized." + }, + { + "author": "IfnotFr", + "title": "ComfyUI-Ifnot-Pack", + "reference": "https://github.com/IfnotFr/ComfyUI-Ifnot-Pack", + "files": [ + "https://github.com/IfnotFr/ComfyUI-Ifnot-Pack" + ], + "install_type": "git-clone", + "description": "NODES: Face Crop, [w/A pack of custom nodes used in my projects. Not intended to be used by other persons as the usage is not documented. But if something interests you in this repository, go for it !]" + }, + { + "author": "KihongK", + "title": "ComfyUI-RoysNodes [WIP]", + "reference": "https://github.com/KihongK/comfyui-roysnodes", + "files": [ + "https://github.com/KihongK/comfyui-roysnodes" + ], + "install_type": "git-clone", + "description": "WIP custom nodes for Creation of AI images & videos" + }, + { + "author": "catboxanon", + "title": "ComfyUI-Pixelsmith [WIP]", + "reference": "https://github.com/catboxanon/ComfyUI-Pixelsmith", + "files": [ + "https://github.com/catboxanon/ComfyUI-Pixelsmith" + ], + "install_type": "git-clone", + "description": "NODES: Pixelsmith" + }, + { + "author": "smthemex", + "title": "ComfyUI_MangaNinjia [WIP]", + "reference": "https://github.com/smthemex/ComfyUI_MangaNinjia", + "files": [ + "https://github.com/smthemex/ComfyUI_MangaNinjia" + ], + "install_type": "git-clone", + "description": "ComfyUI_MangaNinjia is a ComfyUI node of MangaNinja which is a Line Art Colorization with Precise Reference Following method.\nNOTE: invalid pyproject.toml file." + }, + { + "author": "hunterssl", + "title": "ComfyUI_SSLNodes", + "reference": "https://github.com/hunterssl/ComfyUI_SSLNodes", + "files": [ + "https://github.com/hunterssl/ComfyUI_SSLNodes" + ], + "install_type": "git-clone", + "description": "NODES: SSL Load Json, SSL Get Json Keys Count, SSL Load Checkpoint By Name, SSL Random Num In Loop, SSL Save Image Outside" + }, + { + "author": "ammahmoudi", + "title": "ComfyUI-Legendary-Nodes", + "reference": "https://github.com/ammahmoudi/ComfyUI-Legendary-Nodes", + "files": [ + "https://github.com/ammahmoudi/ComfyUI-Legendary-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Legendary Lora URL Loader, Legendary Lora URL Loader" + }, + { + "author": "yichengup", + "title": "Comfyui-NodeSpark", + "reference": "https://github.com/yichengup/Comfyui-NodeSpark", + "files": [ + "https://github.com/yichengup/Comfyui-NodeSpark" + ], + "install_type": "git-clone", + "description": "NODES: Image Circle Warp, Image Stretch, Image Wave Warp, Liquify Effect" + }, + { + "author": "kijai", + "title": "ComfyUI-VideoNoiseWarp [WIP]", + "reference": "https://github.com/kijai/ComfyUI-VideoNoiseWarp", + "files": [ + "https://github.com/kijai/ComfyUI-VideoNoiseWarp" + ], + "install_type": "git-clone", + "description": "Nodes to generate noise from video for [a/https://github.com/Eyeline-Research/Go-with-the-Flow](https://github.com/Eyeline-Research/Go-with-the-Flow)" + }, + { + "author": "muvich3n", + "title": "ComfyUI-Claude-I2T", + "reference": "https://github.com/muvich3n/ComfyUI-Claude-I2T", + "files": [ + "https://github.com/muvich3n/ComfyUI-Claude-I2T" + ], + "install_type": "git-clone", + "description": "NODES: Claude Image to Prompt Generator" + }, + { + "author": "maekawataiki", + "title": "ComfyUI-ALB-Login", + "reference": "https://github.com/maekawataiki/ComfyUI-ALB-Login", + "files": [ + "https://github.com/maekawataiki/ComfyUI-ALB-Login" + ], + "install_type": "git-clone", + "description": "Auth library to inspect token provided by ALB to protect ComfyUI." + }, + { + "author": "ArmandAlbert", + "title": "Kwai_font_comfyui", + "reference": "https://github.com/ArmandAlbert/Kwai_font_comfyui", + "files": [ + "https://github.com/ArmandAlbert/Kwai_font_comfyui" + ], + "install_type": "git-clone", + "description": "NODES: Kwaifont_Resnet50_Runner, Kwaifont_Resnet50_Loader, Kwaifont_Resnet101_Runner, Kwaifont_Resnet101_Loader, Kwaifont_Image_Cropper" + }, + { + "author": "PATATAJEC", + "title": "Patatajec-Nodes [WIP]", + "reference": "https://github.com/PATATAJEC/ComfyUI-PatatajecNodes", + "files": [ + "https://github.com/PATATAJEC/ComfyUI-PatatajecNodes" + ], + "install_type": "git-clone", + "description": "NODES: Path Tool, Color Match Falloff, Sequence Content Zoom, Sequence Blend, Color Picker" + }, + { + "author": "sourceful-official", + "title": "comfyui-sourceful-official", + "reference": "https://github.com/sourceful-official/comfyui-sourceful-official", + "files": [ + "https://github.com/sourceful-official/comfyui-sourceful-official" + ], + "description": "NODES: SourcefulOfficialComfyuiIncontextThreePanels, FalFluxLoraSourcefulOfficial, FalIcLightV2SourcefulOfficial", + "install_type": "git-clone" + }, + { + "author": "Alvaroeai", + "title": "ComfyUI-SunoAI-Mds", + "reference": "https://github.com/Alvaroeai/ComfyUI-SunoAI-Mds", + "files": [ + "https://github.com/Alvaroeai/ComfyUI-SunoAI-Mds" + ], + "install_type": "git-clone", + "description": "NODES: Suno Generate, Suno Download, Suno Proxy Generate, Suno Proxy Download" + }, + { + "author": "parmarjh", + "title": "ComfyUI-MochiWrapper-I2V [WIP]", + "reference": "https://github.com/parmarjh/ComfyUI-MochiWrapper-I2V", + "files": [ + "https://github.com/parmarjh/ComfyUI-MochiWrapper-I2V" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for [a/Mochi](https://github.com/genmoai/models) video generator" + }, + { + "author": "Symbiomatrix", + "title": "Comfyui-Sort-Files", + "reference": "https://github.com/Symbiomatrix/Comfyui-Sort-Files", + "files": [ + "https://github.com/Symbiomatrix/Comfyui-Sort-Files" + ], + "install_type": "git-clone", + "description": "Monkeypatch file sort to date modified or custom instead of lexicographic." + }, + { + "author": "x3bits", + "title": "ComfyUI-Power-Flow [UNSAFE]", + "reference": "https://github.com/x3bits/ComfyUI-Power-Flow", + "files": [ + "https://github.com/x3bits/ComfyUI-Power-Flow" + ], + "install_type": "git-clone", + "description": "A ComfyUI nodepackage that introduces common programming logic to enhance the flexibility of ComfyUI workflows. It supports features such as function definition and execution, 'for' loops, 'while' loops, and Python code execution.\n[w/This extension allows the execution of arbitrary Python code from a workflow.]" + }, + { + "author": "EmilioPlumed", + "title": "ComfyUI-Math [WIP]", + "reference": "https://github.com/EmilioPlumed/ComfyUI-Math", + "files": [ + "https://github.com/EmilioPlumed/ComfyUI-Math" + ], + "install_type": "git-clone", + "description": "Custom nodes that take 2 float inputs and calculates greatest common denominator and least common multiple, returning them as ints.\nNOTE: The files in the repo are not organized." + }, + { + "author": "mliand", + "title": "ComfyUI-Calendar-Node [WIP]", + "reference": "https://github.com/mliand/ComfyUI-Calendar-Node", + "files": [ + "https://github.com/mliand/ComfyUI-Calendar-Node" + ], + "install_type": "git-clone", + "description": "A custom node for Comfyui to create a Calendar like grid\nNOTE: The files in the repo are not organized." + }, + { + "author": "phamngoctukts", + "title": "ComyUI-Tupham", + "reference": "https://github.com/phamngoctukts/ComyUI-Tupham", + "files": [ + "https://github.com/phamngoctukts/ComyUI-Tupham" + ], + "install_type": "git-clone", + "description": "NODES: Ghép Ảnh, Multi Prompt v2.0, Condition Upscale, Multi sampler, Run node selected" + }, + { + "author": "5x00", + "title": "ComfyUI-Prompt-Plus [WIP]", + "reference": "https://github.com/5x00/ComfyUI-Prompt-Plus", + "files": [ + "https://github.com/5x00/ComfyUI-Prompt-Plus" + ], + "install_type": "git-clone", + "description": "Prompt Plus is a collection of LLM and VLM nodes that make prompting easier for image and video generation.\nNOTE: The files in the repo are not organized." + }, + { + "author": "aria1th", + "title": "ComfyUI-CairoSVG", + "reference": "https://github.com/aria1th/ComfyUI-CairoSVG", + "files": [ + "https://github.com/aria1th/ComfyUI-CairoSVG" + ], + "install_type": "git-clone", + "description": "NODES: VectorizedUpscaleScaling, VectorizedUpscaleSize" + }, + { + "author": "gitmylo", + "title": "FlowNodes [WIP]", + "reference": "https://github.com/gitmylo/FlowNodes", + "files": [ + "https://github.com/gitmylo/FlowNodes" + ], + "install_type": "git-clone", + "description": "A ComfyUI nodepack containing nodes for basic programming logic." + }, + { + "author": "chengzeyi", + "title": "Comfy-WaveSpeed [WIP]", + "reference": "https://github.com/chengzeyi/Comfy-WaveSpeed", + "files": [ + "https://github.com/chengzeyi/Comfy-WaveSpeed" + ], + "install_type": "git-clone", + "description": "The all in one inference optimization solution for ComfyUI, universal, flexible, and fast." + }, + { + "author": "zyd232", + "title": "ComfyUI-zyd232-Nodes", + "reference": "https://github.com/zyd232/ComfyUI-zyd232-Nodes", + "files": [ + "https://github.com/zyd232/ComfyUI-zyd232-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Image Pixels Compare, Save Preview Images" + }, + { + "author": "yanhuifair", + "title": "ComfyUI-FairLab", + "reference": "https://github.com/yanhuifair/ComfyUI-FairLab", + "files": [ + "https://github.com/yanhuifair/ComfyUI-FairLab" + ], + "install_type": "git-clone", + "description": "NODES: CLIP Text Encode Translated, Translate String, Load Image From Folder, Save String To Folder, Fix UTF-8 String, String Combine, String Field, Download Image, Save Images To Folder, Save Image To Folder, Image Resize, ..." + }, + { + "author": "nomcycle", + "title": "ComfyUI_Cluster [WIP]", + "reference": "https://github.com/nomcycle/ComfyUI_Cluster", + "files": [ + "https://github.com/nomcycle/ComfyUI_Cluster" + ], + "install_type": "git-clone", + "description": "Very early W.I.P of clustered ComfyUI inference." + }, + { + "author": "waynepimpzhang", + "title": "FindBrightestSpot [WIP]", + "reference": "https://github.com/waynepimpzhang/comfyui-opencv-brightestspot", + "files": [ + "https://github.com/waynepimpzhang/comfyui-opencv-brightestspot" + ], + "install_type": "git-clone", + "description": "Analyze the image to find the x and y coordinates of the brightest point.\nNOTE: The files in the repo are not organized." + }, + { + "author": "power88", + "title": "ComfyUI-PDiD-Nodes [WIP]", + "reference": "https://github.com/power88/ComfyUI-PDiD-Nodes", + "files": [ + "https://github.com/power88/ComfyUI-PDiD-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Get Image Size, Check Character Tag, Nearest SDXL Resolution divided by 64, Get Image Main Color, Blend Images, List Operations, Make Image Gray.\nNOTE: not working" + }, + { + "author": "FinetunersAI", + "title": "ComfyUI Finetuners [WIP]", + "reference": "https://github.com/FinetunersAI/finetuners", + "files": [ + "https://github.com/FinetunersAI/finetuners" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for ComfyUI to enhance your workflow.\nNOTE: The files in the repo are not organized." + }, + { + "author": "sourceful-official", + "title": "ComfyUI_InstructPixToPixConditioningLatent [WIP]", + "reference": "https://github.com/sourceful-official/ComfyUI_InstructPixToPixConditioningLatent", + "files": [ + "https://github.com/sourceful-official/ComfyUI_InstructPixToPixConditioningLatent" + ], + "description": "ComfyUI-ComfyUI_InstructPixToPixConditioningLatent\nNOTE:invalid pyproject.toml", + "install_type": "git-clone" + }, + { + "author": "fritzprix", + "title": "ComfyUI-LLM-Utils [WIP]", + "reference": "https://github.com/fritzprix/ComfyUI-LLM-Utils", + "files": [ + "https://github.com/fritzprix/ComfyUI-LLM-Utils" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes for ComfyUI focused on text and LLM-related operations\nNOTE: The files in the repo are not organized." + }, + { + "author": "ciga2011", + "title": "ComfyUI-AppGen [UNSAFE]", + "reference": "https://github.com/ciga2011/ComfyUI-AppGen", + "files": [ + "https://github.com/ciga2011/ComfyUI-AppGen" + ], + "install_type": "git-clone", + "description": "A ComfyUI nodepack designed to generate and edit Single Page Applications (SPAs) using natural language.[w/This extension allows arbitrary JavaScript code to be executed through the execution of workflows.]" + }, + { + "author": "DraconicDragon", + "title": "ComfyUI e621 booru Toolkit", + "reference": "https://github.com/DraconicDragon/ComfyUI_e621_booru_toolkit", + "files": [ + "https://github.com/DraconicDragon/ComfyUI_e621_booru_toolkit" + ], + "install_type": "git-clone", + "description": "WIP. Nodes: Fetch e621/danbooru image and/or tags etc from a given URL; Get the Wiki entry for a tag through a button press." + }, + { + "author": "Grey3016", + "title": "Save2Icon", + "reference": "https://github.com/Grey3016/Save2Icon", + "files": [ + "https://github.com/Grey3016/Save2Icon" + ], + "install_type": "git-clone", + "description": "NODES: Save2Icon" + }, + { + "author": "Chargeuk", + "title": "ComfyUI-vts-nodes [WIP]", + "reference": "https://github.com/Chargeuk/ComfyUI-vts-nodes", + "files": [ + "https://github.com/Chargeuk/ComfyUI-vts-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Clean Text, Color Mask To Mask, Conditioning Set Batch Mask, Merge Delimited Text, Reduce Batch Size, Text To Batch Prompt, To Text, " + }, + { + "author": "ryanontheinside", + "title": "ComfyUI_YoloNasObjectDetection_Tensorrt [WIP]", + "reference": "https://github.com/ryanontheinside/ComfyUI_YoloNasObjectDetection_Tensorrt", + "files": [ + "https://github.com/ryanontheinside/ComfyUI_YoloNasObjectDetection_Tensorrt" + ], + "install_type": "git-clone", + "description": "ComfyUI YOLO NAS Object Detection with TensorRT" + }, + { + "author": "steelan9199", + "title": "ComfyUI-Teeth [UNSAFE]", + "reference": "https://github.com/steelan9199/ComfyUI-Teeth", + "files": [ + "https://github.com/steelan9199/ComfyUI-Teeth" + ], + "install_type": "git-clone", + "description": "Run Python code, Outline, List, Four-quadrant grid, Nine-square grid[w/This extension poses a risk of executing arbitrary commands through workflow execution. Please be cautious.]" + }, + { + "author": "aiden1020", + "title": "ComfyUI_Artcoder [WIP]", + "reference": "https://github.com/aiden1020/ComfyUI_Artcoder", + "files": [ + "https://github.com/aiden1020/ComfyUI_Artcoder" + ], + "install_type": "git-clone", + "description": "This project is a custom node for ComfyUI that uses [a/ArtCoder](https://arxiv.org/abs/2011.07815) [CVPR 2021] to refine videos generated by [a/AnimateDiff](https://arxiv.org/abs/2307.04725) [ICLR2024 Spotlight] or the other video. The node is to transform these videos into functional QR code videos that can be scanned.\nNOTE: The files in the repo are not organized." + }, + { + "author": "A4P7J1N7M05OT", + "title": "ComfyUI-ManualSigma", + "reference": "https://github.com/A4P7J1N7M05OT/ComfyUI-ManualSigma", + "files": [ + "https://github.com/A4P7J1N7M05OT/ComfyUI-ManualSigma" + ], + "install_type": "git-clone", + "description": "NODES: Manual Sigma" + }, + { + "author": "neverbiasu", + "title": "ComfyUI-StereoCrafter [WIP]", + "reference": "https://github.com/neverbiasu/ComfyUI-StereoCrafter", + "files": [ + "https://github.com/neverbiasu/ComfyUI-StereoCrafter" + ], + "install_type": "git-clone", + "description": "NODES: Depth Splatting Model Loader, Depth Splatting Node, Inpainting Inference Node" + }, + { + "author": "watarika", + "title": "ComfyUI-exit [UNSAFE]", + "reference": "https://github.com/watarika/ComfyUI-exit", + "files": [ + "https://github.com/watarika/ComfyUI-exit" + ], + "install_type": "git-clone", + "description": "Custom node to handle text.[w/This custom node includes a custom node that can terminate ComfyUI.]" + }, + { + "author": "watarika", + "title": "ComfyUI-Text-Utility [UNSAFE]", + "reference": "https://github.com/watarika/ComfyUI-Text-Utility", + "files": [ + "https://github.com/watarika/ComfyUI-Text-Utility" + ], + "install_type": "git-clone", + "description": "Custom node to handle text.[w/This nodepack contains a custom node that poses a security risk by providing the ability to read text from arbitrary paths.]" + }, + { + "author": "mehbebe", + "title": "ComfyLoraGallery [WIP]", + "reference": "https://github.com/mehbebe/ComfyLoraGallery", + "files": [ + "https://github.com/mehbebe/ComfyLoraGallery" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that will provide a gallery style lora selector similar to the 'lora' tab in Automatic1111." + }, + { + "author": "karthikg-09", + "title": "ComfyUI-KG09 [WIP]", + "reference": "https://github.com/karthikg-09/ComfyUI-3ncrypt", + "files": [ + "https://github.com/karthikg-09/ComfyUI-3ncrypt" + ], + "install_type": "git-clone", + "description": "NODES: Save Image+[w/The web extension of this nodepack modifies part of ComfyUI's asset files.]" + }, + { + "author": "AustinMroz", + "title": "ComfyUI-MinCache", + "id": "comfyui-mincache", + "reference": "https://github.com/AustinMroz/ComfyUI-MinCache", + "files": [ + "https://github.com/AustinMroz/ComfyUI-MinCache" + ], + "install_type": "git-clone", + "description": "Modifies execution to minimize RAM at the cost of performance" + }, + { + "author": "glamorfleet0i", + "title": "ComfyUI Firewall", + "reference": "https://github.com/glamorfleet0i/ComfyUI-Firewall", + "files": [ + "https://github.com/glamorfleet0i/ComfyUI-Firewall" + ], + "install_type": "git-clone", + "description": "A very basic firewall-like middleware that restricts access to your ComfyUI server based on a list of specified IP addresses. As this is configured as middleware, the firewall will restrict both the web UI and any API endpoints." + }, + { + "author": "warshanks", + "title": "Shank-Tools", + "reference": "https://github.com/warshanks/Shank-Tools", + "files": [ + "https://github.com/warshanks/Shank-Tools" + ], + "install_type": "git-clone", + "description": "NODES: Tile Calculator, Resolution Divider, Height & Width" + }, + { + "author": "BaronVonBoolean", + "title": "ComfyUI-FileOps [UNSAFE]", + "reference": "https://github.com/BaronVonBoolean/ComfyUI-FileOps", + "files": [ + "https://github.com/BaronVonBoolean/ComfyUI-FileOps" + ], + "install_type": "git-clone", + "description": "NODES: File Mv, File Path, File Dir.\n[w/This is dangerous as it provides the ability to manipulate arbitrary user files.]" + }, + { + "author": "JissiChoi", + "title": "ComfyUI-Jissi-List [WIP]", + "reference": "https://github.com/JissiChoi/ComfyUI-Jissi-List", + "files": [ + "https://github.com/JissiChoi/ComfyUI-Jissi-List" + ], + "install_type": "git-clone", + "description": "Data List Management for ComfyUI\nNOTE: The files in the repo are not organized." + }, + { + "author": "Maxim-Dey", + "title": "ComfyUI-MS_Tools [WIP]", + "reference": "https://github.com/Maxim-Dey/ComfyUI-MaksiTools", + "files": [ + "https://github.com/Maxim-Dey/ComfyUI-MaksiTools" + ], + "install_type": "git-clone", + "description": "NODES: MS Time Measure NodeMaksiTools" + }, + { + "author": "jammyfu", + "title": "ComfyUI PaintingCoderUtils Nodes [WIP]", + "reference": "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils", + "files": [ + "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils" + ], + "install_type": "git-clone", + "description": "A collection of utility nodes designed for ComfyUI, offering convenient image processing tools.\nNOTE: The files in the repo are not organized.\nNOTE: The files in the repo are not organized." + }, + { + "author": "krich-cto", + "title": "ComfyUI Flow Control [UNSTABLE]", + "reference": "https://github.com/krich-cto/ComfyUI-Flow-Control", + "files": [ + "https://github.com/krich-cto/ComfyUI-Flow-Control" + ], + "install_type": "git-clone", + "description": "This is an Extension for ComfyUI. This project will help you control the flow logic via many controls.[w/Installing this custom node currently causes a conflict with the UnetLoaderGGUF of ComfyUI-GGUF.]" + }, + { + "author": "dihan", + "title": "ComfyUI Random Keypoints for InstantID [WIP]", + "reference": "https://github.com/dihan/comfyui-random-kps", + "files": [ + "https://github.com/dihan/comfyui-random-kps" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that generates random facial keypoints compatible with InstantID.\nNOTE: The files in the repo are not organized." + }, + { + "author": "emranemran", + "title": "ComfyUI-FasterLivePortrait", + "reference": "https://github.com/emranemran/ComfyUI-FasterLivePortrait", + "files": [ + "https://github.com/emranemran/ComfyUI-FasterLivePortrait" + ], + "install_type": "git-clone", + "description": "Improve mouth tracking with live AI Video" + }, + { + "author": "kandy", + "title": "ComfyUI-KAndy", + "reference": "https://github.com/kandy/ComfyUI-KAndy", + "files": [ + "https://github.com/kandy/ComfyUI-KAndy" + ], + "install_type": "git-clone", + "description": "NODES: Civit Prompt API, Load Image From Url, Civit Images API, KAndyNoiseCondition, KAndyImagesByCss" + }, + { + "author": "StartHua", + "title": "Comfyui_leffa", + "reference": "https://github.com/StartHua/Comfyui_leffa", + "files": [ + "https://github.com/StartHua/Comfyui_leffa" + ], + "install_type": "git-clone", + "description": "NODES: CXH_Leffa_Viton_Load, CXH_Leffa_Viton_Run" + }, + { + "author": "logtd", + "title": "ComfyUI-HunyuanLoom [WIP]", + "id": "comfyui-42lux", + "reference": "https://github.com/logtd/ComfyUI-HunyuanLoom", + "files": [ + "https://github.com/logtd/ComfyUI-HunyuanLoom" + ], + "install_type": "git-clone", + "description": "A set of nodes to edit videos using the Hunyuan Video model" + }, + { + "author": "watarika", + "title": "ComfyUI-exit [UNSAFE]", + "reference": "https://github.com/watarika/ComfyUI-exit", + "files": [ + "https://github.com/watarika/ComfyUI-exit" + ], + "install_type": "git-clone", + "description": "A custom node that terminates ComfyUI after a specified number of seconds. Use this node if you want Google Colab to automatically terminate after mass generation. It is necessary to disconnect and delete the Google Colab runtime on the Notebook side." + }, + { + "author": "Eagle-CN", + "title": "ComfyUI-Addoor [UNSAFE]", + "reference": "https://github.com/Eagle-CN/ComfyUI-Addoor", + "files": [ + "https://github.com/Eagle-CN/ComfyUI-Addoor" + ], + "install_type": "git-clone", + "description": "NODES: AD_BatchImageLoadFromDir, AD_DeleteLocalAny, AD_TextListToString, AD_AnyFileList, AD_ZipSave, AD_ImageSaver, AD_FluxTrainStepMath, AD_TextSaver, AD_PromptReplace.\nNOTE: This nodepack includes nodes that can delete arbitrary files." + }, + { + "author": "backearth1", + "title": "Comfyui-MiniMax-Video [WIP]", + "reference": "https://github.com/backearth1/Comfyui-MiniMax-Video", + "files": [ + "https://github.com/backearth1/Comfyui-MiniMax-Video" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension that integrates MiniMax AI's image-to-video and text-to-video generation capabilities, allowing users to easily convert static images into dynamic videos.\nNOTE: The files in the repo are not organized." + }, + { + "author": "FinetunersAI", + "title": "Fast Group Link [WIP]", + "id": "fast-group-link", + "reference": "https://github.com/FinetunersAI/comfyui-fast-group-link", + "files": [ + "https://github.com/FinetunersAI/comfyui-fast-group-link" + ], + "install_type": "git-clone", + "description": "Link and control ComfyUI groups with a simple ON/OFF toggle. Control multiple groups at once with an easy-to-use interface.\nNOTE: The files in the repo are not organized." + }, + { + "author": "kijai", + "title": "ComfyUI-MMAudio [WIP]", + "reference": "https://github.com/kijai/ComfyUI-MMAudio", + "files": [ + "https://github.com/kijai/ComfyUI-MMAudio" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use [a/MMAudio](https://github.com/hkchengrex/MMAudio)" + }, + { + "author": "kuschanow", + "title": "ComfyUI-SD-Slicer", + "reference": "https://github.com/kuschanow/ComfyUI-SD-Slicer", + "files": [ + "https://github.com/kuschanow/ComfyUI-SD-Slicer" + ], + "install_type": "git-clone", + "description": "NODES: Slicer" + }, + { + "author": "ralonsobeas", + "title": "ComfyUI-HDRConversion [WIP]", + "reference": "https://github.com/ralonsobeas/ComfyUI-HDRConversion", + "files": [ + "https://github.com/ralonsobeas/ComfyUI-HDRConversion" + ], + "install_type": "git-clone", + "description": "NODES: Generate HDR image" + }, + { + "author": "Matrix-King-Studio", + "title": "ComfyUI-MoviePy", + "reference": "https://github.com/Matrix-King-Studio/ComfyUI-MoviePy", + "files": [ + "https://github.com/Matrix-King-Studio/ComfyUI-MoviePy" + ], + "install_type": "git-clone", + "description": "NODES: Image Clip Node, Audio Duration Node, Save Video Node" + }, + { + "author": "oxysoft", + "title": "ComfyUI-uiapi", + "reference": "https://github.com/oxysoft/ComfyUI-uiapi", + "files": [ + "https://github.com/oxysoft/ComfyUI-uiapi" + ], + "install_type": "git-clone", + "description": "UIAPI is an intermediate and frontend plugin which allow communicating with the Comfy webui through server connection. This saves the need to export a workflow.json and instead directly sending a queue command to the frontend. This way, the user can experiment in realtime as they are running some professional industry or rendering software which uses UIAPI / ComfyUI as a backend. There is no way to switch seamlessly between UIAPI and regular server connection - though as of late summer 2023 it was inferior to use the server connection because the server would constantly unload models and start from scratch, and the schema of the workfow json was completely different and much less convenient, losing crucial information for efficient querying of nodes and assigning data dynamically." + }, + { + "author": "esciron", + "title": "ComfyUI-HunyuanVideoWrapper-Extended [WIP]", + "reference": "https://github.com/esciron/ComfyUI-HunyuanVideoWrapper-Extended", + "files": [ + "https://github.com/esciron/ComfyUI-HunyuanVideoWrapper-Extended" + ], + "install_type": "git-clone", + "description": "Extended ComfyUI wrapper nodes for [a/HunyuanVideo](https://github.com/Tencent/HunyuanVideo)" + }, + { + "author": "hotpot-killer", + "title": "ComfyUI_AlexNodes", + "reference": "https://github.com/hotpot-killer/ComfyUI_AlexNodes", + "files": [ + "https://github.com/hotpot-killer/ComfyUI_AlexNodes" + ], + "install_type": "git-clone", + "description": "NODES: InstructPG - editing images with text prompt, ...\nNOTE: The files in the repo are not organized." + }, + { + "author": "pschroedl", + "title": "ComfyUI-StreamDiffusion", + "reference": "https://github.com/pschroedl/ComfyUI-StreamDiffusion", + "files": [ + "https://github.com/pschroedl/ComfyUI-StreamDiffusion" + ], + "install_type": "git-clone", + "description": "NODES: StreamDiffusionConfig, StreamDiffusionAccelerationSampler, StreamDiffusionLoraLoader, StreamDiffusionAccelerationConfig, StreamDiffusionSimilarityFilterConfig, StreamDiffusionModelLoader, ..." + }, + { + "author": "c0ffymachyne", + "title": "ComfyUI Signal Processing [WIP]", + "reference": "https://github.com/c0ffymachyne/ComfyUI_SignalProcessing", + "files": [ + "https://github.com/c0ffymachyne/ComfyUI_SignalProcessing" + ], + "install_type": "git-clone", + "description": "This repo contains signal processing nodes for ComfyUI allowing for audio manipulation." + }, + { + "author": "Junst", + "title": "ComfyUI-PNG2SVG2PNG", + "reference": "https://github.com/Junst/ComfyUI-PNG2SVG2PNG", + "files": [ + "https://github.com/Junst/ComfyUI-PNG2SVG2PNG" + ], + "description": "NODES:PNG2SVG2PNG", + "install_type": "git-clone" + }, + { + "author": "animEEEmpire", + "title": "ComfyUI-Animemory-Loader", + "reference": "https://github.com/animEEEmpire/ComfyUI-Animemory-Loader", + "files": [ + "https://github.com/animEEEmpire/ComfyUI-Animemory-Loader" + ], + "install_type": "git-clone", + "description": "AniMemory-alpha Custom Node for ComfyUI" + }, + { + "author": "ShahFaisalWani", + "title": "ComfyUI-Mojen-Nodeset", + "reference": "https://github.com/ShahFaisalWani/ComfyUI-Mojen-Nodeset", + "files": [ + "https://github.com/ShahFaisalWani/ComfyUI-Mojen-Nodeset" + ], + "install_type": "git-clone", + "description": "A collection of powerful, versatile, and community-driven custom nodes for ComfyUI, designed to elevate AI workflows!" + }, + { + "author": "kijai", + "title": "ComfyUI-HunyuanVideoWrapper [WIP]", + "reference": "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for [a/HunyuanVideo](https://github.com/Tencent/HunyuanVideo)" + }, + { + "author": "grimli333", + "title": "ComfyUI_Grim", + "reference": "https://github.com/grimli333/ComfyUI_Grim", + "files": [ + "https://github.com/grimli333/ComfyUI_Grim" + ], + "install_type": "git-clone", + "description": "NODES: Generate a unique filename and folder name, Format Strings with Two Inputs" + }, + { + "author": "risunobushi", + "title": "ComfyUI_FocusMask", + "reference": "https://github.com/risunobushi/ComfyUI_FocusMask", + "files": [ + "https://github.com/risunobushi/ComfyUI_FocusMask" + ], + "install_type": "git-clone", + "description": "NODES: Extract Focus Mask" + }, + { + "author": "RicherdLee", + "title": "comfyui-oss-image-save [WIP]", + "reference": "https://github.com/RicherdLee/comfyui-oss-image-save", + "files": [ + "https://github.com/RicherdLee/comfyui-oss-image-save" + ], + "install_type": "git-clone", + "description": "NODES: SaveImageOSS." + }, + { + "author": "Matrix-King-Studio", + "title": "ComfyUI-MoviePy", + "reference": "https://github.com/Matrix-King-Studio/ComfyUI-MoviePy", + "files": [ + "https://github.com/Matrix-King-Studio/ComfyUI-MoviePy" + ], + "install_type": "git-clone", + "description": "NODES: Image Clip Node, Audio Duration Node, Save Video Node,..." + }, + { + "author": "Big Idea Technology", + "title": "ComfyUI-Movie-Tools [WIP]", + "reference": "https://github.com/Big-Idea-Technology/ComfyUI-Movie-Tools", + "files": [ + "https://github.com/Big-Idea-Technology/ComfyUI-Movie-Tools" + ], + "install_type": "git-clone", + "description": "Movie Tools is a set of custom nodes, designed to simplify saving and loading batches of images with enhanced functionality like subfolder management and batch image handling." + }, + { + "author": "ArthusLiang", + "title": "comfyui-face-remap [WIP]", + "reference": "https://github.com/ArthusLiang/comfyui-face-remap", + "files": [ + "https://github.com/ArthusLiang/comfyui-face-remap" + ], + "install_type": "git-clone", + "description": "NODES: FaceRemap\nNOTE: The files in the repo are not organized." + }, + { + "author": "trithemius", + "title": "ComfyUI-SmolVLM [WIP]", + "reference": "https://github.com/mamorett/ComfyUI-SmolVLM", + "files": [ + "https://github.com/mamorett/ComfyUI-SmolVLM" + ], + "install_type": "git-clone", + "description": "Nodes to use SmolVLM for image tagging and captioning.\nNOTE: The files in the repo are not organized." + }, + { + "author": "anze", + "title": "ComfyUI-OIDN [WIP]", + "reference": "https://github.com/Anze-/ComfyUI-OIDN", + "files": [ + "https://github.com/Anze-/ComfyUI-OIDN" + ], + "install_type": "git-clone", + "description": "ComyUI wrapper for Intel OIDN image denoising\nWARNING! : this is a development repo, usage in production environments is not advised! Bugs are to be expected." + }, + { + "author": "techzuhaib", + "title": "ComfyUI-CacheImageNode", + "reference": "https://github.com/techzuhaib/ComfyUI-CacheImageNode", + "files": [ + "https://github.com/techzuhaib/ComfyUI-CacheImageNode" + ], + "install_type": "git-clone", + "description": "NODES: CacheImageNode" + }, + { + "author": "hay86", + "title": "ComfyUI AceNodes [UNSAFE]", + "reference": "https://github.com/hay86/ComfyUI_AceNodes", + "files": [ + "https://github.com/hay86/ComfyUI_AceNodes" + ], + "install_type": "git-clone", + "description": "Some useful custom nodes that are not included in ComfyUI core yet.\nNOTE: Vulnerability discovered. Not being managed." + }, + { + "author": "dowands", + "title": "AddMaskForICLora", + "reference": "https://github.com/dowands/ComfyUI-AddMaskForICLora", + "files": [ + "https://github.com/dowands/ComfyUI-AddMaskForICLora" + ], + "install_type": "git-clone", + "description": "NODES: Add Mask For IC Lora x" + }, + { + "author": "exectails", + "title": "Scripting", + "id": "et_scripting [UNSAFE]", + "reference": "https://github.com/exectails/comfyui-et_scripting", + "files": [ + "https://github.com/exectails/comfyui-et_scripting" + ], + "install_type": "git-clone", + "description": "Nodes that can be used to write Python scripts directly on a node. Useful for quick prototyping and testing, at the cost of security.[w/This extension allows the execution of arbitrary Python code from a workflow.]" + }, + { + "author": "AIFSH", + "title": "UltralightDigitalHuman-ComfyUI", + "reference": "https://github.com/AIFSH/UltralightDigitalHuman-ComfyUI", + "files": [ + "https://github.com/AIFSH/UltralightDigitalHuman-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/Ultralight-Digital-Human](https://github.com/anliyuan/Ultralight-Digital-Human)\nNOTE: The files in the repo are not organized." + }, + { + "author": "StartHua", + "title": "Comfyui_Flux_Style_Ctr [WIP]", + "reference": "https://github.com/StartHua/Comfyui_Flux_Style_Ctr", + "files": [ + "https://github.com/StartHua/Comfyui_Flux_Style_Ctr" + ], + "install_type": "git-clone", + "description": "NODES:CXH_StyleModelApply\nNOTE: The files in the repo are not organized." + }, + { + "author": "miragecoa", + "title": "ComfyUI-LLM-Evaluation [WIP]", + "reference": "https://github.com/miragecoa/ComfyUI-LLM-Evaluation", + "files": [ + "https://github.com/miragecoa/ComfyUI-LLM-Evaluation" + ], + "install_type": "git-clone", + "description": "NODES:Load File, Select Item by Index, Select Item by Key, JSONToListNode, MathOperationNode, F1ScoreNode, AccuracyNode, ..." + }, + { + "author": "WASasquatch", + "title": "ASTERR [UNSAFE]", + "id": "asterr", + "reference": "https://github.com/WASasquatch/ASTERR", + "files": [ + "https://github.com/WASasquatch/ASTERR" + ], + "install_type": "git-clone", + "description": "Abstract Syntax Trees Evaluated Restricted Run (ASTERR) is a Python Script executor for ComfyUI. [w/Warning:ASTERR runs Python Code from a Web Interface! It is highly recommended to run this in a closed-off environment, as it could have potential security risks.]" + }, + { + "author": "BenjaMITM", + "title": "ComfyUI_On_The_Fly_Wildcards [WIP]", + "reference": "https://github.com/BenjaMITM/ComfyUI_On_The_Fly_Wildcards", + "files": [ + "https://github.com/BenjaMITM/ComfyUI_On_The_Fly_Wildcards" + ], + "install_type": "git-clone", + "description": "NODES:Wildcard Creator, Wildcard Loader, Wildcard Selector, Display String.\nNOTE: The files in the repo are not organized." + }, + { + "author": "celll1", + "title": "cel_sampler [WIP]", + "reference": "https://github.com/celll1/cel_sampler", + "files": [ + "https://github.com/celll1/cel_sampler" + ], + "install_type": "git-clone", + "description": "NODES:Latent Value Tracker\nNOTE: The files in the repo are not organized." + }, + { + "author": "DataCTE", + "title": "ComfyUI-DataVoid-nodes [WIP]", + "reference": "https://github.com/DataCTE/ComfyUI-DataVoid-nodes", + "files": [ + "https://github.com/DataCTE/ComfyUI-DataVoid-nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI focused on model merging and style adaptation.[w/It may cause a lot of node conflicts with comfyui_ipadapter_plus.]" + }, + { + "author": "minhtuannhn", + "title": "comfyui-gemini-studio [WIP]", + "reference": "https://github.com/minhtuannhn/comfyui-gemini-studio", + "files": [ + "https://github.com/minhtuannhn/comfyui-gemini-studio" + ], + "install_type": "git-clone", + "description": "comfyui-gemini-studio[w/This extension uses the legacy method of copying JS.]" + }, + { + "author": "artem-konevskikh", + "title": "ComfyUI Video Processing Nodes [WIP]", + "reference": "https://github.com/artem-konevskikh/comfyui-split-merge-video", + "files": [ + "https://github.com/artem-konevskikh/comfyui-split-merge-video" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI that add video splitting and merging capabilities with crossfade transitions." + }, + { + "author": "Poseidon-fan", + "title": "ComfyUI-fileCleaner [UNSAFE]", + "reference": "https://github.com/Poseidon-fan/ComfyUI-fileCleaner", + "files": [ + "https://github.com/Poseidon-fan/ComfyUI-fileCleaner" + ], + "install_type": "git-clone", + "description": "In production environments, images are usually saved on storage servers such as S3, rather than local folders. So the method of placing images in local folders using ComfyUI's native LoadImage and SaveImage nodes cannot be used as a deployment service method, but can only be used as a temporary storage place for images. This requires a way to delete images from the input and output folders.\nThis node is used to delete images from the input and output folders. It is recommended to use this node through api call in the backend after the image processing is completed.[w/Users can use the file deletion feature through the workflow.]" + }, + { + "author": "yorkane", + "title": "Comfy UI Robe Nodes [UNSAFE]", + "reference": "https://github.com/RobeSantoro/ComfyUI-RobeNodes", + "files": [ + "https://github.com/RobeSantoro/ComfyUI-RobeNodes" + ], + "install_type": "git-clone", + "description": "NODES: List Video Path Node, List Image Path Node\nThis is a collection of utility nodes for the ComfyUI stable diffusion client that provides enhanced file path handling capabilities.[w/Users will be able to access images from arbitrary paths through the workflow.]" + }, + { + "author": "Kimara.ai", + "title": "Advanced Watermarking Tools [WIP]", + "reference": "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Advanced-Watermarks", + "files": [ + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Advanced-Watermarks" + ], + "install_type": "git-clone", + "description": "The KimaraAIWatermarker custom node allows you to apply watermark text and logo overlays to images (or a batch of images). It provides features like customizable watermark movement, rotation, and opacity. You can also apply both text and logo watermarks simultaneously, with fine-tuned control over positioning and scaling." + }, + { + "author": "Clybius", + "title": "ComfyUI-FluxDeCLIP", + "reference": "https://github.com/Clybius/ComfyUI-FluxDeCLIP", + "files": [ + "https://github.com/Clybius/ComfyUI-FluxDeCLIP" + ], + "install_type": "git-clone", + "description": "NODES:FluxDeCLIPCheckpointLoader" + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-BiRefNet-ZHO [BROKEN]", + "id": "birefnet", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO" + ], + "install_type": "git-clone", + "description": "Better version for [a/BiRefNet](https://github.com/zhengpeng7/birefnet) in ComfyUI | Both img and video.\nNOTE: You need to do [a/manual patch](https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO/issues/20)" + }, + { + "author": "trashgraphicard", + "title": "Albedo-Sampler-for-ComfyUI", + "reference": "https://github.com/trashgraphicard/Albedo-Sampler-for-ComfyUI", + "files": [ + "https://github.com/trashgraphicard/Albedo-Sampler-for-ComfyUI" + ], + "install_type": "git-clone", + "description": "NODES:Sample Image, Make Seamless Tile" + }, + { + "author": "Anze-", + "title": "ComfyUI_deepDeband [WIP]", + "reference": "https://github.com/Anze-/ComfyUI_deepDeband", + "files": [ + "https://github.com/Anze-/ComfyUI_deepDeband" + ], + "install_type": "git-clone", + "description": "ComyUI wrapper for RaymondLZhou/deepDeband image and video debanding\nNOTE: The files in the repo are not organized." + }, + { + "author": "bmad4ever", + "title": "Bmad Nodes [UNSAFE]", + "id": "bmad", + "reference": "https://github.com/bmad4ever/comfyui_bmad_nodes", + "files": [ + "https://github.com/bmad4ever/comfyui_bmad_nodes" + ], + "install_type": "git-clone", + "description": "This custom node offers the following functionalities: API support for setting up API requests, computer vision primarily for masking or collages, and general utility to streamline workflow setup or implement essential missing features.\nNOTE: Vulnerability discovered. Not being managed." + }, + { + "author": "suncat2ps", + "title": "ComfyUI-SaveImgNextcloud", + "reference": "https://github.com/suncat2ps/ComfyUI-SaveImgNextcloud", + "files": [ + "https://github.com/suncat2ps/ComfyUI-SaveImgNextcloud" + ], + "install_type": "git-clone", + "description": "NODES: Save Image to Nextcloud" + }, + { + "author": "KoreTeknology", + "title": "ComfyUI Production Nodes Pack [WIP]", + "reference": "https://github.com/KoreTeknology/ComfyUI-Nai-Production-Nodes-Pack", + "files": [ + "https://github.com/KoreTeknology/ComfyUI-Nai-Production-Nodes-Pack" + ], + "description": "This is set of custom nodes for your ComfyUI1 production setup. It offers the very basic nodes that are missing in the official 'Vanilla' package. It is a research Node based project on Artificial Intelligence using ComfyUI visual editor. This repository also includes a set of workflows to test the nodes.", + "install_type": "git-clone" + }, + { + "author": "DoctorDiffusion", + "title": "ComfyUI-Flashback", + "reference": "https://github.com/DoctorDiffusion/ComfyUI-Flashback", + "files": [ + "https://github.com/DoctorDiffusion/ComfyUI-Flashback" + ], + "description": "NODES:Latent Export, Latent Import, Latent Loop", + "install_type": "git-clone" + }, + { + "author": "sswink", + "title": "comfyui-lingshang", + "reference": "https://github.com/sswink/comfyui-lingshang", + "files": [ + "https://github.com/sswink/comfyui-lingshang" + ], + "description": "NODES:LS_SaveImageToOss, LS_LoadMaskFromUrl, LS_DigImageByMask, LS_ALY_Seg_Utils, LS_ALY_UploadToOssAndGetUrl, LS_GrowMaskWithBlur, LS_ALY_Seg_Body_Utils, LS_ALY_Seg_Common_Utils, LS_ALY_Seg_Clothes_Utils, LS_ALY_Seg_Body_Utils_Return_crop, ...", + "install_type": "git-clone" + }, + { + "author": "AICodeFactory", + "title": "ComfyUI-Viva", + "reference": "https://github.com/AICodeFactory/ComfyUI-Viva", + "files": [ + "https://github.com/AICodeFactory/ComfyUI-Viva" + ], + "description": "NODES:HttpTrigger (Viva), HttpTrigger (Image), HttpTrigger (Common)", + "install_type": "git-clone" + }, + { + "author": "LogicAI", + "title": "ComfyUI-MagicAI [UNSAFE]", + "reference": "https://github.com/lcolok/ComfyUI-MagicAI", + "files": [ + "https://github.com/lcolok/ComfyUI-MagicAI" + ], + "install_type": "git-clone", + "description": "NODES:Mask Size Calculator (MagicAI), Universal Mask Converter (MagicAI), Python Execution (MagicAI), Extract JSON From Text Node(MagicAI)\n[w/This extension allows the execution of arbitrary Python code from a workflow.]" + }, + { + "author": "Laser-one", + "title": "ComfyUI-align-pose", + "reference": "https://github.com/Laser-one/ComfyUI-align-pose", + "files": [ + "https://github.com/Laser-one/ComfyUI-align-pose" + ], + "install_type": "git-clone", + "description": "NODES:align pose" + }, + { + "author": "chenbaiyujason", + "title": "ComfyUI_StepFun", + "reference": "https://github.com/chenbaiyujason/ComfyUI_StepFun", + "files": [ + "https://github.com/chenbaiyujason/ComfyUI_StepFun" + ], + "install_type": "git-clone", + "description": "To use stepfun's library, you need an official api that supports multimodal inputs such as video and pictures [a/https://platform.stepfun.com/request-restriction](https://platform.stepfun.com/request-restriction)" + }, + { + "author": "aria1th", + "title": "ComfyUI-SkipCFGSigmas", + "reference": "https://github.com/aria1th/ComfyUI-SkipCFGSigmas", + "files": [ + "https://github.com/aria1th/ComfyUI-SkipCFGSigmas" + ], + "install_type": "git-clone", + "description": "NODES: CFGControl_SKIPCFG" + }, + { + "author": "Clelstyn", + "title": "ComfyUI-Inpaint_with_Detailer", + "reference": "https://github.com/Clelstyn/ComfyUI-Inpaint_with_Detailer", + "files": [ + "https://github.com/Clelstyn/ComfyUI-Inpaint_with_Detailer" + ], + "install_type": "git-clone", + "description": "NODES:Masked Resize Image, Paste Masked Image, Filter And Blur Mask" + }, + { + "author": "Looking-Glass", + "title": "LKG-ComfyUI", + "reference": "https://github.com/Looking-Glass/LKG-ComfyUI", + "files": [ + "https://github.com/Looking-Glass/LKG-ComfyUI" + ], + "install_type": "git-clone", + "description": "NODES:Side by Side Node, Bridge Preview Node, Load Folder, Scale Maintain Aspect Ratio Node, " + }, + { + "author": "xiaoyumu", + "title": "ComfyUI-XYNodes", + "reference": "https://github.com/xiaoyumu/ComfyUI-XYNodes", + "files": [ + "https://github.com/xiaoyumu/ComfyUI-XYNodes" + ], + "install_type": "git-clone", + "description": "Nodes:PrimitiveBBOX." + }, + { + "author": "ainanoha", + "title": "etm_comfyui_nodes", + "reference": "https://github.com/ainanoha/etm_comfyui_nodes", + "files": [ + "https://github.com/ainanoha/etm_comfyui_nodes" + ], + "install_type": "git-clone", + "description": "NODES:LETM Save Image, ETM Load Image From Local" + }, + { + "author": "m-ai-studio", + "title": "mai-prompt-progress", + "reference": "https://github.com/m-ai-studio/mai-prompt-progress", + "files": [ + "https://github.com/m-ai-studio/mai-prompt-progress" + ], + "install_type": "git-clone", + "description": "ComfyUI extensions for sending prompt progress to webhook" + }, + { + "author": "neeltheninja", + "title": "ComfyUI-TempFileDeleter [UNSAFE]", + "reference": "https://github.com/neeltheninja/ComfyUI-TempFileDeleter", + "files": [ + "https://github.com/neeltheninja/ComfyUI-TempFileDeleter" + ], + "install_type": "git-clone", + "description": "This node is designed to streamline your workflow in ComfyUI by efficiently cleaning up temporary files on each run. This node takes no input. You can specify 'on' or 'off' in the node itself, or just bypass to not use use it.[w/This node can delete any files in the folder mentioned in 'folder_path' in the node. Be aware of this and change the folder path correctly before running any workflow with this node. I will NOT be responsible for wrongly deleted files because you didn't read this beforehand.]" + }, + { + "author": "kylegrover", + "title": "comfyui-python-cowboy [UNSAFE]", + "reference": "https://github.com/kylegrover/comfyui-python-cowboy", + "files": [ + "https://github.com/kylegrover/comfyui-python-cowboy" + ], + "install_type": "git-clone", + "description": "run python code in comfyui\nuses codemirror for nice syntax highlighting\nNOTE: based on ComfyUI-nidefawl[w/This node is an unsafe node that includes the capability to execute arbitrary python script.]" + }, + { + "author": "kijai", + "title": "ComfyUI-MochiWrapper [WIP]", + "reference": "https://github.com/kijai/ComfyUI-MochiWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-MochiWrapper" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for [a/Mochi](https://github.com/genmoai/models) video generator" + }, + { + "author": "kk8bit", + "title": "KayTool", + "reference": "https://github.com/kk8bit/KayTool", + "files": [ + "https://github.com/kk8bit/KayTool" + ], + "install_type": "git-clone", + "description": "KayTool is a custom node utility package developed for ComfyUI. I plan to add more features in the future." + }, + { + "author": "leadbreak", + "title": "Face Aging [WIP]", + "reference": "https://github.com/leadbreak/comfyui-faceaging", + "files": [ + "https://github.com/leadbreak/comfyui-faceaging" + ], + "install_type": "git-clone", + "description": "This is a comfyui custom node version of [a/Age Transformation](https://github.com/yuval-alaluf/SAM).\nNOTE: The files in the repo are not organized." + }, + { + "author": "downlifted", + "title": "ComfyUI_BWiZ_Nodes [WIP]", + "reference": "https://github.com/downlifted/ComfyUI_BWiZ_Nodes", + "files": [ + "https://github.com/downlifted/ComfyUI_BWiZ_Nodes" + ], + "install_type": "git-clone", + "description": "NODES:CaptainWebhook, CaptainWebhook-Email, CaptainWebhook-Push, BWIZ_AdvancedLoadImageBatch, BWIZ_ErrorDetector, BWIZ_HFRepoBatchLoader, BWIZ_NotificationSound.\nNOTE: The files in the repo are not organized." + }, + { + "author": "Poukpalaova", + "title": "ComfyUI-FRED-Nodes [WIP]", + "reference": "https://github.com/Poukpalaova/ComfyUI-FRED-Nodes", + "files": [ + "https://github.com/Poukpalaova/ComfyUI-FRED-Nodes" + ], + "install_type": "git-clone", + "description": "Multiple nodes that ease the process.\nNOTE: The files in the repo are not organized." + }, + { + "author": "blurymind", + "title": "cozy-fireplace [WIP]", + "reference": "https://github.com/blurymind/cozy-fireplace", + "files": [ + "https://github.com/blurymind/cozy-fireplace" + ], + "install_type": "git-clone", + "description": "Cozy fireplace is a ComfyUI workflow prompter that brings a localhost server frontend for existing workflows created in ComfyUi. Just place your favorite or lovingly crafted workflows in a folder and cozy fireplace will let you select and run any of them (export them as API type in comfyui) It's a cozy UI that scales all the way down to mobile phone devices - to let you prompt your beefy pc at home with your smartphone." + }, + { + "author": "lordwedggie", + "title": "xcpNodes [WIP]", + "reference": "https://github.com/lordwedggie/xcpNodes", + "files": [ + "https://github.com/lordwedggie/xcpNodes" + ], + "install_type": "git-clone", + "description": "Slider nodes based on Smirnov75's codes [a/https://github.com/Smirnov75/ComfyUI-mxToolkit](https://github.com/Smirnov75/ComfyUI-mxToolkit)\nNOTE: The files in the repo are not organized." + }, + { + "author": "kxh", + "title": "ComfyUI-ImageUpscaleWithModelMultipleTimes", + "reference": "https://github.com/kxh/ComfyUI-ImageUpscaleWithModelMultipleTimes", + "files": [ + "https://github.com/kxh/ComfyUI-ImageUpscaleWithModelMultipleTimes" + ], + "install_type": "git-clone", + "description": "Upscale image with model multiple times !" + }, + { + "author": "rouxianmantou", + "title": "comfyui-rxmt-nodes", + "reference": "https://github.com/rouxianmantou/comfyui-rxmt-nodes", + "files": [ + "https://github.com/rouxianmantou/comfyui-rxmt-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Check Value Type, Why Prompt Text" + }, + { + "author": "SirVeggie", + "title": "SirVeggie/Custom nodes for ComfyUI", + "reference": "https://github.com/SirVeggie/comfyui-sv-nodes", + "files": [ + "https://github.com/SirVeggie/comfyui-sv-nodes" + ], + "install_type": "git-clone", + "description": "NODES:SV-SimpleText, SV-PromptProcessing, SV-PromptProcessingRecursive, SV-PromptProcessingAdvanced, SV-PromptProcessingEncode,..." + }, + { + "author": "artisanalcomputing", + "title": "artcpu-custom-nodes", + "reference": "https://github.com/artisanalcomputing/ComfyUI-Custom-Nodes", + "files": [ + "https://github.com/artisanalcomputing/ComfyUI-Custom-Nodes" + ], + "install_type": "git-clone", + "description": "NODES:Random Video Mixer, Spotify Canvas Generator, Video Writer\ncustom comfyui nodes for audio/visual purposes# ComfyUI-Custom-Nodes" + }, + { + "author": "kxh", + "title": "ComfyUI-sam2", + "reference": "https://github.com/kxh/ComfyUI-sam2", + "files": [ + "https://github.com/kxh/ComfyUI-sam2" + ], + "install_type": "git-clone", + "description": "use semantic tag to segment any element in an image, output a mask.\nNOTE: Repo name is conflicting with neverbiasu/ComfyUI-SAM2" + }, + { + "author": "AIFSH", + "title": "UtilNodes-ComfyUI [WIP]", + "reference": "https://github.com/AIFSH/UtilNodes-ComfyUI", + "files": [ + "https://github.com/AIFSH/UtilNodes-ComfyUI" + ], + "install_type": "git-clone", + "description": "here put custom input nodes such as text,video...\nNOTE: The files in the repo are not organized." + }, + { + "author": "monate0615", + "title": "ComfyUI-Simple-Image-Tools [WIP]", + "reference": "https://github.com/alchemist-software-engineer/ComfyUI-Simple-Image-Tools", + "files": [ + "https://github.com/alchemist-software-engineer/ComfyUI-Simple-Image-Tools" + ], + "install_type": "git-clone", + "description": "Get mask from image based on alpha (Get Mask From Alpha)\nNOTE: The files in the repo are not organized." + }, + { + "author": "galoreware", + "title": "ComfyUI-GaloreNodes [WIP]", + "reference": "https://github.com/galoreware/ComfyUI-GaloreNodes", + "files": [ + "https://github.com/galoreware/ComfyUI-GaloreNodes" + ], + "install_type": "git-clone", + "description": "Color and Image related nodes for ComfyUI." + }, + { + "author": "lgldlk", + "title": "ComfyUI-img-tiler", + "reference": "https://github.com/lgldlk/ComfyUI-img-tiler", + "files": [ + "https://github.com/lgldlk/ComfyUI-img-tiler" + ], + "install_type": "git-clone", + "description": "NODES:TilerImage, TilerSelect, TileMaker, ImageListTileMaker" + }, + { + "author": "SSsnap", + "title": "Snap Processing for Comfyui", + "reference": "https://github.com/SS-snap/ComfyUI-Snap_Processing", + "files": [ + "https://github.com/SS-snap/ComfyUI-Snap_Processing" + ], + "install_type": "git-clone", + "description": "for preprocessing images, presented in a visual way. It also calculates the corresponding image area." + }, + { + "author": "cwebbi1", + "title": "VoidCustomNodes", + "reference": "https://github.com/cwebbi1/VoidCustomNodes", + "files": [ + "https://github.com/cwebbi1/VoidCustomNodes" + ], + "install_type": "git-clone", + "description": "NODES:Prompt Parser, String Combiner" + }, + { + "author": "wilzamguerrero", + "title": "Comfyui-zZzZz [UNSAFE]", + "reference": "https://github.com/wilzamguerrero/Comfyui-zZzZz", + "files": [ + "https://github.com/wilzamguerrero/Comfyui-zZzZz" + ], + "install_type": "git-clone", + "description": "NODES:Download Z, Compress Z, Move Z, Delete Z, Rename Z, Create Z, Infinite Z, Share Screen Z" + }, + { + "author": "monate0615", + "title": "Affine Transform ComfyUI Node [WIP]", + "reference": "https://github.com/alchemist-software-engineer/ComfyUI-Affine-Transform", + "files": [ + "https://github.com/alchemist-software-engineer/ComfyUI-Affine-Transform" + ], + "install_type": "git-clone", + "description": "This node output the image that are transfromed by affine matrix what is made according to 4 points of output.\nNOTE: The files in the repo are not organized." + }, + { + "author": "ruka-game", + "title": "ComfyUI RukaLib [WIP]", + "reference": "https://github.com/ruka-game/rukalib_comfyui", + "files": [ + "https://github.com/ruka-game/rukalib_comfyui" + ], + "install_type": "git-clone", + "description": "NODES: Ruka Prompt Enhancer, Ruka Debug Probe.\nMy utilities for comfy (WIP / ollama is required for LLM nodes)" + }, + { + "author": "MythicalChu", + "title": "ComfyUI-APG_ImYourCFGNow", + "reference": "https://github.com/MythicalChu/ComfyUI-APG_ImYourCFGNow", + "files": [ + "https://github.com/MythicalChu/ComfyUI-APG_ImYourCFGNow" + ], + "install_type": "git-clone", + "description": "Use this node like a RescaleCFG node, ... modelIn -> ThisNode -> ModelOut ... -> KSampler\n'scale' acts like your CFG, your CFG doesn't do anything anymore white this node is active. See paper [a/https://arxiv.org/pdf/2410.02416](https://arxiv.org/pdf/2410.02416) for instructions about the other parameters. (Pages 20-21)" + }, + { + "author": "okg21", + "title": "VLLMVisionChatNode", + "reference": "https://github.com/okg21/VLLMVisionChatNode", + "files": [ + "https://raw.githubusercontent.com/okg21/VLLMVisionChatNode/refs/heads/main/VLLMVisionChatNode.py" + ], + "pip": ["openai", "numpy"], + "install_type": "copy", + "description": "This platform extension provides ZhipuAI nodes, enabling you to configure a workflow for online video generation." + }, + { + "author": "netanelben", + "title": "comfyui-photobooth-customnode", + "reference": "https://github.com/netanelben/comfyui-photobooth-customnode", + "files": [ + "https://github.com/netanelben/comfyui-photobooth-customnode" + ], + "install_type": "git-clone", + "description": "comfyui-photobooth-customnode" + }, + { + "author": "netanelben", + "title": "comfyui-text2image-customnode", + "reference": "https://github.com/netanelben/comfyui-text2image-customnode", + "files": [ + "https://github.com/netanelben/comfyui-text2image-customnode" + ], + "install_type": "git-clone", + "description": "comfyui-text2image-customnode" + }, + { + "author": "netanelben", + "title": "comfyui-camera2image-customnode", + "reference": "https://github.com/netanelben/comfyui-camera2image-customnode", + "files": [ + "https://github.com/netanelben/comfyui-camera2image-customnode" + ], + "install_type": "git-clone", + "description": "comfyui-camera2image-customnode" + }, + { + "author": "netanelben", + "title": "comfyui-image2image-customnode", + "reference": "https://github.com/netanelben/comfyui-image2image-customnode", + "files": [ + "https://github.com/netanelben/comfyui-image2image-customnode" + ], + "install_type": "git-clone", + "description": "comfyui-image2image-customnode" + }, + { + "author": "JayLyu", + "title": "ComfyUI_BaiKong_Node", + "id": "baikong", + "reference": "https://github.com/JayLyu/ComfyUI_BaiKong_Node", + "files": [ + "https://github.com/JayLyu/ComfyUI_BaiKong_Node" + ], + "install_type": "git-clone", + "description": "Nodes for advanced color manipulation and image processing: BK Img To Color, BK Color Selector, BK Color Contrast, BK Color Limit, BK Color Luminance, BK Gradient Image, and BK Image Aspect Filter.\n[w/requirements.txt is broken.]" + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-FreeMemory", + "reference": "https://github.com/ShmuelRonen/ComfyUI-FreeMemory", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-FreeMemory" + ], + "install_type": "git-clone", + "description": "ComfyUI-FreeMemory is a custom node extension for ComfyUI that provides advanced memory management capabilities within your image generation workflows." + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI Llama 3.1 [WIP]", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Llama-3-2", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Llama-3-2" + ], + "install_type": "git-clone", + "description": "Using Llama-3-1 in ComfyUI" + }, + { + "author": "netanelben", + "title": "comfyui-text2image-customnode [WIP]", + "reference": "https://github.com/netanelben/comfyui-text2image-customnode", + "files": [ + "https://github.com/netanelben/comfyui-text2image-customnode" + ], + "install_type": "git-clone", + "description": "text2image web extension" + }, + { + "author": "leeguandong", + "title": "ComfyUI_AliControlnetInpainting [WIP]", + "reference": "https://github.com/leeguandong/ComfyUI_AliControlnetInpainting", + "files": [ + "https://github.com/leeguandong/ComfyUI_AliControlnetInpainting" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes to use AliControlnetInpainting" + }, + { + "author": "jordancoult", + "title": "ComfyUI_HelpfulNodes", + "reference": "https://github.com/jordancoult/ComfyUI_HelpfulNodes", + "files": [ + "https://github.com/jordancoult/ComfyUI_HelpfulNodes" + ], + "install_type": "git-clone", + "description": "NODES: Prep Crop Around Keypoints" + }, + { + "author": "ashishsaini", + "title": "comfyui_segformer_b2_sleeves", + "reference": "https://github.com/ashishsaini/comfyui-segment-clothing-sleeves", + "files": [ + "https://github.com/ashishsaini/comfyui-segment-clothing-sleeves" + ], + "install_type": "git-clone", + "description": "NODES:segformer_b2_sleeves" + }, + { + "author": "io-club", + "title": "ComfyUI-LuminaNext [WIP]", + "reference": "https://github.com/io-club/ComfyUI-LuminaNext", + "files": [ + "https://github.com/io-club/ComfyUI-LuminaNext" + ], + "install_type": "git-clone", + "description": "NODES: GemmaClipLoader" + }, + { + "author": "shadowcz007", + "title": "Comfyui-EzAudio [WIP]", + "reference": "https://github.com/shadowcz007/Comfyui-EzAudio", + "files": [ + "https://github.com/shadowcz007/Comfyui-EzAudio" + ], + "install_type": "git-clone", + "description": "NODES: EZ Generate Audio, EZ Load Model\nNOTE: The files in the repo are not organized." + }, + { + "author": "neo0801", + "title": "my-comfy-node", + "reference": "https://github.com/neo0801/my-comfy-node", + "files": [ + "https://github.com/neo0801/my-comfy-node" + ], + "install_type": "git-clone", + "description": "NODES:Deep Mosaic Get Image Mosaic Mask, Deep Mosaic Get Video Mosaic Mask, Deep Mosaic Remove Image Mosaic, Deep Mosaic Remove Video Mosaic" + }, + { + "author": "nikkuexe", + "title": "List Data Helper Nodes", + "reference": "https://github.com/paulhoux/Smart-Prompting", + "files": [ + "https://github.com/paulhoux/Smart-Prompting" + ], + "install_type": "git-clone", + "description": "Custom nodes for ComfyUI, allowing you to more easily manipulate text and create good prompts.[w/The use of outdated front extension techniques results in remnants being left behind during uninstallation.]" + }, + { + "author": "nikkuexe", + "title": "List Data Helper Nodes", + "reference": "https://github.com/nikkuexe/ComfyUI-ListDataHelpers", + "files": [ + "https://github.com/nikkuexe/ComfyUI-ListDataHelpers" + ], + "install_type": "git-clone", + "description": "A set of custom nodes for handling lists in ComfyUI." + }, + { + "author": "Fannovel16", + "title": "ComfyUI-AppIO", + "reference": "https://github.com/Fannovel16/ComfyUI-AppIO", + "files": [ + "https://github.com/Fannovel16/ComfyUI-AppIO" + ], + "install_type": "git-clone", + "description": "NODES:AppIO_StringInput, AppIO_ImageInput, AppIO_StringOutput, AppIO_ImageOutput" + }, + { + "author": "SoftMeng", + "title": "ComfyUI-PIL", + "reference": "https://github.com/SoftMeng/ComfyUI-PIL", + "files": [ + "https://github.com/SoftMeng/ComfyUI-PIL" + ], + "install_type": "git-clone", + "description": "PIL Nodes" + }, + { + "author": "seancheung", + "title": "comfyui-creative-nodes", + "reference": "https://github.com/seancheung/comfyui-creative-nodes", + "files": [ + "https://github.com/seancheung/comfyui-creative-nodes" + ], + "install_type": "git-clone", + "description": "NODES:Stop Flow, Skip From Flow, Skip To Flow, Resolution Selector, ResolutionXL Selector" + }, + { + "author": "AlexXi19", + "title": "ComfyUI-OpenAINode", + "reference": "https://github.com/AlexXi19/ComfyUI-OpenAINode", + "files": [ + "https://github.com/AlexXi19/ComfyUI-OpenAINode" + ], + "install_type": "git-clone", + "description": "ComfyUI-OpenAINode is a user-friendly node that serves as an interface to the OpenAI Models.[w/Repo name conflict with Electrofried/ComfyUI-OpenAINode]" + }, + { + "author": "IgPoly", + "title": "ComfyUI-igTools", + "reference": "https://github.com/IgPoly/ComfyUI-igTools", + "files": [ + "https://github.com/IgPoly/ComfyUI-igTools" + ], + "install_type": "git-clone", + "description": "NODES:IGT Simple Tiles Calc" + }, + { + "author": "Ryota", + "title": "Ryota's Nodes", + "reference": "https://github.com/lichenhao/Comfyui_Ryota", + "files": [ + "https://github.com/lichenhao/Comfyui_Ryota" + ], + "install_type": "git-clone", + "description": "NODES:CombineTexts, FontLoader, DrawText, TxtFileLoader, SaveTxtFile, SwitchModelClip, SwitchAnyInputs, Reroute2, Reroute3" + }, + { + "author": "Soppatorsk", + "title": "comfyui_img_to_ascii [WIP]", + "reference": "https://github.com/Soppatorsk/comfyui_img_to_ascii", + "files": [ + "https://github.com/Soppatorsk/comfyui_img_to_ascii" + ], + "install_type": "git-clone", + "description": "Basic functionality for converting an image to ASCII art returned as a png image based on [a/ascii_magic](https://github.com/LeandroBarone/python-ascii_magic)" + }, + { + "author": "AIFSH", + "title": "HivisionIDPhotos-ComfyUI", + "reference": "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI", + "files": [ + "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/HivisionIDPhotos](https://github.com/Zeyi-Lin/HivisionIDPhotos).\nNOTE: Unsuitable for international users" + }, + { + "author": "lu64k", + "title": "SK-Nodes", + "reference": "https://github.com/lu64k/SK-Nodes", + "files": [ + "https://github.com/lu64k/SK-Nodes" + ], + "install_type": "git-clone", + "description": "NODES:image select, Load AnyLLM, Ask LLM, OpenAI DAlle Node, SK Text_String, SK Random File Name" + }, + { + "author": "Lilien86", + "title": "Comfyui_Latent_Interpolation [WIP]", + "reference": "https://github.com/Lilien86/Comfyui_Latent_Interpolation", + "files": [ + "https://github.com/Lilien86/Comfyui_Latent_Interpolation" + ], + "install_type": "git-clone", + "description": "Hey everyone it's my Custom ComfyUI Nodes Pack repository! This project contains a collection of custom nodes designed to extend the functionality of ComfyUI. These nodes offer capabilities and new creative possibilities, especially in the realms of latent space manipulation and interpolation.\nNOTE: The files in the repo are not organized." + }, + { + "author": "haodman", + "title": "ComfyUI_Rain", + "reference": "https://github.com/haodman/ComfyUI_Rain", + "files": [ + "https://github.com/haodman/ComfyUI_Rain" + ], + "install_type": "git-clone", + "description": "NODES:Rain_ValueSwitch, Rain_Math, Rain_IntToFloat, Rain_ImageSize." + }, + { + "author": "bananasss00", + "title": "Comfyui-PyExec [UNSAFE]", + "reference": "https://github.com/bananasss00/Comfyui-PyExec", + "files": [ + "https://github.com/bananasss00/Comfyui-PyExec" + ], + "install_type": "git-clone", + "description": "Nodes:PyExec.[w/This node allows access to arbitrary files through the workflow, which could pose a security threat.]" + }, + { + "author": "jgbrblmd", + "title": "ComfyUI-ComfyFluxSize [WIP]", + "reference": "https://github.com/jgbrblmd/ComfyUI-ComfyFluxSize", + "files": [ + "https://github.com/jgbrblmd/ComfyUI-ComfyFluxSize" + ], + "install_type": "git-clone", + "description": "Nodes:ComfyFlux Size\nNOTE: The files in the repo are not organized." + }, + { + "author": "yojimbodayne", + "title": "ComfyUI-Dropbox-API [WIP]", + "reference": "https://github.com/yojimbodayne/ComfyUI-Dropbox-API", + "files": [ + "https://github.com/yojimbodayne/ComfyUI-Dropbox-API" + ], + "install_type": "git-clone", + "description": "This custom nodepackage for ComfyUI allows users to interact with Dropbox API, enabling image, text, and video uploads, downloads, and management directly from ComfyUI workflows.\nNOTE: The files in the repo are not organized." + }, + { + "author": "ilovejohnwhite", + "title": "Kolors Awesome Prompts [WIP]", + "reference": "https://github.com/ilovejohnwhite/Tracer", + "files": [ + "https://github.com/ilovejohnwhite/Tracer" + ], + "install_type": "git-clone", + "description": "Nodes:Image Load TTK, SuckerPunch, LinkMasterNode, PixelPerfectResolution, ImageGenResolutionFromImage, ImageGenResolutionFromLatent, HintImageEnchance\nNOTE: The files in the repo are not organized." + }, + { + "author": "shuanshtalon468uan", + "title": "ComfyUI-Rpg-Architect [WIP]", + "reference": "https://github.com/talon468/ComfyUI-Rpg-Architect", + "files": [ + "https://github.com/talon468/ComfyUI-Rpg-Architect" + ], + "install_type": "git-clone", + "description": "Custom Node for ComfyUI to create RPG Characters\nNOTE: The files in the repo are not organized." + }, + { + "author": "shuanshuan", + "title": "ComfyUI_CheckPointLoader_Ext [WIP]", + "reference": "https://github.com/shuanshuan/ComfyUI_CheckPointLoader_Ext", + "files": [ + "https://github.com/shuanshuan/ComfyUI_CheckPointLoader_Ext" + ], + "install_type": "git-clone", + "description": "NODES:Checkpoint Loader Ext" + }, + { + "author": "123jimin", + "title": "ComfyUI MobileForm [WIP]", + "reference": "https://github.com/123jimin/ComfyUI-MobileForm", + "files": [ + "https://github.com/123jimin/ComfyUI-MobileForm" + ], + "install_type": "git-clone", + "description": "MobileForm is an extension for ComfyUI, providing simple form for any workflows, suitable for use on mobile phones.[w/Currently MobileForm is in a PoC state; expect bugs and breaking changes.]" + }, + { + "author": "go-package-lab", + "title": "ComfyUI-Tools-Video-Combine [WIP]", + "reference": "https://github.com/go-package-lab/ComfyUI-Tools-Video-Combine", + "files": [ + "https://github.com/go-package-lab/ComfyUI-Tools-Video-Combine" + ], + "install_type": "git-clone", + "description": "NODES:LoadAudioUrl, VideoWatermark" + }, + { + "author": "zhongpei", + "title": "Comfyui_image2prompt", + "id": "img2prompt", + "reference": "https://github.com/zhongpei/Comfyui_image2prompt", + "files": [ + "https://github.com/zhongpei/Comfyui_image2prompt" + ], + "install_type": "git-clone", + "description": "Nodes:Image to Text, Loader Image to Text Model.[w/This custom node may break dependencies by reinstalling the torch package.]" + }, + { + "author": "APZmedia", + "title": "comfyui-textools [WIP]", + "reference": "https://github.com/APZmedia/comfyui-textools", + "files": [ + "https://github.com/APZmedia/comfyui-textools" + ], + "install_type": "git-clone", + "description": "ComfyUI-textools is a collection of custom nodes designed for use with ComfyUI. These nodes enhance text processing capabilities, including applying rich text overlays on images and cleaning file names for safe and consistent file management.\nNOTE: The files in the repo are not organized." + }, + { + "author": "Comfy Org", + "title": "ComfyUI_devtools [WIP]", + "reference": "https://github.com/Comfy-Org/ComfyUI_devtools", + "files": [ + "https://github.com/Comfy-Org/ComfyUI_devtools" + ], + "install_type": "git-clone", + "description": "ComfyUI developer tools (Custom Node)" + }, + { + "author": "Sakura-nee", + "title": "ComfyUI_Save2Discord", + "reference": "https://github.com/Sakura-nee/ComfyUI_Save2Discord", + "files": [ + "https://github.com/Sakura-nee/ComfyUI_Save2Discord" + ], + "install_type": "git-clone", + "description": "Nodes:Send Generated Image To Discord Webhook.\nNOTE: The files in the repo are not organized." + }, + { + "author": "ThisModernDay", + "title": "ComfyUI Instructor Ollama", + "reference": "https://github.com/ThisModernDay/ComfyUI-InstructorOllama", + "files": [ + "https://github.com/ThisModernDay/ComfyUI-InstructorOllama" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI Nodes for interacting with Ollama using the Instructor. Library to provide structured output from your LLM. To use this properly, you would need a running Ollama server reachable from the host that is running ComfyUI.\nNOTE: The files in the repo are not organized, which may lead to update issues." + }, + { + "author": "gioferreira", + "title": "ComfyUI-Molde-Utils", + "reference": "https://github.com/gioferreira/ComfyUI-Molde-Utils", + "files": [ + "https://github.com/gioferreira/ComfyUI-Molde-Utils" + ], + "install_type": "git-clone", + "description": "ComfyUI-Molde-Utils is a utility library designed to provide various helper functions for working with UI elements. This project includes modules for handling bezier curves and color conversions.\nNOTE: The files in the repo are not organized, which may lead to update issues." + }, + { + "author": "kijai", + "title": "ComfyUI nodes for VEnhancer [WIP]", + "reference": "https://github.com/kijai/ComfyUI-VEnhancer", + "files": [ + "https://github.com/kijai/ComfyUI-VEnhancer" + ], + "install_type": "git-clone", + "description": "Original repo: [a/https://github.com/Vchitect/VEnhancer](https://github.com/Vchitect/VEnhancer)" + }, + { + "author": "jimstudt", + "title": "Jim's ComfyUI Nodes [WIP]", + "reference": "https://github.com/jimstudt/ComfyUI-Jims-Nodes", + "files": [ + "https://github.com/jimstudt/ComfyUI-Jims-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: Zoom and Enhance Nodes, Text To String List, Choose String, Define Word, Lookup Word, Substitute Words, Dictionary to JSON, JSON file to Dictionary, JSON to Dictionary, Load Image And Info From Path, CubbyHack, Image to Solid Background" + }, + { + "author": "ChrisColeTech", + "title": "ComfyUI-Get-Random-File [UNSAFE]", + "reference": "https://github.com/ChrisColeTech/ComfyUI-Get-Random-File", + "files": [ + "https://github.com/ChrisColeTech/ComfyUI-Get-Random-File" + ], + "install_type": "git-clone", + "description": "Gets a random file from a directory. Returns the filpath as a STRING. [w/This node allows access to arbitrary files through the workflow, which could pose a security threat.]" + }, + { + "author": "logtd", + "title": "ComfyUI-Fluxtapoz [WIP]", + "reference": "https://github.com/logtd/ComfyUI-Fluxtapoz", + "files": [ + "https://github.com/logtd/ComfyUI-Fluxtapoz" + ], + "install_type": "git-clone", + "description": "A set of nodes for editing images using Flux in ComfyUI" + }, + { + "author": "neeltheninja", + "title": "ComfyUI-ControlNeXt [WIP]", + "reference": "https://github.com/neverbiasu/ComfyUI-ControlNeXt", + "files": [ + "https://github.com/neverbiasu/ComfyUI-ControlNeXt" + ], + "install_type": "git-clone", + "description": "In progress🚧" + }, + { + "author": "neeltheninja", + "title": "ComfyUI-TextOverlay", + "reference": "https://github.com/neeltheninja/ComfyUI-TextOverlay", + "files": [ + "https://github.com/neeltheninja/ComfyUI-TextOverlay" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that adds text overlay to images, with options for text and background color, opacity, vertical positioning, and custom font selection. [w/Name conflict with munkyfoot/ComfyUI-TextOverlay. Cannot install simulatenously.]" + }, + { + "author": "comfyanonymous", + "title": "ComfyUI_bitsandbytes_NF4 [EXPERIMENTAL]", + "reference": "https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4", + "files": [ + "https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4" + ], + "install_type": "git-clone", + "description": "A quickly written custom node that uses code from Forge to support the nf4 flux dev checkpoint and nf4 flux schnell checkpoint.\nRequires installing bitsandbytes.\nMake sure your ComfyUI is updated.\nThe node is: CheckpointLoaderNF4, just plug it in your flux workflow instead of the regular one.[w/NF4 checckpoint doesn't support LoRA.]" + }, + { + "author": "kijai", + "title": "ComfyUI-EasyAnimateWrapper [WIP]", + "reference": "https://github.com/kijai/ComfyUI-EasyAnimateWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-EasyAnimateWrapper" + ], + "install_type": "git-clone", + "description": "EasyAnimateWrapper for ComfyUI" + }, + { + "author": "logtd", + "title": "ComfyUI-Veevee [WIP]", + "reference": "https://github.com/logtd/ComfyUI-Veevee", + "files": [ + "https://github.com/logtd/ComfyUI-Veevee" + ], + "install_type": "git-clone", + "description": "A Video2Video framework for text2image models in ComfyUI. Supports SD1.5 and SDXL." + }, + { + "author": "IuvenisSapiens", + "title": "ComfyUI_MiniCPM-V-2_6-int4", + "id": "minicpm-v-2_6-int4", + "reference": "https://github.com/IuvenisSapiens/ComfyUI_MiniCPM-V-4", + "files": [ + "https://github.com/IuvenisSapiens/ComfyUI_MiniCPM-V-4" + ], + "install_type": "git-clone", + "description": "This is an implementation of [a/MiniCPM-V-2_6-int4](https://github.com/OpenBMB/MiniCPM-V) by [a/ComfyUI](https://github.com/comfyanonymous/ComfyUI), including support for text-based queries, video queries, single-image queries, and multi-image queries to generate captions or responses." + }, + { + "author": "chrisdreid", + "title": "ComfyUI_EnvAutopsyAPI Debugger [UNSAFE]", + "id": "chrisdreid", + "reference": "https://github.com/chrisdreid/ComfyUI_EnvAutopsyAPI", + "files": [ + "https://github.com/chrisdreid/ComfyUI_EnvAutopsyAPI" + ], + "install_type": "git-clone", + "description": "A powerful debugging tool designed to provide in-depth analysis of your environment and dependencies by exposing API endpoints. This tool allows you to inspect environment variables, pip packages, python info and dependency trees, making it easier to diagnose and resolve issues in your ComfyUI setup.[w/This tool may expose sensitive system information if used on a public server]" + }, + { + "author": "Futureversecom", + "title": "ComfyUI-JEN", + "reference": "https://github.com/futureversecom/ComfyUI-JEN", + "files": [ + "https://github.com/futureversecom/ComfyUI-JEN" + ], + "install_type": "git-clone", + "description": "Comfy UI custom nodes for JEN music generation powered by Futureverse" + }, + { + "author": "denislov", + "title": "Comfyui_AutoSurvey", + "reference": "https://github.com/denislov/Comfyui_AutoSurvey", + "files": [ + "https://github.com/denislov/Comfyui_AutoSurvey" + ], + "install_type": "git-clone", + "description": "Nodes:AutoSurvey, WriteOutline, WriteSection, ChatModel, QueryKnowledge, ManageDatabase, AddDoc2Knowledge" + }, + { + "author": "leoleelxh", + "title": "ComfyUI-MidjourneyNode-leoleexh", + "reference": "https://github.com/leoleelxh/ComfyUI-MidjourneyNode-leoleexh", + "files": [ + "https://github.com/leoleelxh/ComfyUI-MidjourneyNode-leoleexh" + ], + "install_type": "git-clone", + "description": "This node allows ComfyUI to easily integrate with Midjourney, utilizing the ultra-high quality of Midjourney and the powerful control of SD to provide more convenient capabilities for AIGC.\nNOTE: This node relies on the midjourney proxy project and requires API deployment in advance. For detailed installation, please refer to the instructions of the project. https://github.com/novicezk/midjourney-proxy" + }, + { + "author": "kijai", + "title": "ComfyUI-FollowYourEmojiWrapper [WIP]", + "reference": "https://github.com/kijai/ComfyUI-FollowYourEmojiWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-FollowYourEmojiWrapper" + ], + "install_type": "git-clone", + "description": "Original repo: [a/https://github.com/mayuelala/FollowYourEmoji](https://github.com/mayuelala/FollowYourEmoji)" + }, + { + "author": "haomole", + "title": "Comfyui-SadTalker", + "reference": "https://github.com/haomole/Comfyui-SadTalker", + "files": [ + "https://github.com/haomole/Comfyui-SadTalker" + ], + "install_type": "git-clone", + "description": "[a/SadTalker](https://github.com/OpenTalker/SadTalker) for ComfyUI" + }, + { + "author": "hotpizzatactics", + "title": "ComfyUI-WaterMark-Detector", + "id": "watermark-detector", + "reference": "https://github.com/hotpizzatactics/ComfyUI-WaterMark-Detector", + "files": [ + "https://github.com/hotpizzatactics/ComfyUI-WaterMark-Detector" + ], + "install_type": "git-clone", + "description": "Nodes:CLAHE Enhancement, High Pass Filter, Edge Detection, Combine Enhancements, Adaptive Thresholding, Morphological Operations, Gray Color Enhancement, Improved Gray Color Enhancement, Texture Enhancement, Denoising Filter, Flexible Combine Enhancements." + }, + { + "author": "AIFSH", + "title": "IMAGDressing-ComfyUI", + "id": "imagdressing", + "reference": "https://github.com/AIFSH/IMAGDressing-ComfyUI", + "files": [ + "https://github.com/AIFSH/IMAGDressing-ComfyUI" + ], + "install_type": "git-clone", + "description": "Nodes:IMAGDressingNode, TextNode" + }, + { + "author": "BetaDoggo", + "title": "ComfyUI-LogicGates", + "id": "logicgates", + "reference": "https://github.com/BetaDoggo/ComfyUI-LogicGates", + "files": [ + "https://github.com/BetaDoggo/ComfyUI-LogicGates" + ], + "install_type": "git-clone", + "description": "Binary Nodes, Byte Nodes, ..." + }, + { + "author": "shadowcz007", + "title": "comfyui-hydit", + "reference": "https://github.com/shadowcz007/comfyui-hydit-lowvram", + "files": [ + "https://github.com/shadowcz007/comfyui-hydit-lowvram" + ], + "install_type": "git-clone", + "description": "HunYuan Diffusers Nodes" + }, + { + "author": "walterFeng", + "title": "ComfyUI-Image-Utils", + "reference": "https://github.com/walterFeng/ComfyUI-Image-Utils", + "files":[ + "https://github.com/walterFeng/ComfyUI-Image-Utils" + ], + "install_type":"git-clone", + "description":"Nodes: Calculate Image Brightness" + }, + { + "author": "zml-ai", + "title": "comfyui-hydit", + "reference": "https://github.com/zml-ai/comfyui-hydit", + "files":[ + "https://github.com/zml-ai/comfyui-hydit" + ], + "install_type":"git-clone", + "description":"The ComfyUI code is under review in the official repository. Meanwhile, a temporary version is available below for immediate community use. We welcome users to try our workflow and appreciate any inquiries or suggestions." + }, + { + "author": "melMass", + "title": "ComfyUI-Lygia", + "id": "lygia", + "reference": "https://github.com/melMass/ComfyUI-Lygia", + "files": [ + "https://github.com/melMass/ComfyUI-Lygia" + ], + "install_type": "git-clone", + "description": "NODES: LygiaProgram, LygiaUniforms" + }, + { + "author": "SpaceWarpStudio", + "title": "ComfyUI_Remaker_FaceSwap", + "reference": "https://github.com/SpaceWarpStudio/ComfyUI_Remaker_FaceSwap", + "files": [ + "https://github.com/SpaceWarpStudio/ComfyUI_Remaker_FaceSwap" + ], + "install_type": "git-clone", + "description": "Nodes:Remaker Face Swap" + }, + { + "author": "VisionExp", + "title": "ve_custom_comfyui_nodes", + "reference": "https://github.com/VisionExp/ve_custom_comfyui_nodes", + "files": [ + "https://github.com/VisionExp/ve_custom_comfyui_nodes" + ], + "install_type": "git-clone", + "description": "Nodes:LoadImgFromInputUrl" + }, + { + "author": "StartHua", + "title": "Comfyui_CXH_CRM", + "id": "csdmt-cxh", + "reference": "https://github.com/StartHua/Comfyui_CSDMT_CXH", + "files": [ + "https://github.com/StartHua/Comfyui_CSDMT_CXH" + ], + "install_type": "git-clone", + "description": "Node:CSD_Makeup\nNOTE:You need to download [a/pre-trained model file](https://github.com/StartHua/Comfyui_CSDMT_CXH)." + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-AuraSR-ZHO", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AuraSR-ZHO", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AuraSR-ZHO" + ], + "install_type": "git-clone", + "description": "AuraSR in ComfyUI for img & video\n[w/If the custom_nodes path is not under ComfyUI, be careful as it may not install properly.]" + }, + { + "author": "tom-doerr", + "title": "DSPy Nodes [WIP]", + "reference": "https://github.com/tom-doerr/dspy_nodes", + "files": [ + "https://github.com/tom-doerr/dspy_nodes" + ], + "install_type": "git-clone", + "description": "This is an attempt to make all DSPy features available in ComfyUI. Using an UI to devlop DSPy programs should be way faster since it makes it easier to see what is happening and allows to quickly iterate on the DSPy program structure." + }, + { + "author": "Grant-CP", + "title": "ComfyUI-LivePortraitKJ-MPS", + "reference": "https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS", + "files": [ + "https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS" + ], + "install_type": "git-clone", + "description": "If you wish to incorporate these changes into your repo, feel free to open an issue and ask. The commits should be pretty clear, and I also label almost all changes with #HACK so a full text search will work too.\nPlease let me know if you decide to incorporate any of these changes into your LivePortrait implementation so I can direct people to you repository. I do not intend to maintain this repo.\nSome operations are simply not supported on MPS and I didn't rewrite them. Most of my changes are just to .cuda calls and that sort of thing. Many operations are still done on CPU, so don't expect awesome performance." + }, + { + "author": "thderoo", + "title": "_topfun_s_nodes", + "reference": "https://github.com/thderoo/ComfyUI-_topfun_s_nodes", + "files": [ + "https://github.com/thderoo/ComfyUI-_topfun_s_nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Conditioning Perturbation" + }, + { + "author": "willblaschko", + "title": "ComfyUI-Unload-Models", + "reference": "https://github.com/willblaschko/ComfyUI-Unload-Models", + "files": [ + "https://github.com/willblaschko/ComfyUI-Unload-Models" + ], + "install_type": "git-clone", + "description": "This repository provides developers with a way to better manage their ComfyUI model memory. It includes nodes that allow developers to either unload all models or unload one model at a time. These nodes are designed as pass-through nodes, so they can be used anywhere in the flow. The nodes can be found in the 'Unload Model' section.[w/These are massive hammers, and it could be possible to break things, please don't use them if you need finesse.]" + }, + { + "author": "AIFSH", + "title": "ComfyUI-OpenDIT [WIP]", + "id": "opendit", + "reference": "https://github.com/AIFSH/ComfyUI-OpenDIT", + "files": [ + "https://github.com/AIFSH/ComfyUI-OpenDIT" + ], + "install_type": "git-clone", + "description": "make [a/OpenDIT](https://github.com/NUS-HPC-AI-Lab/OpenDiT) avaliable in ComfyUI" + }, + { + "author": "alexisrolland", + "title": "alexisrolland/ComfyUI-AuraSR", + "id": "aurasr-alexisrolland", + "reference": "https://github.com/alexisrolland/ComfyUI-AuraSR", + "files": [ + "https://github.com/alexisrolland/ComfyUI-AuraSR" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI nodes to run [a/fal-ai/AuraSR](https://huggingface.co/fal-ai/AuraSR) model.[w/This node cannot be installed simultaneously with AIFSH/ComfyUI-AuraSR due to overlapping repository names.]" + }, + { + "author": "linhusyung", + "title": "ComfyUI Build and Train Your Network [WIP]", + "id": "cfgpp", + "reference": "https://github.com/linhusyung/comfyui-Build-and-train-your-network", + "files": [ + "https://github.com/linhusyung/comfyui-Build-and-train-your-network" + ], + "install_type": "git-clone", + "description": "Stable Diffusion is an image generation technique based on diffusion models. Its core idea involves simulating diffusion processes by iteratively adding noise and using neural networks to predict and remove the noise, thereby generating high-quality images. This approach is not limited to image generation; with appropriate network architecture and training data, it can be adapted for various other tasks. The application of neural networks extends beyond image generation. By adjusting network structures and loss functions, neural networks can also perform tasks such as classification and regression. This flexibility makes neural networks a powerful tool for handling a wide range of machine learning tasks. This project aims to expand custom neural network layers (such as linear layers, convolutional layers, etc.) within ComfyUI and provide simplified task training functionalities. Through this project, users can easily construct custom neural network layers and perform training in ComfyUI using a graphical interface." + }, + { + "author": "Fucci-Mateo", + "title": "ComfyUI-Airtable [WIP]", + "id": "airtable", + "reference": "https://github.com/Fucci-Mateo/ComfyUI-Airtable", + "files": [ + "https://github.com/Fucci-Mateo/ComfyUI-Airtable" + ], + "install_type": "git-clone", + "description": "A simple node to load image from local path or http url. You can find this node from 'image' category." + }, + { + "author": "majorsauce", + "title": "comfyui_indieTools [WIP]", + "id": "indie-tools", + "reference": "https://github.com/majorsauce/comfyui_indieTools", + "files": [ + "https://github.com/majorsauce/comfyui_indieTools" + ], + "install_type": "git-clone", + "description": "Nodes:[Indie] Cut by Mask, [Indie] Paste Image, [Indie] Local Scale, [Indie] Solidify, [Indie] Yolo Detector.[w/Install may fail due to invliad requirements.txt file]" + }, + { + "author": "AIFSH", + "title": "ComfyUI-ViViD", + "id": "vivid", + "reference": "https://github.com/AIFSH/ComfyUI-ViViD", + "files": [ + "https://github.com/AIFSH/ComfyUI-ViViD" + ], + "install_type": "git-clone", + "description": "a comfyui custom node for ViViD" + }, + { + "author": "NeuralNotW0rk", + "title": "ComfyUI-Waveform-Extensions", + "reference": "https://github.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions", + "files": [ + "https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_VariationUtils.py", + "https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_AudioManipulation.py" + ], + "install_type": "copy", + "description": "Some additional audio utilites for use on top of Sample Diffusion ComfyUI Extension" }, - - - { "author": "nat-chan", - "title": "comfyui-in-memory-transceiver", - "reference": "https://github.com/nat-chan/comfyui-in-memory-transceiver", + "title": "comfyui-paint", + "reference": "https://github.com/nat-chan/comfyui-paint", "files": [ - "https://github.com/nat-chan/comfyui-in-memory-transceiver" + "https://github.com/nat-chan/comfyui-paint" + ], + "install_type": "git-clone", + "description": "comfyui-paint\n[w/You need to clone submodule manually after clone. There is permission issue.]" + }, + { + "author": "prabinpebam", + "title": "anyPython [UNSAFE]", + "reference": "https://github.com/prabinpebam/anyPython", + "files": [ + "https://github.com/prabinpebam/anyPython" + ], + "install_type": "git-clone", + "description": "This node was inspired by AnyNode. I wanted to have a node where I can paste any python script and execute it. That way I can use this node in combination with a Custom node like the Ollama node that can generate the python code and feed into this node. This also makes it much easier to debug or modify the code iteratively. As of the current version, I've created separate nodes for no input, 1 input and 2 inputs. The input also currently takes only sting as input. Let me know in the discussion how you would use this node.\n[w/This extension allows the execution of arbitrary Python code from a workflow.]" + }, + { + "author": "kijai", + "title": "ComfyUI DiffSynth wrapper nodes", + "id": "diffsynth-wrapper", + "reference": "https://github.com/kijai/ComfyUI-DiffSynthWrapper", + "files": [ + "https://github.com/kijai/ComfyUI-DiffSynthWrapper" + ], + "install_type": "git-clone", + "description": "Currently only the new extended SVD model 'ExVideo' is supported.\nOriginal repo:[a/https://github.com/modelscope/DiffSynth-Studio](https://github.com/modelscope/DiffSynth-Studio)" + }, + { + "author": "AllenEdgarPoe", + "title": "ComfyUI-Xorbis-nodes [WIP]", + "id": "xorbis", + "reference": "https://github.com/AllenEdgarPoe/ComfyUI-Xorbis-nodes", + "files": [ + "https://github.com/AllenEdgarPoe/ComfyUI-Xorbis-nodes" + ], + "install_type": "git-clone", + "description": "This repository is for MuseumX Update. We use ComfyUI as our framework, and the nodes are built for my comfort.\nNOTE: The files in the repo are not organized." + }, + { + "author": "mikeymcfish", + "title": "LaserCutterFull and Deptherize Nodes", + "id": "fishtools", + "reference": "https://github.com/mikeymcfish/FishTools", + "files": [ + "https://github.com/mikeymcfish/FishTools" + ], + "install_type": "git-clone", + "description": "This repository contains two custom nodes, LaserCutterFull and Deptherize, designed for use in image processing workflows. The LaserCutterFull node processes input images to generate layers for laser cutting, while the Deptherize node converts SVG data into a depth map image." + }, + { + "author": "pzzmyc", + "title": "comfyui-sd3-simple-simpletuner", + "id": "simpletuner", + "reference": "https://github.com/pzzmyc/comfyui-sd3-simple-simpletuner", + "files": [ + "https://github.com/pzzmyc/comfyui-sd3-simple-simpletuner" + ], + "install_type": "git-clone", + "description": "Nodes:sd3 simple simpletuner by hhy." + }, + { + "author": "horidream", + "title": "ComfyUI-Horidream", + "id": "horidream", + "reference": "https://github.com/horidream/ComfyUI-Horidream", + "files": [ + "https://github.com/horidream/ComfyUI-Horidream" + ], + "install_type": "git-clone", + "description": "Nodes:Pass Through With Sound." + }, + { + "author": "kijai", + "title": "ComfyUI-DiffusersSD3Wrapper", + "id": "diffusers-sd3-wrapper", + "reference": "https://github.com/kijai/ComfyUI-DiffusersSD3Wrapper", + "files": [ + "https://github.com/kijai/ComfyUI-DiffusersSD3Wrapper" + ], + "install_type": "git-clone", + "description": "Nodes:Load SD3DiffusersPipeline, SD3 ControlNet Sampler" + }, + { + "author": "AustinMroz", + "title": "ComfyUI-SD3-Medium-CN-Diffusers [WIP]", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-SD3-Medium-CN-Diffusers", + "files": [ + "https://github.com/AustinMroz/ComfyUI-WorkflowCheckpointing" + ], + "install_type": "git-clone", + "description": "ComfyUI SD3-Medium ControlNet (Diffusers)" + }, + { + "author": "redhottensors", + "title": "ComfyUI-ODE", + "id": "ode", + "reference": "https://github.com/redhottensors/ComfyUI-ODE", + "files": [ + "https://github.com/redhottensors/ComfyUI-ODE" + ], + "install_type": "git-clone", + "description": "ODE Solvers for ComfyUI\nThis node enables use of torchdiffeq ODE solvers with models. Intended for use with Stable Diffusion 3 and similar flow models." + }, + { + "author": "maruhidd", + "title": "Transparent Background for ComfyUI", + "id": "transparent-bg", + "reference": "https://github.com/maruhidd/ComfyUI_Transparent-Background", + "files": [ + "https://github.com/maruhidd/ComfyUI_Transparent-Background" + ], + "install_type": "git-clone", + "description": "Nodes:Remove Background, Fill Transparent" + }, + { + "author": "baicai99", + "title": "ComfyUI-FrameSkipping", + "id": "frame-skipping", + "reference": "https://github.com/baicai99/ComfyUI-FrameSkipping", + "files": [ + "https://github.com/baicai99/ComfyUI-FrameSkipping" + ], + "install_type": "git-clone", + "description": "This plugin can precisely control the rendering between frames, completing the synthesis of multiple frames in a single load. My homepage includes my attached workflow." + }, + { + "author": "ejektaflex", + "title": "ComfyUI - Ty", + "id": "ty-nodes", + "reference": "https://github.com/ejektaflex/ComfyUI-Ty", + "files": [ + "https://github.com/ejektaflex/ComfyUI-Ty" + ], + "install_type": "git-clone", + "description": "Nodes:Lora Block Weight Regex Loader" + }, + { + "author": "jtydhr88", + "title": "ComfyUI-Unique3D [WIP]", + "id": "unique3d", + "reference": "https://github.com/jtydhr88/ComfyUI-Unique3D", + "files": [ + "https://github.com/jtydhr88/ComfyUI-Unique3D" + ], + "install_type": "git-clone", + "description": "ComfyUI Unique3D is custom nodes that running [a/AiuniAI/Unique3D](https://github.com/AiuniAI/Unique3D) into ComfyUI." + }, + { + "author": "kycg", + "title": "comfyui-Kwtoolset", + "id": "kwtoolset", + "reference": "https://github.com/kycg/comfyui-Kwtoolset", + "files": [ + "https://github.com/kycg/comfyui-Kwtoolset" + ], + "install_type": "git-clone", + "description": "Nodes:KwtoolsetLoraLoaderwithpreview, KwtoolsetCheckpointLoaderwithpreview, KwtoolsetLoadCheckpointsBatch, KwtoolsetGrowMaskPlus, KwtoolsetGetHipMask, KwtoolsetGetHipMasktest, KwtoolsetGetImageSize, KWPositiveString, KWNagetiveString, KWanywhereString, KwtoolsetChangeOpenpose, ..." + }, + { + "author": "mashb1t", + "title": "ComfyUI mashb1t nodes", + "id": "mashb1t", + "reference": "https://github.com/mashb1t/comfyui-nodes-mashb1t", + "files": [ + "https://github.com/mashb1t/comfyui-nodes-mashb1t" + ], + "install_type": "git-clone", + "description": "This Python script is an optional add-on to the Comfy UI stable diffusion client." + }, + { + "author": "immersiveexperience", + "title": "ie-comfyui-color-nodes", + "reference": "https://github.com/immersiveexperience/ie-comfyui-color-nodes", + "files": [ + "https://github.com/immersiveexperience/ie-comfyui-color-nodes" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI nodes for simple color correction." + }, + { + "author": "LZpenguin", + "title": "ComfyUI-Text", + "id": "comfy-text", + "reference": "https://github.com/LZpenguin/ComfyUI-Text", + "files": [ + "https://github.com/LZpenguin/ComfyUI-Text" + ], + "install_type": "git-clone", + "description": "Nodes:Add_text_by_mask.[w/This custom node cannot be installed simultaneously as it has the same repository name as MarkoCa1/ComfyUI-Text.]" + }, + { + "author": "norgeous", + "title": "UI Builder [WIP]", + "id": "norgeous", + "reference": "https://github.com/norgeous/ComfyUI-UI-Builder", + "files": [ + "https://github.com/norgeous/ComfyUI-UI-Builder" + ], + "install_type": "git-clone", + "description": "Alternative configurable React UI overlay for Comfy UI." + }, + { + "author": "Shinsplat", + "title": "ComfyUI-Shinsplat [UNSAFE]", + "id": "shinsplat", + "reference": "https://github.com/Shinsplat/ComfyUI-Shinsplat", + "files": [ + "https://github.com/Shinsplat/ComfyUI-Shinsplat" + ], + "install_type": "git-clone", + "description": "Nodes: Clip Text Encode (Shinsplat), Clip Text Encode SDXL (Shinsplat), Lora Loader (Shinsplat).\n[w/This extension poses a risk of executing arbitrary commands through workflow execution. Please be cautious.]" + }, + { + "author": "hy134300", + "title": "comfyui-hydit", + "reference": "https://github.com/hy134300/comfyui-hydit", + "files": [ + "https://github.com/hy134300/comfyui-hydit" + ], + "install_type": "git-clone", + "description": "This repository contains a customized node and workflow designed specifically for HunYuan DIT. The official tests conducted on DDPM, DDIM, and DPMMS have consistently yielded results that align with those obtained through the Diffusers library. However, it's important to note that we cannot assure the consistency of results from other ComfyUI native samplers with the Diffusers inference. We cordially invite users to explore our workflow and are open to receiving any inquiries or suggestions you may have." + }, + { + "author": "corbin-hayden13", + "title": "ComfyUI-Better-Dimensions", + "id": "better-dim", + "reference": "https://github.com/corbin-hayden13/ComfyUI-Better-Dimensions", + "files": [ + "https://github.com/corbin-hayden13/ComfyUI-Better-Dimensions" + ], + "install_type": "git-clone", + "description": "Nodes:BetterImageDimensions, SDXLDimensions, PureRatio" + }, + { + "author": "endman100", + "title": "ComfyUI-augmentation", + "id": "augmentation", + "reference": "https://github.com/endman100/ComfyUI-augmentation", + "files": [ + "https://github.com/endman100/ComfyUI-augmentation" + ], + "install_type": "git-clone", + "description": "Nodes:RamdomFlipImage (endman100)" + }, + { + "author": "endman100", + "title": "ComfyUI Nodes: SaveConditioning and LoadConditioning", + "id": "save-load-conditioning", + "reference": "https://github.com/endman100/ComfyUI-SaveAndLoadPromptCondition", + "files": [ + "https://github.com/endman100/ComfyUI-SaveAndLoadPromptCondition" + ], + "install_type": "git-clone", + "description": "The SaveConditioning node is designed to save conditioning data to binary files. This is useful for storing and reusing conditioning information across different sessions or applications.\n[w/This node can only handle very limited conditioning at the text prompt level.]" + }, + { + "author": "marduk191", + "title": "comfyui-marnodes", + "id": "marnodes", + "reference": "https://github.com/marduk191/comfyui-marnodes", + "files": [ + "https://github.com/marduk191/comfyui-marnodes" + ], + "install_type": "git-clone", + "description": "Nodes:marduk191_workflow_settings" + }, + { + "author": "kijai", + "title": "ComfyUI-CV-VAE", + "id": "cv-vae", + "reference": "https://github.com/kijai/ComfyUI-CV-VAE", + "files": [ + "https://github.com/kijai/ComfyUI-CV-VAE" + ], + "install_type": "git-clone", + "description": "Nodes:CV_VAE_Load, CV_VAE_Encode, CV_VAE_Decode" + }, + { + "author": "GentlemanHu", + "title": "ComfyUI Notifier", + "id": "notifier", + "reference": "https://github.com/GentlemanHu/ComfyUI-Notifier", + "files": [ + "https://github.com/GentlemanHu/ComfyUI-Notifier" + ], + "install_type": "git-clone", + "description": "Nodes:GentlemanHu_Notifier" + }, + { + "author": "jimmm-ai", + "title": "TimeUi a ComfyUI Timeline Node System [WIP]", + "id": "timeline", + "reference": "https://github.com/jimmm-ai/TimeUi-a-ComfyUi-Timeline-Node", + "files": [ + "https://github.com/jimmm-ai/TimeUi-a-ComfyUi-Timeline-Node" + ], + "install_type": "git-clone", + "description": "I've been working on the UX/UI of a timeline custom node system for ComfyUI over the past two weeks. The goal is to create a timeline similar to video/animation editing tools, without relying on traditional timeframe code. You can effortlessly add, delete, or rearrange rows, providing a streamlined user experience." + }, + { + "author": "StartHua", + "title": "Comfyui_CXH_CRM", + "id": "cxh-crm", + "reference": "https://github.com/StartHua/Comfyui_CXH_CRM", + "files": [ + "https://github.com/StartHua/Comfyui_CXH_CRM" + ], + "install_type": "git-clone", + "description": "Nodes:CRM" + }, + { + "author": "comfypod", + "title": "ComfyUI-Comflow", + "id": "comflow", + "reference": "https://github.com/comfypod/ComfyUI-Comflow", + "files": [ + "https://github.com/comfypod/ComfyUI-Comflow" + ], + "install_type": "git-clone", + "description": "ComfyUI-Comflow." + }, + { + "author": "pamparamm", + "title": "ComfyUI-ppm", + "id": "comfyui-ppm", + "reference": "https://github.com/pamparamm/ComfyUI-ppm", + "files": [ + "https://github.com/pamparamm/ComfyUI-ppm" + ], + "install_type": "git-clone", + "description": "Fixed AttentionCouple/NegPip(negative weights in prompts), more CFG++ samplers, etc." + }, + { + "author": "FoundD-oka", + "title": "ComfyUI KISEKAE-OOTD", + "id": "kisekae-ootd", + "reference": "https://github.com/FoundD-oka/ComfyUI-kisekae-OOTD", + "files": [ + "https://github.com/FoundD-oka/ComfyUI-kisekae-OOTD" + ], + "install_type": "git-clone", + "description": "Nodes:LoadOOTDPipeline, LoadOOTDPipelineHub, LoadOOTDPipelineHub." + }, + { + "author": "bruce007lee", + "title": "comfyui-tiny-utils", + "id": "tiny-utils", + "reference": "https://github.com/bruce007lee/comfyui-tiny-utils", + "files": [ + "https://github.com/bruce007lee/comfyui-tiny-utils" + ], + "install_type": "git-clone", + "description": "Nodes:FaceAlign, FaceAlignImageProcess, FaceAlignMaskProcess, ImageFillColorByMask, CropImageByMask, LoadImageAdvance, ImageTransposeAdvance, ImageSAMMask" + }, + { + "author": "brycegoh", + "title": "brycegoh/comfyui-custom-nodes", + "reference": "https://github.com/brycegoh/comfyui-custom-nodes", + "files": [ + "https://github.com/brycegoh/comfyui-custom-nodes" + ], + "install_type": "git-clone", + "description": "Nodes:MaskAreaComparisonSegment, FillMaskedArea, OCRAndMask, CombineTwoImageIntoOne" + }, + { + "author": "LykosAI", + "title": "ComfyUI Nodes for Inference.Core", + "id": "inference-core", + "reference": "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes", + "files": [ + "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes" + ], + "install_type": "git-clone", + "description": "Primary Nodes for Inference.Core and Stability Matrix. With a focus on not impacting startup performance and using fully qualified Node names. [w/This custom node is likely to conflict with many other nodes.]" + }, + { + "author": "tracerstar", + "title": "comfyui-p5js-node", + "id": "p5js", + "reference": "https://github.com/tracerstar/comfyui-p5js-node", + "files": [ + "https://github.com/tracerstar/comfyui-p5js-node" + ], + "install_type": "git-clone", + "description": "A simple proof of concept node to pass a p5js canvas through ComfyUI for img2img generation use." + }, + { + "author": "chaojie", + "title": "ComfyUI-mobvoi-openapi", + "id": "mobvoi-openapi", + "reference": "https://github.com/chaojie/ComfyUI-mobvoi-openapi", + "files": [ + "https://github.com/chaojie/ComfyUI-mobvoi-openapi" + ], + "install_type": "git-clone", + "description": "Nodes:MobvoiOpenapiMetamanText, MobvoiOpenapiMetamanAudio, MobvoiOpenapiTts, HtmlViewer, OssUploadImage, OssUploadAudio" + }, + { + "author": "immersiveexperience", + "title": "ie-comfyui-color-nodes", + "id": "ie-color-nodes", + "reference": "https://github.com/immersiveexperience/ie-comfyui-color-nodes", + "files": [ + "https://github.com/immersiveexperience/ie-comfyui-color-nodes" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI nodes for simple color correction." + }, + { + "author": "beyastard", + "title": "ComfyUI_BeySoft", + "reference": "https://github.com/beyastard/ComfyUI_BeySoft", + "files": [ + "https://github.com/beyastard/ComfyUI_BeySoft" + ], + "install_type": "git-clone", + "description": "Nodes:BeySoft" + }, + { + "author": "christian-byrne", + "title": "🌌 Infinite Parallax Nodes [WIP]", + "reference": "https://github.com/christian-byrne/infinite-zoom-parallax-nodes", + "files": [ + "https://github.com/christian-byrne/infinite-zoom-parallax-nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Parallax Config, Load Parallax Frame, Save Parallax Object Layers, Layer Shifter for Parallax Outpainting, Save Parallax Frame, Shrink and Pad for Outpainting, Create Infinite Zoom Video" + }, + { + "author": "flyingdogsoftware", + "title": "Gyre for ComfyUI", + "id": "gyre", + "reference": "https://github.com/flyingdogsoftware/gyre_for_comfyui", + "files": [ + "https://github.com/flyingdogsoftware/gyre_for_comfyui" + ], + "install_type": "git-clone", + "description": "Nodes:BackgroundRemoval, GyreLoopStart, GyreLoopEnd, GyreIfElse" + }, + { + "author": "githubYiheng", + "title": "comfyui_median_filter", + "id": "median-filter", + "reference": "https://github.com/githubYiheng/comfyui_median_filter", + "files": [ + "https://github.com/githubYiheng/comfyui_median_filter" + ], + "install_type": "git-clone", + "description": "Nodes:Apply Median Filter. [w/This has been updated to be equivalent to the comfyui_kmeans_filter node. Mistake?]" + }, + { + "author": "nat-chan", + "title": "comfyui-exec [UNSAFE]", + "id": "evalnode", + "reference": "https://github.com/nat-chan/comfyui-exec", + "files": [ + "https://github.com/nat-chan/comfyui-exec" + ], + "install_type": "git-clone", + "description": "Nodes:EvalNode [w/Please do not use the node that executes arbitrary code and outputs in any type, as it is dangerous.]" + }, + { + "author": "haofanwang", + "title": "ComfyUI-InstantStyle", + "id": "instantstyle", + "reference": "https://github.com/haofanwang/ComfyUI-InstantStyle", + "files": [ + "https://github.com/haofanwang/ComfyUI-InstantStyle" + ], + "install_type": "git-clone", + "description": "Nodes:PromptLoader, BaseModelLoader, InstantStyleLoader, InstantStyleGenerationNode" + }, + { + "author": "jp0215", + "title": "comfyUI_padding-resize_node", + "reference": "https://github.com/jp0215/comfyUI_padding-resize_node", + "files": [ + "https://raw.githubusercontent.com/jp0215/comfyUI_padding-resize_node/main/PaddingNode.py", + "https://raw.githubusercontent.com/jp0215/comfyUI_padding-resize_node/main/ResizeNode.py" + ], + "install_type": "copy", + "description": "Padding image to 8x: input image and mask, if the side length is not an integer multiple of 8, expand the side length to the smallest multiple of 8 greater than the original side length. Output padding image and mask. Resize to the origin: input the generated image and the original image, crop the generated image to the size of the original image, output the cropped image." + }, + { + "author": "Quasimondo", + "title": "ComfyUI-QuasimondoNodes [WIP]", + "id": "quasimondo-nodes", + "reference": "https://github.com/Quasimondo/ComfyUI-QuasimondoNodes", + "files": [ + "https://github.com/Quasimondo/ComfyUI-QuasimondoNodes" + ], + "install_type": "git-clone", + "description": "Nodes:Custom Shader, Spring Mesh" + }, + { + "author": "TSFSean", + "title": "ComfyUI-TSFNodes", + "id": "tsfnodes", + "reference": "https://github.com/TSFSean/ComfyUI-TSFNodes", + "files": [ + "https://github.com/TSFSean/ComfyUI-TSFNodes" + ], + "install_type": "git-clone", + "description": "Nodes:GyroOSC" + }, + { + "author": "blib-la", + "title": "ComfyUI-Captain-Extensions", + "id": "captain", + "reference": "https://github.com/blib-la/ComfyUI-Captain-Extensions", + "files": [ + "https://github.com/blib-la/ComfyUI-Captain-Extensions" + ], + "install_type": "git-clone", + "description": "ComfyUI extensions for better [a/Captain](https://github.com/blib-la/captain) integration." + }, + { + "author": "ejektaflex", + "title": "ComfyUI-Ty", + "reference": "https://github.com/ejektaflex/ComfyUI-Ty", + "files": [ + "https://github.com/ejektaflex/ComfyUI-Ty" + ], + "install_type": "git-clone", + "description": "Nodes:Lora Block Weight Regex Loader" + }, + { + "author": "christian-byrne", + "title": "Python Interpreter ComfyUI Node [UNSAFE]", + "reference": "https://github.com/christian-byrne/python-interpreter-node", + "files": [ + "https://github.com/christian-byrne/python-interpreter-node" + ], + "install_type": "git-clone", + "description": "For debugging, parsing data, generating random values, converting types, testing custom nodes faster.\nReference and use variables in the code using the same names as the inputs in the UI\nWrapper class around tensors with operator overloading for doing common image manipulation tasks.I might remove this aspect\n[w/This extension allows you to run programs through Python code in your workflow, which may not be secure. Use with caution.]" + }, + { + "author": "sofakid", + "title": "dandy [UNSAFE]", + "reference": "https://github.com/sofakid/dandy", + "files": [ + "https://github.com/sofakid/dandy" + ], + "install_type": "git-clone", + "description": "Dandy is a JavaScript bridge for ComfyUI. It includes everything you need to make JavaScript enabled extensions, or just load and code in little editor nodes right in ComfyUI.[w/This code can cause security issues because it allows for the execution of arbitrary JavaScript input.]" + }, + { + "author": "shadowcz007", + "title": "ComfyUI-PuLID [TEST]", + "reference": "https://github.com/shadowcz007/ComfyUI-PuLID-Test", + "files": [ + "https://github.com/shadowcz007/ComfyUI-PuLID-Test" + ], + "install_type": "git-clone", + "description": "[a/PuLID](https://github.com/ToTheBeginning/PuLID) ComfyUI native implementation." + }, + { + "author": "sangeet", + "title": "Simple Frontend For ComfyUI workflow [TEST]", + "reference": "https://github.com/sangeet/testui", + "files": [ + "https://github.com/sangeet/testui" + ], + "install_type": "git-clone", + "description": "A simple base front-end for text-to-image workflow in ComfyUI. Meant to serve as a base to be modified for future complex workflows" + }, + { + "author": "Elawphant", + "title": "ComfyUI-MusicGen [WIP]", + "id": "musicgen", + "reference": "https://github.com/Elawphant/ComfyUI-MusicGen", + "files": [ + "https://github.com/Elawphant/ComfyUI-MusicGen" + ], + "install_type": "git-clone", + "description": "ComfyUI for Meta MusicGen." + }, + { + "author": "jtscmw01", + "title": "ComfyUI-DiffBIR", + "id": "diffbir", + "reference": "https://github.com/jtscmw01/ComfyUI-DiffBIR", + "files": [ + "https://github.com/jtscmw01/ComfyUI-DiffBIR" + ], + "install_type": "git-clone", + "description": "This extension provides [a/DiffBIR](https://github.com/XPixelGroup/DiffBIR) feature." + }, + { + "author": "ericbeyer", + "title": "guidance_interval", + "reference": "https://github.com/ericbeyer/guidance_interval", + "files": [ + "https://github.com/ericbeyer/guidance_interval" + ], + "install_type": "git-clone", + "description": "Nodes:Guidance Interval\nNOTE: Because the sampling function is replaced, you must restart after executing this custom node to restore the original state." + }, + { + "author": "oztrkoguz", + "title": "Kosmos2_BBox_Cutter Models", + "reference": "https://github.com/oztrkoguz/ComfyUI_Kosmos2_BBox_Cutter", + "files": [ + "https://github.com/oztrkoguz/ComfyUI_Kosmos2_BBox_Cutter" + ], + "install_type": "git-clone", + "description": "Nodes:KosmosLoader, Kosmos2SamplerSimple, Write" + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-PuLID-ZHO [WIP]", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PuLID-ZHO", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PuLID-ZHO" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [a/PuLID](https://github.com/ToTheBeginning/PuLID)(diffusers) for ComfyUI" + }, + { + "author": "longgui0318", + "title": "comfyui-one-more-step [WIP]", + "reference": "https://github.com/longgui0318/comfyui-one-more-step", + "files": [ + "https://github.com/longgui0318/comfyui-one-more-step" + ], + "install_type": "git-clone", + "description": "[a/(OMS)mhh0318/OneMoreStep](https://github.com/mhh0318/OneMoreStep) comfyui support ." + }, + { + "author": "unknown", + "title": "CLIPTextEncodeAndEnhancev4 (shirazdesigner)", + "reference": "https://github.com/shirazdesigner/CLIPTextEncodeAndEnhancev4", + "files": [ + "https://github.com/shirazdesigner/CLIPTextEncodeAndEnhancev4" + ], + "install_type": "git-clone", + "description": "Nodes:CLIPTextEncodeAndEnhance.\nNOTE:Translation:This is a wrapper that simply makes it easy to install an existing node via git." + }, + { + "author": "umisetokikaze", + "title": "comfyui_mergekit [WIP]", + "reference": "https://github.com/umisetokikaze/comfyui_mergekit", + "files": [ + "https://github.com/umisetokikaze/comfyui_mergekit" + ], + "install_type": "git-clone", + "description": "Nodes:DefineSaveName, SetModels, get_skip, LoadLR, LoadTarget, SetTokenizer, Merge, SetLayer, SetModels" + }, + { + "author": "Video3DGenResearch", + "title": "ComfyUI Batch Input Node", + "reference": "https://github.com/Video3DGenResearch/comfyui-batch-input-node", + "files": [ + "https://github.com/Video3DGenResearch/comfyui-batch-input-node" + ], + "install_type": "git-clone", + "description": "Nodes:BatchInputText" + }, + { + "author": "kijai", + "title": "ComfyUI nodes to use DeepSeek-VL", + "reference": "https://github.com/kijai/ComfyUI-DeepSeek-VL", + "files": [ + "https://github.com/kijai/ComfyUI-DeepSeek-VL" + ], + "install_type": "git-clone", + "description": "[a/https://huggingface.co/deepseek-ai](https://huggingface.co/deepseek-ai)" + }, + { + "author": "GentlemanHu", + "title": "ComfyUI-Notifier", + "reference": "https://github.com/GentlemanHu/ComfyUI-Notifier", + "files": [ + "https://github.com/GentlemanHu/ComfyUI-Notifier" + ], + "install_type": "git-clone", + "description": "Nodes:GentlemanHu_Notifier" + }, + { + "author": "nat-chan", + "title": "Transceiver📡", + "reference": "https://github.com/nat-chan/transceiver", + "files": [ + "https://github.com/nat-chan/transceiver" ], "install_type": "git-clone", "description": "Why? When processing a large number of requests, the SaveImage and LoadImage nodes may be IO-limited, and using shared memory improves performance by passing images only through memory access, not through IO." @@ -34,9 +7794,9 @@ { "author": "WilliamStanford", "title": "visuallabs_comfyui_nodes", - "reference": "https://github.com/WilliamStanford/visuallabs_comfyui_nodes", + "reference": "https://github.com/WilliamStanford/ComfyUI-VisualLabs", "files": [ - "https://github.com/WilliamStanford/visuallabs_comfyui_nodes" + "https://github.com/WilliamStanford/ComfyUI-VisualLabs" ], "install_type": "git-clone", "description": "Nodes:PointStringFromFloatArray" @@ -61,16 +7821,6 @@ "install_type": "git-clone", "description": "Experimental method to use reference video to drive motion in generations without training in ComfyUI." }, - { - "author": "logtd", - "title": "ComfyUI-MotionThiefExperiment", - "reference": "https://github.com/logtd/ComfyUI-MotionThiefExperiment", - "files": [ - "https://github.com/logtd/ComfyUI-MotionThiefExperiment" - ], - "install_type": "git-clone", - "description": "Nodes:This is an experimental node pack to test using reference videos for their motion.\nIt isn't compatible with a lot of things as this is a hacky implementation for experiments only." - }, { "author": "hy134300", "title": "comfyui-hb-node", @@ -151,26 +7901,6 @@ "install_type": "git-clone", "description": "This is a PoC port of [a/Google's Prompt-to-Prompt](https://github.com/google/prompt-to-prompt/) to ComfyUI. It isn't feature complete. But it's good enough for evaluating if prompt-to-prompt is of any good." }, - { - "author": "MushroomFleet", - "title": "DJZ-Nodes", - "reference": "https://github.com/MushroomFleet/DJZ-Nodes", - "files": [ - "https://github.com/MushroomFleet/DJZ-Nodes" - ], - "install_type": "git-clone", - "description": "Nodes:Aspect Size. Drift Johnsons Custom nodes for ComfyUI" - }, - { - "author": "birnam", - "title": "Gen Data Tester", - "reference": "https://github.com/birnam/ComfyUI-GenData-Pack", - "files": [ - "https://github.com/birnam/ComfyUI-GenData-Pack" - ], - "install_type": "git-clone", - "description": "This answers the itch for being able to easily paste CivitAI.com generated data (or other simple metadata) into Comfy in a way that makes it easy to test with multiple checkpoints." - }, { "author": "stavsap", "title": "ComfyUI Ollama [WIP]", @@ -211,16 +7941,6 @@ "install_type": "git-clone", "description": "Generator for StyleGAN 3" }, - { - "author": "christian-byrne", - "title": "elimination-nodes", - "reference": "https://github.com/christian-byrne/elimination-nodes", - "files": [ - "https://github.com/christian-byrne/elimination-nodes" - ], - "install_type": "git-clone", - "description": "Nodes:Paste Cutout on Base Image" - }, { "author": "A719689614", "title": "ComfyUI_AC_FUNV8Beta1", @@ -344,9 +8064,9 @@ { "author": "shadowcz007", "title": "comfyui-llamafile [WIP]", - "reference": "https://github.com/shadowcz007/comfyui-llamafile", + "reference": "https://github.com/shadowcz007/comfyui-sd-prompt-mixlab", "files": [ - "https://github.com/shadowcz007/comfyui-llamafile" + "https://github.com/shadowcz007/comfyui-sd-prompt-mixlab" ], "install_type": "git-clone", "description": "This node is an experimental node aimed at exploring the collaborative way of human-machine creation." @@ -381,26 +8101,6 @@ "install_type": "git-clone", "description": "Nodes:KSampler (RAVE), KSampler (TF), Object Tracker, KSampler Batched, Video Tracker Prompt, TemporalNet Preprocessor, Instance Tracker Prompt, Instance Diffusion Loader, Hand Tracker Node" }, - { - "author": "shadowcz007", - "title": "comfyui-musicgen", - "reference": "https://github.com/shadowcz007/comfyui-musicgen", - "files": [ - "https://github.com/shadowcz007/comfyui-musicgen" - ], - "install_type": "git-clone", - "description": "Nodes:Musicgen" - }, - { - "author": "Extraltodeus", - "title": "ComfyUI-variableCFGandAntiBurn [WIP]", - "reference": "https://github.com/Extraltodeus/ComfyUI-variableCFGandAntiBurn", - "files": [ - "https://github.com/Extraltodeus/ComfyUI-variableCFGandAntiBurn" - ], - "install_type": "git-clone", - "description": "Nodes:Continuous CFG rescaler (pre CFG), Intermediary latent merge (post CFG), Intensity/Brightness limiter (post CFG), Dynamic renoising (post CFG), Automatic CFG scale (pre/post CFG), CFG multiplier per channel (pre CFG), Self-Attention Guidance delayed activation mod (post CFG)" - }, { "author": "shadowcz007", "title": "comfyui-CLIPSeg", @@ -411,16 +8111,6 @@ "install_type": "git-clone", "description": "Download [a/CLIPSeg](https://huggingface.co/CIDAS/clipseg-rd64-refined/tree/main), move to : models/clipseg" }, - { - "author": "dezi-ai", - "title": "ComfyUI Animate LCM", - "reference": "https://github.com/dezi-ai/ComfyUI-AnimateLCM", - "files": [ - "https://github.com/dezi-ai/ComfyUI-AnimateLCM" - ], - "install_type": "git-clone", - "description": "ComfyUI implementation for [a/AnimateLCM](https://animatelcm.github.io/) [[a/paper](https://arxiv.org/abs/2402.00769)].\b[w/This extension includes a large number of nodes imported from the existing custom nodes, increasing the likelihood of conflicts.]" - }, { "author": "stutya", "title": "ComfyUI-Terminal [UNSAFE]", @@ -492,25 +8182,15 @@ "description": "execution-inversion-demo-comfyui" }, { - "author": "unanan", + "author": "prodogape", "title": "ComfyUI-clip-interrogator [WIP]", - "reference": "https://github.com/unanan/ComfyUI-clip-interrogator", + "reference": "https://github.com/prodogape/ComfyUI-clip-interrogator", "files": [ - "https://github.com/unanan/ComfyUI-clip-interrogator" + "https://github.com/prodogape/ComfyUI-clip-interrogator" ], "install_type": "git-clone", "description": "Unofficial ComfyUI extension of clip-interrogator" }, - { - "author": "prismwastaken", - "title": "prism-tools", - "reference": "https://github.com/prismwastaken/comfyui-tools", - "files": [ - "https://github.com/prismwastaken/comfyui-tools" - ], - "install_type": "git-clone", - "description": "prism-tools" - }, { "author": "poisenbery", "title": "NudeNet-Detector-Provider [WIP]", @@ -531,16 +8211,6 @@ "install_type": "git-clone", "description": "A simple custom node that unloads all models. Useful for developers or users who want to free some memory." }, - { - "author": "AIGODLIKE", - "title": "AIGODLIKE/ComfyUI-Model-Manager [WIP]", - "reference": "https://github.com/AIGODLIKE/ComfyUI-Studio", - "files": [ - "https://github.com/AIGODLIKE/ComfyUI-Studio" - ], - "install_type": "git-clone", - "description": "WIP" - }, { "author": "MrAdamBlack", "title": "CheckProgress [WIP]", @@ -551,16 +8221,6 @@ "install_type": "git-clone", "description": "I was looking for a node to put in place to ensure my prompt etc where going as expected before the rest of the flow executed. To end the session, I just return the input image as None (see expected error). Recommend using it alongside PreviewImage, then output to the rest of the flow and Save Image." }, - { - "author": "11cafe", - "title": "11cafe/ComfyUI Model Manager [WIP]", - "reference": "https://github.com/11cafe/model-manager-comfyui", - "files": [ - "https://github.com/11cafe/model-manager-comfyui" - ], - "install_type": "git-clone", - "description": "This answers the itch for being able to easily paste [a/CivitAI.com](CivitAI.com) generated data (or other simple metadata) into Comfy in a way that makes it easy to test with multiple checkpoints." - }, { "author": "birnam", "title": "Gen Data Tester [WIP]", @@ -569,17 +8229,7 @@ "https://github.com/birnam/ComfyUI-GenData-Pack" ], "install_type": "git-clone", - "description": "This answers the itch for being able to easily paste [a/CivitAI.com](CivitAI.com) generated data (or other simple metadata) into Comfy in a way that makes it easy to test with multiple checkpoints." - }, - { - "author": "ZHO-ZHO-ZHO", - "title": "ComfyUI-AnyText(WIP)", - "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AnyText", - "files": [ - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AnyText" - ], - "install_type": "git-clone", - "description": "Unofficial implementation of [a/AnyText](https://github.com/tyxsspa/AnyText/tree/825bcc54687206b15bd7e28ba1a8b095989d58e3) for ComfyUI(EXP)" + "description": "This answers the itch for being able to easily paste [a/CivitAI.com](https://civitai.com/) generated data (or other simple metadata) into Comfy in a way that makes it easy to test with multiple checkpoints." }, { "author": "nidefawl", @@ -591,16 +8241,6 @@ "install_type": "git-clone", "description": "Nodes:PythonScript, BlendImagesWithBoundedMasks, CropImagesWithMasks, VAELoaderDataType, ModelSamplerTonemapNoiseTest, gcLatentTunnel, ReferenceOnlySimple, EmptyImageWithColor, MaskFromColor, SetLatentCustomNoise, LatentToImage, ImageToLatent, LatentScaledNoise, DisplayAnyType, SamplerCustomCallback, CustomCallback, SplitCustomSigmas, SamplerDPMPP_2M_SDE_nidefawl, LatentPerlinNoise.
    [w/This node is an unsafe node that includes the capability to execute arbitrary python script.]" }, - { - "author": "kadirnar", - "title": "comfyui_helpers", - "reference": "https://github.com/kadirnar/comfyui_helpers", - "files": [ - "https://github.com/kadirnar/comfyui_helpers" - ], - "install_type": "git-clone", - "description": "A collection of nodes randomly selected and gathered, related to noise. NOTE: SD-Advanced-Noise, noise_latent_perlinpinpin, comfy-plasma" - }, { "author": "foglerek", "title": "comfyui-cem-tools", @@ -616,7 +8256,7 @@ "title": "ComfyUI_Prompt_Template_CustomNodes", "reference": "https://github.com/komojini/ComfyUI_Prompt_Template_CustomNodes", "files": [ - "https://github.com/komojini/ComfyUI_Prompt_Template_CustomNodes/raw/main/prompt_with_template.py" + "https://raw.githubusercontent.com/komojini/ComfyUI_Prompt_Template_CustomNodes/main/prompt_with_template.py" ], "install_type": "copy", "description": "Nodes:Prompt with Template" @@ -671,16 +8311,6 @@ "install_type": "git-clone", "description": "Nodes: Node Jumper. Various quality of life testing nodes" }, - { - "author": "ilovejohnwhite", - "title": "TatToolkit", - "reference": "https://github.com/ilovejohnwhite/UncleBillyGoncho", - "files": [ - "https://github.com/ilovejohnwhite/UncleBillyGoncho" - ], - "install_type": "git-clone", - "description": "Nodes:UWU TTK Preprocessor, Pixel Perfect Resolution, Generation Resolution From Image, Generation Resolution From Latent, Enchance And Resize Hint Images, ..." - }, { "author": "IvanZhd", "title": "comfyui-codeformer [WIP]", @@ -731,26 +8361,6 @@ "install_type": "git-clone", "description": "Nodes: CheckpointVAELoaderSimpleText, CheckpointVAESelectorText, LoRA_Tag_To_Stack" }, - { - "author": "dnl13", - "title": "ComfyUI-dnl13-seg", - "reference": "https://github.com/dnl13/ComfyUI-dnl13-seg", - "files": [ - "https://github.com/dnl13/ComfyUI-dnl13-seg" - ], - "install_type": "git-clone", - "description": "After discovering @storyicon implementation here of Segment Anything, I realized its potential as a powerful tool for ComfyUI if implemented correctly. I delved into the SAM and Dino models. The following is my own adaptation of sam_hq for ComfyUI." - }, - { - "author": "phineas-pta", - "title": "comfy-trt-test [WIP]", - "reference": "https://github.com/phineas-pta/comfy-trt-test", - "files": [ - "https://github.com/phineas-pta/comfy-trt-test" - ], - "install_type": "git-clone", - "description": "Test project for ComfyUI TensorRT Support.\nNOT WORKING YET.\nnot automatic yet, do not use ComfyUI-Manager to install !!!.\nnot beginner-friendly yet, still intended to technical users\nNOTE: The reason for registration in the Manager is for guidance, and for detailed installation instructions, please visit the repository." - }, { "author": "Brandelan", "title": "ComfyUI_bd_customNodes", @@ -791,16 +8401,6 @@ "install_type": "git-clone", "description": "Image manipulation nodes, Temperature control nodes, Tiling nodes, Primitive and operation nodes, ..." }, - { - "author": "PluMaZero", - "title": "ComfyUI-SpaceFlower", - "reference": "https://github.com/PluMaZero/ComfyUI-SpaceFlower", - "files": [ - "https://github.com/PluMaZero/ComfyUI-SpaceFlower" - ], - "install_type": "git-clone", - "description": "Nodes: SpaceFlower_Prompt, SpaceFlower_HangulPrompt, ..." - }, { "author": "laksjdjf", "title": "ssd-1b-comfyui", @@ -852,4 +8452,4 @@ "description": "This extension provides the capability to use ComfyUI Workflow as a component and the ability to use the Image Refiner functionality based on components. NOTE: This is an experimental extension feature with no consideration for backward compatibility and can be highly unstable." } ] -} \ No newline at end of file +} diff --git a/node_db/dev/extension-node-map.json b/node_db/dev/extension-node-map.json index 4534fe24..4afde37c 100644 --- a/node_db/dev/extension-node-map.json +++ b/node_db/dev/extension-node-map.json @@ -146,6 +146,753 @@ "title_aux": "ComfyUI_Fooocus" } ], + "https://github.com/1H-hobit/ComfyUI_InternVL3": [ + [ + "DynamicPreprocess", + "InternVLHFInference", + "InternVLModelLoader", + "hb_Number_Counter" + ], + { + "title_aux": "ComfyComfyUI_InternVL3 [WIP]" + } + ], + "https://github.com/1hew/ComfyUI-1hewNodes": [ + [ + "ImageAddLabel", + "ImageBBoxOverlayByMask", + "ImageBatchToList", + "ImageBlendModesByAlpha", + "ImageBlendModesByCSS", + "ImageCropByMaskAlpha", + "ImageCropSquare", + "ImageCropWithBBoxMask", + "ImageEdgeCropPad", + "ImageEditStitch", + "ImageGetSize", + "ImageHLFreqCombine", + "ImageHLFreqSeparate", + "ImageHLFreqTransform", + "ImageListAppend", + "ImageListToBatch", + "ImageLumaMatte", + "ImagePasteByBBoxMask", + "ImagePlot", + "ImageResizeFluxKontext", + "ImageResizeUniversal", + "ImageRotateWithMask", + "ImageSolid", + "ImageStrokeByMask", + "ImageTileMerge", + "ImageTileSplit", + "ImageTileSplitPreset", + "ListCustomFloat", + "ListCustomInt", + "ListCustomSeed", + "ListCustomString", + "MaskBatchMathOps", + "MaskBatchToList", + "MaskCropByBBoxMask", + "MaskFillHole", + "MaskListToBatch", + "MaskMathOps", + "MaskPasteByBBoxMask", + "PathBuild", + "RangeMapping", + "StepSplit", + "StringCoordinateToBBoxMask", + "StringCoordinateToBBoxes", + "TextCustomExtract", + "TextFilterComment", + "TextJoinByTextList", + "TextJoinMulti", + "TextLoadLocal", + "TextPrefixSuffix" + ], + { + "title_aux": "ComfyUI-1hewNodes [WIP]" + } + ], + "https://github.com/206811/ComfyUI_ZhipuAIO": [ + [ + "ZhipuAIOConfigNode", + "ZhipuAIO_VisionNode", + "ZhipuTranslateNode" + ], + { + "title_aux": "ComfyUI_ZhipuAIO" + } + ], + "https://github.com/3dmindscapper/ComfyUI-PartField": [ + [ + "PartFieldClustering", + "PartFieldExportParts", + "PartFieldInference", + "PartFieldModelDownLoader", + "PartFieldSplitter", + "PartFieldViewer" + ], + { + "title_aux": "ComfyUI-PartField [WIP]" + } + ], + "https://github.com/3dmindscapper/ComfyUI-Sam-Mesh": [ + [ + "SamMeshExporter", + "SamMeshExporter+SamMesh", + "SamMeshLoader", + "SamMeshLoader+SamMesh", + "SamMeshRenderer", + "SamMeshRenderer+SamMesh", + "SamMeshSegmenter", + "SamMeshSegmenter+SamMesh", + "SamModelDownloader", + "SamModelDownloader+SamMesh" + ], + { + "title_aux": "ComfyUI-Sam-Mesh [WIP]" + } + ], + "https://github.com/438443467/ComfyUI-SanMian-Nodes": [ + [ + "FaceAlignPro", + "FaceAlignProRestore", + "SANMIN Adapt Coordinates", + "SanmiKSampler", + "sanmi AddTextToImage", + "sanmi Adjust Transparency By Mask", + "sanmi AdjustHexBrightness", + "sanmi Align Images with Mask", + "sanmi BinarizeMask", + "sanmi BlendICLight", + "sanmi Chinese To Character", + "sanmi ColorOverlayOnMask", + "sanmi Compare", + "sanmi CompareV2", + "sanmi Counter", + "sanmi CreateTxtForImages", + "sanmi Filter Prompt Words", + "sanmi Float", + "sanmi Florence2toCoordinates", + "sanmi Get Content From Excel", + "sanmi Get LastPathComponent", + "sanmi Get Mask White Region Size", + "sanmi GetFilePath", + "sanmi GetMostCommonColor", + "sanmi ImageBatchSplitter", + "sanmi Image_Rotate", + "sanmi Int90", + "sanmi IntToBOOLEAN", + "sanmi Load Image Batch", + "sanmi LoadImageFromPath", + "sanmi LoadImagesanmi", + "sanmi Mask To Box", + "sanmi MaskToBboxes", + "sanmi MaskWhiteRatioAnalyzer", + "sanmi Path Captioner", + "sanmi Path Change", + "sanmi Read Image Prompt", + "sanmi RectMaskAnalyzer", + "sanmi Reduce Mask", + "sanmi RestoreJson", + "sanmi Sanmi_Text_Concatenate", + "sanmi Save Image To Local", + "sanmi SimpleWildcards", + "sanmi SortTheMasksLeftRight", + "sanmi SortTheMasksSize", + "sanmi Special Counter", + "sanmi StrToPinYin", + "sanmi String Counter", + "sanmi String Counter V2", + "sanmi StringToBox", + "sanmi Time", + "sanmi Upscale And Keep Original Size" + ], + { + "title_aux": "ComfyUI-SanMian-Nodes" + } + ], + "https://github.com/543872524/ComfyUI_crdong": [ + [ + "CRDAudioLengthNode", + "CRDNodesImageSelector", + "INTConstant", + "PromptBatchMulti", + "PromptExampleNode", + "PromptJoinOrList", + "PromptList", + "PromptSelectorList", + "PromptSelectorStr", + "SelectImageSize", + "SimpleIntMathHandle", + "SimpleJsonArrayHandle", + "SimpleJsonObjectHandle", + "VideoFrameSize", + "VideoTimeAndFPS", + "Wan22StepHandle" + ], + { + "title_aux": "ComfyUI_crdong" + } + ], + "https://github.com/5x00/ComfyUI-Prompt-Plus": [ + [ + "LoadAPI", + "LoadCustomModel", + "LoadFlorenceModel", + "Prompt", + "RunAPIVLM", + "RunCustomVLM", + "TriggerToPromptAPI", + "TriggerToPromptCustom", + "TriggerToPromptSimple" + ], + { + "title_aux": "ComfyUI-Prompt-Plus [WIP]" + } + ], + "https://github.com/77oussam/Aio77-Comfyui": [ + [ + "LoadImages-77", + "LoadImages-77-Simple", + "Outline-77" + ], + { + "title_aux": "Alo77 - ComfyUI Custom Nodes Collection [WIP]" + } + ], + "https://github.com/7BEII/Comfyui_PDuse": [ + [ + "Empty_Line", + "ImageBlendText", + "ImageBlendV1", + "ImageRatioCrop", + "Load_Images", + "Load_Images_V1", + "PDFile_name_fix", + "PDIMAGE_ImageCombine", + "PDIMAGE_LongerSize", + "PDIMAGE_Rename", + "PDIMAGE_SAVE_PATH_V2", + "PDIMAGE_SAVE_PATH_V3", + "PDImageConcante", + "PDImageResize", + "PDImageResizeV2", + "PDJSON_BatchJsonIncremental", + "PDJSON_Group", + "PDStringConcate", + "PDStringInput", + "PDTEXT_SAVE_PATH_V1", + "PDTEXT_SAVE_PATH_V2", + "PDTEXT_SAVE_PATH_V3", + "PD_BatchCropBlackBorder", + "PD_CropBorder", + "PD_GetImageRatio", + "PD_GetImageSize", + "PD_Image_Crop_Location", + "PD_Image_Rotate_v1", + "PD_Image_centerCrop", + "PD_MASK_SELECTION", + "PD_RemoveBlackBackground", + "PD_RemoveColorWords", + "PD_ShowText", + "PD_Text Overlay Node", + "PD_imagesave_path", + "PD_number_start", + "PD_random_prompt", + "PD_rename_batch_v1", + "PD_replace_word", + "PDimage_corp_v1", + "PDimage_corp_v2", + "mask_edge_selector" + ], + { + "title_aux": "comfyui-promptbymood [WIP]" + } + ], + "https://github.com/A4P7J1N7M05OT/ComfyUI-ManualSigma": [ + [ + "ManualSigma" + ], + { + "title_aux": "ComfyUI-ManualSigma" + } + ], + "https://github.com/A4P7J1N7M05OT/ComfyUI-VAELoaderSDXLmod": [ + [ + "EmptyLatentImageVariable", + "ModifiedSDXLVAELoader" + ], + { + "title_aux": "ComfyUI-VAELoaderSDXLmod" + } + ], + "https://github.com/A719689614/ComfyUI_AC_FUNV7-FLUX-": [ + [ + "AC_Super_CLIP(FLUX)", + "AC_Super_UNET(FLUX)" + ], + { + "title_aux": "ComfyUI_AC_FUNV7-FLUX- [WIP]" + } + ], + "https://github.com/A719689614/ComfyUI_AC_FUNV8Beta1": [ + [ + "AC_FUN_SUPER_DESIGN_LARGE", + "AC_FUN_SUPER_LARGE", + "AC_Super_CKPT&LCM", + "AC_Super_CLIPEN", + "AC_Super_Checkpoint", + "AC_Super_Controlnet", + "AC_Super_EmptLatent", + "AC_Super_KSampler", + "AC_Super_Lora&LCM", + "AC_Super_Loras", + "AC_Super_MaskScale", + "AC_Super_MaskScaleBy", + "AC_Super_PreviewImage", + "AC_Super_PreviewMask", + "AC_Super_SaveImage", + "AC_Super_UpKSampler" + ], + { + "title_aux": "ComfyUI_AC_FUNV8Beta1" + } + ], + "https://github.com/AICodeFactory/ComfyUI-Viva": [ + [ + "HttpTrigger_Common", + "HttpTrigger_Image", + "HttpTrigger_Viva" + ], + { + "title_aux": "ComfyUI-Viva" + } + ], + "https://github.com/AIFSH/ComfyUI-OpenDIT": [ + [ + "DITModelLoader", + "DITPromptNode", + "DiffVAELoader", + "LattePipeLineNode", + "OpenSoraNode", + "OpenSoraPlanPipeLineNode", + "PABConfigNode", + "PreViewVideo", + "SchedulerLoader", + "T5EncoderLoader", + "T5TokenizerLoader" + ], + { + "title_aux": "ComfyUI-OpenDIT [WIP]" + } + ], + "https://github.com/AIFSH/ComfyUI-ViViD": [ + [ + "LoadImagePath", + "LoadVideo", + "PreViewVideo", + "ViViD_Node" + ], + { + "title_aux": "ComfyUI-ViViD" + } + ], + "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI": [ + [ + "AddBackgroundNode", + "AddWaterMarkNode", + "ENHivisionParamsNode", + "HivisionLayOutNode", + "HivisionNode", + "LaterProcessNode", + "ZHHivisionParamsNode" + ], + { + "author": "cuny", + "description": "", + "title_aux": "HivisionIDPhotos-ComfyUI" + } + ], + "https://github.com/AIFSH/IMAGDressing-ComfyUI": [ + [ + "IMAGDressingNode", + "TextNode" + ], + { + "title_aux": "IMAGDressing-ComfyUI" + } + ], + "https://github.com/AIFSH/UltralightDigitalHuman-ComfyUI": [ + [ + "InferUltralightDigitalHumanNode", + "TrainUltralightDigitalHumanNode" + ], + { + "title_aux": "UltralightDigitalHuman-ComfyUI" + } + ], + "https://github.com/AIFSH/UtilNodes-ComfyUI": [ + [ + "GetRGBEmptyImgae", + "LoadVideo", + "PreViewVideo", + "PromptTextNode" + ], + { + "title_aux": "UtilNodes-ComfyUI [WIP]" + } + ], + "https://github.com/ALatentPlace/ComfyUI_yanc": [ + [ + "> Bloom", + "> Blur", + "> Brightness", + "> Clear Text", + "> Combine Channels", + "> Contrast", + "> Divide Channels", + "> Edge Enhance", + "> Film Grain", + "> Float to Int", + "> Fog", + "> Get Mean Color", + "> HUE", + "> Int", + "> Int to Text", + "> Layer Weights (for IPAMS)", + "> Lens Distortion", + "> Light Source Mask", + "> Load Image", + "> Load Image From Folder", + "> Mask Curves", + "> NIKSampler", + "> Noise From Image", + "> Normal Map Lighting", + "> RGB Color", + "> RGB Shift", + "> Resolution by Aspect Ratio", + "> Rotate Image", + "> Saturation", + "> Save Image", + "> Save Text", + "> Scale Image to Side", + "> Scanlines", + "> Sharpen", + "> Text", + "> Text Combine", + "> Text Count", + "> Text Pick Line by Index", + "> Text Pick Random Line", + "> Text Random Weights", + "> Text Replace", + "> Vignette" + ], + { + "title_aux": "YANC- Yet Another Node Collection" + } + ], + "https://github.com/APZmedia/comfyui-textools": [ + [ + "APZmediaImageMarkdownTextOverlay", + "APZmediaImageRichTextOverlay", + "APZmediaImageRichTextOverlayV2" + ], + { + "author": "Pablo Apiolazza", + "description": "This extension provides rich text overlay functionalities, color management, and text parsing utilities for ComfyUI.", + "nickname": "ComfyUI Text Tools", + "title": "ComfyUI APZmedia Text Tools", + "title_aux": "comfyui-textools [WIP]" + } + ], + "https://github.com/Aero-Ex/comfyui_diffswap": [ + [ + "DiffSwapNode" + ], + { + "title_aux": "comfyui_diffswap" + } + ], + "https://github.com/AhBumm/ComfyUI-Upscayl": [ + [ + "Upscayl Upscaler" + ], + { + "nodename_pattern": "\\(BillBum\\)$", + "title_aux": "ComfyUI-Upscayl" + } + ], + "https://github.com/AhBumm/ComfyUI_MangaLineExtraction-hf": [ + [ + "MangaLineExtraction-hf" + ], + { + "title_aux": "ComfyUI_MangaLineExtraction" + } + ], + "https://github.com/AkiEvansDev/ComfyUI-Tools": [ + [ + "AE.AnySwitch", + "AE.AnyTypeSwitch", + "AE.BRIARemBG", + "AE.BRIARemBGAdvanced", + "AE.ChangeSamplerConfig", + "AE.CheckpointList", + "AE.CheckpointLoader", + "AE.CompareFloat", + "AE.CompareInt", + "AE.ControlNetApplyWithConfig", + "AE.ControlNetConfig", + "AE.DisplayAny", + "AE.ExtractControlNetConfig", + "AE.ExtractHiresFixConfig", + "AE.ExtractImg2ImgConfig", + "AE.ExtractOutpaintConfig", + "AE.ExtractSamplerConfig", + "AE.Float", + "AE.FloatList", + "AE.FloatSwitch", + "AE.FloatToInt", + "AE.GaussianBlurMask", + "AE.GetImageSize", + "AE.GetLatentSize", + "AE.GroupsMuter", + "AE.HiresFixConfig", + "AE.ImageAdjustment", + "AE.ImageBlank", + "AE.ImageBlendMask", + "AE.ImageBlendMode", + "AE.ImageCannyFilter", + "AE.ImageDragonFilter", + "AE.ImageHighPassFilter", + "AE.ImageLevels", + "AE.ImageLucySharpen", + "AE.ImagePixelate", + "AE.ImagePowerNoise", + "AE.ImageStyleFilter", + "AE.Img2ImgConfig", + "AE.InpaintWithModel", + "AE.Int", + "AE.IntList", + "AE.IntSwitch", + "AE.IntToFloat", + "AE.KSamplerHiresFixWithConfig", + "AE.KSamplerImg2ImgWithConfig", + "AE.KSamplerInpaintWithConfig", + "AE.KSamplerInpaintWithConfigAndImage", + "AE.KSamplerOutpaintWithConfig", + "AE.KSamplerOutpaintWithConfigAndImage", + "AE.KSamplerWithConfig", + "AE.LoadImageFromPath", + "AE.LoadInpaintModel", + "AE.LoraLoader", + "AE.LorasList", + "AE.LorasLoader", + "AE.MathFloat", + "AE.MathInt", + "AE.OutpaintConfig", + "AE.OutpaintWithModel", + "AE.OutpaintWithModelAndConfig", + "AE.Range", + "AE.RangeList", + "AE.SDXLConfig", + "AE.SDXLPrompt", + "AE.SDXLPromptWithHires", + "AE.SDXLRegionalPrompt", + "AE.SDXLRegionalPromptWithHires", + "AE.SamplerConfig", + "AE.SamplerList", + "AE.SaveImage", + "AE.SchedulerList", + "AE.Seed", + "AE.String", + "AE.StringConcat", + "AE.StringEquals", + "AE.StringLength", + "AE.StringList", + "AE.StringReplace", + "AE.StringSwitch", + "AE.Text", + "AE.ToString", + "AE.ToStringConcat", + "AE.UpscaleLatentBy", + "AE.VAEEncodeInpaintConditioning", + "AE.XYRange" + ], + { + "title_aux": "ComfyUI-Tools" + } + ], + "https://github.com/Alazuaka/comfyui-lora-stack-node": [ + [ + "AlazukaCheckpoint", + "EsLoraSet" + ], + { + "title_aux": "ES_nodes for ComfyUI by Alazuka [WIP]" + } + ], + "https://github.com/AlejandroTuzzi/TUZZI-ByPass": [ + [ + "LinkSuppressor", + "SequentialTextReaderAuto", + "TUZZI-AppendToMasterVideo", + "TUZZI-Bypasser", + "TUZZI-DataloungeScraper", + "TUZZI-DirectoryImagePromptReader", + "TUZZI-ElevenLabsTTS", + "TUZZI-GeminiNode", + "TUZZI-GroqNode", + "TUZZI-ImageAudioToVideo", + "TUZZI-ImageExtractorSaver", + "TUZZI-LineCounter", + "TUZZI-LinkSuppressor", + "TUZZI-NumberLines", + "TUZZI-PlosArticleScraper", + "TUZZI-RangedSelectorText5", + "TUZZI-RangedSelectorTitleURL10", + "TUZZI-RangedSelectorTitleURL5", + "TUZZI-RedditPostExtractor", + "TUZZI-SaveVideo", + "TUZZI-SequentialTextReader", + "TUZZI-SequentialTextReaderAuto", + "TUZZI-SmartAudioVisualComposer", + "TUZZI-TVTropesScraper", + "TUZZI-TextFormatter", + "TUZZI-TextFormatterPlus", + "TUZZI-TextTranslatorExporter", + "TUZZI-TextTruncatorPlus", + "TUZZI-YouTubeCommentExtractor", + "TUZZI-YouTubeSubtitleExtractor" + ], + { + "title_aux": "TUZZI-ByPass [WIP]" + } + ], + "https://github.com/AlexXi19/ComfyUI-OpenAINode": [ + [ + "ImageWithPrompt", + "TextWithPrompt" + ], + { + "title_aux": "ComfyUI-OpenAINode" + } + ], + "https://github.com/AlexYez/comfyui-timesaver": [ + [ + "TS Cube to Equirectangular", + "TS Equirectangular to Cube", + "TS Files Downloader", + "TS Youtube Chapters", + "TSCropToMask", + "TSRestoreFromCrop", + "TSWhisper", + "TS_DeflickerNode", + "TS_FilePathLoader", + "TS_FilmEmulation", + "TS_FilmGrain", + "TS_Free_Video_Memory", + "TS_ImageResize", + "TS_MarianTranslator", + "TS_Qwen3", + "TS_Qwen3_Offline", + "TS_Qwen_GGUF", + "TS_VideoDepthNode", + "TS_Video_Upscale_With_Model" + ], + { + "title_aux": "ComfyUI Timesaver Nodes" + } + ], + "https://github.com/AllenEdgarPoe/ComfyUI-Xorbis-nodes": [ + [ + "Add Human Styler", + "ConcaveHullImage", + "Convert Monochrome", + "ImageBWPostprocessor", + "ImageBWPreprocessor", + "Inpaint Crop Xo", + "LoadData", + "Mask Aligned bbox for ConcaveHull", + "Mask Aligned bbox for Inpainting", + "Mask Aligned bbox for Inpainting2", + "Mask Square bbox for Inpainting", + "One Image Compare", + "RT4KSR Loader", + "RandomPromptStyler", + "Save Log Info", + "Three Image Compare", + "Upscale RT4SR" + ], + { + "title_aux": "ComfyUI-Xorbis-nodes [WIP]" + } + ], + "https://github.com/Alvaroeai/ComfyUI-SunoAI-Mds": [ + [ + "Mideas_SunoAI_AudioManager", + "Mideas_SunoAI_Generator", + "Mideas_SunoAI_ProxyDownloadNode", + "Mideas_SunoAI_ProxyNode" + ], + { + "title_aux": "ComfyUI-SunoAI-Mds" + } + ], + "https://github.com/Anonymzx/ComfyUI-Indonesia-TTS": [ + [ + "Facebook MMS-TTS-IND Variants FX" + ], + { + "title_aux": "ComfyUI-Indonesia-TTS [WIP]" + } + ], + "https://github.com/Anze-/ComfyUI-OIDN": [ + [ + "OIDN Denoise" + ], + { + "title_aux": "ComfyUI-OIDN [WIP]" + } + ], + "https://github.com/Anze-/ComfyUI_deepDeband": [ + [ + "deepDeband Inference" + ], + { + "title_aux": "ComfyUI_deepDeband [WIP]" + } + ], + "https://github.com/ArmandAlbert/Kwai_font_comfyui": [ + [ + "Kwaifont_Image_Cropper", + "Kwaifont_Resnet101_Loader", + "Kwaifont_Resnet101_Runner", + "Kwaifont_Resnet50_Loader", + "Kwaifont_Resnet50_Runner" + ], + { + "title_aux": "Kwai_font_comfyui" + } + ], + "https://github.com/ArthusLiang/comfyui-face-remap": [ + [ + "FaceRemap" + ], + { + "title_aux": "comfyui-face-remap [WIP]" + } + ], + "https://github.com/Babiduba/ivan_knows": [ + [ + "RoleSelector", + "SaveImageToAbsolutePath" + ], + { + "title_aux": "ivan_knows [UNSAFE]" + } + ], "https://github.com/BadCafeCode/execution-inversion-demo-comfyui": [ [ "AccumulateNode", @@ -167,7 +914,6 @@ "IntConditions", "IntMathOperation", "InversionDemoAdvancedPromptNode", - "InversionDemoFakeAdvancedPromptNode", "InversionDemoLazyConditional", "InversionDemoLazyIndexSwitch", "InversionDemoLazyMixImages", @@ -183,6 +929,110 @@ "title_aux": "execution-inversion-demo-comfyui" } ], + "https://github.com/BaronVonBoolean/ComfyUI-FileOps": [ + [ + "File Mv", + "File Path", + "Make Dir" + ], + { + "title_aux": "ComfyUI-FileOps [UNSAFE]" + } + ], + "https://github.com/Baverne/comfyUI-TiledWan": [ + [ + "TiledWanImageStatistics", + "TiledWanImageToMask", + "TiledWanInpaintCropImproved", + "TiledWanInpaintStitchImproved", + "TiledWanMaskStatistics", + "TiledWanVideoVACEpipe" + ], + { + "title_aux": "TiledWan ComfyUI Node Set [WIP]" + } + ], + "https://github.com/BenjaMITM/ComfyUI_On_The_Fly_Wildcards": [ + [ + "Display String", + "Wildcard Creator", + "Wildcard Loader", + "Wildcard Selector" + ], + { + "title_aux": "ComfyUI_On_The_Fly_Wildcards [WIP]" + } + ], + "https://github.com/BetaDoggo/ComfyUI-LogicGates": [ + [ + "AND", + "BitMemory", + "BoolToString", + "ByteMemory", + "ByteToBits", + "CreateByte", + "NAND", + "NOR", + "NOT", + "ON", + "OR", + "SWITCH", + "XNOR", + "XOR" + ], + { + "title_aux": "ComfyUI-LogicGates" + } + ], + "https://github.com/Big-Idea-Technology/ComfyUI-Movie-Tools": [ + [ + "LoadImagesFromSubdirsBatch", + "SaveImagesWithSubfolder" + ], + { + "title_aux": "ComfyUI-Movie-Tools [WIP]" + } + ], + "https://github.com/BigStationW/flowmatch_scheduler-comfyui": [ + [ + "FlowMatchSigmas" + ], + { + "title_aux": "flowmatch_scheduler-comfyui" + } + ], + "https://github.com/BinglongLi/ComfyUI_ToolsForAutomask": [ + [ + "Closing Mask", + "Conditional Mask Selector", + "Directional Mask Expansion", + "Mask Fill Gaps Convex Hull", + "Opening Mask", + "Precise Add Mask", + "Precise Subtract Mask", + "Prune Thin Branches Mask", + "Remove Small Regions Mask" + ], + { + "title_aux": "ComfyUI_ToolsForAutomask" + } + ], + "https://github.com/BiodigitalJaz/ComfyUI-Dafaja-Nodes": [ + [ + "DafajaBackgroundRemover", + "DafajaExportSTL", + "DafajaMeshGenerator", + "DafajaMeshInfo", + "DafajaMeshNormalizer", + "DafajaMeshProcessor", + "DafajaSTLValidator", + "DafajaStemsMidiSeparator", + "DafajaVAEDecoder" + ], + { + "title_aux": "ComfyUI-Dafaja-Nodes [WIP]" + } + ], "https://github.com/BlueDangerX/ComfyUI-BDXNodes": [ [ "BDXTestInt", @@ -210,6 +1060,15 @@ "title_aux": "ComfyUI-BDXNodes [WIP]" } ], + "https://github.com/BobRandomNumber/ComfyUI-DiaTTS": [ + [ + "DiaGenerate", + "DiaLoader" + ], + { + "title_aux": "ComfyUI DiaTest TTS Node [WIP]" + } + ], "https://github.com/Brandelan/ComfyUI_bd_customNodes": [ [ "BD Random Range", @@ -221,6 +1080,868 @@ "title_aux": "ComfyUI_bd_customNodes" } ], + "https://github.com/BrettMedia/comfyui-bhtools": [ + [ + "CinematicSceneDirectorTools", + "EndOfWorkflowClearingBHTools", + "PromptInferenceBHTools", + "SaveImageVideoBHTools" + ], + { + "title_aux": "comfyui-bhtools [WIP]" + } + ], + "https://github.com/BuffMcBigHuge/ComfyUI-Buff-Nodes": [ + [ + "ConsoleOutput", + "FilePathSelectorFromDirectory", + "MostRecentFileSelector", + "RaftOpticalFlowNode", + "StringProcessor", + "TwoImageConcatenator" + ], + { + "title_aux": "ComfyUI-Buff-Nodes [WIP]" + } + ], + "https://github.com/Burgstall-labs/ComfyUI-BS_FalAi-API-Video": [ + [ + "FalAILipSyncNode", + "FalAPIOmniProNode", + "FalAPIVideoGeneratorI2V", + "FalAPIVideoGeneratorT2V" + ], + { + "title_aux": "ComfyUI-BS_FalAi-API-Video [WIP]" + } + ], + "https://github.com/Bwebbfx/ComfyUI_FaceParsing": [ + [ + "FaceParsingInfer", + "FaceParsingLoader", + "FacePartMask" + ], + { + "title_aux": "ComfyUI Face Parsing Nodes [WIP]" + } + ], + "https://github.com/COcisuts/CObot-ComfyUI-WhisperToTranscription": [ + [ + "CobotWhisperToTransciption" + ], + { + "title_aux": "CObot-ComfyUI-WhisperToTranscription [WIP]" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-FramePack-HY": [ + [ + "CreateKeyframes_HY", + "FramePackBucketResize_HY", + "FramePackDiffusersSampler_HY", + "LoadFramePackDiffusersPipeline_HY" + ], + { + "title_aux": "ComfyUI-FramePack-HY" + } + ], + "https://github.com/CeeVeeR/ComfyUi-Text-Tiler": [ + [ + "Text Tiler" + ], + { + "title_aux": "ComfyUi-Text-Tiler" + } + ], + "https://github.com/Chargeuk/ComfyUI-vts-nodes": [ + [ + "VTS Add Text To list", + "VTS Calculate Upscale Amount", + "VTS Clean Text", + "VTS Clean Text List", + "VTS Clear Ram", + "VTS Clip Text Encode", + "VTS Color Mask To Mask", + "VTS Colour Match", + "VTS Colour Match Advanced", + "VTS Colour Match First Frames", + "VTS Colour Match First Frames Bad Highlights", + "VTS Conditioning Set Batch Mask", + "VTS Count Characters", + "VTS Create Character Mask", + "VTS Fix Image Tags", + "VTS Image Composite Masked", + "VTS Image Upscale With Model", + "VTS Images Crop From Masks", + "VTS Images Scale", + "VTS Images Scale To Min", + "VTS Math", + "VTS Merge Delimited Text", + "VTS Merge Text", + "VTS Merge Text Lists", + "VTS Reduce Batch Size", + "VTS Render People Kps", + "VTS Repeat Text As List", + "VTS Replace Text In List", + "VTS Sharpen", + "VTS To Text", + "VTS_Load_Pose_Keypoints", + "Vts Text To Batch Prompt" + ], + { + "title_aux": "ComfyUI-vts-nodes [WIP]" + } + ], + "https://github.com/Charonartist/ComfyUI-send-eagle-pro_2": [ + [ + "Batch Send Media to Eagle", + "Send Audio to Eagle", + "Send Eagle with text", + "Send Media to Eagle", + "Send Media to Eagle (Advanced)", + "Send Video to Eagle", + "Send Webp Image to Eagle" + ], + { + "title_aux": "ComfyUI-send-eagle-pro" + } + ], + "https://github.com/Charonartist/comfyui-lora-random-selector": [ + [ + "LoRARandomSelector" + ], + { + "title_aux": "ComfyUI LoRA Random Selector [WIP]" + } + ], + "https://github.com/ChrisColeTech/ComfyUI-Get-Random-File": [ + [ + "Get Image File By Index", + "Get Video File By Index", + "Random File Path", + "Random Image Path", + "Random Video Path" + ], + { + "title_aux": "ComfyUI-Get-Random-File [UNSAFE]" + } + ], + "https://github.com/Clelstyn/ComfyUI-Inpaint_with_Detailer": [ + [ + "FilterAndBlurMask", + "MaskedResizeImage", + "PasteMaskedImage" + ], + { + "title_aux": "ComfyUI-Inpaint_with_Detailer" + } + ], + "https://github.com/Clybius/ComfyUI-FluxDeCLIP": [ + [ + "FluxDeCLIPCheckpointLoader" + ], + { + "title_aux": "ComfyUI-FluxDeCLIP" + } + ], + "https://github.com/Comfy-Org/ComfyUI_devtools": [ + [ + "DevToolsDeprecatedNode", + "DevToolsErrorRaiseNode", + "DevToolsErrorRaiseNodeWithMessage", + "DevToolsExperimentalNode", + "DevToolsLoadAnimatedImageTest", + "DevToolsLongComboDropdown", + "DevToolsMultiSelectNode", + "DevToolsNodeWithBooleanInput", + "DevToolsNodeWithDefaultInput", + "DevToolsNodeWithForceInput", + "DevToolsNodeWithOnlyOptionalInput", + "DevToolsNodeWithOptionalComboInput", + "DevToolsNodeWithOptionalInput", + "DevToolsNodeWithOutputCombo", + "DevToolsNodeWithOutputList", + "DevToolsNodeWithSeedInput", + "DevToolsNodeWithStringInput", + "DevToolsNodeWithUnionInput", + "DevToolsNodeWithV2ComboInput", + "DevToolsNodeWithValidation", + "DevToolsObjectPatchNode", + "DevToolsRemoteWidgetNode", + "DevToolsRemoteWidgetNodeWithControlAfterRefresh", + "DevToolsRemoteWidgetNodeWithParams", + "DevToolsRemoteWidgetNodeWithRefresh", + "DevToolsRemoteWidgetNodeWithRefreshButton", + "DevToolsSimpleSlider" + ], + { + "title_aux": "ComfyUI_devtools [WIP]" + } + ], + "https://github.com/D1-3105/ComfyUI-VideoStream": [ + [ + "FloWWeaverExportSingleFrameGRPC" + ], + { + "title_aux": "ComfyUI-VideoStream" + } + ], + "https://github.com/DataCTE/ComfyUI-DataVoid-nodes": [ + [ + "IPAAdapterFaceIDBatch", + "IPAdapter", + "IPAdapterAdvanced", + "IPAdapterBatch", + "IPAdapterClipVisionEnhancer", + "IPAdapterClipVisionEnhancerBatch", + "IPAdapterCombineEmbeds", + "IPAdapterCombineParams", + "IPAdapterCombineWeights", + "IPAdapterEmbeds", + "IPAdapterEmbedsBatch", + "IPAdapterEncoder", + "IPAdapterFaceID", + "IPAdapterFaceIDKolors", + "IPAdapterFromParams", + "IPAdapterInsightFaceLoader", + "IPAdapterLoadEmbeds", + "IPAdapterMS", + "IPAdapterModelLoader", + "IPAdapterNoise", + "IPAdapterPreciseComposition", + "IPAdapterPreciseCompositionBatch", + "IPAdapterPreciseStyleTransfer", + "IPAdapterPreciseStyleTransferBatch", + "IPAdapterPromptScheduleFromWeightsStrategy", + "IPAdapterRegionalConditioning", + "IPAdapterSameEnergy", + "IPAdapterSaveEmbeds", + "IPAdapterStyleComposition", + "IPAdapterStyleCompositionBatch", + "IPAdapterTiled", + "IPAdapterTiledBatch", + "IPAdapterUnifiedLoader", + "IPAdapterUnifiedLoaderCommunity", + "IPAdapterUnifiedLoaderFaceID", + "IPAdapterWeights", + "IPAdapterWeightsFromStrategy", + "MegaMergeSDXL", + "PrepImageForClipVision" + ], + { + "title_aux": "ComfyUI-DataVoid-nodes [WIP]" + } + ], + "https://github.com/DeTK/ComfyUI-Switch": [ + [ + "NodeSwitch" + ], + { + "title_aux": "ComfyUI Node Switcher" + } + ], + "https://github.com/DenRakEiw/Comfyui-Aspect-Ratio-Processor": [ + [ + "AspectRatioProcessor" + ], + { + "title_aux": "Comfyui-Aspect-Ratio-Processor [WIP]" + } + ], + "https://github.com/DenRakEiw/DenRakEiw_Nodes": [ + [ + "ConditioningInspector", + "FluxLayerDiffuseConditioningFix", + "FluxLayerDiffuseDecoderSimple", + "FluxLayerDiffuseEmptyConditioning", + "FluxLayerDiffuseInfo", + "FluxLayerDiffuseStandaloneLoader", + "LoadImageSequence", + "LoadImageSequenceInfo", + "OptimizedWanVAEUpscaler", + "PreviewTransparentImage", + "SaveTransparentImage", + "TransparentImageInfo", + "WanNNLatentUpscaler" + ], + { + "title_aux": "Denrakeiw Nodes [WIP]" + } + ], + "https://github.com/DiffusionWave-YT/DiffusionWave_PickResolution": [ + [ + "Blacklist_String_DiffusionWave \ud83c\udf0a", + "ImageBatchMulti_DiffusionWave", + "ImageSimpleSaver_DiffusionWave", + "Int_PickResolution_DiffusionWave \ud83c\udf0a", + "LoadImagesFromFolder_DiffusionWave", + "MergeImages_DiffusionWave", + "Order_String_Tags_DiffusionWave \ud83c\udf0a", + "OverlayImages_DiffusionWave", + "PickResolution_DiffusionWave \ud83c\udf0a", + "PromptExpression_DiffusionWave \ud83c\udf0a", + "RemoveBackgroundByColor_DiffusionWave", + "ResizeLongestSide_DiffusionWave", + "Seed__DiffusionWave \ud83c\udf0a" + ], + { + "title_aux": "DiffusionWave_PickResolution [WIP]" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-Flashback": [ + [ + "LatentExport", + "LatentImport", + "LatentLoop" + ], + { + "title_aux": "ComfyUI-Flashback" + } + ], + "https://github.com/DonutsDelivery/ComfyUI-DonutNodes": [ + [ + "ApplyLBW //Inspire", + "Donut Block Calibration", + "Donut Detailer", + "Donut Detailer 2", + "Donut Detailer 4", + "Donut Detailer LoRA 5", + "Donut Detailer XL Blocks", + "Donut Frequency Analysis", + "Donut Sharpener", + "Donut Sharpener (from reference)", + "Donut Simple Calibration", + "DonutApplyLoRAStack", + "DonutClipEncode", + "DonutFillerClip", + "DonutFillerModel", + "DonutHotReload", + "DonutLoRAStack", + "DonutMultiModelSampler", + "DonutSDXLTeaCache", + "DonutSDXLTeaCacheStats", + "DonutSampler", + "DonutSampler (Advanced)", + "DonutWidenMergeCLIP", + "DonutWidenMergeUNet", + "LoadLBW //Inspire", + "LoraBlockInfo //Inspire", + "LoraLoaderBlockWeight //Inspire", + "MakeLBW //Inspire", + "SaveLBW //Inspire", + "XY Input: Lora Block Weight //Inspire" + ], + { + "title_aux": "ComfyUI-DonutDetailer" + } + ], + "https://github.com/DrMWeigand/ComfyUI_LineBreakInserter": [ + [ + "LineBreakInserter" + ], + { + "title_aux": "ComfyUI_LineBreakInserter" + } + ], + "https://github.com/DraconicDragon/ComfyUI_e621_booru_toolkit": [ + [ + "GetAnyBooruPostAdv", + "GetBooruPost", + "TagWikiFetch" + ], + { + "title_aux": "ComfyUI e621 booru Toolkit" + } + ], + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Player": [ + [ + "MzikartPlayerNode" + ], + { + "title_aux": "ComfyUI-Mzikart-Player [WIP]" + } + ], + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Vocal": [ + [ + "MasteringCombinerNode", + "VocalCompressorNode", + "VocalDeesserNode", + "VocalDoublerNode", + "VocalEQNode", + "VocalLimiterNode", + "VocalProcessorNode", + "VocalReverbNode" + ], + { + "title_aux": "ComfyUI-Mzikart-Vocal [WIP]" + } + ], + "https://github.com/Dream-Pixels-Forge/ComfyUI-RendArt-Nodes": [ + [ + "RendArtNode", + "RendArtUltimateNode" + ], + { + "title_aux": "ComfyUI-RendArt-Nodes" + } + ], + "https://github.com/DreamsInAutumn/ComfyUI-Autumn-LLM-Nodes": [ + [ + "GeminiImageToPrompt", + "GeminiPromptBuilder", + "LLMPromptBuilder" + ], + { + "title_aux": "ComfyUI-Autumn-LLM-Nodes" + } + ], + "https://github.com/Dreamshot-io/ComfyUI-Extend-Resolution": [ + [ + "ResolutionPadding" + ], + { + "title_aux": "ComfyUI-Extend-Resolution" + } + ], + "https://github.com/ELiZswe/ComfyUI-ELiZTools": [ + [ + "ELiZMeshUVWrap" + ], + { + "title_aux": "ComfyUI-ELiZTools" + } + ], + "https://github.com/EQXai/ComfyUI_EQX": [ + [ + "CountFaces_EQX", + "Extract Filename - EQX", + "Extract LORA name - EQX", + "FaceDetectOut", + "File Image Selector", + "Load Prompt From File - EQX", + "LoadRetinaFace_EQX", + "LoraStackEQX_random", + "NSFW Detector EQX", + "SaveImage_EQX", + "WorkFlow Check" + ], + { + "title_aux": "ComfyUI_EQX" + } + ], + "https://github.com/Eagle-CN/ComfyUI-Addoor": [ + [ + "AD_AnyFileList", + "AD_BatchImageLoadFromDir", + "AD_CSVPromptStyler", + "AD_CSVReader", + "AD_CSVTranslator", + "AD_DeleteLocalAny", + "AD_FluxTrainStepMath", + "AD_HFDownload", + "AD_ImageDrawRectangleSimple", + "AD_ImageIndexer", + "AD_ImageSaver", + "AD_LoadImageAdvanced", + "AD_PromptReplace", + "AD_TextIndexer", + "AD_TextListToString", + "AD_TextSaver", + "AD_TxtToCSVCombiner", + "AD_ZipSave", + "AD_advanced-padding", + "AD_color-image", + "AD_image-concat", + "AD_image-resize", + "AD_mockup-maker", + "AD_poster-maker", + "AD_prompt-saver", + "ImageCaptioner", + "ImageResize", + "Incrementer \ud83e\udeb4", + "TextAppendNode", + "Width and height for scaling image to ideal resolution \ud83e\udeb4", + "Width and height from aspect ratio \ud83e\udeb4", + "YANC.MultilineString", + "comfyui-easy-padding", + "image concat mask" + ], + { + "author": "ComfyUI Addoor", + "description": "Save prompts to CSV file with customizable naming pattern", + "title": "ComfyUI-PromptSaver", + "title_aux": "ComfyUI-Addoor [UNSAFE]" + } + ], + "https://github.com/Elawphant/ComfyUI-MusicGen": [ + [ + "AudioLoader", + "MusicGen" + ], + { + "title_aux": "ComfyUI-MusicGen [WIP]" + } + ], + "https://github.com/ElyZeng/ComfyUI-Translator": [ + [ + "TextTranslatorNode" + ], + { + "title_aux": "ComfyUI-Translator [NAME CONFLICT]" + } + ], + "https://github.com/Elypha/ComfyUI-Prompt-Helper": [ + [ + "PromptHelper_CombineConditioning", + "PromptHelper_ConcatConditioning", + "PromptHelper_ConcatString", + "PromptHelper_EncodeMultiStringCombine", + "PromptHelper_FormatString", + "PromptHelper_LoadPreset", + "PromptHelper_LoadPresetAdvanced", + "PromptHelper_String", + "PromptHelper_StringMultiLine", + "PromptHelper_WeightedPrompt" + ], + { + "title_aux": "ComfyUI-Prompt-Helper [WIP]" + } + ], + "https://github.com/EmanueleUniroma2/ComfyUI-FLAC-to-WAV": [ + [ + "AudioToWavConverter" + ], + { + "title_aux": "ComfyUI-FLAC-to-WAV [WIP]" + } + ], + "https://github.com/EmilioPlumed/ComfyUI-Math": [ + [ + "GreatestCommonDenominator", + "LowestCommonMultiple" + ], + { + "title_aux": "ComfyUI-Math [WIP]" + } + ], + "https://github.com/EricRollei/Comfy-Metadata-System": [ + [ + "EnhancedMetadataFilterNode_V2", + "Eric_Duplicate_Image_Finder_v021", + "Eric_Image_Sorter_V13", + "Eric_Keyword_Sorter_V6", + "Eric_Metadata_Debugger_V2", + "Eric_Metadata_Entry_V2", + "Eric_Metadata_Filter_V2", + "Eric_Metadata_Query_V3", + "MetadataAwareSaveImage_v099", + "MetadataConsolidatorNode_V2", + "PngInfoDiagnosticV3", + "PngMetadataExtractorV3", + "TextOverlayNode_v04" + ], + { + "title_aux": "Comfy-Metadata-System [WIP]" + } + ], + "https://github.com/Estanislao-Oviedo/ComfyUI-CustomNodes": [ + [ + "Attention couple", + "AttentionCouple", + "LoadImageFolder", + "MakeBatchFromSingleImage", + "RegionConditionMerge", + "RegionConditionSpecPct", + "RegionConditionSpecPx" + ], + { + "title_aux": "ComfyUI-CustomNodes [NAME CONFLICT]" + } + ], + "https://github.com/ExponentialML/ComfyUI_LiveDirector": [ + [ + "LiveDirector" + ], + { + "title_aux": "ComfyUI_LiveDirector (WIP)" + } + ], + "https://github.com/Extraltodeus/Conditioning-token-experiments-for-ComfyUI": [ + [ + "Automatic wildcards", + "Conditioning (Cosine similarities)", + "Conditioning (Maximum absolute)", + "Conditioning (Maximum absolute) text inputs", + "Conditioning (Scale by absolute sum)", + "Conditioning merge clip g/l", + "Conditioning similar tokens recombine", + "Conditioning to text", + "Quick and dirty text encode", + "encode_all_tokens_SDXL" + ], + { + "title_aux": "Conditioning-token-experiments-for-ComfyUI" + } + ], + "https://github.com/FaberVS/MultiModel": [ + [ + "ActiveModel", + "DenoiseSelector", + "KSamplerPipe", + "ListSelector", + "ModelParamsPipe", + "MySwitchIndex", + "ParamsPipeUnpack", + "PromptBuilder" + ], + { + "title_aux": "MultiModel" + } + ], + "https://github.com/Fannovel16/ComfyUI-AppIO": [ + [ + "AppIO_FitResizeImage", + "AppIO_ImageInput", + "AppIO_ImageInputFromID", + "AppIO_ImageOutput", + "AppIO_IntegerInput", + "AppIO_ResizeInstanceAndPaste", + "AppIO_ResizeInstanceImageMask", + "AppIO_StringInput", + "AppIO_StringOutput" + ], + { + "title_aux": "ComfyUI-AppIO" + } + ], + "https://github.com/Filexor/File_x_dynamic_prompt2": [ + [ + "File_x_DynamicPrompt2", + "File_x_DynamicPrompt2 with States IO" + ], + { + "title_aux": "File_x_dynamic_prompt2" + } + ], + "https://github.com/FinetunersAI/comfyui-fast-group-link": [ + [ + "FastGroupLink" + ], + { + "title_aux": "Fast Group Link [WIP]" + } + ], + "https://github.com/FinetunersAI/finetuners": [ + [ + "AutoImageResize", + "GroupLink", + "VariablesInjector" + ], + { + "title_aux": "ComfyUI Finetuners [WIP]" + } + ], + "https://github.com/Firetheft/ComfyUI_Local_Image_Gallery": [ + [ + "LocalImageGalleryNode", + "SelectOriginalImageNode" + ], + { + "title_aux": "ComfyUI Local Media Manager [UNSAFE]" + } + ], + "https://github.com/Fucci-Mateo/ComfyUI-Airtable": [ + [ + "Push pose to Airtable" + ], + { + "title_aux": "ComfyUI-Airtable [WIP]" + } + ], + "https://github.com/GalactusX31/ComfyUI-FileBrowserAPI": [ + [ + "PathSelectorNode" + ], + { + "title_aux": "ComfyUI-FileBrowserAPI [UNSAFE]" + } + ], + "https://github.com/GentlemanHu/ComfyUI-Notifier": [ + [ + "GentlemanHu_Notifier" + ], + { + "title_aux": "ComfyUI-Notifier" + } + ], + "https://github.com/George0726/ComfyUI-video-accessory": [ + [ + "VideoAcc_CameraTrajectoryAdvance", + "VideoAcc_CameraTrajectoryRecam", + "VideoAcc_ImageResizeAdvanced", + "VideoAcc_ImageUpscaleVideo", + "VideoAcc_LoadImage", + "VideoAcc_LoadVideo", + "VideoAcc_SaveMP4", + "VideoAcc_imageSize" + ], + { + "title_aux": "ComfyUI-video-accessory [WIP]" + } + ], + "https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS": [ + [ + "DownloadAndLoadLivePortraitModels", + "LivePortraitProcess" + ], + { + "title_aux": "ComfyUI-LivePortraitKJ-MPS" + } + ], + "https://github.com/Grey3016/Save2Icon": [ + [ + "ConvertToIconNode" + ], + { + "title_aux": "Save2Icon" + } + ], + "https://github.com/GrindHouse66/ComfyUI-GH_Tools": [ + [ + "GHImg_Sizer", + "GHSimple_Scale" + ], + { + "title_aux": "GH Tools for ComfyUI" + } + ], + "https://github.com/GuardSkill/ComfyUI-AffineImage": [ + [ + "CanvasFourPointSelector", + "PerspectiveScreenMapper" + ], + { + "title_aux": "ComfyUI Affine Transform Mapper [WIP]" + } + ], + "https://github.com/GuusF/Comfyui_CrazyMaths": [ + [ + "AttractorAlphaMask", + "EquationAlphaMask", + "FractalNoiseAlphaMask", + "HarmonographAlphaMask", + "MathAlphaMask", + "QuasicrystalAlphaMask", + "SierpinskiAlphaMask", + "VoronoiAlphaMask" + ], + { + "title_aux": "Comfyui_CrazyMaths [WIP]" + } + ], + "https://github.com/HWDigi/Camera_Factory_Station_comfyui": [ + [ + "FactoryCameraOperator", + "FactoryColorHarmonist", + "FactoryLightingStudio", + "FactoryProductPhotographer", + "FactorySizeOptimizer" + ], + { + "title_aux": "Camera Factory Station [WIP]" + } + ], + "https://github.com/Hapseleg/ComfyUI-This-n-That": [ + [ + "Show Prompt (Hapse)", + "Show Prompt TnT", + "Simple Ratio Selector (Hapse)", + "Simple Ratio Selector TnT", + "Simple Seed Selector TnT" + ], + { + "title_aux": "This n that (Hapse)" + } + ], + "https://github.com/HuangYuChuh/ComfyUI-LLMs-Toolkit": [ + [ + "DeepSeekImageAnalyst", + "DeepSeekImageGeneration", + "DeepSeekModelLoader", + "ImagePreprocessor", + "LLM_Loader", + "OpenAICompatibleLoader", + "VideoFileUploader" + ], + { + "title_aux": "ComfyUI-LLMs-Toolkit [WIP]" + } + ], + "https://github.com/Huangcj2005/comfyui-HandDetect": [ + [ + "HandMaskGenerator" + ], + { + "title_aux": "comfyui-HandDetect" + } + ], + "https://github.com/IXIWORKS-KIMJUNGHO/comfyui-ixiworks": [ + [ + "BuildCharacterPromptNode", + "BuildPromptNode", + "JsonParserNode", + "MergeStringsNode", + "SelectIndexNode" + ], + { + "title_aux": "IxiWorks StoryBoard Nodes [WIP]" + } + ], + "https://github.com/IfnotFr/ComfyUI-Ifnot-Pack": [ + [ + "Face Crop", + "Face Crop Mouth", + "Get Beard Mask" + ], + { + "title_aux": "ComfyUI-Ifnot-Pack" + } + ], + "https://github.com/IgPoly/ComfyUI-igTools": [ + [ + "IGT_SimpleTilesCalc" + ], + { + "title_aux": "ComfyUI-igTools" + } + ], + "https://github.com/IsItDanOrAi/ComfyUI-exLoadout": [ + [ + "dropdowns", + "exCheckpointLoader", + "exLoadoutCheckpointLoader", + "exLoadoutEditCell", + "exLoadoutReadColumn", + "exLoadoutSeg", + "exLoadoutSeg2", + "exLoadoutSelector", + "exSeg", + "exSeg2" + ], + { + "title_aux": "ComfyUI-exLoadout [WIP]" + } + ], + "https://github.com/IuvenisSapiens/ComfyUI_MiniCPM-V-4": [ + [ + "DisplayText", + "MiniCPM_VQA", + "MiniCPM_VQA_Polished", + "MultipleImagesInput" + ], + { + "title_aux": "ComfyUI_MiniCPM-V-2_6-int4" + } + ], "https://github.com/IvanZhd/comfyui-codeformer": [ [ "RedBeanie_CustomImageInverter" @@ -229,6 +1950,15 @@ "title_aux": "comfyui-codeformer [WIP]" } ], + "https://github.com/Jairodaniel-17/ComfyUI-traductor-offline": [ + [ + "CLIPTextTranslateNode", + "PromptTextTranslateNode" + ], + { + "title_aux": "ComfyUI-traductor-offline" + } + ], "https://github.com/Jaxkr/comfyui-terminal-command": [ [ "Terminal" @@ -237,6 +1967,61 @@ "title_aux": "comfyui-terminal-command [UNSAFE]" } ], + "https://github.com/JiSenHua/ComfyUI-yolov5-face": [ + [ + "FaceDetect" + ], + { + "title_aux": "ComfyUI-yolov5-face [WIP]" + } + ], + "https://github.com/Jiffies-64/ComfyUI-SaveImagePlus": [ + [ + "SaveImagePlus" + ], + { + "title_aux": "ComfyUI-SaveImagePlus" + } + ], + "https://github.com/Jingwen-genies/comfyui-genies-nodes": [ + [ + "GeniesPoseEstimation", + "GeniesRGBToHSV", + "GeniesScaleFaceByKeypoints", + "GeniesSelectRGBByMask" + ], + { + "title_aux": "comfyui-genies-nodes" + } + ], + "https://github.com/JioJe/comfyui_video_BC": [ + [ + "TextBatchIndexer", + "TextBatchLoader", + "TextBatchReplace", + "TextBatchSaver", + "VideoCombine", + "VideoSequenceProcessor" + ], + { + "title_aux": "comfyui_video_BC [WIP]" + } + ], + "https://github.com/JissiChoi/ComfyUI-Jissi-List": [ + [ + "JissiFloatList", + "JissiList", + "JissiMatching", + "JissiMultiplePrompts", + "JissiText", + "JissiTextFileToListDisplay", + "JissiTextTemplate", + "JissiView" + ], + { + "title_aux": "ComfyUI-Jissi-List [WIP]" + } + ], "https://github.com/Jordach/comfy-consistency-vae": [ [ "Comfy_ConsistencyVAE" @@ -245,6 +2030,246 @@ "title_aux": "comfy-consistency-vae" } ], + "https://github.com/Junst/ComfyUI-PNG2SVG2PNG": [ + [ + "PNG2SVG2PNG" + ], + { + "title_aux": "ComfyUI-PNG2SVG2PNG" + } + ], + "https://github.com/KERRY-YUAN/ComfyUI_Python_Executor": [ + [ + "NodePython" + ], + { + "title_aux": "Python_Executor [UNSAFE]" + } + ], + "https://github.com/KY-2000/comfyui-ksampler-tester-loop": [ + [ + "AllParametersLoop", + "AllParametersLoopAdvanced", + "FloatRangeLoop", + "ParametersRangeLoop", + "SamplerLoop", + "SamplerLoopAdvanced", + "SamplerSchedulerLoop", + "SamplerSchedulerLoopAdvanced", + "SchedulerLoop" + ], + { + "title_aux": "comfyui-ksampler-tester-loop" + } + ], + "https://github.com/Karlmeister/comfyui-karlmeister-nodes-suit": [ + [ + "A_IfNotNone", + "KSamplerConfigSelector", + "KSamplerConfigSelector_Tuple", + "KSamplerConfigUnpack", + "SeedFilenameGenerator", + "SplitString", + "TextConcatenator" + ], + { + "title_aux": "comfyui-karlmeister-nodes-suit" + } + ], + "https://github.com/Karniverse/ComfyUI-Randomselector": [ + [ + "DynamicMultiSelector" + ], + { + "title_aux": "ComfyUI-Randomselector" + } + ], + "https://github.com/Kayarte/Time-Series-Nodes-for-ComfyUI": [ + [ + "DomainTimeSeriesPrep", + "TimeSeriesLoader", + "TimeSeriesPredictor" + ], + { + "title_aux": "Time Series Nodes for ComfyUI [Experimental]" + } + ], + "https://github.com/KihongK/comfyui-roysnodes": [ + [ + "CLIPMultiTextEncode", + "Create_ConditionLoRA", + "Create_ConditionLoRA_MainPrompt", + "Load_ConditionLoRA", + "OpenAI_Summarize", + "Unzip_ConditionLoRA" + ], + { + "title_aux": "ComfyUI-RoysNodes [WIP]" + } + ], + "https://github.com/KohakuBlueleaf/HDM-ext": [ + [ + "HDMCameraParam", + "HDMLoader", + "HDMTreadGamma" + ], + { + "title_aux": "HDM [WIP]" + } + ], + "https://github.com/KoreTeknology/ComfyUI-Nai-Production-Nodes-Pack": [ + [ + "Brightness Image", + "ColorMatch2", + "Contrast Image", + "Get Text", + "Image Difference", + "ImageConcatenate", + "ImageDesaturate", + "ImageExtend", + "ImageFlip", + "ImageRotate", + "LoadImageNai", + "Math Operation", + "NoteAdvanced", + "Set Text" + ], + { + "title_aux": "ComfyUI Production Nodes Pack [WIP]" + } + ], + "https://github.com/Krish-701/RK_Comfyui": [ + [ + "RK_Accumulate_Text_Multiline", + "RK_Accumulate_Text_Multiline_Numbered", + "RK_Advanced_Script_Finder", + "RK_CSV_File_State_Looper_v01", + "RK_CSV_File_State_Looper_v02", + "RK_Calc", + "RK_Concatenate_Text", + "RK_Excel_File_State_Looper", + "RK_ImageViewer", + "RK_Read_Excel_Row", + "RK_Write_Text", + "RK_seed", + "rk_save_image", + "rk_save_image_v01" + ], + { + "title_aux": "RK_Comfyui" + } + ], + "https://github.com/KurtHokke/ComfyUI_KurtHokke_Nodes": [ + [ + "AIO_Tuner_Pipe", + "ApplyCondsExtraOpts", + "BashScriptNode", + "BooleanFromPipe", + "BooleanToPipe", + "COND_ExtraOpts", + "COND_ExtraOpts_2", + "COND_SET_STRENGTH_ExtraOpts", + "ChainTextEncode", + "CkptPipe", + "CompareTorch", + "DynamicThresholding", + "DynamicThresholdingBasic", + "EmptyLatentSize", + "EmptyLatentSize64", + "ExecutePythonNode", + "ExpMath", + "ExpMathDual", + "ExpMathQuad", + "InspectNode", + "LoadUnetAndClip", + "LoraFluxParams", + "MergeExtraOpts", + "ModelPipe1", + "ModelPipe2", + "NoModel_CkptLoader", + "NoNegExtraOpts", + "Node_BOOL", + "Node_Float", + "Node_INT", + "Node_RandomRange", + "Node_String", + "Node_StringMultiline", + "SEED_ExtraOpts", + "SamplerCustomAdvanced_Pipe", + "SamplerSel", + "SchedulerSel", + "SedOnString", + "UnetClipLoraLoader", + "UnetClipLoraLoaderBasic", + "VAE_ExtraOpts", + "ViewExtraOpts", + "batchsize_ExtraOpts", + "get_lora_metadata", + "mycombine", + "re_sub_str", + "splitcond", + "str_str", + "str_str_str_str" + ], + { + "title_aux": "ComfyUI-VLMStudio" + } + ], + "https://github.com/LK-168/comfyui_LK_selfuse": [ + [ + "Adv Scheduler", + "Artist Add Prefix", + "CaompareDebug", + "EasyUse_XYPlot_Lora_Folder", + "Efficient_XYplot_LoRA_Batch", + "InspectModelArchitecture", + "LK_MaskToSEGS", + "LK_SegsAdjust", + "Mask Connected Remove", + "Mask Diff", + "Mask Filter with Rate", + "Mask Get Max", + "Pick From String", + "Print Sigma", + "Random Choice", + "Read Text File", + "SaveImageTensor", + "SaveMaskTensor", + "String Filter", + "String Filter v2", + "String Modify", + "String Modify Simple", + "String Remove Duplicate", + "String Replace 10", + "String Switch", + "String To Save", + "XYplot_Lora_lk" + ], + { + "title_aux": "comfyui_LK_selfuse" + } + ], + "https://github.com/LSDJesus/ComfyUI-Pyrite-Core": [ + [ + "PyriteModelAdapter", + "Pyrite_AdvancedUpscaler", + "Pyrite_GGUF_Loader", + "Pyrite_SimpleUpscaler", + "Pyrite_YOLO_Annotation_Exporter", + "pyrite_image_caption" + ], + { + "title_aux": "ComfyUI-Pyrite-Core [WIP]" + } + ], + "https://github.com/LZpenguin/ComfyUI-Text": [ + [ + "Add_text_by_mask" + ], + { + "title_aux": "ComfyUI-Text" + } + ], "https://github.com/LarryJane491/ComfyUI-ModelUnloader": [ [ "Model Unloader" @@ -253,6 +2278,310 @@ "title_aux": "ComfyUI-ModelUnloader" } ], + "https://github.com/Laser-one/ComfyUI-align-pose": [ + [ + "Align_Pose" + ], + { + "title_aux": "ComfyUI-align-pose" + } + ], + "https://github.com/Letz-AI/ComfyUI-LetzAI": [ + [ + "LetzAI Generator" + ], + { + "title_aux": "ComfyUI-LetzAI [UNSAFE]" + } + ], + "https://github.com/Lilien86/Comfyui_Latent_Interpolation": [ + [ + "Latent Interpolator Multi" + ], + { + "title_aux": "Comfyui_Latent_Interpolation [WIP]" + } + ], + "https://github.com/Linsoo/ComfyUI-Linsoo-Custom-Nodes": [ + [ + "LinsooAnyToText", + "LinsooEmptyLatentImage", + "LinsooLoadImage", + "LinsooMultiInputs", + "LinsooMultiOutputs", + "LinsooSaveImage" + ], + { + "title_aux": "ComfyUI-Linsoo-Custom-Nodes" + } + ], + "https://github.com/LittleTechPomp/comfyui-pixxio": [ + [ + "AutoUploadImageToPixxioCollection", + "LoadImageFromPixxioAPI" + ], + { + "title_aux": "comfyui-pixxio" + } + ], + "https://github.com/Looking-Glass/LKG-ComfyUI": [ + [ + "BridgePreview", + "LoadFolder", + "ScaleAndMaintainAspect", + "SideBySide" + ], + { + "title_aux": "LKG-ComfyUI" + } + ], + "https://github.com/LotzF/ComfyUI-Simple-Chat-GPT-completion": [ + [ + "AzureChatGptCompletion", + "ChatGPTCompletion" + ], + { + "title_aux": "ComfyUI simple ChatGPT completion [UNSAFE]" + } + ], + "https://github.com/LucianGnn/ComfyUI-Lucian": [ + [ + "AudioDurationCalculator" + ], + { + "title_aux": "ComfyUI-Lucian [WIP]" + } + ], + "https://github.com/LucianoCirino/ComfyUI-invAIder-Nodes": [ + [ + "\ud83d\udc7e Any Switch", + "\ud83d\udc7e Any Switch Large", + "\ud83d\udc7e Any Switch Medium", + "\ud83d\udc7e Any to Any", + "\ud83d\udc7e Debug Tensor Structure", + "\ud83d\udc7e Evaluate Anything", + "\ud83d\udc7e Image Crop", + "\ud83d\udc7e Image Grid", + "\ud83d\udc7e Image Overlay", + "\ud83d\udc7e Img to Gif", + "\ud83d\udc7e Int to Bits", + "\ud83d\udc7e Is Image Fully Transparent", + "\ud83d\udc7e Load Any", + "\ud83d\udc7e Load Image Batch", + "\ud83d\udc7e Number Counter", + "\ud83d\udc7e Preview Image if True", + "\ud83d\udc7e Save AnimPNG If True", + "\ud83d\udc7e Save Any", + "\ud83d\udc7e Save Image If True", + "\ud83d\udc7e Seed Controller", + "\ud83d\udc7e Signed Integer" + ], + { + "title_aux": "ComfyUI-invAIder-Nodes" + } + ], + "https://github.com/LyazS/ComfyUI-aznodes": [ + [ + "CrossFadeImageSequence", + "ImageGrayscaleAZ", + "SaveImageAZ" + ], + { + "title_aux": "ComfyUI-aznodes" + } + ], + "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes": [ + [ + "AIO_Preprocessor", + "AnimalPosePreprocessor", + "AnimeFace_SemSegPreprocessor", + "AnimeLineArtPreprocessor", + "AnyLineArtPreprocessor_aux", + "BAE-NormalMapPreprocessor", + "BinaryPreprocessor", + "CannyEdgePreprocessor", + "ColorPreprocessor", + "ControlNetAuxSimpleAddText", + "ControlNetPreprocessorSelector", + "DSINE-NormalMapPreprocessor", + "DWPreprocessor", + "DensePosePreprocessor", + "DepthAnythingPreprocessor", + "DepthAnythingV2Preprocessor", + "DiffusionEdge_Preprocessor", + "ExecuteAllControlNetPreprocessors", + "FacialPartColoringFromPoseKps", + "FakeScribblePreprocessor", + "HEDPreprocessor", + "HintImageEnchance", + "ImageGenResolutionFromImage", + "ImageGenResolutionFromLatent", + "ImageIntensityDetector", + "ImageLuminanceDetector", + "InpaintPreprocessor", + "LayeredDiffusionApply", + "LayeredDiffusionCondApply", + "LayeredDiffusionCondJointApply", + "LayeredDiffusionDecode", + "LayeredDiffusionDecodeRGBA", + "LayeredDiffusionDecodeSplit", + "LayeredDiffusionDiffApply", + "LayeredDiffusionJointApply", + "LeReS-DepthMapPreprocessor", + "LineArtPreprocessor", + "LineartStandardPreprocessor", + "M-LSDPreprocessor", + "Manga2Anime_LineArt_Preprocessor", + "MaskOptFlow", + "MediaPipe-FaceMeshPreprocessor", + "MeshGraphormer+ImpactDetector-DepthMapPreprocessor", + "MeshGraphormer-DepthMapPreprocessor", + "Metric3D-DepthMapPreprocessor", + "Metric3D-NormalMapPreprocessor", + "Metric_DepthAnythingV2Preprocessor", + "MiDaS-DepthMapPreprocessor", + "MiDaS-NormalMapPreprocessor", + "ModelMergeBlockNumber", + "ModelMergeSDXL", + "ModelMergeSDXLDetailedTransformers", + "ModelMergeSDXLTransformers", + "ModelSamplerTonemapNoiseTest", + "OneFormer-ADE20K-SemSegPreprocessor", + "OneFormer-COCO-SemSegPreprocessor", + "OpenposePreprocessor", + "PiDiNetPreprocessor", + "PixelPerfectResolution", + "PromptExpansion", + "PyraCannyPreprocessor", + "ReferenceOnlySimple", + "RenderAnimalKps", + "RenderPeopleKps", + "RescaleClassifierFreeGuidanceTest", + "SAMPreprocessor", + "SavePoseKpsAsJsonFile", + "ScribblePreprocessor", + "Scribble_PiDiNet_Preprocessor", + "Scribble_XDoG_Preprocessor", + "SemSegPreprocessor", + "ShufflePreprocessor", + "TEEDPreprocessor", + "TTPlanet_TileGF_Preprocessor", + "TTPlanet_TileSimple_Preprocessor", + "TilePreprocessor", + "TonemapNoiseWithRescaleCFG", + "UniFormer-SemSegPreprocessor", + "Unimatch_OptFlowPreprocessor", + "UpperBodyTrackingFromPoseKps", + "Zoe-DepthMapPreprocessor", + "Zoe_DepthAnythingPreprocessor" + ], + { + "author": "tstandley", + "title_aux": "ComfyUI Nodes for Inference.Core" + } + ], + "https://github.com/M4lF3s/comfy-tif-support": [ + [ + "Load TIFF", + "Save TIFF" + ], + { + "title_aux": "comfy-tif-support" + } + ], + "https://github.com/Maff3u/MattiaNodes": [ + [ + "PointsEditorOnCropped" + ], + { + "title_aux": "MattiaNodes - Points Editor On Cropped [WIP]" + } + ], + "https://github.com/Malloc-pix/comfyui-QwenVL": [ + [ + "Qwen2.5", + "Qwen2.5VL" + ], + { + "title_aux": "comfyui-QwenVL" + } + ], + "https://github.com/ManuShamil/ComfyUI_BodyEstimation_Nodes": [ + [ + "CogitareLabsPoseIDExtractor" + ], + { + "title_aux": "ComfyUI_BodyEstimation_Nodes" + } + ], + "https://github.com/MarkFreeDom168/ComfyUI-image-load-url": [ + [ + "LoadImageAndMaskFromURLOrBase64", + "LoadImageFromURLOrBase64", + "LoadMaskFromURLOrBase64" + ], + { + "title_aux": "ComfyUI-image-load-url [WIP]" + } + ], + "https://github.com/Matrix-King-Studio/ComfyUI-MoviePy": [ + [ + "AudioDurationNode", + "ImageClipNode", + "SaveVideoNode" + ], + { + "title_aux": "ComfyUI-MoviePy" + } + ], + "https://github.com/MatthewClayHarrison/ComfyUI-MetaMan": [ + [ + "MetaManEmbedAndSave", + "MetaManExtractComponents", + "MetaManLoadImage" + ], + { + "title_aux": "MetaMan - Universal AI Image Metadata Manager [UNSAFE]" + } + ], + "https://github.com/Maxim-Dey/ComfyUI-MaksiTools": [ + [ + "\ud83d\udd22 Return Boolean", + "\ud83d\udd22 Return Float", + "\ud83d\udd22 Return Integer", + "\ud83d\udd22 Return Multiline String", + "\ud83d\udd27 Time Measure Node" + ], + { + "title_aux": "ComfyUI-MS_Tools [WIP]" + } + ], + "https://github.com/Mervent/comfyui-telegram-send": [ + [ + "TelegramReply", + "TelegramSend" + ], + { + "title_aux": "comfyui-telegram-send" + } + ], + "https://github.com/Mervent/comfyui-yaml-prompt": [ + [ + "YAMLPromptParser" + ], + { + "title_aux": "comfyui-yaml-prompt" + } + ], + "https://github.com/MickeyJ/ComfyUI_mickster_nodes": [ + [ + "Image Size Scaled", + "ImageSwitchSelect" + ], + { + "title_aux": "ComfyUI_mickster_nodes [WIP]" + } + ], "https://github.com/MrAdamBlack/CheckProgress": [ [ "CHECK_PROGRESS" @@ -261,13 +2590,649 @@ "title_aux": "CheckProgress [WIP]" } ], - "https://github.com/PluMaZero/ComfyUI-SpaceFlower": [ + "https://github.com/MuAIGC/ComfyUI-DMXAPI_mmx": [ [ - "SpaceFlower_HangulPrompt", - "SpaceFlower_Prompt" + "DMXAPIClient", + "ImageEdit", + "ImageMerge", + "PreviewImageFromUrl", + "TextToImage" ], { - "title_aux": "ComfyUI-SpaceFlower" + "title_aux": "DMXAPI Nodes [WIP]" + } + ], + "https://github.com/MushroomFleet/DJZ-Nodes": [ + [ + "AnamorphicEffect", + "AspectSize", + "AspectSizeV2", + "BatchAlphaComposite", + "BatchOffset", + "BatchRangeInsert", + "BatchRangeSwap", + "BatchThief", + "BlackBarsV1", + "BlackBarsV2", + "BlackBarsV3", + "BorderCompositeAlpha", + "BracketCleaner", + "CRT_Effect_v1", + "CathodeRayEffect", + "ClassicFilmEffect", + "CombineAudio", + "DJZ-LoadLatent", + "DJZ-LoadLatentV2", + "DJZDatamosh", + "DJZDatamoshV2", + "DatasetWordcloud", + "DeadPixelEffect", + "DepthBasedPixelization", + "DinskyPlus", + "DinskyPlusV2", + "DjzDatabendingV1", + "DjzDatamoshV3", + "DjzDatamoshV4", + "DjzDatamoshV5", + "DjzDatamoshV6", + "DjzDatamoshV7", + "DjzDatamoshV8", + "FilmGateWeave", + "FilmGrainEffect", + "FilmGrainEffect_v2", + "FishEyeEffect", + "FishEyeV2", + "FractalGenerator", + "FractalGeneratorV2", + "FractalGeneratorV3", + "GSL_Filter_V1", + "HalationBloom", + "ImageInterleavedUpscaler", + "ImageInterleavedUpscalerV2", + "ImageSizeAdjuster", + "ImageSizeAdjusterV2", + "ImageSizeAdjusterV3", + "JitterEffect", + "KeyframeBasedUpscalerV1", + "KinescopeEffectV1", + "LensLeaks", + "LoadTextDirectory", + "LoadVideoDirectory", + "LoadVideoDirectoryV2", + "MotionBlending", + "NoiseFactory", + "NoiseFactoryV2", + "NoiseFactoryV3", + "NonSquarePixelsV1", + "PanavisionLensV2", + "ParametricMeshGen", + "ParametricMeshGenV2", + "PartTimer", + "ProjectFilePathNode", + "ProjectFolderPathNode", + "PromptCleaner", + "PromptCleanerV2", + "PromptDupeRemover", + "PromptDupeRemoverV2", + "PromptInject", + "PromptInjectV2", + "PromptSwap", + "RetroVideoText", + "ScreensaverGenerator", + "ScreensaverGeneratorV2", + "ScreensaverGeneratorV3", + "SequentialNumberGenerator", + "StringChaos", + "StringWeights", + "Technicolor3Strip_v1", + "Technicolor3Strip_v2", + "ThinkSeeker", + "ThreeToneStyler", + "TrianglesPlus", + "TrianglesPlusV2", + "UncleanSpeech", + "VGA_Effect_v1", + "VHS_Effect_V3", + "VHS_Effect_v1", + "VHS_Effect_v2", + "VideoBitClamp", + "VideoChromaticAberration", + "VideoCorridorV1", + "VideoCubeV1", + "VideoFilmDamage", + "VideoInterlaceFastV4", + "VideoInterlaceGANV3", + "VideoInterlaced", + "VideoInterlacedV2", + "VideoMazeV1", + "VideoMazeV2", + "VideoNoiseFactory", + "VideoPyramidV1", + "VideoRingPainter", + "VideoTemperatureV1", + "VideoText", + "VideoTextV2", + "VideoTimecode", + "VideoTrails", + "VideoTrailsV2", + "VideoVignettingV1", + "VoiceEffects", + "VoiceEffects2", + "WaveletCompose", + "WaveletDecompose", + "WinampViz", + "WinampVizV2", + "ZenakiVideoPromptV1", + "ZenkaiAmbienceAudioV1", + "ZenkaiControlPromptV1", + "ZenkaiControlPromptV2", + "ZenkaiDepthPrompt", + "ZenkaiImagePromptV1", + "ZenkaiImagePromptV2", + "ZenkaiPoseMap", + "ZenkaiPrompt", + "ZenkaiPromptV2", + "ZenkaiPromptV3", + "ZenkaiPromptV4", + "ZenkaiPromptV5", + "ZenkaiSceneVideoV1", + "ZenkaiVideoPose", + "ZenkaiWildcard", + "ZenkaiWildcardV2", + "Zenkai_IMPv1", + "djzTiling", + "djzTilingV2" + ], + { + "author": "DJZ-Nodes", + "title_aux": "DaimalyadNodes [WIP]" + } + ], + "https://github.com/MythicalChu/ComfyUI-APG_ImYourCFGNow": [ + [ + "APG_ImYourCFGNow" + ], + { + "title_aux": "ComfyUI-APG_ImYourCFGNow" + } + ], + "https://github.com/NEZHA625/ComfyUI-tools-by-dong": [ + [ + "A1111_FLUX_DATA_NODE", + "AudioDurationNode", + "AudioPathToAudioNode", + "CategorizeNode", + "CountFilesFromFolderNode", + "Data_handle_Node", + "DeepSeek_Node", + "Delay_node", + "Delete_folder_Node", + "DongShowTextNode", + "Dong_Pixelate_Node", + "Dong_Text_Node", + "DownloadNode", + "Downloader", + "FileMoveNode", + "FolderIteratorNODE", + "GetImageListFromFloderNode", + "Get_cookies_Node", + "Get_json_value_Node", + "Get_video_Node", + "HashCalculationsNode", + "HuggingFaceUploadNode", + "IMG2URLNode", + "INTNODE", + "Image2GIFNode", + "ImageDownloader", + "ImageResizeNode", + "LibLib_upload_Node", + "LogicToolsNode", + "LoraIterator", + "Notice_Node", + "PromptConcatNode", + "RandomNumbersNode", + "RenameNode", + "ResolutionNode", + "SaveTXTNode", + "SetAppidNode", + "TextToJsonNode", + "TranslateAPINode", + "Wan21_get_Node", + "Wan21_post_Node", + "ZIPwith7zNode", + "bailian_model_select_Node", + "cogvideox_flash_get_Node", + "cogvideox_flash_post_Node", + "cogview_3_flash_Node", + "doubaoNode", + "douyin_remove_watermark_Node", + "file_analysis_Node", + "find_files_by_extension_Node", + "get_video_from_url_Node", + "img2url_v2_Node", + "img_understanding_Node", + "klingai_video_Node", + "path_join_Node", + "save_img_NODE", + "set_api_Node", + "text_replace_node" + ], + { + "title_aux": "ComfyUI-tools-by-dong [UNSAFE]" + } + ], + "https://github.com/NSFW-API/ComfyUI-Embedding-Delta-Adapter": [ + [ + "ApplyEmbDeltaWANTextEmbeds", + "LoadEmbDeltaAdapter" + ], + { + "title_aux": "ComfyUI-Embedding-Delta-Adapter" + } + ], + "https://github.com/Nambi24/ComfyUI-Save_Image": [ + [ + "ExtractLastPathComponent", + "ListSubfoldersNode", + "SaveImageNode" + ], + { + "title_aux": "ComfyUI-Save_Image" + } + ], + "https://github.com/No-22-Github/ComfyUI_SaveImageCustom": [ + [ + "SaveUtility: SaveImageCustom" + ], + { + "title_aux": "ComfyUI_SaveImageCustom" + } + ], + "https://github.com/Northerner1/ComfyUI_North_Noise": [ + [ + "North_Noise" + ], + { + "title_aux": "ComfyUI_North_Noise [WIP]" + } + ], + "https://github.com/Novavision0313/ComfyUI-NVVS": [ + [ + "AllBlackMaskValidator", + "DirectionSelector", + "FullBodyDetection", + "HighlightIndexSelector", + "MaskCoverageAnalysis", + "RegexTextExtractor", + "StringSplit", + "StringStrip" + ], + { + "title_aux": "ComfyUI-NVVS [WIP]" + } + ], + "https://github.com/OSAnimate/ComfyUI-SpriteSheetMaker": [ + [ + "SpriteSheetMaker" + ], + { + "title_aux": "ComfyUI-SpriteSheetMaker [WIP]" + } + ], + "https://github.com/Oct7/ComfyUI-LaplaMask": [ + [ + "BlurMask" + ], + { + "title_aux": "ComfyUI-LaplaMask" + } + ], + "https://github.com/Omario92/ComfyUI-OmarioNodes": [ + [ + "DualEndpointColorBlendScheduler" + ], + { + "title_aux": "ComfyUI-OmarioNodes" + } + ], + "https://github.com/PATATAJEC/ComfyUI-PatatajecNodes": [ + [ + "ColorMatchFalloff", + "ColorPicker", + "PathTool", + "SequenceBlend", + "SequenceContentZoom" + ], + { + "title_aux": "Patatajec-Nodes [WIP]" + } + ], + "https://github.com/Pablerdo/ComfyUI-Sa2VAWrapper": [ + [ + "GetCaptionFromImages" + ], + { + "title_aux": "ComfyUI-Sa2VAWrapper [WIP]" + } + ], + "https://github.com/PabloGrant/comfyui-giraffe-test-panel": [ + [ + "DebugHelloNode", + "GiraffeTestPanel" + ], + { + "title_aux": "comfyui-giraffe-test-panel" + } + ], + "https://github.com/PaleBloodq/ComfyUI-HFTransformers": [ + [ + "HFTCaptioner", + "HFTClassificationSelector", + "HFTClassifier", + "HFTDepthEstimator", + "HFTLoader", + "HFTObjectDetector" + ], + { + "title_aux": "ComfyUI-HFTransformers" + } + ], + "https://github.com/PeterMikhai/Doom_Flux_NodePack": [ + [ + "DoomFluxInpaintSampler", + "DoomFluxLoader", + "DoomFluxSampler", + "DoomFluxSamplerAdvanced" + ], + { + "title_aux": "DoomFLUX Nodes [WIP]" + } + ], + "https://github.com/Poseidon-fan/ComfyUI-fileCleaner": [ + [ + "Clean input and output file" + ], + { + "title_aux": "ComfyUI-fileCleaner [UNSAFE]" + } + ], + "https://github.com/Poukpalaova/ComfyUI-FRED-Nodes": [ + [ + "FRED_Advanced_multi_parameters_panel_v1", + "FRED_AutoCropImage_Native_Ratio_v5", + "FRED_AutoCropImage_SDXL_Ratio_V3", + "FRED_AutoCropImage_SDXL_Ratio_V4", + "FRED_AutoImageTile_from_Mask_v1", + "FRED_CropFace", + "FRED_FolderSelector", + "FRED_ImageBrowser_Dress", + "FRED_ImageBrowser_Eyes_Color", + "FRED_ImageBrowser_Generic", + "FRED_ImageBrowser_Hair_Color", + "FRED_ImageBrowser_Hair_Style", + "FRED_ImageBrowser_Top", + "FRED_ImageQualityInspector", + "FRED_ImageUncropFromBBox", + "FRED_JoinImages", + "FRED_LoadImage_V2", + "FRED_LoadImage_V3", + "FRED_LoadImage_V4", + "FRED_LoadImage_V5", + "FRED_LoadImage_V6", + "FRED_LoadImage_V7", + "FRED_LoadImage_V8", + "FRED_LoadPathImagesPreview", + "FRED_LoadPathImagesPreview_v2", + "FRED_LoadRetinaFace", + "FRED_LoraInfos", + "FRED_PreviewOnly", + "FRED_Simplified_Parameters_Panel", + "FRED_TextMultiline", + "FRED_Text_to_XMP", + "FRED_photo_prompt" + ], + { + "title_aux": "ComfyUI-FRED-Nodes [WIP]" + } + ], + "https://github.com/QingLuanWithoutHeart/comfyui-file-image-utils": [ + [ + "FileManagerV2", + "IfTextEquals", + "LoadImageFromPath" + ], + { + "title_aux": "ComfyUI File/Image Utils Nodes [UNSAFE]" + } + ], + "https://github.com/Quasimondo/ComfyUI-QuasimondoNodes": [ + [ + "CPPN Generator", + "Color Match", + "Coordinates From Mask", + "Custom Shader", + "Distance Map", + "Folder Queue Manager", + "Image Blend by Mask (Batch)", + "Image Noise Generator", + "Image to Optical Flow", + "Perlin Noise Generator", + "Preview Mask", + "Random Image Generator", + "Shift Mask", + "Slit Scan", + "Spring Mesh", + "Temporal Blur", + "Video Queue Manager" + ], + { + "title_aux": "ComfyUI-QuasimondoNodes [WIP]" + } + ], + "https://github.com/QuietNoise/ComfyUI-Queue-Manager": [ + [ + "Workflow Name" + ], + { + "title_aux": "ComfyUI Queue Manager [WIP]" + } + ], + "https://github.com/RLW-Chars/comfyui-promptbymood": [ + [ + "Prompt By Mood" + ], + { + "title_aux": "comfyui-promptbymood [WIP]" + } + ], + "https://github.com/RUFFY-369/ComfyUI-FeatureBank": [ + [ + "FeatureBankAttentionProcessor" + ], + { + "title_aux": "ComfyUI-FeatureBank" + } + ], + "https://github.com/Raidez/comfyui-kuniklo-collection": [ + [ + "ApplySVG2Image", + "Properties" + ], + { + "title_aux": "Kuniklo Collection" + } + ], + "https://github.com/RamonGuthrie/ComfyUI-RBG-LoraConverter": [ + [ + "RBGLoraKeyConverterNode" + ], + { + "title_aux": "ComfyUI-RBG-LoRA-Converter [UNSAFE]" + } + ], + "https://github.com/Randomwalkforest/Comfyui-Koi-Toolkit": [ + [ + "Florence2CoordinateExtractor", + "Florence2JsonShow", + "ImageSubtraction", + "ImageSubtractionAdvanced", + "MaskExternalRectangle", + "SimpleImageStitch", + "imageStitchForICImproved", + "imageStitchForICImproved_CropBack" + ], + { + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", + "title_aux": "Comfyui-Koi-Toolkit" + } + ], + "https://github.com/RegulusAlpha/ComfyUI-DynPromptSimplified": [ + [ + "DynPromptExpand" + ], + { + "title_aux": "ComfyUI Dynamic Prompting Simplified [WIP]" + } + ], + "https://github.com/RicherdLee/comfyui-oss-image-save": [ + [ + "SaveImageOSS" + ], + { + "title_aux": "comfyui-oss-image-save [WIP]" + } + ], + "https://github.com/Rizzlord/ComfyUI-SeqTex": [ + [ + "SeqTex_Load_Mesh", + "SeqTex_Loader", + "SeqTex_Step1_ProcessMesh", + "SeqTex_Step2_GenerateCondition", + "SeqTex_Step3_GenerateTexture", + "SeqTex_Step4_SaveMesh", + "SeqTex_TensorsToImages" + ], + { + "title_aux": "ComfyUI-SeqTex" + } + ], + "https://github.com/RobbertB80/ComfyUI-SharePoint-Upload": [ + [ + "SharePointUploadNode" + ], + { + "title_aux": "ComfyUI SharePoint/OneDrive Upload Node [UNSAFE]" + } + ], + "https://github.com/RobeSantoro/ComfyUI-RobeNodes": [ + [ + "AudioWeights to FadeMask \ud83d\udc24", + "Boolean Primitive \ud83d\udc24", + "Image Input Switch \ud83d\udc24", + "Indices Generator \ud83d\udc24", + "List Image Path \ud83d\udc24", + "List Model Path \ud83d\udc24", + "List Video Path \ud83d\udc24", + "Peaks Weights Generator \ud83d\udc24" + ], + { + "title_aux": "Comfy UI Robe Nodes [UNSAFE]" + } + ], + "https://github.com/Rocky-Lee-001/ComfyUI_SZtools": [ + [ + "RSZImageTaggerSave", + "ShanZhuDepthVAEEncode", + "ShanZhuLoadImagesFromDirList", + "ShanZhuTextJoin", + "ShanZhuTextSaver", + "ShanzhuDepthVAEDecoder", + "ShanzhuLujingTIFSaver", + "ShanzhuTifSaver", + "ShanzhuVAEDecodeSmooth", + "TSZImageTaggerSave" + ], + { + "title_aux": "ComfyUI_SZtools" + } + ], + "https://github.com/RomanticQq/ComfyUI-Groudingdino-Sam": [ + [ + "grounded_sam2_cut_gaussian", + "groundingdino" + ], + { + "title_aux": "ComfyUI-Groudingdino-Sam" + } + ], + "https://github.com/RoyKillington/miscomfy-nodes": [ + [ + "VeniceUpscale" + ], + { + "title_aux": "Miscomfy Nodes [WIP]" + } + ], + "https://github.com/SKBv0/ComfyUI-RetroEngine": [ + [ + "RetroEngineNode" + ], + { + "title_aux": "Retro Engine Node for ComfyUI" + } + ], + "https://github.com/SS-snap/ComfyUI-Snap_Processing": [ + [ + "AreaCalculator", + "PyQtCanvasNode", + "Snapload" + ], + { + "title_aux": "Snap Processing for Comfyui" + } + ], + "https://github.com/SS-snap/Comfyui_SSsnap_pose-Remapping": [ + [ + "ApplyPoseScalesToFrames", + "CalculatePoseScales", + "ConvertPoseToStandardFormat", + "RenderKps" + ], + { + "title_aux": "Comfyui_SSsnap_pose-Remapping" + } + ], + "https://github.com/SXQBW/ComfyUI-Qwen3": [ + [ + "QwenVisionParser" + ], + { + "title_aux": "ComfyUI-Qwen-VLM [WIP]" + } + ], + "https://github.com/SadaleNet/ComfyUI-Prompt-To-Prompt": [ + [ + "CLIPTextEncodePromptToPrompt", + "KSamplerPromptToPrompt", + "KSamplerPromptToPromptAttentionMapLogger", + "LocalBlendLayerPresetPromptToPrompt" + ], + { + "title_aux": "ComfyUI Port for Google's Prompt-to-Prompt" + } + ], + "https://github.com/Saganaki22/ComfyUI-ytdl_nodes": [ + [ + "YTDLDownloader", + "YTDLLinksInput", + "YTDLPreview", + "YTDLPreviewAudio" + ], + { + "title_aux": "ComfyUI YTDL Nodes [WIP]" } ], "https://github.com/Sai-ComfyUI/ComfyUI-MS-Nodes": [ @@ -285,6 +3250,642 @@ "title_aux": "ComfyUI-MS-Nodes [WIP]" } ], + "https://github.com/Sakura-nee/ComfyUI_Save2Discord": [ + [ + "SendToWebhook" + ], + { + "title_aux": "ComfyUI_Save2Discord" + } + ], + "https://github.com/SanDiegoDude/ComfyUI-HiDream-Sampler": [ + [ + "HiDreamImg2Img", + "HiDreamResolutionSelect", + "HiDreamSampler", + "HiDreamSamplerAdvanced" + ], + { + "title_aux": "HiDreamSampler for ComfyUI [WIP]" + } + ], + "https://github.com/SaulQcy/comfy_saul_plugin": [ + [ + "Blend Images", + "Change the camera pose of config file", + "Compute Keypoints Similarity", + "Cutting Video", + "End Node", + "Extract .webp from Folder", + "Extract the First Frame", + "Find the most similar webp", + "Fuse People and Cigarette", + "Get Pose", + "Patch Pose to People", + "Smoking Auto Label" + ], + { + "title_aux": "comfyui-saul-plugin [WIP]" + } + ], + "https://github.com/Scaryplasmon/ComfTrellis": [ + [ + "LoadTrellisModel", + "RembgSquare", + "SaveGLBFile", + "TrellisGrid", + "TrellisInference" + ], + { + "title_aux": "ComfTrellis [WIP]" + } + ], + "https://github.com/SeedV/ComfyUI-SeedV-Nodes": [ + [ + "ALL_Model_UnLoader(SEEDV)", + "AdvancedScript", + "CheckpointLoaderSimpleShared //SeedV", + "ControlNetLoaderAdvancedShared", + "LoraLoader //SeedV", + "Script", + "Switch_Any(SEEDV)", + "TCD_Sampler(SEEDV)", + "nunchakuLoraAdapter(SEEDV)" + ], + { + "title_aux": "ComfyUI-SeedV-Nodes [UNSAFE]" + } + ], + "https://github.com/Sephrael/comfyui_caption-around-image": [ + [ + "CaptionAroundImageSmart", + "PrintPromptValues", + "PromptProvider", + "TextboxReferenceNode" + ], + { + "title_aux": "comfyui_caption-around-image" + } + ], + "https://github.com/ShahFaisalWani/ComfyUI-Mojen-Nodeset": [ + [ + "MojenAnalyzeProcessor", + "MojenAspectRatio", + "MojenImageLoader", + "MojenNSFWClassifier", + "MojenNSFWClassifierSave", + "MojenStringLength", + "MojenStyleExtractor", + "MojenTagProcessor", + "MojenTransparentBg" + ], + { + "title_aux": "ComfyUI-Mojen-Nodeset" + } + ], + "https://github.com/Shinsplat/ComfyUI-Shinsplat": [ + [ + "Clip Text Encode (Shinsplat)", + "Clip Text Encode ALT (Shinsplat)", + "Clip Text Encode SD3 (Shinsplat)", + "Clip Text Encode SDXL (Shinsplat)", + "Clip Text Encode T5 (Shinsplat)", + "Clip Tokens Encode (Shinsplat)", + "Green Box (Shinsplat)", + "Hex To Other (Shinsplat)", + "KSampler (Shinsplat)", + "Lora Loader (Shinsplat)", + "Nupoma (Shinsplat)", + "Seed (Shinsplat)", + "Shinsplat_CLIPTextEncodeFlux", + "String Interpolated (Shinsplat)", + "Sum Wrap (Shinsplat)", + "Tensor Toys (Shinsplat)", + "Test Node (Shinsplat)", + "Text To Tokens (Shinsplat)", + "Text To Tokens SD3 (Shinsplat)", + "Variables (Shinsplat)" + ], + { + "author": "Shinsplat", + "description": "", + "nickname": "shinsplat", + "title": "Shinsplat", + "title_aux": "ComfyUI-Shinsplat [UNSAFE]" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-FreeMemory": [ + [ + "FreeMemoryCLIP", + "FreeMemoryImage", + "FreeMemoryLatent", + "FreeMemoryModel", + "FreeMemoryString" + ], + { + "title_aux": "ComfyUI-FreeMemory" + } + ], + "https://github.com/Simlym/comfyui-prompt-helper": [ + [ + "PromptProcessor" + ], + { + "title_aux": "Simlym/comfyui-prompt-helper [WIP]" + } + ], + "https://github.com/Slix-M-Lestragg/comfyui-enhanced": [ + [ + "Range Iterator" + ], + { + "title_aux": "comfyui-enhanced [WIP]" + } + ], + "https://github.com/SoftMeng/ComfyUI-PIL": [ + [ + "PIL Effects (Mexx)", + "PIL Merge Image (Mexx)", + "PIL Remove Black Dots (Mexx)", + "PIL TITLE (Mexx)" + ], + { + "title_aux": "ComfyUI-PIL" + } + ], + "https://github.com/Solankimayursinh/PMSnodes": [ + [ + "InputAnalyzer", + "LoadBase64Audio", + "LoadImageBase64", + "LoadMaskBase64", + "PMSLoadText", + "PMSSendAudio", + "PMSSendImage" + ], + { + "title_aux": "PMSnodes [WIP]" + } + ], + "https://github.com/Soliton80/ComfyUI-Watermark-Detection-YOLO": [ + [ + "WatermarkDetector", + "WatermarkDetectorLoader" + ], + { + "title_aux": "Watermark Detection YOLO Custom Node [WIP]" + } + ], + "https://github.com/Sophylax/ComfyUI-ReferenceMerge": [ + [ + "InpaintRegionRestitcher", + "ReferenceInpaintComposite" + ], + { + "title_aux": "ComfyUI-ReferenceMerge" + } + ], + "https://github.com/Soppatorsk/comfyui_img_to_ascii": [ + [ + "Img_to_ASCII" + ], + { + "title_aux": "comfyui_img_to_ascii [WIP]" + } + ], + "https://github.com/SpaceWarpStudio/ComfyUI_Remaker_FaceSwap": [ + [ + "RemakerFaceSwap" + ], + { + "title_aux": "ComfyUI_Remaker_FaceSwap" + } + ], + "https://github.com/Stable-X/ComfyUI-Hi3DGen": [ + [ + "DifferenceExtractorNode", + "DownloadAndLoadStableXModel", + "IF_TrellisCheckpointLoader", + "IF_TrellisImageTo3D", + "StableXProcessImage" + ], + { + "title_aux": "ComfyUI-Hi3DGen" + } + ], + "https://github.com/StableDiffusionVN/SDVN_Comfy_node": [ + [ + "SDVM Image List Repeat", + "SDVN API chatbot", + "SDVN Any From List", + "SDVN Any Input Type", + "SDVN Any List", + "SDVN Any Repeat", + "SDVN Any Show", + "SDVN AnyDownload List", + "SDVN Apply Kontext Reference", + "SDVN Apply Style Model", + "SDVN Auto Generate", + "SDVN AutoSwitch", + "SDVN Boolean", + "SDVN CLIP Download", + "SDVN CLIP Text Encode", + "SDVN CLIPVision Download", + "SDVN Checkpoint Download", + "SDVN Checkpoint Download List", + "SDVN ControlNet Download", + "SDVN Controlnet Apply", + "SDVN Crop By Ratio", + "SDVN DALL-E Generate Image", + "SDVN Dall-E Generate Image 2", + "SDVN Dic Convert", + "SDVN DiffsynthControlNet Apply", + "SDVN DiffsynthUnionLora Apply", + "SDVN DualCLIP Download", + "SDVN Easy IPAdapter weight", + "SDVN Empty Latent Ratio", + "SDVN Exif check", + "SDVN Fill Background", + "SDVN Filter List", + "SDVN Flip Image", + "SDVN GPT Image", + "SDVN Gemini Flash 2 Image", + "SDVN Get Mask Size", + "SDVN Google Imagen", + "SDVN IC Lora Layout", + "SDVN IC Lora Layout Crop", + "SDVN IC-Light v2", + "SDVN IPAdapterModel Download", + "SDVN Image Adjust", + "SDVN Image Film Grain", + "SDVN Image HSL", + "SDVN Image Info", + "SDVN Image Layout", + "SDVN Image Repeat", + "SDVN Image Scraper", + "SDVN Image Size", + "SDVN Image White Balance", + "SDVN ImageGallery", + "SDVN Inpaint", + "SDVN Inpaint Crop", + "SDVN InstantIDModel Download", + "SDVN Join Parameter", + "SDVN Joy Caption", + "SDVN KSampler", + "SDVN Load Checkpoint", + "SDVN Load Google Sheet", + "SDVN Load Image", + "SDVN Load Image Folder", + "SDVN Load Image From List", + "SDVN Load Image Ultimate", + "SDVN Load Image Url", + "SDVN Load Lora", + "SDVN Load Text", + "SDVN LoadPinterest", + "SDVN Logic", + "SDVN Loop Inpaint Stitch", + "SDVN Lora Download", + "SDVN Lora info", + "SDVN Mask Regions", + "SDVN Mask To Transparent Color", + "SDVN Menu Option", + "SDVN Merge Flux", + "SDVN Merge SD1", + "SDVN Merge SDXL", + "SDVN Metadata Check", + "SDVN Model Export", + "SDVN Model Merge", + "SDVN Model info editor", + "SDVN ModelPatch Download", + "SDVN Overlay Images", + "SDVN Overlay Mask Color Image", + "SDVN Pipe In", + "SDVN Pipe Out", + "SDVN Pipe Out All", + "SDVN QuadrupleCLIP Download", + "SDVN QwenEdit TextEncoder", + "SDVN RGBA to RGB", + "SDVN Random Prompt", + "SDVN Run Python Code", + "SDVN Run Test", + "SDVN Save Text", + "SDVN Seed", + "SDVN Simple Any Input", + "SDVN Slider 1", + "SDVN Slider 100", + "SDVN StyleModel Download", + "SDVN Styles", + "SDVN Switch", + "SDVN Translate", + "SDVN UNET Download", + "SDVN UPscale Latent", + "SDVN Upscale Image", + "SDVN UpscaleModel Download", + "SDVN VAE Download", + "SDVN Yolo8 Seg" + ], + { + "title_aux": "SDVN Comfy node [UNSAFE]" + } + ], + "https://github.com/StaffsGull/comfyui_scene_builder": [ + [ + "CharacterBuilderNode", + "ClothingItemNode", + "ClothingMergerNode", + "EnvironmentBuilderNode", + "MergeCharactersNode", + "PhotoStyleBuilderNode", + "SceneCombinerNode" + ], + { + "title_aux": "comfyui_scene_builder [WIP]" + } + ], + "https://github.com/StartHua/Comfyui_CSDMT_CXH": [ + [ + "CSD" + ], + { + "title_aux": "Comfyui_CXH_CRM" + } + ], + "https://github.com/StartHua/Comfyui_CXH_CRM": [ + [ + "CRM" + ], + { + "title_aux": "Comfyui_CXH_CRM" + } + ], + "https://github.com/StartHua/Comfyui_CXH_joy_caption": [ + [ + "CXH_DownloadAndLoadFlorence2Model", + "CXH_Florence2Run", + "CXH_HG_Model_Load", + "CXH_IC_Lora_Florence2Run", + "CXH_IC_lora_reversal", + "CXH_Ic_lora_Joy_batch", + "CXH_Min2_6_classifiy", + "CXH_Min2_6_prompt_Run", + "CXH_MinCP3_4B_Chat", + "CXH_MinCP3_4B_Load", + "CXH_SmolVlm_Load", + "CXH_SmolVlm_Run", + "Joy_caption", + "Joy_caption_alpha_batch", + "Joy_caption_alpha_batch_Dirs", + "Joy_caption_alpha_load", + "Joy_caption_alpha_prompt", + "Joy_caption_alpha_run", + "Joy_caption_load" + ], + { + "title_aux": "Comfyui_CXH_joy_caption [SECURITY SCREENING]" + } + ], + "https://github.com/StartHua/Comfyui_Flux_Style_Ctr": [ + [ + "CXH_StyleModelApply" + ], + { + "title_aux": "Comfyui_Flux_Style_Ctr [WIP]" + } + ], + "https://github.com/StartHua/Comfyui_leffa": [ + [ + "CXH_Leffa_Viton_Load", + "CXH_Leffa_Viton_Run" + ], + { + "title_aux": "Comfyui_leffa" + } + ], + "https://github.com/StoryWalker/comfyui_flux_collection_advanced": [ + [ + "Example", + "FluxControlNetApply", + "FluxControlNetApplyPreview", + "FluxControlNetLoader", + "FluxImagePreview", + "FluxImageUpscaler", + "FluxLoader", + "FluxSamplerParameters", + "FluxTextPrompt" + ], + { + "title_aux": "comfyui_flux_collection_advanced [WIP]" + } + ], + "https://github.com/Symbiomatrix/Comfyui-Sort-Files": [ + [ + "ImageSaverSBM", + "SortControlSBM", + "StringToFloatSBM", + "VideoSeriesMergerSBM" + ], + { + "author": "SBM", + "title_aux": "Comfyui-Sort-Files" + } + ], + "https://github.com/TSFSean/ComfyUI-TSFNodes": [ + [ + "GyroOSC" + ], + { + "title_aux": "ComfyUI-TSFNodes" + } + ], + "https://github.com/Tawbaware/ComfyUI-Tawbaware": [ + [ + "Example", + "LatentBlendGradient", + "ReverseLatentBatch", + "WanVideoReCamMasterGenerateOrbitCameraEx" + ], + { + "title_aux": "ComfyUI-Tawbaware [WIP]" + } + ], + "https://github.com/Temult/TWanSigmaSampler": [ + [ + "TWanVideoSigmaSampler" + ], + { + "title_aux": "TWanVideoSigmaSampler: EXPERIMENTAL [WIP]" + } + ], + "https://github.com/ThatGlennD/ComfyUI-Image-Analysis-Tools": [ + [ + "Blur Detection", + "Clipping Analysis", + "Color Cast Detector", + "Color Harmony Analyzer", + "Color Temperature Estimator", + "ColorTemperatureEstimator", + "Contrast Analysis", + "ContrastAnalysis", + "Defocus Analysis", + "Edge Density Analysis", + "Entropy Analysis", + "Noise Estimation", + "RGB Histogram Renderer", + "Sharpness / Focus Score" + ], + { + "title_aux": "ComfyUI Image Analysis Toolkit [WIP]" + } + ], + "https://github.com/TheJorseman/IntrinsicCompositingClean-ComfyUI": [ + [ + "AlbedoHarmonizer", + "AlbedoModelLoader", + "CompleteRelighting", + "CompositeNormalsCalculator", + "DepthEstimator", + "DepthModelLoader", + "ExtractSmallBgShd", + "HarmonizedImageCreator", + "ImageResizer", + "ImageResizerNP", + "ImageResizerNPMASK", + "IntrinsicDecomposer", + "IntrinsicModelLoader", + "LightCoeffExtractor", + "LoadImagePIL", + "MaskApplier", + "MaskGenerator", + "NormalsExtractor", + "NormalsModelLoader", + "ReshadingModelLoader", + "ReshadingProcessor" + ], + { + "title_aux": "IntrinsicCompositingClean-ComfyUI" + } + ], + "https://github.com/ThisModernDay/ComfyUI-InstructorOllama": [ + [ + "OllamaInstructorNode" + ], + { + "title_aux": "ComfyUI Instructor Ollama" + } + ], + "https://github.com/TimothyCMeehan/comfyui-ck3-presets": [ + [ + "CK3ResizeImage", + "CK3SizePreset" + ], + { + "title_aux": "ComfyUI CK3 Presets" + } + ], + "https://github.com/Tr1dae/ComfyUI-CustomNodes-MVM": [ + [ + "LoadImageFromFolderMVM", + "LoadImagesFromFolderRandomMVM", + "LoadImagesFromRelativePathRandomMVM", + "LoadTextFromFolderMVM" + ], + { + "title_aux": "ComfyUI-CustomNodes-MVM" + } + ], + "https://github.com/UmutGuzel/tryvariantai-comfyui": [ + [ + "DebugMaskNode", + "FillTransparencyNode", + "MaskExpandBorder", + "MaskExpandBorderAdvanced", + "MaskFromContoursOpenCV", + "MaskToTransparentNode", + "SimpleWhiteDetectorNode", + "WhiteToTransparentNode" + ], + { + "title_aux": "ComfyUI-yolov5-face [WIP]" + } + ], + "https://github.com/Velour-Fog/comfy-latent-nodes": [ + [ + "CustomLoadLatent", + "CustomSaveLatent" + ], + { + "title_aux": "comfy-latent-nodes [UNSAFE]" + } + ], + "https://github.com/VictorLopes643/ComfyUI-Video-Dataset-Tools": [ + [ + "VideoFrameExtractor", + "VideoFrameSaver" + ], + { + "title_aux": "ComfyUI-Video-Dataset-Tools [WIP]" + } + ], + "https://github.com/Video3DGenResearch/comfyui-batch-input-node": [ + [ + "BatchImageAndPrompt", + "BatchInputCSV", + "BatchInputText" + ], + { + "title_aux": "ComfyUI Batch Input Node" + } + ], + "https://github.com/VisionExp/ve_custom_comfyui_nodes": [ + [ + "LoadImgFromInputUrl", + "assets/Asset Image", + "render3d/Render Node" + ], + { + "title_aux": "ve_custom_comfyui_nodes" + } + ], + "https://github.com/Vkabuto23/comfyui_openrouter_ollama": [ + [ + "OllamaNode", + "OllamaNodeExperimental", + "OllamaVisionNode", + "OllamaVisionNodeExperimental", + "OpenRouterNode", + "OpenRouterNodeExperimental", + "OpenRouterVisionNode", + "OpenRouterVisionNodeExperimental" + ], + { + "title_aux": "ComfyUI Custom Nodes: OpenRouter & Ollama [UNSAFE]" + } + ], + "https://github.com/Vsolon/ComfyUI-CBZ-Pack": [ + [ + "CBZ Preview Any", + "CBZCollector", + "CBZCollectorPassthrough", + "CBZUnpacker", + "CBZUnpackerPassthrough", + "DirToCBZ", + "DirToCBZPassthrough", + "ExportCBZ", + "ExportCBZPassthrough" + ], + { + "title_aux": "ComfyUI-CBZ-Pack [UNSAFE]" + } + ], + "https://github.com/WASasquatch/ASTERR": [ + [ + "ASTERR", + "SaveASTERR" + ], + { + "title_aux": "ASTERR [UNSAFE]" + } + ], "https://github.com/WSJUSA/Comfyui-StableSR": [ [ "ColorFix", @@ -298,12 +3899,486 @@ "title_aux": "pre-comfyui-stablsr" } ], - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AnyText": [ + "https://github.com/WaiyanLing/ComfyUI-Tracking": [ [ - "AnyTextNode_Zho" + "WorkflowStats" ], { - "title_aux": "ComfyUI-AnyText\uff08WIP\uff09" + "title_aux": "ComfyUI-Tracking [WIP]" + } + ], + "https://github.com/WilliamStanford/ComfyUI-VisualLabs": [ + [ + "CreateFadeMaskAdvancedVL", + "PointStringFromFloatArray", + "RescaleFloatArray", + "StringFromFloatArray" + ], + { + "title_aux": "visuallabs_comfyui_nodes" + } + ], + "https://github.com/WozStudios/ComfyUI-WozNodes": [ + [ + "CreateImageBatch", + "ImageBatchSelectByMask", + "ImageBatchTrim", + "ImageBatcherByIndexProV2" + ], + { + "title_aux": "ComfyUI-WozNodes" + } + ], + "https://github.com/XiaoHeiziGGG/ComfyUI-Gemini-Kontext": [ + [ + "GeminiBatchTranslator", + "GeminiImageAnalyzer", + "GeminiKontextOptimizer", + "GeminiTranslator" + ], + { + "title_aux": "ComfyUI-Gemini-Kontext [WIP]" + } + ], + "https://github.com/XiaoHeiziGGG/ComfyUI-GeminiTranslator": [ + [ + "GeminiBatchTranslator", + "GeminiTranslator" + ], + { + "title_aux": "ComfyUI Gemini Translator [WIP]" + } + ], + "https://github.com/Yeonri/ComfyUI_LLM_Are_You_Listening": [ + [ + "AYL_API_Node", + "AYL_GGUF_Node", + "AYL_Node" + ], + { + "title_aux": "ComfyUI_LLM_Are_You_Listening [WIP]" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Step1X-Edit": [ + [ + "GenerateEditedImage", + "LoadAEModel", + "LoadDITModel", + "LoadImagePath", + "LoadQwenVLModel", + "Prompt", + "SaveEditedImage" + ], + { + "title_aux": "ComfyUI-Step1X-Edit [NAME CONFLICT]" + } + ], + "https://github.com/Yukinoshita-Yukinoe/ComfyUI-KontextOfficialNode": [ + [ + "KontextImageEditingOfficialAPI_Max", + "KontextTextToImageOfficialAPI_Max" + ], + { + "title_aux": "ComfyUI-KontextOfficialNode" + } + ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AuraSR-ZHO": [ + [ + "AuraSR_Lterative_Zho", + "AuraSR_ModelLoader_Zho", + "AuraSR_Zho" + ], + { + "title_aux": "ComfyUI-AuraSR-ZHO" + } + ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": [ + [ + "BiRefNet_ModelLoader_Zho", + "BiRefNet_Zho" + ], + { + "title_aux": "ComfyUI-BiRefNet-ZHO [BROKEN]" + } + ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": [ + [ + "ConcatText_Zho", + "DisplayText_Zho", + "Gemini_15P_API_S_Advance_Zho", + "Gemini_15P_API_S_Chat_Advance_Zho", + "Gemini_API_Chat_Zho", + "Gemini_API_S_Chat_Zho", + "Gemini_API_S_Vsion_ImgURL_Zho", + "Gemini_API_S_Zho", + "Gemini_API_Vsion_ImgURL_Zho", + "Gemini_API_Zho", + "Gemini_FileUpload_API_S_Zho", + "Gemini_File_API_S_Zho" + ], + { + "title_aux": "ComfyUI-Gemini [NAME CONFLICT]" + } + ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PuLID-ZHO": [ + [ + "PuLID_Zho" + ], + { + "title_aux": "ComfyUI-PuLID-ZHO [WIP]" + } + ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Wan-ZHO": [ + [ + "WanT2V_Generation_Zho", + "WanT2V_ModelLoader_Zho" + ], + { + "title_aux": "ComfyUI Wan2.1 [WIP]" + } + ], + "https://github.com/ZenAI-Vietnam/ComfyUI-gemini-IG": [ + [ + "Gemini Image Generation", + "Gemini Text Generation" + ], + { + "title_aux": "ComfyUI-gemini-IG" + } + ], + "https://github.com/ZenAI-Vietnam/ComfyUI_InfiniteYou": [ + [ + "FaceCombine", + "FaceSwap_InfiniteYou", + "InfiniteYouApply" + ], + { + "title_aux": "ComfyUI_InfiniteYou [NAME CONFLICT]" + } + ], + "https://github.com/a-One-Fan/ComfyUI-Blenderesque-Nodes": [ + [ + "BlenderAlphaConvert", + "BlenderAlphaOver", + "BlenderBlackbody", + "BlenderBokehImage", + "BlenderBrickTexture", + "BlenderBrightnessContrast", + "BlenderCheckerTexture", + "BlenderClamp", + "BlenderCombineColor", + "BlenderCombineXYZ", + "BlenderConvertColorspace", + "BlenderCornerPin", + "BlenderCrop", + "BlenderDisplace", + "BlenderExposure", + "BlenderFlip", + "BlenderGaborTexture", + "BlenderGamma", + "BlenderGradientTexture", + "BlenderHueSaturationValue", + "BlenderInvertColor", + "BlenderLensDistortion", + "BlenderMagicTexture", + "BlenderMapRange", + "BlenderMapUV", + "BlenderMath", + "BlenderMix", + "BlenderMovieDistortion", + "BlenderNoiseTexture", + "BlenderRGB", + "BlenderRGBtoBW", + "BlenderRotate", + "BlenderScale", + "BlenderSeparateColor", + "BlenderSeparateXYZ", + "BlenderSetAlpha", + "BlenderTonemap", + "BlenderTransform", + "BlenderTranslate", + "BlenderUV", + "BlenderValue", + "BlenderVectorMath", + "BlenderVoronoiTexture", + "BlenderWaveTexture", + "BlenderWavelength", + "BlenderWhiteNoiseTexture", + "BlenderZCombine" + ], + { + "title_aux": "ComfyUI-Blenderesque-Nodes [WIP]" + } + ], + "https://github.com/a-und-b/ComfyUI_Output_as_Input": [ + [ + "OutputAsInput" + ], + { + "title_aux": "ComfyUI_Output_as_Input" + } + ], + "https://github.com/aa-parky/pipemind-comfyui": [ + [ + "BatchImageLoadInput", + "BatchImageLoadOutput", + "BooleanSwitchAny", + "EnhancedKeywordPromptComposer", + "KeywordPromptComposer", + "LoadTxtFile", + "PipemindDisplayAny", + "PipemindFlux2MAspectRatio", + "PipemindLoraLoader", + "PipemindMultilineTextInput", + "PipemindSDXL15AspectRatio", + "PipemindSaveImageWTxt", + "PipemindShowText", + "PipemindShowTextFind", + "PipemindTokenCounter", + "RandomLineFromDropdown", + "SelectLineFromDropdown", + "SimplePromptCombiner" + ], + { + "title_aux": "pipemind-comfyui" + } + ], + "https://github.com/abuzreq/ComfyUI-Model-Bending": [ + [ + "Add Noise Module (Bending)", + "Add Scalar Module (Bending)", + "Compute PCA", + "ConditioningApplyOperation", + "Custom Code Module", + "Dilation Module (Bending)", + "Erosion Module (Bending)", + "Gradient Module (Bending)", + "HSpace Bending", + "Latent Operation (Add Noise)", + "Latent Operation (Add Scalar)", + "Latent Operation (Custom)", + "Latent Operation (Multiply Scalar)", + "Latent Operation (Rotate)", + "Latent Operation (Threshold)", + "Latent Operation To Module", + "LatentApplyOperationCFGToStep", + "LoRA Bending", + "Model Bending", + "Model Bending (SD Layers)", + "Model Inspector", + "Model VAE Bending", + "Model VAE Inspector", + "Multiply Scalar Module (Bending)", + "NoiseVariations", + "Rotate Module (Bending)", + "Scale Module (Bending)", + "Sobel Module (Bending)", + "Threshold Module (Bending)", + "Visualize Feature Map" + ], + { + "title_aux": "ComfyUI Model Bending [UNSAFE]" + } + ], + "https://github.com/adithis197/ComfyUI-Caption_to_audio": [ + [ + "TextToMusicGenAudio" + ], + { + "title_aux": "ComfyUI-Caption_to_audio [WIP]" + } + ], + "https://github.com/adithis197/ComfyUI-multimodal-CaptionToVideoGen": [ + [ + "CaptionToMusicPromptLLM" + ], + { + "title_aux": "ComfyUI-multimodal-CaptionToVideoGen [WIP]" + } + ], + "https://github.com/aesethtics/ComfyUI-OpenPoser": [ + [ + "OpenPoser" + ], + { + "title_aux": "ComfyUI-OpenPoser [WIP]" + } + ], + "https://github.com/ahmedbana/File-Rename": [ + [ + "AdvancedFileRenameNode", + "FileRenameNode" + ], + { + "title_aux": "File-Rename [UNSAFE]" + } + ], + "https://github.com/ahmedbana/json-creator": [ + [ + "JsonCreator" + ], + { + "title_aux": "json-creator [WIP]" + } + ], + "https://github.com/ahmedbana/upload-to-azure": [ + [ + "AzureBlobUploader" + ], + { + "title_aux": "upload-to-azure" + } + ], + "https://github.com/aiden1020/ComfyUI_Artcoder": [ + [ + "ArtCoder" + ], + { + "title_aux": "ComfyUI_Artcoder [WIP]" + } + ], + "https://github.com/ainanoha/etm_comfyui_nodes": [ + [ + "ETM_LoadImageFromLocal", + "ETM_SaveImage" + ], + { + "title_aux": "etm_comfyui_nodes" + } + ], + "https://github.com/akatz-ai/ComfyUI-Execution-Inversion": [ + [ + "AccumulateNode", + "AccumulationGetItemNode", + "AccumulationGetLengthNode", + "AccumulationHeadNode", + "AccumulationSetItemNode", + "AccumulationTailNode", + "AccumulationToListNode", + "DebugPrint", + "ExecutionBlocker", + "ForLoopClose", + "ForLoopOpen", + "GetFloatFromList", + "GetIntFromList", + "IntegerListGeneratorNode", + "LazyConditional", + "LazyIndexSwitch", + "LazyMixImages", + "LazySwitch", + "ListToAccumulationNode", + "MakeListNode", + "WhileLoopClose", + "WhileLoopOpen", + "_ForLoopCounter" + ], + { + "title_aux": "ComfyUI-Execution-Inversion" + } + ], + "https://github.com/aklevecz/ComfyUI-AutoPrompt": [ + [ + "OllamaChat", + "OllamaModelLister", + "OllamaPromptGenerator", + "TextDisplay" + ], + { + "title_aux": "ComfyUI-AutoPrompt [WIP]" + } + ], + "https://github.com/alchemist-software-engineer/ComfyUI-Affine-Transform": [ + [ + "AffineTransform" + ], + { + "title_aux": "Affine Transform ComfyUI Node [WIP]" + } + ], + "https://github.com/alchemist-software-engineer/ComfyUI-Simple-Image-Tools": [ + [ + "GetMaskFromAlpha", + "GetQuadrilateralOutfit" + ], + { + "title_aux": "ComfyUI-Simple-Image-Tools [WIP]" + } + ], + "https://github.com/alexgenovese/ComfyUI-Diffusion-4k": [ + [ + "FluxImageGenerator" + ], + { + "title_aux": "ComfyUI-Diffusion-4k [WIP]" + } + ], + "https://github.com/alexgenovese/ComfyUI-Reica": [ + [ + "ReicaGCPReadImageNode", + "ReicaGCPWriteImageNode", + "ReicaHTTPCustomRequest", + "ReicaHTTPNotification", + "ReicaInsertAnythingNode", + "ReicaLoadLoopImagesFromURLs", + "ReicaLoadLoopImagesFromURLsSkipErrors", + "ReicaSmartResizer", + "ReicaTextImageDisplay", + "ReicaTryOffDiffGenerator", + "ReicaTryOffDiffLoader", + "ReicaURLImageLoader" + ], + { + "title_aux": "ComfyUI-Reica" + } + ], + "https://github.com/alexisrolland/ComfyUI-AuraSR": [ + [ + "LoadAuraSR", + "RunAuraSR" + ], + { + "title_aux": "alexisrolland/ComfyUI-AuraSR" + } + ], + "https://github.com/alistairallan/ComfyUI-skin-retouch": [ + [ + "SkinRetouching" + ], + { + "title_aux": "ComfyUI-skin-retouch" + } + ], + "https://github.com/alt-key-project/comfyui-dream-painter": [ + [ + "Bitmap AND [DPaint]", + "Bitmap Crop Center [DPaint]", + "Bitmap Dimensions [DPaint]", + "Bitmap Edge Detect [DPaint]", + "Bitmap Expand Canvas [DPaint]", + "Bitmap Invert [DPaint]", + "Bitmap OR [DPaint]", + "Bitmap Resize [DPaint]", + "Bitmap Rotate [DPaint]", + "Bitmap To Image & Mask [DPaint]", + "Bitmap XOR [DPaint]", + "Draw Shape As Bitmap [DPaint]", + "Image To Bitmap [DPaint]", + "Random Number Generator [DPaint]", + "Shape Center & Fit [DPaint]", + "Shape Combiner [DPaint]", + "Shape Copycat Tool [DPaint]", + "Shape Find Bounds [DPaint]", + "Shape Flip [DPaint]", + "Shape Grid [DPaint]", + "Shape Resize [DPaint]", + "Shape Rotate [DPaint]", + "Shape of Circular Rays [DPaint]", + "Shape of N-Polygon [DPaint]", + "Shape of Rectangle [DPaint]", + "Shape of Star [DPaint]" + ], + { + "title_aux": "Dream Painter [WIP]" } ], "https://github.com/alt-key-project/comfyui-dream-video-batches": [ @@ -346,6 +4421,249 @@ "title_aux": "Dream Project Video Batches [WIP]" } ], + "https://github.com/amamisonlyuser/MixvtonComfyui": [ + [ + "CXH_Leffa_Viton_Load", + "CXH_Leffa_Viton_Run" + ], + { + "title_aux": "MixvtonComfyui [WIP]" + } + ], + "https://github.com/ammahmoudi/ComfyUI-Legendary-Nodes": [ + [ + "Legendary Dataset Saver", + "Legendary Image URL Loader", + "Legendary Lora URL Loader" + ], + { + "title_aux": "ComfyUI-Legendary-Nodes" + } + ], + "https://github.com/animEEEmpire/ComfyUI-Animemory-Loader": [ + [ + "AnimemoryNode" + ], + { + "title_aux": "ComfyUI-Animemory-Loader" + } + ], + "https://github.com/apeirography/ModelCopyNode": [ + [ + "ModelCopyNode" + ], + { + "title_aux": "Model Copy Node for ComfyUI [UNSAFE]" + } + ], + "https://github.com/apetitbois/nova_utils": [ + [ + "floatList2Float", + "jsonParser" + ], + { + "title_aux": "nova_utils" + } + ], + "https://github.com/aria1th/ComfyUI-SkipCFGSigmas": [ + [ + "CFGControl_SKIPCFG" + ], + { + "title_aux": "ComfyUI-SkipCFGSigmas" + } + ], + "https://github.com/aria1th/ComfyUI-camietagger-onnx": [ + [ + "CamieTagger" + ], + { + "title_aux": "ComfyUI-camietagger-onnx" + } + ], + "https://github.com/artem-konevskikh/comfyui-split-merge-video": [ + [ + "VideoMerger", + "VideoSplitter" + ], + { + "title_aux": "ComfyUI Video Processing Nodes [WIP]" + } + ], + "https://github.com/artifyfun/ComfyUI-JS": [ + [ + "JavascriptExecutor", + "JavascriptExecutorMultiOutput" + ], + { + "title_aux": "ComfyUI-JS [UNSAFE]" + } + ], + "https://github.com/artisanalcomputing/ComfyUI-Custom-Nodes": [ + [ + "RandomVideoMixer", + "SpotifyCanvasGenerator", + "VideoWriter" + ], + { + "title_aux": "artcpu-custom-nodes" + } + ], + "https://github.com/ashishsaini/comfyui-segment-clothing-sleeves": [ + [ + "segformer_b2_sleeves" + ], + { + "title_aux": "comfyui_segformer_b2_sleeves" + } + ], + "https://github.com/ashllay/ComfyUI_MoreComfy": [ + [ + "MC Alter Seed", + "MC Get Image Min Max", + "MC Get Image Size", + "MC Multi Concat", + "MC Multi Concat(Advanced)", + "MC Noise", + "MC Set Tile Size", + "MC Switch Image", + "MC Switch Latent", + "MC Switch Model", + "MC Switch Noise", + "MC Switch Seed", + "MC Switch String", + "MC Swtich Latent(Multi)", + "MC Swtich Sampler(Multi)", + "MC Swtich Sigmas(Multi)" + ], + { + "title_aux": "ComfyUI_MoreComfy" + } + ], + "https://github.com/avocadori/ComfyUI-AudioAmplitudeConverter": [ + [ + "NormalizeAmpToFloatNode" + ], + { + "title_aux": "ComfyUI Audio Amplitude Converter [WIP]" + } + ], + "https://github.com/ayaoayaoayaoaya/ComfyUI-KLUT-DeepSeek-API": [ + [ + "KLUTDeepSeekAPI" + ], + { + "title_aux": "ComfyUI-KLUT-DeepSeek-API [WIP]" + } + ], + "https://github.com/babydjac/comfyui-grok-ponyxl": [ + [ + "GrokPonyXLPrompter" + ], + { + "title_aux": "comfyui-grok-ponyxl [WIP]" + } + ], + "https://github.com/backearth1/Comfyui-MiniMax-Video": [ + [ + "ImageToPrompt", + "MiniMaxAIAPIClient", + "MiniMaxImage2Video", + "MiniMaxImageGenerator", + "MiniMaxPreviewVideo" + ], + { + "title_aux": "Comfyui-MiniMax-Video [WIP]" + } + ], + "https://github.com/baicai99/ComfyUI-FrameSkipping": [ + [ + "FrameSelector", + "FrameSkipping", + "FrameTruncating", + "IntOperationsNode", + "MaskFrameSkipping", + "MaskGenerator", + "MaskSelector" + ], + { + "title_aux": "ComfyUI-FrameSkipping" + } + ], + "https://github.com/bananasss00/Comfyui-PyExec": [ + [ + "PyExec", + "PyExec_Output", + "PyExec_OutputIsList", + "PyExec_OutputIsValue" + ], + { + "author": "SeniorPioner", + "description": "Comfyui runtime python code execution", + "nickname": "PyExec", + "title": "PyExec", + "title_aux": "Comfyui-PyExec [UNSAFE]" + } + ], + "https://github.com/bandido37/comfyui-kaggle-local-save": [ + [ + "KaggleLocalSaveNode" + ], + { + "title_aux": "Kaggle ComfyUI Local Save Node [WIP]" + } + ], + "https://github.com/benda1989/WaterMarkRemover_ComfyUI": [ + [ + "Remover", + "VideoRemover" + ], + { + "title_aux": "Comfyui lama remover [WIP]" + } + ], + "https://github.com/benmizrahi/ComfyGCS": [ + [ + "LoadImageGCS", + "SaveImageGCS" + ], + { + "title_aux": "ComfyGCS [WIP]" + } + ], + "https://github.com/beyastard/ComfyUI_BeySoft": [ + [ + "BeySoft" + ], + { + "title_aux": "ComfyUI_BeySoft" + } + ], + "https://github.com/bheins/ComfyUI-glb-to-stl": [ + [ + "GLBToSTLNode" + ], + { + "title_aux": "ComfyUI-glb-to-stl [WIP]" + } + ], + "https://github.com/bikiam/ComfyUi_WhisperGTranslate": [ + [ + "GoogleTranslateNode", + "WhisperAudioTranslateNode" + ], + { + "title_aux": "ComfyUi_WhisperGTranslate" + } + ], + "https://github.com/bikiam/Comfyui_AudioRecoder": [ + [ + "BikiAudioRecorderNode" + ], + { + "title_aux": "Comfyui_AudioRecoder" + } + ], "https://github.com/birnam/ComfyUI-GenData-Pack": [ [ "Checkpoint From String \ud83d\udc69\u200d\ud83d\udcbb", @@ -353,14 +4671,30 @@ "Checkpoint Selector Stacker \ud83d\udc69\u200d\ud83d\udcbb", "Checkpoint Selector \ud83d\udc69\u200d\ud83d\udcbb", "Checkpoint to String \ud83d\udc69\u200d\ud83d\udcbb", + "Crop Recombine \ud83d\udc69\u200d\ud83d\udcbb", + "Crop|IP|Inpaint \ud83d\udc69\u200d\ud83d\udcbb", + "Crop|IP|Inpaint|SDXL \ud83d\udc69\u200d\ud83d\udcbb", "Decode GenData \ud83d\udc69\u200d\ud83d\udcbb", "Encode GenData \ud83d\udc69\u200d\ud83d\udcbb", "GenData Stacker \ud83d\udc69\u200d\ud83d\udcbb", + "IPAdapterApply", + "IPAdapterApplyEncoded", + "IPAdapterApplyFaceID", + "IPAdapterBatchEmbeds", + "IPAdapterEncoder", + "IPAdapterLoadEmbeds", + "IPAdapterModelLoader", + "IPAdapterSaveEmbeds", + "IPAdapterTilesMasked", + "InsightFaceLoader", "LoRA Stack to String \ud83d\udc69\u200d\ud83d\udcbb", "LoRA Stacker From Prompt \ud83d\udc69\u200d\ud83d\udcbb", "Load Checkpoints From File \ud83d\udc69\u200d\ud83d\udcbb", "Load GenData From Dir \ud83d\udc69\u200d\ud83d\udcbb", "Parse GenData \ud83d\udc69\u200d\ud83d\udcbb", + "PrepImageForClipVision", + "PrepImageForInsightFace", + "Provide GenData \ud83d\udc69\u200d\ud83d\udcbb", "Save Image From GenData \ud83d\udc69\u200d\ud83d\udcbb", "VAE From String \ud83d\udc69\u200d\ud83d\udcbb", "VAE to String \ud83d\udc69\u200d\ud83d\udcbb", @@ -370,23 +4704,536 @@ "title_aux": "Gen Data Tester [WIP]" } ], - "https://github.com/blepping/ComfyUI-sonar": [ + "https://github.com/bleash-dev/Comfyui-FileSytem-Manager": [ [ - "SamplerSonarEuler", - "SamplerSonarEulerA" + "custom_nodes", + "web_extensions" ], { - "title_aux": "ComfyUI-sonar (WIP)" + "title_aux": "Comfyui-FileSytem-Manager" + } + ], + "https://github.com/blepping/comfyui_dum_samplers": [ + [ + "BatchMergeSampler", + "ButcherTableauSampler", + "CacheAwareEulerSampler", + "CyclePaddingSampler", + "HistorySampler", + "LetMeHelpYouSampler", + "PingPongSampler", + "RestlessScheduler", + "SimilarityAncestralEulerSampler", + "SimilarityClampEulerSampler" + ], + { + "title_aux": "ComfyUI 'dum' samplers [WIP]" + } + ], + "https://github.com/blueraincoatli/ComfyUI-Model-Cleaner": [ + [ + "InteractiveModelCleanerNode", + "ModelScannerNode" + ], + { + "title_aux": "ComfyModelCleaner [WIP]" + } + ], + "https://github.com/bmad4ever/comfyui_bmad_nodes": [ + [ + "AdaptiveThresholding", + "Add String To Many", + "AddAlpha", + "AdjustRect", + "AnyToAny", + "BoundingRect (contours)", + "BuildColorRangeAdvanced (hsv)", + "BuildColorRangeHSV (hsv)", + "CLAHE", + "CLIPEncodeMultiple", + "CLIPEncodeMultipleAdvanced", + "ChameleonMask", + "CheckpointLoader (dirty)", + "CheckpointLoaderSimple (dirty)", + "Color (RGB)", + "Color (hexadecimal)", + "Color Clip", + "Color Clip (advanced)", + "Color Clip ADE20k", + "ColorDictionary", + "ColorDictionary (custom)", + "Conditioning (combine multiple)", + "Conditioning (combine selective)", + "Conditioning Grid (cond)", + "Conditioning Grid (string)", + "Conditioning Grid (string) Advanced", + "Contour To Mask", + "Contours", + "ControlNetHadamard", + "ControlNetHadamard (manual)", + "ConvertImg", + "CopyMakeBorder", + "CreateRequestMetadata", + "DistanceTransform", + "Draw Contour(s)", + "EqualizeHistogram", + "ExtendColorList", + "ExtendCondList", + "ExtendFloatList", + "ExtendImageList", + "ExtendIntList", + "ExtendLatentList", + "ExtendMaskList", + "ExtendModelList", + "ExtendStringList", + "FadeMaskEdges", + "Filter Contour", + "FindComplementaryColor", + "FindThreshold", + "FlatLatentsIntoSingleGrid", + "Framed Mask Grab Cut", + "Framed Mask Grab Cut 2", + "FromListGet1Color", + "FromListGet1Cond", + "FromListGet1Float", + "FromListGet1Image", + "FromListGet1Int", + "FromListGet1Latent", + "FromListGet1Mask", + "FromListGet1Model", + "FromListGet1String", + "FromListGetColors", + "FromListGetConds", + "FromListGetFloats", + "FromListGetImages", + "FromListGetInts", + "FromListGetLatents", + "FromListGetMasks", + "FromListGetModels", + "FromListGetStrings", + "Get Contour from list", + "Get Models", + "Get Prompt", + "Hue Mode (InRange hsv)", + "HypernetworkLoader (dirty)", + "ImageBatchToList", + "InRange (hsv)", + "Inpaint", + "Input/String to Int Array", + "KMeansColor", + "Load 64 Encoded Image", + "LoraLoader (dirty)", + "MaskGrid N KSamplers Advanced", + "MaskOuterBlur", + "Merge Latent Batch Gridwise", + "MonoMerge", + "MorphologicOperation", + "MorphologicSkeletoning", + "NaiveAutoKMeansColor", + "OtsuThreshold", + "RGB to HSV", + "Rect Grab Cut", + "Remap", + "RemapBarrelDistortion", + "RemapFromInsideParabolas", + "RemapFromQuadrilateral (homography)", + "RemapInsideParabolas", + "RemapInsideParabolasAdvanced", + "RemapPinch", + "RemapReverseBarrelDistortion", + "RemapStretch", + "RemapToInnerCylinder", + "RemapToOuterCylinder", + "RemapToQuadrilateral", + "RemapWarpPolar", + "Repeat Into Grid (image)", + "Repeat Into Grid (latent)", + "RequestInputs", + "SampleColorHSV", + "Save Image (api)", + "SeamlessClone", + "SeamlessClone (simple)", + "SetRequestStateToComplete", + "String", + "String to Float", + "String to Integer", + "ToColorList", + "ToCondList", + "ToFloatList", + "ToImageList", + "ToIntList", + "ToLatentList", + "ToMaskList", + "ToModelList", + "ToStringList", + "UnGridify (image)", + "VAEEncodeBatch" + ], + { + "title_aux": "Bmad Nodes [UNSAFE]" + } + ], + "https://github.com/bmgjet/comfyui-powerlimit": [ + [ + "SetPowerLimitNode" + ], + { + "title_aux": "ComfyUI GPU Power Limit Node" + } + ], + "https://github.com/boricuapab/ComfyUI-Bori-KontextPresets": [ + [ + "Bori Kontext Presets" + ], + { + "title_aux": "ComfyUI-Bori-KontextPresets [WIP]" + } + ], + "https://github.com/borisfaley/ComfyUI-ACES-EXR-OCIO": [ + [ + "ACESEXRSaveOCIO" + ], + { + "title_aux": "ComfyUI-ACES-EXR-OCIOr [UNSAFE]" + } + ], + "https://github.com/brace-great/comfyui-eim": [ + [ + "EncryptImage" + ], + { + "title_aux": "comfyui-eim" + } + ], + "https://github.com/brace-great/comfyui-mc": [ + [ + "IncrementCounterOnMatch" + ], + { + "title_aux": "comfyui-mc [WIP]" + } + ], + "https://github.com/brandonkish/comfyUI-extractable-text": [ + [ + "LoRA Testing Node", + "Load Image Easy", + "Multi LoRA Test Node", + "Ollama Connectivity Data", + "Save Image Easy", + "Save\\Overwrite Image", + "Save\\Overwrite Text File", + "Saveverwrite Image", + "Saveverwrite Text File", + "Single LoRA Test Node" + ], + { + "title_aux": "comfyUI-extractable-text [WIP]" + } + ], + "https://github.com/broumbroum/comfyui-time-system": [ + [ + "DayTimeNode", + "HourTimeNode", + "MinuteTimeNode", + "MonthTimeNode", + "SecondTimeNode", + "YearTimeNode" + ], + { + "title_aux": "comfyui-time-system [WIP]" + } + ], + "https://github.com/bruce007lee/comfyui-cleaner": [ + [ + "cleaner" + ], + { + "title_aux": "comfyui-cleaner" + } + ], + "https://github.com/bruce007lee/comfyui-tiny-utils": [ + [ + "CropImageByMask", + "FaceAlign", + "FaceAlignImageProcess", + "FaceAlignMaskProcess", + "ImageFillColorByMask", + "ImageSAMMask", + "ImageTransposeAdvance", + "LoadImageAdvance" + ], + { + "title_aux": "comfyui-tiny-utils" + } + ], + "https://github.com/brycegoh/comfyui-custom-nodes": [ + [ + "CombineTwoImageIntoOne", + "FillMaskedArea", + "MaskAreaComparisonSegment", + "OCRAndMask" + ], + { + "title_aux": "brycegoh/comfyui-custom-nodes" + } + ], + "https://github.com/bulldog68/ComfyUI_FMJ": [ + [ + "FMJCreaPrompt", + "FMJKontext" + ], + { + "title_aux": "ComfyUI_FMJ [WIP]" + } + ], + "https://github.com/c0ffymachyne/ComfyUI_SignalProcessing": [ + [ + "SignalProcessingBaxandall3BandEQ", + "SignalProcessingBaxandallEQ", + "SignalProcessingCompressor", + "SignalProcessingConvolutionReverb", + "SignalProcessingFilter", + "SignalProcessingHarmonicsEnhancer", + "SignalProcessingLimiter", + "SignalProcessingLoadAudio", + "SignalProcessingLoudness", + "SignalProcessingMixdown", + "SignalProcessingNormalizer", + "SignalProcessingPadSynth", + "SignalProcessingPadSynthChoir", + "SignalProcessingPaulStretch", + "SignalProcessingPitchShifter", + "SignalProcessingSaturation", + "SignalProcessingSpectrogram", + "SignalProcessingStereoWidening", + "SignalProcessingWaveform" + ], + { + "title_aux": "ComfyUI Signal Processing [WIP]" + } + ], + "https://github.com/casterpollux/ComfyUI-USO": [ + [ + "USOImageEncoder", + "USOLatentToImage", + "USOModelLoader", + "USOSampler" + ], + { + "title_aux": "ComfyUI USO Custom Node [WIP]" + } + ], + "https://github.com/casterpollux/MiniMax-bmo": [ + [ + "MinimaxRemoverBMO" + ], + { + "title_aux": "MiniMax-bmo" + } + ], + "https://github.com/catboxanon/ComfyUI-Pixelsmith": [ + [ + "Pixelsmith" + ], + { + "title_aux": "ComfyUI-Pixelsmith [WIP]" + } + ], + "https://github.com/celll1/cel_sampler": [ + [ + "latent_tracker" + ], + { + "title_aux": "cel_sampler [WIP]" + } + ], + "https://github.com/cesilk10/cesilk-comfyui-nodes": [ + [ + "CESILK_OpenAIChat", + "CESILK_OpenAIImageBatchGenerator", + "CESILK_OpenAIImageDescriptionToTextfile", + "CESILK_SaveAndUploadToGoogleDrive", + "CESILK_SaveAndUploadToS3", + "CESILK_SdxlImageSizes" + ], + { + "title_aux": "cesilk-comfyui-nodes" + } + ], + "https://github.com/chaojie/ComfyUI-DynamiCrafter": [ + [ + "DynamiCrafter Simple", + "DynamiCrafterInterp Simple", + "DynamiCrafterInterpLoader", + "DynamiCrafterLoader" + ], + { + "title_aux": "ComfyUI DynamiCrafter" + } + ], + "https://github.com/chaojie/ComfyUI-mobvoi-openapi": [ + [ + "HtmlViewer", + "MobvoiOpenapiMetamanAudio", + "MobvoiOpenapiMetamanText", + "MobvoiOpenapiTts", + "OssUploadAudio", + "OssUploadImage" + ], + { + "title_aux": "ComfyUI-mobvoi-openapi" + } + ], + "https://github.com/chaserhkj/ComfyUI-Chaser-nodes": [ + [ + "EvalFloatExpr", + "EvalIntExpr", + "LoadImageFromWebDAV", + "UploadImagesToWebDAV", + "UploadWebMToWebDAV" + ], + { + "title_aux": "ComfyUI Chaser Custom Nodes" + } + ], + "https://github.com/chenbaiyujason/ComfyUI_StepFun": [ + [ + "CombineStrings", + "JSONParser", + "StepFunClient", + "TextImageChat", + "VideoChat", + "VideoFileUploader" + ], + { + "title_aux": "ComfyUI_StepFun" + } + ], + "https://github.com/chengzeyi/Comfy-WaveSpeed": [ + [ + "ApplyFBCacheOnModel", + "EnhancedCompileModel", + "EnhancedLoadDiffusionModel", + "VelocatorCompileModel", + "VelocatorLoadAndQuantizeClip", + "VelocatorLoadAndQuantizeDiffusionModel", + "VelocatorQuantizeModel" + ], + { + "title_aux": "Comfy-WaveSpeed [WIP]" + } + ], + "https://github.com/chenpipi0807/ComfyUI-InstantCharacterFlux": [ + [ + "EncodeRefImageIC", + "ICFluxOneKnob", + "ICStrengthController", + "LoadDINOv2Vision", + "LoadICWeights", + "LoadSigLIPVision" + ], + { + "title_aux": "ComfyUI-InstantCharacterFlux [WIP]" + } + ], + "https://github.com/chetusangolgi/Comfyui-supabase": [ + [ + "SupabaseAudioUploader", + "SupabaseImageUploader", + "SupabaseTableWatcherNode" + ], + { + "title_aux": "Comfyui-supabase" + } + ], + "https://github.com/christian-byrne/infinite-zoom-parallax-nodes": [ + [ + "Create Parallax Video", + "Layer Shifter for Parallax Outpainting", + "Load Parallax Frame", + "Parallax Config", + "Save Parallax Frame", + "Shrink and Pad for Outpainting" + ], + { + "title_aux": "\ud83c\udf0c Infinite Parallax Nodes [WIP]" + } + ], + "https://github.com/christian-byrne/python-interpreter-node": [ + [ + "Exec Python Code Script" + ], + { + "title_aux": "Python Interpreter ComfyUI Node [UNSAFE]" + } + ], + "https://github.com/chuge26/ComfyUI_seal_migration": [ + [ + "PDFLoader", + "PDFSaver", + "SealMigration" + ], + { + "title_aux": "ComfyUI_seal_migration [WIP]" + } + ], + "https://github.com/cidiro/cid-node-pack": [ + [ + "CidAnyBuffer", + "CidAnySync", + "CidLoadImageFromDir", + "CidSaveImage", + "CidWildcardProcessor" + ], + { + "title_aux": "cid-node-pack" + } + ], + "https://github.com/ciga2011/ComfyUI-AppGen": [ + [ + "AG_APP_EDIT", + "AG_APP_GEN", + "AG_APP_SANDBOX", + "AG_CODER_LLM" + ], + { + "title_aux": "ComfyUI-AppGen [UNSAFE]" + } + ], + "https://github.com/clcimir/FileTo64": [ + [ + "FileToBase641" + ], + { + "title_aux": "FileTo64" } ], "https://github.com/comfyanonymous/ComfyUI": [ [ + "AddNoise", + "AlignYourStepsScheduler", + "AudioEncoderEncode", + "AudioEncoderLoader", + "BasicGuider", "BasicScheduler", + "BetaSamplingScheduler", + "CFGGuider", + "CFGNorm", + "CFGZeroStar", "CLIPLoader", + "CLIPMergeAdd", "CLIPMergeSimple", + "CLIPMergeSubtract", "CLIPSave", "CLIPSetLastLayer", "CLIPTextEncode", + "CLIPTextEncodeControlnet", + "CLIPTextEncodeFlux", + "CLIPTextEncodeHiDream", + "CLIPTextEncodeHunyuanDiT", + "CLIPTextEncodeLumina2", + "CLIPTextEncodePixArtAlpha", + "CLIPTextEncodeSD3", "CLIPTextEncodeSDXL", "CLIPTextEncodeSDXLRefiner", "CLIPVisionEncode", @@ -400,124 +5247,400 @@ "ConditioningConcat", "ConditioningSetArea", "ConditioningSetAreaPercentage", + "ConditioningSetAreaPercentageVideo", "ConditioningSetAreaStrength", "ConditioningSetMask", "ConditioningSetTimestepRange", + "ConditioningStableAudio", "ConditioningZeroOut", "ControlNetApply", "ControlNetApplyAdvanced", + "ControlNetApplySD3", + "ControlNetInpaintingAliMamaApply", "ControlNetLoader", + "CosmosImageToVideoLatent", + "CosmosPredict2ImageToVideoLatent", "CropMask", "DiffControlNetLoader", + "DifferentialDiffusion", "DiffusersLoader", + "DisableNoise", + "DualCFGGuider", "DualCLIPLoader", + "EmptyCosmosLatentVideo", + "EmptyHunyuanLatentVideo", "EmptyImage", + "EmptyLTXVLatentVideo", + "EmptyLatentAudio", + "EmptyLatentHunyuan3Dv2", "EmptyLatentImage", + "EmptyMochiLatentVideo", + "EmptySD3LatentImage", "ExponentialScheduler", + "ExtendIntermediateSigmas", "FeatherMask", "FlipSigmas", + "FluxDisableGuidance", + "FluxGuidance", + "FluxKontextImageScale", + "FluxKontextMaxImageNode", + "FluxKontextMultiReferenceLatentMethod", + "FluxKontextProImageNode", + "FluxProCannyNode", + "FluxProDepthNode", + "FluxProExpandNode", + "FluxProFillNode", + "FluxProImageNode", + "FluxProUltraImageNode", + "FreSca", "FreeU", "FreeU_V2", + "GITSScheduler", "GLIGENLoader", "GLIGENTextBoxApply", + "GeminiImageNode", + "GeminiInputFiles", + "GeminiNode", + "GetImageSize", "GrowMask", + "Hunyuan3Dv2Conditioning", + "Hunyuan3Dv2ConditioningMultiView", + "HunyuanImageToVideo", "HyperTile", "HypernetworkLoader", + "ImageAddNoise", "ImageBatch", "ImageBlend", "ImageBlur", "ImageColorToMask", "ImageCompositeMasked", "ImageCrop", + "ImageFlip", + "ImageFromBatch", "ImageInvert", "ImageOnlyCheckpointLoader", "ImageOnlyCheckpointSave", "ImagePadForOutpaint", "ImageQuantize", + "ImageRGBToYUV", + "ImageRotate", "ImageScale", "ImageScaleBy", "ImageScaleToTotalPixels", "ImageSharpen", + "ImageStitch", "ImageToMask", "ImageUpscaleWithModel", + "ImageYUVToRGB", "InpaintModelConditioning", + "InstructPixToPixConditioning", "InvertMask", "JoinImageWithAlpha", "KSampler", "KSamplerAdvanced", "KSamplerSelect", "KarrasScheduler", + "KlingCameraControlI2VNode", + "KlingCameraControlT2VNode", + "KlingCameraControls", + "KlingDualCharacterVideoEffectNode", + "KlingImage2VideoNode", + "KlingImageGenerationNode", + "KlingLipSyncAudioToVideoNode", + "KlingLipSyncTextToVideoNode", + "KlingSingleImageVideoEffectNode", + "KlingStartEndFrameNode", + "KlingTextToVideoNode", + "KlingVideoExtendNode", + "KlingVirtualTryOnNode", + "LTXVAddGuide", + "LTXVConditioning", + "LTXVCropGuides", + "LTXVImgToVideo", + "LTXVPreprocess", + "LTXVScheduler", + "LaplaceScheduler", "LatentAdd", + "LatentApplyOperation", + "LatentApplyOperationCFG", "LatentBatch", "LatentBatchSeedBehavior", "LatentBlend", "LatentComposite", "LatentCompositeMasked", + "LatentConcat", "LatentCrop", + "LatentCut", "LatentFlip", "LatentFromBatch", "LatentInterpolate", "LatentMultiply", + "LatentOperationSharpen", + "LatentOperationTonemapReinhard", "LatentRotate", "LatentSubtract", "LatentUpscale", "LatentUpscaleBy", + "Load3D", + "Load3DAnimation", + "LoadAudio", "LoadImage", "LoadImageMask", + "LoadImageOutput", + "LoadImageSetFromFolderNode", + "LoadImageTextSetFromFolderNode", "LoadLatent", "LoraLoader", "LoraLoaderModelOnly", + "LoraModelLoader", + "LoraSave", + "LossGraphNode", + "LotusConditioning", + "LumaConceptsNode", + "LumaImageModifyNode", + "LumaImageNode", + "LumaImageToVideoNode", + "LumaReferenceNode", + "LumaVideoNode", + "Mahiro", "MaskComposite", + "MaskPreview", "MaskToImage", + "MinimaxHailuoVideoNode", + "MinimaxImageToVideoNode", + "MinimaxSubjectToVideoNode", + "MinimaxTextToVideoNode", + "ModelComputeDtype", "ModelMergeAdd", + "ModelMergeAuraflow", "ModelMergeBlocks", + "ModelMergeCosmos14B", + "ModelMergeCosmos7B", + "ModelMergeCosmosPredict2_14B", + "ModelMergeCosmosPredict2_2B", + "ModelMergeFlux1", + "ModelMergeLTXV", + "ModelMergeMochiPreview", + "ModelMergeQwenImage", + "ModelMergeSD1", + "ModelMergeSD2", + "ModelMergeSD35_Large", + "ModelMergeSD3_2B", + "ModelMergeSDXL", "ModelMergeSimple", "ModelMergeSubtract", + "ModelMergeWAN2_1", + "ModelPatchLoader", + "ModelSamplingAuraFlow", "ModelSamplingContinuousEDM", + "ModelSamplingContinuousV", "ModelSamplingDiscrete", + "ModelSamplingFlux", + "ModelSamplingLTXV", + "ModelSamplingSD3", + "ModelSamplingStableCascade", + "ModelSave", + "MoonvalleyImg2VideoNode", + "MoonvalleyTxt2VideoNode", + "MoonvalleyVideo2VideoNode", + "Morphology", + "OpenAIChatConfig", + "OpenAIChatNode", + "OpenAIDalle2", + "OpenAIDalle3", + "OpenAIGPTImage1", + "OpenAIInputFiles", + "OptimalStepsScheduler", "PatchModelAddDownscale", "PerpNeg", + "PerpNegGuider", + "PerturbedAttentionGuidance", "PhotoMakerEncode", "PhotoMakerLoader", + "PikaImageToVideoNode2_2", + "PikaScenesV2_2", + "PikaStartEndFrameNode2_2", + "PikaTextToVideoNode2_2", + "Pikadditions", + "Pikaffects", + "Pikaswaps", + "PixverseImageToVideoNode", + "PixverseTemplateNode", + "PixverseTextToVideoNode", + "PixverseTransitionVideoNode", "PolyexponentialScheduler", "PorterDuffImageComposite", + "Preview3D", + "Preview3DAnimation", + "PreviewAny", + "PreviewAudio", "PreviewImage", + "QuadrupleCLIPLoader", + "QwenImageDiffsynthControlnet", + "RandomNoise", "RebatchImages", "RebatchLatents", + "RecordAudio", + "RecraftColorRGB", + "RecraftControls", + "RecraftCreativeUpscaleNode", + "RecraftCrispUpscaleNode", + "RecraftImageInpaintingNode", + "RecraftImageToImageNode", + "RecraftRemoveBackgroundNode", + "RecraftReplaceBackgroundNode", + "RecraftStyleV3DigitalIllustration", + "RecraftStyleV3InfiniteStyleLibrary", + "RecraftStyleV3LogoRaster", + "RecraftStyleV3RealisticImage", + "RecraftTextToImageNode", + "RecraftTextToVectorNode", + "RecraftVectorizeImageNode", + "ReferenceLatent", + "RenormCFG", "RepeatImageBatch", "RepeatLatentBatch", "RescaleCFG", + "ResizeAndPadImage", + "Rodin3D_Detail", + "Rodin3D_Regular", + "Rodin3D_Sketch", + "Rodin3D_Smooth", + "RunwayFirstLastFrameNode", + "RunwayImageToVideoNodeGen3a", + "RunwayImageToVideoNodeGen4", + "RunwayTextToImageNode", "SDTurboScheduler", "SD_4XUpscale_Conditioning", + "SV3D_Conditioning", "SVD_img2vid_Conditioning", "SamplerCustom", + "SamplerCustomAdvanced", + "SamplerDPMAdaptative", "SamplerDPMPP_2M_SDE", + "SamplerDPMPP_2S_Ancestral", + "SamplerDPMPP_3M_SDE", "SamplerDPMPP_SDE", + "SamplerER_SDE", + "SamplerEulerAncestral", + "SamplerEulerAncestralCFGPP", + "SamplerLMS", + "SamplerSASolver", + "SamplingPercentToSigma", "SaveAnimatedPNG", "SaveAnimatedWEBP", + "SaveAudio", + "SaveAudioMP3", + "SaveAudioOpus", + "SaveGLB", "SaveImage", + "SaveImageWebsocket", "SaveLatent", + "SaveLoRANode", + "SaveSVGNode", "SelfAttentionGuidance", + "SetFirstSigma", "SetLatentNoiseMask", + "SetUnionControlNetType", + "SkipLayerGuidanceDiT", + "SkipLayerGuidanceDiTSimple", + "SkipLayerGuidanceSD3", "SolidMask", "SplitImageWithAlpha", "SplitSigmas", + "SplitSigmasDenoise", "StableZero123_Conditioning", "StableZero123_Conditioning_Batched", + "StubConstantImage", + "StubFloat", + "StubImage", + "StubInt", + "StubMask", "StyleModelApply", "StyleModelLoader", + "T5TokenizerOptions", + "TCFG", + "TestAccumulateNode", + "TestAccumulationGetItemNode", + "TestAccumulationGetLengthNode", + "TestAccumulationHeadNode", + "TestAccumulationSetItemNode", + "TestAccumulationTailNode", + "TestAccumulationToListNode", + "TestAsyncBatchProcessing", + "TestAsyncConcurrentLimit", + "TestAsyncError", + "TestAsyncLazyCheck", + "TestAsyncProgressUpdate", + "TestAsyncResourceUser", + "TestAsyncTimeout", + "TestAsyncValidation", + "TestAsyncValidationError", + "TestBoolOperationNode", + "TestCustomIsChanged", + "TestCustomValidation1", + "TestCustomValidation2", + "TestCustomValidation3", + "TestCustomValidation4", + "TestCustomValidation5", + "TestDynamicAsyncGeneration", + "TestDynamicDependencyCycle", + "TestExecutionBlocker", + "TestFloatConditions", + "TestForLoopClose", + "TestForLoopOpen", + "TestIntConditions", + "TestIntMathOperation", + "TestIsChangedWithConstants", + "TestLazyMixImages", + "TestListToAccumulationNode", + "TestMakeListNode", + "TestMixedExpansionReturns", + "TestOutputNodeWithSocketOutput", + "TestParallelSleep", + "TestSamplingInExpansion", + "TestSleep", + "TestStringConditions", + "TestSyncError", + "TestSyncProgressUpdate", + "TestToBoolNode", + "TestVariadicAverage", + "TestWhileLoopClose", + "TestWhileLoopOpen", + "TextEncodeHunyuanVideo_ImageToVideo", + "TextEncodeQwenImageEdit", + "ThresholdMask", "TomePatchModel", + "TorchCompileModel", + "TrainLoraNode", + "TripleCLIPLoader", + "TripoConversionNode", + "TripoImageToModelNode", + "TripoMultiviewToModelNode", + "TripoRefineNode", + "TripoRetargetNode", + "TripoRigNode", + "TripoTextToModelNode", + "TripoTextureNode", "UNETLoader", "UpscaleModelLoader", "VAEDecode", + "VAEDecodeAudio", + "VAEDecodeHunyuan3D", "VAEDecodeTiled", "VAEEncode", + "VAEEncodeAudio", "VAEEncodeForInpaint", "VAEEncodeTiled", "VAELoader", "VAESave", "VPScheduler", "VideoLinearCFGGuidance", + "VideoTriangleCFGGuidance", + "VoxelToMesh", + "VoxelToMeshBasic", + "WanCameraEmbedding", + "WebcamCapture", "unCLIPCheckpointLoader", "unCLIPConditioning" ], @@ -525,18 +5648,220 @@ "title_aux": "ComfyUI" } ], - "https://github.com/dnl13/ComfyUI-dnl13-seg": [ + "https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4": [ [ - "Automatic Segmentation (dnl13)", - "BatchSelector (dnl13)", - "Combine Images By Mask (dnl13)", - "Dinov1 Model Loader (dnl13)", - "Mask with prompt (dnl13)", - "RGB (dnl13)", - "SAM Model Loader (dnl13)" + "CheckpointLoaderNF4" ], { - "title_aux": "ComfyUI-dnl13-seg" + "title_aux": "ComfyUI_bitsandbytes_NF4 [EXPERIMENTAL]" + } + ], + "https://github.com/comfypod/ComfyUI-Comflow": [ + [ + "ComflowInputBoolean", + "ComflowInputCheckpoint", + "ComflowInputImage", + "ComflowInputImageAlpha", + "ComflowInputImageBatch", + "ComflowInputLora", + "ComflowInputNumber", + "ComflowInputNumberInt", + "ComflowInputNumberSlider", + "ComflowInputText", + "ComflowInputVid", + "ComflowInputVideo", + "ComflowWebsocketImageInput", + "ComflowWebsocketImageOutput" + ], + { + "description": "", + "nickname": "Comflow", + "title": "comflow", + "title_aux": "ComfyUI-Comflow" + } + ], + "https://github.com/comfyscript/ComfyUI-CloudClient": [ + [ + "ClientImageCompressorNode", + "ClientImageDownloadNode", + "ClientVideoDownloadNode", + "ServerMemoryImageNode" + ], + { + "title_aux": "ComfyUI-CloudClient" + } + ], + "https://github.com/comfyuiblog/deepseek_prompt_generator_comfyui": [ + [ + "DeepSeek_Prompt_Generator" + ], + { + "title_aux": "deepseek_prompt_generator_comfyui [WIP]" + } + ], + "https://github.com/corbin-hayden13/ComfyUI-Better-Dimensions": [ + [ + "BetterImageDimensions", + "PureRatio", + "SDXLDimensions" + ], + { + "title_aux": "ComfyUI-Better-Dimensions" + } + ], + "https://github.com/crimro-se/ComfyUI-CascadedGaze": [ + [ + "CGDenoiseImage", + "CGDenoiseModelLoader" + ], + { + "title_aux": "ComfyUI-CascadedGaze" + } + ], + "https://github.com/ctf05/ComfyUI-AudioDuration": [ + [ + "SimpleAudioDuration", + "SimpleAudioOverlay" + ], + { + "title_aux": "ComfyUI-AudioDuration" + } + ], + "https://github.com/cwebbi1/VoidCustomNodes": [ + [ + "Prompt Parser", + "String Combiner" + ], + { + "title_aux": "VoidCustomNodes" + } + ], + "https://github.com/cyberhirsch/seb_nodes": [ + [ + "AspectRatioSeb", + "DepthInpaintSeb", + "SaveImageSeb", + "SwitchMasksSeb", + "SwitchSeb", + "UnifiedPrompterSeb" + ], + { + "title_aux": "seb_nodes [WIP]" + } + ], + "https://github.com/daracazamea/comfyUI-DCNodes": [ + [ + "FluxResolutionPicker", + "GetGenerationTime", + "ManualTrigger", + "SDXLResolutionPicker", + "StartTimerPassThrough" + ], + { + "title_aux": "DCNodess [WIP]" + } + ], + "https://github.com/dead-matrix/ComfyUI-RMBG-Custom": [ + [ + "RMBG_Custom" + ], + { + "title_aux": "ComfyUI-RMBG-Custom" + } + ], + "https://github.com/denislov/Comfyui_AutoSurvey": [ + [ + "AddDoc2Knowledge", + "AutoSurvey", + "ChatModel", + "ComfyMilvus", + "ComfyWeaviate", + "ManageDatabase", + "MilvusScheme", + "MsField", + "QueryKnowledge", + "WcProperty", + "WcPropertyComb", + "WriteOutline", + "WriteSection" + ], + { + "title_aux": "Comfyui_AutoSurvey" + } + ], + "https://github.com/dexintenebri/comfyui_voxel_nodes": [ + [ + "AutoVoxelScaler", + "DepthEstimationNode", + "DepthToVox", + "MultiViewVoxelFusion", + "OptimizedVoxelizationNode", + "ProceduralChunkedWFC3DTerrain", + "ShapeCompletionNode", + "VoxelExportNode", + "VoxelModelLoader", + "VoxelPreview", + "VoxelPreviewNode", + "VoxelToGLB", + "WFC3DTerrainGenerator" + ], + { + "title_aux": "comfyui_voxel_nodes [WIP]" + } + ], + "https://github.com/dfl/comfyui-stylegan": [ + [ + "BatchAverageStyleGANLatents", + "BlendStyleGANLatents", + "GenerateStyleGANLatent", + "LoadStyleGAN", + "LoadStyleGANLatentImg", + "SaveStyleGANLatentImg", + "StyleGANInversion", + "StyleGANLatentFromBatch", + "StyleGANSampler" + ], + { + "title_aux": "comfyui-stylegan" + } + ], + "https://github.com/dhpdong/ComfyUI-IPAdapter-Flux-Repair": [ + [ + "SamplerCustomAdvancedPlus", + "SeedPlus", + "UnetLoaderGGUFPlus" + ], + { + "title_aux": "ComfyUI-IPAdapter-Flux-Repair" + } + ], + "https://github.com/dihan/comfyui-random-kps": [ + [ + "RandomFaceKeypoints" + ], + { + "title_aux": "ComfyUI Random Keypoints for InstantID [WIP]" + } + ], + "https://github.com/dogcomplex/ComfyUI-LOKI": [ + [ + "EvaluateRelevanceLLM", + "FilterNodesLLM", + "LLMQueryAPI", + "LLMQueryAPIBatch", + "LokiGlamour", + "LokiListAvailableNodes", + "LokiListInstalledNodes", + "LokiTweetScraper", + "LokiTweetThreadScraper", + "LokiTweetUserScraper", + "TwitterScraper", + "TwitterThreadScraper", + "TwitterUserScraper", + "\u270d\ufe0fScribe (LOKI)" + ], + { + "title_aux": "ComfyUI-LOKI [WIP]" } ], "https://github.com/doucx/ComfyUI_WcpD_Utility_Kit": [ @@ -551,34 +5876,265 @@ "title_aux": "ComfyUI_WcpD_Utility_Kit" } ], + "https://github.com/dowands/ComfyUI-AddMaskForICLora": [ + [ + "AddMaskForICLora" + ], + { + "title_aux": "AddMaskForICLora" + } + ], + "https://github.com/downlifted/ComfyUI_BWiZ_Nodes": [ + [ + "BWIZInteractiveLogMonitor", + "BWIZ_AdvancedLoadImageBatch", + "BWIZ_CaptainWebhook", + "BWIZ_ComfyEmail", + "BWIZ_ErrorDetector", + "BWIZ_HFRepoBatchLoader", + "BWIZ_NotificationSound" + ], + { + "title_aux": "ComfyUI_BWiZ_Nodes [WIP]" + } + ], + "https://github.com/duckmartians/Duck_Nodes": [ + [ + "Duck_AddTextOverlay", + "Duck_EmptyLatentImage", + "Duck_LoadExcelRow", + "Duck_LoadGoogleDocLine", + "Duck_LoadGoogleSheetOneRow", + "Duck_LoadWordLine", + "Duck_PromptLoader", + "Duck_QwenAspectRatios", + "Duck_TextReplacer" + ], + { + "title_aux": "Duck_Nodes [UNSAFE]" + } + ], + "https://github.com/eggsbenedicto/DiffusionRenderer-ComfyUI": [ + [ + "Cosmos1ForwardRenderer", + "Cosmos1InverseRenderer", + "LoadDiffusionRendererModel", + "LoadHDRImage", + "VAEPassthroughTest" + ], + { + "title_aux": "DiffusionRenderer-ComfyUI [WIP]" + } + ], "https://github.com/eigenpunk/ComfyUI-audio": [ [ "ApplyVoiceFixer", + "AudioSampleRate", "BatchAudio", - "ClipAudio", + "BlendAudio", + "ClipAudioRegion", "CombineImageWithAudio", "ConcatAudio", "ConvertAudio", + "FilterAudio", "FlattenAudioBatch", - "LoadAudio", + "HifiGANApply", + "HifiGANLoader", + "HifiGANModelParams", + "InvertAudioPhase", "MusicgenGenerate", "MusicgenHFGenerate", "MusicgenHFLoader", "MusicgenLoader", - "PreviewAudio", - "SaveAudio", + "NormalizeAudio", + "ResampleAudio", "SpectrogramImage", + "Tacotron2Generate", + "Tacotron2Loader", + "ToMelSpectrogram", "TortoiseTTSGenerate", "TortoiseTTSLoader", + "TrimAudio", + "TrimAudioSamples", + "TrimSilence", "VALLEXGenerator", "VALLEXLoader", "VALLEXVoicePromptFromAudio", - "VALLEXVoicePromptLoader" + "VALLEXVoicePromptLoader", + "WaveGlowApply", + "WaveGlowLoader" ], { "title_aux": "ComfyUI-audio" } ], + "https://github.com/ejektaflex/ComfyUI-Ty": [ + [ + "Lora Block Weight Regex Loader // Ty" + ], + { + "title_aux": "ComfyUI-Ty" + } + ], + "https://github.com/elfatherbrown/comfyui-realcugan-node": [ + [ + "RealCUGANUpscaler" + ], + { + "title_aux": "Real-CUGAN ComfyUI Custom Node [WIP]" + } + ], + "https://github.com/emranemran/ComfyUI-FasterLivePortrait": [ + [ + "FasterLivePortraitProcess", + "LoadFasterLivePortraitModels" + ], + { + "title_aux": "ComfyUI-FasterLivePortrait" + } + ], + "https://github.com/endman100/ComfyUI-SaveAndLoadPromptCondition": [ + [ + "LoadContditioning", + "SaveConditioning" + ], + { + "title_aux": "ComfyUI Nodes: SaveConditioning and LoadConditioning" + } + ], + "https://github.com/endman100/ComfyUI-augmentation": [ + [ + "RamdomFlipImage (endman100)" + ], + { + "title_aux": "ComfyUI-augmentation" + } + ], + "https://github.com/enlo/ComfyUI-CheckpointSettings": [ + [ + "CheckPointSettingsListMerger", + "CheckPointSettingsPack", + "CheckPointSettingsRandomSelector", + "CheckPointSettingsTie", + "CheckPointSettingsToFilename", + "CheckPointSettingsUnpack", + "RandomChoiceNumber" + ], + { + "title_aux": "ComfyUI-CheckpointSettings" + } + ], + "https://github.com/ericbeyer/guidance_interval": [ + [ + "Guidance Interval" + ], + { + "title_aux": "guidance_interval" + } + ], + "https://github.com/erosDiffusion/ComfyUI-enricos-json-file-load-and-value-selector": [ + [ + "SelectorNode" + ], + { + "title_aux": "Select key from JSON (Alpha) [UNSAFE]" + } + ], + "https://github.com/ervinne13/ComfyUI-Metadata-Hub": [ + [ + "Metadata Hub", + "Save Image With Metadata" + ], + { + "title_aux": "ComfyUI-Metadata-Hub" + } + ], + "https://github.com/esciron/ComfyUI-HunyuanVideoWrapper-Extended": [ + [ + "DownloadAndLoadHyVideoTextEncoder", + "HyVideoBlockSwap", + "HyVideoDecode", + "HyVideoEncode", + "HyVideoModelLoader", + "HyVideoSTG", + "HyVideoSampler", + "HyVideoTextEncode", + "HyVideoTorchCompileSettings", + "HyVideoVAELoader" + ], + { + "title_aux": "ComfyUI-HunyuanVideoWrapper-Extended [WIP]" + } + ], + "https://github.com/exectails/comfyui-et_scripting": [ + [ + "ETPythonTextScript3Node" + ], + { + "title_aux": "Scripting" + } + ], + "https://github.com/eyekayem/comfyui_runway_gen3": [ + [ + "RunwayVideoGenerator", + "RunwayVideoPreview" + ], + { + "title_aux": "comfyui_runway_gen3" + } + ], + "https://github.com/facok/ComfyUI-FokToolset": [ + [ + "Fok_PreprocessRefImage" + ], + { + "title_aux": "ComfyUI-FokToolset" + } + ], + "https://github.com/fangg2000/ComfyUI-SenseVoice": [ + [ + "STTNode", + "ShowTextNode", + "VoiceRecorderNode" + ], + { + "title_aux": "ComfyUI-SenseVoice [WIP]" + } + ], + "https://github.com/fangg2000/ComfyUI-StableAudioFG": [ + [ + "LoadStableAudioModel", + "StableAudioFG" + ], + { + "author": "lks-ai", + "description": "A Simple integration of Stable Audio Diffusion with knobs and stuff!", + "nickname": "stableaudio", + "title": "StableAudioSampler", + "title_aux": "ComfyUI-StableAudioFG [WIP]" + } + ], + "https://github.com/fangziheng2321/comfyuinode_chopmask": [ + [ + "cus_chopmask" + ], + { + "title_aux": "comfyuinode_chopmask [WIP]" + } + ], + "https://github.com/filipemeneses/ComfyUI_html": [ + [ + "HtmlDownload", + "HtmlPreview", + "LoadHtml", + "SaveHtml", + "SingleImageToBase64", + "SingleImageToBase64KeepMetadata" + ], + { + "title_aux": "ComfyUI_html [UNSAFE]" + } + ], "https://github.com/flowtyone/comfyui-flowty-lcm": [ [ "LCMSampler" @@ -587,6 +6143,17 @@ "title_aux": "comfyui-flowty-lcm" } ], + "https://github.com/flyingdogsoftware/gyre_for_comfyui": [ + [ + "BackgroundRemoval", + "GyreIfElse", + "GyreLoopEnd", + "GyreLoopStart" + ], + { + "title_aux": "Gyre for ComfyUI" + } + ], "https://github.com/foglerek/comfyui-cem-tools": [ [ "ProcessImageBatch" @@ -595,6 +6162,126 @@ "title_aux": "comfyui-cem-tools" } ], + "https://github.com/franky519/comfyui-redux-style": [ + [ + "StyleModelAdvanced", + "StyleModelApplySimple", + "StyleModelConditioner", + "StyleModelGridVisualizer" + ], + { + "title_aux": "comfyui-redux-style" + } + ], + "https://github.com/franky519/comfyui_fnckc_Face_analysis": [ + [ + "FaceAnalysisModels", + "FaceFourImageMatcher" + ], + { + "title_aux": "ComfyUI Face Four Image Matcher [WIP]" + } + ], + "https://github.com/fritzprix/ComfyUI-LLM-Utils": [ + [ + "WeightedDict", + "WeightedDictConcat", + "WeightedDictInput", + "WeightedDictSelect", + "WeightedDictSelectGroup", + "WeightedDictToPrompt" + ], + { + "title_aux": "ComfyUI-LLM-Utils [WIP]" + } + ], + "https://github.com/ftechmax/ComfyUI-NovaKit-Pack": [ + [ + "CountTokens" + ], + { + "title_aux": "ComfyUI-NovaKit-Pack" + } + ], + "https://github.com/ftf001-tech/ComfyUI-ExternalLLMDetector": [ + [ + "ExternalLLMDetectorBboxesConvert", + "ExternalLLMDetectorMainProcess", + "ExternalLLMDetectorSettings" + ], + { + "title_aux": "ComfyUI-Lucian [WIP]" + } + ], + "https://github.com/fylrid2/comfyui_lock_previous_value": [ + [ + "Lock" + ], + { + "title_aux": "lockValue" + } + ], + "https://github.com/gabe-init/ComfyUI-LM-Studio": [ + [ + "LMStudioNode" + ], + { + "title_aux": "ComfyUI LM Studio Node [WIP]" + } + ], + "https://github.com/gabe-init/ComfyUI-Repo-Eater": [ + [ + "RepoEaterNode" + ], + { + "title_aux": "gabe-init [WIP]" + } + ], + "https://github.com/gabe-init/comfyui_ui_render": [ + [ + "HTMLRendererNode" + ], + { + "title_aux": "comfyui_ui_render [UNSAFE]" + } + ], + "https://github.com/gagaprince/ComfyUI_gaga_utils": [ + [ + "GagaAddStringArray", + "GagaBatchStringReplace", + "GagaGetDirList", + "GagaGetFileList", + "GagaGetImageInfoByUpload", + "GagaGetImageInfoWithUrl", + "GagaGetImageWithPath", + "GagaGetStringArrayByIndex", + "GagaGetStringArraySize", + "GagaGetStringListSize", + "GagaPythonScript", + "GagaSaveImageToPath", + "GagaSaveImageWithInfo", + "GagaSaveImagesToGif", + "GagaSplitStringToList", + "GagaStringListToArray", + "GagaTest" + ], + { + "title_aux": "ComfyUI_gaga_utils" + } + ], + "https://github.com/galoreware/ComfyUI-GaloreNodes": [ + [ + "GNI_HEX_TO_COLOR", + "GNI_RGB_TO_COLOR", + "GN_COLOR_TO_INT", + "GN_IO_GET_FILENAME", + "GN_MASK_TO_IMAGE", + "GN_SNAP_RESIZE" + ], + { + "title_aux": "ComfyUI-GaloreNodes [WIP]" + } + ], "https://github.com/gameltb/ComfyUI_stable_fast": [ [ "ApplyStableFastUnet", @@ -606,23 +6293,783 @@ "title_aux": "ComfyUI_stable_fast" } ], - "https://github.com/ilovejohnwhite/UncleBillyGoncho": [ + "https://github.com/gamtruliar/ComfyUI-N_SwapInput": [ [ - "CannyEdgePreprocessor", + "N_SwapInput" + ], + { + "title_aux": "ComfyUI-N_SwapInput [UNSAFE]" + } + ], + "https://github.com/gaowei-space/ComfyUI-Doubao-LLM": [ + [ + "DoubaoAPI", + "DoubaoConfig", + "DoubaoTextChat", + "DoubaoVisionChat" + ], + { + "title_aux": "ComfyUI Doubao LLM [WIP]" + } + ], + "https://github.com/gilons/ComfyUI-GoogleDrive-Downloader": [ + [ + "custom_nodes" + ], + { + "title_aux": "ComfyUI-GoogleDrive-Downloader [UNSAFE]" + } + ], + "https://github.com/gitadmini/comfyui_extractstoryboards": [ + [ + "Example", + "ExtractStoryboards_xuhuan1024", + "IntBatchSize_xuhuan1024", + "IntBatch_xuhuan1024" + ], + { + "title_aux": "ExtractStoryboards [WIP]" + } + ], + "https://github.com/githubYiheng/comfyui_median_filter": [ + [ + "ImageMedianFilter" + ], + { + "title_aux": "comfyui_median_filter" + } + ], + "https://github.com/gmammolo/comfyui-gmammolo": [ + [ + "FilterConditioningPrompt", + "FilterTextPrompt", + "SimpleTextbox" + ], + { + "title_aux": "comfyui-gmammolo" + } + ], + "https://github.com/gmorks/ComfyUI-Animagine-Prompt": [ + [ + "AnimaginePrompt", + "MultiWildcardLoader", + "MultilineTextInput", + "TextFileLoader" + ], + { + "title_aux": "ComfyUI Animagine prompt [WIP]" + } + ], + "https://github.com/go-package-lab/ComfyUI-Tools-Video-Combine": [ + [ + "Tools:CopyFile", + "Tools:Image2video", + "Tools:LoadAudioUrl", + "Tools:PreviewVideo", + "Tools:SetString", + "Tools:SetValue", + "Tools:VideoWatermark" + ], + { + "title_aux": "ComfyUI-Tools-Video-Combine [WIP]" + } + ], + "https://github.com/godric8/ComfyUI_Step1X-Edit": [ + [ + "Step1XEdit" + ], + { + "title_aux": "ComfyUI_Step1X-Edit [NAME CONFLICT]" + } + ], + "https://github.com/gold24park/loki-comfyui-node": [ + [ + "Base64ToImage", + "DominantColor", + "ImageLuminance", + "ImageToBase64", + "OverlayText" + ], + { + "title_aux": "loki-comfyui-node" + } + ], + "https://github.com/gordon123/ComfyUI_DreamBoard": [ + [ + "PromptExtraNode", + "StoryboardNode" + ], + { + "title_aux": "ComfyUI_DreamBoard [WIP]" + } + ], + "https://github.com/gordon123/ComfyUI_srt2speech": [ + [ + "GetSubtitleByIndex", + "MergeAllWave", + "SaveWavNode" + ], + { + "title_aux": "ComfyUI_srt2speech [WIP]" + } + ], + "https://github.com/gorillaframeai/GF_pixtral_node": [ + [ + "GF_MistralPixtralNode" + ], + { + "title_aux": "GF_pixtral_node [WIP]" + } + ], + "https://github.com/grimli333/ComfyUI_Grim": [ + [ + "GenerateFileName", + "TwoStringsFormat" + ], + { + "title_aux": "ComfyUI_Grim" + } + ], + "https://github.com/grinlau18/ComfyUI_XISER_Nodes": [ + [ + "CreatePointsString", + "XISER_Canvas", + "XIS_AdjustTheImage", + "XIS_CanvasMaskProcessor", + "XIS_CompositorProcessor", + "XIS_CropImage", + "XIS_DynamicBatchKSampler", + "XIS_Float_Slider", + "XIS_FromListGet1Color", + "XIS_FromListGet1Cond", + "XIS_FromListGet1Float", + "XIS_FromListGet1Image", + "XIS_FromListGet1Int", + "XIS_FromListGet1Latent", + "XIS_FromListGet1Mask", + "XIS_FromListGet1Model", + "XIS_FromListGet1String", + "XIS_INT_Slider", + "XIS_IPAStyleSettings", + "XIS_IfDataIsNone", + "XIS_ImageManager", + "XIS_ImageMaskMirror", + "XIS_ImageStitcher", + "XIS_InvertMask", + "XIS_IsThereAnyData", + "XIS_KSamplerSettingsNode", + "XIS_KSamplerSettingsUnpackNode", + "XIS_Label", + "XIS_LatentBlendNode", + "XIS_LoadImage", + "XIS_MaskBatchProcessor", + "XIS_MaskCompositeOperation", + "XIS_MergePackImages", + "XIS_MultiPointGradient", + "XIS_MultiPromptSwitch", + "XIS_PSDLayerExtractor", + "XIS_PackImages", + "XIS_PromptProcessor", + "XIS_PromptsWithSwitches", + "XIS_ReorderImageMaskGroups", + "XIS_ReorderImages", + "XIS_ResizeImageOrMask", + "XIS_ResizeToDivisible", + "XIS_ResolutionSelector" + ], + { + "title_aux": "Xiser_Nodes [WIP]" + } + ], + "https://github.com/grokuku/ComfyUI-Holaf": [ + [ + "HolafBenchmarkLoader", + "HolafBenchmarkPlotter", + "HolafBenchmarkRunner", + "HolafImageComparer", + "HolafInstagramResize", + "HolafInternalSampler", + "HolafKSampler", + "HolafLutGenerator", + "HolafLutSaver", + "HolafMaskToBoolean", + "HolafOrchestratorConfig", + "HolafOverlayNode", + "HolafRatioCalculator", + "HolafResolutionPreset", + "HolafSaveImage", + "HolafSliceCalculator", + "HolafTileCalculator", + "HolafTiledKSampler", + "UpscaleImageHolaf" + ], + { + "title_aux": "Holaf Custom Nodes for ComfyUI" + } + ], + "https://github.com/haodman/ComfyUI_Rain": [ + [ + "Rain_ImageSize", + "Rain_IntToFloat", + "Rain_Math", + "Rain_ValueSwitch" + ], + { + "title_aux": "ComfyUI_Rain" + } + ], + "https://github.com/haofanwang/ComfyUI-InstantStyle": [ + [ + "BaseModelLoader", + "InstantStyleGenerationNode", + "InstantStyleLoader", + "PromptLoader" + ], + { + "title_aux": "ComfyUI-InstantStyle" + } + ], + "https://github.com/haomole/Comfyui-SadTalker": [ + [ + "LoadRefVideo", + "SadTalker", + "ShowAudio", + "ShowText", + "ShowVideo" + ], + { + "title_aux": "Comfyui-SadTalker" + } + ], + "https://github.com/hay86/ComfyUI_AceNodes": [ + [ + "ACE_AnyInputSwitchBool", + "ACE_AnyInputToAny", + "ACE_AudioCrop", + "ACE_AudioLoad", + "ACE_AudioPlay", + "ACE_AudioSave", + "ACE_Expression_Eval", + "ACE_Float", + "ACE_ImageColorFix", + "ACE_ImageConstrain", + "ACE_ImageFaceCrop", + "ACE_ImageGetSize", + "ACE_ImageLoadFromCloud", + "ACE_ImageMakeSlideshow", + "ACE_ImagePixelate", + "ACE_ImageQA", + "ACE_ImageRemoveBackground", + "ACE_ImageSaveToCloud", + "ACE_Integer", + "ACE_MaskBlur", + "ACE_OpenAI_GPT_Chat", + "ACE_OpenAI_GPT_IMAGE", + "ACE_OpenAI_GPT_TTS", + "ACE_Seed", + "ACE_Text", + "ACE_TextConcatenate", + "ACE_TextGoogleTranslate", + "ACE_TextInputSwitch2Way", + "ACE_TextInputSwitch4Way", + "ACE_TextInputSwitch8Way", + "ACE_TextList", + "ACE_TextLoad", + "ACE_TextPreview", + "ACE_TextSave", + "ACE_TextSelector", + "ACE_TextToResolution", + "ACE_TextTranslate", + "ACE_VideoConcat", + "ACE_VideoLoad", + "ACE_VideoPreview" + ], + { + "title_aux": "ComfyUI AceNodes [UNSAFE]" + } + ], + "https://github.com/hben35096/ComfyUI-ToolBox": [ + [ + "AutoDLDownload", + "CreatePaths", + "FolderDeleter", + "FolderViewe", + "PathOutput" + ], + { + "title_aux": "hben35096/ComfyUI-ToolBox [NAME CONFLICT]" + } + ], + "https://github.com/hdfhssg/ComfyUI_pxtool": [ + [ + "ArtistLoader", + "CivitaiHelper", + "DanbooruCharacterTag", + "E621CharacterTag", + "NegativeTag", + "PX_Seed", + "QualityTag", + "RandomArtists", + "RandomArtistsAdvanced", + "RandomTag" + ], + { + "title_aux": "ComfyUI_pxtool [WIP]" + } + ], + "https://github.com/hdfhssg/comfyui_EvoSearch": [ + [ + "EvoSearch_FLUX", + "EvoSearch_SD21", + "EvoSearch_WAN", + "EvolutionScheduleGenerator", + "GuidanceRewardsGenerator" + ], + { + "title_aux": "comfyui_EvoSearch [WIP]" + } + ], + "https://github.com/hiusdev/ComfyUI_Lah_Toffee": [ + [ + "LoadVideoRandom" + ], + { + "title_aux": "ComfyUI_Lah_Toffee" + } + ], + "https://github.com/hnmr293/ComfyUI-SamOne": [ + [ + "Latent", + "SamplerOne" + ], + { + "title_aux": "ComfyUI-SamOne - one-step sampling" + } + ], + "https://github.com/horidream/ComfyUI-Horidream": [ + [ + "PassThroughWithSound" + ], + { + "title_aux": "ComfyUI-Horidream" + } + ], + "https://github.com/hotpizzatactics/ComfyUI-WaterMark-Detector": [ + [ + "AdaptiveThresholding", + "AdvancedWatermarkEnhancement", + "AdvancedWaveletWatermarkEnhancement", + "CLAHEEnhancement", + "CombineEnhancements", + "ComprehensiveImageEnhancement", + "DenoisingFilter", + "EdgeDetection", + "FlexibleCombineEnhancements", + "HighPassFilter", + "ImprovedGrayColorEnhancement", + "MorphologicalOperations", + "TextureEnhancement", + "WatermarkEnhancement" + ], + { + "title_aux": "ComfyUI-WaterMark-Detector" + } + ], + "https://github.com/hotpot-killer/ComfyUI_AlexNodes": [ + [ + "InstructPG" + ], + { + "title_aux": "ComfyUI_AlexNodes" + } + ], + "https://github.com/houdinii/comfy-magick": [ + [ + "AdaptiveBlur", + "AdaptiveSharpen", + "AddNoise", + "BlueShift", + "Blur", + "Charcoal", + "Colorize", + "CropByAspectRatio", + "Despeckle", + "Edge", + "Emboss", + "FX", + "GaussianBlur", + "Implode", + "Kuwahara", + "MotionBlur", + "RotationalBlur", + "SelectiveBlur", + "Sepia", + "Shade", + "Sharpen", + "Sketch", + "Solarize", + "Spread", + "Stereogram", + "Swirl", + "Tint", + "UnsharpMask", + "Vignette", + "WaveletDenoise" + ], + { + "title_aux": "comfy-magick [WIP]" + } + ], + "https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui": [ + [ + "EasyBgRemover", + "EasyBgRemover_ModelLoader", + "EasyControlNetApply", + "EasyControlNetLoader", + "EasyEmptyLatentImage", + "EasyLatentToCondition", + "EasyLoadImage" + ], + { + "title_aux": "ComfyUI_Easy_Nodes_hui" + } + ], + "https://github.com/hulipanpan/Comfyui_tuteng": [ + [ + "TutengChatGPTApi", + "TutengGeminiAPI", + "TutengJimengApi", + "TutengJimengVideoApi", + "TutengSeededit", + "Tuteng_Flux_Kontext", + "Tuteng_Flux_Kontext_Edit", + "Tuteng_Flux_Kontext_bfl", + "Tuteng_Google_Veo3", + "Tuteng_Mj", + "Tuteng_Mju", + "Tuteng_Mjv", + "Tuteng_gpt_image_1", + "Tuteng_gpt_image_1_edit", + "Tuteng_kling_image2video", + "Tuteng_kling_text2video", + "Tuteng_kling_videoPreview", + "Tuteng_lip_sync", + "Tuteng_mjstyle", + "Tuteng_upload", + "Tuteng_video_extend" + ], + { + "title_aux": "Comfyui_tuteng [WIP]" + } + ], + "https://github.com/hunterssl/ComfyUI_SSLNodes": [ + [ + "SSLGetJsonKeysCount", + "SSLLoadCheckpointByName", + "SSLLoadJson", + "SSLRandomNumInLoop", + "SSLRandomSeedInLoop", + "SSLSaveImageOutside" + ], + { + "title_aux": "ComfyUI_SSLNodes" + } + ], + "https://github.com/hunzmusic/ComfyUI-Hunyuan3DTools": [ + [ + "Hy3DTools_BackProjectInpaint", + "Hy3DTools_RenderSpecificView" + ], + { + "title_aux": "ComfyUI-Hunyuan3DTools [WIP]" + } + ], + "https://github.com/hunzmusic/Comfyui-CraftsMan3DWrapper": [ + [ + "CraftsManDoraVAEGenerator", + "DecodeCraftsManLatents", + "LoadCraftsManPipeline", + "PreprocessImageCraftsMan", + "SampleCraftsManLatents", + "SaveCraftsManMesh" + ], + { + "title_aux": "Comfyui-CraftsMan3DWrapper [WIP]" + } + ], + "https://github.com/hunzmusic/comfyui-hnznodes": [ + [ + "CombineChannelsGrayscale", + "ImageBatchReorder", + "MaleCharacterPromptGenerator" + ], + { + "title_aux": "comfyui-hnznodes" + } + ], + "https://github.com/hy134300/comfyui-hb-node": [ + [ + "generate story", + "hy save image", + "latent to list", + "movie batch", + "movie generate", + "sound voice", + "text concat" + ], + { + "title_aux": "comfyui-hb-node" + } + ], + "https://github.com/hy134300/comfyui-hydit": [ + [ + "DiffusersCLIPLoader", + "DiffusersCheckpointLoader", + "DiffusersClipTextEncode", + "DiffusersControlNetLoader", + "DiffusersLoraLoader", + "DiffusersModelMakeup", + "DiffusersPipelineLoader", + "DiffusersSampler", + "DiffusersSchedulerLoader", + "DiffusersVAELoader" + ], + { + "title_aux": "comfyui-hydit" + } + ], + "https://github.com/hylarucoder/comfyui-copilot": [ + [ + "EagleImageNode", + "SDXLPromptStyler", + "SDXLPromptStylerAdvanced", + "SDXLResolutionPresets" + ], + { + "title_aux": "comfyui-copilot" + } + ], + "https://github.com/iacoposk8/xor_pickle_nodes": [ + [ + "DecryptXORText", + "Load XOR Pickle From File", + "Save XOR Pickle To File" + ], + { + "title_aux": "ComfyUI XOR Pickle Nodes" + } + ], + "https://github.com/idoru/ComfyUI-SKCFI-NetworkFileIO": [ + [ + "FilestashUploadNode", + "HttpUploadNode", + "MultipartFileHTTPUploadNode" + ], + { + "title_aux": "Filestash Upload Node [UNSAFE]" + } + ], + "https://github.com/if-ai/ComfyUI-IF_Zonos": [ + [ + "IF_ZonosTTS" + ], + { + "title_aux": "ComfyUI-IF_Zonos [WIP]" + } + ], + "https://github.com/ilovejohnwhite/Tracer": [ + [ + "BillyGoatNode", + "EcstaticNode", "HintImageEnchance", + "Image Load TTK", "ImageGenResolutionFromImage", "ImageGenResolutionFromLatent", - "LineArtPreprocessor", + "KillMeNode", "LinkMasterNode", - "PiDiNetPreprocessor", + "OkayBuddyNode", + "OutlineRealNode", + "OutlineStandardNode", "PixelPerfectResolution", "SuckerPunch", "UWU_Preprocessor", - "VooDooNode", - "VooDooNode2" + "VooDooNode" ], { - "title_aux": "TatToolkit" + "title_aux": "Kolors Awesome Prompts [WIP]" + } + ], + "https://github.com/immersiveexperience/ie-comfyui-color-nodes": [ + [ + "Average Color", + "Complementary Color", + "Hex Color to Image", + "Hex to Color Name", + "Random String" + ], + { + "title_aux": "ie-comfyui-color-nodes" + } + ], + "https://github.com/io-club/ComfyUI-LuminaNext": [ + [ + "GemmaClipLoader" + ], + { + "title_aux": "ComfyUI-LuminaNext [WIP]" + } + ], + "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils": [ + [ + "PaintingCoder::DynamicImageCombiner", + "PaintingCoder::DynamicMaskCombiner", + "PaintingCoder::ImageLatentCreator", + "PaintingCoder::ImageLatentCreatorPlus", + "PaintingCoder::ImageResolutionAdjuster", + "PaintingCoder::ImageSizeCreator", + "PaintingCoder::ImageSizeCreatorPlus", + "PaintingCoder::ImageSwitch", + "PaintingCoder::ImageToBase64", + "PaintingCoder::LatentSwitch", + "PaintingCoder::MaskPreview", + "PaintingCoder::MaskSwitch", + "PaintingCoder::MultilineTextInput", + "PaintingCoder::OutputToTextConverter", + "PaintingCoder::RemoveEmptyLinesAndLeadingSpaces", + "PaintingCoder::ShowTextPlus", + "PaintingCoder::SimpleTextInput", + "PaintingCoder::TextCombiner", + "PaintingCoder::TextSwitch", + "PaintingCoder::WebImageLoader" + ], + { + "title_aux": "ComfyUI PaintingCoderUtils Nodes [WIP]" + } + ], + "https://github.com/jax-explorer/ComfyUI-DreamO": [ + [ + "BgRmModelLoad", + "DreamOGenerate", + "DreamOLoadModel", + "DreamOLoadModelFromLocal", + "FaceModelLoad" + ], + { + "title_aux": "ComfyUI-DreamO" + } + ], + "https://github.com/jcomeme/ComfyUI-AsunaroTools": [ + [ + "AsunaroAnd", + "AsunaroAutomaticSexPrompter", + "AsunaroBatchImageLoader", + "AsunaroIfBiggerThanZero", + "AsunaroIfContain", + "AsunaroIfSame", + "AsunaroImageLoader", + "AsunaroIntToStr", + "AsunaroOr", + "AsunaroPromptStripper", + "AsunaroRandomDice", + "AsunaroResolutions", + "AsunaroSave", + "AsunaroTextConcatenator", + "AsunaroWildCard" + ], + { + "title_aux": "AsunaroTools" + } + ], + "https://github.com/jerryname2022/ComfyUI-MegaTTS3": [ + [ + "MegaTTS3ModelLoader", + "MegaTTS3ZeroShot", + "TextEditor" + ], + { + "title_aux": "MegaTTS 3 [WIP]" + } + ], + "https://github.com/jerryname2022/ComfyUI-Real-ESRGAN": [ + [ + "GFPGANImageGenerator", + "GFPGANModelLoader", + "ImageMergeGenerator", + "InpaintingLamaImageGenerator", + "InpaintingLamaModelLoader", + "RealESRGANImageGenerator", + "RealESRGANModelLoader" + ], + { + "title_aux": "ComfyUI-Real-ESRGAN [WIP]" + } + ], + "https://github.com/jgbrblmd/ComfyUI-ComfyFluxSize": [ + [ + "ComfyFluxSize" + ], + { + "title_aux": "ComfyUI-ComfyFluxSize [WIP]" + } + ], + "https://github.com/jgbyte/ComfyUI-RandomCube": [ + [ + "RandomCubeGrid" + ], + { + "title_aux": "ComfyUI-RandomCube [WIP]" + } + ], + "https://github.com/jiafuzeng/comfyui-fishSpeech": [ + [ + "FishSpeechAudioDurationNode", + "FishSpeechAudioPreview", + "FishSpeechLoader", + "FishSpeechTTS" + ], + { + "title_aux": "comfyui-fishSpeech" + } + ], + "https://github.com/jimmm-ai/TimeUi-a-ComfyUi-Timeline-Node": [ + [ + "jimmm.ai.TimelineUI" + ], + { + "title_aux": "TimeUi a ComfyUI Timeline Node System [WIP]" + } + ], + "https://github.com/jimstudt/ComfyUI-Jims-Nodes": [ + [ + "ChooseFromStringList", + "Cubby", + "DefineWord", + "DictFromJSON", + "DictionaryToJSON", + "ImageToSolidBackground", + "JSONToDictionary", + "LiftFromBackground", + "LoadImageAndInfoFromPath", + "LookupWord", + "ReplaceWords", + "TextToStringList", + "ZoomFocus" + ], + { + "title_aux": "Jim's ComfyUI Nodes [WIP]" + } + ], + "https://github.com/jinchanz/ComfyUI-AliCloud-Bailian": [ + [ + "BailianAPI", + "BailianAPIPoll", + "BailianAPISubmit", + "MaletteJSONExtractor", + "MaletteJSONModifier", + "MaletteVirtualTryOn" + ], + { + "title_aux": "ComfyUI-AliCloud-Bailian [WIP]" } ], "https://github.com/jn-jairo/jn_node_suite_comfyui": [ @@ -702,63 +7149,510 @@ "title_aux": "jn_node_suite_comfyui [WIP]" } ], - "https://github.com/kadirnar/ComfyUI-Transformers": [ + "https://github.com/jonathan-bryant/ComfyUI-ImageStraightener": [ [ - "DepthEstimationPipeline" + "AutoStraightenImage" ], { - "title_aux": "ComfyUI-Transformers" + "title_aux": "ComfyUI-ImageStraightener [WIP]" } ], - "https://github.com/kadirnar/comfyui_helpers": [ + "https://github.com/jordancoult/ComfyUI_HelpfulNodes": [ [ - "CLIPSeg", - "CircularVAEDecode", - "CombineMasks", - "CustomKSamplerAdvancedTile", - "ImageLoaderAndProcessor", - "ImageToContrastMask", - "JDC_AutoContrast", - "JDC_BlendImages", - "JDC_BrownNoise", - "JDC_Contrast", - "JDC_EqualizeGrey", - "JDC_GaussianBlur", - "JDC_GreyNoise", - "JDC_Greyscale", - "JDC_ImageLoader", - "JDC_ImageLoaderMeta", - "JDC_PinkNoise", - "JDC_Plasma", - "JDC_PlasmaSampler", - "JDC_PowerImage", - "JDC_RandNoise", - "JDC_ResizeFactor", - "LatentGaussianNoise", - "LatentToRGB", - "MathEncode", - "NoisyLatentPerlin" + "JCo_CropAroundKPS" ], { - "title_aux": "comfyui_helpers" + "title_aux": "ComfyUI_HelpfulNodes" + } + ], + "https://github.com/jschoormans/Comfy-InterestingPixels": [ + [ + "Random Palette", + "Shareable Image Slider" + ], + { + "title_aux": "ComfyUI-TexturePacker [WIP]" + } + ], + "https://github.com/jtrue/ComfyUI-MaskTools": [ + [ + "ColorToMask", + "MaskColorRange" + ], + { + "description": "Pixel-selection tools (masks) for ComfyUI \u2014 modular.", + "nickname": "Mask", + "title": "MaskTools", + "title_aux": "MaskTools" + } + ], + "https://github.com/jtscmw01/ComfyUI-DiffBIR": [ + [ + "DiffBIR_sample", + "DiffBIR_sample_advanced", + "Simple_load", + "Stage1_load", + "Stage2_load" + ], + { + "title_aux": "ComfyUI-DiffBIR" + } + ], + "https://github.com/jtydhr88/ComfyUI-StableStudio": [ + [ + "ComfyUIStableStudio" + ], + { + "title_aux": "ComfyUI-StableStudio [WIP]" + } + ], + "https://github.com/jtydhr88/ComfyUI-Unique3D": [ + [ + "Unique3DLoadPipeline", + "Unique3DRun - Geo Reconstruct", + "Unique3DRun - MVPrediction" + ], + { + "title_aux": "ComfyUI-Unique3D [WIP]" + } + ], + "https://github.com/jtydhr88/ComfyUI_frontend_vue_basic": [ + [ + "vue-basic" + ], + { + "title_aux": "ComfyUI Frontend Vue Basic [WIP]" + } + ], + "https://github.com/junhe421/comfyui_batch_image_processor": [ + [ + "BatchImageDifferenceToPromptFiles", + "custom_nodes" + ], + { + "title_aux": "comfyui_batch_image_processor [WIP]" + } + ], + "https://github.com/kadirnar/ComfyUI-Adapter": [ + [ + "GarmentSegLoader" + ], + { + "title_aux": "ComfyUI-Adapter [WIP]" + } + ], + "https://github.com/kandy/ComfyUI-KAndy": [ + [ + "KAndyTaggerModelLoader", + "KAndyWD14Tagger", + "KPromtGen", + "KandyLoad", + "KandySave", + "KandySimplePrompt" + ], + { + "title_aux": "ComfyUI-KAndy" } ], "https://github.com/kappa54m/ComfyUI_Usability": [ [ - "LoadImageByPath", - "LoadImageDedup" + "KLoadImageByPath", + "KLoadImageByPathAdvanced", + "KLoadImageDedup" ], { "title_aux": "ComfyUI_Usability (WIP)" } ], - "https://github.com/komojini/ComfyUI_Prompt_Template_CustomNodes/raw/main/prompt_with_template.py": [ + "https://github.com/karthikg-09/ComfyUI-3ncrypt": [ [ - "ObjectPromptWithTemplate", - "PromptWithTemplate" + "Enhanced Save Image", + "Markdown Editor" ], { - "title_aux": "ComfyUI_Prompt_Template_CustomNodes" + "title_aux": "ComfyUI-KG09 [WIP]" + } + ], + "https://github.com/kevin314/ComfyUI-FastVideo": [ + [ + "DITConfig", + "InferenceArgs", + "LoadImagePath", + "TextEncoderConfig", + "VAEConfig", + "VideoGenerator" + ], + { + "title_aux": "ComfyUI-FastVideo" + } + ], + "https://github.com/kijai/ComfyUI-CV-VAE": [ + [ + "CV_VAE_Decode", + "CV_VAE_Encode", + "CV_VAE_Load" + ], + { + "title_aux": "ComfyUI-CV-VAE" + } + ], + "https://github.com/kijai/ComfyUI-DeepSeek-VL": [ + [ + "deepseek_vl_inference", + "deepseek_vl_model_loader" + ], + { + "title_aux": "ComfyUI nodes to use DeepSeek-VL" + } + ], + "https://github.com/kijai/ComfyUI-DiffSynthWrapper": [ + [ + "DiffSynthSampler", + "DownloadAndLoadDiffSynthExVideoSVD" + ], + { + "title_aux": "ComfyUI DiffSynth wrapper nodes" + } + ], + "https://github.com/kijai/ComfyUI-DiffusersSD3Wrapper": [ + [ + "LoadSD3DiffusersPipeline", + "SD3ControlNetSampler" + ], + { + "title_aux": "ComfyUI-DiffusersSD3Wrapper" + } + ], + "https://github.com/kijai/ComfyUI-EasyAnimateWrapper": [ + [ + "DownloadAndLoadEasyAnimateModel", + "EasyAnimateDecode", + "EasyAnimateImageEncoder", + "EasyAnimateResize", + "EasyAnimateSampler", + "EasyAnimateTextEncode" + ], + { + "title_aux": "ComfyUI-EasyAnimateWrapper [WIP]" + } + ], + "https://github.com/kijai/ComfyUI-FollowYourEmojiWrapper": [ + [ + "DownloadAndLoadFYEModel", + "FYECLIPEncode", + "FYEClipEmbedToComfy", + "FYELandmarkEncode", + "FYELandmarkToComfy", + "FYEMediaPipe", + "FYESampler", + "FYESamplerLong" + ], + { + "title_aux": "ComfyUI-FollowYourEmojiWrapper [WIP]" + } + ], + "https://github.com/kijai/ComfyUI-FramePackWrapper": [ + [ + "DownloadAndLoadFramePackModel", + "FramePackFindNearestBucket", + "FramePackLoraSelect", + "FramePackSampler", + "FramePackSingleFrameSampler", + "FramePackTorchCompileSettings", + "LoadFramePackModel" + ], + { + "title_aux": "ComfyUI-FramePackWrapper [WIP]" + } + ], + "https://github.com/kijai/ComfyUI-Hunyuan3DWrapper": [ + [ + "CV2InpaintTexture", + "DownloadAndLoadHy3DDelightModel", + "DownloadAndLoadHy3DPaintModel", + "Hy3DApplyTexture", + "Hy3DBPT", + "Hy3DBakeFromMultiview", + "Hy3DCameraConfig", + "Hy3DDelightImage", + "Hy3DDiffusersSchedulerConfig", + "Hy3DExportMesh", + "Hy3DFastSimplifyMesh", + "Hy3DGenerateMesh", + "Hy3DGenerateMeshMultiView", + "Hy3DGetMeshPBRTextures", + "Hy3DIMRemesh", + "Hy3DLoadMesh", + "Hy3DMeshInfo", + "Hy3DMeshUVWrap", + "Hy3DMeshVerticeInpaintTexture", + "Hy3DModelLoader", + "Hy3DNvdiffrastRenderer", + "Hy3DPostprocessMesh", + "Hy3DRenderMultiView", + "Hy3DRenderMultiViewDepth", + "Hy3DRenderSingleView", + "Hy3DSampleMultiView", + "Hy3DSetMeshPBRAttributes", + "Hy3DSetMeshPBRTextures", + "Hy3DTorchCompileSettings", + "Hy3DUploadMesh", + "Hy3DVAEDecode", + "Hy3DVAELoader", + "Hy3D_2_1SimpleMeshGen", + "MESHToTrimesh", + "TrimeshToMESH" + ], + { + "title_aux": "ComfyUI-ComfyUI-Hunyuan3DWrapper [WIP]" + } + ], + "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper": [ + [ + "DownloadAndLoadHyVideoTextEncoder", + "HunyuanVideoFresca", + "HunyuanVideoSLG", + "HyVideoBlockSwap", + "HyVideoCFG", + "HyVideoContextOptions", + "HyVideoCustomPromptTemplate", + "HyVideoDecode", + "HyVideoEmptyTextEmbeds", + "HyVideoEncode", + "HyVideoEncodeKeyframes", + "HyVideoEnhanceAVideo", + "HyVideoGetClosestBucketSize", + "HyVideoI2VEncode", + "HyVideoInverseSampler", + "HyVideoLatentPreview", + "HyVideoLoopArgs", + "HyVideoLoraBlockEdit", + "HyVideoLoraSelect", + "HyVideoModelLoader", + "HyVideoPromptMixSampler", + "HyVideoReSampler", + "HyVideoSTG", + "HyVideoSampler", + "HyVideoTeaCache", + "HyVideoTextEmbedBridge", + "HyVideoTextEmbedsLoad", + "HyVideoTextEmbedsSave", + "HyVideoTextEncode", + "HyVideoTextImageEncode", + "HyVideoTorchCompileSettings", + "HyVideoVAELoader" + ], + { + "title_aux": "ComfyUI-HunyuanVideoWrapper [WIP]" + } + ], + "https://github.com/kijai/ComfyUI-MMAudio": [ + [ + "MMAudioFeatureUtilsLoader", + "MMAudioModelLoader", + "MMAudioSampler", + "MMAudioVoCoderLoader" + ], + { + "title_aux": "ComfyUI-MMAudio [WIP]" + } + ], + "https://github.com/kijai/ComfyUI-MochiWrapper": [ + [ + "DownloadAndLoadMochiModel", + "MochiDecode", + "MochiDecodeSpatialTiling", + "MochiFasterCache", + "MochiImageEncode", + "MochiLatentPreview", + "MochiModelLoader", + "MochiSampler", + "MochiSigmaSchedule", + "MochiTextEncode", + "MochiTorchCompileSettings", + "MochiVAEEncoderLoader", + "MochiVAELoader" + ], + { + "title_aux": "ComfyUI-MochiWrapper [WIP]" + } + ], + "https://github.com/kijai/ComfyUI-VEnhancer": [ + [ + "DownloadAndLoadVEnhancerModel", + "VEnhancerSampler", + "VEnhancerUnpad" + ], + { + "title_aux": "ComfyUI nodes for VEnhancer [WIP]" + } + ], + "https://github.com/kijai/ComfyUI-VideoNoiseWarp": [ + [ + "GetWarpedNoiseFromVideo", + "GetWarpedNoiseFromVideoAnimateDiff", + "GetWarpedNoiseFromVideoCogVideoX", + "GetWarpedNoiseFromVideoHunyuan" + ], + { + "title_aux": "ComfyUI-VideoNoiseWarp [WIP]" + } + ], + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Advanced-Watermarks": [ + [ + "KimaraAIBatchImages", + "KimaraAIWatermarker" + ], + { + "title_aux": "Advanced Watermarking Tools [WIP]" + } + ], + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Image-From-URL": [ + [ + "KimaraAIImageFromURL" + ], + { + "title_aux": "ComfyUI-Kimara-AI-Image-From-URL [WIP]" + } + ], + "https://github.com/kk8bit/KayTool": [ + [ + "AB_Images", + "AIO_Translater", + "Abc_Math", + "Baidu_Translater", + "Color_Adjustment", + "Custom_Save_Image", + "Display_Any", + "Image_Composer", + "Image_Cropper", + "Image_Mask_Composer", + "Image_Resizer", + "Image_Size_Extractor", + "Kay_BiRefNet_Loader", + "Load_Image_Folder", + "Mask_Blur_Plus", + "Mask_Filler", + "Preview_Mask", + "Preview_Mask_Plus", + "RemBG_Loader", + "Remove_BG", + "Slider_10", + "Slider_100", + "Slider_1000", + "Strong_Prompt", + "Tencent_Translater", + "Text", + "To_Int" + ], + { + "title_aux": "KayTool" + } + ], + "https://github.com/kongds1999/ComfyUI_was_image": [ + [ + "ConvertGrayToImage", + "Generate Color Palette", + "Replace Color By Palette" + ], + { + "title_aux": "ComfyUI_was_image" + } + ], + "https://github.com/krich-cto/ComfyUI-Flow-Control": [ + [ + "CLIPLoaderGGUF", + "DualCLIPLoaderGGUF", + "FlowCheckpointPresetLoader", + "FlowClipCondition", + "FlowClipTextEncode", + "FlowConditioningAutoSwitch", + "FlowFluxPresetLoader", + "FlowGate", + "FlowImageAutoBatch", + "FlowImageCondition", + "FlowKSampler", + "FlowLatentAutoBatch", + "FlowLatentCondition", + "FlowLoraLoader", + "FlowLoraLoaderModelOnly", + "FlowModelManager", + "FlowSaveImage", + "QuadrupleCLIPLoaderGGUF", + "TripleCLIPLoaderGGUF", + "UnetLoaderGGUF", + "UnetLoaderGGUFAdvanced" + ], + { + "title_aux": "ComfyUI Flow Control [UNSTABLE]" + } + ], + "https://github.com/krisshen2021/comfyui_OpenRouterNodes": [ + [ + "OpenRouterOAINode_Infer", + "OpenRouterOAINode_Models", + "OpenRouterOAINode_hunyuanPrompt", + "OpenRouterOAINode_txt2imgPrompt" + ], + { + "title_aux": "comfyui_OpenRouterNodes [WIP]" + } + ], + "https://github.com/kuschanow/ComfyUI-SD-Slicer": [ + [ + "SdSlicer" + ], + { + "title_aux": "ComfyUI-SD-Slicer" + } + ], + "https://github.com/kxh/ComfyUI-ImageUpscaleWithModelMultipleTimes": [ + [ + "ImageUpscaleWithModelMultipleTimes" + ], + { + "title_aux": "ComfyUI-ImageUpscaleWithModelMultipleTimes" + } + ], + "https://github.com/kxh/ComfyUI-sam2": [ + [ + "Segment" + ], + { + "title_aux": "ComfyUI-sam2" + } + ], + "https://github.com/kycg/comfyui-Kwtoolset": [ + [ + "KWImageResizeByLongerSide", + "KWNagetiveString", + "KWPositiveString", + "KWShowAnything", + "KWanywhereString", + "KwtoolsetChangeOpenpose", + "KwtoolsetCheckpointLoaderwithpreview", + "KwtoolsetConditioningSelect", + "KwtoolsetGetHipMask", + "KwtoolsetGetHipMasktest", + "KwtoolsetGetImageSize", + "KwtoolsetGrowMaskPlus", + "KwtoolsetImageSelect", + "KwtoolsetLoadCheckpointsBatch", + "KwtoolsetLoraLoaderwithpreview", + "KwtoolsetMaskAdd", + "KwtoolsetModelSelect", + "LatentMatch" + ], + { + "title_aux": "comfyui-Kwtoolset" + } + ], + "https://github.com/kylegrover/comfyui-python-cowboy": [ + [ + "PythonScript" + ], + { + "title_aux": "comfyui-python-cowboy [UNSAFE]" } ], "https://github.com/laksjdjf/ssd-1b-comfyui": [ @@ -769,6 +7663,265 @@ "title_aux": "ssd-1b-comfyui" } ], + "https://github.com/lazybuttalented/ComfyUI_LBT": [ + [ + "LBT_CombineImagesFromBatch", + "LBT_CombineImagesFromList", + "LBT_CropByMask", + "LBT_GetFolderInfo", + "LBT_ListInfo", + "LBT_LoadImagesFromFolder", + "LBT_LoadImagesFromList", + "LBT_LoadTextFromFolder", + "LBT_LoadVideoFromFolder", + "LBT_SaveImage", + "LBT_StringToList", + "LBT_TextImageLibraryComparison" + ], + { + "title_aux": "ComfyUI_LBT [WIP]" + } + ], + "https://github.com/leadbreak/comfyui-faceaging": [ + [ + "AgeTransformationNode" + ], + { + "title_aux": "Face Aging [WIP]" + } + ], + "https://github.com/leeguandong/ComfyUI_AliControlnetInpainting": [ + [ + "AliInpaintingsampler", + "EcomXL_AddFG", + "EcomXL_Condition", + "EcomXL_Controlnet_ModelLoader", + "EcomXL_LoadImage", + "EcomXL_SDXL_Inpaint_ModelLoader", + "Flux_Controlnet_ModelLoader", + "Flux_Inpainting_ModelLoader", + "SD3_Controlnet_ModelLoader", + "SD3_Inpainting_ModelLoader" + ], + { + "title_aux": "ComfyUI_AliControlnetInpainting [WIP]" + } + ], + "https://github.com/leoleelxh/ComfyUI-MidjourneyNode-leoleexh": [ + [ + "MidjourneyGenerateNode", + "MidjourneyUpscaleNode" + ], + { + "title_aux": "ComfyUI-MidjourneyNode-leoleexh" + } + ], + "https://github.com/leon-etienne/ComfyUI_Scoring-Nodes": [ + [ + "AestheticScore", + "ImageSimilarity", + "MultiAestheticScore", + "MultiImageToTextSimilarity", + "MultiTextToImageSimilarity", + "TextSimilarity" + ], + { + "title_aux": "ComfyUI_Scoring-Nodes" + } + ], + "https://github.com/lggcfx2020/ComfyUI-LGGCFX-Tools": [ + [ + "LGGCFX_audio", + "LGGCFX_resolution", + "LGGCFX_time_frame", + "VRAMReserver" + ], + { + "title_aux": "ComfyUI-LGGCFX-Tools" + } + ], + "https://github.com/lgldlk/ComfyUI-img-tiler": [ + [ + "PC ImageListTileMaker", + "PC TileMaker", + "PC TilerImage", + "PC TilerSelect" + ], + { + "title_aux": "ComfyUI-img-tiler" + } + ], + "https://github.com/linhusyung/comfyui-Build-and-train-your-network": [ + [ + "Conv_layer", + "Normalization_layer", + "activation_function", + "create_dataset", + "create_intput", + "create_model", + "create_training_task", + "forward_test", + "linear_layer", + "pooling_layer", + "pre_train_layer", + "res_connect", + "show_dimensions", + "view_layer" + ], + { + "title_aux": "ComfyUI Build and Train Your Network [WIP]" + } + ], + "https://github.com/littleowl/ComfyUI-MV-HECV": [ + [ + "CombineSideBySide", + "DepthResize", + "StereoShift_Fast" + ], + { + "title_aux": "ComfyUI-MV-HECV" + } + ], + "https://github.com/locphan201/ComfyUI-Alter-Nodes": [ + [ + "AlterMMAudioConfig", + "AlterMMAudioFeatureUtils", + "AlterMMAudioModelLoader", + "AlterMMAudioSampler" + ], + { + "title_aux": "ComfyUI-Alter-Nodes" + } + ], + "https://github.com/locphan201/ComfyUI-Alternatives": [ + [ + "LoraApplier", + "LoraPreLoader" + ], + { + "title_aux": "ComfyUI-Alternatives" + } + ], + "https://github.com/logtd/ComfyUI-Fluxtapoz": [ + [ + "AddFluxFlow", + "ApplyFluxRaveAttention", + "ApplyRefFlux", + "ApplyRegionalConds", + "ConfigureModifiedFlux", + "CreateRegionalCond", + "FlowEditForwardSampler", + "FlowEditGuider", + "FlowEditReverseSampler", + "FlowEditSampler", + "FluxAttnOverride", + "FluxDeGuidance", + "FluxForwardODESampler", + "FluxInverseSampler", + "FluxNoiseMixer", + "FluxReverseODESampler", + "InFluxFlipSigmas", + "InFluxModelSamplingPred", + "OutFluxModelSamplingPred", + "PAGAttention", + "PrepareAttnBank", + "RFDoubleBlocksOverride", + "RFSingleBlocksOverride", + "RegionalStyleModelApply", + "SEGAttention" + ], + { + "title_aux": "ComfyUI-Fluxtapoz [WIP]" + } + ], + "https://github.com/logtd/ComfyUI-HunyuanLoom": [ + [ + "ConfigureModifiedHY", + "HYApplyRegionalConds", + "HYAttnOverride", + "HYCreateRegionalCond", + "HYFetaEnhance", + "HYFlowEditGuider", + "HYFlowEditGuiderAdv", + "HYFlowEditGuiderCFG", + "HYFlowEditGuiderCFGAdv", + "HYFlowEditSampler", + "HYForwardODESampler", + "HYInverseModelSamplingPred", + "HYReverseModelSamplingPred", + "HYReverseODESampler", + "HyVideoFlowEditSamplerWrapper" + ], + { + "title_aux": "ComfyUI-HunyuanLoom [WIP]" + } + ], + "https://github.com/logtd/ComfyUI-Veevee": [ + [ + "ApplyVVModel", + "FlowConfig", + "FlowGetFlow", + "GetRaftFlow", + "InjectionConfig", + "PivotConfig", + "RaveConfig", + "SCAConfig", + "TemporalConfig", + "VVSamplerSampler", + "VVUnsamplerSampler" + ], + { + "title_aux": "ComfyUI-Veevee [WIP]" + } + ], + "https://github.com/longgui0318/comfyui-one-more-step": [ + [ + "Calculate More Step Latent", + "Load More Step Model" + ], + { + "title_aux": "comfyui-one-more-step [WIP]" + } + ], + "https://github.com/longzoho/ComfyUI-Qdrant-Saver": [ + [ + "QDrantSaver" + ], + { + "title_aux": "ComfyUI-Qdrant-Saver" + } + ], + "https://github.com/lordwedggie/xcpNodes": [ + [ + "derpBaseAlpha", + "derpSlider", + "xcpDerpBool", + "xcpDerpFloat", + "xcpDerpINT", + "xcpDerpSeed" + ], + { + "title_aux": "xcpNodes [WIP]" + } + ], + "https://github.com/love2hina-net/ComfyUI-Local-Translator": [ + [ + "LocalTranslator" + ], + { + "title_aux": "ComfyUI-Local-Translator" + } + ], + "https://github.com/lrzjason/Comfyui-Condition-Utils": [ + [ + "LoadCondition", + "LoadConditionFromLoras", + "SaveCondition" + ], + { + "title_aux": "Comfyui-Condition-Utils [WIP]" + } + ], "https://github.com/ltdrdata/ComfyUI-Workflow-Component": [ [ "ComboToString", @@ -787,6 +7940,615 @@ "title_aux": "ComfyUI-Workflow-Component [WIP]" } ], + "https://github.com/lu64k/SK-Nodes": [ + [ + "Ask LLM", + "Color Transfer", + "Image Tracing Node", + "Load LLM", + "Load_Nemotron", + "Natural Saturation", + "OpenAI DAlle Node", + "OpenAI Text Node", + "SK Random File Name", + "SK Save Text", + "SK Text_String", + "SK load text", + "Tone Layer Quantize", + "grey_scale blend" + ], + { + "title_aux": "SK-Nodes" + } + ], + "https://github.com/lucafoscili/lf-nodes": [ + [ + "LF_Blend", + "LF_BlobToImage", + "LF_Bloom", + "LF_BlurImages", + "LF_Boolean", + "LF_Brightness", + "LF_CaptionImageWD14", + "LF_CharacterImpersonator", + "LF_CheckpointSelector", + "LF_CivitAIMetadataSetup", + "LF_Clarity", + "LF_ColorAnalysis", + "LF_CompareImages", + "LF_Contrast", + "LF_ControlPanel", + "LF_CreateMask", + "LF_Desaturation", + "LF_DiffusionModelSelector", + "LF_DisplayBoolean", + "LF_DisplayFloat", + "LF_DisplayInteger", + "LF_DisplayJSON", + "LF_DisplayPrimitiveAsJSON", + "LF_DisplayString", + "LF_EmbeddingSelector", + "LF_EmptyImage", + "LF_ExtractPromptFromLoraTag", + "LF_ExtractString", + "LF_FilmGrain", + "LF_Float", + "LF_GaussianBlur", + "LF_GetRandomKeyFromJSON", + "LF_GetValueFromJSON", + "LF_ImageClassifier", + "LF_ImageHistogram", + "LF_ImageListFromJSON", + "LF_ImageToSVG", + "LF_ImagesEditingBreakpoint", + "LF_ImagesSlideshow", + "LF_Integer", + "LF_IsLandscape", + "LF_KeywordCounter", + "LF_KeywordToggleFromJSON", + "LF_LLMChat", + "LF_LLMMessenger", + "LF_LUTApplication", + "LF_LUTGeneration", + "LF_Line", + "LF_LoadAndEditImages", + "LF_LoadCLIPSegModel", + "LF_LoadFileOnce", + "LF_LoadImages", + "LF_LoadLocalJSON", + "LF_LoadLoraTags", + "LF_LoadMetadata", + "LF_LoadWD14Model", + "LF_LoraAndEmbeddingSelector", + "LF_LoraSelector", + "LF_MarkdownDocGenerator", + "LF_MathOperation", + "LF_MultipleImageResizeForWeb", + "LF_Notify", + "LF_ParsePromptWithLoraTags", + "LF_RandomBoolean", + "LF_RegexReplace", + "LF_RegionExtractor", + "LF_ResizeImageByEdge", + "LF_ResizeImageToDimension", + "LF_ResizeImageToSquare", + "LF_ResolutionSwitcher", + "LF_SamplerSelector", + "LF_Saturation", + "LF_SaveImageForCivitAI", + "LF_SaveJSON", + "LF_SaveMarkdown", + "LF_SaveText", + "LF_SchedulerSelector", + "LF_Sepia", + "LF_SequentialSeedsGenerator", + "LF_SetValueInJSON", + "LF_ShuffleJSONKeys", + "LF_Something2Number", + "LF_Something2String", + "LF_SortJSONKeys", + "LF_SortTags", + "LF_SplitTone", + "LF_String", + "LF_StringReplace", + "LF_StringTemplate", + "LF_StringToJSON", + "LF_SwitchFloat", + "LF_SwitchImage", + "LF_SwitchInteger", + "LF_SwitchJSON", + "LF_SwitchString", + "LF_TiltShift", + "LF_UpdateUsageStatistics", + "LF_UpscaleModelSelector", + "LF_UrandomSeedGenerator", + "LF_UsageStatistics", + "LF_VAESelector", + "LF_Vibrance", + "LF_ViewImages", + "LF_Vignette", + "LF_WallOfText", + "LF_WriteJSON" + ], + { + "title_aux": "LF Nodes [UNSAFE]" + } + ], + "https://github.com/lum3on/comfyui_LLM_Polymath": [ + [ + "ConceptEraserNode", + "flux_context_preset", + "polymath_SaveAbsolute", + "polymath_StringListPicker", + "polymath_TextSplitter", + "polymath_chat", + "polymath_helper", + "polymath_scraper", + "polymath_settings", + "polymath_text_mask" + ], + { + "title_aux": "comfyui_LLM_Polymath [WIP]" + } + ], + "https://github.com/lum3on/comfyui_RollingDepth": [ + [ + "RollingDepthNode" + ], + { + "title_aux": "comfyui_RollingDepth [WIP]" + } + ], + "https://github.com/machinesarenotpeople/comfyui-energycost": [ + [ + "TimeCostEndNode", + "TimeStartNode" + ], + { + "title_aux": "comfyui-energycost" + } + ], + "https://github.com/maizerrr/comfyui-code-nodes": [ + [ + "BBoxDrawNode", + "BBoxParseNode", + "DummyNode", + "ImageBatchNode", + "MaskEditorNode", + "OpenAIGPTImageNode", + "OpenAIQueryNode" + ], + { + "title_aux": null + } + ], + "https://github.com/majocola/comfyui-standbybutton": [ + [ + "StandbyButton" + ], + { + "title_aux": "Standbybutton" + } + ], + "https://github.com/majorsauce/comfyui_indieTools": [ + [ + "IndCutByMask", + "IndLocalScale", + "IndPastImage", + "IndSolidify", + "IndYoloDetector" + ], + { + "title_aux": "comfyui_indieTools [WIP]" + } + ], + "https://github.com/mamamia1110/comfyui-boggerrr-nodes": [ + [ + "SeedEdit3", + "Seedream3" + ], + { + "title_aux": "Boggerrr Nodes [WIP]" + } + ], + "https://github.com/mamorett/ComfyUI-SmolVLM": [ + [ + "Smolvlm_Caption_Analyzer", + "Smolvlm_Flux_CLIPTextEncode", + "Smolvlm_SaveTags", + "Smolvlm_Tagger" + ], + { + "title_aux": "ComfyUI-SmolVLM [WIP]" + } + ], + "https://github.com/mamorett/comfyui_minicpm_vision": [ + [ + "MiniCPMVisionGGUF" + ], + { + "title_aux": "comfyui_minicpm_vision" + } + ], + "https://github.com/maoper11/comfyui_inteliweb_nodes": [ + [ + "InteliwebSystemCheck" + ], + { + "title_aux": "ComfyUI_Inteliweb_nodes" + } + ], + "https://github.com/marcueberall/ComfyUI-BuildPath": [ + [ + "Build Path Adv" + ], + { + "title_aux": "ComfyUI-BuildPath" + } + ], + "https://github.com/marduk191/comfyui-marnodes": [ + [ + "ImageToDevice", + "marduk191_5_text_string", + "marduk191_5way_text_switch", + "marduk191_s_random_latent", + "marduk191_workflow_settings" + ], + { + "author": "\u02f6marduk191", + "description": "marduk191s nodes.", + "nickname": "marduk191 workflow settings", + "title": "marduk191 workflow settings", + "title_aux": "comfyui-marnodes" + } + ], + "https://github.com/maruhidd/ComfyUI_Transparent-Background": [ + [ + "FillTransparentNode", + "RemoveBackgroundNode" + ], + { + "title_aux": "Transparent Background for ComfyUI" + } + ], + "https://github.com/mashb1t/comfyui-nodes-mashb1t": [ + [ + "mashb1t: LoadImage" + ], + { + "title_aux": "ComfyUI mashb1t nodes" + } + ], + "https://github.com/masmullin2000/ComfyUI-MMYolo": [ + [ + "MMFace_Finder" + ], + { + "title_aux": "ComfyUI-MMYolo" + } + ], + "https://github.com/matDobek/ComfyUI_duck": [ + [ + "Combine Images (duck)" + ], + { + "title_aux": "ComfyUI_duck" + } + ], + "https://github.com/maurorilla/ComfyUI-MisterMR-Nodes": [ + [ + "AddLogo", + "AddSingleObject", + "AddSingleText", + "ColorNode" + ], + { + "title_aux": "ComfyUI-glb-to-stl [WIP]" + } + ], + "https://github.com/mehbebe/ComfyLoraGallery": [ + [ + "LoraGallery" + ], + { + "title_aux": "ComfyLoraGallery [WIP]" + } + ], + "https://github.com/melMass/ComfyUI-Lygia": [ + [ + "LygiaProgram", + "LygiaUniforms" + ], + { + "title_aux": "ComfyUI-Lygia" + } + ], + "https://github.com/mico-world/comfyui_mico_node": [ + [ + "HFUNETLoader" + ], + { + "title_aux": "comfyui_mico_node" + } + ], + "https://github.com/mikebilly/Transparent-background-comfyUI": [ + [ + "Transparentbackground RemBg" + ], + { + "title_aux": "transparent-background-comfyui" + } + ], + "https://github.com/mikeymcfish/FishTools": [ + [ + "AnaglyphCreator", + "AnaglyphCreatorPro", + "Deptherize", + "LaserCutterFull", + "ShadowMap" + ], + { + "author": "Fish", + "description": "This extension provides tools for generating laser cutter ready files and other fun stuff", + "nickname": "FishTools", + "title": "FishTools", + "title_aux": "LaserCutterFull and Deptherize Nodes" + } + ], + "https://github.com/mikheys/ComfyUI-mikheys": [ + [ + "WanImageDimensions", + "WanOptimalResolution", + "\u0418\u043c\u044f\u0414\u043b\u044fComfyUI" + ], + { + "title_aux": "ComfyUI-mikheys" + } + ], + "https://github.com/minhtuannhn/comfyui-gemini-studio": [ + [ + "GetFileNameFromURL" + ], + { + "title_aux": "comfyui-gemini-studio [WIP]" + } + ], + "https://github.com/miragecoa/ComfyUI-LLM-Evaluation": [ + [ + "AccuracyNode", + "ClearVRAM", + "DeleteFile", + "DownloadHuggingFaceModel", + "F1ScoreNode", + "JSONToListNode", + "JsonResultGenerator", + "LLMLocalLoader", + "LoadFileNode", + "MathOperationNode", + "MyNode", + "PullOllamaModel", + "SelectItemByIndexNode", + "SelectItemByKeyNode", + "StringCombiner", + "StringPatternEnforcer", + "StringScraper", + "UpdateLLMResultToJson", + "WriteToJson" + ], + { + "title_aux": "ComfyUI-LLM-Evaluation [WIP]" + } + ], + "https://github.com/mliand/ComfyUI-Calendar-Node": [ + [ + "Comfy Calendar Node" + ], + { + "title_aux": "ComfyUI-Calendar-Node [WIP]" + } + ], + "https://github.com/mm-akhtar/comfyui-mask-selector-node": [ + [ + "Mask Selector" + ], + { + "title_aux": "comfyui-mask-selector-node" + } + ], + "https://github.com/mohamedsobhi777/ComfyUI-FramerComfy": [ + [ + "FramerComfyBooleanInputNode", + "FramerComfyFloatInputNode", + "FramerComfyInputImageNode", + "FramerComfyInputNumberNode", + "FramerComfyInputStringNode", + "FramerComfySaveImageNode" + ], + { + "title_aux": "ComfyUI-FramerComfy [WIP]" + } + ], + "https://github.com/molbal/comfy-url-fetcher": [ + [ + "URL Fetcher" + ], + { + "title_aux": "comfy-url-fetcher [WIP]" + } + ], + "https://github.com/moonwhaler/comfyui-moonpack": [ + [ + "DynamicLoraStack", + "DynamicStringConcat", + "ProportionalDimension", + "RegexStringReplace", + "SimpleStringReplace", + "VACELooperFrameMaskCreator" + ], + { + "title_aux": "comfyui-moonpack" + } + ], + "https://github.com/mr-krak3n/ComfyUI-Qwen": [ + [ + "Qwen2_Chat_Zho", + "Qwen2_ModelLoader_Zho", + "Qwen2_Zho" + ], + { + "title_aux": "ComfyUI-Qwen [CONFLICT]" + } + ], + "https://github.com/mrCodinghero/ComfyUI-Codinghero": [ + [ + "Image Size Calculator", + "Model Selector", + "Upscale Settings Calculator", + "Video Settings Calculator" + ], + { + "title_aux": "ComfyUI-Codinghero" + } + ], + "https://github.com/mut-ex/comfyui-gligengui-node": [ + [ + "GLIGEN_GUI" + ], + { + "title_aux": "ComfyUI GLIGEN GUI Node" + } + ], + "https://github.com/muvich3n/ComfyUI-Claude-I2T": [ + [ + "ClaudeImageToPrompt" + ], + { + "title_aux": "ComfyUI-Claude-I2T" + } + ], + "https://github.com/muvich3n/ComfyUI-Crop-Border": [ + [ + "CropImageBorder" + ], + { + "title_aux": "ComfyUI-Crop-Border" + } + ], + "https://github.com/naderzare/comfyui-inodes": [ + [ + "IAzureAiApi", + "ICutStrings", + "IFinalizeProject", + "IIfElse", + "ILLMExecute", + "ILLMExecute2", + "ILoadAzureAiApi", + "ILoadOllamaApi", + "IMergeImages", + "IMultilineSplitToStrings", + "IPassImage", + "IPostProcessLLMResponse", + "IPromptGenerator", + "IRandomChoiceToStrings", + "ISaveImage", + "ISaveText", + "IStringsCounter", + "IStringsToFile", + "IStringsToString", + "ITimesToStrings", + "IUploadToGoogleDrive", + "IZipImages" + ], + { + "title_aux": "comfyui-inodes" + } + ], + "https://github.com/nadushu/comfyui-handy-nodes": [ + [ + "EmptyRandomLatentImage", + "FilenamePromptExtractor", + "My Image Save", + "QueueBatchFixedSeed", + "TextCleaner", + "TextSplitter" + ], + { + "title_aux": "comfyui-handy-nodes [UNSAFE]" + } + ], + "https://github.com/neeltheninja/ComfyUI-TempFileDeleter": [ + [ + "TempCleaner" + ], + { + "title_aux": "ComfyUI-TempFileDeleter [UNSAFE]" + } + ], + "https://github.com/neeltheninja/ComfyUI-TextOverlay": [ + [ + "TextOverlay" + ], + { + "title_aux": "ComfyUI-TextOverlay" + } + ], + "https://github.com/neo0801/my-comfy-node": [ + [ + "DeepMosaicGetImageMosaicMask", + "DeepMosaicGetVideoMosaicMask", + "DeepMosaicRemoveImageMosaic", + "DeepMosaicRemoveVideoMosaic" + ], + { + "title_aux": "my-comfy-node" + } + ], + "https://github.com/neverbiasu/ComfyUI-ControlNeXt": [ + [ + "ControlNextPipelineConfig", + "ControlNextSDXL" + ], + { + "title_aux": "ComfyUI-ControlNeXt [WIP]" + } + ], + "https://github.com/neverbiasu/ComfyUI-DeepSeek": [ + [ + "DeepSeekCaller" + ], + { + "title_aux": "ComfyUI-DeepSeek" + } + ], + "https://github.com/neverbiasu/ComfyUI-Show-o": [ + [ + "ShowoImageCaptioning", + "ShowoImageInpainting", + "ShowoModelLoader", + "ShowoTextToImage" + ], + { + "title_aux": "ComfyUI-Show-o [WIP]" + } + ], + "https://github.com/neverbiasu/ComfyUI-StereoCrafter": [ + [ + "DepthSplattingModelLoader", + "DepthSplattingNode", + "InpaintingInferenceNode" + ], + { + "title_aux": "ComfyUI-StereoCrafter [WIP]" + } + ], + "https://github.com/newraina/ComfyUI-Remote-Save-Image": [ + [ + "RemoteImageSaver" + ], + { + "title_aux": "ComfyUI-Remote-Save-Image [UNSAFE]" + } + ], "https://github.com/nidefawl/ComfyUI-nidefawl": [ [ "BlendImagesWithBoundedMasks", @@ -813,6 +8575,16 @@ "title_aux": "ComfyUI-nidefawl [UNSAFE]" } ], + "https://github.com/nikkuexe/ComfyUI-ListDataHelpers": [ + [ + "List Difference", + "VHS Output Filter", + "VHS_VideoOutputFilter" + ], + { + "title_aux": "List Data Helper Nodes" + } + ], "https://github.com/nkchocoai/ComfyUI-PromptUtilities": [ [ "PromptUtilitiesConstString", @@ -820,12 +8592,147 @@ "PromptUtilitiesFormatString", "PromptUtilitiesJoinStringList", "PromptUtilitiesLoadPreset", - "PromptUtilitiesLoadPresetAdvanced" + "PromptUtilitiesLoadPresetAdvanced", + "PromptUtilitiesPromptWeight", + "PromptUtilitiesRandomPreset", + "PromptUtilitiesRandomPresetAdvanced", + "PromptUtilitiesReplaceOrInsertTag", + "PromptUtilitiesRoundPromptWeight", + "PromptUtilitiesSampleTags", + "PromptUtilitiesSampleTagsWithWeight" ], { "title_aux": "ComfyUI-PromptUtilities" } ], + "https://github.com/nobandegani/comfyui_ino_nodes": [ + [ + "CloudreveInit", + "CloudreveSignin", + "CloudreveUploadFile", + "IncrementBatchName", + "InoGetConditioning", + "InoGetSamplerConfig", + "InoLoadModels", + "Ino_BoolToSwitch", + "Ino_BranchImage", + "Ino_CalculateLoraConfig", + "Ino_CountFiles", + "Ino_DateTimeAsString", + "Ino_GetFolderBatchID", + "Ino_GetParentID", + "Ino_IntEqual", + "Ino_NotBoolean", + "Ino_ParseFilePath", + "Ino_RandomCharacterPrompt", + "Ino_SaveFile", + "Ino_SaveImage", + "Ino_StringToggleCase", + "Ino_VideoConvert", + "RemoveFile", + "RemoveFolder", + "Unzip", + "Zip" + ], + { + "title_aux": "Ino Custom Nodes" + } + ], + "https://github.com/nomcycle/ComfyUI_Cluster": [ + [ + "ClusterBroadcastLoadedImage", + "ClusterBroadcastTensor", + "ClusterEndSubgraph", + "ClusterExecuteCurrentWorkflow", + "ClusterExecuteWorkflow", + "ClusterFanInImages", + "ClusterFanOutImage", + "ClusterFanOutLatent", + "ClusterFanOutMask", + "ClusterFinallyFree", + "ClusterFlattenBatchedImageList", + "ClusterFreeNow", + "ClusterGatherImages", + "ClusterGatherLatents", + "ClusterGatherMasks", + "ClusterGetInstanceWorkItemFromBatch", + "ClusterInfo", + "ClusterInsertAtIndex", + "ClusterListenTensorBroadcast", + "ClusterSplitBatchToList", + "ClusterStartSubgraph", + "ClusterStridedReorder", + "ClusterUseSubgraph" + ], + { + "title_aux": "ComfyUI_Cluster [WIP]" + } + ], + "https://github.com/numq/comfyui-camera-capture-node": [ + [ + "CameraCapture" + ], + { + "title_aux": "comfyui-camera-capture-node" + } + ], + "https://github.com/odedgranot/comfyui-ffmpeg-node": [ + [ + "FFmpegNode" + ], + { + "title_aux": "ComfyUI FFmpeg Node [UNSAFE]" + } + ], + "https://github.com/odedgranot/comfyui_video_save_node": [ + [ + "VideoSaveNode" + ], + { + "title_aux": "ComfyUI Video Save Node [UNSAFE]" + } + ], + "https://github.com/orion4d/ComfyUI_unified_list_selector": [ + [ + "UnifiedListSelector" + ], + { + "title_aux": "Unified List Selector for ComfyUI [UNSAFE]" + } + ], + "https://github.com/osuiso-depot/comfyui-keshigom_custom": [ + [ + "KANI_Checkpoint_Loader_From_String", + "KANI_MathExpression", + "KANI_Multiplexer", + "KANI_ShowAnything", + "KANI_TextFind", + "KANI_TrueorFalse", + "RegExTextChopper", + "ResolutionSelector", + "ResolutionSelectorConst", + "StringNodeClass" + ], + { + "title_aux": "comfyui-keshigom_custom" + } + ], + "https://github.com/owengillett/ComfyUI-tilefusion": [ + [ + "VideoGridCombine" + ], + { + "title_aux": "ComfyUI-tilefusion" + } + ], + "https://github.com/oxysoft/Comfy-Compel": [ + [ + "CLIPEmbedCompel" + ], + { + "title_aux": "Comfy-Compel" + } + ], "https://github.com/oyvindg/ComfyUI-TrollSuite": [ [ "BinaryImageMask", @@ -838,18 +8745,170 @@ "title_aux": "ComfyUI-TrollSuite" } ], - "https://github.com/phineas-pta/comfy-trt-test": [ + "https://github.com/oztrkoguz/ComfyUI_Kosmos2_BBox_Cutter": [ [ - "TRT_Lora_Loader", - "TRT_Torch_Compile", - "TRT_Unet_Loader" + "Kosmos2SamplerSimple", + "KosmosLoader", + "Write" ], { - "author": "PTA", - "description": "attempt to use TensorRT with ComfyUI, not yet compatible with ComfyUI-Manager, see README for instructions", - "nickname": "comfy trt test", - "title": "TensorRT with ComfyUI (work-in-progress)", - "title_aux": "comfy-trt-test [WIP]" + "title_aux": "Kosmos2_BBox_Cutter Models" + } + ], + "https://github.com/p1atdev/comfyui-aesthetic-predictor": [ + [ + "LoadAestheticPredictorNode", + "PredictAestheticScore" + ], + { + "title_aux": "comfyui-aesthetic-predictor" + } + ], + "https://github.com/pacchikAI/ImagePromptBatch": [ + [ + "LoadImageandPrompt" + ], + { + "title_aux": "ImagePromptBatch [UNSAFE]" + } + ], + "https://github.com/pamparamm/ComfyUI-ppm": [ + [ + "AttentionCouplePPM", + "CFGLimiterGuider", + "CFGPPSamplerSelect", + "CLIPMicroConditioning", + "CLIPNegPip", + "CLIPTextEncodeBREAK", + "CLIPTextEncodeInvertWeights", + "CLIPTokenCounter", + "ConditioningZeroOutCombine", + "ConvertTimestepToSigma", + "DynSamplerSelect", + "DynamicThresholdingPost", + "DynamicThresholdingSimplePost", + "EmptyLatentImageAR", + "FreeU2PPM", + "Guidance Limiter", + "LatentOperationTonemapLuminance", + "LatentToMaskBB", + "LatentToWidthHeight", + "MaskCompositePPM", + "PPMSamplerSelect", + "RenormCFGPost", + "RescaleCFGPost", + "SamplerGradientEstimation" + ], + { + "title_aux": "ComfyUI-ppm" + } + ], + "https://github.com/papcorns/ComfyUI-Papcorns-Node-UploadToGCS": [ + [ + "UploadImageToGCS" + ], + { + "title_aux": "ComfyUI-Papcorns-Node-UploadToGCS" + } + ], + "https://github.com/parmarjh/ComfyUI-MochiWrapper-I2V": [ + [ + "DownloadAndLoadMochiModel", + "MochiDecode", + "MochiDecodeSpatialTiling", + "MochiFasterCache", + "MochiImageEncode", + "MochiLatentPreview", + "MochiModelLoader", + "MochiSampler", + "MochiSigmaSchedule", + "MochiTextEncode", + "MochiTorchCompileSettings", + "MochiVAEEncoderLoader", + "MochiVAELoader" + ], + { + "title_aux": "ComfyUI-MochiWrapper-I2V [WIP]" + } + ], + "https://github.com/paulhoux/Smart-Prompting": [ + [ + "SaveImageWithPrefix", + "TextAppend", + "TextCharacterSelector", + "TextEncodeReusable", + "TextFile", + "TextNegatives", + "TextSearchReplace", + "TextString", + "TextStyleSelector" + ], + { + "title_aux": "List Data Helper Nodes" + } + ], + "https://github.com/phamngoctukts/ComyUI-Tupham": [ + [ + "AreaCondition_v2", + "ConditionUpscale", + "MultiLatent", + "Runnodeselected", + "ghepanh" + ], + { + "title_aux": "ComyUI-Tupham" + } + ], + "https://github.com/pickles/ComfyUI-PyPromptGenerator": [ + [ + "PyPromptFileGeneratorNode", + "PyPromptGeneratorNode" + ], + { + "title_aux": "PyPromptGenerator [UNSAFE]" + } + ], + "https://github.com/pictorialink/ComfyUI-static-resource": [ + [ + "StaticResource" + ], + { + "title_aux": "comfyui-static-resource[UNSAFE]" + } + ], + "https://github.com/pinkpixel-dev/comfyui-llm-prompt-enhancer": [ + [ + "PromptEnhancer" + ], + { + "title_aux": "ComfyUI LLM Prompt Enhancer [WIP]" + } + ], + "https://github.com/pixixai/ComfyUI_pixixTools": [ + [ + "BaiduTranslateNode", + "ChatGLM4TranslateTextNode", + "ColorPicker", + "LoadTextFromFolderNode" + ], + { + "title_aux": "ComfyUI_Pixix-Tools [UNSAFE/WIP]" + } + ], + "https://github.com/pixuai/ComfyUI-PixuAI": [ + [ + "PromptSearch" + ], + { + "title_aux": "ComfyUI-PixuAI" + } + ], + "https://github.com/pmarmotte2/Comfyui-VibeVoiceSelector": [ + [ + "VibeVoiceSelector" + ], + { + "title_aux": "VibeVoiceSelector [WIP]" } ], "https://github.com/poisenbery/NudeNet-Detector-Provider": [ @@ -860,15 +8919,46 @@ "title_aux": "NudeNet-Detector-Provider [WIP]" } ], - "https://github.com/prismwastaken/comfyui-tools": [ + "https://github.com/pomelyu/cy-prompt-tools": [ [ - "Prism-RandomNormal" + "CY_LLM", + "CY_LoadPrompt", + "CY_LoadPrompt4", + "CY_LoadPromptPro", + "CY_PromptComposer", + "CY_TextBox" ], { - "title_aux": "prism-tools" + "title_aux": "cy-prompt-tools" } ], - "https://github.com/unanan/ComfyUI-clip-interrogator": [ + "https://github.com/power88/ComfyUI-PDiD-Nodes": [ + [ + "Blend Images", + "Check Character Tag", + "Get Image Colors", + "Get image size", + "List Operations", + "Make Image Gray", + "Nearest SDXL Resolution divided by 64" + ], + { + "title_aux": "ComfyUI-PDiD-Nodes [WIP]" + } + ], + "https://github.com/prabinpebam/anyPython": [ + [ + "Any Python" + ], + { + "author": "prabinpebam", + "description": "This node can execute Python operations with user-confirmed risk management", + "nickname": "anyPython", + "title": "anyPython v0.0.3", + "title_aux": "anyPython [UNSAFE]" + } + ], + "https://github.com/prodogape/ComfyUI-clip-interrogator": [ [ "ComfyUIClipInterrogator", "ShowText" @@ -877,6 +8967,1459 @@ "title_aux": "ComfyUI-clip-interrogator [WIP]" } ], + "https://github.com/przewodo/ComfyUI-Przewodo-Utils": [ + [ + "przewodo AppendToAnyList", + "przewodo BatchImagesFromPath", + "przewodo CompareNumbersToCombo", + "przewodo DebugLatentShapes", + "przewodo FloatIfElse", + "przewodo HasInputvalue", + "przewodo ImageScaleFactor", + "przewodo ImageSizer", + "przewodo IsInputDisabled", + "przewodo SwapAnyComparison", + "przewodo SwapAnyCondition", + "przewodo SwapImageComparison", + "przewodo WanFirstLastFirstFrameToVideo", + "przewodo WanGetMaxImageResolutionByAspectRatio", + "przewodo WanImageToVideoAdvancedSampler", + "przewodo WanModelTypeSelector", + "przewodo WanPromptChunkStacker", + "przewodo WanVideoEnhanceAVideo", + "przewodo WanVideoGenerationModeSelector", + "przewodo WanVideoLoraStack", + "przewodo WanVideoVaeDecode" + ], + { + "title_aux": "ComfyUI-Przewodo-Utils [WIP]" + } + ], + "https://github.com/pschroedl/ComfyUI-StreamDiffusion": [ + [ + "StreamDiffusionAdvancedConfig", + "StreamDiffusionCheckpointLoader", + "StreamDiffusionConfig", + "StreamDiffusionLPCheckpointLoader", + "StreamDiffusionLoraLoader", + "StreamDiffusionPrebuiltConfig", + "StreamDiffusionSampler", + "StreamDiffusionTensorRTEngineLoader" + ], + { + "title_aux": "ComfyUI-StreamDiffusion" + } + ], + "https://github.com/punicfaith/ComfyUI-GoogleAIStudio": [ + [ + "GoogleGeminiPrompt" + ], + { + "title_aux": "ComfyUI-GoogleAIStudio" + } + ], + "https://github.com/pururin777/ComfyUI-Manual-Openpose": [ + [ + "Manual Openpose Setter" + ], + { + "title_aux": "JasonW146" + } + ], + "https://github.com/pzzmyc/comfyui-sd3-simple-simpletuner": [ + [ + "sd not very simple simpletuner by hhy" + ], + { + "title_aux": "comfyui-sd3-simple-simpletuner" + } + ], + "https://github.com/qlikpetersen/ComfyUI-AI_Tools": [ + [ + "CreateListJSON", + "CreateListString", + "DoLogin", + "FixLinksAndRevLinks", + "HttpRequest", + "Image_Attachment", + "IncludeInSpiderData", + "JSON_Attachment", + "Json2String", + "LoadSpiderData", + "PNGtoImage", + "Query_OpenAI", + "RemoveCircularReferences", + "RunPython", + "RunPythonGriptapeTool", + "SaveSpiderData", + "SpiderCrawl", + "SpiderSplit", + "String2Json", + "String_Attachment", + "TextMultiSave" + ], + { + "author": "kierdran", + "description": "Tools for agentic testing", + "nickname": "ai_tools", + "title": "AI_Tools", + "title_aux": "ComfyUI-AI_Tools [UNSAFE]" + } + ], + "https://github.com/rakete/comfyui-rakete": [ + [ + "rakete.BuildString", + "rakete.GetWidgetValue", + "rakete.GpuGarbageCollector", + "rakete.JoinStrings" + ], + { + "author": "Rakete", + "description": "Rakete Comfy Custom Nodes", + "nickname": "Rakete Nodes", + "title": "Rakete Nodes", + "title_aux": "comfyui-rakete" + } + ], + "https://github.com/rakki194/ComfyUI_WolfSigmas": [ + [ + "GetImageSize", + "LatentVisualizeDirect", + "ListModelBlocks", + "ModifyActivationsSVD", + "VisualizeActivation", + "WolfDCTNoise", + "WolfPlotSamplerStatsNode", + "WolfProbeGetData", + "WolfProbeSetup", + "WolfSamplerCustomAdvancedPlotter", + "WolfSamplerScriptEvaluator", + "WolfScriptableEmptyLatent", + "WolfScriptableLatentAnalyzer", + "WolfScriptableNoise", + "WolfSigmaAddNoise", + "WolfSigmaClampT0", + "WolfSigmaClipValues", + "WolfSigmaGeometricProgression", + "WolfSigmaInsertValue", + "WolfSigmaNormalizeRange", + "WolfSigmaPolynomial", + "WolfSigmaPowerTransform", + "WolfSigmaQuantize", + "WolfSigmaRespaceLogCosine", + "WolfSigmaReverse", + "WolfSigmaReverseAndRescale", + "WolfSigmaScriptEvaluator", + "WolfSigmaShiftAndScale", + "WolfSigmaSlice", + "WolfSigmaTanhGenerator", + "WolfSigmasGet", + "WolfSigmasSet", + "WolfSigmasToJSON", + "WolfSimpleSamplerScriptEvaluator", + "WolfSimpleScriptableEmptyLatent" + ], + { + "title_aux": "ComfyUI_WolfSigmas [UNSAFE]" + } + ], + "https://github.com/ralonsobeas/ComfyUI-HDRConversion": [ + [ + "HDRConversion" + ], + { + "title_aux": "ComfyUI-HDRConversion [WIP]" + } + ], + "https://github.com/realm-weaver/ComfyUI-tile-seamstress-360": [ + [ + "RW_EquirectangularMask", + "RW_EquirectangularSphericalRotate", + "RW_PostSeamlessUpscale", + "RW_PreSeamlessUpscale", + "RW_ResizeToProperRatio", + "RW_SegmentBlend" + ], + { + "author": "realm-weaver", + "description": "Tools for touching up seams and poles on 360\u00b0 panoramic images and flat tilings.", + "nickname": "ts360", + "title": "Tile Seamstress 360", + "title_aux": "Tile Seamstress 360\u00b0 [WIP]" + } + ], + "https://github.com/redhottensors/ComfyUI-ODE": [ + [ + "ODESamplerSelect" + ], + { + "author": "RedHotTensors", + "description": "Adaptive ODE Solvers for ComfyUI", + "nickname": "ComfyUI-ODE", + "title": "ComfyUI-ODE", + "title_aux": "ComfyUI-ODE" + } + ], + "https://github.com/retech995/Save_Florence2_Bulk_Prompts": [ + [ + "SaveTextFlorence" + ], + { + "title_aux": "ComfyUI_SaveImageBulk [UNSAFE]" + } + ], + "https://github.com/rhinoflavored/comfyui_QT": [ + [ + "CSVDataMatcher", + "QTAutoCropByNPS", + "QTExcelImageReader", + "QTExcelReader", + "QTRandomSelectString", + "QTStringWrappingByNumber", + "QT_Alpha_Yaxis_Node", + "QT_AntiAliasing_Node", + "QT_Batch_Anything_Node", + "QT_Center_Rotation", + "QT_Character_Height_Difference", + "QT_Character_Size_Node", + "QT_Color_Image_Loop", + "QT_Content_Location_Node", + "QT_Crop_Alpha", + "QT_Crop_Alpha_V2", + "QT_Curves_Node", + "QT_Dictionary_Node", + "QT_Elements_Into_List_Node", + "QT_Float_To_Int", + "QT_Image_Array", + "QT_Image_Array_Circle", + "QT_Image_Array_Rectangle", + "QT_Image_Overlay", + "QT_Image_Overlay_BOOLEAN", + "QT_Image_Overlay_Rotation", + "QT_Image_Overlay_V2", + "QT_Image_Overlay_V3", + "QT_Image_Sorting_Node", + "QT_Image_Upscale_And_Crop_Node", + "QT_Image_Upscale_And_Crop_Node_V2", + "QT_Image_Upscale_And_Crop_Node_V3", + "QT_Image_Upscale_Node", + "QT_Image_Vision_Center_Node", + "QT_Join_Image_List_Node", + "QT_Line_Break", + "QT_Line_Break_V2", + "QT_List_Length", + "QT_List_Picker", + "QT_List_To_String", + "QT_Mask_Mix_Node", + "QT_Merge_Into_List_Node", + "QT_Pageturn_Node", + "QT_Pattern_Fill", + "QT_Piecewise_Function_Node", + "QT_Polar_Coordinate_Conversion_Node", + "QT_Rounded_Corner", + "QT_SUPIR_Upscale", + "QT_Simple_Text_Image_V2", + "QT_Sorting_Node", + "QT_Split_List_Node", + "QT_Split_List_Node_V2", + "QT_Split_Mask_Node", + "QT_Split_String", + "QT_String_Horizontal_To_Vertical", + "QT_String_To_List", + "QT_Text_Input_Switch_Node", + "QT_Text_Overlay_V2", + "QT_Text_To_Bool_Node", + "QT_Tilt_Transform", + "QT_Translucent_Node", + "QT_Vertical_Text_Overlay", + "QT_Video_Combine_Node" + ], + { + "title_aux": "comfyui_QT" + } + ], + "https://github.com/ricklove/ComfyUI-AutoSeg-SAM2": [ + [ + "AutoSegSAM2Node" + ], + { + "title_aux": "ComfyUI-AutoSeg-SAM2" + } + ], + "https://github.com/rickyars/sd-cn-animation": [ + [ + "SDCNAnimation", + "SDCNAnimationAdvanced" + ], + { + "title_aux": "sd-cn-animation" + } + ], + "https://github.com/rishipandey125/ComfyUI-FramePacking": [ + [ + "Batch Keyframes", + "Get Image Dimensions", + "Image Mix RGB", + "Pad Batch to 4n+1", + "Resize Frame", + "Slot Frame", + "Threshold Image", + "Trim Padded Batch" + ], + { + "title_aux": "ComfyUI-FramePacking [WIP]" + } + ], + "https://github.com/risunobushi/ComfyUI_FaceMesh_Eyewear_Mask": [ + [ + "FaceMeshEyewearMask", + "MaskFromFacialKeypoints", + "OpenPoseEyewearMask" + ], + { + "title_aux": "ComfyUI_FaceMesh_Eyewear_Mask" + } + ], + "https://github.com/risunobushi/ComfyUI_FocusMask": [ + [ + "FocusMaskExtractor", + "FocusOutlineExtractor" + ], + { + "title_aux": "ComfyUI_FocusMask" + } + ], + "https://github.com/risunobushi/ComfyUI_HEXtoRGB": [ + [ + "HexToRGB" + ], + { + "title_aux": "ComfyUI_HEXtoRGB" + } + ], + "https://github.com/ritikvirus/comfyui-terminal-modal-node": [ + [ + "terminal_node" + ], + { + "title_aux": "ComfyUI Terminal Command Node [UNSAFE]" + } + ], + "https://github.com/ronalds-eu/comfyui-plus-integrations": [ + [ + "ImagePassThrough", + "ImageToS3" + ], + { + "title_aux": "comfyui-plus-integrations [WIP]" + } + ], + "https://github.com/rouxianmantou/comfyui-rxmt-nodes": [ + [ + "CheckValueTypeNode", + "ConvertStrToIntNode", + "TextCombineWithCommaNode", + "WhyPromptTextNode" + ], + { + "title_aux": "comfyui-rxmt-nodes" + } + ], + "https://github.com/rphmeier/comfyui-videodepthanything": [ + [ + "VideoDepthAnythingLoader", + "VideoDepthAnythingProcess" + ], + { + "title_aux": "comfyui-videodepthanything" + } + ], + "https://github.com/ruka-game/rukalib_comfyui": [ + [ + "RukaDebugProbe", + "RukaPromptEnhancer" + ], + { + "title_aux": "ComfyUI RukaLib [WIP]" + } + ], + "https://github.com/ryanontheinside/ComfyUI-Livepeer": [ + [ + "BatchInfo", + "BatchIterator", + "LivepeerA2T", + "LivepeerAudioJobGetter", + "LivepeerI2I", + "LivepeerI2T", + "LivepeerI2V", + "LivepeerImageJobGetter", + "LivepeerLLM", + "LivepeerLive2Video", + "LivepeerSegment", + "LivepeerT2I", + "LivepeerT2S", + "LivepeerTextJobGetter", + "LivepeerUpscale", + "LivepeerVideoJobGetter" + ], + { + "title_aux": "ComfyUI-Livepeer [WIP]" + } + ], + "https://github.com/ryanontheinside/ComfyUI-MineWorld": [ + [ + "MineWorldGenerateFrame", + "MineWorldGenerateSequence", + "MineWorldInitialState", + "MineWorldModelLoader" + ], + { + "title_aux": "ComfyUI MineWorld Nodes [WIP]" + } + ], + "https://github.com/ryanontheinside/ComfyUI_YoloNasObjectDetection_Tensorrt": [ + [ + "YoloNasDetectionTensorrt" + ], + { + "title_aux": "ComfyUI_YoloNasObjectDetection_Tensorrt [WIP]" + } + ], + "https://github.com/sdfxai/SDFXBridgeForComfyUI": [ + [ + "SDFXClipTextEncode" + ], + { + "title_aux": "SDFXBridgeForComfyUI - ComfyUI Custom Node for SDFX Integration" + } + ], + "https://github.com/seancheung/comfyui-creative-nodes": [ + [ + "CreativeSkipFromFlow", + "CreativeSkipToFlow", + "CreativeStopFlow", + "ResolutionSelector", + "ResolutionXLSelector" + ], + { + "title_aux": "comfyui-creative-nodes" + } + ], + "https://github.com/sh570655308/Comfyui-RayNodes": [ + [ + "BorderMask", + "BracketedTagIndexMerger", + "Florence2TagProcessor", + "GrabberTagProcessor", + "ImageListConverter", + "ImageResizer", + "ImageSelector", + "MaskApplierAndCombiner", + "MaskBlackener", + "MaskProcessor", + "SaturationAdjuster", + "SaveImageWebsocket", + "TagArrayToLines", + "TagIndexMerger" + ], + { + "title_aux": "Comfyui-RayNodes [WIP]" + } + ], + "https://github.com/shadowcz007/ComfyUI-PuLID-Test": [ + [ + "ApplyPulid", + "PulidEvaClipLoader", + "PulidInsightFaceLoader", + "PulidModelLoader" + ], + { + "title_aux": "ComfyUI-PuLID [TEST]" + } + ], + "https://github.com/shadowcz007/Comfyui-EzAudio": [ + [ + "EZGenerateAudioNode", + "EZLoadModelNode" + ], + { + "title_aux": "Comfyui-EzAudio [WIP]" + } + ], + "https://github.com/shadowcz007/comfyui-CLIPSeg": [ + [ + "CLIPSeg_", + "CombineMasks_" + ], + { + "title_aux": "comfyui-CLIPSeg" + } + ], + "https://github.com/shadowcz007/comfyui-hydit-lowvram": [ + [ + "DiffusersCLIPLoader", + "DiffusersCheckpointLoader", + "DiffusersClipTextEncode", + "DiffusersControlNetLoader", + "DiffusersLoraLoader", + "DiffusersModelMakeup", + "DiffusersPipelineLoader", + "DiffusersSampler", + "DiffusersSchedulerLoader", + "DiffusersVAELoader" + ], + { + "title_aux": "comfyui-hydit" + } + ], + "https://github.com/shinich39/comfyui-nothing-happened": [ + [ + "NothingHappened" + ], + { + "author": "shinich39", + "description": "Save image and keep metadata.", + "nickname": "comfyui-nothing-happened", + "title": "comfyui-nothing-happened", + "title_aux": "comfyui-nothing-happened" + } + ], + "https://github.com/shinich39/comfyui-run-js": [ + [ + "RunJS" + ], + { + "author": "shinich39", + "description": "Manipulate workflow via javascript on node.", + "nickname": "comfyui-run-js", + "title": "comfyui-run-js", + "title_aux": "comfyui-run-js [UNSAFE]" + } + ], + "https://github.com/shirazdesigner/CLIPTextEncodeAndEnhancev4": [ + [ + "CLIPTextEncodeAndEnhance" + ], + { + "title_aux": "CLIPTextEncodeAndEnhancev4 (shirazdesigner)" + } + ], + "https://github.com/shuanshuan/ComfyUI_CheckPointLoader_Ext": [ + [ + "CheckpointLoaderExt" + ], + { + "title_aux": "ComfyUI_CheckPointLoader_Ext [WIP]" + } + ], + "https://github.com/silent-rain/ComfyUI-SilentRain": [ + [ + "Example" + ], + { + "title_aux": "ComfyUI-SilentRain" + } + ], + "https://github.com/silveroxides/ComfyUI_ReduxEmbedToolkit": [ + [ + "LoadReduxEmb", + "LoadT5XXLConds", + "LoadT5XXLEmb", + "SaveCondsEmb", + "SaveReduxEmb" + ], + { + "title_aux": "ComfyUI_ReduxEmbedToolkit" + } + ], + "https://github.com/simonjaq/ComfyUI-sjnodes": [ + [ + "CrossFadeVideo", + "InpaintCropImprovedGPU", + "InpaintStitchImprovedGPU", + "LoadStitcherFromFile", + "LogCRec709Convert", + "SaveStitcherToFile", + "SmoothTemporalMask", + "WanVideoVACEExtend" + ], + { + "title_aux": "ComfyUI-sjnodes" + } + ], + "https://github.com/siyonomicon/ComfyUI-Pin": [ + [ + "PinGridNode" + ], + { + "title_aux": "ComfyUI-Pin" + } + ], + "https://github.com/slezica/comfyui-personal": [ + [ + "GenerateImage", + "OwlDetector", + "UpscaleImage", + "UseCheckpoint", + "UseControlNet", + "UseIPAdapter", + "UseImage", + "UseInfiniteYou", + "UseInstantID", + "UseLora", + "UseStyleModel" + ], + { + "title_aux": "slezica/ComfyUI Personal Nodes" + } + ], + "https://github.com/smthemex/ComfyUI_GPT_SoVITS_Lite": [ + [ + "GPT_SoVITS_LoadModel", + "GPT_SoVITS_Sampler" + ], + { + "title_aux": "ComfyUI_GPT_SoVITS_Lite" + } + ], + "https://github.com/smthemex/ComfyUI_MangaNinjia": [ + [ + "MangaNinjiaLoader", + "MangaNinjiaSampler", + "MarkImageNode" + ], + { + "title_aux": "ComfyUI_MangaNinjia [WIP]" + } + ], + "https://github.com/sofakid/dandy": [ + [ + "DandyBooleanCollector", + "DandyBooleanPreview", + "DandyBooleanSplitter", + "DandyCss", + "DandyCssLoader", + "DandyEditorSettings", + "DandyFloatCollector", + "DandyFloatPreview", + "DandyFloatSplitter", + "DandyGradient", + "DandyHtml", + "DandyHtmlLoader", + "DandyImageCollector", + "DandyIntCollector", + "DandyIntPreview", + "DandyIntSplitter", + "DandyJs", + "DandyJsLoader", + "DandyJson", + "DandyJsonLoader", + "DandyLand", + "DandyMaskCollector", + "DandyP5JsDraw", + "DandyP5JsLoader", + "DandyP5JsSetup", + "DandyPixelsJs", + "DandyPixiJs", + "DandyPrompt", + "DandyString", + "DandyStringArrayCollector", + "DandyStringArraySplitter", + "DandyStringCatCollector", + "DandyStringPreview", + "DandyUrlLoader", + "DandyWasmLoader", + "DandyYaml", + "DandyYamlLoader" + ], + { + "title_aux": "dandy [UNSAFE]" + } + ], + "https://github.com/songtianhui/ComfyUI-DMM": [ + [ + "DMMApply", + "DMMLoader" + ], + { + "title_aux": "ComfyUI-DMM [WIP]" + } + ], + "https://github.com/sourceful-official/ComfyUI_InstructPixToPixConditioningLatent": [ + [ + "InstructPixToPixConditioningLatent" + ], + { + "title_aux": "ComfyUI_InstructPixToPixConditioningLatent [WIP]" + } + ], + "https://github.com/sourceful-official/comfyui-sourceful-official": [ + [ + "FalFluxLoraSourcefulOfficial", + "FalIcLightV2SourcefulOfficial", + "SourcefulOfficialComfyuiIncontextThreePanels" + ], + { + "title_aux": "comfyui-sourceful-official" + } + ], + "https://github.com/sprited-ai/sprited-comfyui-nodes": [ + [ + "LoopTrimNode", + "PreviewVideo", + "SliceBatch", + "SliceLatents", + "URLToVideo", + "VideoDownloader", + "VideoShotSplitter" + ], + { + "title_aux": "Sprited ComfyUI Nodes [WIP]" + } + ], + "https://github.com/sschleis/sschl-comfyui-notes": [ + [ + "AddNumbers", + "Character", + "CombineStrings", + "Connector", + "FloatToStr", + "Gallery", + "InputText", + "SSchlTextEncoder", + "ShowText", + "TextAppender" + ], + { + "title_aux": "sschl-comfyui-notes" + } + ], + "https://github.com/sswink/comfyui-lingshang": [ + [ + "LS_ALY_Seg_Body_Utils", + "LS_ALY_Seg_Body_Utils_Return_crop", + "LS_ALY_Seg_Clothes_Utils", + "LS_ALY_Seg_Common_Utils", + "LS_ALY_Seg_Utils", + "LS_ALY_UploadToOssAndGetUrl", + "LS_DigImageByMask", + "LS_GrowMaskWithBlur", + "LS_LoadMaskFromUrl", + "LS_SaveImageToOss" + ], + { + "title_aux": "comfyui-lingshang" + } + ], + "https://github.com/stalkervr/comfyui-custom-path-nodes": [ + [ + "BatchImageCrop", + "ContextPipeIn", + "ContextPipeOut", + "ContextPipeReroute", + "DataFileLoader", + "ImageGridCropper", + "PathPipeIn", + "PathPipeOut", + "PathPipeReroute", + "PromptPartConcatenation", + "PromptPartJoin", + "SavePath", + "StringConcatenation" + ], + { + "title_aux": "comfyui-custom-path-nodes [UNSAFE]" + } + ], + "https://github.com/steelan9199/ComfyUI-Teeth": [ + [ + "teeth FindContours", + "teeth Gemini2", + "teeth GetFirstSeg", + "teeth GetValueByIndexFromList", + "teeth ImageGridLines", + "teeth LoadTextFile", + "teeth RunPythonCode", + "teeth SaveTextFile", + "teeth SplitGridImage", + "teeth TextSplitByDelimiter" + ], + { + "title_aux": "ComfyUI-Teeth [UNSAFE]" + } + ], + "https://github.com/sthao42/comfyui-melodkeet-tts": [ + [ + "MelodkeetTTS" + ], + { + "title_aux": "ComfyUI Melodkeet TTS" + } + ], + "https://github.com/strhwste/comfyui_csv_utils": [ + [ + "ExtractFromJSON", + "SearchCSVByRow", + "WriteCSVByRow" + ], + { + "title_aux": "CSV Utils [WIP]" + } + ], + "https://github.com/stutya/ComfyUI-Terminal": [ + [ + "Terminal" + ], + { + "title_aux": "ComfyUI-Terminal [UNSAFE]" + } + ], + "https://github.com/subnet99/ComfyUI-URLLoader": [ + [ + "URLAudioDownloader", + "URLImageDownloader" + ], + { + "title_aux": "ComfyUI-URLLoader" + } + ], + "https://github.com/sugarkwork/comfyui_image_crop": [ + [ + "CropReapply", + "CropTransparent", + "ExpandMultiple", + "RestoreCrop" + ], + { + "title_aux": "comfyui_image_crop" + } + ], + "https://github.com/sugarkwork/comfyui_my_img_util": [ + [ + "Auto Image Selector", + "Simple Image Rotate" + ], + { + "title_aux": "comfyui_my_img_util" + } + ], + "https://github.com/sugarkwork/comfyui_psd": [ + [ + "Convert PSD to Image", + "PSDLayer", + "Save PSD" + ], + { + "title_aux": "comfyui_psd [WIP]" + } + ], + "https://github.com/suncat2ps/ComfyUI-SaveImgNextcloud": [ + [ + "SaveImageNextcloud" + ], + { + "title_aux": "ComfyUI-SaveImgNextcloud" + } + ], + "https://github.com/system-out-cho/displayHistory_ComfyUI": [ + [ + "Client Proxy", + "DisplayHistory", + "Example", + "Image Selector" + ], + { + "title_aux": "displayHistory [WIP]" + } + ], + "https://github.com/takoyaki1118/ComfyUI_PromptExtractor": [ + [ + "CustomLoadImageWithPathNode", + "PromptExtractorNode" + ], + { + "title_aux": "ComfyUI_PromptExtractor" + } + ], + "https://github.com/talon468/ComfyUI-Rpg-Architect": [ + [ + "ComfyUI Rpg Architect \ud83e\ude84" + ], + { + "title_aux": "ComfyUI-Rpg-Architect [WIP]" + } + ], + "https://github.com/tankenyuen-ola/comfyui-env-variable-reader": [ + [ + "EnvironmentVariableNode" + ], + { + "title_aux": "comfyui-env-variable-reader [UNSAFE]" + } + ], + "https://github.com/tankenyuen-ola/comfyui-wanvideo-scheduler-loop": [ + [ + "FloatRangeLoop", + "ParametersRangeLoop", + "WanVideoAllParametersLoop", + "WanVideoSchedulerInfo", + "WanVideoSchedulerLoop", + "WanVideoSchedulerSelector" + ], + { + "title_aux": "comfyui-wanvideo-scheduler-loop" + } + ], + "https://github.com/tanmoy-it/comfyuiCustomNode": [ + [ + "DownloadImageDataUrl" + ], + { + "title_aux": "comfyuiCustomNode" + } + ], + "https://github.com/tc888/ComfyUI_Save_Flux_Image": [ + [ + "Cfg Literal", + "Int Literal", + "Sampler Select", + "Save Flux Image with Metadata", + "Scheduler Select", + "Seed Gen", + "String Literal", + "Unet Select", + "Width/Height Literal" + ], + { + "title_aux": "ComfyUI_Save_Flux_Image" + } + ], + "https://github.com/techidsk/comfyui_molook_nodes": [ + [ + "ImageOutpaintPadding(Molook)", + "MaskExpand(Molook)", + "OpenAIProvider(Molook)" + ], + { + "title_aux": "comfyui_molook_nodes [WIP]" + } + ], + "https://github.com/techtruth/ComfyUI-Dreambooth": [ + [ + "DreamboothNode" + ], + { + "title_aux": "ComfyUI-Dreambooth" + } + ], + "https://github.com/techzuhaib/ComfyUI-CacheImageNode": [ + [ + "CacheImageNode" + ], + { + "title_aux": "ComfyUI-CacheImageNode" + } + ], + "https://github.com/tg-tjmitchell/comfyui-rsync-plugin": [ + [ + "FileTransferHelperNode" + ], + { + "title_aux": "ComfyUI File Transfer Plugin (comfyui-rsync-plugin) [UNSAFE]" + } + ], + "https://github.com/thaakeno/comfyui-universal-asset-downloader": [ + [ + "UniversalAssetDownloader" + ], + { + "title_aux": "comfyui-universal-asset-downloader [UNSAFE/WIP]" + } + ], + "https://github.com/thavocado/comfyui-danbooru-lookup": [ + [ + "DanbooruFAISSLookup", + "DanbooruFAISSLookupAdvanced", + "WD14ToConditioning" + ], + { + "author": "ComfyUI Danbooru Lookup", + "description": "ComfyUI node that performs FAISS cosine similarity lookup on Danbooru embeddings using CLIP conditioning inputs.", + "nickname": "Danbooru Lookup", + "title": "Danbooru FAISS Lookup", + "title_aux": "comfyui-danbooru-lookup" + } + ], + "https://github.com/thderoo/ComfyUI-_topfun_s_nodes": [ + [ + "ConditioningPerturbation", + "TextGenerator" + ], + { + "title_aux": "_topfun_s_nodes" + } + ], + "https://github.com/threadedblue/MLXnodes": [ + [ + "MLXImg2Img", + "MLXText2Image" + ], + { + "title_aux": "MLXnodes [WIP]" + } + ], + "https://github.com/tjorbogarden/my-useful-comfyui-custom-nodes": [ + [ + "ImageSizer", + "KSamplerSDXLAdvanced" + ], + { + "title_aux": "my-useful-comfyui-custom-nodes" + } + ], + "https://github.com/tnil25/ComfyUI-TJNodes": [ + [ + "ExpandMaskDir", + "OverlayMaskNode", + "Tracker" + ], + { + "title_aux": "ComfyUI-TJNodes [WIP]" + } + ], + "https://github.com/tom-doerr/dspy_nodes": [ + [ + "Accepted Examples Viewer", + "Dataset Reader", + "DynamicOptionsNode", + "Few Shot CoT", + "Few Shot Control", + "Few Shot Review", + "FewShotReview", + "FewShotReviewServer", + "Model", + "Predict", + "Print Hello World", + "Show Text", + "ShowText|pysssss", + "String List Viewer", + "String Splitter", + "StringReverser", + "StringSplitter", + "Text Field", + "Text Output" + ], + { + "title_aux": "DSPy Nodes [WIP]" + } + ], + "https://github.com/tracerstar/comfyui-p5js-node": [ + [ + "HYPE_P5JSImage" + ], + { + "title_aux": "comfyui-p5js-node" + } + ], + "https://github.com/trampolin/comfy-ui-scryfall": [ + [ + "ScryfallCardInfoNode", + "ScryfallDecklistParserNode", + "ScryfallImageExtractorNode", + "ScryfallSearchNode" + ], + { + "title_aux": "comfy-ui-scryfall" + } + ], + "https://github.com/trashgraphicard/Albedo-Sampler-for-ComfyUI": [ + [ + "Make Seamless Tile", + "Sample Image" + ], + { + "title_aux": "Albedo-Sampler-for-ComfyUI" + } + ], + "https://github.com/trashkollector/TKVideoZoom": [ + [ + "TKVideoFuse", + "TKVideoSmoothLooper", + "TKVideoSpeedZones", + "TKVideoStitcher", + "TKVideoZoom" + ], + { + "title_aux": "ComfyUI-TKVideoZoom [WIP]" + } + ], + "https://github.com/truebillyblue/lC.ComfyUI_epistemic_nodes": [ + [ + "AddApplicationNode", + "AddInterpretationNode", + "AddObservationNode", + "CreatePbiNode", + "CreateRDSOTMComponentNode", + "GetMadaObjectNode", + "InitiateOiaNode", + "InitiateRDSOTMCycleNode", + "LcADKConfigNode", + "LcADKGuiInteractionNode", + "LcAddCommentToPbiNode", + "LcAnchorClickNode", + "LcApiLlmAgentNode", + "LcApplyDoneNode", + "LcEpistemicPipelineNode", + "LcFieldClickNode", + "LcFrameClickNode", + "LcGetPbiDetailsNode", + "LcKeymapClickNode", + "LcLinkPbiNode", + "LcMemWriteNode", + "LcReflectBoomNode", + "LcStartleNode", + "LcWebLlmAgentNode", + "QueryPbisNode", + "ShowTextNode", + "StoreMadaObjectNode", + "UpdatePbiNode", + "ViewOiaCycleNode", + "ViewRDSOTMCycleDetailsNode" + ], + { + "title_aux": "lC.ComfyUI_epistemic_nodes [WIP]" + } + ], + "https://github.com/tuckerdarby/ComfyUI-TDNodes": [ + [ + "HandTrackerNode", + "InstanceDiffusionLoader", + "InstanceTrackerPrompt", + "KSamplerBatchedNode", + "KSamplerRAVE", + "KSamplerTF", + "TemporalNetPreprocessor", + "TrackerNode", + "VideoTrackerPromptNode" + ], + { + "title_aux": "ComfyUI-TDNodes [WIP]" + } + ], + "https://github.com/turskeli/comfyui-SetWallpaper": [ + [ + "SetWallpaper" + ], + { + "title_aux": "comfyui-SetWallpaper" + } + ], + "https://github.com/twj515895394/ComfyUI-LowMemVideoSuite": [ + [ + "FFmpeg \u89c6\u9891\u5408\u6210\uff08\u4f4e\u5185\u5b58\uff09 / FFmpegVideoCombineLowMem", + "SaveImageWebsocket", + "\u4fdd\u5b58\u5355\u5e27\u5230\u78c1\u76d8 / SaveSingleFrameToDisk", + "\u6279\u91cf\u4fdd\u5b58\u5e27\u5230\u78c1\u76d8 / SaveFrameBatchToDisk" + ], + { + "title_aux": "ComfComfyUI-LowMemVideoSuite [UNSAFE]" + } + ], + "https://github.com/tzsoulcap/ComfyUI-SaveImg-W-MetaData": [ + [ + "CAP Cfg Literal", + "CAP Checkpoint Selector", + "CAP Int Literal", + "CAP Load Image with Metadata", + "CAP Sampler Selector", + "CAP Save Image w/Metadata", + "CAP Scheduler Selector", + "CAP Seed Generator", + "CAP String Literal", + "CAP Tag Image", + "CAP Width/Height Literal" + ], + { + "title_aux": "ComfyUI-SaveImg-W-MetaData" + } + ], + "https://github.com/umisetokikaze/comfyui_mergekit": [ + [ + "DefineSaveName", + "LoadLR", + "LoadTarget", + "Merge", + "SetLayer", + "SetModels", + "SetTokenizer", + "get_skip" + ], + { + "title_aux": "comfyui_mergekit [WIP]" + } + ], + "https://github.com/unanan/ComfyUI-Dist": [ + [ + "LoadCheckpointFromLAN", + "LoadCheckpointFromURL", + "LoadImageFromLAN", + "LoadImageFromURL", + "LoadWorkflowFromLAN", + "LoadWorkflowFromURL" + ], + { + "title_aux": "ComfyUI-Dist [WIP]" + } + ], + "https://github.com/usman2003/ComfyUI-Classifiers": [ + [ + "GenderClassificationNode" + ], + { + "title_aux": "ComfyUI-Classifiers" + } + ], + "https://github.com/usman2003/ComfyUI-RaceDetect": [ + [ + "RaceDetectionNodeV2" + ], + { + "title_aux": "ComfyUI-RaceDetect" + } + ], + "https://github.com/usrname0/ComfyUI-AllergicPack": [ + [ + "FolderFileCounter_Allergic", + "IncrementorPlus" + ], + { + "title_aux": "ComfyUI-AllergicPack [WIP]" + } + ], + "https://github.com/var1ableX/ComfyUI_Accessories": [ + [ + "ACC_AnyCast", + "AccMakeListNode", + "GetMaskDimensions", + "GetRandomDimensions", + "isImageEmpty", + "isMaskEmpty" + ], + { + "title_aux": "ComfyUI_Accessories" + } + ], + "https://github.com/vchopine/ComfyUI_Toolbox": [ + [ + "ModelAspectRatioSelector" + ], + { + "title_aux": "ComfyUI_Toolbox" + } + ], + "https://github.com/viik420/AdvancedModelDownloader": [ + [ + "AdvancedDownloader" + ], + { + "title_aux": "AdvancedModelDownloader [UNSAFE]" + } + ], + "https://github.com/virallover/comfyui-virallover": [ + [ + "BrightnessCorrectionNode", + "ConcatHorizontalWithMask", + "DeHaloAlphaWithMaskTorch", + "DepthFitter", + "DownloadAndLoadLoraModelOnly", + "EdgeNoise", + "FeatheredSharpen", + "IterativeDeHaloAlphaWithMaskTorch" + ], + { + "title_aux": "comfyui-virallover" + } + ], + "https://github.com/visualbruno/ComfyUI-QRemeshify": [ + [ + "QRemeshify" + ], + { + "title_aux": "ComfyUI-QRemeshify" + } + ], + "https://github.com/vladp0727/Comfyui-with-Furniture": [ + [ + "GetMaskFromAlpha", + "GetQuadrilateralOutfit" + ], + { + "title_aux": "ComfyUI Simple Image Tools [WIP]" + } + ], + "https://github.com/vovler/ComfyUI-vovlerTools": [ + [ + "WD14BlackListLoader", + "WD14TaggerAndImageFilterer", + "WD14TensorRTModelLoader", + "WDTaggerONNXtoTENSORRT" + ], + { + "title_aux": "comfyui-vovlertools" + } + ], + "https://github.com/wTechArtist/ComfyUI_VVL_Segmentation": [ + [ + "Mask2FormerPanoptic", + "OneFormerPanoptic" + ], + { + "title_aux": "ComfyUI_VVL_Segmentation [WIP]" + } + ], + "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera": [ + [ + "ImageSequenceCameraEstimator", + "VVLColmapMVSDepthNode" + ], + { + "title_aux": "ComfyUI_VVL_VideoCamera" + } + ], + "https://github.com/wTechArtist/ComfyUI_vvl_BBOX": [ + [ + "vvl_BBoxInput" + ], + { + "title_aux": "ComfyUI_vvl_BBOX" + } + ], + "https://github.com/walterFeng/ComfyUI-Image-Utils": [ + [ + "Calculate Image Brightness", + "Calculate Image Contrast", + "Calculate Image Saturation", + "Color Similarity Checker", + "Crop Mask Util", + "Displace Filter", + "Image Fix (tensor shape convert)", + "Load Image (By Url)", + "Mask Refine (Aliyun)" + ], + { + "title_aux": "ComfyUI-Image-Utils" + } + ], + "https://github.com/warshanks/Shank-Tools": [ + [ + "HeightWidth", + "ResolutionDivider", + "TileCalculator" + ], + { + "title_aux": "Shank-Tools" + } + ], + "https://github.com/wasilone11/comfyui-sync-translate-node": [ + [ + "SyncTranslateInputNode", + "SyncTranslateNode" + ], + { + "title_aux": "comfyui-sync-translate-node" + } + ], + "https://github.com/watarika/ComfyUI-Text-Utility": [ + [ + "LoadTextFile", + "PromptsFromTextbox", + "RemoveComments", + "ReplaceVariables", + "SaveTextFile", + "StringsFromTextbox" + ], + { + "title_aux": "ComfyUI-Text-Utility [UNSAFE]" + } + ], + "https://github.com/watarika/ComfyUI-exit": [ + [ + "ExitComfyUI", + "FetchApi" + ], + { + "title_aux": "ComfyUI-exit [UNSAFE]" + } + ], + "https://github.com/waynepimpzhang/comfyui-opencv-brightestspot": [ + [ + "FindBrightestSpot" + ], + { + "title_aux": "FindBrightestSpot [WIP]" + } + ], + "https://github.com/whmc76/ComfyUI-AudioSuiteAdvanced": [ + [ + "AudioConcatenateFree", + "AudioSeparation", + "CharacterVocalExtractor", + "CharacterVocalExtractorMultiTrack", + "CombineAudioFromList", + "IndexSelectFromList", + "ListLength", + "LongTextSplitter", + "MakeAudioBatch", + "MultiSpeakerSpeechToText", + "SubtitleFileLoader" + ], + { + "title_aux": "ComfyUI-AudioSuiteAdvanced [WIP]" + } + ], + "https://github.com/wildminder/ComfyUI-MagCache": [ + [ + "MagCache" + ], + { + "title_aux": "ComfyUI-MagCache [NAME CONFLICT|WIP]" + } + ], + "https://github.com/willblaschko/ComfyUI-Unload-Models": [ + [ + "DeleteAnyObject", + "UnloadAllModels", + "UnloadOneModel" + ], + { + "title_aux": "ComfyUI-Unload-Models" + } + ], + "https://github.com/wilzamguerrero/Comfyui-zZzZz": [ + [ + "CaptureZNode", + "CompressFolderNode", + "CreateZNode", + "DeleteZNode", + "DownloadFileNode", + "InfiniteZNode", + "MoveZNode", + "RenameZNode", + "VideoZNode", + "ZFShareScreen" + ], + { + "title_aux": "Comfyui-zZzZz [UNSAFE]" + } + ], + "https://github.com/wordbrew/comfyui-wan-control-nodes": [ + [ + "WanWeightedControlToVideo" + ], + { + "title_aux": "WAN Control Nodes for ComfyUI [WIP]" + } + ], "https://github.com/wormley/comfyui-wormley-nodes": [ [ "CheckpointVAELoaderSimpleText", @@ -886,5 +10429,598 @@ { "title_aux": "comfyui-wormley-nodes" } + ], + "https://github.com/xgfone/ComfyUI_FaceToMask": [ + [ + "FaceToMaskCopy" + ], + { + "title_aux": "ComfyUI_FaceToMask" + } + ], + "https://github.com/xgfone/ComfyUI_PromptLogoCleaner": [ + [ + "PromptLogoCleaner" + ], + { + "title_aux": "ComfyUI_PromptLogoCleaner" + } + ], + "https://github.com/xgfone/ComfyUI_RasterCardMaker": [ + [ + "RasterCardMaker" + ], + { + "title_aux": "ComfyUI_RasterCardMaker" + } + ], + "https://github.com/xiaoyumu/ComfyUI-XYNodes": [ + [ + "AdjustImageColor", + "AppyColorToImage", + "PrimitiveBBOX", + "StringToBBOX" + ], + { + "title_aux": "ComfyUI-XYNodes" + } + ], + "https://github.com/xinyiSS/CombineMasksNode": [ + [ + "CombineMasksNode" + ], + { + "title_aux": "CombineMasksNode" + } + ], + "https://github.com/xl0/q_tools": [ + [ + "PreviewModelMetadata", + "QBlendLatent", + "QConcatLatentBatch", + "QGaussianLatent", + "QImageSizeSetter", + "QKSampler", + "QLatentOp", + "QLatentToShape", + "QLinearScheduler", + "QLoadLatent", + "QLoadLatentTimeline", + "QParamRandomizerRange", + "QParamaRandomizerList", + "QPreviewLatent", + "QReshapeLatent", + "QSamplerCustom", + "QSamplerEulerAncestral", + "QUniformLatent" + ], + { + "title_aux": "q_tools" + } + ], + "https://github.com/xmarked-ai/ComfyUI_misc": [ + [ + "BLIPMatcherX", + "BlendLatentsX", + "ColorCorrectionX", + "ColorSpaceConversionX", + "ColorTransferNodeX", + "CommonSourcesX", + "ConstantColorX", + "ConvexHullByMaskX", + "CropBorderX", + "DepthDisplaceX", + "EmptyLatentX", + "ExpressionsX", + "FourCornerPinMaskX", + "GaussianBlurX", + "GaussianMaskBlurX", + "IfConditionX", + "ImageCompositionX", + "ImageResizeX", + "ImageTileSquare", + "ImageUntileSquare", + "KSamplerComboX", + "LoopCloseX", + "LoopOpenX", + "LoraBatchSamplerX", + "RegionTesterNodeX", + "RegionalPromptSamplerX", + "RelightX", + "RemoveBackgroundX", + "SamplersTestX", + "SaveImageX", + "SelectiveDepthLoraBlocksX", + "SimpleBlockerX", + "SplineImageMask", + "TextConcatX", + "TextX", + "WhiteBalanceX" + ], + { + "title_aux": "ComfyUI_misc" + } + ], + "https://github.com/xqqe/honey_nodes": [ + [ + "ExtractLoRAName", + "Honey Lora Loader", + "HoneyBatchAspectRatio", + "HoneyLoraStackTags", + "HoneyTextConcat", + "Honey_LoRAStackRandom", + "Honey_LoRATags", + "Small Lora Loader", + "TagAdder" + ], + { + "title_aux": "honey_nodes [WIP]" + } + ], + "https://github.com/xsai-collab/ComfyUI-CombineVideoAndSubtitle": [ + [ + "CombineVideosFromFolder", + "GetSubtitlesFromVideo", + "MergeVideoAndSubtitle" + ], + { + "title_aux": "ComfyUI-CombineVideoAndSubtitle" + } + ], + "https://github.com/xzuyn/ComfyUI-xzuynodes": [ + [ + "CLIPLoaderXZ", + "CLIPTextEncodeXZ", + "DualCLIPLoaderXZ", + "FirstLastFrameXZ", + "ImageResizeKJ", + "ImageResizeXZ", + "TripleCLIPLoaderXZ", + "WanImageToVideoXZ" + ], + { + "title_aux": "xzuynodes-ComfyUI" + } + ], + "https://github.com/y4my4my4m/ComfyUI_Direct3DS2": [ + [ + "Direct3DS2ModelDownloader", + "Direct3DS2Node" + ], + { + "title_aux": "ComfyUI-Direct3DS2 [WIP]" + } + ], + "https://github.com/yamanacn/comfyui_qwen_object": [ + [ + "BBoxToSAM", + "DetectObject", + "LoadQwenModel", + "SortBBox" + ], + { + "title_aux": "comfyui_qwen_object [WIP]" + } + ], + "https://github.com/yamanacn/comfyui_qwenbbox": [ + [ + "BBoxToSAM_v2", + "LoadQwenModel_v2", + "QwenBbox" + ], + { + "title_aux": "comfyui_qwenbbox" + } + ], + "https://github.com/yanhuifair/ComfyUI-FairLab": [ + [ + "AddNode", + "AppendTagsNode", + "Base64ToImageNode", + "DivideNode", + "DownloadImageNode", + "ExcludeTagsNode", + "FillAlphaNode", + "FixUTF8StringNode", + "FloatNode", + "FloatToIntNode", + "IfNode", + "ImageResizeNode", + "ImageSizeNode", + "ImageToBase64Node", + "ImageToVideoNode", + "ImagesCatNode", + "ImagesIndexNode", + "ImagesRangeNode", + "IntNode", + "IntToFloatNode", + "LoadImageFromDirectoryNode", + "LoadImageFromURLNode", + "LoadStringFromDirectoryNode", + "LoadStringNode", + "LoraLoaderDualNode", + "MaxNode", + "MinNode", + "MultiplyNode", + "NumberNode", + "OutpaintingPadNode", + "PrependTagsNode", + "PrintAnyNode", + "PrintImageNode", + "PythonScriptNode", + "RangeStringNode", + "SaveImageToDirectoryNode", + "SaveStringToDirectoryNode", + "ShowStringNode", + "StringAppendNode", + "StringNode", + "StringTranslateNode", + "SubtractNode", + "UniqueTagsNode", + "VideoToImageNode" + ], + { + "title_aux": "ComfyUI-FairLab" + } + ], + "https://github.com/yanhuifair/comfyui-deepseek": [ + [ + "DeepSeekChatNode", + "DeepSeekChatProNode", + "DeepSeekReasonerNode" + ], + { + "title_aux": "comfyui-deepseek [WIP]" + } + ], + "https://github.com/yanlang0123/ComfyUI_Lam": [ + [ + "AppParams", + "AspectRatio", + "AudioBeforeAfterSilence", + "AutioInfo", + "AutioPath", + "DoWhileEnd", + "DoWhileStart", + "EasyPromptSelecto", + "FaceFusion", + "ForEnd", + "ForInnerEnd", + "ForInnerStart", + "ForStart", + "GLM3Prompt", + "IdentifyingQR", + "IfInnerExecute", + "Image2Video", + "ImageAddMask", + "ImageBlank", + "ImageClone", + "ImageCropFaces", + "ImageLama", + "ImageToMasks", + "JyAnimationGroup", + "JyAnimationIn", + "JyAnimationOut", + "JyAudio2CaptionsGroup", + "JyAudioNative", + "JyAudioTrack", + "JyCaptionsNative", + "JyCaptionsTrack", + "JyEffectNative", + "JyEffectTrack", + "JyMediaAnimation", + "JyMediaNative", + "JyMediaTrack", + "JyMultiAudioGroup", + "JyMultiCaptionsGroup", + "JyMultiEffectGroup", + "JyMultiMediaGroup", + "JySaveDraft", + "JySaveNoOutDraft", + "JySaveNotOutDraft", + "JySaveOutDraft", + "JyTransition", + "LAM.OpenPoseEditorPlus", + "LamCommonHidden", + "LamCommonNames", + "LamCommonPrint", + "LamCommonPrintNoOutput", + "LamFaceAnalysisModels", + "LamGetPngInfo", + "LamHeyGemNode", + "LamHeyGemQueryNode", + "LamLoadImageBase64", + "LamLoadPathImage", + "LamLoadVideo", + "LamReadFileList", + "LamSamplerName", + "LamSaveAudio", + "LamSaveOnly", + "LamSaveVideo", + "LamScheduler", + "LamSwitcherCase", + "LamViewVideo", + "LamViewVideoOut", + "LoadDirImgPaths", + "LoadImagePath", + "LoadReplaceImage", + "LongTextToList", + "MultiControlNetApply", + "MultiGLIGENTextBoxApply", + "MultiIPAdapterRegional", + "MultiIntFormula", + "MultiMergeAudio", + "MultiMergeVideos", + "MultiParamFormula", + "MultiTextConcatenate", + "MultiTextEncode", + "MultiTextEncodeAdvanced", + "MultiTextSelelct", + "MultiTextSetArea", + "MultiTextSetGligen", + "MultiTextSetMask", + "OutDoWhileEnd", + "OutDoWhileStart", + "PreviewImageLam", + "PromptTranslator", + "QRCode", + "SaveImageLam", + "SaveImgOutputLam", + "SectionEnd", + "SectionStart", + "StyleSelecto", + "Text2AutioEdgeTts", + "TextListSelelct", + "VideoAddAudio", + "VideoExtractAudio", + "VideoFaceFusion", + "VideoPath", + "WaitImagSelector", + "ZhPromptTranslator" + ], + { + "title_aux": "ComfyUI_Lam" + } + ], + "https://github.com/yichengup/ComfyUI-Transition": [ + [ + "CircularSequenceTransition", + "CircularTransition", + "DualLineTransition", + "GradientTransition", + "LinearTransition", + "SequenceTransition" + ], + { + "title_aux": "ComfyUI-Transition" + } + ], + "https://github.com/yichengup/ComfyUI-YCNodes_Advance": [ + [ + "FaceDetectorSelector", + "HumanPartsUltra", + "YC Color Match", + "YCFaceAlignToCanvas", + "YCFaceAlignToCanvasV2", + "YCFaceAnalysisModels" + ], + { + "title_aux": "ComfyUI-YCNodes_Advance" + } + ], + "https://github.com/yichengup/Comfyui-NodeSpark": [ + [ + "ImageCircleWarp", + "ImageStretch", + "ImageWaveWarp", + "LiquifyNode" + ], + { + "title_aux": "Comfyui-NodeSpark" + } + ], + "https://github.com/yincangshiwei/ComfyUI-SEQLToolNode": [ + [ + "CanvasFusionNode", + "ImageCropByAlpha" + ], + { + "title_aux": "ComfyUI-SEQLToolNode" + } + ], + "https://github.com/yojimbodayne/ComfyUI-Dropbox-API": [ + [ + "FetchTokenFromDropbox", + "PostImagesToDropboxAPI", + "PostPromptsToDropboxAPI", + "PullImagesFromDropboxAPI", + "PullTextFromDropboxAPI", + "PullVideosFromDropboxAPI", + "VideoCombineAndExportToDropboxAPI" + ], + { + "title_aux": "ComfyUI-Dropbox-API [WIP]" + } + ], + "https://github.com/yuvraj108c/ComfyUI-HYPIR": [ + [ + "HYPIRProcess", + "LoadHYPIRModel" + ], + { + "title_aux": "ComfyUI HYPIR [NAME CONFLICT]" + } + ], + "https://github.com/zackabrams/ComfyUI-KeySyncWrapper": [ + [ + "KeySyncAdvanced", + "KeySyncWrapper" + ], + { + "title_aux": "ComfyUI-KeySyncWrapper [WIP]" + } + ], + "https://github.com/zhaorishuai/ComfyUI-StoryboardDistributor": [ + [ + "StoryboardDistributor" + ], + { + "title_aux": "ComfyUI-StoryboardDistributor" + } + ], + "https://github.com/zhengxyz123/ComfyUI-CLIPSeg": [ + [ + "CLIPSegImage", + "CLIPSegText" + ], + { + "title_aux": "zhengxyz123/ComfyUI-CLIPSeg [NAME CONFLICT]" + } + ], + "https://github.com/zhongpei/Comfyui_image2prompt": [ + [ + "CLIP AdvancedTextEncode|fofo", + "CLIP PromptConditioning|fofo", + "Image2Text", + "Image2TextWithTags", + "ImageBatchToList|fofo", + "ImageRewardScore|fofo", + "LoadImage2TextModel", + "LoadImageRewardScoreModel|fofo", + "LoadT5Model|fofo", + "LoadText2PromptModel", + "ShowText|fofo", + "T5QuantizationConfig|fofo", + "T5Text2Prompt|fofo", + "Text2GPTPrompt", + "Text2Prompt", + "TextBox|fofo", + "Translate2Chinese|fofo" + ], + { + "title_aux": "Comfyui_image2prompt" + } + ], + "https://github.com/zhu733756/Comfyui-Anything-Converter": [ + [ + "FileConverter.FileDictConverter", + "FileConverter.FileSplitter", + "FileConverter.LineConverter", + "ImageCoverter.SaveImage", + "JsonCoverter.JsonCombiner", + "JsonCoverter.JsonParser", + "JsonCoverter.JsonPromptProcessor" + ], + { + "title_aux": "Comfyui-Anything-Converter [UNSAFE]" + } + ], + "https://github.com/zhuanvi/ComfyUI-ZVNodes": [ + [ + "DesaturateNodeZV", + "GrayToDisplacementMapNodeZV", + "ImageCounterNodeZV", + "JoinListZV", + "JsonListIndexerZV", + "JsonListLengthZV", + "JsonListNodeZV", + "JsonListSlicerZV", + "JsonListToMaskZV", + "JsonReaderZV", + "LoadImageFromDirZV", + "LoadImageFromUrlZV", + "LoadTxtFromDirZV", + "PatternFillNodeZV", + "ProductionDisplacementMapNodeZV", + "RandomSelectListZV", + "SaveImageToPathZV", + "SaveTxtToPathZV", + "TriangleCharacterLayoutZV", + "VideoSceneDetectorZV", + "VideoSpeedZV", + "doubaoI2INodeZV", + "doubaoT2INodeZV" + ], + { + "title_aux": "ComfyUI-ZVNodes [WIP]" + } + ], + "https://github.com/zjkhurry/comfyui_MetalFX": [ + [ + "metalFXImg" + ], + { + "title_aux": "comfyui_MetalFX [WIP]" + } + ], + "https://github.com/zl9739379/comfyui-qwen-vl-api": [ + [ + "VL_QwenDescribeImage" + ], + { + "title_aux": "ComfyUI Qwen Vision Language API Node [NAME CONFLICT]" + } + ], + "https://github.com/zopieux/ComfyUI-zopi": [ + [ + "EvalPython", + "LoadTensortRTAndCheckpoint" + ], + { + "title_aux": "ComfyUI-zopi [UNSAFE]" + } + ], + "https://github.com/zyd232/ComfyUI-zyd232-Nodes": [ + [ + "zyd232 ImagesPixelsCompare", + "zyd232_SavePreviewImages" + ], + { + "title_aux": "ComfyUI-zyd232-Nodes" + } + ], + "https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_VariationUtils.py": [ + [ + "BatchToList", + "ConcatAudioList", + "SequenceVariation", + "SliceAudio" + ], + { + "title_aux": "ComfyUI-Waveform-Extensions" + } + ], + "https://raw.githubusercontent.com/jp0215/comfyUI_padding-resize_node/main/PaddingNode.py": [ + [ + "function" + ], + { + "title_aux": "comfyUI_padding-resize_node" + } + ], + "https://raw.githubusercontent.com/komojini/ComfyUI_Prompt_Template_CustomNodes/main/prompt_with_template.py": [ + [ + "ObjectPromptWithTemplate", + "PromptWithTemplate" + ], + { + "title_aux": "ComfyUI_Prompt_Template_CustomNodes" + } + ], + "https://raw.githubusercontent.com/okg21/VLLMVisionChatNode/refs/heads/main/VLLMVisionChatNode.py": [ + [ + "VLLMVisionChatNode" + ], + { + "title_aux": "VLLMVisionChatNode" + } + ], + "https://raw.githubusercontent.com/olyyarm/ComfyUI-VLMStudio/refs/heads/master/vlm_visionary_node_v3_.py": [ + [ + "GemmaMultimodalAnalyzer" + ], + { + "title_aux": "ComfyUI-VLMStudio" + } ] } \ No newline at end of file diff --git a/node_db/dev/github-stats.json b/node_db/dev/github-stats.json new file mode 100644 index 00000000..b1909198 --- /dev/null +++ b/node_db/dev/github-stats.json @@ -0,0 +1,4122 @@ +{ + "https://github.com/123jimin/ComfyUI-MobileForm": { + "stars": 9, + "last_update": "2025-04-06 13:36:29", + "author_account_age_days": 5201 + }, + "https://github.com/17Retoucher/ComfyUI_Fooocus": { + "stars": 57, + "last_update": "2024-02-24 07:33:29", + "author_account_age_days": 606 + }, + "https://github.com/1H-hobit/ComfyUI_InternVL3": { + "stars": 1, + "last_update": "2025-08-29 00:02:47", + "author_account_age_days": 362 + }, + "https://github.com/1hew/ComfyUI-1hewNodes": { + "stars": 6, + "last_update": "2025-09-02 13:09:05", + "author_account_age_days": 883 + }, + "https://github.com/206811/ComfyUI_ZhipuAIO": { + "stars": 2, + "last_update": "2025-07-29 10:11:45", + "author_account_age_days": 1943 + }, + "https://github.com/3dmindscapper/ComfyUI-PartField": { + "stars": 31, + "last_update": "2025-05-01 02:50:39", + "author_account_age_days": 839 + }, + "https://github.com/3dmindscapper/ComfyUI-Sam-Mesh": { + "stars": 33, + "last_update": "2025-05-07 12:42:13", + "author_account_age_days": 839 + }, + "https://github.com/438443467/ComfyUI-SanMian-Nodes": { + "stars": 31, + "last_update": "2025-04-29 10:29:07", + "author_account_age_days": 849 + }, + "https://github.com/543872524/ComfyUI_crdong": { + "stars": 0, + "last_update": "2025-09-02 13:28:50", + "author_account_age_days": 2450 + }, + "https://github.com/5x00/ComfyUI-Prompt-Plus": { + "stars": 1, + "last_update": "2025-01-08 15:54:08", + "author_account_age_days": 1407 + }, + "https://github.com/77oussam/Aio77-Comfyui": { + "stars": 0, + "last_update": "2025-08-05 06:46:11", + "author_account_age_days": 819 + }, + "https://github.com/7BEII/Comfyui_PDuse": { + "stars": 18, + "last_update": "2025-07-30 13:18:10", + "author_account_age_days": 248 + }, + "https://github.com/A4P7J1N7M05OT/ComfyUI-ManualSigma": { + "stars": 1, + "last_update": "2024-12-30 10:45:23", + "author_account_age_days": 907 + }, + "https://github.com/A4P7J1N7M05OT/ComfyUI-VAELoaderSDXLmod": { + "stars": 0, + "last_update": "2025-06-23 23:42:45", + "author_account_age_days": 907 + }, + "https://github.com/A719689614/ComfyUI_AC_FUNV7-FLUX-": { + "stars": 0, + "last_update": "2025-07-25 12:51:58", + "author_account_age_days": 750 + }, + "https://github.com/A719689614/ComfyUI_AC_FUNV8Beta1": { + "stars": 13, + "last_update": "2025-08-06 06:26:11", + "author_account_age_days": 750 + }, + "https://github.com/AICodeFactory/ComfyUI-Viva": { + "stars": 1, + "last_update": "2025-05-15 08:07:12", + "author_account_age_days": 503 + }, + "https://github.com/AIFSH/ComfyUI-OpenDIT": { + "stars": 0, + "last_update": "2024-06-30 09:33:55", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/ComfyUI-ViViD": { + "stars": 5, + "last_update": "2024-06-25 08:16:53", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI": { + "stars": 166, + "last_update": "2024-09-16 14:16:06", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/IMAGDressing-ComfyUI": { + "stars": 63, + "last_update": "2024-11-14 01:44:02", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/UltralightDigitalHuman-ComfyUI": { + "stars": 129, + "last_update": "2024-11-25 11:39:23", + "author_account_age_days": 666 + }, + "https://github.com/AIFSH/UtilNodes-ComfyUI": { + "stars": 14, + "last_update": "2024-12-19 06:44:25", + "author_account_age_days": 666 + }, + "https://github.com/AIWarper/ComfyUI-DAViD": { + "stars": 3, + "last_update": "2025-07-25 17:07:43", + "author_account_age_days": 312 + }, + "https://github.com/ALatentPlace/ComfyUI_yanc": { + "stars": 66, + "last_update": "2025-01-22 14:44:17", + "author_account_age_days": 1895 + }, + "https://github.com/APZmedia/comfyui-textools": { + "stars": 5, + "last_update": "2025-07-13 18:44:11", + "author_account_age_days": 2912 + }, + "https://github.com/AcademiaSD/comfyui_AcademiaSD": { + "stars": 12, + "last_update": "2025-08-19 10:27:43", + "author_account_age_days": 468 + }, + "https://github.com/Aero-Ex/comfyui_diffswap": { + "stars": 0, + "last_update": "2025-07-29 11:43:43", + "author_account_age_days": 1186 + }, + "https://github.com/AhBumm/ComfyUI-Upscayl": { + "stars": 0, + "last_update": "2025-02-19 09:41:02", + "author_account_age_days": 1244 + }, + "https://github.com/AhBumm/ComfyUI_MangaLineExtraction-hf": { + "stars": 0, + "last_update": "2025-05-02 18:47:09", + "author_account_age_days": 1244 + }, + "https://github.com/AkiEvansDev/ComfyUI-Tools": { + "stars": 0, + "last_update": "2025-06-28 14:48:29", + "author_account_age_days": 2753 + }, + "https://github.com/Alazuaka/comfyui-lora-stack-node": { + "stars": 0, + "last_update": "2025-06-12 23:14:31", + "author_account_age_days": 1222 + }, + "https://github.com/AlejandroTuzzi/TUZZI-ByPass": { + "stars": 5, + "last_update": "2025-08-07 11:48:54", + "author_account_age_days": 1679 + }, + "https://github.com/AlexXi19/ComfyUI-OpenAINode": { + "stars": 1, + "last_update": "2025-01-13 18:43:22", + "author_account_age_days": 1865 + }, + "https://github.com/AlexYez/comfyui-timesaver": { + "stars": 0, + "last_update": "2025-08-30 13:21:38", + "author_account_age_days": 1590 + }, + "https://github.com/AllenEdgarPoe/ComfyUI-Xorbis-nodes": { + "stars": 3, + "last_update": "2025-06-12 23:48:01", + "author_account_age_days": 2540 + }, + "https://github.com/Alvaroeai/ComfyUI-SunoAI-Mds": { + "stars": 0, + "last_update": "2025-01-11 21:13:41", + "author_account_age_days": 4136 + }, + "https://github.com/Anonymzx/ComfyUI-Indonesia-TTS": { + "stars": 0, + "last_update": "2025-05-07 14:33:50", + "author_account_age_days": 2264 + }, + "https://github.com/Anze-/ComfyUI-OIDN": { + "stars": 8, + "last_update": "2024-11-27 18:05:41", + "author_account_age_days": 4389 + }, + "https://github.com/Anze-/ComfyUI_deepDeband": { + "stars": 3, + "last_update": "2024-11-12 19:13:59", + "author_account_age_days": 4389 + }, + "https://github.com/ArmandAlbert/Kwai_font_comfyui": { + "stars": 1, + "last_update": "2025-01-14 04:02:21", + "author_account_age_days": 2427 + }, + "https://github.com/ArthusLiang/comfyui-face-remap": { + "stars": 5, + "last_update": "2024-11-30 12:34:28", + "author_account_age_days": 4451 + }, + "https://github.com/AustinMroz/ComfyUI-MinCache": { + "stars": 2, + "last_update": "2024-12-25 18:52:07", + "author_account_age_days": 4509 + }, + "https://github.com/AustinMroz/ComfyUI-WorkflowCheckpointing": { + "stars": 11, + "last_update": "2024-10-17 19:59:40", + "author_account_age_days": 4509 + }, + "https://github.com/Babiduba/ivan_knows": { + "stars": 0, + "last_update": "2025-08-12 23:51:47", + "author_account_age_days": 3905 + }, + "https://github.com/BadCafeCode/execution-inversion-demo-comfyui": { + "stars": 79, + "last_update": "2025-03-09 00:44:37", + "author_account_age_days": 865 + }, + "https://github.com/BaronVonBoolean/ComfyUI-FileOps": { + "stars": 0, + "last_update": "2024-12-22 18:04:20", + "author_account_age_days": 273 + }, + "https://github.com/Baverne/comfyUI-TiledWan": { + "stars": 2, + "last_update": "2025-08-21 10:14:11", + "author_account_age_days": 906 + }, + "https://github.com/Beinsezii/comfyui-amd-go-fast": { + "stars": 45, + "last_update": "2025-04-21 19:37:22", + "author_account_age_days": 2661 + }, + "https://github.com/BenjaMITM/ComfyUI_On_The_Fly_Wildcards": { + "stars": 0, + "last_update": "2024-11-20 06:17:53", + "author_account_age_days": 382 + }, + "https://github.com/BetaDoggo/ComfyUI-LogicGates": { + "stars": 3, + "last_update": "2024-07-21 06:31:25", + "author_account_age_days": 1232 + }, + "https://github.com/Big-Idea-Technology/ComfyUI-Movie-Tools": { + "stars": 3, + "last_update": "2024-11-29 11:13:57", + "author_account_age_days": 1306 + }, + "https://github.com/BigStationW/flowmatch_scheduler-comfyui": { + "stars": 17, + "last_update": "2025-06-17 13:31:03", + "author_account_age_days": 121 + }, + "https://github.com/BinglongLi/ComfyUI_ToolsForAutomask": { + "stars": 1, + "last_update": "2025-06-04 11:56:53", + "author_account_age_days": 2120 + }, + "https://github.com/BiodigitalJaz/ComfyUI-Dafaja-Nodes": { + "stars": 1, + "last_update": "2025-08-16 14:12:10", + "author_account_age_days": 612 + }, + "https://github.com/BlueDangerX/ComfyUI-BDXNodes": { + "stars": 1, + "last_update": "2023-12-10 04:01:19", + "author_account_age_days": 682 + }, + "https://github.com/BobRandomNumber/ComfyUI-DiaTTS": { + "stars": 8, + "last_update": "2025-06-02 03:02:19", + "author_account_age_days": 278 + }, + "https://github.com/Brandelan/ComfyUI_bd_customNodes": { + "stars": 2, + "last_update": "2024-09-08 01:04:38", + "author_account_age_days": 4586 + }, + "https://github.com/BrettMedia/comfyui-bhtools": { + "stars": 1, + "last_update": "2025-07-24 21:32:37", + "author_account_age_days": 94 + }, + "https://github.com/BuffMcBigHuge/ComfyUI-Buff-Nodes": { + "stars": 2, + "last_update": "2025-05-21 02:59:22", + "author_account_age_days": 3348 + }, + "https://github.com/Burgstall-labs/ComfyUI-BS_FalAi-API-Video": { + "stars": 3, + "last_update": "2025-06-19 06:47:25", + "author_account_age_days": 226 + }, + "https://github.com/Bwebbfx/ComfyUI_FaceParsing": { + "stars": 13, + "last_update": "2025-07-02 20:41:55", + "author_account_age_days": 662 + }, + "https://github.com/COcisuts/CObot-ComfyUI-WhisperToTranscription": { + "stars": 0, + "last_update": "2025-06-08 13:32:25", + "author_account_age_days": 3051 + }, + "https://github.com/CY-CHENYUE/ComfyUI-FramePack-HY": { + "stars": 20, + "last_update": "2025-05-08 09:38:09", + "author_account_age_days": 633 + }, + "https://github.com/CeeVeeR/ComfyUi-Text-Tiler": { + "stars": 0, + "last_update": "2025-03-25 20:26:18", + "author_account_age_days": 1508 + }, + "https://github.com/Chargeuk/ComfyUI-vts-nodes": { + "stars": 0, + "last_update": "2025-08-30 20:09:45", + "author_account_age_days": 4543 + }, + "https://github.com/Charonartist/ComfyUI-send-eagle-pro_2": { + "stars": 0, + "last_update": "2025-05-26 12:12:47", + "author_account_age_days": 429 + }, + "https://github.com/Charonartist/comfyui-lora-random-selector": { + "stars": 0, + "last_update": "2025-08-08 13:34:04", + "author_account_age_days": 429 + }, + "https://github.com/ChrisColeTech/ComfyUI-Get-Random-File": { + "stars": 3, + "last_update": "2025-06-19 03:10:17", + "author_account_age_days": 2847 + }, + "https://github.com/Clelstyn/ComfyUI-Inpaint_with_Detailer": { + "stars": 1, + "last_update": "2024-11-02 12:04:53", + "author_account_age_days": 753 + }, + "https://github.com/Clybius/ComfyUI-FluxDeCLIP": { + "stars": 1, + "last_update": "2024-11-17 20:06:29", + "author_account_age_days": 2169 + }, + "https://github.com/Comfy-Org/ComfyUI_devtools": { + "stars": 21, + "last_update": "2025-05-10 16:23:35", + "author_account_age_days": 510 + }, + "https://github.com/D1-3105/ComfyUI-VideoStream": { + "stars": 0, + "last_update": "2025-02-17 04:02:01", + "author_account_age_days": 1938 + }, + "https://github.com/DataCTE/ComfyUI-DataVoid-nodes": { + "stars": 0, + "last_update": "2024-11-20 14:20:31", + "author_account_age_days": 1212 + }, + "https://github.com/DeTK/ComfyUI-Switch": { + "stars": 0, + "last_update": "2024-03-04 11:52:04", + "author_account_age_days": 2466 + }, + "https://github.com/DenRakEiw/Comfyui-Aspect-Ratio-Processor": { + "stars": 0, + "last_update": "2025-08-18 05:23:24", + "author_account_age_days": 1466 + }, + "https://github.com/DenRakEiw/DenRakEiw_Nodes": { + "stars": 20, + "last_update": "2025-08-28 10:30:16", + "author_account_age_days": 1466 + }, + "https://github.com/DiffusionWave-YT/DiffusionWave_PickResolution": { + "stars": 0, + "last_update": "2025-06-29 23:55:17", + "author_account_age_days": 84 + }, + "https://github.com/DoctorDiffusion/ComfyUI-Flashback": { + "stars": 0, + "last_update": "2024-11-11 01:37:43", + "author_account_age_days": 776 + }, + "https://github.com/DonutsDelivery/ComfyUI-DonutNodes": { + "stars": 7, + "last_update": "2025-07-26 02:15:08", + "author_account_age_days": 160 + }, + "https://github.com/DrMWeigand/ComfyUI_LineBreakInserter": { + "stars": 0, + "last_update": "2024-04-19 11:37:19", + "author_account_age_days": 1467 + }, + "https://github.com/DraconicDragon/ComfyUI_e621_booru_toolkit": { + "stars": 5, + "last_update": "2025-06-09 19:31:11", + "author_account_age_days": 1808 + }, + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Player": { + "stars": 0, + "last_update": "2025-07-18 15:11:25", + "author_account_age_days": 2291 + }, + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Vocal": { + "stars": 0, + "last_update": "2025-08-05 10:58:20", + "author_account_age_days": 2291 + }, + "https://github.com/Dream-Pixels-Forge/ComfyUI-RendArt-Nodes": { + "stars": 0, + "last_update": "2025-08-05 11:22:39", + "author_account_age_days": 2291 + }, + "https://github.com/DreamsInAutumn/ComfyUI-Autumn-LLM-Nodes": { + "stars": 0, + "last_update": "2025-06-14 06:14:05", + "author_account_age_days": 1301 + }, + "https://github.com/Dreamshot-io/ComfyUI-Extend-Resolution": { + "stars": 0, + "last_update": "2025-06-02 07:15:00", + "author_account_age_days": 287 + }, + "https://github.com/ELiZswe/ComfyUI-ELiZTools": { + "stars": 0, + "last_update": "2025-06-24 06:14:44", + "author_account_age_days": 2258 + }, + "https://github.com/EQXai/ComfyUI_EQX": { + "stars": 0, + "last_update": "2025-06-27 21:55:53", + "author_account_age_days": 462 + }, + "https://github.com/Eagle-CN/ComfyUI-Addoor": { + "stars": 55, + "last_update": "2025-04-25 01:03:58", + "author_account_age_days": 3062 + }, + "https://github.com/Elawphant/ComfyUI-MusicGen": { + "stars": 6, + "last_update": "2024-05-11 13:33:24", + "author_account_age_days": 3023 + }, + "https://github.com/ElyZeng/ComfyUI-Translator": { + "stars": 1, + "last_update": "2025-07-31 03:12:40", + "author_account_age_days": 1190 + }, + "https://github.com/Elypha/ComfyUI-Prompt-Helper": { + "stars": 0, + "last_update": "2025-08-23 18:28:00", + "author_account_age_days": 2967 + }, + "https://github.com/EmanueleUniroma2/ComfyUI-FLAC-to-WAV": { + "stars": 0, + "last_update": "2025-01-26 11:25:43", + "author_account_age_days": 3081 + }, + "https://github.com/EmilioPlumed/ComfyUI-Math": { + "stars": 1, + "last_update": "2025-01-11 14:28:42", + "author_account_age_days": 2413 + }, + "https://github.com/Enemyx-net/VibeVoice-ComfyUI": { + "stars": 208, + "last_update": "2025-09-01 14:35:04", + "author_account_age_days": 5 + }, + "https://github.com/EricRollei/Comfy-Metadata-System": { + "stars": 2, + "last_update": "2025-04-28 23:42:26", + "author_account_age_days": 1329 + }, + "https://github.com/Estanislao-Oviedo/ComfyUI-CustomNodes": { + "stars": 0, + "last_update": "2025-07-23 18:10:07", + "author_account_age_days": 2615 + }, + "https://github.com/ExponentialML/ComfyUI_LiveDirector": { + "stars": 37, + "last_update": "2024-04-09 19:01:49", + "author_account_age_days": 2058 + }, + "https://github.com/Extraltodeus/Conditioning-token-experiments-for-ComfyUI": { + "stars": 18, + "last_update": "2024-03-10 01:04:02", + "author_account_age_days": 3585 + }, + "https://github.com/FaberVS/MultiModel": { + "stars": 1, + "last_update": "2025-08-08 14:52:53", + "author_account_age_days": 2206 + }, + "https://github.com/Fannovel16/ComfyUI-AppIO": { + "stars": 0, + "last_update": "2024-12-01 16:37:19", + "author_account_age_days": 3567 + }, + "https://github.com/Filexor/File_x_dynamic_prompt2": { + "stars": 0, + "last_update": "2025-07-29 16:19:34", + "author_account_age_days": 4383 + }, + "https://github.com/FinetunersAI/comfyui-fast-group-link": { + "stars": 0, + "last_update": "2024-12-09 17:35:50", + "author_account_age_days": 456 + }, + "https://github.com/FinetunersAI/finetuners": { + "stars": 1, + "last_update": "2025-01-06 16:29:33", + "author_account_age_days": 456 + }, + "https://github.com/Firetheft/ComfyUI_Local_Image_Gallery": { + "stars": 81, + "last_update": "2025-09-02 12:50:37", + "author_account_age_days": 1336 + }, + "https://github.com/FoundD-oka/ComfyUI-kisekae-OOTD": { + "stars": 0, + "last_update": "2024-06-02 06:13:42", + "author_account_age_days": 873 + }, + "https://github.com/Fucci-Mateo/ComfyUI-Airtable": { + "stars": 1, + "last_update": "2024-06-25 13:35:18", + "author_account_age_days": 1313 + }, + "https://github.com/GalactusX31/ComfyUI-FileBrowserAPI": { + "stars": 6, + "last_update": "2025-06-13 20:53:11", + "author_account_age_days": 2761 + }, + "https://github.com/GentlemanHu/ComfyUI-Notifier": { + "stars": 4, + "last_update": "2024-07-14 15:38:44", + "author_account_age_days": 2818 + }, + "https://github.com/George0726/ComfyUI-video-accessory": { + "stars": 1, + "last_update": "2025-05-19 14:18:22", + "author_account_age_days": 2686 + }, + "https://github.com/Grant-CP/ComfyUI-LivePortraitKJ-MPS": { + "stars": 12, + "last_update": "2024-07-11 22:04:16", + "author_account_age_days": 1608 + }, + "https://github.com/Grey3016/Save2Icon": { + "stars": 2, + "last_update": "2025-01-06 15:18:57", + "author_account_age_days": 763 + }, + "https://github.com/GrindHouse66/ComfyUI-GH_Tools": { + "stars": 0, + "last_update": "2024-03-10 13:27:14", + "author_account_age_days": 1059 + }, + "https://github.com/GuardSkill/ComfyUI-AffineImage": { + "stars": 3, + "last_update": "2025-09-02 01:38:07", + "author_account_age_days": 3468 + }, + "https://github.com/GuusF/Comfyui_CrazyMaths": { + "stars": 0, + "last_update": "2025-08-14 13:12:31", + "author_account_age_days": 1821 + }, + "https://github.com/HWDigi/Camera_Factory_Station_comfyui": { + "stars": 2, + "last_update": "2025-08-06 17:46:41", + "author_account_age_days": 57 + }, + "https://github.com/Haoming02/comfyui-resharpen": { + "stars": 50, + "last_update": "2025-08-12 06:56:43", + "author_account_age_days": 1766 + }, + "https://github.com/Hapseleg/ComfyUI-This-n-That": { + "stars": 0, + "last_update": "2025-06-03 20:26:27", + "author_account_age_days": 3730 + }, + "https://github.com/HuangYuChuh/ComfyUI-LLMs-Toolkit": { + "stars": 13, + "last_update": "2025-06-23 09:42:46", + "author_account_age_days": 499 + }, + "https://github.com/Huangcj2005/comfyui-HandDetect": { + "stars": 0, + "last_update": "2025-07-29 11:41:58", + "author_account_age_days": 663 + }, + "https://github.com/IXIWORKS-KIMJUNGHO/comfyui-ixiworks": { + "stars": 0, + "last_update": "2025-08-14 09:22:06", + "author_account_age_days": 2758 + }, + "https://github.com/IfnotFr/ComfyUI-Ifnot-Pack": { + "stars": 0, + "last_update": "2025-02-05 08:51:23", + "author_account_age_days": 5019 + }, + "https://github.com/IgPoly/ComfyUI-igTools": { + "stars": 0, + "last_update": "2024-09-11 08:48:57", + "author_account_age_days": 362 + }, + "https://github.com/IsItDanOrAi/ComfyUI-exLoadout": { + "stars": 6, + "last_update": "2025-07-11 02:36:28", + "author_account_age_days": 546 + }, + "https://github.com/IuvenisSapiens/ComfyUI_MiniCPM-V-4": { + "stars": 207, + "last_update": "2025-08-29 00:23:20", + "author_account_age_days": 846 + }, + "https://github.com/IvanZhd/comfyui-codeformer": { + "stars": 0, + "last_update": "2023-12-02 20:51:52", + "author_account_age_days": 3013 + }, + "https://github.com/Jairodaniel-17/ComfyUI-traductor-offline": { + "stars": 0, + "last_update": "2025-08-28 04:57:25", + "author_account_age_days": 1636 + }, + "https://github.com/Jaxkr/comfyui-terminal-command": { + "stars": 1, + "last_update": "2023-12-03 10:31:40", + "author_account_age_days": 5062 + }, + "https://github.com/JayLyu/ComfyUI_BaiKong_Node": { + "stars": 8, + "last_update": "2025-07-12 15:27:51", + "author_account_age_days": 3703 + }, + "https://github.com/JiSenHua/ComfyUI-yolov5-face": { + "stars": 1, + "last_update": "2025-07-14 17:02:39", + "author_account_age_days": 1179 + }, + "https://github.com/Jiffies-64/ComfyUI-SaveImagePlus": { + "stars": 0, + "last_update": "2024-04-01 10:52:59", + "author_account_age_days": 1326 + }, + "https://github.com/Jingwen-genies/comfyui-genies-nodes": { + "stars": 0, + "last_update": "2025-05-13 19:36:45", + "author_account_age_days": 768 + }, + "https://github.com/JioJe/comfyui_video_BC": { + "stars": 10, + "last_update": "2025-07-21 07:41:37", + "author_account_age_days": 459 + }, + "https://github.com/JissiChoi/ComfyUI-Jissi-List": { + "stars": 0, + "last_update": "2024-12-24 08:24:27", + "author_account_age_days": 2653 + }, + "https://github.com/JoeAu/ComfyUI-PythonNode": { + "stars": 3, + "last_update": "2025-03-16 13:05:38", + "author_account_age_days": 4621 + }, + "https://github.com/Jordach/comfy-consistency-vae": { + "stars": 69, + "last_update": "2023-11-06 20:50:40", + "author_account_age_days": 4948 + }, + "https://github.com/Junst/ComfyUI-PNG2SVG2PNG": { + "stars": 0, + "last_update": "2024-12-04 02:25:04", + "author_account_age_days": 2973 + }, + "https://github.com/KERRY-YUAN/ComfyUI_Python_Executor": { + "stars": 1, + "last_update": "2025-04-07 07:49:03", + "author_account_age_days": 1689 + }, + "https://github.com/KY-2000/comfyui-ksampler-tester-loop": { + "stars": 6, + "last_update": "2025-08-26 02:18:37", + "author_account_age_days": 2168 + }, + "https://github.com/Karlmeister/comfyui-karlmeister-nodes-suit": { + "stars": 0, + "last_update": "2025-08-30 18:16:33", + "author_account_age_days": 1341 + }, + "https://github.com/Karniverse/ComfyUI-Randomselector": { + "stars": 0, + "last_update": "2025-08-05 10:26:42", + "author_account_age_days": 2801 + }, + "https://github.com/Kayarte/Time-Series-Nodes-for-ComfyUI": { + "stars": 1, + "last_update": "2025-01-29 02:33:25", + "author_account_age_days": 488 + }, + "https://github.com/KihongK/comfyui-roysnodes": { + "stars": 0, + "last_update": "2025-01-23 09:11:02", + "author_account_age_days": 1997 + }, + "https://github.com/KohakuBlueleaf/HDM-ext": { + "stars": 25, + "last_update": "2025-08-21 04:47:05", + "author_account_age_days": 2063 + }, + "https://github.com/KoreTeknology/ComfyUI-Nai-Production-Nodes-Pack": { + "stars": 12, + "last_update": "2024-11-24 15:55:30", + "author_account_age_days": 3625 + }, + "https://github.com/Krish-701/RK_Comfyui": { + "stars": 0, + "last_update": "2025-04-17 17:18:52", + "author_account_age_days": 291 + }, + "https://github.com/Kur0butiMegane/Comfyui-StringUtils2": { + "stars": 0, + "last_update": "2025-05-04 16:34:13", + "author_account_age_days": 2088 + }, + "https://github.com/KurtHokke/ComfyUI_KurtHokke_Nodes": { + "stars": 1, + "last_update": "2025-03-27 19:04:42", + "author_account_age_days": 260 + }, + "https://github.com/LAOGOU-666/Comfyui_StartPatch": { + "stars": 49, + "last_update": "2025-02-24 17:22:34", + "author_account_age_days": 530 + }, + "https://github.com/LK-168/comfyui_LK_selfuse": { + "stars": 0, + "last_update": "2025-07-10 09:55:05", + "author_account_age_days": 65 + }, + "https://github.com/LSDJesus/ComfyUI-Pyrite-Core": { + "stars": 0, + "last_update": "2025-08-31 23:52:16", + "author_account_age_days": 717 + }, + "https://github.com/LZpenguin/ComfyUI-Text": { + "stars": 23, + "last_update": "2024-06-20 13:38:16", + "author_account_age_days": 2414 + }, + "https://github.com/LarryJane491/ComfyUI-ModelUnloader": { + "stars": 4, + "last_update": "2024-01-14 08:22:39", + "author_account_age_days": 599 + }, + "https://github.com/Laser-one/ComfyUI-align-pose": { + "stars": 0, + "last_update": "2024-11-01 09:34:31", + "author_account_age_days": 1267 + }, + "https://github.com/Letz-AI/ComfyUI-LetzAI": { + "stars": 0, + "last_update": "2025-07-10 13:46:04", + "author_account_age_days": 773 + }, + "https://github.com/Lilien86/Comfyui_Latent_Interpolation": { + "stars": 1, + "last_update": "2024-09-03 21:00:49", + "author_account_age_days": 929 + }, + "https://github.com/Linsoo/ComfyUI-Linsoo-Custom-Nodes": { + "stars": 1, + "last_update": "2025-08-04 05:04:40", + "author_account_age_days": 4526 + }, + "https://github.com/LittleTechPomp/comfyui-pixxio": { + "stars": 0, + "last_update": "2025-08-22 13:18:56", + "author_account_age_days": 39 + }, + "https://github.com/Looking-Glass/LKG-ComfyUI": { + "stars": 5, + "last_update": "2024-10-30 17:02:54", + "author_account_age_days": 3420 + }, + "https://github.com/LotzF/ComfyUI-Simple-Chat-GPT-completion": { + "stars": 0, + "last_update": "2025-02-27 15:07:36", + "author_account_age_days": 1364 + }, + "https://github.com/Lovzu/ComfyUI-Qwen": { + "stars": 0, + "last_update": "2025-08-09 05:59:53", + "author_account_age_days": 219 + }, + "https://github.com/LucianGnn/ComfyUI-Lucian": { + "stars": 0, + "last_update": "2025-06-18 06:47:37", + "author_account_age_days": 2314 + }, + "https://github.com/LucianoCirino/ComfyUI-invAIder-Nodes": { + "stars": 0, + "last_update": "2025-07-27 22:04:59", + "author_account_age_days": 1098 + }, + "https://github.com/LucipherDev/ComfyUI-Sentinel": { + "stars": 37, + "last_update": "2025-04-07 14:53:13", + "author_account_age_days": 1932 + }, + "https://github.com/LyazS/ComfyUI-aznodes": { + "stars": 0, + "last_update": "2025-06-03 14:57:29", + "author_account_age_days": 3292 + }, + "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes": { + "stars": 36, + "last_update": "2025-04-05 22:22:31", + "author_account_age_days": 813 + }, + "https://github.com/M4lF3s/comfy-tif-support": { + "stars": 0, + "last_update": "2025-02-12 09:29:11", + "author_account_age_days": 3659 + }, + "https://github.com/Maff3u/MattiaNodes": { + "stars": 0, + "last_update": "2025-08-18 13:48:17", + "author_account_age_days": 3036 + }, + "https://github.com/MakkiShizu/ComfyUI-MakkiTools": { + "stars": 5, + "last_update": "2025-08-29 17:44:14", + "author_account_age_days": 747 + }, + "https://github.com/Malloc-pix/comfyui-QwenVL": { + "stars": 0, + "last_update": "2025-06-24 09:35:32", + "author_account_age_days": 83 + }, + "https://github.com/ManuShamil/ComfyUI_BodyEstimation_Nodes": { + "stars": 0, + "last_update": "2025-02-28 19:23:24", + "author_account_age_days": 2588 + }, + "https://github.com/MarkFreeDom168/ComfyUI-image-load-url": { + "stars": 0, + "last_update": "2025-07-17 02:47:42", + "author_account_age_days": 1780 + }, + "https://github.com/Matrix-King-Studio/ComfyUI-MoviePy": { + "stars": 0, + "last_update": "2024-12-10 01:50:42", + "author_account_age_days": 1898 + }, + "https://github.com/MatthewClayHarrison/ComfyUI-MetaMan": { + "stars": 1, + "last_update": "2025-08-13 20:53:39", + "author_account_age_days": 760 + }, + "https://github.com/Maxim-Dey/ComfyUI-MaksiTools": { + "stars": 3, + "last_update": "2025-02-08 08:04:03", + "author_account_age_days": 847 + }, + "https://github.com/Mervent/comfyui-telegram-send": { + "stars": 0, + "last_update": "2025-07-12 07:22:09", + "author_account_age_days": 3254 + }, + "https://github.com/Mervent/comfyui-yaml-prompt": { + "stars": 0, + "last_update": "2025-06-01 06:55:16", + "author_account_age_days": 3254 + }, + "https://github.com/MickeyJ/ComfyUI_mickster_nodes": { + "stars": 0, + "last_update": "2025-02-07 02:29:12", + "author_account_age_days": 3649 + }, + "https://github.com/MockbaTheBorg/ComfyUI-Mockba": { + "stars": 1, + "last_update": "2025-09-01 17:00:15", + "author_account_age_days": 3514 + }, + "https://github.com/MrAdamBlack/CheckProgress": { + "stars": 1, + "last_update": "2024-01-10 08:02:18", + "author_account_age_days": 3155 + }, + "https://github.com/MuAIGC/ComfyUI-DMXAPI_mmx": { + "stars": 4, + "last_update": "2025-05-26 06:58:45", + "author_account_age_days": 357 + }, + "https://github.com/MushroomFleet/DJZ-Nodes": { + "stars": 60, + "last_update": "2025-08-24 22:04:55", + "author_account_age_days": 4156 + }, + "https://github.com/MythicalChu/ComfyUI-APG_ImYourCFGNow": { + "stars": 33, + "last_update": "2024-11-29 17:45:03", + "author_account_age_days": 1929 + }, + "https://github.com/NEZHA625/ComfyUI-tools-by-dong": { + "stars": 1, + "last_update": "2025-07-30 18:32:39", + "author_account_age_days": 893 + }, + "https://github.com/NSFW-API/ComfyUI-Embedding-Delta-Adapter": { + "stars": 2, + "last_update": "2025-08-24 04:51:03", + "author_account_age_days": 256 + }, + "https://github.com/Nambi24/ComfyUI-Save_Image": { + "stars": 0, + "last_update": "2025-05-05 15:05:27", + "author_account_age_days": 1320 + }, + "https://github.com/NicholasKao1029/comfyui-hook": { + "stars": 0, + "last_update": "2024-03-07 05:50:56", + "author_account_age_days": 2465 + }, + "https://github.com/No-22-Github/ComfyUI_SaveImageCustom": { + "stars": 0, + "last_update": "2025-06-26 06:33:38", + "author_account_age_days": 855 + }, + "https://github.com/Northerner1/ComfyUI_North_Noise": { + "stars": 1, + "last_update": "2025-03-01 12:32:29", + "author_account_age_days": 876 + }, + "https://github.com/Novavision0313/ComfyUI-NVVS": { + "stars": 1, + "last_update": "2025-08-19 09:14:19", + "author_account_age_days": 103 + }, + "https://github.com/OSAnimate/ComfyUI-SpriteSheetMaker": { + "stars": 1, + "last_update": "2025-03-12 04:22:34", + "author_account_age_days": 882 + }, + "https://github.com/Oct7/ComfyUI-LaplaMask": { + "stars": 0, + "last_update": "2025-06-03 07:45:26", + "author_account_age_days": 2037 + }, + "https://github.com/OgreLemonSoup/ComfyUI-Notes-manager": { + "stars": 2, + "last_update": "2025-06-25 07:24:16", + "author_account_age_days": 388 + }, + "https://github.com/Omario92/ComfyUI-OmarioNodes": { + "stars": 0, + "last_update": "2025-08-22 12:00:19", + "author_account_age_days": 4208 + }, + "https://github.com/PATATAJEC/ComfyUI-PatatajecNodes": { + "stars": 2, + "last_update": "2025-08-11 22:40:42", + "author_account_age_days": 2370 + }, + "https://github.com/Pablerdo/ComfyUI-Sa2VAWrapper": { + "stars": 3, + "last_update": "2025-03-27 22:58:39", + "author_account_age_days": 3235 + }, + "https://github.com/PabloGrant/comfyui-giraffe-test-panel": { + "stars": 0, + "last_update": "2025-05-18 16:38:09", + "author_account_age_days": 721 + }, + "https://github.com/PaleBloodq/ComfyUI-HFTransformers": { + "stars": 0, + "last_update": "2025-07-11 12:01:43", + "author_account_age_days": 1264 + }, + "https://github.com/PeterMikhai/Doom_Flux_NodePack": { + "stars": 1, + "last_update": "2025-06-30 20:41:45", + "author_account_age_days": 668 + }, + "https://github.com/Poseidon-fan/ComfyUI-fileCleaner": { + "stars": 1, + "last_update": "2024-11-19 02:42:29", + "author_account_age_days": 1017 + }, + "https://github.com/Poukpalaova/ComfyUI-FRED-Nodes": { + "stars": 5, + "last_update": "2025-08-01 04:07:20", + "author_account_age_days": 757 + }, + "https://github.com/QingLuanWithoutHeart/comfyui-file-image-utils": { + "stars": 1, + "last_update": "2025-04-08 11:13:50", + "author_account_age_days": 2460 + }, + "https://github.com/Quasimondo/ComfyUI-QuasimondoNodes": { + "stars": 14, + "last_update": "2025-06-09 08:58:42", + "author_account_age_days": 5710 + }, + "https://github.com/QuietNoise/ComfyUI-Queue-Manager": { + "stars": 20, + "last_update": "2025-07-01 02:08:55", + "author_account_age_days": 4640 + }, + "https://github.com/RLW-Chars/comfyui-promptbymood": { + "stars": 1, + "last_update": "2025-01-25 11:21:59", + "author_account_age_days": 220 + }, + "https://github.com/RUFFY-369/ComfyUI-FeatureBank": { + "stars": 0, + "last_update": "2025-03-07 19:30:55", + "author_account_age_days": 1912 + }, + "https://github.com/Raidez/comfyui-kuniklo-collection": { + "stars": 0, + "last_update": "2025-05-02 19:44:45", + "author_account_age_days": 4109 + }, + "https://github.com/RamonGuthrie/ComfyUI-RBG-LoraConverter": { + "stars": 24, + "last_update": "2025-07-29 16:10:27", + "author_account_age_days": 596 + }, + "https://github.com/Randomwalkforest/Comfyui-Koi-Toolkit": { + "stars": 0, + "last_update": "2025-08-27 08:42:30", + "author_account_age_days": 423 + }, + "https://github.com/RegulusAlpha/ComfyUI-DynPromptSimplified": { + "stars": 0, + "last_update": "2025-08-24 22:06:16", + "author_account_age_days": 3289 + }, + "https://github.com/RicherdLee/comfyui-oss-image-save": { + "stars": 0, + "last_update": "2024-12-10 09:08:39", + "author_account_age_days": 4078 + }, + "https://github.com/Rizzlord/ComfyUI-SeqTex": { + "stars": 4, + "last_update": "2025-08-24 18:40:15", + "author_account_age_days": 1864 + }, + "https://github.com/RobbertB80/ComfyUI-SharePoint-Upload": { + "stars": 0, + "last_update": "2025-08-24 15:54:01", + "author_account_age_days": 1446 + }, + "https://github.com/RobeSantoro/ComfyUI-RobeNodes": { + "stars": 0, + "last_update": "2025-06-14 10:29:07", + "author_account_age_days": 5051 + }, + "https://github.com/Rocky-Lee-001/ComfyUI_SZtools": { + "stars": 2, + "last_update": "2025-07-17 02:14:52", + "author_account_age_days": 891 + }, + "https://github.com/RomanticQq/ComfyUI-Groudingdino-Sam": { + "stars": 0, + "last_update": "2025-08-22 15:32:34", + "author_account_age_days": 2350 + }, + "https://github.com/RoyKillington/miscomfy-nodes": { + "stars": 0, + "last_update": "2025-03-06 19:36:33", + "author_account_age_days": 2840 + }, + "https://github.com/SKBv0/ComfyUI-RetroEngine": { + "stars": 4, + "last_update": "2025-05-10 14:29:43", + "author_account_age_days": 1991 + }, + "https://github.com/SS-snap/ComfyUI-Snap_Processing": { + "stars": 62, + "last_update": "2025-04-25 04:54:44", + "author_account_age_days": 735 + }, + "https://github.com/SS-snap/Comfyui_SSsnap_pose-Remapping": { + "stars": 34, + "last_update": "2025-07-25 09:49:47", + "author_account_age_days": 735 + }, + "https://github.com/SXQBW/ComfyUI-Qwen3": { + "stars": 0, + "last_update": "2025-04-18 06:06:49", + "author_account_age_days": 3227 + }, + "https://github.com/SadaleNet/ComfyUI-Prompt-To-Prompt": { + "stars": 24, + "last_update": "2024-03-17 04:30:01", + "author_account_age_days": 4475 + }, + "https://github.com/Saganaki22/ComfyUI-ytdl_nodes": { + "stars": 24, + "last_update": "2025-08-28 19:58:10", + "author_account_age_days": 1571 + }, + "https://github.com/Sai-ComfyUI/ComfyUI-MS-Nodes": { + "stars": 2, + "last_update": "2024-02-22 08:34:44", + "author_account_age_days": 644 + }, + "https://github.com/Sakura-nee/ComfyUI_Save2Discord": { + "stars": 0, + "last_update": "2024-08-27 19:01:46", + "author_account_age_days": 1746 + }, + "https://github.com/SanDiegoDude/ComfyUI-HiDream-Sampler": { + "stars": 98, + "last_update": "2025-05-09 15:17:23", + "author_account_age_days": 1066 + }, + "https://github.com/SaulQcy/comfy_saul_plugin": { + "stars": 0, + "last_update": "2025-08-27 05:20:07", + "author_account_age_days": 696 + }, + "https://github.com/Scaryplasmon/ComfTrellis": { + "stars": 7, + "last_update": "2025-02-18 11:34:33", + "author_account_age_days": 1460 + }, + "https://github.com/SeedV/ComfyUI-SeedV-Nodes": { + "stars": 1, + "last_update": "2025-04-25 07:37:36", + "author_account_age_days": 1561 + }, + "https://github.com/Sephrael/comfyui_caption-around-image": { + "stars": 0, + "last_update": "2025-06-02 19:16:34", + "author_account_age_days": 898 + }, + "https://github.com/ServiceStack/classifier-agent": { + "stars": 0, + "last_update": "2025-08-30 16:06:44", + "author_account_age_days": 5320 + }, + "https://github.com/ShahFaisalWani/ComfyUI-Mojen-Nodeset": { + "stars": 0, + "last_update": "2025-05-03 08:29:40", + "author_account_age_days": 846 + }, + "https://github.com/Shinsplat/ComfyUI-Shinsplat": { + "stars": 46, + "last_update": "2025-03-15 00:02:11", + "author_account_age_days": 1459 + }, + "https://github.com/ShmuelRonen/ComfyUI-FreeMemory": { + "stars": 112, + "last_update": "2025-03-20 11:25:12", + "author_account_age_days": 1640 + }, + "https://github.com/Simlym/comfyui-prompt-helper": { + "stars": 2, + "last_update": "2025-07-31 16:30:02", + "author_account_age_days": 2617 + }, + "https://github.com/SirVeggie/comfyui-sv-nodes": { + "stars": 5, + "last_update": "2025-05-03 19:46:49", + "author_account_age_days": 2896 + }, + "https://github.com/Slix-M-Lestragg/comfyui-enhanced": { + "stars": 0, + "last_update": "2025-04-11 21:32:23", + "author_account_age_days": 1749 + }, + "https://github.com/SoftMeng/ComfyUI-PIL": { + "stars": 7, + "last_update": "2024-10-13 10:02:17", + "author_account_age_days": 3959 + }, + "https://github.com/Solankimayursinh/PMSnodes": { + "stars": 0, + "last_update": "2025-04-26 07:47:15", + "author_account_age_days": 300 + }, + "https://github.com/Soliton80/ComfyUI-Watermark-Detection-YOLO": { + "stars": 4, + "last_update": "2025-07-22 08:55:26", + "author_account_age_days": 1399 + }, + "https://github.com/Sophylax/ComfyUI-ReferenceMerge": { + "stars": 0, + "last_update": "2025-04-30 21:48:18", + "author_account_age_days": 4380 + }, + "https://github.com/Soppatorsk/comfyui_img_to_ascii": { + "stars": 0, + "last_update": "2024-09-07 15:39:28", + "author_account_age_days": 1575 + }, + "https://github.com/SpaceWarpStudio/ComfyUI_Remaker_FaceSwap": { + "stars": 0, + "last_update": "2024-07-15 11:57:20", + "author_account_age_days": 3391 + }, + "https://github.com/Stable-X/ComfyUI-Hi3DGen": { + "stars": 168, + "last_update": "2025-04-04 03:48:36", + "author_account_age_days": 457 + }, + "https://github.com/StableDiffusionVN/SDVN_Comfy_node": { + "stars": 60, + "last_update": "2025-08-30 06:36:25", + "author_account_age_days": 393 + }, + "https://github.com/StaffsGull/comfyui_scene_builder": { + "stars": 0, + "last_update": "2025-04-27 12:40:57", + "author_account_age_days": 3375 + }, + "https://github.com/StartHua/Comfyui_CSDMT_CXH": { + "stars": 20, + "last_update": "2024-07-11 15:36:03", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_CXH_CRM": { + "stars": 45, + "last_update": "2024-06-06 14:15:14", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_CXH_joy_caption": { + "stars": 600, + "last_update": "2025-02-06 02:35:10", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_Flux_Style_Ctr": { + "stars": 97, + "last_update": "2024-11-22 09:25:11", + "author_account_age_days": 3270 + }, + "https://github.com/StartHua/Comfyui_leffa": { + "stars": 234, + "last_update": "2024-12-18 03:04:54", + "author_account_age_days": 3270 + }, + "https://github.com/StoryWalker/comfyui_flux_collection_advanced": { + "stars": 0, + "last_update": "2025-04-28 02:49:48", + "author_account_age_days": 245 + }, + "https://github.com/Symbiomatrix/Comfyui-Sort-Files": { + "stars": 1, + "last_update": "2025-04-22 22:24:00", + "author_account_age_days": 2609 + }, + "https://github.com/TSFSean/ComfyUI-TSFNodes": { + "stars": 6, + "last_update": "2024-05-18 00:59:06", + "author_account_age_days": 3907 + }, + "https://github.com/Tawbaware/ComfyUI-Tawbaware": { + "stars": 1, + "last_update": "2025-04-20 22:23:11", + "author_account_age_days": 1706 + }, + "https://github.com/Temult/TWanSigmaSampler": { + "stars": 2, + "last_update": "2025-04-17 08:53:41", + "author_account_age_days": 701 + }, + "https://github.com/ThatGlennD/ComfyUI-Image-Analysis-Tools": { + "stars": 13, + "last_update": "2025-05-27 11:49:48", + "author_account_age_days": 3280 + }, + "https://github.com/TheJorseman/IntrinsicCompositingClean-ComfyUI": { + "stars": 0, + "last_update": "2025-05-07 17:07:51", + "author_account_age_days": 3717 + }, + "https://github.com/ThisModernDay/ComfyUI-InstructorOllama": { + "stars": 8, + "last_update": "2024-08-20 00:30:24", + "author_account_age_days": 4164 + }, + "https://github.com/TimothyCMeehan/comfyui-ck3-presets": { + "stars": 0, + "last_update": "2025-08-13 15:13:15", + "author_account_age_days": 3518 + }, + "https://github.com/Tr1dae/ComfyUI-CustomNodes-MVM": { + "stars": 0, + "last_update": "2025-07-09 17:19:56", + "author_account_age_days": 973 + }, + "https://github.com/UmutGuzel/tryvariantai-comfyui": { + "stars": 0, + "last_update": "2025-07-15 12:05:03", + "author_account_age_days": 2206 + }, + "https://github.com/V-woodpecker-V/comfyui-stiffy-nodes": { + "stars": 1, + "last_update": "2025-04-12 22:36:51", + "author_account_age_days": 1691 + }, + "https://github.com/Velour-Fog/comfy-latent-nodes": { + "stars": 7, + "last_update": "2025-02-24 00:34:41", + "author_account_age_days": 1396 + }, + "https://github.com/VictorLopes643/ComfyUI-Video-Dataset-Tools": { + "stars": 1, + "last_update": "2025-05-09 22:47:52", + "author_account_age_days": 2744 + }, + "https://github.com/Video3DGenResearch/comfyui-batch-input-node": { + "stars": 1, + "last_update": "2024-04-28 15:21:17", + "author_account_age_days": 541 + }, + "https://github.com/VisionExp/ve_custom_comfyui_nodes": { + "stars": 0, + "last_update": "2024-07-17 11:51:54", + "author_account_age_days": 440 + }, + "https://github.com/Vkabuto23/comfyui_openrouter_ollama": { + "stars": 2, + "last_update": "2025-07-16 09:03:47", + "author_account_age_days": 447 + }, + "https://github.com/Vsolon/ComfyUI-CBZ-Pack": { + "stars": 0, + "last_update": "2025-08-21 16:11:06", + "author_account_age_days": 3689 + }, + "https://github.com/WASasquatch/ASTERR": { + "stars": 30, + "last_update": "2024-10-27 01:48:56", + "author_account_age_days": 5060 + }, + "https://github.com/WSJUSA/Comfyui-StableSR": { + "stars": 53, + "last_update": "2023-10-18 12:40:30", + "author_account_age_days": 1859 + }, + "https://github.com/WaiyanLing/ComfyUI-Tracking": { + "stars": 1, + "last_update": "2025-04-18 04:36:33", + "author_account_age_days": 4556 + }, + "https://github.com/WilliamStanford/ComfyUI-VisualLabs": { + "stars": 1, + "last_update": "2024-04-16 21:53:02", + "author_account_age_days": 2205 + }, + "https://github.com/WozStudios/ComfyUI-WozNodes": { + "stars": 0, + "last_update": "2025-06-25 14:29:29", + "author_account_age_days": 4544 + }, + "https://github.com/XiaoHeiziGGG/ComfyUI-Gemini-Kontext": { + "stars": 8, + "last_update": "2025-07-02 21:15:07", + "author_account_age_days": 488 + }, + "https://github.com/XiaoHeiziGGG/ComfyUI-GeminiTranslator": { + "stars": 0, + "last_update": "2025-06-30 05:43:17", + "author_account_age_days": 488 + }, + "https://github.com/Yeonri/ComfyUI_LLM_Are_You_Listening": { + "stars": 0, + "last_update": "2025-02-21 00:35:03", + "author_account_age_days": 972 + }, + "https://github.com/Yuan-ManX/ComfyUI-Step1X-Edit": { + "stars": 11, + "last_update": "2025-04-29 07:36:52", + "author_account_age_days": 1875 + }, + "https://github.com/Yukinoshita-Yukinoe/ComfyUI-KontextOfficialNode": { + "stars": 2, + "last_update": "2025-06-06 09:23:19", + "author_account_age_days": 1841 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AuraSR-ZHO": { + "stars": 95, + "last_update": "2024-07-11 07:33:30", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": { + "stars": 368, + "last_update": "2024-07-30 23:24:24", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": { + "stars": 770, + "last_update": "2024-05-22 14:15:11", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Llama-3-2": { + "stars": 18, + "last_update": "2024-09-26 18:08:01", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PuLID-ZHO": { + "stars": 238, + "last_update": "2024-05-22 13:38:23", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Qwen": { + "stars": 111, + "last_update": "2024-09-20 21:27:47", + "author_account_age_days": 775 + }, + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Wan-ZHO": { + "stars": 10, + "last_update": "2025-02-26 05:46:42", + "author_account_age_days": 775 + }, + "https://github.com/ZenAI-Vietnam/ComfyUI-gemini-IG": { + "stars": 1, + "last_update": "2025-03-26 14:49:13", + "author_account_age_days": 618 + }, + "https://github.com/ZenAI-Vietnam/ComfyUI_InfiniteYou": { + "stars": 245, + "last_update": "2025-03-31 07:56:02", + "author_account_age_days": 618 + }, + "https://github.com/a-One-Fan/ComfyUI-Blenderesque-Nodes": { + "stars": 5, + "last_update": "2025-08-03 00:04:30", + "author_account_age_days": 1290 + }, + "https://github.com/a-und-b/ComfyUI_Output_as_Input": { + "stars": 2, + "last_update": "2025-05-08 08:35:02", + "author_account_age_days": 875 + }, + "https://github.com/aa-parky/pipemind-comfyui": { + "stars": 0, + "last_update": "2025-07-09 08:45:49", + "author_account_age_days": 2279 + }, + "https://github.com/abuzreq/ComfyUI-Model-Bending": { + "stars": 14, + "last_update": "2025-06-20 04:31:48", + "author_account_age_days": 4291 + }, + "https://github.com/adithis197/ComfyUI-Caption_to_audio": { + "stars": 1, + "last_update": "2025-08-01 23:03:40", + "author_account_age_days": 2309 + }, + "https://github.com/adithis197/ComfyUI-multimodal-CaptionToVideoGen": { + "stars": 1, + "last_update": "2025-08-01 23:08:31", + "author_account_age_days": 2309 + }, + "https://github.com/aesethtics/ComfyUI-OpenPoser": { + "stars": 0, + "last_update": "2025-08-27 17:50:40", + "author_account_age_days": 3281 + }, + "https://github.com/ahmedbana/File-Rename": { + "stars": 0, + "last_update": "2025-07-25 10:48:49", + "author_account_age_days": 3368 + }, + "https://github.com/ahmedbana/json-creator": { + "stars": 0, + "last_update": "2025-07-29 10:59:12", + "author_account_age_days": 3368 + }, + "https://github.com/ahmedbana/upload-to-azure": { + "stars": 0, + "last_update": "2025-07-29 10:58:26", + "author_account_age_days": 3368 + }, + "https://github.com/aiden1020/ComfyUI_Artcoder": { + "stars": 2, + "last_update": "2025-01-11 08:31:32", + "author_account_age_days": 904 + }, + "https://github.com/ainanoha/etm_comfyui_nodes": { + "stars": 0, + "last_update": "2024-10-31 05:45:59", + "author_account_age_days": 4689 + }, + "https://github.com/akatz-ai/ComfyUI-Execution-Inversion": { + "stars": 2, + "last_update": "2025-06-18 04:06:55", + "author_account_age_days": 470 + }, + "https://github.com/aklevecz/ComfyUI-AutoPrompt": { + "stars": 0, + "last_update": "2025-05-26 18:36:34", + "author_account_age_days": 2707 + }, + "https://github.com/alchemist-software-engineer/ComfyUI-Affine-Transform": { + "stars": 3, + "last_update": "2024-10-05 17:42:40", + "author_account_age_days": 394 + }, + "https://github.com/alchemist-software-engineer/ComfyUI-Simple-Image-Tools": { + "stars": 0, + "last_update": "2024-10-12 18:29:58", + "author_account_age_days": 394 + }, + "https://github.com/alexgenovese/ComfyUI-Diffusion-4k": { + "stars": 6, + "last_update": "2025-05-22 20:48:23", + "author_account_age_days": 5449 + }, + "https://github.com/alexgenovese/ComfyUI-Reica": { + "stars": 0, + "last_update": "2025-07-17 08:21:13", + "author_account_age_days": 5449 + }, + "https://github.com/alexisrolland/ComfyUI-AuraSR": { + "stars": 28, + "last_update": "2025-09-02 15:57:17", + "author_account_age_days": 3721 + }, + "https://github.com/alistairallan/ComfyUI-skin-retouch": { + "stars": 0, + "last_update": "2025-08-02 15:45:04", + "author_account_age_days": 4960 + }, + "https://github.com/alt-key-project/comfyui-dream-painter": { + "stars": 2, + "last_update": "2025-02-23 10:19:26", + "author_account_age_days": 1095 + }, + "https://github.com/alt-key-project/comfyui-dream-video-batches": { + "stars": 76, + "last_update": "2025-02-23 10:28:40", + "author_account_age_days": 1095 + }, + "https://github.com/amamisonlyuser/MixvtonComfyui": { + "stars": 0, + "last_update": "2025-05-31 14:14:10", + "author_account_age_days": 870 + }, + "https://github.com/ammahmoudi/ComfyUI-Legendary-Nodes": { + "stars": 0, + "last_update": "2025-03-15 07:26:17", + "author_account_age_days": 1377 + }, + "https://github.com/animEEEmpire/ComfyUI-Animemory-Loader": { + "stars": 3, + "last_update": "2025-01-20 08:02:58", + "author_account_age_days": 281 + }, + "https://github.com/apeirography/DaimalyadNodes": { + "stars": 0, + "last_update": "2025-08-15 03:21:01", + "author_account_age_days": 2175 + }, + "https://github.com/apeirography/ModelCopyNode": { + "stars": 0, + "last_update": "2025-08-20 02:39:14", + "author_account_age_days": 2175 + }, + "https://github.com/apetitbois/nova_utils": { + "stars": 0, + "last_update": "2025-04-02 20:01:49", + "author_account_age_days": 3532 + }, + "https://github.com/aria1th/ComfyUI-CairoSVG": { + "stars": 0, + "last_update": "2025-01-07 19:40:19", + "author_account_age_days": 2780 + }, + "https://github.com/aria1th/ComfyUI-SkipCFGSigmas": { + "stars": 3, + "last_update": "2025-03-05 07:50:45", + "author_account_age_days": 2780 + }, + "https://github.com/aria1th/ComfyUI-camietagger-onnx": { + "stars": 0, + "last_update": "2025-03-06 01:55:51", + "author_account_age_days": 2780 + }, + "https://github.com/artem-konevskikh/comfyui-split-merge-video": { + "stars": 3, + "last_update": "2024-11-19 00:11:17", + "author_account_age_days": 4807 + }, + "https://github.com/artifyfun/ComfyUI-JS": { + "stars": 2, + "last_update": "2025-07-02 10:45:12", + "author_account_age_days": 526 + }, + "https://github.com/artisanalcomputing/ComfyUI-Custom-Nodes": { + "stars": 0, + "last_update": "2024-10-13 05:55:33", + "author_account_age_days": 2710 + }, + "https://github.com/ashishsaini/comfyui-segment-clothing-sleeves": { + "stars": 2, + "last_update": "2024-09-23 19:09:15", + "author_account_age_days": 4383 + }, + "https://github.com/ashllay/ComfyUI_MoreComfy": { + "stars": 0, + "last_update": "2025-08-11 13:46:34", + "author_account_age_days": 4405 + }, + "https://github.com/avocadori/ComfyUI-AudioAmplitudeConverter": { + "stars": 0, + "last_update": "2025-05-29 07:57:22", + "author_account_age_days": 508 + }, + "https://github.com/ayaoayaoayaoaya/ComfyUI-KLUT-DeepSeek-API": { + "stars": 0, + "last_update": "2025-03-27 15:38:59", + "author_account_age_days": 455 + }, + "https://github.com/babydjac/comfyui-grok-ponyxl": { + "stars": 0, + "last_update": "2025-07-18 19:10:49", + "author_account_age_days": 840 + }, + "https://github.com/backearth1/Comfyui-MiniMax-Video": { + "stars": 19, + "last_update": "2025-03-12 15:26:35", + "author_account_age_days": 687 + }, + "https://github.com/badmike/comfyui-prompt-factory": { + "stars": 0, + "last_update": "2025-02-18 09:28:53", + "author_account_age_days": 5115 + }, + "https://github.com/baicai99/ComfyUI-FrameSkipping": { + "stars": 12, + "last_update": "2025-06-23 02:50:12", + "author_account_age_days": 1266 + }, + "https://github.com/bananasss00/Comfyui-PyExec": { + "stars": 2, + "last_update": "2025-02-26 12:01:18", + "author_account_age_days": 2969 + }, + "https://github.com/bandido37/comfyui-kaggle-local-save": { + "stars": 0, + "last_update": "2025-04-23 16:20:30", + "author_account_age_days": 2177 + }, + "https://github.com/barakapa/barakapa-nodes": { + "stars": 0, + "last_update": "2025-05-13 20:47:52", + "author_account_age_days": 115 + }, + "https://github.com/benda1989/WaterMarkRemover_ComfyUI": { + "stars": 1, + "last_update": "2025-05-01 22:31:19", + "author_account_age_days": 2548 + }, + "https://github.com/benmizrahi/ComfyGCS": { + "stars": 1, + "last_update": "2025-05-05 15:18:40", + "author_account_age_days": 3677 + }, + "https://github.com/beyastard/ComfyUI_BeySoft": { + "stars": 0, + "last_update": "2024-05-26 22:44:55", + "author_account_age_days": 4721 + }, + "https://github.com/bheins/ComfyUI-glb-to-stl": { + "stars": 0, + "last_update": "2025-05-31 17:41:31", + "author_account_age_days": 4099 + }, + "https://github.com/bikiam/ComfyUi_WhisperGTranslate": { + "stars": 0, + "last_update": "2025-07-01 19:41:11", + "author_account_age_days": 585 + }, + "https://github.com/bikiam/Comfyui_AudioRecoder": { + "stars": 0, + "last_update": "2025-07-08 05:35:33", + "author_account_age_days": 585 + }, + "https://github.com/birnam/ComfyUI-GenData-Pack": { + "stars": 0, + "last_update": "2024-03-25 01:25:23", + "author_account_age_days": 5444 + }, + "https://github.com/bleash-dev/ComfyUI-Auth-Manager": { + "stars": 0, + "last_update": "2025-08-10 13:13:23", + "author_account_age_days": 1498 + }, + "https://github.com/bleash-dev/Comfyui-FileSytem-Manager": { + "stars": 0, + "last_update": "2025-08-10 17:27:02", + "author_account_age_days": 1498 + }, + "https://github.com/bleash-dev/Comfyui-Idle-Checker": { + "stars": 0, + "last_update": "2025-08-07 21:04:58", + "author_account_age_days": 1498 + }, + "https://github.com/blepping/comfyui_dum_samplers": { + "stars": 5, + "last_update": "2025-08-11 12:09:57", + "author_account_age_days": 589 + }, + "https://github.com/blib-la/ComfyUI-Captain-Extensions": { + "stars": 0, + "last_update": "2024-05-17 23:27:25", + "author_account_age_days": 708 + }, + "https://github.com/blueraincoatli/ComfyUI-Model-Cleaner": { + "stars": 1, + "last_update": "2025-05-29 08:55:38", + "author_account_age_days": 747 + }, + "https://github.com/blurymind/cozy-fireplace": { + "stars": 4, + "last_update": "2024-11-08 19:42:20", + "author_account_age_days": 4238 + }, + "https://github.com/bmad4ever/comfyui_bmad_nodes": { + "stars": 64, + "last_update": "2025-03-17 14:50:46", + "author_account_age_days": 3971 + }, + "https://github.com/bmgjet/comfyui-powerlimit": { + "stars": 0, + "last_update": "2025-08-30 03:13:17", + "author_account_age_days": 2307 + }, + "https://github.com/boricuapab/ComfyUI-Bori-KontextPresets": { + "stars": 6, + "last_update": "2025-07-21 05:49:40", + "author_account_age_days": 2004 + }, + "https://github.com/borisfaley/ComfyUI-ACES-EXR-OCIO": { + "stars": 1, + "last_update": "2025-08-24 05:31:47", + "author_account_age_days": 4069 + }, + "https://github.com/brace-great/comfyui-eim": { + "stars": 0, + "last_update": "2025-05-14 06:09:18", + "author_account_age_days": 1524 + }, + "https://github.com/brace-great/comfyui-mc": { + "stars": 0, + "last_update": "2025-07-06 23:58:45", + "author_account_age_days": 1524 + }, + "https://github.com/brandonkish/comfyUI-extractable-text": { + "stars": 0, + "last_update": "2025-08-11 01:05:57", + "author_account_age_days": 4180 + }, + "https://github.com/broumbroum/comfyui-time-system": { + "stars": 0, + "last_update": "2025-07-25 18:50:32", + "author_account_age_days": 1204 + }, + "https://github.com/bruce007lee/comfyui-cleaner": { + "stars": 3, + "last_update": "2024-04-20 15:36:03", + "author_account_age_days": 4947 + }, + "https://github.com/bruce007lee/comfyui-tiny-utils": { + "stars": 1, + "last_update": "2024-08-31 13:34:57", + "author_account_age_days": 4947 + }, + "https://github.com/brycegoh/comfyui-custom-nodes": { + "stars": 0, + "last_update": "2024-06-05 09:30:06", + "author_account_age_days": 3544 + }, + "https://github.com/bulldog68/ComfyUI_FMJ": { + "stars": 4, + "last_update": "2025-07-16 16:04:06", + "author_account_age_days": 539 + }, + "https://github.com/c0ffymachyne/ComfyUI_SignalProcessing": { + "stars": 16, + "last_update": "2025-05-14 01:41:00", + "author_account_age_days": 4950 + }, + "https://github.com/casterpollux/ComfyUI-USO": { + "stars": 3, + "last_update": "2025-09-01 16:08:39", + "author_account_age_days": 108 + }, + "https://github.com/casterpollux/MiniMax-bmo": { + "stars": 46, + "last_update": "2025-06-24 19:22:18", + "author_account_age_days": 108 + }, + "https://github.com/catboxanon/ComfyUI-Pixelsmith": { + "stars": 4, + "last_update": "2025-01-22 03:02:05", + "author_account_age_days": 966 + }, + "https://github.com/celll1/cel_sampler": { + "stars": 1, + "last_update": "2024-11-20 13:04:54", + "author_account_age_days": 665 + }, + "https://github.com/cesilk10/cesilk-comfyui-nodes": { + "stars": 0, + "last_update": "2025-08-13 11:30:35", + "author_account_age_days": 118 + }, + "https://github.com/chaojie/ComfyUI-DynamiCrafter": { + "stars": 130, + "last_update": "2024-06-14 10:23:59", + "author_account_age_days": 5269 + }, + "https://github.com/chaojie/ComfyUI-mobvoi-openapi": { + "stars": 2, + "last_update": "2024-05-29 09:02:52", + "author_account_age_days": 5269 + }, + "https://github.com/chaserhkj/ComfyUI-Chaser-nodes": { + "stars": 0, + "last_update": "2025-09-01 01:10:28", + "author_account_age_days": 4850 + }, + "https://github.com/chenbaiyujason/ComfyUI_StepFun": { + "stars": 7, + "last_update": "2024-12-05 14:45:27", + "author_account_age_days": 2170 + }, + "https://github.com/chengzeyi/Comfy-WaveSpeed": { + "stars": 1146, + "last_update": "2025-08-02 14:24:30", + "author_account_age_days": 3212 + }, + "https://github.com/chenpipi0807/ComfyUI-InstantCharacterFlux": { + "stars": 2, + "last_update": "2025-08-18 13:04:22", + "author_account_age_days": 722 + }, + "https://github.com/chetusangolgi/Comfyui-supabase": { + "stars": 0, + "last_update": "2025-07-17 11:50:31", + "author_account_age_days": 828 + }, + "https://github.com/chrisdreid/ComfyUI_EnvAutopsyAPI": { + "stars": 4, + "last_update": "2024-08-29 03:54:28", + "author_account_age_days": 3553 + }, + "https://github.com/christian-byrne/infinite-zoom-parallax-nodes": { + "stars": 5, + "last_update": "2024-07-08 15:07:05", + "author_account_age_days": 1783 + }, + "https://github.com/christian-byrne/python-interpreter-node": { + "stars": 65, + "last_update": "2025-04-02 02:06:27", + "author_account_age_days": 1783 + }, + "https://github.com/chuge26/ComfyUI_seal_migration": { + "stars": 0, + "last_update": "2025-04-21 07:23:45", + "author_account_age_days": 2801 + }, + "https://github.com/cidiro/cid-node-pack": { + "stars": 0, + "last_update": "2025-03-23 23:26:00", + "author_account_age_days": 2064 + }, + "https://github.com/ciga2011/ComfyUI-AppGen": { + "stars": 2, + "last_update": "2025-01-02 17:00:32", + "author_account_age_days": 4634 + }, + "https://github.com/clcimir/FileTo64": { + "stars": 0, + "last_update": "2025-08-23 21:26:35", + "author_account_age_days": 1606 + }, + "https://github.com/comfyanonymous/ComfyUI": { + "stars": 87260, + "last_update": "2025-09-02 07:46:00", + "author_account_age_days": 984 + }, + "https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4": { + "stars": 416, + "last_update": "2024-08-16 18:06:10", + "author_account_age_days": 984 + }, + "https://github.com/comfypod/ComfyUI-Comflow": { + "stars": 0, + "last_update": "2024-06-17 08:44:08", + "author_account_age_days": 458 + }, + "https://github.com/comfyscript/ComfyUI-CloudClient": { + "stars": 0, + "last_update": "2025-08-24 13:46:14", + "author_account_age_days": 9 + }, + "https://github.com/comfyuiblog/deepseek_prompt_generator_comfyui": { + "stars": 2, + "last_update": "2025-01-28 21:28:11", + "author_account_age_days": 325 + }, + "https://github.com/concarne000/ComfyUI-Stacker": { + "stars": 6, + "last_update": "2025-07-26 12:44:46", + "author_account_age_days": 2336 + }, + "https://github.com/corbin-hayden13/ComfyUI-Better-Dimensions": { + "stars": 7, + "last_update": "2024-06-12 17:45:21", + "author_account_age_days": 2250 + }, + "https://github.com/crimro-se/ComfyUI-CascadedGaze": { + "stars": 1, + "last_update": "2025-08-04 23:03:24", + "author_account_age_days": 312 + }, + "https://github.com/ctf05/ComfyUI-AudioDuration": { + "stars": 0, + "last_update": "2025-08-13 02:20:17", + "author_account_age_days": 2237 + }, + "https://github.com/cubiq/Comfy_Dungeon": { + "stars": 266, + "last_update": "2024-04-26 11:00:58", + "author_account_age_days": 5446 + }, + "https://github.com/cwebbi1/VoidCustomNodes": { + "stars": 0, + "last_update": "2024-10-07 02:23:02", + "author_account_age_days": 440 + }, + "https://github.com/cyberhirsch/seb_nodes": { + "stars": 1, + "last_update": "2025-07-12 12:45:36", + "author_account_age_days": 2302 + }, + "https://github.com/daracazamea/comfyUI-DCNodes": { + "stars": 0, + "last_update": "2025-04-03 14:38:27", + "author_account_age_days": 2394 + }, + "https://github.com/dead-matrix/ComfyUI-RMBG-Custom": { + "stars": 0, + "last_update": "2025-08-28 23:20:59", + "author_account_age_days": 1911 + }, + "https://github.com/denislov/Comfyui_AutoSurvey": { + "stars": 1, + "last_update": "2024-08-03 06:50:57", + "author_account_age_days": 2422 + }, + "https://github.com/dexintenebri/comfyui_voxel_nodes": { + "stars": 1, + "last_update": "2025-08-01 08:33:48", + "author_account_age_days": 1047 + }, + "https://github.com/dfl/comfyui-stylegan": { + "stars": 0, + "last_update": "2024-12-29 18:35:27", + "author_account_age_days": 6409 + }, + "https://github.com/dhpdong/ComfyUI-IPAdapter-Flux-Repair": { + "stars": 4, + "last_update": "2025-05-23 08:51:34", + "author_account_age_days": 2345 + }, + "https://github.com/dihan/comfyui-random-kps": { + "stars": 3, + "last_update": "2025-01-01 22:48:11", + "author_account_age_days": 4731 + }, + "https://github.com/diodiogod/Comfy-Inpainting-Works": { + "stars": 60, + "last_update": "2025-07-08 01:15:58", + "author_account_age_days": 563 + }, + "https://github.com/dogcomplex/ComfyUI-LOKI": { + "stars": 1, + "last_update": "2025-05-07 08:10:12", + "author_account_age_days": 4501 + }, + "https://github.com/doucx/ComfyUI_WcpD_Utility_Kit": { + "stars": 1, + "last_update": "2024-01-06 19:07:45", + "author_account_age_days": 2758 + }, + "https://github.com/dowands/ComfyUI-AddMaskForICLora": { + "stars": 1, + "last_update": "2024-11-26 09:40:06", + "author_account_age_days": 2974 + }, + "https://github.com/downlifted/ComfyUI_BWiZ_Nodes": { + "stars": 1, + "last_update": "2024-12-27 17:03:52", + "author_account_age_days": 2682 + }, + "https://github.com/duckmartians/Duck_Nodes": { + "stars": 1, + "last_update": "2025-08-21 02:24:03", + "author_account_age_days": 482 + }, + "https://github.com/eggsbenedicto/DiffusionRenderer-ComfyUI": { + "stars": 2, + "last_update": "2025-08-21 15:01:24", + "author_account_age_days": 284 + }, + "https://github.com/eigenpunk/ComfyUI-audio": { + "stars": 88, + "last_update": "2025-08-10 18:30:01", + "author_account_age_days": 1360 + }, + "https://github.com/ejektaflex/ComfyUI-Ty": { + "stars": 0, + "last_update": "2024-06-12 16:08:16", + "author_account_age_days": 3207 + }, + "https://github.com/elfatherbrown/comfyui-realcugan-node": { + "stars": 0, + "last_update": "2025-08-29 05:32:29", + "author_account_age_days": 3957 + }, + "https://github.com/emranemran/ComfyUI-FasterLivePortrait": { + "stars": 0, + "last_update": "2024-12-18 20:03:19", + "author_account_age_days": 4620 + }, + "https://github.com/endman100/ComfyUI-SaveAndLoadPromptCondition": { + "stars": 1, + "last_update": "2024-07-03 09:35:02", + "author_account_age_days": 2908 + }, + "https://github.com/endman100/ComfyUI-augmentation": { + "stars": 0, + "last_update": "2024-07-23 09:06:24", + "author_account_age_days": 2908 + }, + "https://github.com/enlo/ComfyUI-CheckpointSettings": { + "stars": 0, + "last_update": "2025-07-20 04:27:46", + "author_account_age_days": 3905 + }, + "https://github.com/ericbeyer/guidance_interval": { + "stars": 2, + "last_update": "2024-04-16 03:24:01", + "author_account_age_days": 3029 + }, + "https://github.com/erosDiffusion/ComfyUI-enricos-json-file-load-and-value-selector": { + "stars": 2, + "last_update": "2025-06-04 16:32:17", + "author_account_age_days": 432 + }, + "https://github.com/ervinne13/ComfyUI-Metadata-Hub": { + "stars": 0, + "last_update": "2025-08-30 09:04:34", + "author_account_age_days": 4305 + }, + "https://github.com/esciron/ComfyUI-HunyuanVideoWrapper-Extended": { + "stars": 4, + "last_update": "2025-01-04 22:27:09", + "author_account_age_days": 3429 + }, + "https://github.com/etng/ComfyUI-Heartbeat": { + "stars": 2, + "last_update": "2025-06-03 09:32:40", + "author_account_age_days": 1499 + }, + "https://github.com/exectails/comfyui-et_scripting": { + "stars": 1, + "last_update": "2024-11-29 17:23:07", + "author_account_age_days": 4353 + }, + "https://github.com/eyekayem/comfyui_runway_gen3": { + "stars": 0, + "last_update": "2025-01-27 06:59:45", + "author_account_age_days": 1047 + }, + "https://github.com/facok/ComfyUI-FokToolset": { + "stars": 5, + "last_update": "2025-04-24 19:29:57", + "author_account_age_days": 893 + }, + "https://github.com/fangg2000/ComfyUI-SenseVoice": { + "stars": 0, + "last_update": "2025-05-06 06:42:52", + "author_account_age_days": 863 + }, + "https://github.com/fangg2000/ComfyUI-StableAudioFG": { + "stars": 0, + "last_update": "2025-06-15 11:49:34", + "author_account_age_days": 863 + }, + "https://github.com/fangziheng2321/comfyuinode_chopmask": { + "stars": 0, + "last_update": "2025-02-17 03:16:50", + "author_account_age_days": 1607 + }, + "https://github.com/filipemeneses/ComfyUI_html": { + "stars": 1, + "last_update": "2025-06-10 10:53:55", + "author_account_age_days": 3911 + }, + "https://github.com/filliptm/ComfyUI_Fill-Node-Loader": { + "stars": 6, + "last_update": "2025-06-25 01:25:38", + "author_account_age_days": 2171 + }, + "https://github.com/flowtyone/comfyui-flowty-lcm": { + "stars": 63, + "last_update": "2023-10-23 12:08:55", + "author_account_age_days": 708 + }, + "https://github.com/flyingdogsoftware/gyre_for_comfyui": { + "stars": 1, + "last_update": "2024-11-18 22:35:37", + "author_account_age_days": 2448 + }, + "https://github.com/foglerek/comfyui-cem-tools": { + "stars": 1, + "last_update": "2024-01-13 23:22:07", + "author_account_age_days": 4473 + }, + "https://github.com/franky519/comfyui-redux-style": { + "stars": 0, + "last_update": "2025-02-13 10:04:45", + "author_account_age_days": 712 + }, + "https://github.com/franky519/comfyui_fnckc_Face_analysis": { + "stars": 0, + "last_update": "2025-06-16 02:09:00", + "author_account_age_days": 712 + }, + "https://github.com/fritzprix/ComfyUI-LLM-Utils": { + "stars": 1, + "last_update": "2025-01-04 23:25:38", + "author_account_age_days": 5163 + }, + "https://github.com/ftechmax/ComfyUI-NovaKit-Pack": { + "stars": 0, + "last_update": "2025-04-26 13:27:06", + "author_account_age_days": 3013 + }, + "https://github.com/ftf001-tech/ComfyUI-ExternalLLMDetector": { + "stars": 2, + "last_update": "2025-06-22 03:43:09", + "author_account_age_days": 2131 + }, + "https://github.com/futureversecom/ComfyUI-JEN": { + "stars": 0, + "last_update": "2024-08-06 00:24:56", + "author_account_age_days": 1154 + }, + "https://github.com/fuzr0dah/comfyui-sceneassembly": { + "stars": 0, + "last_update": "2025-05-18 12:27:05", + "author_account_age_days": 3539 + }, + "https://github.com/fylrid2/comfyui_lock_previous_value": { + "stars": 0, + "last_update": "2025-06-30 22:05:07", + "author_account_age_days": 448 + }, + "https://github.com/gabe-init/ComfyUI-LM-Studio": { + "stars": 2, + "last_update": "2025-05-26 22:10:36", + "author_account_age_days": 99 + }, + "https://github.com/gabe-init/ComfyUI-Repo-Eater": { + "stars": 0, + "last_update": "2025-05-27 01:09:24", + "author_account_age_days": 99 + }, + "https://github.com/gabe-init/comfyui_ui_render": { + "stars": 3, + "last_update": "2025-05-27 00:27:32", + "author_account_age_days": 99 + }, + "https://github.com/gagaprince/ComfyUI_gaga_utils": { + "stars": 0, + "last_update": "2025-05-12 09:54:34", + "author_account_age_days": 4295 + }, + "https://github.com/galoreware/ComfyUI-GaloreNodes": { + "stars": 0, + "last_update": "2024-10-24 05:47:23", + "author_account_age_days": 1860 + }, + "https://github.com/gameltb/ComfyUI_paper_playground": { + "stars": 10, + "last_update": "2025-05-14 16:18:43", + "author_account_age_days": 4490 + }, + "https://github.com/gameltb/ComfyUI_stable_fast": { + "stars": 209, + "last_update": "2024-08-04 09:25:33", + "author_account_age_days": 4490 + }, + "https://github.com/gameltb/io_comfyui": { + "stars": 6, + "last_update": "2025-02-04 15:14:01", + "author_account_age_days": 4490 + }, + "https://github.com/gamtruliar/ComfyUI-N_SwapInput": { + "stars": 0, + "last_update": "2025-05-08 19:08:30", + "author_account_age_days": 4559 + }, + "https://github.com/gaowei-space/ComfyUI-Doubao-LLM": { + "stars": 3, + "last_update": "2025-07-03 07:19:49", + "author_account_age_days": 3913 + }, + "https://github.com/gilons/ComfyUI-GoogleDrive-Downloader": { + "stars": 0, + "last_update": "2025-06-13 20:43:59", + "author_account_age_days": 2983 + }, + "https://github.com/gioferreira/ComfyUI-Molde-Utils": { + "stars": 0, + "last_update": "2025-02-27 20:53:33", + "author_account_age_days": 3395 + }, + "https://github.com/gitadmini/comfyui_extractstoryboards": { + "stars": 18, + "last_update": "2025-08-23 01:06:12", + "author_account_age_days": 3477 + }, + "https://github.com/githubYiheng/comfyui_median_filter": { + "stars": 0, + "last_update": "2024-07-03 11:38:39", + "author_account_age_days": 4338 + }, + "https://github.com/gitmylo/FlowNodes": { + "stars": 12, + "last_update": "2025-04-03 08:17:47", + "author_account_age_days": 2742 + }, + "https://github.com/glamorfleet0i/ComfyUI-Firewall": { + "stars": 0, + "last_update": "2024-12-30 02:14:57", + "author_account_age_days": 253 + }, + "https://github.com/gmammolo/comfyui-gmammolo": { + "stars": 0, + "last_update": "2025-08-27 18:55:51", + "author_account_age_days": 4029 + }, + "https://github.com/gmorks/ComfyUI-Animagine-Prompt": { + "stars": 12, + "last_update": "2025-07-20 03:42:06", + "author_account_age_days": 2730 + }, + "https://github.com/go-package-lab/ComfyUI-Tools-Video-Combine": { + "stars": 2, + "last_update": "2024-09-24 03:54:00", + "author_account_age_days": 1819 + }, + "https://github.com/godric8/ComfyUI_Step1X-Edit": { + "stars": 0, + "last_update": "2025-06-02 12:14:14", + "author_account_age_days": 1879 + }, + "https://github.com/gold24park/loki-comfyui-node": { + "stars": 0, + "last_update": "2025-02-07 01:55:07", + "author_account_age_days": 3725 + }, + "https://github.com/gordon123/ComfyUI_DreamBoard": { + "stars": 2, + "last_update": "2025-05-18 09:53:50", + "author_account_age_days": 5530 + }, + "https://github.com/gordon123/ComfyUI_srt2speech": { + "stars": 4, + "last_update": "2025-04-27 13:00:13", + "author_account_age_days": 5530 + }, + "https://github.com/gorillaframeai/GF_pixtral_node": { + "stars": 0, + "last_update": "2025-07-27 13:00:23", + "author_account_age_days": 668 + }, + "https://github.com/grimli333/ComfyUI_Grim": { + "stars": 0, + "last_update": "2024-12-01 18:10:07", + "author_account_age_days": 5199 + }, + "https://github.com/grinlau18/ComfyUI_XISER_Nodes": { + "stars": 23, + "last_update": "2025-08-20 05:15:03", + "author_account_age_days": 739 + }, + "https://github.com/grokuku/ComfyUI-Holaf": { + "stars": 1, + "last_update": "2025-06-28 21:14:43", + "author_account_age_days": 2892 + }, + "https://github.com/grokuku/ComfyUI-Holaf-Utilities": { + "stars": 5, + "last_update": "2025-07-22 17:00:48", + "author_account_age_days": 2892 + }, + "https://github.com/haodman/ComfyUI_Rain": { + "stars": 1, + "last_update": "2024-09-01 10:41:20", + "author_account_age_days": 2575 + }, + "https://github.com/haofanwang/ComfyUI-InstantStyle": { + "stars": 8, + "last_update": "2024-05-23 16:11:13", + "author_account_age_days": 3412 + }, + "https://github.com/haomole/Comfyui-SadTalker": { + "stars": 20, + "last_update": "2025-07-03 03:47:14", + "author_account_age_days": 736 + }, + "https://github.com/hay86/ComfyUI_AceNodes": { + "stars": 66, + "last_update": "2025-05-01 03:08:58", + "author_account_age_days": 5102 + }, + "https://github.com/hayden-fr/ComfyUI-Image-Browsing": { + "stars": 19, + "last_update": "2025-08-12 08:12:34", + "author_account_age_days": 2372 + }, + "https://github.com/hben35096/ComfyUI-ToolBox": { + "stars": 6, + "last_update": "2024-09-02 14:49:43", + "author_account_age_days": 782 + }, + "https://github.com/hdfhssg/ComfyUI_pxtool": { + "stars": 5, + "last_update": "2025-03-02 06:23:44", + "author_account_age_days": 1679 + }, + "https://github.com/hdfhssg/comfyui_EvoSearch": { + "stars": 6, + "last_update": "2025-06-15 11:05:48", + "author_account_age_days": 1679 + }, + "https://github.com/hiusdev/ComfyUI_Lah_Toffee": { + "stars": 0, + "last_update": "2025-02-14 12:40:14", + "author_account_age_days": 1779 + }, + "https://github.com/hnmr293/ComfyUI-SamOne": { + "stars": 0, + "last_update": "2025-04-16 08:07:42", + "author_account_age_days": 990 + }, + "https://github.com/horidream/ComfyUI-Horidream": { + "stars": 0, + "last_update": "2024-09-08 08:57:57", + "author_account_age_days": 5479 + }, + "https://github.com/hotpizzatactics/ComfyUI-WaterMark-Detector": { + "stars": 0, + "last_update": "2024-07-23 14:36:35", + "author_account_age_days": 412 + }, + "https://github.com/hotpot-killer/ComfyUI_AlexNodes": { + "stars": 0, + "last_update": "2024-12-06 09:09:03", + "author_account_age_days": 2661 + }, + "https://github.com/houdinii/comfy-magick": { + "stars": 5, + "last_update": "2024-03-11 06:40:54", + "author_account_age_days": 3955 + }, + "https://github.com/huizhang0110/ComfyUI_Easy_Nodes_hui": { + "stars": 2, + "last_update": "2024-02-27 08:22:49", + "author_account_age_days": 2890 + }, + "https://github.com/hulipanpan/Comfyui_tuteng": { + "stars": 0, + "last_update": "2025-07-14 08:33:39", + "author_account_age_days": 839 + }, + "https://github.com/hunterssl/ComfyUI_SSLNodes": { + "stars": 0, + "last_update": "2025-01-20 07:23:52", + "author_account_age_days": 3271 + }, + "https://github.com/hunzmusic/ComfyUI-Hunyuan3DTools": { + "stars": 4, + "last_update": "2025-06-19 18:11:36", + "author_account_age_days": 163 + }, + "https://github.com/hunzmusic/Comfyui-CraftsMan3DWrapper": { + "stars": 14, + "last_update": "2025-05-09 10:46:59", + "author_account_age_days": 163 + }, + "https://github.com/hunzmusic/comfyui-hnznodes": { + "stars": 1, + "last_update": "2025-03-24 21:53:50", + "author_account_age_days": 163 + }, + "https://github.com/hy134300/comfyui-hb-node": { + "stars": 0, + "last_update": "2024-04-09 09:56:22", + "author_account_age_days": 2196 + }, + "https://github.com/hy134300/comfyui-hydit": { + "stars": 9, + "last_update": "2024-06-07 09:52:15", + "author_account_age_days": 2196 + }, + "https://github.com/hylarucoder/comfyui-copilot": { + "stars": 26, + "last_update": "2024-06-28 04:43:18", + "author_account_age_days": 4348 + }, + "https://github.com/iacoposk8/xor_pickle_nodes": { + "stars": 1, + "last_update": "2025-08-12 09:46:27", + "author_account_age_days": 4589 + }, + "https://github.com/idoru/ComfyUI-SKCFI-NetworkFileIO": { + "stars": 0, + "last_update": "2025-08-15 03:07:11", + "author_account_age_days": 5628 + }, + "https://github.com/if-ai/ComfyUI-IF_Zonos": { + "stars": 1, + "last_update": "2025-02-18 01:28:04", + "author_account_age_days": 3297 + }, + "https://github.com/ilovejohnwhite/Tracer": { + "stars": 0, + "last_update": "2024-11-26 03:39:33", + "author_account_age_days": 1308 + }, + "https://github.com/immersiveexperience/ie-comfyui-color-nodes": { + "stars": 2, + "last_update": "2024-06-18 10:54:55", + "author_account_age_days": 704 + }, + "https://github.com/io-club/ComfyUI-LuminaNext": { + "stars": 0, + "last_update": "2024-09-23 12:02:22", + "author_account_age_days": 1074 + }, + "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils": { + "stars": 13, + "last_update": "2025-02-26 05:03:05", + "author_account_age_days": 4913 + }, + "https://github.com/jax-explorer/ComfyUI-DreamO": { + "stars": 66, + "last_update": "2025-05-22 08:07:02", + "author_account_age_days": 1012 + }, + "https://github.com/jcomeme/ComfyUI-AsunaroTools": { + "stars": 1, + "last_update": "2025-03-21 03:57:39", + "author_account_age_days": 5285 + }, + "https://github.com/jerryname2022/ComfyUI-MegaTTS3": { + "stars": 0, + "last_update": "2025-09-02 07:32:09", + "author_account_age_days": 3714 + }, + "https://github.com/jerryname2022/ComfyUI-Real-ESRGAN": { + "stars": 0, + "last_update": "2025-08-30 11:27:03", + "author_account_age_days": 3714 + }, + "https://github.com/jgbrblmd/ComfyUI-ComfyFluxSize": { + "stars": 0, + "last_update": "2024-08-30 06:42:39", + "author_account_age_days": 891 + }, + "https://github.com/jgbyte/ComfyUI-RandomCube": { + "stars": 0, + "last_update": "2025-07-25 23:32:58", + "author_account_age_days": 390 + }, + "https://github.com/jiafuzeng/comfyui-fishSpeech": { + "stars": 0, + "last_update": "2025-07-23 08:29:43", + "author_account_age_days": 2648 + }, + "https://github.com/jimmm-ai/TimeUi-a-ComfyUi-Timeline-Node": { + "stars": 228, + "last_update": "2024-07-04 11:44:03", + "author_account_age_days": 455 + }, + "https://github.com/jimstudt/ComfyUI-Jims-Nodes": { + "stars": 0, + "last_update": "2025-01-21 17:36:29", + "author_account_age_days": 5382 + }, + "https://github.com/jinchanz/ComfyUI-AliCloud-Bailian": { + "stars": 1, + "last_update": "2025-08-12 01:06:56", + "author_account_age_days": 2500 + }, + "https://github.com/jn-jairo/jn_node_suite_comfyui": { + "stars": 6, + "last_update": "2024-06-08 05:15:33", + "author_account_age_days": 4419 + }, + "https://github.com/jonathan-bryant/ComfyUI-ImageStraightener": { + "stars": 0, + "last_update": "2025-08-02 15:46:45", + "author_account_age_days": 3504 + }, + "https://github.com/jordancoult/ComfyUI_HelpfulNodes": { + "stars": 0, + "last_update": "2025-05-17 01:04:37", + "author_account_age_days": 2860 + }, + "https://github.com/jschoormans/Comfy-InterestingPixels": { + "stars": 1, + "last_update": "2025-02-05 08:34:17", + "author_account_age_days": 3974 + }, + "https://github.com/jtrue/ComfyUI-MaskTools": { + "stars": 0, + "last_update": "2025-08-24 14:39:23", + "author_account_age_days": 4365 + }, + "https://github.com/jtscmw01/ComfyUI-DiffBIR": { + "stars": 302, + "last_update": "2024-05-21 05:28:34", + "author_account_age_days": 937 + }, + "https://github.com/jtydhr88/ComfyUI-StableStudio": { + "stars": 20, + "last_update": "2025-08-15 00:06:43", + "author_account_age_days": 5188 + }, + "https://github.com/jtydhr88/ComfyUI-Unique3D": { + "stars": 216, + "last_update": "2024-10-18 10:37:10", + "author_account_age_days": 5188 + }, + "https://github.com/jtydhr88/ComfyUI_frontend_vue_basic": { + "stars": 9, + "last_update": "2025-08-26 01:23:49", + "author_account_age_days": 5188 + }, + "https://github.com/junhe421/comfyui_batch_image_processor": { + "stars": 7, + "last_update": "2025-07-11 01:09:12", + "author_account_age_days": 570 + }, + "https://github.com/kadirnar/ComfyUI-Adapter": { + "stars": 3, + "last_update": "2024-04-03 12:05:39", + "author_account_age_days": 2764 + }, + "https://github.com/kandy/ComfyUI-KAndy": { + "stars": 0, + "last_update": "2025-08-23 04:41:17", + "author_account_age_days": 5908 + }, + "https://github.com/kappa54m/ComfyUI_Usability": { + "stars": 0, + "last_update": "2024-08-08 15:31:47", + "author_account_age_days": 1946 + }, + "https://github.com/karthikg-09/ComfyUI-3ncrypt": { + "stars": 0, + "last_update": "2024-12-27 09:09:07", + "author_account_age_days": 631 + }, + "https://github.com/kevin314/ComfyUI-FastVideo": { + "stars": 5, + "last_update": "2025-07-03 05:21:54", + "author_account_age_days": 2567 + }, + "https://github.com/kijai/ComfyUI-CV-VAE": { + "stars": 11, + "last_update": "2024-06-03 21:46:49", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-DeepSeek-VL": { + "stars": 48, + "last_update": "2024-05-21 16:43:40", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-DiffSynthWrapper": { + "stars": 61, + "last_update": "2024-06-22 00:16:46", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-DiffusersSD3Wrapper": { + "stars": 10, + "last_update": "2024-06-17 13:03:43", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-EasyAnimateWrapper": { + "stars": 85, + "last_update": "2024-08-14 02:20:18", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-FollowYourEmojiWrapper": { + "stars": 63, + "last_update": "2025-04-18 10:50:26", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-FramePackWrapper": { + "stars": 1518, + "last_update": "2025-06-03 21:48:59", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-Hunyuan3DWrapper": { + "stars": 852, + "last_update": "2025-06-15 09:52:41", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper": { + "stars": 2525, + "last_update": "2025-08-20 08:38:14", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-MMAudio": { + "stars": 416, + "last_update": "2025-06-30 09:33:55", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-MochiWrapper": { + "stars": 788, + "last_update": "2024-11-11 13:54:57", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-VEnhancer": { + "stars": 72, + "last_update": "2024-11-02 00:24:36", + "author_account_age_days": 2618 + }, + "https://github.com/kijai/ComfyUI-VideoNoiseWarp": { + "stars": 158, + "last_update": "2025-03-30 13:39:03", + "author_account_age_days": 2618 + }, + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Advanced-Watermarks": { + "stars": 18, + "last_update": "2025-04-03 17:22:59", + "author_account_age_days": 291 + }, + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Image-From-URL": { + "stars": 0, + "last_update": "2025-05-06 07:50:34", + "author_account_age_days": 291 + }, + "https://github.com/kk8bit/KayTool": { + "stars": 209, + "last_update": "2025-07-01 03:47:14", + "author_account_age_days": 792 + }, + "https://github.com/kongds1999/ComfyUI_was_image": { + "stars": 1, + "last_update": "2025-07-30 09:58:09", + "author_account_age_days": 1133 + }, + "https://github.com/krich-cto/ComfyUI-Flow-Control": { + "stars": 1, + "last_update": "2025-08-14 17:46:22", + "author_account_age_days": 1700 + }, + "https://github.com/krisshen2021/comfyui_OpenRouterNodes": { + "stars": 0, + "last_update": "2025-02-22 02:29:36", + "author_account_age_days": 1623 + }, + "https://github.com/kuschanow/ComfyUI-SD-Slicer": { + "stars": 0, + "last_update": "2024-12-08 16:59:31", + "author_account_age_days": 1816 + }, + "https://github.com/kxh/ComfyUI-ImageUpscaleWithModelMultipleTimes": { + "stars": 0, + "last_update": "2024-10-16 13:53:50", + "author_account_age_days": 4982 + }, + "https://github.com/kxh/ComfyUI-sam2": { + "stars": 1, + "last_update": "2024-10-10 18:06:11", + "author_account_age_days": 4982 + }, + "https://github.com/kycg/comfyui-Kwtoolset": { + "stars": 0, + "last_update": "2024-11-04 21:14:07", + "author_account_age_days": 1376 + }, + "https://github.com/kylegrover/comfyui-python-cowboy": { + "stars": 1, + "last_update": "2024-11-04 18:37:04", + "author_account_age_days": 3087 + }, + "https://github.com/l1yongch1/ComfyUI-YcNodes": { + "stars": 1, + "last_update": "2025-05-05 04:00:28", + "author_account_age_days": 1211 + }, + "https://github.com/laksjdjf/ssd-1b-comfyui": { + "stars": 1, + "last_update": "2023-10-27 20:05:06", + "author_account_age_days": 3266 + }, + "https://github.com/laubsauger/comfyui-storyboard": { + "stars": 9, + "last_update": "2025-06-14 23:33:25", + "author_account_age_days": 4991 + }, + "https://github.com/lazybuttalented/ComfyUI_LBT": { + "stars": 0, + "last_update": "2025-07-30 00:59:41", + "author_account_age_days": 2187 + }, + "https://github.com/lcolok/ComfyUI-MagicAI": { + "stars": 7, + "last_update": "2024-11-14 08:21:40", + "author_account_age_days": 2848 + }, + "https://github.com/leadbreak/comfyui-faceaging": { + "stars": 88, + "last_update": "2024-10-31 08:25:21", + "author_account_age_days": 1808 + }, + "https://github.com/leeguandong/ComfyUI_AliControlnetInpainting": { + "stars": 3, + "last_update": "2024-09-25 10:44:58", + "author_account_age_days": 3229 + }, + "https://github.com/leoleelxh/ComfyUI-MidjourneyNode-leoleexh": { + "stars": 24, + "last_update": "2024-08-01 03:37:17", + "author_account_age_days": 4510 + }, + "https://github.com/leon-etienne/ComfyUI_Scoring-Nodes": { + "stars": 0, + "last_update": "2025-04-21 11:48:26", + "author_account_age_days": 788 + }, + "https://github.com/lggcfx2020/ComfyUI-LGGCFX-Tools": { + "stars": 3, + "last_update": "2025-08-29 22:58:09", + "author_account_age_days": 1900 + }, + "https://github.com/lgldlk/ComfyUI-img-tiler": { + "stars": 1, + "last_update": "2024-10-17 07:56:42", + "author_account_age_days": 2125 + }, + "https://github.com/lichenhao/Comfyui_Ryota": { + "stars": 0, + "last_update": "2024-09-07 08:25:54", + "author_account_age_days": 4802 + }, + "https://github.com/linhusyung/comfyui-Build-and-train-your-network": { + "stars": 107, + "last_update": "2024-06-26 05:44:43", + "author_account_age_days": 1113 + }, + "https://github.com/littleowl/ComfyUI-MV-HECV": { + "stars": 1, + "last_update": "2025-06-04 12:42:47", + "author_account_age_days": 5096 + }, + "https://github.com/locphan201/ComfyUI-Alter-Nodes": { + "stars": 0, + "last_update": "2025-08-22 04:36:41", + "author_account_age_days": 1688 + }, + "https://github.com/locphan201/ComfyUI-Alternatives": { + "stars": 0, + "last_update": "2025-08-12 01:20:05", + "author_account_age_days": 1688 + }, + "https://github.com/logtd/ComfyUI-Fluxtapoz": { + "stars": 1375, + "last_update": "2025-01-09 02:38:40", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-HunyuanLoom": { + "stars": 488, + "last_update": "2025-02-21 21:01:57", + "author_account_age_days": 557 + }, + "https://github.com/logtd/ComfyUI-Veevee": { + "stars": 63, + "last_update": "2024-08-12 03:04:12", + "author_account_age_days": 557 + }, + "https://github.com/longgui0318/comfyui-one-more-step": { + "stars": 1, + "last_update": "2024-05-07 08:40:56", + "author_account_age_days": 4600 + }, + "https://github.com/longzoho/ComfyUI-Qdrant-Saver": { + "stars": 0, + "last_update": "2025-03-07 13:44:52", + "author_account_age_days": 1954 + }, + "https://github.com/lordwedggie/xcpNodes": { + "stars": 0, + "last_update": "2024-11-15 06:24:48", + "author_account_age_days": 988 + }, + "https://github.com/love2hina-net/ComfyUI-Local-Translator": { + "stars": 0, + "last_update": "2025-08-16 07:55:02", + "author_account_age_days": 1487 + }, + "https://github.com/lrzjason/Comfyui-Condition-Utils": { + "stars": 6, + "last_update": "2025-05-18 17:09:17", + "author_account_age_days": 4098 + }, + "https://github.com/ltdrdata/ComfyUI-Workflow-Component": { + "stars": 243, + "last_update": "2024-07-30 08:08:28", + "author_account_age_days": 897 + }, + "https://github.com/ltdrdata/comfyui-unsafe-torch": { + "stars": 34, + "last_update": "2025-06-10 22:31:29", + "author_account_age_days": 897 + }, + "https://github.com/lu64k/SK-Nodes": { + "stars": 0, + "last_update": "2024-11-18 03:47:34", + "author_account_age_days": 826 + }, + "https://github.com/lucafoscili/lf-nodes": { + "stars": 18, + "last_update": "2025-09-01 16:04:49", + "author_account_age_days": 2470 + }, + "https://github.com/lum3on/comfyui_LLM_Polymath": { + "stars": 66, + "last_update": "2025-08-27 23:22:27", + "author_account_age_days": 209 + }, + "https://github.com/lum3on/comfyui_RollingDepth": { + "stars": 1, + "last_update": "2025-06-01 18:46:56", + "author_account_age_days": 209 + }, + "https://github.com/m-ai-studio/mai-prompt-progress": { + "stars": 0, + "last_update": "2025-08-14 08:47:35", + "author_account_age_days": 484 + }, + "https://github.com/machinesarenotpeople/comfyui-energycost": { + "stars": 0, + "last_update": "2025-05-03 21:22:23", + "author_account_age_days": 1968 + }, + "https://github.com/maekawataiki/ComfyUI-ALB-Login": { + "stars": 3, + "last_update": "2025-01-17 02:10:49", + "author_account_age_days": 3098 + }, + "https://github.com/maizerrr/comfyui-code-nodes": { + "stars": 0, + "last_update": "2025-06-30 03:36:19", + "author_account_age_days": 3505 + }, + "https://github.com/majocola/comfyui-standbybutton": { + "stars": 0, + "last_update": "2025-08-06 00:28:10", + "author_account_age_days": 872 + }, + "https://github.com/majorsauce/comfyui_indieTools": { + "stars": 0, + "last_update": "2024-06-25 08:59:57", + "author_account_age_days": 2240 + }, + "https://github.com/mamamia1110/comfyui-boggerrr-nodes": { + "stars": 0, + "last_update": "2025-08-05 15:39:07", + "author_account_age_days": 944 + }, + "https://github.com/mamorett/ComfyUI-SmolVLM": { + "stars": 5, + "last_update": "2024-11-30 14:31:14", + "author_account_age_days": 1187 + }, + "https://github.com/mamorett/comfyui_minicpm_vision": { + "stars": 0, + "last_update": "2025-06-17 13:25:18", + "author_account_age_days": 1187 + }, + "https://github.com/maoper11/comfyui_inteliweb_nodes": { + "stars": 0, + "last_update": "2025-09-02 00:31:34", + "author_account_age_days": 2889 + }, + "https://github.com/marcueberall/ComfyUI-BuildPath": { + "stars": 0, + "last_update": "2024-02-06 07:57:33", + "author_account_age_days": 2217 + }, + "https://github.com/marduk191/comfyui-marnodes": { + "stars": 3, + "last_update": "2025-03-27 13:26:45", + "author_account_age_days": 4850 + }, + "https://github.com/maruhidd/ComfyUI_Transparent-Background": { + "stars": 4, + "last_update": "2024-06-14 07:02:56", + "author_account_age_days": 2690 + }, + "https://github.com/mashb1t/comfyui-nodes-mashb1t": { + "stars": 0, + "last_update": "2024-06-11 15:55:53", + "author_account_age_days": 3970 + }, + "https://github.com/masmullin2000/ComfyUI-MMYolo": { + "stars": 0, + "last_update": "2025-02-22 22:23:02", + "author_account_age_days": 4513 + }, + "https://github.com/matDobek/ComfyUI_duck": { + "stars": 0, + "last_update": "2025-05-21 13:12:40", + "author_account_age_days": 4512 + }, + "https://github.com/maurorilla/ComfyUI-MisterMR-Nodes": { + "stars": 0, + "last_update": "2025-05-09 13:18:07", + "author_account_age_days": 4451 + }, + "https://github.com/mehbebe/ComfyLoraGallery": { + "stars": 1, + "last_update": "2024-12-29 12:44:29", + "author_account_age_days": 793 + }, + "https://github.com/melMass/ComfyUI-Lygia": { + "stars": 0, + "last_update": "2024-07-14 09:59:10", + "author_account_age_days": 4180 + }, + "https://github.com/miabrahams/ComfyUI-WebAutomation": { + "stars": 0, + "last_update": "2025-08-22 06:03:56", + "author_account_age_days": 3853 + }, + "https://github.com/mico-world/comfyui_mico_node": { + "stars": 0, + "last_update": "2025-08-18 09:04:07", + "author_account_age_days": 307 + }, + "https://github.com/mikebilly/Transparent-background-comfyUI": { + "stars": 2, + "last_update": "2025-01-29 16:29:23", + "author_account_age_days": 2999 + }, + "https://github.com/mikeymcfish/FishTools": { + "stars": 27, + "last_update": "2024-07-13 20:51:17", + "author_account_age_days": 3838 + }, + "https://github.com/mikheys/ComfyUI-mikheys": { + "stars": 0, + "last_update": "2025-06-21 15:35:56", + "author_account_age_days": 2836 + }, + "https://github.com/minhtuannhn/comfyui-gemini-studio": { + "stars": 0, + "last_update": "2024-11-19 16:05:05", + "author_account_age_days": 1616 + }, + "https://github.com/miragecoa/ComfyUI-LLM-Evaluation": { + "stars": 1, + "last_update": "2024-11-21 01:29:48", + "author_account_age_days": 1001 + }, + "https://github.com/mliand/ComfyUI-Calendar-Node": { + "stars": 0, + "last_update": "2025-01-10 07:33:40", + "author_account_age_days": 821 + }, + "https://github.com/mm-akhtar/comfyui-mask-selector-node": { + "stars": 0, + "last_update": "2025-04-18 10:06:17", + "author_account_age_days": 1928 + }, + "https://github.com/mohamedsobhi777/ComfyUI-FramerComfy": { + "stars": 0, + "last_update": "2025-01-25 14:39:17", + "author_account_age_days": 2855 + }, + "https://github.com/molbal/comfy-url-fetcher": { + "stars": 0, + "last_update": "2025-02-02 13:37:48", + "author_account_age_days": 4332 + }, + "https://github.com/moonwhaler/comfyui-moonpack": { + "stars": 1, + "last_update": "2025-08-16 12:10:05", + "author_account_age_days": 4859 + }, + "https://github.com/mr-krak3n/ComfyUI-Qwen": { + "stars": 22, + "last_update": "2025-03-08 12:12:29", + "author_account_age_days": 2476 + }, + "https://github.com/mrCodinghero/ComfyUI-Codinghero": { + "stars": 0, + "last_update": "2025-08-27 21:59:46", + "author_account_age_days": 518 + }, + "https://github.com/mut-ex/comfyui-gligengui-node": { + "stars": 52, + "last_update": "2024-02-28 02:46:05", + "author_account_age_days": 3293 + }, + "https://github.com/muvich3n/ComfyUI-Claude-I2T": { + "stars": 0, + "last_update": "2025-01-15 07:50:46", + "author_account_age_days": 1733 + }, + "https://github.com/muvich3n/ComfyUI-Crop-Border": { + "stars": 0, + "last_update": "2025-02-24 10:01:53", + "author_account_age_days": 1733 + }, + "https://github.com/naderzare/comfyui-inodes": { + "stars": 0, + "last_update": "2025-02-05 04:32:29", + "author_account_age_days": 3125 + }, + "https://github.com/nadushu/comfyui-handy-nodes": { + "stars": 0, + "last_update": "2025-08-24 14:38:32", + "author_account_age_days": 1780 + }, + "https://github.com/nat-chan/comfyui-exec": { + "stars": 3, + "last_update": "2024-05-28 11:56:37", + "author_account_age_days": 3428 + }, + "https://github.com/nat-chan/comfyui-paint": { + "stars": 3, + "last_update": "2024-06-14 11:01:38", + "author_account_age_days": 3428 + }, + "https://github.com/nat-chan/transceiver": { + "stars": 1, + "last_update": "2024-05-01 10:03:01", + "author_account_age_days": 3428 + }, + "https://github.com/neeltheninja/ComfyUI-TempFileDeleter": { + "stars": 0, + "last_update": "2024-10-26 19:25:43", + "author_account_age_days": 2314 + }, + "https://github.com/neeltheninja/ComfyUI-TextOverlay": { + "stars": 0, + "last_update": "2024-07-31 18:40:19", + "author_account_age_days": 2314 + }, + "https://github.com/neo0801/my-comfy-node": { + "stars": 0, + "last_update": "2024-09-20 07:49:04", + "author_account_age_days": 4215 + }, + "https://github.com/netanelben/comfyui-camera2image-customnode": { + "stars": 1, + "last_update": "2024-09-29 15:14:57", + "author_account_age_days": 4317 + }, + "https://github.com/netanelben/comfyui-image2image-customnode": { + "stars": 1, + "last_update": "2024-09-29 12:50:53", + "author_account_age_days": 4317 + }, + "https://github.com/netanelben/comfyui-photobooth-customnode": { + "stars": 0, + "last_update": "2024-10-02 08:00:05", + "author_account_age_days": 4317 + }, + "https://github.com/netanelben/comfyui-text2image-customnode": { + "stars": 4, + "last_update": "2024-09-29 15:19:37", + "author_account_age_days": 4317 + }, + "https://github.com/neverbiasu/ComfyUI-ControlNeXt": { + "stars": 3, + "last_update": "2024-08-15 08:15:43", + "author_account_age_days": 1454 + }, + "https://github.com/neverbiasu/ComfyUI-DeepSeek": { + "stars": 0, + "last_update": "2025-02-01 04:17:59", + "author_account_age_days": 1454 + }, + "https://github.com/neverbiasu/ComfyUI-Show-o": { + "stars": 1, + "last_update": "2025-06-24 06:33:20", + "author_account_age_days": 1454 + }, + "https://github.com/neverbiasu/ComfyUI-StereoCrafter": { + "stars": 4, + "last_update": "2024-12-30 13:32:43", + "author_account_age_days": 1454 + }, + "https://github.com/newraina/ComfyUI-Remote-Save-Image": { + "stars": 0, + "last_update": "2025-04-18 10:50:44", + "author_account_age_days": 3872 + }, + "https://github.com/nidefawl/ComfyUI-nidefawl": { + "stars": 2, + "last_update": "2024-01-16 18:16:41", + "author_account_age_days": 5303 + }, + "https://github.com/nikkuexe/ComfyUI-ListDataHelpers": { + "stars": 0, + "last_update": "2024-09-21 16:15:57", + "author_account_age_days": 4984 + }, + "https://github.com/nkchocoai/ComfyUI-PromptUtilities": { + "stars": 22, + "last_update": "2025-03-30 08:19:25", + "author_account_age_days": 595 + }, + "https://github.com/nobandegani/comfyui_ino_nodes": { + "stars": 2, + "last_update": "2025-08-27 13:59:16", + "author_account_age_days": 1722 + }, + "https://github.com/nomcycle/ComfyUI_Cluster": { + "stars": 3, + "last_update": "2025-05-28 03:57:01", + "author_account_age_days": 4773 + }, + "https://github.com/norgeous/ComfyUI-UI-Builder": { + "stars": 9, + "last_update": "2024-08-11 22:22:04", + "author_account_age_days": 4464 + }, + "https://github.com/numq/comfyui-camera-capture-node": { + "stars": 0, + "last_update": "2025-09-02 03:02:46", + "author_account_age_days": 2491 + }, + "https://github.com/odedgranot/comfyui-ffmpeg-node": { + "stars": 0, + "last_update": "2025-08-25 09:17:44", + "author_account_age_days": 1958 + }, + "https://github.com/odedgranot/comfyui_video_save_node": { + "stars": 0, + "last_update": "2025-08-20 12:47:09", + "author_account_age_days": 1958 + }, + "https://github.com/orion4d/ComfyUI_unified_list_selector": { + "stars": 1, + "last_update": "2025-07-03 08:57:21", + "author_account_age_days": 1017 + }, + "https://github.com/osuiso-depot/comfyui-keshigom_custom": { + "stars": 0, + "last_update": "2025-02-27 10:01:17", + "author_account_age_days": 1545 + }, + "https://github.com/owengillett/ComfyUI-tilefusion": { + "stars": 0, + "last_update": "2025-02-19 11:05:53", + "author_account_age_days": 2168 + }, + "https://github.com/oxysoft/Comfy-Compel": { + "stars": 0, + "last_update": "2025-04-08 13:12:20", + "author_account_age_days": 4546 + }, + "https://github.com/oxysoft/ComfyUI-uiapi": { + "stars": 0, + "last_update": "2025-01-27 18:29:08", + "author_account_age_days": 4546 + }, + "https://github.com/oyvindg/ComfyUI-TrollSuite": { + "stars": 4, + "last_update": "2024-08-15 10:37:43", + "author_account_age_days": 2765 + }, + "https://github.com/oztrkoguz/ComfyUI_Kosmos2_BBox_Cutter": { + "stars": 16, + "last_update": "2024-07-25 05:50:01", + "author_account_age_days": 1276 + }, + "https://github.com/p1atdev/comfyui-aesthetic-predictor": { + "stars": 0, + "last_update": "2025-05-10 08:03:13", + "author_account_age_days": 2050 + }, + "https://github.com/pacchikAI/ImagePromptBatch": { + "stars": 0, + "last_update": "2025-05-26 12:48:05", + "author_account_age_days": 113 + }, + "https://github.com/pamparamm/ComfyUI-ppm": { + "stars": 216, + "last_update": "2025-08-10 06:47:44", + "author_account_age_days": 2566 + }, + "https://github.com/papcorns/ComfyUI-Papcorns-Node-UploadToGCS": { + "stars": 0, + "last_update": "2025-05-28 09:31:23", + "author_account_age_days": 1947 + }, + "https://github.com/parmarjh/ComfyUI-MochiWrapper-I2V": { + "stars": 0, + "last_update": "2025-01-10 14:28:51", + "author_account_age_days": 1996 + }, + "https://github.com/paulhoux/Smart-Prompting": { + "stars": 0, + "last_update": "2025-03-10 09:16:44", + "author_account_age_days": 5559 + }, + "https://github.com/phamngoctukts/ComyUI-Tupham": { + "stars": 1, + "last_update": "2025-01-09 04:02:54", + "author_account_age_days": 4322 + }, + "https://github.com/pickles/ComfyUI-PyPromptGenerator": { + "stars": 0, + "last_update": "2025-08-30 05:03:19", + "author_account_age_days": 5697 + }, + "https://github.com/pictorialink/ComfyUI-static-resource": { + "stars": 0, + "last_update": "2025-07-15 07:50:28", + "author_account_age_days": 111 + }, + "https://github.com/pinkpixel-dev/comfyui-llm-prompt-enhancer": { + "stars": 9, + "last_update": "2025-01-28 12:43:25", + "author_account_age_days": 224 + }, + "https://github.com/pixixai/ComfyUI_pixixTools": { + "stars": 0, + "last_update": "2025-07-22 04:43:42", + "author_account_age_days": 237 + }, + "https://github.com/pixuai/ComfyUI-PixuAI": { + "stars": 0, + "last_update": "2025-03-01 13:56:56", + "author_account_age_days": 185 + }, + "https://github.com/pmarmotte2/Comfyui-VibeVoiceSelector": { + "stars": 1, + "last_update": "2025-04-08 11:18:55", + "author_account_age_days": 499 + }, + "https://github.com/poisenbery/NudeNet-Detector-Provider": { + "stars": 1, + "last_update": "2024-02-26 02:11:27", + "author_account_age_days": 1672 + }, + "https://github.com/pomelyu/cy-prompt-tools": { + "stars": 0, + "last_update": "2025-06-13 15:09:26", + "author_account_age_days": 4690 + }, + "https://github.com/power88/ComfyUI-PDiD-Nodes": { + "stars": 0, + "last_update": "2025-01-04 11:21:29", + "author_account_age_days": 3166 + }, + "https://github.com/prabinpebam/anyPython": { + "stars": 17, + "last_update": "2025-02-15 06:56:01", + "author_account_age_days": 4677 + }, + "https://github.com/prodogape/ComfyUI-clip-interrogator": { + "stars": 61, + "last_update": "2024-07-27 18:33:22", + "author_account_age_days": 1465 + }, + "https://github.com/przewodo/ComfyUI-Przewodo-Utils": { + "stars": 4, + "last_update": "2025-08-27 20:02:50", + "author_account_age_days": 3745 + }, + "https://github.com/pschroedl/ComfyUI-StreamDiffusion": { + "stars": 6, + "last_update": "2025-05-21 01:33:15", + "author_account_age_days": 4422 + }, + "https://github.com/punicfaith/ComfyUI-GoogleAIStudio": { + "stars": 0, + "last_update": "2025-09-02 06:00:34", + "author_account_age_days": 3592 + }, + "https://github.com/pururin777/ComfyUI-Manual-Openpose": { + "stars": 2, + "last_update": "2025-09-01 07:28:15", + "author_account_age_days": 2582 + }, + "https://github.com/pzzmyc/comfyui-sd3-simple-simpletuner": { + "stars": 1, + "last_update": "2024-06-19 12:48:18", + "author_account_age_days": 2534 + }, + "https://github.com/qlikpetersen/ComfyUI-AI_Tools": { + "stars": 0, + "last_update": "2025-07-23 19:53:54", + "author_account_age_days": 1464 + }, + "https://github.com/rakete/comfyui-rakete": { + "stars": 0, + "last_update": "2025-07-22 21:48:34", + "author_account_age_days": 6013 + }, + "https://github.com/rakki194/ComfyUI_WolfSigmas": { + "stars": 5, + "last_update": "2025-05-21 13:02:21", + "author_account_age_days": 213 + }, + "https://github.com/ralonsobeas/ComfyUI-HDRConversion": { + "stars": 5, + "last_update": "2024-12-12 20:21:26", + "author_account_age_days": 2493 + }, + "https://github.com/realm-weaver/ComfyUI-tile-seamstress-360": { + "stars": 0, + "last_update": "2025-07-16 15:36:03", + "author_account_age_days": 641 + }, + "https://github.com/redhottensors/ComfyUI-ODE": { + "stars": 52, + "last_update": "2024-08-01 06:57:05", + "author_account_age_days": 574 + }, + "https://github.com/retech995/Save_Florence2_Bulk_Prompts": { + "stars": 0, + "last_update": "2025-06-03 18:27:37", + "author_account_age_days": 2415 + }, + "https://github.com/rhinoflavored/comfyui_QT": { + "stars": 0, + "last_update": "2025-03-18 08:35:59", + "author_account_age_days": 431 + }, + "https://github.com/ricklove/ComfyUI-AutoSeg-SAM2": { + "stars": 0, + "last_update": "2025-03-15 20:46:14", + "author_account_age_days": 5268 + }, + "https://github.com/rickyars/sd-cn-animation": { + "stars": 0, + "last_update": "2025-05-18 22:33:04", + "author_account_age_days": 4639 + }, + "https://github.com/rishipandey125/ComfyUI-FramePacking": { + "stars": 9, + "last_update": "2025-06-09 21:51:46", + "author_account_age_days": 2785 + }, + "https://github.com/risunobushi/ComfyUI_FaceMesh_Eyewear_Mask": { + "stars": 0, + "last_update": "2025-05-14 07:13:26", + "author_account_age_days": 1082 + }, + "https://github.com/risunobushi/ComfyUI_FocusMask": { + "stars": 4, + "last_update": "2024-12-09 11:52:53", + "author_account_age_days": 1082 + }, + "https://github.com/risunobushi/ComfyUI_HEXtoRGB": { + "stars": 1, + "last_update": "2025-01-28 14:37:42", + "author_account_age_days": 1082 + }, + "https://github.com/ritikvirus/comfyui-terminal-modal-node": { + "stars": 0, + "last_update": "2025-03-01 20:03:57", + "author_account_age_days": 2615 + }, + "https://github.com/rodpl/comfyui-asset-manager": { + "stars": 0, + "last_update": "2025-08-31 18:21:13", + "author_account_age_days": 5888 + }, + "https://github.com/romeobuilderotti/ComfyUI-EZ-Pipes": { + "stars": 3, + "last_update": "2023-11-15 22:00:49", + "author_account_age_days": 725 + }, + "https://github.com/ronalds-eu/comfyui-plus-integrations": { + "stars": 0, + "last_update": "2025-05-02 17:38:19", + "author_account_age_days": 4216 + }, + "https://github.com/rouxianmantou/comfyui-rxmt-nodes": { + "stars": 0, + "last_update": "2025-07-01 12:11:18", + "author_account_age_days": 3611 + }, + "https://github.com/rphmeier/comfyui-videodepthanything": { + "stars": 1, + "last_update": "2025-04-14 18:53:06", + "author_account_age_days": 3920 + }, + "https://github.com/ruka-game/rukalib_comfyui": { + "stars": 0, + "last_update": "2024-10-03 23:59:55", + "author_account_age_days": 340 + }, + "https://github.com/ryanontheinside/ComfyUI-Livepeer": { + "stars": 1, + "last_update": "2025-04-21 22:53:14", + "author_account_age_days": 4124 + }, + "https://github.com/ryanontheinside/ComfyUI-MineWorld": { + "stars": 2, + "last_update": "2025-04-16 18:59:09", + "author_account_age_days": 4124 + }, + "https://github.com/ryanontheinside/ComfyUI_YoloNasObjectDetection_Tensorrt": { + "stars": 1, + "last_update": "2024-12-31 17:43:33", + "author_account_age_days": 4124 + }, + "https://github.com/sangeet/testui": { + "stars": 2, + "last_update": "2024-05-15 00:55:17", + "author_account_age_days": 5515 + }, + "https://github.com/sdfxai/SDFXBridgeForComfyUI": { + "stars": 12, + "last_update": "2024-06-14 10:26:56", + "author_account_age_days": 670 + }, + "https://github.com/seancheung/comfyui-creative-nodes": { + "stars": 0, + "last_update": "2024-09-13 06:22:45", + "author_account_age_days": 4373 + }, + "https://github.com/sh570655308/Comfyui-RayNodes": { + "stars": 3, + "last_update": "2025-07-19 11:32:53", + "author_account_age_days": 2937 + }, + "https://github.com/shadowcz007/ComfyUI-PuLID-Test": { + "stars": 9, + "last_update": "2024-05-12 14:37:28", + "author_account_age_days": 3750 + }, + "https://github.com/shadowcz007/Comfyui-EzAudio": { + "stars": 1, + "last_update": "2024-09-22 03:17:40", + "author_account_age_days": 3750 + }, + "https://github.com/shadowcz007/comfyui-CLIPSeg": { + "stars": 3, + "last_update": "2024-02-08 02:16:24", + "author_account_age_days": 3750 + }, + "https://github.com/shadowcz007/comfyui-hydit-lowvram": { + "stars": 1, + "last_update": "2024-07-31 10:04:09", + "author_account_age_days": 3750 + }, + "https://github.com/shadowcz007/comfyui-sd-prompt-mixlab": { + "stars": 16, + "last_update": "2024-05-21 19:47:56", + "author_account_age_days": 3750 + }, + "https://github.com/shinich39/comfyui-nothing-happened": { + "stars": 0, + "last_update": "2025-05-25 10:18:24", + "author_account_age_days": 747 + }, + "https://github.com/shinich39/comfyui-run-js": { + "stars": 0, + "last_update": "2025-06-05 13:34:15", + "author_account_age_days": 747 + }, + "https://github.com/shirazdesigner/CLIPTextEncodeAndEnhancev4": { + "stars": 1, + "last_update": "2024-04-27 13:25:08", + "author_account_age_days": 4397 + }, + "https://github.com/shuanshuan/ComfyUI_CheckPointLoader_Ext": { + "stars": 0, + "last_update": "2024-08-27 02:24:05", + "author_account_age_days": 4553 + }, + "https://github.com/silent-rain/ComfyUI-SilentRain": { + "stars": 2, + "last_update": "2025-08-15 10:09:40", + "author_account_age_days": 2578 + }, + "https://github.com/silveroxides/ComfyUI_ReduxEmbedToolkit": { + "stars": 2, + "last_update": "2025-07-16 04:31:05", + "author_account_age_days": 1936 + }, + "https://github.com/simonjaq/ComfyUI-sjnodes": { + "stars": 0, + "last_update": "2025-06-20 08:23:01", + "author_account_age_days": 2970 + }, + "https://github.com/siyonomicon/ComfyUI-Pin": { + "stars": 0, + "last_update": "2025-07-21 18:06:00", + "author_account_age_days": 46 + }, + "https://github.com/slezica/comfyui-personal": { + "stars": 0, + "last_update": "2025-08-03 18:27:23", + "author_account_age_days": 5540 + }, + "https://github.com/smthemex/ComfyUI_GPT_SoVITS_Lite": { + "stars": 7, + "last_update": "2025-03-17 06:45:58", + "author_account_age_days": 789 + }, + "https://github.com/smthemex/ComfyUI_MangaNinjia": { + "stars": 57, + "last_update": "2025-04-09 14:21:57", + "author_account_age_days": 789 + }, + "https://github.com/sofakid/dandy": { + "stars": 52, + "last_update": "2024-05-27 21:46:18", + "author_account_age_days": 4488 + }, + "https://github.com/songtianhui/ComfyUI-DMM": { + "stars": 2, + "last_update": "2025-04-27 12:38:20", + "author_account_age_days": 1681 + }, + "https://github.com/sorption-dev/mycraft-comfyui": { + "stars": 4, + "last_update": "2025-04-12 18:08:12", + "author_account_age_days": 158 + }, + "https://github.com/sourceful-official/ComfyUI_InstructPixToPixConditioningLatent": { + "stars": 3, + "last_update": "2025-01-03 13:20:33", + "author_account_age_days": 1918 + }, + "https://github.com/sourceful-official/comfyui-sourceful-official": { + "stars": 0, + "last_update": "2025-01-27 14:58:03", + "author_account_age_days": 1918 + }, + "https://github.com/spawner1145/comfyui-spawner-nodes": { + "stars": 2, + "last_update": "2025-09-01 10:11:11", + "author_account_age_days": 373 + }, + "https://github.com/springjk/ComfyUI-Psutil-Container-Memory-Patch": { + "stars": 1, + "last_update": "2025-04-23 15:12:34", + "author_account_age_days": 4096 + }, + "https://github.com/sprited-ai/sprited-comfyui-nodes": { + "stars": 0, + "last_update": "2025-08-07 17:38:57", + "author_account_age_days": 90 + }, + "https://github.com/sschleis/sschl-comfyui-notes": { + "stars": 1, + "last_update": "2025-08-10 10:54:25", + "author_account_age_days": 5021 + }, + "https://github.com/sswink/comfyui-lingshang": { + "stars": 0, + "last_update": "2024-11-06 15:04:22", + "author_account_age_days": 2971 + }, + "https://github.com/stalkervr/comfyui-custom-path-nodes": { + "stars": 1, + "last_update": "2025-08-09 05:08:24", + "author_account_age_days": 2802 + }, + "https://github.com/stavsap/ComfyUI-React-SDK": { + "stars": 13, + "last_update": "2024-03-17 21:54:21", + "author_account_age_days": 4519 + }, + "https://github.com/steelan9199/ComfyUI-Teeth": { + "stars": 10, + "last_update": "2025-03-03 01:44:23", + "author_account_age_days": 1289 + }, + "https://github.com/sthao42/comfyui-melodkeet-tts": { + "stars": 0, + "last_update": "2025-08-30 22:41:26", + "author_account_age_days": 4291 + }, + "https://github.com/strhwste/comfyui_csv_utils": { + "stars": 0, + "last_update": "2025-06-03 23:04:43", + "author_account_age_days": 908 + }, + "https://github.com/stutya/ComfyUI-Terminal": { + "stars": 0, + "last_update": "2025-05-11 21:29:49", + "author_account_age_days": 4273 + }, + "https://github.com/subnet99/ComfyUI-URLLoader": { + "stars": 2, + "last_update": "2025-07-14 07:57:56", + "author_account_age_days": 58 + }, + "https://github.com/sugarkwork/comfyui_image_crop": { + "stars": 0, + "last_update": "2025-03-14 01:43:03", + "author_account_age_days": 1311 + }, + "https://github.com/sugarkwork/comfyui_my_img_util": { + "stars": 1, + "last_update": "2025-04-04 15:51:26", + "author_account_age_days": 1311 + }, + "https://github.com/sugarkwork/comfyui_psd": { + "stars": 6, + "last_update": "2025-01-14 04:33:37", + "author_account_age_days": 1311 + }, + "https://github.com/suncat2ps/ComfyUI-SaveImgNextcloud": { + "stars": 0, + "last_update": "2025-06-23 04:03:38", + "author_account_age_days": 4560 + }, + "https://github.com/system-out-cho/displayHistory_ComfyUI": { + "stars": 1, + "last_update": "2025-08-01 19:26:59", + "author_account_age_days": 1663 + }, + "https://github.com/takoyaki1118/ComfyUI_PromptExtractor": { + "stars": 0, + "last_update": "2025-08-28 17:57:59", + "author_account_age_days": 2535 + }, + "https://github.com/talesofai/comfyui-supersave": { + "stars": 2, + "last_update": "2023-12-27 02:05:53", + "author_account_age_days": 991 + }, + "https://github.com/talon468/ComfyUI-Rpg-Architect": { + "stars": 4, + "last_update": "2024-08-31 14:47:47", + "author_account_age_days": 853 + }, + "https://github.com/tankenyuen-ola/comfyui-env-variable-reader": { + "stars": 0, + "last_update": "2025-06-19 06:21:23", + "author_account_age_days": 239 + }, + "https://github.com/tankenyuen-ola/comfyui-wanvideo-scheduler-loop": { + "stars": 0, + "last_update": "2025-08-04 03:17:39", + "author_account_age_days": 239 + }, + "https://github.com/tanmoy-it/comfyuiCustomNode": { + "stars": 0, + "last_update": "2025-08-11 06:37:32", + "author_account_age_days": 367 + }, + "https://github.com/tc888/ComfyUI_Save_Flux_Image": { + "stars": 0, + "last_update": "2025-02-09 17:21:22", + "author_account_age_days": 2695 + }, + "https://github.com/techidsk/comfyui_molook_nodes": { + "stars": 0, + "last_update": "2025-03-31 02:17:02", + "author_account_age_days": 2623 + }, + "https://github.com/techtruth/ComfyUI-Dreambooth": { + "stars": 0, + "last_update": "2025-04-06 02:57:20", + "author_account_age_days": 3066 + }, + "https://github.com/techzuhaib/ComfyUI-CacheImageNode": { + "stars": 0, + "last_update": "2024-11-29 07:31:49", + "author_account_age_days": 605 + }, + "https://github.com/tg-tjmitchell/comfyui-custom-node-lister": { + "stars": 0, + "last_update": "2025-08-11 22:48:12", + "author_account_age_days": 1194 + }, + "https://github.com/tg-tjmitchell/comfyui-rsync-plugin": { + "stars": 0, + "last_update": "2025-08-22 18:31:15", + "author_account_age_days": 1194 + }, + "https://github.com/thaakeno/comfyui-universal-asset-downloader": { + "stars": 3, + "last_update": "2025-08-05 06:54:27", + "author_account_age_days": 373 + }, + "https://github.com/thavocado/comfyui-danbooru-lookup": { + "stars": 0, + "last_update": "2025-07-26 16:00:54", + "author_account_age_days": 1010 + }, + "https://github.com/thderoo/ComfyUI-_topfun_s_nodes": { + "stars": 6, + "last_update": "2024-07-03 14:39:28", + "author_account_age_days": 3301 + }, + "https://github.com/thot-experiment/comfy-live-preview": { + "stars": 2, + "last_update": "2025-02-19 20:30:13", + "author_account_age_days": 1386 + }, + "https://github.com/threadedblue/MLXnodes": { + "stars": 2, + "last_update": "2025-02-15 13:41:14", + "author_account_age_days": 4400 + }, + "https://github.com/tjorbogarden/my-useful-comfyui-custom-nodes": { + "stars": 0, + "last_update": "2024-03-05 13:31:31", + "author_account_age_days": 548 + }, + "https://github.com/tnil25/ComfyUI-TJNodes": { + "stars": 0, + "last_update": "2025-08-21 21:38:31", + "author_account_age_days": 667 + }, + "https://github.com/tom-doerr/dspy_nodes": { + "stars": 194, + "last_update": "2024-12-01 20:14:37", + "author_account_age_days": 3215 + }, + "https://github.com/tracerstar/comfyui-p5js-node": { + "stars": 38, + "last_update": "2024-07-05 23:47:57", + "author_account_age_days": 5634 + }, + "https://github.com/trampolin/comfy-ui-scryfall": { + "stars": 0, + "last_update": "2025-05-20 11:46:54", + "author_account_age_days": 4680 + }, + "https://github.com/trashgraphicard/Albedo-Sampler-for-ComfyUI": { + "stars": 4, + "last_update": "2024-12-04 23:50:38", + "author_account_age_days": 1111 + }, + "https://github.com/trashkollector/TKVideoZoom": { + "stars": 0, + "last_update": "2025-09-01 22:53:57", + "author_account_age_days": 206 + }, + "https://github.com/truebillyblue/lC.ComfyUI_epistemic_nodes": { + "stars": 0, + "last_update": "2025-05-29 14:43:38", + "author_account_age_days": 190 + }, + "https://github.com/tuckerdarby/ComfyUI-TDNodes": { + "stars": 3, + "last_update": "2024-02-19 17:00:55", + "author_account_age_days": 3373 + }, + "https://github.com/turskeli/comfyui-SetWallpaper": { + "stars": 0, + "last_update": "2025-04-23 22:46:46", + "author_account_age_days": 5052 + }, + "https://github.com/twj515895394/ComfyUI-LowMemVideoSuite": { + "stars": 0, + "last_update": "2025-08-15 08:27:44", + "author_account_age_days": 3980 + }, + "https://github.com/tzsoulcap/ComfyUI-SaveImg-W-MetaData": { + "stars": 0, + "last_update": "2025-04-11 15:28:03", + "author_account_age_days": 2257 + }, + "https://github.com/umisetokikaze/comfyui_mergekit": { + "stars": 0, + "last_update": "2024-04-28 07:21:00", + "author_account_age_days": 2258 + }, + "https://github.com/unanan/ComfyUI-Dist": { + "stars": 7, + "last_update": "2024-02-28 10:03:50", + "author_account_age_days": 3333 + }, + "https://github.com/usman2003/ComfyUI-Classifiers": { + "stars": 0, + "last_update": "2025-05-21 12:44:01", + "author_account_age_days": 1972 + }, + "https://github.com/usman2003/ComfyUI-RaceDetect": { + "stars": 0, + "last_update": "2025-05-23 12:23:39", + "author_account_age_days": 1972 + }, + "https://github.com/usrname0/ComfyUI-AllergicPack": { + "stars": 0, + "last_update": "2025-08-13 09:11:40", + "author_account_age_days": 2849 + }, + "https://github.com/var1ableX/ComfyUI_Accessories": { + "stars": 1, + "last_update": "2025-02-09 14:31:19", + "author_account_age_days": 5199 + }, + "https://github.com/vchopine/ComfyUI_Toolbox": { + "stars": 2, + "last_update": "2025-03-18 16:12:09", + "author_account_age_days": 4025 + }, + "https://github.com/viik420/AdvancedModelDownloader": { + "stars": 0, + "last_update": "2025-08-18 10:31:02", + "author_account_age_days": 2330 + }, + "https://github.com/virallover/comfyui-virallover": { + "stars": 0, + "last_update": "2025-06-02 13:49:38", + "author_account_age_days": 127 + }, + "https://github.com/visualbruno/ComfyUI-Hunyuan3d-2-1": { + "stars": 160, + "last_update": "2025-08-11 19:41:21", + "author_account_age_days": 5475 + }, + "https://github.com/visualbruno/ComfyUI-QRemeshify": { + "stars": 5, + "last_update": "2025-07-14 19:03:15", + "author_account_age_days": 5475 + }, + "https://github.com/vladp0727/Comfyui-with-Furniture": { + "stars": 0, + "last_update": "2025-04-18 08:58:04", + "author_account_age_days": 164 + }, + "https://github.com/vovler/ComfyUI-vovlerTools": { + "stars": 0, + "last_update": "2025-06-25 17:36:07", + "author_account_age_days": 2162 + }, + "https://github.com/wTechArtist/ComfyUI_VVL_Segmentation": { + "stars": 0, + "last_update": "2025-05-29 05:25:00", + "author_account_age_days": 1796 + }, + "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera": { + "stars": 0, + "last_update": "2025-06-12 02:11:03", + "author_account_age_days": 1796 + }, + "https://github.com/wTechArtist/ComfyUI_vvl_BBOX": { + "stars": 0, + "last_update": "2025-05-21 12:14:07", + "author_account_age_days": 1796 + }, + "https://github.com/walterFeng/ComfyUI-Image-Utils": { + "stars": 3, + "last_update": "2025-03-25 14:36:37", + "author_account_age_days": 3211 + }, + "https://github.com/warshanks/Shank-Tools": { + "stars": 0, + "last_update": "2025-01-26 03:39:09", + "author_account_age_days": 3918 + }, + "https://github.com/wasilone11/comfyui-sync-translate-node": { + "stars": 0, + "last_update": "2025-07-19 03:26:55", + "author_account_age_days": 2641 + }, + "https://github.com/watarika/ComfyUI-Text-Utility": { + "stars": 1, + "last_update": "2025-04-22 14:16:27", + "author_account_age_days": 2168 + }, + "https://github.com/watarika/ComfyUI-exit": { + "stars": 0, + "last_update": "2025-01-05 03:24:05", + "author_account_age_days": 2168 + }, + "https://github.com/waynepimpzhang/comfyui-opencv-brightestspot": { + "stars": 0, + "last_update": "2025-01-05 06:04:53", + "author_account_age_days": 4226 + }, + "https://github.com/whmc76/ComfyUI-AudioSuiteAdvanced": { + "stars": 10, + "last_update": "2025-07-18 11:33:21", + "author_account_age_days": 887 + }, + "https://github.com/wildminder/ComfyUI-MagCache": { + "stars": 6, + "last_update": "2025-06-13 20:56:49", + "author_account_age_days": 4668 + }, + "https://github.com/willblaschko/ComfyUI-Unload-Models": { + "stars": 24, + "last_update": "2024-06-30 10:07:40", + "author_account_age_days": 5026 + }, + "https://github.com/wilzamguerrero/Comfyui-zZzZz": { + "stars": 2, + "last_update": "2025-01-02 00:35:50", + "author_account_age_days": 1123 + }, + "https://github.com/wordbrew/comfyui-wan-control-nodes": { + "stars": 6, + "last_update": "2025-06-19 23:37:04", + "author_account_age_days": 1048 + }, + "https://github.com/wormley/comfyui-wormley-nodes": { + "stars": 0, + "last_update": "2023-11-12 19:05:11", + "author_account_age_days": 2908 + }, + "https://github.com/x3bits/ComfyUI-Power-Flow": { + "stars": 2, + "last_update": "2025-01-14 14:20:35", + "author_account_age_days": 3818 + }, + "https://github.com/xgfone/ComfyUI_FaceToMask": { + "stars": 1, + "last_update": "2025-08-05 05:25:47", + "author_account_age_days": 4692 + }, + "https://github.com/xgfone/ComfyUI_PromptLogoCleaner": { + "stars": 0, + "last_update": "2025-07-28 05:28:42", + "author_account_age_days": 4692 + }, + "https://github.com/xgfone/ComfyUI_RasterCardMaker": { + "stars": 0, + "last_update": "2025-08-06 03:31:46", + "author_account_age_days": 4692 + }, + "https://github.com/xiaoyumu/ComfyUI-XYNodes": { + "stars": 0, + "last_update": "2024-12-05 07:07:30", + "author_account_age_days": 4452 + }, + "https://github.com/xinyiSS/CombineMasksNode": { + "stars": 0, + "last_update": "2025-02-08 04:35:18", + "author_account_age_days": 886 + }, + "https://github.com/xl0/q_tools": { + "stars": 0, + "last_update": "2025-05-28 06:09:00", + "author_account_age_days": 5437 + }, + "https://github.com/xmarked-ai/ComfyUI_misc": { + "stars": 2, + "last_update": "2025-06-07 16:26:56", + "author_account_age_days": 308 + }, + "https://github.com/xqqe/honey_nodes": { + "stars": 0, + "last_update": "2025-05-03 20:59:53", + "author_account_age_days": 2136 + }, + "https://github.com/xsai-collab/ComfyUI-CombineVideoAndSubtitle": { + "stars": 1, + "last_update": "2025-08-19 12:58:37", + "author_account_age_days": 761 + }, + "https://github.com/xzuyn/ComfyUI-xzuynodes": { + "stars": 0, + "last_update": "2025-07-23 20:07:16", + "author_account_age_days": 3555 + }, + "https://github.com/y4my4my4m/ComfyUI_Direct3DS2": { + "stars": 6, + "last_update": "2025-06-01 04:29:47", + "author_account_age_days": 4069 + }, + "https://github.com/yamanacn/comfyui_qwen_object": { + "stars": 0, + "last_update": "2025-06-20 12:24:28", + "author_account_age_days": 1755 + }, + "https://github.com/yamanacn/comfyui_qwenbbox": { + "stars": 0, + "last_update": "2025-06-21 03:00:01", + "author_account_age_days": 1755 + }, + "https://github.com/yanhuifair/ComfyUI-FairLab": { + "stars": 2, + "last_update": "2025-09-02 08:29:34", + "author_account_age_days": 3997 + }, + "https://github.com/yanhuifair/comfyui-deepseek": { + "stars": 4, + "last_update": "2025-04-08 09:14:25", + "author_account_age_days": 3997 + }, + "https://github.com/yanlang0123/ComfyUI_Lam": { + "stars": 52, + "last_update": "2025-08-30 12:49:28", + "author_account_age_days": 3243 + }, + "https://github.com/yichengup/ComfyUI-Transition": { + "stars": 3, + "last_update": "2025-07-12 07:15:38", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/ComfyUI-YCNodes_Advance": { + "stars": 5, + "last_update": "2025-06-25 15:08:18", + "author_account_age_days": 559 + }, + "https://github.com/yichengup/Comfyui-NodeSpark": { + "stars": 5, + "last_update": "2025-01-20 14:20:36", + "author_account_age_days": 559 + }, + "https://github.com/yincangshiwei/ComfyUI-SEQLToolNode": { + "stars": 0, + "last_update": "2025-05-28 10:06:17", + "author_account_age_days": 4065 + }, + "https://github.com/yojimbodayne/ComfyUI-Dropbox-API": { + "stars": 0, + "last_update": "2024-08-30 05:29:07", + "author_account_age_days": 385 + }, + "https://github.com/yuvraj108c/ComfyUI-HYPIR": { + "stars": 3, + "last_update": "2025-08-18 06:04:36", + "author_account_age_days": 2588 + }, + "https://github.com/zackabrams/ComfyUI-KeySyncWrapper": { + "stars": 3, + "last_update": "2025-06-21 17:46:04", + "author_account_age_days": 2764 + }, + "https://github.com/zhaorishuai/ComfyUI-StoryboardDistributor": { + "stars": 3, + "last_update": "2025-04-01 08:10:16", + "author_account_age_days": 2674 + }, + "https://github.com/zhengxyz123/ComfyUI-CLIPSeg": { + "stars": 2, + "last_update": "2025-05-20 12:40:03", + "author_account_age_days": 2090 + }, + "https://github.com/zhongpei/Comfyui_image2prompt": { + "stars": 354, + "last_update": "2025-06-06 23:41:46", + "author_account_age_days": 3894 + }, + "https://github.com/zhu733756/Comfyui-Anything-Converter": { + "stars": 1, + "last_update": "2025-08-25 06:21:04", + "author_account_age_days": 2688 + }, + "https://github.com/zhuanvi/ComfyUI-ZVNodes": { + "stars": 0, + "last_update": "2025-08-09 14:14:56", + "author_account_age_days": 3592 + }, + "https://github.com/zjkhurry/comfyui_MetalFX": { + "stars": 1, + "last_update": "2025-03-05 07:07:17", + "author_account_age_days": 3415 + }, + "https://github.com/zl9739379/comfyui-qwen-vl-api": { + "stars": 0, + "last_update": "2025-07-02 12:53:51", + "author_account_age_days": 1016 + }, + "https://github.com/zml-ai/comfyui-hydit": { + "stars": 3, + "last_update": "2024-08-07 09:37:09", + "author_account_age_days": 2418 + }, + "https://github.com/zopieux/ComfyUI-zopi": { + "stars": 0, + "last_update": "2025-07-27 02:50:44", + "author_account_age_days": 5963 + }, + "https://github.com/zyd232/ComfyUI-zyd232-Nodes": { + "stars": 1, + "last_update": "2025-04-12 01:13:21", + "author_account_age_days": 4059 + }, + "https://github.com/zyquon/ComfyUI-Stash": { + "stars": 0, + "last_update": "2025-06-21 03:32:52", + "author_account_age_days": 155 + } +} \ No newline at end of file diff --git a/node_db/dev/scan.sh b/node_db/dev/scan.sh index f9589f3c..ac8c4255 100755 --- a/node_db/dev/scan.sh +++ b/node_db/dev/scan.sh @@ -1,3 +1,3 @@ #!/bin/bash rm ~/.tmp/dev/*.py > /dev/null 2>&1 -python ../../scanner.py ~/.tmp/dev +python ../../scanner.py ~/.tmp/dev $* \ No newline at end of file diff --git a/node_db/forked/custom-node-list.json b/node_db/forked/custom-node-list.json index 4cc456d0..3291fcce 100644 --- a/node_db/forked/custom-node-list.json +++ b/node_db/forked/custom-node-list.json @@ -1,5 +1,115 @@ { "custom_nodes": [ + { + "author": "synchronicity-labs", + "title": "ComfyUI Sync Lipsync Node", + "reference": "https://github.com/synchronicity-labs/sync-comfyui", + "files": [ + "https://github.com/synchronicity-labs/sync-comfyui" + ], + "install_type": "git-clone", + "description": "This custom node allows you to perform audio-video lip synchronization inside ComfyUI using a simple interface." + }, + { + "author": "joaomede", + "title": "ComfyUI-Unload-Model-Fork", + "reference": "https://github.com/joaomede/ComfyUI-Unload-Model-Fork", + "files": [ + "https://github.com/joaomede/ComfyUI-Unload-Model-Fork" + ], + "install_type": "git-clone", + "description": "For unloading a model or all models, using the memory management that is already present in ComfyUI. Copied from [a/https://github.com/willblaschko/ComfyUI-Unload-Models](https://github.com/willblaschko/ComfyUI-Unload-Models) but without the unnecessary extra stuff." + }, + { + "author": "SanDiegoDude", + "title": "ComfyUI-HiDream-Sampler [WIP]", + "reference": "https://github.com/SanDiegoDude/ComfyUI-HiDream-Sampler", + "files": [ + "https://github.com/SanDiegoDude/ComfyUI-HiDream-Sampler" + ], + "install_type": "git-clone", + "description": "A collection of enhanced nodes for ComfyUI that provide powerful additional functionality to your workflows.\nNOTE: The files in the repo are not organized." + }, + { + "author": "PramaLLC", + "title": "ComfyUI BEN - Background Erase Network", + "reference": "https://github.com/PramaLLC/BEN2_ComfyUI", + "files": [ + "https://github.com/PramaLLC/BEN2_ComfyUI" + ], + "install_type": "git-clone", + "description": "Remove backgrounds from images with [a/BEN2](https://huggingface.co/PramaLLC/BEN2) in ComfyUI\nOriginal repo: [a/https://github.com/DoctorDiffusion/ComfyUI-BEN](https://github.com/DoctorDiffusion/ComfyUI-BEN)" + }, + { + "author": "BlenderNeko", + "title": "ltdrdata/ComfyUI_TiledKSampler", + "reference": "https://github.com/ltdrdata/ComfyUI_TiledKSampler", + "files": [ + "https://github.com/ltdrdata/ComfyUI_TiledKSampler" + ], + "install_type": "git-clone", + "description": "PR for [a/https://github.com/BlenderNeko/ComfyUI_TiledKSampler/pull/59](https://github.com/BlenderNeko/ComfyUI_TiledKSampler/pull/59)" + }, + { + "author": "leeooo001", + "title": "ComfyUI-leo-Hamer", + "reference": "https://github.com/leeooo001/ComfyUI-leo-Hamer", + "files": [ + "https://github.com/leeooo001/ComfyUI-leo-Hamer" + ], + "install_type": "git-clone", + "description": "Unoffice Hamer-ComfyUI by leo\nNOTE:base on [a/hamer](https://github.com/geopavlakos/hamer)" + }, + { + "author": "leeooo001", + "title": "ComfyUI-leo-GVHMR", + "reference": "https://github.com/leeooo001/ComfyUI-leo-GVHMR", + "files": [ + "https://github.com/leeooo001/ComfyUI-leo-GVHMR" + ], + "install_type": "git-clone", + "description": "Unoffice Hamer-ComfyUI by leo\nNOTE:base on [a/GVHMR](https://github.com/zju3dv/GVHMR)" + }, + { + "author": "leeooo001", + "title": "RealisDance-ComfyUI", + "reference": "https://github.com/leeooo001/ComfyUI-leo-RealisDance", + "files": [ + "https://github.com/leeooo001/ComfyUI-leo-RealisDance" + ], + "install_type": "git-clone", + "description": "Unoffice RealisDance-ComfyUI by leo\nNOTE:base on [a/RealisDance](https://github.com/damo-cv/RealisDance), modified on [a/RealisDanceComfyui](https://github.com/AIFSH/RealisDance-ComfyUI)" + }, + { + "author": "jags111", + "title": "NyaamZ/efficiency-nodes-ED", + "reference": "https://github.com/NyaamZ/efficiency-nodes-ED", + "files": [ + "https://github.com/NyaamZ/efficiency-nodes-ED" + ], + "install_type": "git-clone", + "description": "This forked repo supports efficiency-nodes-comfyui. Additional features." + }, + { + "author": "SeaArtLab", + "title": "zer0int/ComfyUI-Long-CLIP", + "reference": "https://github.com/zer0int/ComfyUI-Long-CLIP", + "files": [ + "https://github.com/zer0int/ComfyUI-Long-CLIP" + ], + "install_type": "git-clone", + "description": "This forked repo supports FLUX.1 not only SD1.5, SDXL." + }, + { + "author": "meimeilook", + "title": "ComfyUI_IPAdapter_plus.old [backward compatbility]", + "reference": "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old", + "files": [ + "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old" + ], + "install_type": "git-clone", + "description": "This repo is created to provide backward compatibility for workflows configured with the old IPAdapter." + }, { "author": "ZHO-ZHO-ZHO", "title": "Dr.Lt.Data/ComfyUI-YoloWorld-EfficientSAM", @@ -10,6 +120,16 @@ "install_type": "git-clone", "description": "This fork includes [a/PR32](https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM/pull/32)" }, + { + "author": "ertu110", + "title": "sdxl_prompt_style", + "reference": "https://github.com/ertu110/sdxl_prompt_style", + "files": [ + "https://github.com/ertu110/sdxl_prompt_style" + ], + "install_type": "git-clone", + "description": "This project is a complete benchmark [a/https://github.com/twri/sdxl_prompt_styler](https://github.com/twri/sdxl_prompt_styler) A large amount of code inside comes from https://github.com/twri/sdxl_prompt_styler Project and [a/https://www.nodecafe.org/package/pythongosssss_ComfyUI-Custom-Scripts](https://www.nodecafe.org/package/pythongosssss_ComfyUI-Custom-Scripts) project\nThe functionality of this project is related to https://github.com/twri/sdxl_prompt_styler Highly overlapping, the only purpose of creating this project is because there are too many styles when selecting, resulting in a long and inconvenient dropdown box. Therefore, To address this issue, this project has added a secondary menu to the style." + }, { "author": "gustproof", "title": "ComfyUI_IPAdapter_plus_Style_Components", @@ -29,6 +149,26 @@ ], "install_type": "git-clone", "description": "This is a development respository for debugging migration of StableSR to ComfyUI\n\nNOTE:Forked from [https://github.com/gameltb/Comfyui-StableSR]\nPut the StableSR [a/webui_786v_139.ckpt](https://huggingface.co/Iceclear/StableSR/resolve/main/webui_768v_139.ckpt) model into Comyfui/models/stablesr/, Put the StableSR [a/stablesr_768v_000139.ckpt](https://huggingface.co/Iceclear/StableSR/resolve/main/stablesr_768v_000139.ckpt) model into Comyfui/models/checkpoints/" + }, + { + "author": "city96", + "title": "Efficient-Large-Model/Extra Models for ComfyUI", + "reference": "https://github.com/Efficient-Large-Model/ComfyUI_ExtraModels", + "files": [ + "https://github.com/Efficient-Large-Model/ComfyUI_ExtraModels" + ], + "install_type": "git-clone", + "description": "A forked version of ComfyUI_ExtraModels. (modified by Efficient-Large-Model)" + }, + { + "author": "Pablerdo", + "title": "ComfyUI-PSNodes", + "reference": "https://github.com/Pablerdo/ComfyUI-PSNodes", + "files": [ + "https://github.com/Pablerdo/ComfyUI-PSNodes" + ], + "install_type": "git-clone", + "description": "A fork of KJNodes for ComfyUI.\nVarious quality of life -nodes for ComfyUI, mostly just visual stuff to improve usability" } ] } \ No newline at end of file diff --git a/node_db/legacy/custom-node-list.json b/node_db/legacy/custom-node-list.json index 1c00dd13..5f021d27 100644 --- a/node_db/legacy/custom-node-list.json +++ b/node_db/legacy/custom-node-list.json @@ -1,15 +1,2612 @@ { "custom_nodes": [ { - "author": "#NOTICE_1.13", - "title": "NOTICE: This channel is not the default channel.", - "reference": "https://github.com/ltdrdata/ComfyUI-Manager", - "files": [], + "author": "perilli", + "title": "apw_nodes [REMOVED]", + "reference": "https://github.com/alessandroperilli/APW_Nodes", + "files": [ + "https://github.com/alessandroperilli/APW_Nodes" + ], "install_type": "git-clone", - "description": "If you see this message, your ComfyUI-Manager is outdated.\nLegacy channel provides only the list of the deprecated nodes. If you want to find the complete node list, please go to the Default channel." + "description": "A custom node suite to augment the capabilities of the [a/AP Workflows for ComfyUI](https://perilli.com/ai/comfyui/)\nNOTE: See [a/Open Creative Studio Nodes](https://github.com/alessandroperilli/OCS_Nodes)" + }, + { + "author": "greengerong", + "title": "ComfyUI-Lumina-Video [REMOVED]", + "reference": "https://github.com/greengerong/ComfyUI-Lumina-Video", + "files": [ + "https://github.com/greengerong/ComfyUI-Lumina-Video" + ], + "install_type": "git-clone", + "description": "This is a video generation plugin implementation for ComfyUI based on the Lumina Video model." + }, + { + "author": "SatadalAI", + "title": "Combined Upscale Node for ComfyUI [REMOVED]", + "reference": "https://github.com/SatadalAI/SATA_UtilityNode", + "files": [ + "https://github.com/SatadalAI/SATA_UtilityNode" + ], + "install_type": "git-clone", + "description": "Combined_Upscale is a custom ComfyUI node designed for high-quality image enhancement workflows. It intelligently combines model-based upscaling with efficient CPU-based resizing, offering granular control over output dimensions and quality. Ideal for asset pipelines, UI prototyping, and generative workflows.\nNOTE: The files in the repo are not organized." + }, + { + "author": "netroxin", + "title": "Netro_wildcards [REMOVED]", + "reference": "https://github.com/netroxin/comfyui_netro_wildcards", + "files": [ + "https://github.com/netroxin/comfyui_netro_wildcards" + ], + "install_type": "git-clone", + "description": "Since I used 'simple wildcards' from Vanilla and it no longer works with the new Comfy UI version for me, I created an alternative. This CustomNode takes the entire contents of your wildcards-folder(comfyui wildcards) and creates a node for each one." + }, + { + "author": "takoyaki1118", + "title": "ComfyUI-MangaTools [REMOVED]", + "reference": "https://github.com/takoyaki1118/ComfyUI-MangaTools", + "files": [ + "https://github.com/takoyaki1118/ComfyUI-MangaTools" + ], + "install_type": "git-clone", + "description": "NODES: Manga Panel Detector, Manga Panel Dispatcher, GateImage, MangaPageAssembler" + }, + { + "author": "lucasgattas", + "title": "comfyui-egregora-regional [REMOVED]", + "reference": "https://github.com/lucasgattas/comfyui-egregora-regional", + "files": [ + "https://github.com/lucasgattas/comfyui-egregora-regional" + ], + "install_type": "git-clone", + "description": "Image Tile Split with Region-Aware Prompting for ComfyUI" + }, + { + "author": "lucasgattas", + "title": "comfyui-egregora-tiled [REMOVED]", + "reference": "https://github.com/lucasgattas/comfyui-egregora-tiled", + "files": [ + "https://github.com/lucasgattas/comfyui-egregora-tiled" + ], + "install_type": "git-clone", + "description": "Tiled regional prompting + tiled VAE decode with seam-free blending for ComfyUI" + }, + { + "author": "Seedsa", + "title": "ComfyUI Fooocus Nodes [REMOVED]", + "id": "fooocus-nodes", + "reference": "https://github.com/Seedsa/Fooocus_Nodes", + "files": [ + "https://github.com/Seedsa/Fooocus_Nodes" + ], + "install_type": "git-clone", + "description": "This extension provides image generation features based on Fooocus." + }, + { + "author": "zhilemann", + "title": "ComfyUI-moondream2 [REMOVED]", + "reference": "https://github.com/zhilemann/ComfyUI-moondream2", + "files": [ + "https://github.com/zhilemann/ComfyUI-moondream2" + ], + "install_type": "git-clone", + "description": "nodes for nightly moondream2 VLM inference\nsupports only captioning and visual queries at the moment" + }, + { + "author": "shinich39", + "title": "comfyui-textarea-is-shit [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-textarea-is-shit", + "files": [ + "https://github.com/shinich39/comfyui-textarea-is-shit" + ], + "description": "HTML gives me a textarea like piece of shit.", + "install_type": "git-clone" + }, + { + "author": "shinich39", + "title": "comfyui-poor-textarea [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-poor-textarea", + "files": [ + "https://github.com/shinich39/comfyui-poor-textarea" + ], + "install_type": "git-clone", + "description": "Add commentify, indentation, auto-close brackets in textarea." + }, + { + "author": "InfiniNode", + "title": "Comfyui-InfiniNode-Model-Suite [UNSAFE/REMOVED]", + "reference": "https://github.com/InfiniNode/Comfyui-InfiniNode-Model-Suite", + "files": [ + "https://github.com/InfiniNode/Comfyui-InfiniNode-Model-Suite" + ], + "install_type": "git-clone", + "description": "Welcome to the InfiniNode Model Suite, a custom node pack for ComfyUI that transforms the process of manipulating generative AI models. Our suite is a direct implementation of the 'GUI-Based Key Converter Development Plan,' designed to remove technical barriers for advanced AI practitioners and integrate seamlessly with existing image generation pipelines.[w/This node pack contains a node that has a vulnerability allowing write to arbitrary file paths.]" + }, + { + "author": "Avalre", + "title": "ComfyUI-avaNodes [REMOVED]", + "reference": "https://github.com/Avalre/ComfyUI-avaNodes", + "files": [ + "https://github.com/Avalre/ComfyUI-avaNodes" + ], + "install_type": "git-clone", + "description": "These nodes were created to personalize/optimize several ComfyUI nodes for my own use. You can replicate the functionality of most of my nodes by some combination of default ComfyUI nodes and custom nodes from other developers." + }, + { + "author": "Alectriciti", + "title": "comfyui-creativeprompts [REMOVED]", + "reference": "https://github.com/Alectriciti/comfyui-creativeprompts", + "files": [ + "https://github.com/Alectriciti/comfyui-creativeprompts" + ], + "install_type": "git-clone", + "description": "A creative alternative to dynamicprompts" + }, + { + "author": "flybirdxx", + "title": "ComfyUI Sliding Window [REMOVED]", + "reference": "https://github.com/PixWizardry/ComfyUI_Sliding_Window", + "files": [ + "https://github.com/PixWizardry/ComfyUI_Sliding_Window" + ], + "install_type": "git-clone", + "description": "This set of nodes provides a powerful sliding window or 'tiling' technique for processing long videos and animations in ComfyUI. It allows you to work on animations that are longer than your VRAM would typically allow by breaking the job into smaller, overlapping chunks and seamlessly blending them back together." + }, + { + "author": "SykkoAtHome", + "title": "Sykko Tools for ComfyUI [REMOVED]", + "reference": "https://github.com/SykkoAtHome/ComfyUI_SykkoTools", + "files": [ + "https://github.com/SykkoAtHome/ComfyUI_SykkoTools" + ], + "install_type": "git-clone", + "description": "Utilities for working with camera animations inside ComfyUI. The repository currently provides a node for loading camera motion from ASCII FBX files and a corresponding command line helper for debugging." + }, + { + "author": "hananbeer", + "title": "node_dev - ComfyUI Node Development Helper [REMOVED]", + "reference": "https://github.com/hananbeer/node_dev", + "files": [ + "https://github.com/hananbeer/node_dev" + ], + "install_type": "git-clone", + "description": "Browse to this endpoint to reload custom nodes for more streamlined development:\nhttp://127.0.0.1:8188/node_dev/reload/" + }, + { + "author": "Charonartist", + "title": "Comfyui_gemini_tts_node [REMOVED]", + "reference": "https://github.com/Charonartist/Comfyui_gemini_tts_node", + "files": [ + "https://github.com/Charonartist/Comfyui_gemini_tts_node" + ], + "install_type": "git-clone", + "description": "This custom node is a ComfyUI node for generating speech from text using the Gemini 2.5 Flash Preview TTS API." + }, + { + "author": "squirrel765", + "title": "lorasubdirectory [REMOVED]", + "reference": "https://github.com/andrewsthomasj/lorasubdirectory", + "files": [ + "https://github.com/andrewsthomasj/lorasubdirectory" + ], + "install_type": "git-clone", + "description": "only show dropdown of loras ina a given subdirectory" + }, + { + "author": "shingo1228", + "title": "ComfyUI-send-Eagle(slim) [REVMOED]", + "id": "send-eagle", + "reference": "https://github.com/shingo1228/ComfyUI-send-eagle-slim", + "files": [ + "https://github.com/shingo1228/ComfyUI-send-eagle-slim" + ], + "install_type": "git-clone", + "description": "Nodes:Send Webp Image to Eagle. This is an extension node for ComfyUI that allows you to send generated images in webp format to Eagle. This extension node is a re-implementation of the Eagle linkage functions of the previous ComfyUI-send-Eagle node, focusing on the functions required for this node." + }, + { + "author": "shingo1228", + "title": "ComfyUI-SDXL-EmptyLatentImage [REVMOED]", + "id": "sdxl-emptylatent", + "reference": "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage", + "files": [ + "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage" + ], + "install_type": "git-clone", + "description": "Nodes:SDXL Empty Latent Image. An extension node for ComfyUI that allows you to select a resolution from the pre-defined json files and output a Latent Image." + }, + { + "author": "chaunceyyann", + "title": "ComfyUI Image Processing Nodes [REMOVED]", + "reference": "https://github.com/chaunceyyann/comfyui-image-processing-nodes", + "files": [ + "https://github.com/chaunceyyann/comfyui-image-processing-nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI focused on image processing operations." + }, + { + "author": "OgreLemonSoup", + "title": "Gallery&Tabs [DEPRECATED]", + "id": "LoadImageGallery", + "reference": "https://github.com/OgreLemonSoup/ComfyUI-Load-Image-Gallery", + "files": [ + "https://github.com/OgreLemonSoup/ComfyUI-Load-Image-Gallery" + ], + "install_type": "git-clone", + "description": "Adds a gallery to the Load Image node and tabs for Load Checkpoint/Lora/etc nodes" + }, + { + "author": "11dogzi", + "title": "Qwen-Image ComfyUI [REMOVED]", + "reference": "https://github.com/11dogzi/Comfyui-Qwen-Image", + "files": [ + "https://github.com/11dogzi/Comfyui-Qwen-Image" + ], + "install_type": "git-clone", + "description": "This is a custom node package that integrates the Qwen-Image model into ComfyUI." + }, + { + "author": "BAIS1C", + "title": "ComfyUI-AudioDuration [REMOVED]", + "reference": "https://github.com/BAIS1C/ComfyUI_BASICDancePoser", + "files": [ + "https://github.com/BAIS1C/ComfyUI_BASICDancePoser" + ], + "install_type": "git-clone", + "description": "Node to extract Dance poses from Music to control Video Generations.\nNOTE: The files in the repo are not organized." + }, + { + "author": "BAIS1C", + "title": "ComfyUI_BASICSAdvancedDancePoser [REMOVED]", + "reference": "https://github.com/BAIS1C/ComfyUI_BASICSAdvancedDancePoser", + "files": [ + "https://github.com/BAIS1C/ComfyUI_BASICSAdvancedDancePoser" + ], + "install_type": "git-clone", + "description": "Professional COCO-WholeBody 133-keypoint dance animation system for ComfyUI" + }, + { + "author": "fablestudio", + "title": "ComfyUI-Showrunner-Utils [REMOVED]", + "reference": "https://github.com/fablestudio/ComfyUI-Showrunner-Utils", + "files": [ + "https://github.com/fablestudio/ComfyUI-Showrunner-Utils" + ], + "install_type": "git-clone", + "description": "NODES: Align Face, Generate Timestamp, GetMostCommonColors, Alpha Crop and Position Image, Shrink Image" + }, + { + "author": "skayka", + "title": "ComfyUI-DreamFit [REMOVED]", + "reference": "https://github.com/skayka/ComfyUI-DreamFit", + "files": [ + "https://github.com/skayka/ComfyUI-DreamFit" + ], + "install_type": "git-clone", + "description": "Garment-centric human generation nodes for ComfyUI using DreamFit with Flux.\nDreamFit is a powerful adapter system that enhances Flux models with garment-aware generation capabilities, enabling high-quality fashion and clothing generation." + }, + { + "author": "domenecmiralles", + "title": "obobo_nodes [REMOVED]", + "reference": "https://github.com/domenecmiralles/obobo_nodes", + "files": [ + "https://github.com/domenecmiralles/obobo_nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI that provide various input and output capabilities." + }, + { + "author": "NicholasKao1029", + "title": "comfyui-pixxio [REMOVED]", + "reference": "https://github.com/NicholasKao1029/comfyui-pixxio", + "files": [ + "https://github.com/NicholasKao1029/comfyui-pixxio" + ], + "install_type": "git-clone", + "description": "NODES: Auto-Upload Image to Pixxio Collection, Load Image from Pixx.io" + }, + { + "author": "ComfyUI-Workflow", + "title": "ComfyUI OpenAI Nodes [REMOVED]", + "reference": "https://github.com/ComfyUI-Workflow/ComfyUI-OpenAI", + "files": [ + "https://github.com/ComfyUI-Workflow/ComfyUI-OpenAI" + ], + "install_type": "git-clone", + "description": "By utilizing OpenAI's powerful vision models, this node enables you to incorporate state-of-the-art image understanding into your ComfyUI projects with minimal setup." + }, + { + "author": "dionren", + "title": "Export Workflow With Cyuai Api Available Nodes [REMOVED]", + "id": "comfyUI-Pro-Export-Tool", + "reference": "https://github.com/dionren/ComfyUI-Pro-Export-Tool", + "files": [ + "https://github.com/dionren/ComfyUI-Pro-Export-Tool" + ], + "install_type": "git-clone", + "description": "This is a node to convert workflows to cyuai api available nodes." + }, + { + "author": "1H-hobit", + "title": "ComfyUI_InternVL3 [REMOVED]", + "reference": "https://github.com/1H-hobit/ComfyUI_InternVL3", + "files": [ + "https://github.com/1H-hobit/ComfyUI_InternVL3" + ], + "install_type": "git-clone", + "description": "ComfyUI for [a/InternVL](https://github.com/OpenGVLab/InternVL)" + }, + { + "author": "spacepxl", + "title": "ComfyUI-Florence-2 [DEPRECATED]", + "id": "florence2-spacepxl", + "reference": "https://github.com/spacepxl/ComfyUI-Florence-2", + "files": [ + "https://github.com/spacepxl/ComfyUI-Florence-2" + ], + "install_type": "git-clone", + "description": "[a/https://huggingface.co/microsoft/Florence-2-large-ft](https://huggingface.co/microsoft/Florence-2-large-ft)\nLarge or base model, support for captioning and bbox task modes, more coming soon." + }, + { + "author": "xxxxxxxxxxxc", + "title": "flux-kontext-diff-merge [REMOVED]", + "reference": "https://github.com/xxxxxxxxxxxc/flux-kontext-diff-merge", + "files": [ + "https://github.com/xxxxxxxxxxxc/flux-kontext-diff-merge" + ], + "install_type": "git-clone", + "description": "Preserve image quality with flux-kontext-diff-merge. This ComfyUI node merges only changed areas from AI edits, ensuring clarity and detail." + }, + { + "author": "TechnoByteJS", + "title": "TechNodes [REMOVED]", + "id": "technodes", + "reference": "https://github.com/TechnoByteJS/ComfyUI-TechNodes", + "files": [ + "https://github.com/TechnoByteJS/ComfyUI-TechNodes" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes for merging, testing and more.\nNOTE: SDNext Merge, VAE Merge, MBW Layers, Repeat VAE, Quantization." + }, + { + "author": "DDDDEEP", + "title": "ComfyUI-DDDDEEP [REMOVED]", + "reference": "https://github.com/DDDDEEP/ComfyUI-DDDDEEP", + "files": [ + "https://github.com/DDDDEEP/ComfyUI-DDDDEEP" + ], + "install_type": "git-clone", + "description": "NODES: AutoWidthHeight, ReturnIntSeed, OppositeBool, PromptItemCollection" + }, + { + "author": "manifestations", + "title": "ComfyUI Ethnic Outfits Custom Nodes [REMOVED]", + "reference": "https://github.com/manifestations/comfyui-outfits", + "files": [ + "https://github.com/manifestations/comfyui-outfits" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI nodes for generating outfit prompts representing diverse ethnicities, cultures, and regions. Uses extensible JSON data for clothing, accessories, and poses, with “random/disabled” dropdowns for flexibility. Advanced prompt engineering is supported via Ollama LLM integration. Easily add new regions, ethnicities, or cultures by updating data files and creating lightweight node wrappers. Designed for artists, researchers, and developers seeking culturally rich, customizable prompt generation in ComfyUI workflows." + }, + { + "author": "MitoshiroPJ", + "title": "ComfyUI Slothful Attention [REMOVED]", + "reference": "https://github.com/MitoshiroPJ/comfyui_slothful_attention", + "files": [ + "https://github.com/MitoshiroPJ/comfyui_slothful_attention" + ], + "install_type": "git-clone", + "description": "This custom node allow controlling output without training. The reducing method is similar to [a/Spatial-Reduction Attention](https://paperswithcode.com/method/spatial-reduction-attention)." + }, + { + "author": "MitoshiroPJ", + "title": "comfyui_focal_sampler [REMOVED]", + "reference": "https://github.com/MitoshiroPJ/comfyui_focal_sampler", + "files": [ + "https://github.com/MitoshiroPJ/comfyui_focal_sampler" + ], + "install_type": "git-clone", + "description": "Apply additional sampling to specific area" + }, + { + "author": "manifestations", + "title": "ComfyUI Ethnic Outfit & Prompt Enhancer Nodes [REMOVED]", + "reference": "https://github.com/manifestations/comfyui-indian-outfit", + "files": [ + "https://github.com/manifestations/comfyui-indian-outfit" + ], + "install_type": "git-clone", + "description": "Features:\n* Extensive options for Indian, Indonesian, and international clothing, jewelry, accessories, and styles\n* Multiple jewelry and accessory fields (with material support: gold, diamond, silver, leather, beads, etc.)\n* Support for tattoos, henna, hair styles, poses, shot types, lighting, and photography genres\n* Seamless prompt expansion using your own Ollama LLM instance\n* Modular, extensible JSON data files for easy customization" + }, + { + "author": "coVISIONSld", + "title": "ComfyUI-OmniGen2 [REMOVED]", + "reference": "https://github.com/coVISIONSld/ComfyUI-OmniGen2", + "files": [ + "https://github.com/coVISIONSld/ComfyUI-OmniGen2" + ], + "install_type": "git-clone", + "description": "ComfyUI-OmniGen2 is a custom node package for the OmniGen2 model, enabling advanced text-to-image generation and visual understanding." + }, + { + "author": "S4MUEL-404", + "title": "ComfyUI-S4Tool-Image-Overlay [REMOVED]", + "reference": "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Image-Overlay", + "files": [ + "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Image-Overlay" + ], + "install_type": "git-clone", + "description": "Quickly set up image overlay effects" + }, + { + "author": "akspa0", + "title": "ComfyUI-FapMixPlus [REMOVED]", + "reference": "https://github.com/akspa0/ComfyUI-FapMixPlus", + "files": [ + "https://github.com/akspa0/ComfyUI-FapMixPlus" + ], + "install_type": "git-clone", + "description": "This is an audio processing script that applies soft limiting, optional loudness normalization, and optional slicing for transcription. It can also produce stereo-mixed outputs with optional audio appended to the end. The script organizes processed files into structured folders with sanitized filenames and retains original timestamps for continuity." + }, + { + "author": "RedmondAI", + "title": "comfyui-tools [UNSAFE]", + "reference": "https://github.com/RedmondAI/comfyui-tools", + "files": [ + "https://github.com/RedmondAI/comfyui-tools" + ], + "install_type": "git-clone", + "description": "Custom extensions for ComfyUI used by the Redmond3D VFX team.[w/This node pack has a vulnerability that allows it to create files at arbitrary paths.]" + }, + { + "author": "S4MUEL-404", + "title": "Image Position Blend [REMOVED]", + "id": "ComfyUI-Image-Position-Blend", + "version": "1.1", + "reference": "https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend", + "files": [ + "https://github.com/S4MUEL-404/ComfyUI-Image-Position-Blend" + ], + "install_type": "git-clone", + "description": "A custom node for conveniently adjusting the overlay position of two images." + }, + { + "author": "S4MUEL-404", + "title": "ComfyUI-Text-On-Image [REMOVED]", + "id": "ComfyUI-Text-On-Image", + "reference": "https://github.com/S4MUEL-404/ComfyUI-Text-On-Image", + "files": [ + "https://github.com/S4MUEL-404/ComfyUI-Text-On-Image" + ], + "install_type": "git-clone", + "description": "A custom node for ComfyUI that allows users to add text overlays to images with customizable size, font, position, and shadow." + }, + { + "author": "S4MUEL-404", + "title": "ComfyUI-Prompts-Selector [REMOVED]", + "reference": "https://github.com/S4MUEL-404/ComfyUI-Prompts-Selector", + "files": [ + "https://github.com/S4MUEL-404/ComfyUI-Prompts-Selector" + ], + "install_type": "git-clone", + "description": "Quickly select preset prompts and merge them" + }, + { + "author": "juntaosun", + "title": "ComfyUI_open_nodes [REMOVED]", + "reference": "https://github.com/juntaosun/ComfyUI_open_nodes", + "files": [ + "https://github.com/juntaosun/ComfyUI_open_nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI open nodes by juntaosun." + }, + { + "author": "perilli", + "title": "apw_nodes [DEPRECATED]", + "reference": "https://github.com/alessandroperilli/apw_nodes", + "files": [ + "https://github.com/alessandroperilli/apw_nodes" + ], + "install_type": "git-clone", + "description": "A custom node suite to augment the capabilities of the [a/AP Workflows for ComfyUI](https://perilli.com/ai/comfyui/)[w/'APW_Nodes' has been newly added in place of 'apw_nodes'.]" + }, + { + "author": "markuryy", + "title": "ComfyUI Spiritparticle Nodes [REMOVED]", + "reference": "https://github.com/markuryy/comfyui-spiritparticle", + "files": [ + "https://github.com/markuryy/comfyui-spiritparticle" + ], + "install_type": "git-clone", + "description": "A node pack by spiritparticle." + }, + { + "author": "SpaceKendo", + "title": "Text to video for Stable Video Diffusion in ComfyUI [REMOVED]", + "id": "svd-txt2vid", + "reference": "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid", + "files": [ + "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid" + ], + "install_type": "git-clone", + "description": "This is node replaces the init_image conditioning for the [a/Stable Video Diffusion](https://github.com/Stability-AI/generative-models) image to video model with text embeds, together with a conditioning frame. The conditioning frame is a set of latents." + }, + { + "author": "vovler", + "title": "ComfyUI Civitai Helper Extension [REMOVED]", + "reference": "https://github.com/vovler/comfyui-civitaihelper", + "files": [ + "https://github.com/vovler/comfyui-civitaihelper" + ], + "install_type": "git-clone", + "description": "ComfyUI extension for parsing Civitai PNG workflows and automatically downloading missing models" + }, + { + "author": "DriftJohnson", + "title": "DJZ-Nodes [REMOVED]", + "id": "DJZ-Nodes", + "reference": "https://github.com/MushroomFleet/DJZ-Nodes", + "files": [ + "https://github.com/MushroomFleet/DJZ-Nodes" + ], + "install_type": "git-clone", + "description": "AspectSize and other nodes" + }, + { + "author": "DriftJohnson", + "title": "KokoroTTS Node [REMOVED]", + "reference": "https://github.com/MushroomFleet/DJZ-KokoroTTS", + "files": [ + "https://github.com/MushroomFleet/DJZ-KokoroTTS" + ], + "install_type": "git-clone", + "description": "This node provides advanced text-to-speech functionality powered by KokoroTTS. Follow the instructions below to install, configure, and use the node within your portable ComfyUI installation." + }, + { + "author": "MushroomFleet", + "title": "DJZ-Pedalboard [REMOVED]", + "reference": "https://github.com/MushroomFleet/DJZ-Pedalboard", + "files": [ + "https://github.com/MushroomFleet/DJZ-Pedalboard" + ], + "install_type": "git-clone", + "description": "This project provides a collection of custom nodes designed for enhanced audio effects in ComfyUI. With an intuitive pedalboard interface, users can easily integrate and manipulate various audio effects within their workflows." + }, + { + "author": "MushroomFleet", + "title": "SVG Suite for ComfyUI [REMOVED]", + "reference": "https://github.com/MushroomFleet/svg-suite", + "files": [ + "https://github.com/MushroomFleet/svg-suite" + ], + "install_type": "git-clone", + "description": "SVG Suite is an advanced set of nodes for converting images to SVG in ComfyUI, expanding upon the functionality of ComfyUI-ToSVG." + }, + { + "author": "joeriben", + "title": "AI4ArtsEd Ollama Prompt Node [DEPRECATED]", + "reference": "https://github.com/joeriben/ai4artsed_comfyui", + "files": [ + "https://github.com/joeriben/ai4artsed_comfyui" + ], + "install_type": "git-clone", + "description": "Experimental nodes for ComfyUI. For more, see [a/https://kubi-meta.de/ai4artsed](https://kubi-meta.de/ai4artsed) A custom ComfyUI node for stylistic and cultural transformation of input text using local LLMs served via Ollama. This node allows you to combine a free-form prompt (e.g. translation, poetic recoding, genre shift) with externally supplied text in the ComfyUI graph. The result is processed via an Ollama-hosted model and returned as plain text." + }, + { + "author": "bento234", + "title": "ComfyUI-bento-toolbox [REMOVED]", + "reference": "https://github.com/bento234/ComfyUI-bento-toolbox", + "files": [ + "https://github.com/bento234/ComfyUI-bento-toolbox" + ], + "install_type": "git-clone", + "description": "NODES: Tile Prompt Distributor" + }, + { + "author": "yichengup", + "title": "ComfyUI-VideoBlender [REMOVED]", + "reference": "https://github.com/yichengup/ComfyUI-VideoBlender", + "files": [ + "https://github.com/yichengup/ComfyUI-VideoBlender" + ], + "install_type": "git-clone", + "description": "Video clip mixing" + }, + { + "author": "xl0", + "title": "latent-tools [REMOVED]", + "reference": "https://github.com/xl0/latent-tools", + "files": [ + "https://github.com/xl0/latent-tools" + ], + "install_type": "git-clone", + "description": "Visualize and manipulate the latent space in ComfyUI" + }, + { + "author": "Conor-Collins", + "title": "ComfyUI-CoCoTools [REMOVED]", + "reference": "https://github.com/Conor-Collins/coco_tools", + "files": [ + "https://github.com/Conor-Collins/coco_tools" + ], + "install_type": "git-clone", + "description": "A set of custom nodes for ComfyUI providing advanced image processing, file handling, and utility functions." + }, + { + "author": "theUpsider", + "title": "ComfyUI-Logic [DEPRECATED]", + "id": "comfy-logic", + "reference": "https://github.com/theUpsider/ComfyUI-Logic", + "files": [ + "https://github.com/theUpsider/ComfyUI-Logic" + ], + "install_type": "git-clone", + "description": "An extension to ComfyUI that introduces logic nodes and conditional rendering capabilities." + }, + { + "author": "Malloc-pix", + "title": "comfyui_qwen2.4_vl_node [REMOVED]", + "reference": "https://github.com/Malloc-pix/comfyui_qwen2.4_vl_node", + "files": [ + "https://github.com/Malloc-pix/comfyui_qwen2.4_vl_node" + ], + "install_type": "git-clone", + "description": "NODES: CogVLM2 Captioner, CLIP Dynamic Text Encode(cy)" + }, + { + "author": "inyourdreams-studio", + "title": "ComfyUI-RBLM [REMOVED]", + "reference": "https://github.com/inyourdreams-studio/comfyui-rblm", + "files": [ + "https://github.com/inyourdreams-studio/comfyui-rblm" + ], + "install_type": "git-clone", + "description": "A custom node pack for ComfyUI that provides text manipulation nodes." + }, + { + "author": "dream-computing", + "title": "SyntaxNodes - Image Processing Effects for ComfyUI [REMOVED]", + "reference": "https://github.com/dream-computing/syntax-nodes", + "files": [ + "https://github.com/dream-computing/syntax-nodes" + ], + "install_type": "git-clone", + "description": "A collection of custom nodes for ComfyUI designed to apply various image processing effects, stylizations, and analyses." + }, + { + "author": "UD1sto", + "title": "plugin-utils-nodes [DEPRECATED]", + "reference": "https://github.com/its-DeFine/plugin-utils-nodes", + "files": [ + "https://github.com/its-DeFine/plugin-utils-nodes" + ], + "install_type": "git-clone", + "description": "NODES: Compare Images (SimHash), Image Selector, Temporal Consistency, Update Image Reference, Frame Blend." + }, + { + "author": "hanyingcho", + "title": "ComfyUI LLM Promp [REMOVED]", + "reference": "https://github.com/hanyingcho/comfyui-llmprompt", + "files": [ + "https://github.com/hanyingcho/comfyui-llmprompt" + ], + "install_type": "git-clone", + "description": "NODES: Load llm, Generate Text with LLM, Inference Qwen2VL, Inference Qwen2" + }, + { + "author": "WASasquatch", + "title": "WAS Node Suite [DEPRECATED]", + "id": "was", + "reference": "https://github.com/WASasquatch/was-node-suite-comfyui", + "pip": ["numba"], + "files": [ + "https://github.com/WASasquatch/was-node-suite-comfyui" + ], + "install_type": "git-clone", + "description": "A node suite for ComfyUI with many new nodes, such as image processing, text processing, and more." + }, + { + "author": "TOM1063", + "title": "ComfyUI-SamuraiTools [REMOVED]", + "reference": "https://github.com/TOM1063/ComfyUI-SamuraiTools", + "files": [ + "https://github.com/TOM1063/ComfyUI-SamuraiTools" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node for switching integer values based on boolean conditions" + }, + { + "author": "whitemoney293", + "title": "ComfyUI-MediaUtilities [REMOVED]", + "reference": "https://github.com/ThanaritKanjanametawatAU/ComfyUI-MediaUtilities", + "files": [ + "https://github.com/ThanaritKanjanametawatAU/ComfyUI-MediaUtilities" + ], + "install_type": "git-clone", + "description": "Custom nodes for loading and previewing media from URLs in ComfyUI." + }, + { + "author": "pureexe", + "title": "DiffusionLight-ComfyUI [REMOVED]", + "reference": "https://github.com/pureexe/DiffusionLight-ComfyUI", + "files": [ + "https://github.com/pureexe/DiffusionLight-ComfyUI" + ], + "install_type": "git-clone", + "description": "DiffusionLight (Turbo) implemented in ComfyUI" + }, + { + "author": "gondar-software", + "title": "comfyui-custom-padding [REMOVED]", + "reference": "https://github.com/gondar-software/comfyui-custom-padding", + "files": [ + "https://github.com/gondar-software/comfyui-custom-padding" + ], + "install_type": "git-clone", + "description": "NODES: Adaptive image padding, Adaptive image unpadding" + }, + { + "author": "Charonartist", + "title": "ComfyUI-EagleExporter [REMOVED]", + "reference": "https://github.com/Charonartist/ComfyUI-EagleExporter", + "files": [ + "https://github.com/Charonartist/ComfyUI-EagleExporter" + ], + "install_type": "git-clone", + "description": "This is an extension that automatically saves video files generated with ComfyUI's 'video combine' extension to the Eagle library." + }, + { + "author": "pomePLaszlo-collablyu", + "title": "comfyui_ejam [REMOVED]", + "reference": "https://github.com/PLaszlo-collab/comfyui_ejam", + "files": [ + "https://github.com/PLaszlo-collab/comfyui_ejam" + ], + "install_type": "git-clone", + "description": "Ejam nodes for comfyui" + }, + { + "author": "jonnydolake", + "title": "ComfyUI-AIR-Nodes [REMOVED]", + "reference": "https://github.com/jonnydolake/ComfyUI-AIR-Nodes", + "files": [ + "https://github.com/jonnydolake/ComfyUI-AIR-Nodes" + ], + "install_type": "git-clone", + "description": "NODES: String List To Prompt Schedule, Force Minimum Batch Size, Target Location (Crop), Target Location (Paste), Image Composite Chained, Match Image Count To Mask Count, Random Character Prompts, Parallax Test, Easy Parallax, Parallax GPU Test" + }, + { + "author": "solution9th", + "title": "Comfyui_mobilesam [REMOVED]", + "reference": "https://github.com/solution9th/Comfyui_mobilesam", + "files": [ + "https://github.com/solution9th/Comfyui_mobilesam" + ], + "install_type": "git-clone", + "description": "NODES: Mobile SAM Model Loader, Mobile SAM Detector, Mobile SAM Predictor" + }, + { + "author": "syaofox", + "title": "ComfyUI_fnodes [REMOVED]", + "reference": "https://github.com/syaofox/ComfyUI_fnodes", + "files": [ + "https://github.com/syaofox/ComfyUI_fnodes" + ], + "install_type": "git-clone", + "description": "ComfyUI_fnodes is a collection of custom nodes designed for ComfyUI. These nodes provide additional functionality that can enhance your ComfyUI workflows.\nFile manipulation tools, Image resizing tools, IPAdapter tools, Image processing tools, Mask tools, Face analysis tools, Sampler tools, Miscellaneous tools" + }, + { + "author": "Hangover3832", + "title": "ComfyUI-Hangover-Moondream [DEPRECATED]", + "reference": "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream", + "files": [ + "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream" + ], + "install_type": "git-clone", + "description": "Moondream is a lightweight multimodal large language model.\n[w/WARN:Additional python code will be downloaded from huggingface and executed. You have to trust this creator if you want to use this node!]" + }, + { + "author": "Hangover3832", + "title": "Recognize Anything Model (RAM) for ComfyUI [DEPRECATED]", + "reference": "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything", + "files": [ + "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything" + ], + "install_type": "git-clone", + "description": "This is an image recognition node for ComfyUI based on the RAM++ model from [a/xinyu1205](https://huggingface.co/xinyu1205).\nThis node outputs a string of tags with all the recognized objects and elements in the image in English or Chinese language.\nFor image tagging and captioning." + }, + { + "author": "Hangover3832", + "title": "ComfyUI-Hangover-Nodes [DEPRECATED]", + "reference": "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes", + "files": [ + "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes: MS kosmos-2 Interrogator, Save Image w/o Metadata, Image Scale Bounding Box. An implementation of Microsoft [a/kosmos-2](https://huggingface.co/microsoft/kosmos-2-patch14-224) image to text transformer." + }, + { + "author": "SirLatore", + "title": "ComfyUI-IPAdapterWAN [REMOVED]", + "reference": "https://github.com/SirLatore/ComfyUI-IPAdapterWAN", + "files": [ + "https://github.com/SirLatore/ComfyUI-IPAdapterWAN" + ], + "install_type": "git-clone", + "description": "This extension adapts the [a/InstantX IP-Adapter for SD3.5-Large](https://huggingface.co/InstantX/SD3.5-Large-IP-Adapter) to work with Wan 2.1 and other UNet-based video/image models in ComfyUI.\nUnlike the original SD3 version (which depends on joint_blocks from MMDiT), this version performs sampling-time identity conditioning by dynamically injecting into attention layers — making it compatible with models like Wan 2.1, AnimateDiff, and other non-SD3 pipelines." + }, + { + "author": "Jpzz", + "title": "ComfyUI-VirtualInteraction [UNSAFE/REMOVED]", + "reference": "https://github.com/Jpzz/ComfyUI-VirtualInteraction", + "files": [ + "https://github.com/Jpzz/ComfyUI-VirtualInteraction" + ], + "install_type": "git-clone", + "description": "NODES: virtual interaction custom node when using generative movie\n[w/This nodepack contains a node which is reading arbitrary excel file.]" + }, + { + "author": "satche", + "title": "Prompt Factory [REMOVED]", + "reference": "https://github.com/satche/comfyui-prompt-factory", + "files": [ + "https://github.com/satche/comfyui-prompt-factory" + ], + "install_type": "git-clone", + "description": "A modular system that adds randomness to prompt generation" + }, + { + "author": "MITCAP", + "title": "ComfyUI OpenAI DALL-E 3 Node [REMOVED]", + "reference": "https://github.com/MITCAP/OpenAI-ComfyUI", + "files": [ + "https://github.com/MITCAP/OpenAI-ComfyUI" + ], + "install_type": "git-clone", + "description": "This project provides custom nodes for ComfyUI that integrate with OpenAI's DALL-E 3 and GPT-4o models. The nodes allow users to generate images and describe images using OpenAI's API.\nNOTE: The files in the repo are not organized." + }, + { + "author": "raspie10032", + "title": "ComfyUI NAI Prompt Converter [REMOVED]", + "reference": "https://github.com/raspie10032/ComfyUI_RS_NAI_Local_Prompt_converter", + "files": [ + "https://github.com/raspie10032/ComfyUI_RS_NAI_Local_Prompt_converter" + ], + "install_type": "git-clone", + "description": "A custom node extension for ComfyUI that enables conversion between different prompt formats: NovelAI V4, ComfyUI, and old NovelAI." + }, + { + "author": "holchan", + "title": "ComfyUI-ModelDownloader [REMOVED]", + "reference": "https://github.com/holchan/ComfyUI-ModelDownloader", + "files": [ + "https://github.com/holchan/ComfyUI-ModelDownloader" + ], + "install_type": "git-clone", + "description": "A ComfyUI node to download models(Checkpoints and LoRA) from external links and act as an output standalone node." + }, + { + "author": "Kur0butiMegane", + "title": "Comfyui-StringUtils [DEPRECATED]", + "reference": "https://github.com/Kur0butiMegane/Comfyui-StringUtils", + "files": [ + "https://github.com/Kur0butiMegane/Comfyui-StringUtils" + ], + "install_type": "git-clone", + "description": "NODES: Prompt Normalizer, String Splitter, String Line Selector, Extract Markup Value" + }, + { + "author": "Apache0ne", + "title": "ComfyUI-LantentCompose [REMOVED]", + "reference": "https://github.com/Apache0ne/ComfyUI-LantentCompose", + "files": [ + "https://github.com/Apache0ne/ComfyUI-LantentCompose" + ], + "install_type": "git-clone", + "description": "Interpolate sdxl latents using slerp with and without a mask. use with unsample nodes for best effect.\nNOTE: The files in the repo are not organized." + }, + { + "author": "jax-explorer", + "title": "ComfyUI-H-flow [REMOVED]", + "reference": "https://github.com/jax-explorer/ComfyUI-H-flow", + "files": [ + "https://github.com/jax-explorer/ComfyUI-H-flow" + ], + "install_type": "git-clone", + "description": "NODES: Wan2-1 Image To Video, LLM Task, Save Image, Save Video, Show Text, FluxPro Ultra, IdeogramV2 Turbo, Runway Image To Video, Kling Image To Video, Replace Text, Join Text, Test Image, Test Text" + }, + { + "author": "Apache0ne", + "title": "SambaNova [REMOVED]", + "id": "SambaNovaAPI", + "reference": "https://github.com/Apache0ne/SambaNova", + "files": [ + "https://github.com/Apache0ne/SambaNova" + ], + "install_type": "git-clone", + "description": "Super Fast LLM's llama3.1-405B,70B,8B and more" + }, + { + "author": "Apache0ne", + "title": "ComfyUI-EasyUrlLoader [REMOVED]", + "id": "easy-url-loader", + "reference": "https://github.com/Apache0ne/ComfyUI-EasyUrlLoader", + "files": [ + "https://github.com/Apache0ne/ComfyUI-EasyUrlLoader" + ], + "install_type": "git-clone", + "description": "A simple YT downloader node for ComfyUI using video Urls. Can be used with VHS nodes etc." + }, + { + "author": "nxt5656", + "title": "ComfyUI-Image2OSS [REMOVED]", + "reference": "https://github.com/nxt5656/ComfyUI-Image2OSS", + "files": [ + "https://github.com/nxt5656/ComfyUI-Image2OSS" + ], + "install_type": "git-clone", + "description": "Upload the image to Alibaba Cloud OSS." + }, + { + "author": "ainewsto", + "title": "Comfyui_Comfly", + "reference": "https://github.com/ainewsto/Comfyui_Comfly", + "files": [ + "https://github.com/ainewsto/Comfyui_Comfly" + ], + "install_type": "git-clone", + "description": "NODES: Comfly_Mj, Comfly_mjstyle, Comfly_upload, Comfly_Mju, Comfly_Mjv, Comfly_kling_videoPreview\nNOTE: Comfyui_Comfly_v2 is introduced." + }, + { + "author": "shinich39", + "title": "comfyui-to-inpaint", + "reference": "https://github.com/shinich39/comfyui-to-inpaint", + "files": [ + "https://github.com/shinich39/comfyui-to-inpaint" + ], + "install_type": "git-clone", + "description": "Send preview image to inpaint workflow." + }, + { + "author": "magic-quill", + "title": "ComfyUI_MagicQuill [NOT MAINTAINED]", + "id": "MagicQuill", + "reference": "https://github.com/magic-quill/ComfyUI_MagicQuill", + "files": [ + "https://github.com/magic-quill/ComfyUI_MagicQuill" + ], + "install_type": "git-clone", + "description": "Towards GPT-4 like large language and visual assistant.\nNOTE: The current version has not been maintained for a long time and does not work. Please use https://github.com/brantje/ComfyUI_MagicQuill instead." + }, + { + "author": "shinich39", + "title": "comfyui-event-handler [USAFE/REMOVED]", + "reference": "https://github.com/shinich39/comfyui-event-handler", + "files": [ + "https://github.com/shinich39/comfyui-event-handler" + ], + "install_type": "git-clone", + "description": "Javascript code will run when an event fires. [w/This node allows you to execute arbitrary JavaScript code as input for the workflow.]" + }, + { + "author": "Moooonet", + "title": "ComfyUI-ArteMoon [REMOVED]", + "reference": "https://github.com/Moooonet/ComfyUI-ArteMoon", + "files": [ + "https://github.com/Moooonet/ComfyUI-ArteMoon" + ], + "install_type": "git-clone", + "description": "This plugin works with [a/IF_AI_Tools](https://github.com/if-ai/ComfyUI-IF_AI_tools) to build a workflow in ComfyUI that uses AI to assist in generating prompts." + }, + { + "author": "ryanontheinside", + "title": "ComfyUI-MediaPipe-Vision [REMOVED]", + "reference": "https://github.com/ryanontheinside/ComfyUI-MediaPipe-Vision", + "files": [ + "https://github.com/ryanontheinside/ComfyUI-MediaPipe-Vision" + ], + "install_type": "git-clone", + "description": "A centralized wrapper of all MediaPipe vision tasks for ComfyUI." + }, + { + "author": "shinich39", + "title": "comfyui-textarea-command [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-textarea-command", + "files": [ + "https://github.com/shinich39/comfyui-textarea-command" + ], + "install_type": "git-clone", + "description": "Add command and comment in textarea. (e.g. // Disabled line)" + }, + { + "author": "shinich39", + "title": "comfyui-parse-image [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-parse-image", + "files": [ + "https://github.com/shinich39/comfyui-parse-image" + ], + "install_type": "git-clone", + "description": "Extract metadata from image." + }, + { + "author": "shinich39", + "title": "comfyui-put-image [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-put-image", + "files": [ + "https://github.com/shinich39/comfyui-put-image" + ], + "install_type": "git-clone", + "description": "Load image from directory." + }, + { + "author": "fredconex", + "title": "TripoSG Nodes for ComfyUI [REMOVED]", + "reference": "https://github.com/fredconex/ComfyUI-TripoSG", + "files": [ + "https://github.com/fredconex/ComfyUI-TripoSG" + ], + "install_type": "git-clone", + "description": "Created by Alfredo Fernandes inspired by Hunyuan3D nodes by Kijai. This extension adds TripoSG 3D mesh generation capabilities to ComfyUI, allowing you to generate 3D meshes from a single image using the TripoSG model." + }, + { + "author": "fredconex", + "title": "ComfyUI-PaintTurbo [REMOVED]", + "reference": "https://github.com/fredconex/ComfyUI-PaintTurbo", + "files": [ + "https://github.com/fredconex/ComfyUI-PaintTurbo" + ], + "install_type": "git-clone", + "description": "NODES: Hunyuan3D Texture Mesh" + }, + { + "author": "zhuanqianfish", + "title": "TaesdDecoder [REMOVED]", + "reference": "https://github.com/zhuanqianfish/TaesdDecoder", + "files": [ + "https://github.com/zhuanqianfish/TaesdDecoder" + ], + "install_type": "git-clone", + "description": "use TAESD decoded image.you need donwload taesd_decoder.pth and taesdxl_decoder.pth to vae_approx folder first.\n It will result in a slight loss of image quality and a significant decrease in peak video memory during decoding." + }, + { + "author": "myAiLemon", + "title": "MagicAutomaticPicture [REMOVED]", + "reference": "https://github.com/myAiLemon/MagicAutomaticPicture", + "files": [ + "https://github.com/myAiLemon/MagicAutomaticPicture" + ], + "install_type": "git-clone", + "description": "A comfyui node package that can generate pictures and automatically save positive prompts and eliminate unwanted prompts" + }, + { + "author": "thisiseddy-ab", + "title": "ComfyUI-Edins-Ultimate-Pack [REMOVED]", + "reference": "https://github.com/thisiseddy-ab/ComfyUI-Edins-Ultimate-Pack", + "files": [ + "https://github.com/thisiseddy-ab/ComfyUI-Edins-Ultimate-Pack" + ], + "install_type": "git-clone", + "description": "Well i needet a Tiled Ksampler that still works for Comfy UI there were none so i made one, in this Package i will put all Nodes i will develop for Comfy Ui still in beta alot will change.." + }, + { + "author": "Davros666", + "title": "safetriggers [REMOVED]", + "reference": "https://github.com/Davros666/safetriggers", + "files": [ + "https://github.com/Davros666/safetriggers" + ], + "install_type": "git-clone", + "description": "ComfyUI Nodes for READING TRIGGERS, TRIGGER-WORDS, TRIGGER-PHRASES FROM LoRAs" + }, + { + "author": "cubiq", + "title": "Simple Math [REMOVED]", + "id": "simplemath", + "reference": "https://github.com/cubiq/ComfyUI_SimpleMath", + "files": [ + "https://github.com/cubiq/ComfyUI_SimpleMath" + ], + "install_type": "git-clone", + "description": "custom node for ComfyUI to perform simple math operations" + }, + { + "author": "lucafoscili", + "title": "LF Nodes [DEPRECATED]", + "reference": "https://github.com/lucafoscili/comfyui-lf", + "files": [ + "https://github.com/lucafoscili/comfyui-lf" + ], + "install_type": "git-clone", + "description": "Custom nodes with a touch of extra UX, including: history for primitives, JSON manipulation, logic switches with visual feedback, LLM chat... and more!" + }, + { + "author": "AI2lab", + "title": "comfyUI-tool-2lab [REMOVED]", + "id": "tool-2lab", + "reference": "https://github.com/AI2lab/comfyUI-tool-2lab", + "files": [ + "https://github.com/AI2lab/comfyUI-tool-2lab" + ], + "install_type": "git-clone", + "description": "tool set for developing workflow and publish to web api server" + }, + { + "author": "AI2lab", + "title": "comfyUI-DeepSeek-2lab [REMOVED]", + "id": "deepseek", + "reference": "https://github.com/AI2lab/comfyUI-DeepSeek-2lab", + "files": [ + "https://github.com/AI2lab/comfyUI-DeepSeek-2lab" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of DeepSeek for ComfyUI" + }, + { + "author": "AI2lab", + "title": "comfyUI-kling-api-2lab [REMOVED]", + "reference": "https://github.com/AI2lab/comfyUI-kling-api-2lab", + "files": [ + "https://github.com/AI2lab/comfyUI-kling-api-2lab" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of KLing for ComfyUI" + }, + { + "author": "ZhiHui6", + "title": "comfyui_zhihui_nodes [REMOVED]", + "reference": "https://github.com/ZhiHui6/comfyui_zhihui_nodes", + "files": [ + "https://github.com/ZhiHui6/comfyui_zhihui_nodes" + ], + "install_type": "git-clone", + "description": "NODES: Prompt Preset, Video Batch Loader, Video Combiner" + }, + { + "author": "ImagineerNL", + "title": "comfyui_potrace_svg [REMOVED]", + "reference": "https://github.com/ImagineerNL/comfyui_potrace_svg", + "files": [ + "https://github.com/ImagineerNL/comfyui_potrace_svg" + ], + "install_type": "git-clone", + "description": "This project converts raster images into SVG format using the Potrace library." + }, + { + "author": "kayselmecnun", + "title": "ComfyUI-Qwen-25-VL [REMOVED]", + "reference": "https://github.com/kayselmecnun/ComfyUI-Qwen-25-VL", + "files": [ + "https://github.com/kayselmecnun/ComfyUI-Qwen-25-VL" + ], + "install_type": "git-clone", + "description": "A custom Comfy UI node for using Qwen2.5-VL-3B/7B-Instruct models" + }, + { + "author": "IfnotFr", + "title": "⚡ ComfyUI Connect [REMOVED]", + "reference": "https://github.com/IfnotFr/ComfyUI-Connect", + "files": [ + "https://github.com/IfnotFr/ComfyUI-Connect" + ], + "install_type": "git-clone", + "description": "Transform your ComfyUI into a powerful API, exposing all your saved workflows as ready-to-use HTTP endpoints." + }, + { + "author": "ginlov", + "title": "segment_to_mask_comfyui [REMOVED]", + "reference": "https://github.com/ginlov/segment_to_mask_comfyui", + "files": [ + "https://github.com/ginlov/segment_to_mask_comfyui" + ], + "install_type": "git-clone", + "description": "Nodes:SegToMask" + }, + { + "author": "TGu-97", + "title": "TGu Utilities [REMOVED]", + "id": "tgu", + "reference": "https://github.com/TGu-97/ComfyUI-TGu-utils", + "files": [ + "https://github.com/TGu-97/ComfyUI-TGu-utils" + ], + "install_type": "git-clone", + "description": "Nodes: MPN Switch, MPN Reroute, PN Switch. This is a set of custom nodes for ComfyUI. Mainly focus on control switches." + }, + { + "author": "IfnotFr", + "title": "ComfyUI-Connect [REMOVED]", + "reference": "https://github.com/IfnotFr/ComfyUI-Connect", + "files": [ + "https://github.com/IfnotFr/ComfyUI-Connect" + ], + "install_type": "git-clone", + "description": "Transform your ComfyUI into a powerful API, exposing all your saved workflows as ready-to-use HTTP endpoints." + }, + { + "author": "KurtHokke", + "title": "ComfyUI_KurtHokke-Nodes [REMOVED]", + "reference": "https://github.com/KurtHokke/ComfyUI_KurtHokke-Nodes", + "files": [ + "https://github.com/KurtHokke/ComfyUI_KurtHokke-Nodes" + ], + "install_type": "git-clone", + "description": "ComfyUI_KurtHokke-Nodes" + }, + { + "author": "SpatialDeploy", + "title": "ComfyUI-Voxels [REMOVED]", + "reference": "https://github.com/SpatialDeploy/ComfyUI-Voxels", + "files": [ + "https://github.com/SpatialDeploy/ComfyUI-Voxels" + ], + "install_type": "git-clone", + "description": "Tools for creating voxel based videos" + }, + { + "author": "shinich39", + "title": "comfyui-group-selection [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-group-selection", + "files": [ + "https://github.com/shinich39/comfyui-group-selection" + ], + "install_type": "git-clone", + "description": "Create a new group of nodes." + }, + { + "author": "shinich39", + "title": "connect-from-afar [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-connect-from-afar", + "files": [ + "https://github.com/shinich39/comfyui-connect-from-afar" + ], + "install_type": "git-clone", + "description": "Connect a new link from out of screen." + }, + { + "author": "shinich39", + "title": "comfyui-local-db [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-local-db", + "files": [ + "https://github.com/shinich39/comfyui-local-db" + ], + "install_type": "git-clone", + "description": "Store text to Key-Values pair json." + }, + { + "author": "shinich39", + "title": "comfyui-model-db [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-model-db", + "files": [ + "https://github.com/shinich39/comfyui-model-db" + ], + "install_type": "git-clone", + "description": "Store settings by model." + }, + { + "author": "shinich39", + "title": "comfyui-target-search [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-target-search", + "files": [ + "https://github.com/shinich39/comfyui-target-search" + ], + "install_type": "git-clone", + "description": "Move canvas to target on dragging connection." + }, + { + "author": "chrisgoringe", + "title": "Image chooser [DEPRECATED]", + "id": "image-chooser", + "reference": "https://github.com/chrisgoringe/cg-image-picker", + "files": [ + "https://github.com/chrisgoringe/cg-image-picker" + ], + "install_type": "git-clone", + "description": "A custom node that pauses the flow while you choose which image (or latent) to pass on to the rest of the workflow." + }, + { + "author": "weilin9999", + "title": "WeiLin-ComfyUI-prompt-all-in-one [DEPRECATED]", + "id": "prompt-all-in-one", + "reference": "https://github.com/weilin9999/WeiLin-ComfyUI-prompt-all-in-one", + "files": [ + "https://github.com/weilin9999/WeiLin-ComfyUI-prompt-all-in-one" + ], + "install_type": "git-clone", + "description": "Write prompt words like WebUI" + }, + { + "author": "svetozarov", + "title": "AS_GeminiCaptioning Node [REMOVED]", + "reference": "https://github.com/svetozarov/AS_GeminiCaptioning", + "files": [ + "https://github.com/svetozarov/AS_GeminiCaptioning" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that combines an image with simple text parameters to create a prompt, sends it to the Google Gemini API via the google-generativeai SDK, and returns the generated text response along with the original prompt and an execution log" + }, + { + "author": "shinich39", + "title": "comfyui-load-image-in-seq [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-load-image-in-seq", + "files": [ + "https://github.com/shinich39/comfyui-load-image-in-seq" + ], + "install_type": "git-clone", + "description": "This node is load png image sequentially with metadata. Only supported for PNG format that has been created by ComfyUI.[w/renamed from comfyui-load-image-39. You need to remove previous one and reinstall to this.]" + }, + { + "author": "shinich39", + "title": "comfyui-model-metadata [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-model-metadata", + "files": [ + "https://github.com/shinich39/comfyui-model-metadata" + ], + "install_type": "git-clone", + "description": "Print model metadata on note node" + }, + { + "author": "shinich39", + "title": "comfyui-view-recommendations [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-view-recommendations", + "files": [ + "https://github.com/shinich39/comfyui-view-recommendations" + ], + "install_type": "git-clone", + "description": "Load model generation data from civitai." + }, + { + "author": "jonstreeter", + "title": "Comfyui-PySceneDetect [REMOVED]", + "reference": "https://github.com/jonstreeter/Comfyui-PySceneDetect", + "files": [ + "https://github.com/jonstreeter/Comfyui-PySceneDetect" + ], + "install_type": "git-clone", + "description": "NODES: PySceneDetect Video Processor" + }, + { + "author": "muxueChen", + "title": "ComfyUI-NTQwen25-VL [REMOVED]", + "reference": "https://github.com/muxueChen/ComfyUI-NTQwen25-VL", + "files": [ + "https://github.com/muxueChen/ComfyUI-NTQwen25-VL" + ], + "install_type": "git-clone", + "description": "Qwen25-VL is a plugin for ComfyU" + }, + { + "author": "Makki_Shizu", + "title": "ComfyUI-SaveAnimatedGIF [DEPRECATED]", + "id": "SaveAnimatedGIF", + "reference": "https://github.com/MakkiShizu/ComfyUI-SaveAnimatedGIF", + "files": [ + "https://github.com/MakkiShizu/ComfyUI-SaveAnimatedGIF" + ], + "install_type": "git-clone", + "description": "Save animated GIF format nodes in ComfyUI" + }, + { + "author": "l1yongch1", + "title": "ComfyUI_PhiCaption [REMOVED]", + "reference": "https://github.com/l1yongch1/ComfyUI_PhiCaption", + "files": [ + "https://github.com/l1yongch1/ComfyUI_PhiCaption" + ], + "install_type": "git-clone", + "description": "In addition to achieving conventional single-image, single-round reverse engineering, it can also achieve single-image multi-round and multi-image single-round reverse engineering. Moreover, the Phi model has a better understanding of prompts." + }, + { + "author": "nova-florealis", + "title": "comfyui-alien [REMOVED]", + "reference": "https://github.com/nova-florealis/comfyui-alien", + "files": [ + "https://github.com/nova-florealis/comfyui-alien" + ], + "install_type": "git-clone", + "description": "NODES: Text to Text (LLM), Text Output, Convert to Markdown, List Display (Debug)" + }, + { + "author": "PluMaZero", + "title": "ComfyUI-SpaceFlower [REMOVED]", + "reference": "https://github.com/PluMaZero/ComfyUI-SpaceFlower", + "files": [ + "https://github.com/PluMaZero/ComfyUI-SpaceFlower" + ], + "install_type": "git-clone", + "description": "Nodes: SpaceFlower_Prompt, SpaceFlower_HangulPrompt, ..." + }, + { + "author": "vahidzxc", + "title": "ComfyUI-My-Handy-Nodes [REMOVED]", + "reference": "https://github.com/vahidzxc/ComfyUI-My-Handy-Nodes", + "files": [ + "https://github.com/vahidzxc/ComfyUI-My-Handy-Nodes" + ], + "install_type": "git-clone", + "description": "NODES:VahCropImage" + }, + { + "author": "Samulebotin", + "title": "ComfyUI-FreeVC_wrapper [REMOVED]", + "reference": "https://github.com/Samulebotin/ComfyUI-FreeVC_wrapper", + "files": [ + "https://github.com/Samulebotin/ComfyUI-FreeVC_wrapper" + ], + "install_type": "git-clone", + "description": "A voice conversion extension node for ComfyUI based on FreeVC, enabling high-quality voice conversion capabilities within the ComfyUI framework." + }, + { + "author": "GoingAI1998", + "title": "ComfyUI Web Canvas Node [REMOVED]", + "reference": "https://github.com/GoingAI1998/Comfyui_imgcanvas", + "files": [ + "https://github.com/GoingAI1998/Comfyui_imgcanvas" + ], + "install_type": "git-clone", + "description": "ComfyUI_imgcanvas At present, I have not used the useful comfyui custom node about layer mixing, and I have written a comfyui runtime automatic pop-up window for layer editing node" + }, + { + "author": "807502278", + "title": "ComfyUI_TensorRT_Merge [REMOVED]", + "reference": "https://github.com/807502278/ComfyUI_TensorRT_Merge", + "files": [ + "https://github.com/807502278/ComfyUI_TensorRT_Merge" + ], + "install_type": "git-clone", + "description": "Non diffusion models supported by TensorRT, merged Comfyui plugin, added onnx automatic download and trt model conversion nodes." + }, + { + "author": "logtd", + "title": "ComfyUI-LTXTricks [DEPRECATED]", + "reference": "https://github.com/logtd/ComfyUI-LTXTricks", + "files": [ + "https://github.com/logtd/ComfyUI-LTXTricks" + ], + "install_type": "git-clone", + "description": "A set of nodes that provide additional controls for the LTX Video model" + }, + { + "author": "JichaoLiang", + "title": "Immortal_comfyUI [REMOVED]", + "reference": "https://github.com/JichaoLiang/Immortal_comfyUI", + "files": [ + "https://github.com/JichaoLiang/Immortal_comfyUI" + ], + "install_type": "git-clone", + "description": "NODES:ImNewNode, ImAppendNode, MergeNode, SetProperties, SaveToDirectory, batchNodes, redirectToNode, SetEvent, ..." + }, + { + "author": "Rvage0815", + "title": "ComfyUI-RvTools [REMOVED]", + "reference": "https://github.com/Rvage0815/ComfyUI-RvTools", + "files": [ + "https://github.com/Rvage0815/ComfyUI-RvTools" + ], + "install_type": "git-clone", + "description": "this node contains a lot of small little helpers like switches, passers and selectors that i use a lot to build my workflows." + }, + { + "author": "Rvage0815", + "title": "RvTComfyUI-RvTools_v2 [REMOVED]", + "reference": "https://github.com/Rvage0815/ComfyUI-RvTools_v2", + "files": [ + "https://github.com/Rvage0815/ComfyUI-RvTools_v2" + ], + "install_type": "git-clone", + "description": "this node contains a lot of small little helpers like switches, passers and selectors that i use a lot to build my workflows." + }, + { + "author": "scottmudge", + "title": "ComfyUI_BiscuitNodes [REMOVED]", + "reference": "https://github.com/scottmudge/ComfyUI_BiscuitNodes", + "files": [ + "https://github.com/scottmudge/ComfyUI_BiscuitNodes" + ], + "install_type": "git-clone", + "description": "Load Image From Path Using File Selector" + }, + { + "author": "thanhduong0213929", + "title": "ComfyUI-DeepUnlock [REMOVED]", + "reference": "https://github.com/thanhduong0213929/ComfyUI-DeepUnlock", + "files": [ + "https://github.com/thanhduong0213929/ComfyUI-DeepUnlock" + ], + "install_type": "git-clone", + "description": "DeepFuze is a state-of-the-art deep learning tool that seamlessly integrates with ComfyUI to revolutionize facial transformations, lipsyncing, video generation, voice cloning, face swapping, and lipsync translation. Leveraging advanced algorithms, DeepFuze enables users to combine audio and video with unparalleled realism, ensuring perfectly synchronized facial movements. This innovative solution is ideal for content creators, animators, developers, and anyone seeking to elevate their video editing projects with sophisticated AI-driven features." + }, + { + "author": "pathway8-sudo", + "title": "RMBG [REMOVED]", + "reference": "https://github.com/pathway8-sudo/RMBG", + "files": [ + "https://github.com/pathway8-sudo/RMBG" + ], + "install_type": "git-clone", + "description": "This repository provides a custom node for ComfyUI, leveraging the BriaRMBG model to remove backgrounds from images and output a transparent PNG." + }, + { + "author": "iris-Neko", + "title": "ComfyUI_ascii_art [REMOVED]", + "reference": "https://github.com/iris-Neko/ComfyUI_ascii_art", + "files": [ + "https://github.com/iris-Neko/ComfyUI_ascii_art" + ], + "install_type": "git-clone", + "description": "ComfyUI node for [a/ASCII art controlnet](https://civitai.com/models/986392)" + }, + { + "author": "apesplat", + "title": "ezXY scripts and nodes [NOT MAINTAINED]", + "id": "ezxy", + "reference": "https://github.com/GMapeSplat/ComfyUI_ezXY", + "files": [ + "https://github.com/GMapeSplat/ComfyUI_ezXY" + ], + "install_type": "git-clone", + "description": "Extensions/Patches: Enables linking float and integer inputs and ouputs. Values are automatically cast to the correct type and clamped to the correct range. Works with both builtin and custom nodes.[w/NOTE: This repo patches ComfyUI's validate_inputs and map_node_over_list functions while running. May break depending on your version of ComfyUI. Can be deactivated in config.yaml.]Nodes: A collection of nodes for facilitating the generation of XY plots. Capable of plotting changes over most primitive values.[w/Does not work with current version of Comfyui]" + }, + { + "author": "mie", + "title": "ComfyUI_JanusProCaption [REMOVED]", + "reference": "https://github.com/MieMieeeee/ComfyUI-JanusProCaption", + "files": [ + "https://github.com/MieMieeeee/ComfyUI-JanusProCaption" + ], + "install_type": "git-clone", + "description": "Describe image or create caption files using Janus Pro Model" + }, + { + "author": "Njbx", + "title": "ComfyUI-blockswap [REMOVED]", + "reference": "https://github.com/Njbx/ComfyUI-blockswap", + "files": [ + "https://github.com/Njbx/ComfyUI-blockswap" + ], + "install_type": "git-clone", + "description": "NODES: Block Swap" + }, + { + "author": "T8star1984", + "title": "comfyui-purgevram [REMOVED]", + "reference": "https://github.com/T8star1984/comfyui-purgevram", + "files": [ + "https://github.com/T8star1984/comfyui-purgevram" + ], + "install_type": "git-clone", + "description": "NODES:PurgeVRAM.\nCan be added after any node to clean up vram and memory" + }, + { + "author": "zmwv823", + "title": "ComfyUI-VideoDiffusion [REMOVED]", + "reference": "https://github.com/zmwv823/ComfyUI-VideoDiffusion", + "files": [ + "https://github.com/zmwv823/ComfyUI-VideoDiffusion" + ], + "install_type": "git-clone", + "description": "[a/LatentSync](https://github.com/bytedance/LatentSync) and [a/Sonic](https://github.com/jixiaozhong/Sonic). [w/Just for study purpose. It's not for directly use, u should know how to fix issues.]" + }, + { + "author": "NyaamZ", + "title": "Get Booru Tag ExtendeD [REMOVED]", + "reference": "https://github.com/NyaamZ/ComfyUI-GetBooruTag-ED", + "files": [ + "https://github.com/NyaamZ/ComfyUI-GetBooruTag-ED" + ], + "description": "Get tag from Booru site.", + "install_type": "git-clone" + }, + { + "author": "lingha", + "title": "comfyui_kj [REMOVED]", + "id": "comfyui_kj", + "reference": "https://github.com/XieChengYuan/comfyui_kj", + "files": [ + "https://github.com/XieChengYuan/comfyui_kj" + ], + "install_type": "git-clone", + "description": "comfyui_kj, A tool that can package workflows into projects and publish them to a WeChat Mini Program named Kaji, allowing charges to be collected from users." + }, + { + "author": "myAiLemon", + "title": "MagicGetPromptAutomatically [REMOVED]", + "reference": "https://github.com/myAiLemon/MagicGetPromptAutomatically", + "files": [ + "https://github.com/myAiLemon/MagicGetPromptAutomatically" + ], + "install_type": "git-clone", + "description": "A plug-in that can automatically generate pictures and save txt files in comfyui" + }, + { + "author": "ryanontheinside", + "title": "ComfyUI_ScavengerHunt [REMOVED]", + "reference": "https://github.com/ryanontheinside/ComfyUI_ScavengerHunt", + "files": [ + "https://github.com/ryanontheinside/ComfyUI_ScavengerHunt" + ], + "install_type": "git-clone", + "description": "NODES: Compare Image Similarity (ResNet), Compare Image Similarity (CLIP), Compare Image Types\nNOTE: The files in the repo are not organized." + }, + { + "author": "vpakarinen", + "title": "ComfyUI-GenerationTimer [REMOVED]", + "reference": "https://github.com/vpakarinen/ComfyUI-GenerationTimer", + "files": [ + "https://github.com/vpakarinen/ComfyUI-GenerationTimer" + ], + "install_type": "git-clone", + "description": "NODES: Generation Timer, Image Timer, Timer Display" + }, + { + "author": "RedRayz", + "title": "ComfyUI-Danbooru-To-WD [REMOVED]", + "id": "danbooru2wd", + "reference": "https://github.com/RedRayz/ComfyUI-Danbooru-To-WD", + "files": [ + "https://github.com/RedRayz/ComfyUI-Danbooru-To-WD" + ], + "install_type": "git-clone", + "description": "Converts booru tags to a format suitable for Waifu Diffusion(or Danbooru based models)." + }, + { + "author": "alexgenovese", + "title": "comfyui_CfgPlusPlus [REMOVED]", + "id": "cfgpp", + "reference": "https://gitea.com/NotEvilGirl/cfgpp", + "files": [ + "https://gitea.com/NotEvilGirl/cfgpp" + ], + "install_type": "git-clone", + "description": "CFG++ implemented according to [a/https://cfgpp-diffusion.github.io](https://cfgpp-diffusion.github.io). Basically modified DDIM sampler that makes sampling work at low CFG values (0 ~ 2). Read the CFG++ paper for more details" + }, + { + "author": "hosterosi", + "title": "ComfyUI OpenAI Node", + "reference": "https://github.com/hosterosi/ComfyUI_OpenAI [REMOVED]", + "files": [ + "https://github.com/hosterosi/ComfyUI_OpenAI" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI allows users to input multiline text and select a specific line by its number. The node processes the input and returns the selected line along with its index." + }, + { + "author": "Gourieff", + "title": "ReActor Node for ComfyUI [DISABLED]", + "id": "reactor", + "reference": "https://github.com/Gourieff/comfyui-reactor-node", + "files": [ + "https://github.com/Gourieff/comfyui-reactor-node" + ], + "install_type": "git-clone", + "description": "The Fast and Simple 'roop-like' Face Swap Extension Node for ComfyUI, based on ReActor (ex Roop-GE) SD-WebUI Face Swap Extension" + }, + { + "author": "prismwastaken", + "title": "prism-tools [REMOVED]", + "reference": "https://github.com/prismwastaken/prism-comfyui-tools", + "files": [ + "https://github.com/prismwastaken/prism-comfyui-tools" + ], + "install_type": "git-clone", + "description": "prism-tools" + }, + { + "author": "42lux", + "title": "ComfyUI-safety-checker [DEPRECATED]", + "reference": "https://github.com/42lux/ComfyUI-safety-checker", + "files": [ + "https://github.com/42lux/ComfyUI-safety-checker" + ], + "install_type": "git-clone", + "description": "A NSFW/Safety Checker Node for ComfyUI." + }, + { + "author": "riverolls", + "title": "ComfyUI-FJDH", + "reference": "https://github.com/riverolls/ComfyUI-FJDH [REMOVED]", + "files": [ + "https://github.com/riverolls/ComfyUI-FJDH" + ], + "install_type": "git-clone", + "description": "bbox tools, image tools, mask generators, point tools" + }, + { + "author": "jetchopper", + "title": "ComfyUI-GeneraNodes", + "id": "genera", + "reference": "https://github.com/evolox/ComfyUI-GeneraNodes [REMOVED]", + "files": [ + "https://github.com/evolox/ComfyUI-GeneraNodes" + ], + "install_type": "git-clone", + "description": "Genera custom nodes and extensions" + }, + { + "author": "Pos13", + "title": "Cyclist [DEPRECATED]", + "id": "cyclist", + "reference": "https://github.com/Pos13/comfyui-cyclist", + "files": [ + "https://github.com/Pos13/comfyui-cyclist" + ], + "install_type": "git-clone", + "description": "This extension provides tools to iterate generation results between runs. In general, it's for cycles." + }, + { + "author": "leiweiqiang", + "title": "ComfyUI-TRA", + "id": "tra", + "reference": "https://github.com/leiweiqiang/ComfyUI-TRA", + "files": [ + "https://github.com/leiweiqiang/ComfyUI-TRA" + ], + "install_type": "git-clone", + "description": "Nodes:TCL EbSynth, TCL Extract Frames (From File), TCL Extract Frames (From Video), TCL Combine Frames, TCL Save Video (From Frames)" + }, + { + "author": "ai-business-hql", + "title": "comfyUIAgent [REMOVED]", + "reference": "https://github.com/ai-business-hql/comfyUIAgent", + "files": [ + "https://github.com/ai-business-hql/comfyUIAgent" + ], + "install_type": "git-clone", + "description": "test" + }, + { + "author": "daqingliu", + "title": "ComfyUI-SaveImageOSS [REMOVED]", + "reference": "https://github.com/daqingliu/ComfyUI-SaveImageOSS", + "files": [ + "https://github.com/daqingliu/ComfyUI-SaveImageOSS" + ], + "install_type": "git-clone", + "description": "Save images directly to URL, e.g., OSS. Just input the url in the text box!" + }, + { + "author": "shinich39", + "title": "comfyui-textarea-keybindings [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-textarea-keybindings", + "files": [ + "https://github.com/shinich39/comfyui-textarea-keybindings" + ], + "install_type": "git-clone", + "description": "Add keybindings to textarea." + }, + { + "author": "shinich39", + "title": "comfyui-load-image-with-cmd [REMOVED]", + "reference": "https://github.com/shinich39/comfyui-load-image-with-cmd", + "files": [ + "https://github.com/shinich39/comfyui-load-image-with-cmd" + ], + "install_type": "git-clone", + "description": "Load image and partially workflow with javascript." + }, + { + "author": "neuratech-ai", + "title": "ComfyUI-MultiGPU [NOT MAINTAINED]", + "reference": "https://github.com/neuratech-ai/ComfyUI-MultiGPU", + "files": [ + "https://github.com/neuratech-ai/ComfyUI-MultiGPU" + ], + "install_type": "git-clone", + "description": "Experimental nodes for using multiple GPUs in a single ComfyUI workflow.\nThis extension adds new nodes for model loading that allow you to specify the GPU to use for each model. It monkey patches the memory management of ComfyUI in a hacky way and is neither a comprehensive solution nor a well-tested one. Use at your own risk.\nNote that this does not add parallelism. The workflow steps are still executed sequentially just on different GPUs. Any potential speedup comes from not having to constantly load and unload models from VRAM." + }, + { + "author": "jefferyharrell", + "title": "ComfyUI-JHXMP [REMOVED]", + "reference": "https://github.com/jefferyharrell/ComfyUI-JHXMP", + "files": [ + "https://github.com/jefferyharrell/ComfyUI-JHXMP" + ], + "install_type": "git-clone", + "description": "NODES: Save Image With XMP Metadata" + }, + { + "author": "viperyl", + "title": "ComfyUI-BiRefNet [NOT MAINTAINED]", + "id": "comfyui-birefnet", + "reference": "https://github.com/viperyl/ComfyUI-BiRefNet", + "files": [ + "https://github.com/viperyl/ComfyUI-BiRefNet" + ], + "install_type": "git-clone", + "description": "Bilateral Reference Network achieves SOTA result in multi Salient Object Segmentation dataset, this repo pack BiRefNet as ComfyUI nodes, and make this SOTA model easier use for everyone." + }, + { + "author": "asagi4", + "title": "ComfyUI prompt control (LEGACY VERSION)", + "reference": "https://github.com/asagi4/comfyui-prompt-control-legacy", + "files": [ + "https://github.com/asagi4/comfyui-prompt-control-legacy" + ], + "install_type": "git-clone", + "description": "WARNING: These nodes exist only to reproduce old workflows. They are unmaintained See https://github.com/asagi4/comfyui-prompt-control for the revised, current version of prompt control." + }, + { + "author": "doomy23", + "title": "ComfyUI-D00MYsNodes [REMOVED]", + "reference": "https://github.com/doomy23/ComfyUI-D00MYsNodes", + "files": [ + "https://github.com/doomy23/ComfyUI-D00MYsNodes" + ], + "install_type": "git-clone", + "description": "Nodes: Images_Converter, Show_Text, Strings_From_List, Save_Text, Random_Images, Load_Images_From_Paths, JSPaint." + }, + { + "author": "kadirnar", + "title": "comfyui_hub [REMOVED]", + "reference": "https://github.com/kadirnar/comfyui_hub", + "files": [ + "https://github.com/kadirnar/comfyui_hub" + ], + "install_type": "git-clone", + "description": "A collection of nodes randomly selected and gathered, related to noise. NOTE: SD-Advanced-Noise, noise_latent_perlinpinpin, comfy-plasma" + }, + { + "author": "SaltAI", + "title": "SaltAI_AudioViz [REMOVED]", + "id": "saltai-audioviz", + "reference": "https://github.com/get-salt-AI/SaltAI_AudioViz", + "files": [ + "https://github.com/get-salt-AI/SaltAI_AudioViz" + ], + "install_type": "git-clone", + "description": "SaltAI AudioViz contains ComfyUI nodes for generating complex audio reactive visualizations" + }, + { + "author": "SaltAI", + "title": "SaltAI-Open-Resources [REMOVED]", + "id": "saltai-open-resource", + "reference": "https://github.com/get-salt-AI/SaltAI", + "pip": ["numba"], + "files": [ + "https://github.com/get-salt-AI/SaltAI" + ], + "install_type": "git-clone", + "description": "This repository is a collection of open-source nodes and workflows for ComfyUI, a dev tool that allows users to create node-based workflows often powered by various AI models to do pretty much anything.\nOur mission is to seamlessly connect people and organizations with the world’s foremost AI innovations, anywhere, anytime. Our vision is to foster a flourishing AI ecosystem where the world’s best developers can build and share their work, thereby redefining how software is made, pushing innovation forward, and ensuring as many people as possible can benefit from the positive promise of AI technologies.\nWe believe that ComfyUI is a powerful tool that can help us achieve our mission and vision, by enabling anyone to explore the possibilities and limitations of AI models in a visual and interactive way, without coding if desired.\nWe hope that by sharing our nodes and workflows, we can inspire and empower more people to create amazing AI-powered content with ComfyUI." + }, + { + "author": "SaltAI", + "title": "SaltAI_Language_Toolkit [REMOVED]", + "id": "saltai_language_toolkit", + "reference": "https://github.com/get-salt-AI/SaltAI_Language_Toolkit", + "files": [ + "https://github.com/get-salt-AI/SaltAI_Language_Toolkit" + ], + "install_type": "git-clone", + "description": "The project integrates the Retrieval Augmented Generation (RAG) tool [a/Llama-Index](https://www.llamaindex.ai/), [a/Microsoft's AutoGen](https://microsoft.github.io/autogen/), and [a/LlaVA-Next](https://github.com/LLaVA-VL/LLaVA-NeXT) with ComfyUI's adaptable node interface, enhancing the functionality and user experience of the platform." + }, + { + "author": "zmwv823", + "title": "ComfyUI-Sana [DEPRECATED]", + "reference": "https://github.com/zmwv823/ComfyUI-Sana", + "files": [ + "https://github.com/zmwv823/ComfyUI-Sana" + ], + "install_type": "git-clone", + "description": "Unofficial custom-node for [a/SANA: Efficient High-Resolution Image Synthesis with Linear Diffusion Transformer](https://github.com/NVlabs/Sana)\n[w/A init node with lots of bugs, do not try unless interested.]" + }, + { + "author": "ACE-innovate", + "title": "seg-node [REMOVED]", + "reference": "https://github.com/ACE-innovate/seg-node", + "files": [ + "https://github.com/ACE-innovate/seg-node" + ], + "install_type": "git-clone", + "description": "hf cloth seg custom node for comfyui\nNOTE: The files in the repo are not organized." + }, + { + "author": "zefu-lu", + "title": "ComfyUI_InstantX_SD35_Large_IPAdapter [REMOVED]", + "id": "comfyui-instantx-sd3-5-large-ipadapter", + "reference": "https://github.com/zefu-lu/ComfyUI-InstantX-SD3_5-Large-IPAdapter", + "files": [ + "https://github.com/zefu-lu/ComfyUI-InstantX-SD3_5-Large-IPAdapter" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI node for using InstantX SD3.5-Large IPAdapter" + }, + { + "author": "HentaiGirlfriendDotCom", + "title": "comfyui-highlight-connections [REMOVED]", + "reference": "https://github.com/HentaiGirlfriendDotCom/comfyui-highlight-connections", + "files": [ + "https://github.com/HentaiGirlfriendDotCom/comfyui-highlight-connections" + ], + "install_type": "git-clone", + "description": "A node that can be dropped into a group. When a node is then clicked within that group, all nodes and connections in that group get greyed out and the connections from the clicked node go bright red." + }, + { + "author": "huangyangke", + "title": "ComfyUI-Kolors-IpadapterFaceId [DEPRECATED]", + "reference": "https://github.com/huangyangke/ComfyUI-Kolors-IpadapterFaceId", + "files": [ + "https://github.com/huangyangke/ComfyUI-Kolors-IpadapterFaceId" + ], + "install_type": "git-clone", + "description": "NODES:kolors_ipadapter_faceid\nNOTE: The files in the repo are not organized." + }, + { + "author": "zmwv823", + "title": "ComfyUI_Ctrlora [DEPRECATED]", + "reference": "https://github.com/zmwv823/ComfyUI_Ctrlora", + "files": [ + "https://github.com/zmwv823/ComfyUI_Ctrlora" + ], + "install_type": "git-clone", + "description": "Unofficial custom_node for [a/xyfJASON/ctrlora](https://github.com/xyfJASON/ctrlora)." + }, + { + "author": "Fannovel16", + "title": "ComfyUI Loopchain [DEPRECATED]", + "id": "loopchain", + "reference": "https://github.com/Fannovel16/ComfyUI-Loopchain", + "files": [ + "https://github.com/Fannovel16/ComfyUI-Loopchain" + ], + "install_type": "git-clone", + "description": "A collection of nodes which can be useful for animation in ComfyUI. The main focus of this extension is implementing a mechanism called loopchain. A loopchain in this case is the chain of nodes only executed repeatly in the workflow. If a node chain contains a loop node from this extension, it will become a loop chain." + }, + { + "author": "DonBaronFactory", + "title": "ComfyUI-Cre8it-Nodes [DEPRECATED]", + "reference": "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes", + "files": [ + "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:CRE8IT Serial Prompter, CRE8IT Apply Serial Prompter, CRE8IT Image Sizer. A few simple nodes to facilitate working wiht ComfyUI Workflows" + }, + { + "author": "thecooltechguy", + "title": "ComfyUI-ComfyRun [DEPRECATED/UNSAFE]", + "reference": "https://github.com/thecooltechguy/ComfyUI-ComfyRun", + "files": [ + "https://github.com/thecooltechguy/ComfyUI-ComfyRun" + ], + "install_type": "git-clone", + "description": "The easiest way to run & share any ComfyUI workflow [a/https://comfyrun.com](https://comfyrun.com)\nNOTE: Vulnerability discovered. Not being managed." + }, + { + "author": "Cardoso-topdev", + "title": "comfyui_meshanything_v1 [REMOVED]", + "reference": "https://github.com/Cardoso-topdev/comfyui_meshanything_v1", + "files": [ + "https://github.com/Cardoso-topdev/comfyui_meshanything_v1" + ], + "install_type": "git-clone", + "description": "MeshAnything V2: Artist-Created Mesh Generation With Adjacent Mesh Tokenization" + }, + { + "author": "palant", + "title": "Extended Save Image for ComfyUI [DEPRECATED]", + "reference": "https://github.com/palant/extended-saveimage-comfyui", + "files": [ + "https://github.com/palant/extended-saveimage-comfyui" + ], + "install_type": "git-clone", + "description": "This custom node is largely identical to the usual Save Image but allows saving images also in JPEG and WEBP formats, the latter with both lossless and lossy compression. Metadata is embedded in the images as usual, and the resulting images can be used to load a workflow." + }, + { + "author": "1038lab", + "title": "ComfyUI-GPT2P [REMOVED]", + "id": "gpt2p", + "reference": "https://github.com/1038lab/ComfyUI-GPT2P", + "files": [ + "https://github.com/1038lab/ComfyUI-GPT2P" + ], + "install_type": "git-clone", + "description": "ComfyUI Node - Hugging Face repositories GTP2 Prompt" + }, + { + "author": "yushan777", + "title": "Y7 Nodes for ComfyUI [REMOVED]", + "id": "y7nodes", + "reference": "https://github.com/yushan777/ComfyUI-Y7Nodes", + "files": [ + "https://github.com/yushan777/ComfyUI-Y7Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Count_Tokens_(Y7)" + }, + { + "author": "city96", + "title": "SD-Advanced-Noise [DEPRECATED]", + "id": "adv-noise", + "reference": "https://github.com/city96/SD-Advanced-Noise", + "files": [ + "https://github.com/city96/SD-Advanced-Noise" + ], + "install_type": "git-clone", + "description": "Nodes: LatentGaussianNoise, MathEncode. An experimental custom node that generates latent noise directly by utilizing the linear characteristics of the latent space." + }, + { + "author": "shockz0rz", + "title": "InterpolateEverything [DEPRECATED]", + "id": "interpolate-everything", + "reference": "https://github.com/shockz0rz/ComfyUI_InterpolateEverything", + "files": [ + "https://github.com/shockz0rz/ComfyUI_InterpolateEverything" + ], + "install_type": "git-clone", + "description": "Nodes: Interpolate Poses, Interpolate Lineart, ... Custom nodes for interpolating between, well, everything in the Stable Diffusion ComfyUI." + }, + { + "author": "svdC1", + "title": "LoRa Dataset Tools [REMOVED]", + "reference": "https://github.com/svdC1/comfy-ui-lora-dataset-tools", + "files": [ + "https://github.com/svdC1/comfy-ui-lora-dataset-tools" + ], + "install_type": "git-clone", + "description": "NODES:Directory Loader, Filter Images Without Faces, Detect Faces and Draw Detection Box" + }, + { + "author": "MiddleKD", + "title": "ComfyUI-default-workflow-setter [REMOVED]", + "reference": "https://github.com/MiddleKD/ComfyUI-default-workflow-setter", + "files": [ + "https://github.com/MiddleKD/ComfyUI-default-workflow-setter" + ], + "install_type": "git-clone", + "description": "Default workflow setter" + }, + { + "author": "Firetheft", + "title": "ComfyUI-Flux-Prompt-Tools [REMOVED]", + "reference": "https://github.com/Firetheft/ComfyUI-Flux-Prompt-Tools", + "files": [ + "https://github.com/Firetheft/ComfyUI-Flux-Prompt-Tools" + ], + "install_type": "git-clone", + "description": "NODES:Flux Prompt Enhance, Flux Prompt Gemini Flash, Flux Prompt Generator, MiniCPM V2.6 Int4" + }, + { + "author": "jtydhr88", + "title": "ComfyUI Unique3D [DEPRECATED]", + "id": "unique3d", + "reference": "https://github.com/jtydhr88/ComfyUI-Unique3D", + "files": [ + "https://github.com/jtydhr88/ComfyUI-Unique3D" + ], + "install_type": "git-clone", + "description": "ComfyUI Unique3D is custom nodes that running AiuniAI/Unique3D into ComfyUI[w/Please follow readme to install with ComfyUI embedded python.]" + }, + { + "author": "mpiquero7164", + "title": "SaveImgPrompt [DEPRECATED]", + "id": "save-imgprompt", + "reference": "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt", + "files": [ + "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt" + ], + "install_type": "git-clone", + "description": "Save a png or jpeg and option to save prompt/workflow in a text or json file for each image in Comfy + Workflow loading." + }, + { + "author": "guoyk93", + "title": "y.k.'s ComfyUI node suite [DEPRECATED]", + "id": "yks", + "reference": "https://github.com/yankeguo-deprecated/yk-node-suite-comfyui", + "files": [ + "https://github.com/yankeguo-deprecated/yk-node-suite-comfyui" + ], + "install_type": "git-clone", + "description": "Nodes: YKImagePadForOutpaint, YKMaskToImage" + }, + { + "author": "adityathiru", + "title": "ComfyUI LLMs [REMOVED]", + "reference": "https://github.com/adityathiru/ComfyUI-LLMs", + "files": [ + "https://github.com/adityathiru/ComfyUI-LLMs" + ], + "install_type": "git-clone", + "description": "Goal: To enable folks to rapidly build complex workflows with LLMs\nNOTE:☠️ This is experimental and not recommended to use in a production environment (yet!)" + }, + { + "author": "DannyStone1999", + "title": "ComfyUI-Depth2Mask [REMOVED]", + "reference": "https://github.com/DannyStone1999/ComfyUI-Depth2Mask", + "files": [ + "https://github.com/DannyStone1999/ComfyUI-Depth2Mask/raw/main/Depth2Mask.py" + ], + "install_type": "copy", + "description": "Nodes:Depth2Mask" + }, + { + "author": "syaofox", + "title": "ComfyUI_FoxTools [REMOVED]", + "reference": "https://github.com/syaofox/ComfyUI_FoxTools", + "files": [ + "https://github.com/syaofox/ComfyUI_FoxTools" + ], + "install_type": "git-clone", + "description": "Nodes:BatchImageFromList, Load Face Occlusion Model, Create Face Mask, Simple FaceAlign, Cacul FaceAlign, Gen Blurbord, Face Align, Face Rotate, ImageAdd, LoadImageList, SaveImage Plus, RegTextFind" + }, + { + "author": "AIFSH", + "title": "SeedVC-ComfyUI [REMOVED]", + "reference": "https://github.com/AIFSH/SeedVC-ComfyUI", + "files": [ + "https://github.com/AIFSH/SeedVC-ComfyUI" + ], + "install_type": "git-clone", + "description": "a custom node for [a/seed-vc](https://github.com/Plachtaa/seed-vc)" + }, + { + "author": "jazhang00", + "title": "ComfyUI Node for Slicedit [REMOVED]", + "reference": "https://github.com/jazhang00/ComfyUI-Slicedit", + "files": [ + "https://github.com/jazhang00/ComfyUI-Slicedit" + ], + "install_type": "git-clone", + "description": "Slicedit main page: [a/https://matankleiner.github.io/slicedit/](https://matankleiner.github.io/slicedit/). Use Slicedit with ComfyUI." + }, + { + "author": "rklaffehn", + "title": "rk-comfy-nodes [REMOVED]", + "id": "rknodes", + "reference": "https://github.com/rklaffehn/rk-comfy-nodes", + "files": [ + "https://github.com/rklaffehn/rk-comfy-nodes" + ], + "install_type": "git-clone", + "description": "Nodes: RK_CivitAIMetaChecker, RK_CivitAIAddHashes." + }, + { + "author": "Extraltodeus", + "title": "CLIP-Token-Injection [REMOVED]", + "reference": "https://github.com/Extraltodeus/CLIP-Token-Injection", + "files": [ + "https://github.com/Extraltodeus/CLIP-Token-Injection" + ], + "install_type": "git-clone", + "description": "These nodes are to edit the text vectors of CLIP models, so to customize how the prompts will be interpreted. You could see it as either customisation, 'one token prompt' up to some limitation and a way to mess with how the text will be interpreted. The edited CLIP can then be saved, or as well the edited tokens themselves. The shared example weights does not contain any image-knowledge but the text vector of the words affected." + }, + { + "author": "openart", + "title": "openart-comfyui-deploy [REMOVED]", + "id": "openart-comfyui-deploy", + "reference": "https://github.com/kulsisme/openart-comfyui-deploy", + "files": [ + "https://github.com/kulsisme/openart-comfyui-deploy" + ], + "install_type": "git-clone", + "description": "NODES: External Boolean (ComfyUI Deploy), External Checkpoint (ComfyUI Deploy), External Image (ComfyUI Deploy), External Video (ComfyUI Deploy x VHS), OpenArt Text, Image Websocket Output (ComfyDeploy), ..." + }, + { + "author": "mittimi", + "title": "ComfyUI_mittimiLoadPreset [DEPRECATED]", + "id": "comfyui-mittimi-load-preset", + "reference": "https://github.com/mittimi/ComfyUI_mittimiLoadPreset", + "files": [ + "https://github.com/mittimi/ComfyUI_mittimiLoadPreset" + ], + "install_type": "git-clone", + "description": "The system selects and loads preset." + }, + { + "author": "jinljin", + "title": "ComfyUI-Talking-Head [REMOVED]", + "reference": "https://github.com/jinljin/ComfyUI-ElevenlabsAndDID-Combine", + "files": [ + "https://github.com/jinljin/ComfyUI-ElevenlabsAndDID-Combine" + ], + "install_type": "git-clone", + "description": "ComfyUI-Talking-Head" + }, + { + "author": "jh-leon-kim", + "title": "ComfyUI-JHK-utils [REMOVED]", + "id": "jhk", + "reference": "https://github.com/jh-leon-kim/ComfyUI-JHK-utils", + "files": [ + "https://github.com/jh-leon-kim/ComfyUI-JHK-utils" + ], + "install_type": "git-clone", + "description": "Nodes:JHK_Utils_LoadEmbed, JHK_Utils_string_merge, JHK_Utils_ImageRemoveBackground" + }, + { + "author": "ilovejohnwhite", + "title": "TatToolkit [REMOVED]", + "reference": "https://github.com/ilovejohnwhite/UncleBillyGoncho", + "files": [ + "https://github.com/ilovejohnwhite/UncleBillyGoncho" + ], + "install_type": "git-clone", + "description": "Nodes:UWU TTK Preprocessor, Pixel Perfect Resolution, Generation Resolution From Image, Generation Resolution From Latent, Enchance And Resize Hint Images, ..." + }, + { + "author": "hzchet", + "title": "ComfyUI_QueueGeneration [REMOVED]", + "reference": "https://github.com/hzchet/ComfyUI_QueueGeneration", + "files": [ + "https://github.com/hzchet/ComfyUI_QueueGeneration" + ], + "install_type": "git-clone", + "description": "NODES:Queue Img2Vid Generation" + }, + { + "author": "ader47", + "title": "ComfyUI-MeshHamer [REMOVED]", + "reference": "https://github.com/ader47/comfyui_meshhamer", + "files": [ + "https://github.com/ader47/comfyui_meshhamer" + ], + "install_type": "git-clone", + "description": "Nodes:MeshHamer Hand Refiner. See also: [a/HaMeR: Hand Mesh Recovery](https://github.com/geopavlakos/hamer/tree/main)" + }, + { + "author": "SEkINVR", + "title": "ComfyUI-Animator", + "reference": "https://github.com/SEkINVR/ComfyUI-Animator [REMOVED]", + "files": [ + "https://github.com/SEkINVR/ComfyUI-Animator" + ], + "install_type": "git-clone", + "description": "This custom node for ComfyUI provides full-body animation capabilities, including facial rigging, various lighting styles, and green screen output." + }, + { + "author": "ZHO-ZHO-ZHO", + "title": "ComfyUI-AnyText [NOT MAINTAINED]", + "reference": "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AnyText", + "files": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-AnyText" + ], + "install_type": "git-clone", + "description": "Unofficial implementation of [a/AnyText](https://github.com/tyxsspa/AnyText/tree/825bcc54687206b15bd7e28ba1a8b095989d58e3) for ComfyUI(EXP)" + }, + { + "author": "shinich39", + "title": "comfyui-pkg39 [DEPRECATED]", + "reference": "https://github.com/shinich39/comfyui-pkg39", + "files": [ + "https://github.com/shinich39/comfyui-pkg39" + ], + "install_type": "git-clone", + "description": "This package has created for generate image from generated image and embedded workflow." + }, + { + "author": "dnl13", + "title": "ComfyUI-dnl13-seg [DEPRECATED]", + "reference": "https://github.com/dnl13/ComfyUI-dnl13-seg", + "files": [ + "https://github.com/dnl13/ComfyUI-dnl13-seg" + ], + "install_type": "git-clone", + "description": "After discovering @storyicon implementation here of Segment Anything, I realized its potential as a powerful tool for ComfyUI if implemented correctly. I delved into the SAM and Dino models. The following is my own adaptation of sam_hq for ComfyUI." + }, + { + "author": "1038lab", + "title": "ComfyUI-latentSizeSelector [REMOVED]", + "id": "ComfyUI-latentSizeSelector", + "reference": "https://github.com/1038lab/ComfyUI_LatentSizeSelector", + "files": [ + "https://github.com/1038lab/ComfyUI_LatentSizeSelector" + ], + "install_type": "git-clone", + "description": "You'll get a new node Latent Size Selector, you can pick the x and y sizes from a list." + }, + { + "author": "hy134300", + "title": "ComfyUI-PhotoMaker-V2 [REMOVED]", + "reference": "https://github.com/hy134300/ComfyUI-PhotoMaker-V2", + "files": [ + "https://github.com/hy134300/ComfyUI-PhotoMaker-V2" + ], + "install_type": "git-clone", + "description": "Nodes for PhotoMaker-V2" + }, + { + "author": "neverbiasu", + "title": "ComfyUI ImageCaptioner [REMOVED]", + "reference": "https://github.com/neverbiasu/ComfyUI-ImageCaptioner", + "files": [ + "https://github.com/neverbiasu/ComfyUI-ImageCaptioner" + ], + "install_type": "git-clone", + "description": "A ComfyUI extension for generating captions for your images. Runs on your own system, no external services used, no filter." + }, + { + "author": "mingqizhang", + "title": "ComfyUI_InSPyResNet_zmq [REMOVED]", + "id": "inspy", + "reference": "https://github.com/mingqizhang/ComfyUI_InSPyResNet_zmq", + "files": [ + "https://github.com/mingqizhang/ComfyUI_InSPyResNet_zmq" + ], + "install_type": "git-clone", + "description": "Nodes:INSPY removebg ModelLoader, INSPY RMBG" + }, + { + "author": "mingqizhang", + "title": "ComfyUI_AEMatter_zmq [REMOVED]", + "id": "aematter", + "reference": "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq", + "files": [ + "https://github.com/mingqizhang/ComfyUI_AEMatter_zmq" + ], + "install_type": "git-clone", + "description": "Nodes:AEMatter_ModelLoader, Create_Trimap, AEMatter_Apply, Mask_Transfor, Replace_Background, Gaussian_Filter, Guide_Filter, Improved_Aplha_Composite" + }, + { + "author": "bradsec", + "title": "ComfyUI_StringTools [REMOVED]", + "id": "stringtools", + "reference": "https://github.com/bradsec/ComfyUI_StringTools", + "files": [ + "https://github.com/bradsec/ComfyUI_StringTools" + ], + "install_type": "git-clone", + "description": "Some simple string tools to modify text and strings in ComfyUI." + }, + { + "author": "Millyarde", + "title": "Pomfy - Photoshop and ComfyUI 2-way sync [REMOVED]", + "reference": "https://github.com/Millyarde/Pomfy", + "files": [ + "https://github.com/Millyarde/Pomfy" + ], + "install_type": "git-clone", + "description": "Photoshop custom nodes inside of ComfyUi, send and get data via Photoshop UXP plugin for cross platform support" + }, + { + "author": "turkyden", + "title": "ComfyUI-Sticker [REMOVED]", + "reference": "https://github.com/turkyden/ComfyUI-Sticker", + "files": [ + "https://github.com/turkyden/ComfyUI-Sticker" + ], + "install_type": "git-clone", + "description": "image to sticker" + }, + { + "author": "turkyden", + "title": "ComfyUI-Comic [REMOVED]", + "id": "comic", + "reference": "https://github.com/turkyden/ComfyUI-Comic", + "files": [ + "https://github.com/turkyden/ComfyUI-Comic" + ], + "install_type": "git-clone", + "description": "a comfyui plugin for image to comic" + }, + { + "author": "turkyden", + "title": "ComfyUI-Avatar [REMOVED]", + "id": "avatar", + "reference": "https://github.com/turkyden/ComfyUI-Avatar", + "files": [ + "https://github.com/turkyden/ComfyUI-Avatar" + ], + "install_type": "git-clone", + "description": "a comfyui plugin for image to avatar" + }, + { + "author": "bvhari", + "title": "LatentToRGB [DEPRECATED]", + "id": "latent2rgb", + "reference": "https://github.com/bvhari/ComfyUI_LatentToRGB", + "files": [ + "https://github.com/bvhari/ComfyUI_LatentToRGB" + ], + "install_type": "git-clone", + "description": "ComfyUI custom node to convert latent to RGB.\nNOTE:This repo has been archived because ComfyUI natively has similar functionality now" + }, + { + "author": "Kaharos94", + "title": "ComfyUI-Saveaswebp [DEPRECATED]", + "id": "save-webp", + "reference": "https://github.com/Kaharos94/ComfyUI-Saveaswebp", + "files": [ + "https://github.com/Kaharos94/ComfyUI-Saveaswebp" + ], + "install_type": "git-clone", + "description": "Save a picture as Webp file in Comfy + Workflow loading" + }, + { + "author": "udi0510", + "title": "comfyui-slicer [REMOVED]", + "id": "slicer", + "reference": "https://github.com/udi0510/comfyui-slicer", + "files": [ + "https://github.com/udi0510/comfyui-slicer" + ], + "install_type": "git-clone", + "description": "Nodes:SlicerNode" + }, + { + "author": "logtd", + "title": "ComfyUI-FLATTEN [REMOVED]", + "id": "flatten", + "reference": "https://github.com/logtd/ComfyUI-FlattenFlow", + "files": [ + "https://github.com/logtd/ComfyUI-FlattenFlow" + ], + "install_type": "git-clone", + "description": "An alternate trajectory processor for ComfyUI-FLATTEN\nNOTE:When using this trajectory type FLATTEN will use roughly 1/4 VRAM and be ~20% faster at the cost of some consistency (especially when injection_steps are low)." + }, + { + "author": "MackinationsAi", + "title": "ComfyUi_Stuctured-Outputs [REMOVED]", + "id": "struct-output", + "reference": "https://github.com/MackinationsAi/ComfyUi_Stuctured-Outputs", + "files": [ + "https://github.com/MackinationsAi/ComfyUi_Stuctured-Outputs" + ], + "install_type": "git-clone", + "description": "This repository contains a custom node for ComfyUI that allows users to save generative image outputs with custom filenames and folder structures. The filenames are padded to four digits, and the positive and negative prompts are embedded in the image metadata." + }, + { + "author": "laksjdjf", + "title": "attention-couple-ComfyUI [DEPRECATED]", + "id": "attention-couple", + "reference": "https://github.com/laksjdjf/attention-couple-ComfyUI", + "files": [ + "https://github.com/laksjdjf/attention-couple-ComfyUI" + ], + "install_type": "git-clone", + "description": "Nodes:Attention couple. This is a custom node that manipulates region-specific prompts. While vanilla ComfyUI employs an area specification method based on latent couples, this node divides regions using attention layers within UNet.\nNOTE: This has been integrated with cgem156-ComfyUI." + }, + { + "author": "phineas-pta", + "title": "comfy-trt-test [DEPRECATED]", + "reference": "https://github.com/phineas-pta/comfy-trt-test", + "files": [ + "https://github.com/phineas-pta/comfy-trt-test" + ], + "install_type": "git-clone", + "description": "Test project for ComfyUI TensorRT Support.\nNOT WORKING YET.\nnot automatic yet, do not use ComfyUI-Manager to install !!!.\nnot beginner-friendly yet, still intended to technical users\nNOTE: The reason for registration in the Manager is for guidance, and for detailed installation instructions, please visit the repository.\nNOTE: Use 'TensorRT Node for ComfyUI' instead of this." + }, + { + "author": "dezi-ai", + "title": "ComfyUI Animate LCM [NOT MAINTAINED]", + "reference": "https://github.com/dezi-ai/ComfyUI-AnimateLCM", + "files": [ + "https://github.com/dezi-ai/ComfyUI-AnimateLCM" + ], + "install_type": "git-clone", + "description": "ComfyUI implementation for [a/AnimateLCM](https://animatelcm.github.io/) [[a/paper](https://arxiv.org/abs/2402.00769)].\b[w/This extension includes a large number of nodes imported from the existing custom nodes, increasing the likelihood of conflicts.]" + }, + { + "author": "christian-byrne", + "title": "elimination-nodes [REMOVED]", + "reference": "https://github.com/christian-byrne/elimination-nodes", + "files": [ + "https://github.com/christian-byrne/elimination-nodes" + ], + "install_type": "git-clone", + "description": "Nodes:Paste Cutout on Base Image" + }, + { + "author": "Levy1417", + "title": "Universal-Data-Processing-Kit [UNSAFE] [REMOVED]", + "reference": "https://github.com/Levy1417/Universal-Data-Processing-Kit", + "files": [ + "https://github.com/Levy1417/Universal-Data-Processing-Kit" + ], + "install_type": "git-clone", + "description": "Nodes:DPK - Any Eval, DPK - Extract Array, DPK - Run External Program, DPK - Any Literals, DPK - Set Node States, DPK - Realtime Text Preview, DPK - Dynamic Action, DPK - Object To Json, DPK - Json To Object\n[w/This extension includes the ability to execute arbitrary code and programs.]" + }, + { + "author": "liusida", + "title": "ComfyUI-Sida-Remove-Image [UNSAFE] [REMOVED]", + "reference": "https://github.com/liusida/ComfyUI-Sida-Remove-Image", + "files": [ + "https://github.com/liusida/ComfyUI-Sida-Remove-Image" + ], + "install_type": "git-clone", + "description": "Nodes: LoadImageWithPrivacy, RemoveImage.[w/This extension is not secure because it provides the capability to delete files from arbitrary paths.]" + }, + { + "author": "88IO", + "title": "ComfyUI Image Reordering Plugins [REMOVED]", + "reference": "https://github.com/88IO/ComfyUI-ImageReorder", + "files": [ + "https://github.com/88IO/ComfyUI-ImageReorder" + ], + "install_type": "git-clone", + "description": "A custom node reorder multiple image frames based on indexes or curves." + }, + { + "author": "jtydhr88", + "title": "ComfyUI-InstantMesh [DEPRECATED]", + "id": "instant-mesh", + "reference": "https://github.com/jtydhr88/ComfyUI-InstantMesh", + "files": [ + "https://github.com/jtydhr88/ComfyUI-InstantMesh" + ], + "install_type": "git-clone", + "description": "ComfyUI InstantMesh is custom nodes that running TencentARC/InstantMesh into ComfyUI, this extension depends on ComfyUI-3D-Pack. Please refer to Readme carefully to install.\nNOTE: This repo is archived due to ComfyUI-3D-Pack supports InstantMesh, please check 3D-Pack directly if you need it" + }, + { + "author": "biegert", + "title": "CLIPSeg [NOT MAINTAINED]", + "id": "clipseg", + "reference": "https://github.com/biegert/ComfyUI-CLIPSeg", + "files": [ + "https://github.com/biegert/ComfyUI-CLIPSeg/raw/main/custom_nodes/clipseg.py" + ], + "install_type": "copy", + "description": "The CLIPSeg node generates a binary mask for a given input image and text prompt." + }, + { + "author": "tankucc1no", + "title": "ComfyUI-Dragdiffusion [REMOVED]", + "id": "dragdiffusion", + "reference": "https://github.com/tankucc1no/ComfyUI-Dragdiffusion", + "files": [ + "https://github.com/tankucc1no/ComfyUI-Dragdiffusion" + ], + "install_type": "git-clone", + "description": "Implementation of [a/Dragdiffusion](https://github.com/Yujun-Shi/DragDiffusion) in ComfyUI." + }, + { + "author": "wibur0620", + "title": "ComfyUI Ollama (wibur) [REMOVED]", + "id": "ollama-wibur", + "reference": "https://github.com/wibur0620/comfyui-ollama-wibur", + "files": [ + "https://github.com/wibur0620/comfyui-ollama-wibur" + ], + "install_type": "git-clone", + "description": "Custom ComfyUI Nodes for interacting with [a/Ollama](https://ollama.com/) using the ollama python client.\nIntegrate the power of LLMs into ComfyUI workflows easily or just experiment with GPT.\nNOTE: To use this properly, you would need a running Ollama server reachable from the host that is running ComfyUI." + }, + { + "author": "IKHOR", + "title": "ikhor-nodes [REMOVED]", + "reference": "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes", + "files": [ + "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes" + ], + "install_type": "git-clone", + "description": "Nodes:LoadFromS3, LoadBatchFromS3, SaveToS3, SaveBatchToS3" + }, + { + "author": "kijai", + "title": "ComfyUI wrapper nodes for IC-light [DEPRECATED]", + "reference": "https://github.com/kijai/ComfyUI-IC-Light-Wrapper", + "files": [ + "https://github.com/kijai/ComfyUI-IC-Light-Wrapper" + ], + "install_type": "git-clone", + "description": "Stopped. Original repo: [a/https://github.com/lllyasviel/IC-Light](https://github.com/lllyasviel/IC-Light)" + }, + { + "author": "thedyze", + "title": "Save Image Extended for ComfyUI", + "reference": "https://github.com/thedyze/save-image-extended-comfyui", + "files": [ + "https://github.com/thedyze/save-image-extended-comfyui" + ], + "install_type": "git-clone", + "description": "Customize the information saved in file- and folder names. Use the values of sampler parameters as part of file or folder names. Save your positive & negative prompt as entries in a JSON (text) file, in each folder.\n[w/This custom node has not been maintained for a long time. Please use an alternative node from the default channel.]" + }, + { + "author": "ExponentialML", + "title": "ComfyUI_ELLA [DEPRECATED]", + "reference": "https://github.com/ExponentialML/ComfyUI_ELLA", + "files": [ + "https://github.com/ExponentialML/ComfyUI_ELLA" + ], + "install_type": "git-clone", + "description": "ComfyUI Implementaion of ELLA: Equip Diffusion Models with LLM for Enhanced Semantic Alignment.[w/Officially implemented here: [a/https://github.com/TencentQQGYLab/ComfyUI-ELLA](https://github.com/TencentQQGYLab/ComfyUI-ELLA)]" + }, + { + "author": "shinich39", + "title": "comfyui-text-pipe-39 [DEPRECATED]", + "reference": "https://github.com/shinich39/comfyui-text-pipe-39", + "files": [ + "https://github.com/shinich39/comfyui-text-pipe-39" + ], + "install_type": "git-clone", + "description": "Modify text by condition." }, - - { "author": "Big Idea Technology", "title": "Image Text Overlay Node for ComfyUI [DEPRECATED]", @@ -20,16 +2617,6 @@ "install_type": "git-clone", "description": "Please note that the ImageTextOverlay project is no longer supported and has been moved to a new repository. For ongoing developments, contributions, and issues, please refer to the new repository at: [a/https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools](https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools)" }, - { - "author": "meimeilook", - "title": "ComfyUI_IPAdapter_plus.old [backward compatbility]", - "reference": "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old", - "files": [ - "https://github.com/meimeilook/ComfyUI_IPAdapter_plus.old" - ], - "install_type": "git-clone", - "description": "This repo is created to provide backward compatibility for workflows configured with the old IPAdapter." - }, { "author": "mlinmg", "title": "LaMa Preprocessor [DEPRECATED]", @@ -188,7 +2775,7 @@ "https://github.com/laksjdjf/IPAdapter-ComfyUI" ], "install_type": "git-clone", - "description": "This custom nodes provides loader of the IP-Adapter model.[w/NOTE: To use this extension node, you need to download the [a/ip-adapter_sd15.bin](https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.bin) file and place it in the %%**custom_nodes/IPAdapter-ComfyUI/models**%% directory. Additionally, you need to download the 'Clip vision model' from the 'Install models' menu as well.]
    NOTE: Use ComfyUI_IPAdapter_plus instead of this." + "description": "This custom nodes provides loader of the IP-Adapter model.[w/NOTE: To use this extension node, you need to download the [a/ip-adapter_sd15.bin](https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.bin) file and place it in the %%**custom_nodes/IPAdapter-ComfyUI/models**%% directory. Additionally, you need to download the 'Clip vision model' from the 'Install models' menu as well.]\nNOTE: Use ComfyUI_IPAdapter_plus instead of this." }, { "author": "RockOfFire", diff --git a/node_db/legacy/model-list.json b/node_db/legacy/model-list.json index 8e3e1dc4..1f870f11 100644 --- a/node_db/legacy/model-list.json +++ b/node_db/legacy/model-list.json @@ -1,3 +1,148 @@ { - "models": [] + "models": [ + { + "name": "Inswapper-fp16 (face swap) [REMOVED]", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface", + "description": "Checkpoint of the insightface swapper model\n(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,\nComfyUI roop and comfy_mtb)", + "reference": "https://github.com/facefusion/facefusion-assets", + "filename": "inswapper_128_fp16.onnx", + "url": "https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128_fp16.onnx", + "size": "277.7MB" + }, + { + "name": "Inswapper (face swap) [REMOVED]", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface", + "description": "Checkpoint of the insightface swapper model\n(used by ComfyUI-FaceSwap, comfyui-reactor-node, CharacterFaceSwap,\nComfyUI roop and comfy_mtb)", + "reference": "https://github.com/facefusion/facefusion-assets", + "filename": "inswapper_128.onnx", + "url": "https://github.com/facefusion/facefusion-assets/releases/download/models/inswapper_128.onnx", + "size": "555.3MB" + }, + { + "name": "pfg-novel-n10.pt", + "type": "PFG", + "base": "SD1.5", + "save_path": "custom_nodes/pfg-ComfyUI/models", + "description": "Pressing 'install' directly downloads the model from the pfg-ComfyUI/models extension node. (Note: Requires ComfyUI-Manager V0.24 or above)", + "reference": "https://huggingface.co/furusu/PFG", + "filename": "pfg-novel-n10.pt", + "url": "https://huggingface.co/furusu/PFG/resolve/main/pfg-novel-n10.pt", + "size": "23.6MB" + }, + { + "name": "pfg-wd14-n10.pt", + "type": "PFG", + "base": "SD1.5", + "save_path": "custom_nodes/pfg-ComfyUI/models", + "description": "Pressing 'install' directly downloads the model from the pfg-ComfyUI/models extension node. (Note: Requires ComfyUI-Manager V0.24 or above)", + "reference": "https://huggingface.co/furusu/PFG", + "filename": "pfg-wd14-n10.pt", + "url": "https://huggingface.co/furusu/PFG/resolve/main/pfg-wd14-n10.pt", + "size": "31.5MB" + }, + { + "name": "pfg-wd15beta2-n10.pt", + "type": "PFG", + "base": "SD1.5", + "save_path": "custom_nodes/pfg-ComfyUI/models", + "description": "Pressing 'install' directly downloads the model from the pfg-ComfyUI/models extension node. (Note: Requires ComfyUI-Manager V0.24 or above)", + "reference": "https://huggingface.co/furusu/PFG", + "filename": "pfg-wd15beta2-n10.pt", + "url": "https://huggingface.co/furusu/PFG/resolve/main/pfg-wd15beta2-n10.pt", + "size": "31.5MB" + }, + { + "name": "shape_predictor_68_face_landmarks.dat [Face Analysis]", + "type": "Shape Predictor", + "base": "DLIB", + "save_path": "custom_nodes/comfyui_faceanalysis/dlib", + "description": "To use the Face Analysis for ComfyUI custom node, installation of this model is needed.", + "reference": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/tree/main", + "filename": "shape_predictor_68_face_landmarks.dat", + "url": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/resolve/main/shape_predictor_68_face_landmarks.dat", + "size": "99.7MB" + }, + { + "name": "dlib_face_recognition_resnet_model_v1.dat [Face Analysis]", + "type": "Face Recognition", + "base": "DLIB", + "save_path": "custom_nodes/comfyui_faceanalysis/dlib", + "description": "To use the Face Analysis for ComfyUI custom node, installation of this model is needed.", + "reference": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/tree/main", + "filename": "dlib_face_recognition_resnet_model_v1.dat", + "url": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/resolve/main/dlib_face_recognition_resnet_model_v1.dat", + "size": "22.5MB" + }, + { + "name": "ID-Animator/animator.ckpt", + "type": "ID-Animator", + "base": "SD1.5", + "save_path": "custom_nodes/comfyui_id_animator/models", + "description": "ID-Animator checkpoint", + "reference": "https://huggingface.co/spaces/ID-Animator/ID-Animator", + "filename": "animator.ckpt", + "url": "https://huggingface.co/spaces/ID-Animator/ID-Animator/resolve/main/animator.ckpt", + "size": "247.3MB" + }, + { + "name": "ID-Animator/mm_sd_v15_v2.ckpt", + "type": "ID-Animator", + "base": "SD1.5", + "save_path": "custom_nodes/comfyui_id_animator/models/animatediff_models", + "description": "AnimateDiff checkpoint for ID-Animator", + "reference": "https://huggingface.co/spaces/ID-Animator/ID-Animator", + "filename": "mm_sd_v15_v2.ckpt", + "url": "https://huggingface.co/spaces/ID-Animator/ID-Animator/resolve/main/mm_sd_v15_v2.ckpt", + "size": "1.82GB" + }, + { + "name": "ID-Animator/image_encoder", + "type": "ID-Animator", + "base": "SD1.5", + "save_path": "custom_nodes/comfyui_id_animator/models/image_encoder", + "description": "CLIP Image encoder for ID-Animator", + "reference": "https://huggingface.co/spaces/ID-Animator/ID-Animator", + "filename": "model.safetensors", + "url": "https://huggingface.co/spaces/ID-Animator/ID-Animator/resolve/main/image_encoder/model.safetensors", + "size": "2.53GB" + }, + { + "name": "Doubiiu/ToonCrafter model checkpoint", + "type": "checkpoint", + "base": "ToonCrafter", + "save_path": "custom_nodes/comfyui-tooncrafter/ToonCrafter/checkpoints/tooncrafter_512_interp_v1", + "description": "ToonCrafter checkpoint model for ComfyUI-ToonCrafter", + "reference": "https://huggingface.co/Doubiiu/ToonCrafter/tree/main", + "filename": "model.ckpt", + "url": "https://huggingface.co/Doubiiu/ToonCrafter/resolve/main/model.ckpt", + "size": "10.5GB" + }, + + { + "name": "BAAI/SegGPT", + "type": "SegGPT", + "base": "SegGPT", + "save_path": "custom_nodes/comfyui-seggpt", + "description": "SegGPT", + "reference": "https://huggingface.co/BAAI/SegGPT", + "filename": "seggpt_vit_large.pth", + "url": "https://huggingface.co/BAAI/SegGPT/resolve/main/seggpt_vit_large.pth", + "size": "1.48GB" + }, + { + "name": "kohya-ss/ControlNet-LLLite: SDXL Canny Anime", + "type": "controlnet", + "base": "SDXL", + "save_path": "custom_nodes/ControlNet-LLLite-ComfyUI/models", + "description": "An extremely compactly designed controlnet model (a.k.a. ControlNet-LLLite). Note: The model structure is highly experimental and may be subject to change in the future.", + "reference": "https://huggingface.co/kohya-ss/controlnet-lllite", + "filename": "controllllite_v01032064e_sdxl_canny_anime.safetensors", + "url": "https://huggingface.co/kohya-ss/controlnet-lllite/resolve/main/controllllite_v01032064e_sdxl_canny_anime.safetensors", + "size": "46.2MB" + } + ] } diff --git a/node_db/new/custom-node-list.json b/node_db/new/custom-node-list.json index 25afe77b..8d6a9280 100644 --- a/node_db/new/custom-node-list.json +++ b/node_db/new/custom-node-list.json @@ -1,706 +1,700 @@ { "custom_nodes": [ { - "author": "#NOTICE_1.13", - "title": "NOTICE: This channel is not the default channel.", - "reference": "https://github.com/ltdrdata/ComfyUI-Manager", - "files": [], - "install_type": "git-clone", - "description": "If you see this message, your ComfyUI-Manager is outdated.\nRecent channel provides only the list of the latest nodes. If you want to find the complete node list, please go to the Default channel.\nMaking LoRA has never been easier!" - }, - - - - - { - "author": "aburahamu", - "title": "ComfyUI-RequestPoster", - "reference": "https://github.com/aburahamu/ComfyUI-RequestsPoster", + "author": "Yeq6X", + "title": "ComfyUI Image to Video Inserter", + "reference": "https://github.com/Yeq6X/ComfyUI-image-to-video-inserter", "files": [ - "https://github.com/aburahamu/ComfyUI-RequestsPoster" + "https://github.com/Yeq6X/ComfyUI-image-to-video-inserter" ], "install_type": "git-clone", - "description": "This extension can send HTTP Requests. You can request image generation to StableDiffusion3 and post images to X (Twitter) and Discord." + "description": "A ComfyUI custom node that inserts images into videos." }, { - "author": "DarKDinDoN", - "title": "ComfyUI Checkpoint Automatic Config", - "reference": "https://github.com/DarKDinDoN/comfyui-checkpoint-automatic-config", + "author": "yichengup", + "title": "ComfyUI_SwiftCut", + "reference": "https://github.com/yichengup/ComfyUI_SwiftCut", "files": [ - "https://github.com/DarKDinDoN/comfyui-checkpoint-automatic-config" + "https://github.com/yichengup/ComfyUI_SwiftCut" ], "install_type": "git-clone", - "description": "This node was designed to help with checkpoint configuration." + "description": "A simple ComfyUI plugin that Its purpose and function is to replicate some of the editing effects of capcut,jianying and pr." }, { - "author": "if-ai", - "title": "ComfyUI-IF_AI_WishperSpeechNode", - "reference": "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode", + "author": "Shellishack", + "title": "ComfyUI Remote Media Loaders", + "reference": "https://github.com/Shellishack/comfyui-remote-media-loaders", "files": [ - "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode" + "https://github.com/Shellishack/comfyui-remote-media-loaders" ], "install_type": "git-clone", - "description": "This repository hosts a Text-to-Speech (TTS) application that leverages Whisper Speech for voice synthesis, allowing users to train a voice model on-the-fly. It is built on ComfyUI and supports rapid training and inference processes." + "description": "Load media (image/video/audio) from remote URL" }, { - "author": "Big Idea Technology", - "title": "ComfyUI-Book-Tools", - "reference": "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools", + "author": "S4MUEL404", + "title": "ComfyUI Prepack", + "id": "comfyui-prepack", + "reference": "https://github.com/S4MUEL-404/ComfyUI-Prepack", "files": [ - "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools" + "https://github.com/S4MUEL-404/ComfyUI-Prepack" ], "install_type": "git-clone", - "description": "Image Text Overlay: Add customizable text overlays to images. Prompt Selection and Scheduling: Manage and format string prompts based on configurable parameters. Loop Constructs: Implement looping mechanisms which can reset based on conditions. Special Comparators: Utilize a unique string class for special comparison features." + "description": "A small, practical bundle of ComfyUI nodes that streamlines common workflows." }, { - "author": "TencentQQGYLab", - "title": "ComfyUI-ELLA", - "reference": "https://github.com/TencentQQGYLab/ComfyUI-ELLA", + "author": "Frief84", + "title": "ComfyUI-LoRAWeightAxisXY", + "reference": "https://github.com/Frief84/ComfyUI-LoRAWeightAxisXY", "files": [ - "https://github.com/TencentQQGYLab/ComfyUI-ELLA" + "https://github.com/Frief84/ComfyUI-LoRAWeightAxisXY" ], "install_type": "git-clone", - "description": "ComfyUI implementation for [a/ELLA](https://github.com/TencentQQGYLab/ELLA)." + "description": "Adds `XY Input: LoRA Weight (simple)` for Efficiency Nodes. Outputs XY subtype 'LoRA' (name, weight, weight) with a linear sweep; works with `XY Input: Checkpoint`.", + "tags": ["xy-plot", "lora", "efficiency-nodes", "utility"] }, { - "author": "turkyden", - "title": "ComfyUI-Comic", - "reference": "https://github.com/turkyden/ComfyUI-Comic", + "author": "penposs", + "title": "ComfyUI-Banana-Node", + "reference": "https://github.com/penposs/ComfyUI-Banana-Node", "files": [ - "https://github.com/turkyden/ComfyUI-Comic" + "https://github.com/penposs/ComfyUI-Banana-Node" ], "install_type": "git-clone", - "description": "a comfyui plugin for image to comic" + "description": "A custom node for ComfyUI that generates images using Google’s Gemini 2.5 Flash Image Preview API." }, { - "author": "Intersection98", - "title": "ComfyUI-MX-post-processing-nodes", - "reference": "https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes", + "author": "PenguinTeo", + "title": "GeminiBanana for ComfyUI", + "reference": "https://github.com/PenguinTeo/Comfyui-GeminiBanana", "files": [ - "https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes" + "https://github.com/PenguinTeo/Comfyui-GeminiBanana" ], "install_type": "git-clone", - "description": "A collection of post processing nodes for ComfyUI, dds image post-processing adjustment capabilities to the ComfyUI." + "description": "GeminiBanana is a custom node for ComfyUI based on the Gemini API. It allows you to call Gemini inside ComfyUI workflows to generate text, parse images, or perform multimodal interactions, greatly enhancing workflow automation and creative capabilities." }, { - "author": "florestefano1975", - "title": "ComfyUI StabilityAI Suite", - "reference": "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite", + "author": "grovergol", + "title": "ComfyUI Grover Nodes", + "reference": "https://github.com/grovergol/comfyui-grover-nodes", "files": [ - "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite" + "https://github.com/grovergol/comfyui-grover-nodes" ], "install_type": "git-clone", - "description": "This fork of the official StabilityAI repository contains a number of enhancements and implementations." + "description": "A custom node that allows opening file paths in the default system file explorer." }, { - "author": "hay86", - "title": "ComfyUI MiniCPM-V", - "reference": "https://github.com/hay86/ComfyUI_MiniCPM-V", + "author": "noelkim12", + "title": "ComfyUI-ComfyUI-NoelTextUtil", + "reference": "https://github.com/noelkim12/ComfyUI-NoelTextUtil", "files": [ - "https://github.com/hay86/ComfyUI_MiniCPM-V" + "https://github.com/noelkim12/ComfyUI-NoelTextUtil" ], "install_type": "git-clone", - "description": "Unofficial implementation of [a/MiniCPM-V](https://github.com/OpenBMB/MiniCPM-V) for ComfyUI" + "description": "Text utility nodes for file path and LoRA auto triggering" }, { - "author": "sugarkwork", - "title": "comfyui_tag_filter", - "reference": "https://github.com/sugarkwork/comfyui_tag_fillter", + "author": "Juste-Leo2", + "title": "Canary-ComfyUI", + "reference": "https://github.com/Juste-Leo2/Canary-ComfyUI", "files": [ - "https://github.com/sugarkwork/comfyui_tag_fillter" + "https://github.com/Juste-Leo2/Canary-ComfyUI" ], "install_type": "git-clone", - "description": "This is a custom node of ComfyUI that categorizes tags outputted by tools like WD14Tagger, filters them by each category, and returns the filtered results." + "description": "This node pack integrates the core capabilities of the Canary-1b-v2 model, providing three main features: it can transcribe audio in any of 25 supported languages into text in the same language, translate audio from 24 source languages directly into English, and translate English audio directly into one of the 24 other supported languages." }, { - "author": "chaojie", - "title": "ComfyUI-CameraCtrl-Wrapper", - "reference": "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper", + "author": "otavanopisto", + "title": "ComfyUI-aihub-workflow-exposer", + "reference": "https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer", "files": [ - "https://github.com/chaojie/ComfyUI-CameraCtrl-Wrapper" + "https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer" ], "install_type": "git-clone", - "description": "ComfyUI-CameraCtrl-Wrapper" + "description": "Custom nodes for ComfyUI in order to expose AI workflows to external applications (particularly image, video and audio editors) so workflows can be integrated as plugins" }, { - "author": "Stability-AI", - "title": "Stability API nodes for ComfyUI", - "reference": "https://github.com/Stability-AI/ComfyUI-SAI_API", + "author": "D3lUX3I", + "title": "VideoPromptEnhancer", + "reference": "https://github.com/D3lUX3I/ComfyUI-VideoPromptEnhancer", "files": [ - "https://github.com/Stability-AI/ComfyUI-SAI_API" + "https://github.com/D3lUX3I/ComfyUI-VideoPromptEnhancer" ], "install_type": "git-clone", - "description": "Nodes:Stability SD3, Stability Outpainting, Stability Search and Replace, Stability Image Core, Stability Inpainting, Stability Remove Background, Stability Creative Upscale.\nAdd API key to environment variable 'SAI_API_KEY'\nAlternatively you can write your API key to file 'sai_platform_key.txt'\nYou can also use and/or override the above by entering your API key in the 'api_key_override' field of each node." + "description": "This node generates a professional prompt from an input text for modern video AI models (e.g., Alibaba Wan 2.2) via the OpenRouter API." }, { - "author": "JettHu", - "title": "ComfyUI_TGate", - "reference": "https://github.com/JettHu/ComfyUI_TGate", + "author": "dasilva333", + "title": "ComfyUI HunyuanVideo-Foley Custom Node", + "reference": "https://github.com/dasilva333/ComfyUI_HunyuanVideo-Foley", "files": [ - "https://github.com/JettHu/ComfyUI_TGate" + "https://github.com/dasilva333/ComfyUI_HunyuanVideo-Foley" ], "install_type": "git-clone", - "description": "ComfyUI reference implementation for [a/T-GATE](https://github.com/HaozheLiu-ST/T-GATE)." + "description": "This custom node integrates the HunyuanVideo-Foley model for generating audio from video frames and text prompts in ComfyUI. It's built for use in generating Foley sounds from video and text inputs." }, { - "author": "AIFSH", - "title": "ComfyUI-MuseTalk_FSH", - "reference": "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH", + "author": "aistudynow", + "title": "Comfyui-HunyuanFoley", + "reference": "https://github.com/aistudynow/Comfyui-HunyuanFoley", "files": [ - "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH" + "https://github.com/aistudynow/Comfyui-HunyuanFoley" ], "install_type": "git-clone", - "description": "the comfyui custom node of [a/MuseTalk](https://github.com/TMElyralab/MuseTalk) to make audio driven videos!" + "description": "Generate Audio from any video and or text" }, { - "author": "heshengtao", - "title": "comfyui_LLM_party", - "reference": "https://github.com/heshengtao/comfyui_LLM_party", + "author": "mengqin", + "title": "Unet Bnb Model Loader", + "reference": "https://github.com/mengqin/ComfyUI-UnetBnbModelLoader", "files": [ - "https://github.com/heshengtao/comfyui_LLM_party" + "https://github.com/mengqin/ComfyUI-UnetBnbModelLoader" ], "install_type": "git-clone", - "description": "A set of block-based LLM agent node libraries designed for ComfyUI.This project aims to develop a complete set of nodes for LLM workflow construction based on comfyui. It allows users to quickly and conveniently build their own LLM workflows and easily integrate them into their existing SD workflows." + "description": "A general comfyui model loading plugin that supports loading unet models quantized in bnb-4bit (nf4 and fp4) format" }, { - "author": "FrankChieng", - "title": "ComfyUI_MagicClothing", - "reference": "https://github.com/frankchieng/ComfyUI_MagicClothing", + "author": "Artificial-Sweetener", + "title": "WhiteRabbit", + "reference": "https://github.com/Artificial-Sweetener/comfyui-WhiteRabbit", "files": [ - "https://github.com/frankchieng/ComfyUI_MagicClothing" + "https://github.com/Artificial-Sweetener/comfyui-WhiteRabbit" ], "install_type": "git-clone", - "description": "implementation of MagicClothing with garment and prompt in ComfyUI" + "description": "A nodepack designed to help you work with video from within ComfyUI that specializes in handling image batches efficiency and creating video loops." }, { - "author": "VAST-AI-Research", - "title": "Tripo for ComfyUI", - "reference": "https://github.com/VAST-AI-Research/ComfyUI-Tripo", + "author": "hujuying", + "title": "ComfyUI ModelScope API Node", + "reference": "https://github.com/hujuying/ComfyUI-ModelScope-API", "files": [ - "https://github.com/VAST-AI-Research/ComfyUI-Tripo" + "https://github.com/hujuying/ComfyUI-ModelScope-API" ], "install_type": "git-clone", - "description": "Custom nodes for using [a/Tripo](https://www.tripo3d.ai/) in ComfyUI to create 3D from text and image prompts." + "description": "This is a universal custom node for ComfyUI that supports both Text-to-Image and Image-to-Image generation by calling various models via the official ModelScope API." }, { - "author": "AonekoSS", - "title": "ComfyUI-SimpleCounter", - "reference": "https://github.com/xliry/ComfyUI_SendDiscord", + "author": "itsjustregi", + "title": "SDXL Adherence", + "reference": "https://github.com/regiellis/ComfyUI-SDXL-Adherence", "files": [ - "https://github.com/xliry/ComfyUI_SendDiscord/raw/main/SendDiscord.py" + "https://github.com/regiellis/ComfyUI-SDXL-Adherence" + ], + "install_type": "git-clone", + "description": "ComfyUI nodes that improve SDXL prompt adherence and any-size/tiled VAE workflows." + }, + { + "author": "MushroomFleet", + "title": "Zenkai-POML for ComfyUI", + "reference": "https://github.com/MushroomFleet/ComfyUI-DJZ-POML", + "files": [ + "https://github.com/MushroomFleet/ComfyUI-DJZ-POML" + ], + "install_type": "git-clone", + "description": "Bring Microsoft's POML (Prompt Orchestration Markup Language) to your ComfyUI workflows! Create structured, reusable, and powerful prompts with visual node-based editing." + }, + { + "author": "Urabewe", + "title": "ComfyUI Video Extend Counter", + "reference": "https://github.com/Urabewe/ComfyUI-CountS2VExtend", + "files": [ + "https://github.com/Urabewe/ComfyUI-CountS2VExtend" + ], + "install_type": "git-clone", + "description": "A simple utility node that counts active Video S2V Extend nodes in your workflow and returns that number plus one. Now you don't have to remember to update the batch number. Just set your extend nodes and go. It was easy to forget so I made this quick and dirty." + }, + { + "author": "Juste-Leo2", + "title": "USO Nodes for ComfyUI", + "reference": "https://github.com/Juste-Leo2/USO_ComfyUI", + "files": [ + "https://github.com/Juste-Leo2/USO_ComfyUI" + ], + "install_type": "git-clone", + "description": "Custom nodes to integrate the USO image generation model (based on FLUX.1 by ByteDance) into ComfyUI.\nThis project is an implementation based on the official source code from the [a/ByteDance/USO](https://github.com/bytedance/USO) repository." + }, + { + "author": "daehwa", + "title": "ComfyUI-NanoBananaAPI", + "reference": "https://github.com/daehwa00/ComfyUI-NanoBananaAPI", + "files": [ + "https://github.com/daehwa00/ComfyUI-NanoBananaAPI" + ], + "install_type": "git-clone", + "description": "Creates images using the NanoBanana API. To use it, you must enter your issued API key." + }, + { + "author": "GsusGG", + "title": "ComfyUI-CozyGen", + "reference": "https://github.com/gsusgg/ComfyUI_CozyGen", + "files": [ + "https://github.com/gsusgg/ComfyUI_CozyGen" + ], + "install_type": "git-clone", + "description": "A set of custom nodes and aiohttp server for a simple ComfyUI browser and mobile device experience for any t2i image workflow." + }, + { + "author": "annewj023", + "title": "Google Nano", + "reference": "https://github.com/annewj023/Comfyui_google_nano", + "files": [ + "https://github.com/annewj023/Comfyui_google_nano" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node based on OpenRouter that supports calling the Google Gemini model via the OpenAI API to generate new images from reference images and prompts." + }, + { + "author": "Ltamann", + "title": "FastVLM-7B ComfyUI Node", + "reference": "https://github.com/Ltamann/ComfyUI-FastVLM-7B", + "files": [ + "https://github.com/Ltamann/ComfyUI-FastVLM-7B" + ], + "install_type": "git-clone", + "description": "ComfyUI-FastVLM-7B Apple A custom node for Apple’s FastVLM-7B vision-language model. This node lets you pass an image + instruction and returns a generated text response." + }, + { + "author": "KY-2000", + "title": "comfyui-save-image-enhanced", + "reference": "https://github.com/KY-2000/comfyui-save-image-enhanced", + "files": [ + "https://github.com/KY-2000/comfyui-save-image-enhanced" + ], + "install_type": "git-clone", + "description": "enable to save the image without the default filename suffix, with the feature of saving caption txt file to save prompts or descriptions of the image." + }, + { + "author": "KY-2000", + "title": "RES4LYF-tester-loop", + "reference": "https://github.com/KY-2000/RES4LYF-tester-loop", + "files": [ + "https://github.com/KY-2000/RES4LYF-tester-loop" + ], + "install_type": "git-clone", + "description": "Batch samplers, schedulers, cfg, shift and steps tester custom node, automatic looping functionality for RES4LYF custom nodes" + }, + { + "author": "KY-2000", + "title": "ComfyUI_PuLID_Flux_ll_FaceNet", + "reference": "https://github.com/KY-2000/ComfyUI_PuLID_Flux_ll_FaceNet", + "files": [ + "https://github.com/KY-2000/ComfyUI_PuLID_Flux_ll_FaceNet" + ], + "install_type": "git-clone", + "description": "Same Function as original ComfyUI_PuLID_Flux_ll repository, with FaceNet Implementation that is safe for commercial usage." + }, + { + "author": "Jarcis-cy", + "title": "HunyuanVideo-Foley Audio Generator", + "reference": "https://github.com/Jarcis-cy/ComfyUI-HunyuanVideoFoley", + "files": [ + "https://github.com/Jarcis-cy/ComfyUI-HunyuanVideoFoley" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper nodes for HunyuanVideo-Foley: Generate audio from video + text prompts" + }, + { + "author": "BAIKEMARK", + "title": "Civitai Recipe Finder", + "reference": "https://github.com/BAIKEMARK/ComfyUI-Civitai-Recipe", + "files": [ + "https://github.com/BAIKEMARK/ComfyUI-Civitai-Recipe" + ], + "install_type": "git-clone", + "description": "A powerful node suite that finds the community's best 'recipes' for any Civitai model by analyzing top prompts, LoRA triggers, parameters, and combos." + }, + { + "author": "BAIKEMARK", + "title": "Civitai Prompt Stats Node", + "reference": "https://github.com/BAIKEMARK/ComfyUI_Civitai_Prompt_Stats", + "files": [ + "https://github.com/BAIKEMARK/ComfyUI_Civitai_Prompt_Stats" + ], + "install_type": "git-clone", + "description": "A ComfyUI node that quickly fetches the most commonly used positive and negative prompts for Civitai models (Checkpoint / Lora) from the community, helping you effortlessly enhance your own creations!" + }, + { + "author": "Dehypnotic", + "title": "AspectRatioAdvanced", + "reference": "https://github.com/Dehypnotic/comfyui-aspect-ratio-advanced", + "files": [ + "https://raw.githubusercontent.com/Dehypnotic/comfyui-aspect-ratio-advanced/main/aspect_ratio_advanced.py" ], "install_type": "copy", - "description": "Nodes:Send Video to Discor" + "description": "An advanced aspect ratio calculator and image scaler with flexible scaling modes and intelligent image handling." }, { - "author": "AonekoSS", - "title": "ComfyUI-SimpleCounter", - "reference": "https://github.com/AonekoSS/ComfyUI-SimpleCounter", + "author": "railep", + "title": "HunyuanVideo-Foley Audio Generator", + "reference": "https://github.com/railep/ComfyUI-HunyuanVideo-Foley", "files": [ - "https://github.com/AonekoSS/ComfyUI-SimpleCounter" + "https://github.com/railep/ComfyUI-HunyuanVideo-Foley" ], "install_type": "git-clone", - "description": "Nodes:Simple Counter" + "description": "A ComfyUI custom node for generating synchronized audio for videos using the HunyuanVideo-Foley model." }, { - "author": "TashaSkyUp", - "title": "ComfyUI_LiteLLM", - "reference": "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM", + "author": "Limbicnation", + "title": "ComfyUI-RandomSeedGenerator", + "reference": "https://github.com/Limbicnation/ComfyUI-RandomSeedGenerator", "files": [ - "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM" + "https://github.com/Limbicnation/ComfyUI-RandomSeedGenerator" ], "install_type": "git-clone", - "description": "Nodes for interfacing with LiteLLM" + "description": "Advanced seed generator for ComfyUI with multiple modes, state persistence, and cross-library synchronization" }, { - "author": "smthemex", - "title": "ComfyUI_Pic2Story", - "reference": "https://github.com/smthemex/ComfyUI_Pic2Story", + "author": "sfinktah", + "title": "comfy-ovum", + "reference": "https://github.com/sfinktah/comfy-ovum", "files": [ - "https://github.com/smthemex/ComfyUI_Pic2Story" + "https://github.com/sfinktah/comfy-ovum" ], "install_type": "git-clone", - "description": "ComfyUI simple node based on BLIP method, with the function of 'Image to Txt'." + "description": "An assorted reliquary of nodes: mismatched, stubborn, and deliberately indistinct; they do what is required; do not ask for particulars." }, { - "author": "fevre27", - "title": "Self-Guidance nodes", - "reference": "https://github.com/forever22777/comfyui-self-guidance", + "author": "lucasgattas", + "title": "ComfyUI · Egregora: Divide & Enhance", + "reference": "https://github.com/lucasgattas/comfyui-egregora-divide-and-enhance", "files": [ - "https://github.com/forever22777/comfyui-self-guidance" + "https://github.com/lucasgattas/comfyui-egregora-divide-and-enhance" ], "install_type": "git-clone", - "description": "Unofficial ComfyUI implementation of Self-Guidance." + "description": "Egregora: Divide & Enhance is a small suite of custom nodes that help you split, enhance, and recombine images, plus a clean SDXL prompt mixer that keeps things simple while staying robust with lot´s of customization." }, { - "author": "chaojie", - "title": "ComfyUI-EasyAnimate", - "reference": "https://github.com/chaojie/ComfyUI-EasyAnimate", + "author": "Gipphe", + "title": "ComfyUI Metadata Statistics", + "reference": "https://github.com/Gipphe/comfyui-metadata-statistics", "files": [ - "https://github.com/chaojie/ComfyUI-EasyAnimate" + "https://github.com/Gipphe/comfyui-metadata-statistics" ], "install_type": "git-clone", - "description": "ComfyUI-EasyAnimate" + "description": "Gather statistics and information about your workflow." }, { - "author": "hay86", - "title": "ComfyUI DDColor", - "reference": "https://github.com/hay86/ComfyUI_DDColor", + "author": "impactframes", + "title": "ComfyUI HunyuanVideo-Foley", + "reference": "https://github.com/if-ai/ComfyUI_HunyuanVideoFoley", "files": [ - "https://github.com/hay86/ComfyUI_DDColor" + "https://github.com/if-ai/ComfyUI_HunyuanVideoFoley" ], "install_type": "git-clone", - "description": "Unofficial implementation of [a/DDColor](https://github.com/piddnad/DDColor) for ComfyUI" + "description": "This is a ComfyUI custom node wrapper for the HunyuanVideo-Foley model, which generates realistic audio from video and text descriptions." }, { - "author": "hay86", - "title": "ComfyUI OpenVoice", - "reference": "https://github.com/hay86/ComfyUI_OpenVoice", + "author": "sweetndata", + "title": "ComfyUI-Reflatent", + "reference": "https://github.com/sweetndata/ComfyUI-Reflatent", "files": [ - "https://github.com/hay86/ComfyUI_OpenVoice" + "https://github.com/sweetndata/ComfyUI-Reflatent" ], "install_type": "git-clone", - "description": "Unofficial implementation of [a/OpenVoice](https://github.com/myshell-ai/OpenVoice) for ComfyUI" + "description": "NODES:Reflatent" }, { - "author": "kealiu", - "title": "ComfyUI Load and Save file to S3", - "reference": "https://github.com/kealiu/ComfyUI-S3-Tools", + "author": "aesethtics", + "title": "ComfyUI Utilitools Nodes", + "reference": "https://github.com/grmchn/ComfyUI-ProportionChanger", "files": [ - "https://github.com/kealiu/ComfyUI-S3-Tools" + "https://github.com/grmchn/ComfyUI-ProportionChanger" ], "install_type": "git-clone", - "description": "Nodes:Load From S3, Save To S3." + "description": "A collection of utility nodes for ComfyUI to improve workflow efficiency." }, { - "author": "txt2any", - "title": "ComfyUI-PromptOrganizer", - "reference": "https://github.com/txt2any/ComfyUI-PromptOrganizer", + "author": "aesethtics", + "title": "ComfyUI Utilitools Nodes", + "reference": "https://github.com/aesethtics/ComfyUI-Utilitools", "files": [ - "https://github.com/txt2any/ComfyUI-PromptOrganizer" + "https://github.com/aesethtics/ComfyUI-Utilitools" ], "install_type": "git-clone", - "description": "This is a custom node for ComfyUI that automatically saves your AI-generated images specifically to [a/www.txt2any.com](http://www.txt2any.com/)." + "description": "A collection of utility nodes for ComfyUI to improve workflow efficiency." + }, + { + "author": "fredhopp", + "title": "comfyui-flipflopnodes", + "reference": "https://github.com/fredhopp/comfyui-flipflopnodes", + "files": [ + "https://github.com/fredhopp/comfyui-flipflopnodes" + ], + "install_type": "git-clone", + "description": "This project contains custom Flip-Flop nodes for ComfyUI." + }, + { + "author": "Saganaki22", + "title": "dotWaveform", + "reference": "https://github.com/Saganaki22/ComfyUI-dotWaveform", + "files": [ + "https://github.com/Saganaki22/ComfyUI-dotWaveform" + ], + "install_type": "git-clone", + "description": "ComfyUI node for generating animated dotted waveform visualizations with multiple animation styles including teardrop bars" + }, + { + "author": "Isi-dev", + "title": "ComfyUI_DeleteModelPassthrough", + "reference": "https://github.com/Isi-dev/ComfyUI_DeleteModelPassthrough", + "files": [ + "https://github.com/Isi-dev/ComfyUI_DeleteModelPassthrough" + ], + "install_type": "git-clone", + "description": "This custom node provides a memory management utility for ComfyUI.\nIt allows you to delete a specific model (checkpoint, etc.) completely from VRAM and system RAM after use, while passing through any other input type unchanged (IMAGE, LATENT, CLIP, STRING, INT, CONDITIONING, VAE, etc.).\nThis is especially useful for low VRAM & low RAM environments, helping to reduce out-of-memory (OOM) errors in long workflows." + }, + { + "author": "netroxin", + "title": "Netro_wildcards", + "reference": "https://github.com/netroxin/comfyui_netro_wildcards", + "files": [ + "https://github.com/netroxin/comfyui_netro_wildcards" + ], + "install_type": "git-clone", + "description": "Since I used 'simple wildcards' from Vanilla and it no longer works with the new Comfy UI version for me, I created an alternative. This CustomNode takes the entire contents of your wildcards-folder(comfyui wildcards) and creates a node for each one." + }, + { + "author": "mikheys", + "title": "ComfyUI Nano Banana Node", + "reference": "https://github.com/mikheys/comfyui-gemini-mikheys", + "files": [ + "https://github.com/mikheys/comfyui-gemini-mikheys" + ], + "install_type": "git-clone", + "description": "This repository contains a custom node for ComfyUI, 'Nano banana', designed for advanced image editing using the Google Gemini API. " + }, + { + "author": "huwenkai26", + "title": "ComfyUI Text Remove Node", + "reference": "https://github.com/huwenkai26/comfyui-remove-text", + "files": [ + "https://github.com/huwenkai26/comfyui-remove-text" + ], + "install_type": "git-clone", + "description": "This is a ComfyUI custom node designed to automatically detect and remove text from images." + }, + { + "author": "Fabio Sarracino", + "title": "VibeVoice ComfyUI", + "id": "vibevoice-comfyui", + "reference": "https://github.com/Enemyx-net/VibeVoice-ComfyUI", + "files": [ + "https://github.com/Enemyx-net/VibeVoice-ComfyUI" + ], + "install_type": "git-clone", + "description": "ComfyUI wrapper for Microsoft VibeVoice TTS model. Supports single speaker, multi-speaker, and text file loading", + "pip": ["torch>=2.0.0", "torchaudio>=2.0.0", "numpy>=1.20.0", "transformers>=4.44.0", "librosa>=0.9.0", "soundfile>=0.12.0"] + }, + { + "author": "Makki_Shizu", + "title": "ComfyUI-MakkiTools", + "id": "MakkiTools", + "reference": "https://github.com/MakkiShizu/ComfyUI-MakkiTools", + "files": [ + "https://github.com/MakkiShizu/ComfyUI-MakkiTools" + ], + "install_type": "git-clone", + "description": "Makki's self custom nodes for ComfyUI." + }, + { + "author": "ShmuelRonen", + "title": "ComfyUI-NanoBanano", + "reference": "https://github.com/ShmuelRonen/ComfyUI-NanoBanano", + "files": [ + "https://github.com/ShmuelRonen/ComfyUI-NanoBanano" + ], + "install_type": "git-clone", + "description": "A ComfyUI custom node for Google's Gemini 2.5 Flash Image (aka 'Nano Banana') model - the state-of-the-art image generation and editing AI." + }, + { + "author": "wildminder", + "title": "ComfyUI-VibeVoice", + "reference": "https://github.com/wildminder/ComfyUI-VibeVoice", + "files": [ + "https://github.com/wildminder/ComfyUI-VibeVoice" + ], + "install_type": "git-clone", + "description": "VibeVoice TTS. Expressive, long-form, multi-speaker conversational audio" }, { "author": "jtydhr88", - "title": "ComfyUI-InstantMesh", - "reference": "https://github.com/jtydhr88/ComfyUI-InstantMesh", + "title": "ComfyUI-AudioMass", + "reference": "https://github.com/jtydhr88/ComfyUI-AudioMass", "files": [ - "https://github.com/jtydhr88/ComfyUI-InstantMesh" + "https://github.com/jtydhr88/ComfyUI-AudioMass" ], "install_type": "git-clone", - "description": "ComfyUI InstantMesh is custom nodes that running TencentARC/InstantMesh into ComfyUI, this extension depends on ComfyUI-3D-Pack. Please refer to Readme carefully to install." + "description": "This is a ComfyUI plugin that provides a user interface of AudioMass, originally developed by [a/AudioMass](https://github.com/pkalogiros/audiomass)" }, { - "author": "kunieone", - "title": "ComfyUI_alkaid", - "reference": "https://github.com/kunieone/ComfyUI_alkaid", + "author": "isaac-mcfadyen", + "title": "ComfyUI Popo Utility", + "reference": "https://github.com/popoimm/comfyui-popo-utility", "files": [ - "https://github.com/kunieone/ComfyUI_alkaid" + "https://github.com/popoimm/comfyui-popo-utility" ], "install_type": "git-clone", - "description": "Nodes:A_Face3DSwapper, A_FaceCrop, A_FacePaste, A_OpenPosePreprocessor, A_EmptyLatentImageLongside, A_GetImageSize, AlkaidLoader, AdapterFaceLoader, AdapterStyleLoader, ..." + "description": "High-Performance ComfyUI Custom Node Toolkit - Modular and Extensible Architecture\nA utility toolkit designed specifically for ComfyUI image processing, built with a modular architecture that supports fast extension and the addition of new nodes." }, { - "author": "royceschultz", - "title": "ComfyUI-TranscriptionTools", - "reference": "https://github.com/royceschultz/ComfyUI-TranscriptionTools", + "author": "orion4d", + "title": "SharpnessPro pour ComfyUI", + "reference": "https://github.com/orion4d/ComfyUI_SharpnessPro", "files": [ - "https://github.com/royceschultz/ComfyUI-TranscriptionTools" + "https://github.com/orion4d/ComfyUI_SharpnessPro" ], "install_type": "git-clone", - "description": "Transcribe audio and video files in ComfyUI." + "description": "A collection of high-quality nodes for ComfyUI, dedicated to improving the sharpness, clarity, and texture of your images" }, { - "author": "turkyden", - "title": "ComfyUI-Sticker", - "reference": "https://github.com/turkyden/ComfyUI-Sticker", + "author": "isaac-mcfadyen", + "title": "ComfyUI-QwenClip", + "reference": "https://github.com/isaac-mcfadyen/ComfyUI-QwenClip", "files": [ - "https://github.com/turkyden/ComfyUI-Sticker" + "https://github.com/isaac-mcfadyen/ComfyUI-QwenClip" ], "install_type": "git-clone", - "description": "image to sticker" + "description": "A variety of random text encoder tools intended for use with ComfyUI and Qwen Image/Qwen Image Edit. More (may) be added as I try out various modifications to Qwen Image." }, { - "author": "quadme7macoon", - "title": "ComfyUI-ShadertoyGL", - "reference": "https://github.com/e7mac/ComfyUI-ShadertoyGL", + "author": "1038lab", + "title": "ComfyUI-MiniCPM", + "reference": "https://github.com/1038lab/ComfyUI-MiniCPM", "files": [ - "https://github.com/e7mac/ComfyUI-ShadertoyGL" + "https://github.com/1038lab/ComfyUI-MiniCPM" ], "install_type": "git-clone", - "description": "Nodes:Shadertoy, Shader, ColorChannelOffset." + "description": "A ComfyUI custom node for MiniCPM vision-language models, enabling high-quality image captioning and analysis." }, { - "author": "quadmoon", - "title": "quadmoon's ComfyUI nodes", - "reference": "https://github.com/traugdor/ComfyUI-quadMoons-nodes", + "author": "DesertPixelAi", + "title": "ComfyUI DP Ideogram Character Node", + "reference": "https://github.com/DesertPixelAi/ComfyUI-DP-Ideogram-Character", "files": [ - "https://github.com/traugdor/ComfyUI-quadMoons-nodes" + "https://github.com/DesertPixelAi/ComfyUI-DP-Ideogram-Character" ], "install_type": "git-clone", - "description": "These are just some nodes I wanted and couldn't find where anyone else had made them yet." + "description": "A custom ComfyUI node for generating consistent character images using Ideogram API v3's character reference feature. Part of the Desert Pixel (DP) node collection." }, { - "author": "Sorcerio", - "title": "MBM's Music Visualizer", - "reference": "https://github.com/Sorcerio/MBM-Music-Visualizer", + "author": "rslosch", + "title": "ComfyUI-EZ_Prompts", + "reference": "https://github.com/rslosch/ComfyUI-EZ_Prompts", "files": [ - "https://github.com/Sorcerio/MBM-Music-Visualizer" + "https://github.com/rslosch/ComfyUI-EZ_Prompts" ], "install_type": "git-clone", - "description": "An image generation based music visualizer integrated into comfyanonymous/ComfyUI as custom nodes." + "description": "A ComfyUI custom node extension that provides easy-to-use prompt templates and wildcards for AI image generation." }, { - "author": "BlakeOne", - "title": "ComfyUI NodeDefaults", - "reference": "https://github.com/BlakeOne/ComfyUI-NodeDefaults", + "author": "joanna910225", + "title": "HouseKeeper", + "reference": "https://github.com/joanna910225/comfyui-housekeeper", "files": [ - "https://github.com/BlakeOne/ComfyUI-NodeDefaults" + "https://github.com/joanna910225/comfyui-housekeeper" ], "install_type": "git-clone", - "description": "An extension for ComyUI to allow resetting a node's inputs to their default values.\nNOTE:Right click any node and choose 'Restore default values' from the context menu." + "description": "A tool that organizes workflow nodes into clean, user-friendly layouts" }, { - "author": "AIFSH", - "title": "ComfyUI-GPT_SoVITS", - "reference": "https://github.com/AIFSH/ComfyUI-GPT_SoVITS", + "author": "alexds9", + "title": "Save Checkpoint with Metadata", + "reference": "https://github.com/a-l-e-x-d-s-9/ComfyUI-SaveCheckpointWithMetadata", "files": [ - "https://github.com/AIFSH/ComfyUI-GPT_SoVITS" + "https://github.com/a-l-e-x-d-s-9/ComfyUI-SaveCheckpointWithMetadata" ], "install_type": "git-clone", - "description": "a comfyui custom node for [a/GPT-SoVITS](https://github.com/RVC-Boss/GPT-SoVITS)! you can voice cloning and tts in comfyui now\n[w/NOTE:make sure ffmpeg is worked in your commandline]" + "description": "Save checkpoint .safetensors with custom header JSON, optional prompt override, merge of EXTRA_PNGINFO, and smart/no-counter filename modes. Includes text outputs for path and final metadata." }, { - "author": "aburahamu", - "title": "ComfyUI-RequestsPoster", - "reference": "https://github.com/aburahamu/ComfyUI-RequestsPoster", + "author": "jialuw0830", + "title": "Eigen AI FLUX API Plugin", + "id": "eigen-ai-flux-api-plugin", + "reference": "https://github.com/jialuw0830/flux_api_comfyui_plugin", "files": [ - "https://github.com/aburahamu/ComfyUI-RequestsPoster" + "https://github.com/jialuw0830/flux_api_comfyui_plugin" ], "install_type": "git-clone", - "description": "This custom node is that simply posts HttpRequest from ComfyUI." + "description": "Eigen AI FLUX API integration for ComfyUI with LoRA support and large font prompt inputs. Features high-quality image generation using FLUX.1-schnell model with multi-LoRA support, content upscaling, and optimized prompt input interface." }, { - "author": "smthemex", - "title": "ComfyUI_ParlerTTS", - "reference": "https://github.com/smthemex/ComfyUI_ParlerTTS", + "author": "LeanModels", + "title": "ComfyUI-DFloat11", + "reference": "https://github.com/LeanModels/ComfyUI-DFloat11", "files": [ - "https://github.com/smthemex/ComfyUI_ParlerTTS" + "https://github.com/LeanModels/ComfyUI-DFloat11" ], "install_type": "git-clone", - "description": "This is a simple ComfyUI custom TTS node based on [a/Parler_tts](https://huggingface.co/parler-tts)." + "description": "This repository provides the ComfyUI plugin for DFloat11 models. DFloat11 reduces model size by more than 30% while producing bit-for-bit identical outputs to the original. Unlike quantization techniques which trade quality for size, DFloat11 is a lossless compression method, preserving model output quality fully while supporting efficient inference." }, { - "author": "unwdef", - "title": "unwdef-nodes", - "reference": "https://github.com/unwdef/unwdef-nodes-comfyui", + "author": "birdneststream", + "title": "ComfyUI-Mircify", + "reference": "https://github.com/birdneststream/ComfyUI-Mircify", "files": [ - "https://github.com/unwdef/unwdef-nodes-comfyui" + "https://github.com/birdneststream/ComfyUI-Mircify" ], "install_type": "git-clone", - "description": "Custom nodes for ComfyUI by unwdef." + "description": "ComfyUI node for converting images to IRC art blocks" }, { - "author": "kijai", - "title": "ComfyUI-BrushNet-Wrapper", - "reference": "https://github.com/kijai/ComfyUI-BrushNet-Wrapper", + "author": "chenpipi0807", + "title": "Comfyui-Qwen-image-edit-CharacterConsistency", + "reference": "https://github.com/chenpipi0807/Comfyui-Qwen-image-edit-CharacterConsistency", "files": [ - "https://github.com/kijai/ComfyUI-BrushNet-Wrapper" + "https://github.com/chenpipi0807/Comfyui-Qwen-image-edit-CharacterConsistency" ], "install_type": "git-clone", - "description": "ComfyUI wrapper nodes to use the Diffusers implementation of BrushNet" + "description": "The official ComfyUI TextEncodeQwenImageEdit node simplifies prompt engineering. This node supports custom system prompts to enhance flexibility." }, { - "author": "pamparamm", - "title": "Perturbed-Attention Guidance", - "reference": "https://github.com/pamparamm/sd-perturbed-attention", + "author": "thimpat", + "title": "ComfyUI-KrakenTools", + "reference": "https://github.com/krakenunbound/ComfyUI-KrakenTools", "files": [ - "https://github.com/pamparamm/sd-perturbed-attention" + "https://github.com/krakenunbound/ComfyUI-KrakenTools" ], "install_type": "git-clone", - "description": "Perturbed-Attention Guidance node for ComfyUI." + "description": "High-utility nodes for ComfyUI with a focus on Flux 1 Dev workflows and Ultimate SD Upscale enhancement loops." }, { - "author": "kale4eat", - "title": "ComfyUI-speech-dataset-toolkit", - "reference": "https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit", + "author": "kmlbdh", + "title": "kmlbdh Video Combine (Smart + Tiled)", + "reference": "https://github.com/kmlbdh/ComfyUI-kmlbdh-VideoCombine", "files": [ - "https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit" + "https://github.com/kmlbdh/ComfyUI-kmlbdh-VideoCombine" ], "install_type": "git-clone", - "description": "Basic audio tools using torchaudio for ComfyUI. It is assumed to assist in the speech dataset creation for ASR, TTS, etc." + "description": "A custom ComfyUI node designed for stable, high-resolution video export — even on limited hardware." }, { - "author": "nullquant", - "title": "BrushNet", - "reference": "https://github.com/nullquant/ComfyUI-BrushNet", + "author": "thimpat", + "title": "ComfyUI Multimedia Utilities", + "reference": "https://github.com/thimpat/ThimPatUtils", "files": [ - "https://github.com/nullquant/ComfyUI-BrushNet" + "https://github.com/thimpat/ThimPatUtils" ], "install_type": "git-clone", - "description": "Custom nodes for ComfyUI allow to inpaint using Brushnet: '[a/BrushNet: A Plug-and-Play Image Inpainting Model with Decomposed Dual-Branch Diffusion](https://arxiv.org/abs/2403.06976)'." + "description": "A collection of essential utility nodes for handling image sequences, video, audio, and synchronized data within ComfyUI workflows." }, { - "author": "logtd", - "title": "ComfyUI-RAVE Attention", - "reference": "https://github.com/logtd/ComfyUI-RAVE_ATTN", + "author": "citronlegacy", + "title": "ComfyUI-CitronNodes", + "reference": "https://github.com/citronlegacy/ComfyUI-CitronNodes", "files": [ - "https://github.com/logtd/ComfyUI-RAVE_ATTN" + "https://github.com/citronlegacy/ComfyUI-CitronNodes" ], "install_type": "git-clone", - "description": "ComfyUI nodes to use RAVE attention as a temporal attention mechanism.\nThis differs from other implementations in that it does not concatenate the images together, but within the UNet's Self-Attention mechanism performs the RAVE technique. By not altering the images/latents throughout the UNet, this method does not affect other temporal techniques, style mechanisms, or other UNet modifications.\nFor example, it can be combined with AnimateDiff, ModelScope/ZeroScope, or FLATTEN." + "description": "ComfyUI node: Get DateTime (outputs date, time, datetime as strings" }, { - "author": "BlakeOne", - "title": "ComfyUI NodePresets", - "reference": "https://github.com/BlakeOne/ComfyUI-NodePresets", + "author": "ZeroSpaceStudios", + "title": "ComfyUI-ZSNodes", + "reference": "https://github.com/ZeroSpaceStudios/ComfyUI-ZSNodes", "files": [ - "https://github.com/BlakeOne/ComfyUI-NodePresets" + "https://github.com/ZeroSpaceStudios/ComfyUI-ZSNodes" ], "install_type": "git-clone", - "description": "An extension for ComyUI that enables saving and loading node presets using the node's context menu.\nRight click a node and choose 'Presets' from its context menu to access the node's presets." - }, - { - "author": "Wicloz", - "title": "ComfyUI-Simply-Nodes", - "reference": "https://github.com/Wicloz/ComfyUI-Simply-Nodes", - "files": [ - "https://github.com/Wicloz/ComfyUI-Simply-Nodes" - ], - "install_type": "git-clone", - "description": "Nodes:Conditional LoRA Loader, Multiline Text, Text Flow Controller, Select SDXL Resolution, Random Style Prompt." - }, - { - "author": "AIFSH", - "title": "ComfyUI-IP_LAP", - "reference": "https://github.com/AIFSH/ComfyUI-IP_LAP", - "files": [ - "https://github.com/AIFSH/ComfyUI-IP_LAP" - ], - "install_type": "git-clone", - "description": "Nodes:IP_LAP Node, Video Loader, PreView Video, Combine Audio Video. the comfyui custom node of [a/IP_LAP](https://github.com/Weizhi-Zhong/IP_LAP) to make audio driven videos!" - }, - { - "author": "kijai", - "title": "ComfyUI-LaVi-Bridge-Wrapper", - "reference": "https://github.com/kijai/ComfyUI-LaVi-Bridge-Wrapper", - "files": [ - "https://github.com/kijai/ComfyUI-LaVi-Bridge-Wrapper" - ], - "install_type": "git-clone", - "description": "ComfyUI wrapper node to test LaVi-Bridge using Diffusers" - }, - { - "author": "ALatentPlace", - "title": "ComfyUI_yanc", - "reference": "https://github.com/ALatentPlace/ComfyUI_yanc", - "files": [ - "https://github.com/ALatentPlace/ComfyUI_yanc" - ], - "install_type": "git-clone", - "description": "Yet Another Node Collection. Adds some useful nodes, check out the GitHub page for more details." - }, - { - "author": "choey", - "title": "Comfy-Topaz", - "reference": "https://github.com/choey/Comfy-Topaz", - "files": [ - "https://github.com/choey/Comfy-Topaz" - ], - "install_type": "git-clone", - "description": "Comfy-Topaz is a custom node for ComfyUI, which integrates with Topaz Photo AI to enhance (upscale, sharpen, denoise, etc.) images, allowing this traditionally asynchronous step to become a part of ComfyUI workflows.\nNOTE:Licensed installation of Topaz Photo AI" - }, - { - "author": "ExponentialML", - "title": "ComfyUI_ELLA", - "reference": "https://github.com/ExponentialML/ComfyUI_ELLA", - "files": [ - "https://github.com/ExponentialML/ComfyUI_ELLA" - ], - "install_type": "git-clone", - "description": "ComfyUI Implementaion of ELLA: Equip Diffusion Models with LLM for Enhanced Semantic Alignment" - }, - { - "author": "kijai", - "title": "ComfyUI-ELLA-wrapper", - "reference": "https://github.com/kijai/ComfyUI-ELLA-wrapper", - "files": [ - "https://github.com/kijai/ComfyUI-ELLA-wrapper" - ], - "install_type": "git-clone", - "description": "ComfyUI wrapper nodes to use the Diffusers implementation of ELLA" - }, - { - "author": "sdfxai", - "title": "SDFXBridgeForComfyUI - ComfyUI Custom Node for SDFX Integration", - "reference": "https://github.com/sdfxai/SDFXBridgeForComfyUI", - "files": [ - "https://github.com/sdfxai/SDFXBridgeForComfyUI" - ], - "install_type": "git-clone", - "description": "SDFXBridgeForComfyUI is a custom node designed for seamless integration between ComfyUI and SDFX. This custom node allows users to make ComfyUI compatible with SDFX when running the ComfyUI instance on their local machines." - }, - { - "author": "Koishi-Star", - "title": "Euler-Smea-Dyn-Sampler", - "reference": "https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler", - "files": [ - "https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler" - ], - "install_type": "git-clone", - "description": "СomfyUI version of [a/Euler Smea Dyn Sampler](https://github.com/Koishi-Star/Euler-Smea-Dyn-Sampler). It adds samplers directly to KSampler nodes." - }, - { - "author": "smthemex", - "title": "ComfyUI_ChatGLM_API", - "reference": "https://github.com/smthemex/ComfyUI_ChatGLM_API", - "files": [ - "https://github.com/smthemex/ComfyUI_ChatGLM_API" - ], - "install_type": "git-clone", - "description": "You can call Chatglm's API in comfyUI to translate and describe pictures, and the API similar to OpenAI." - }, - { - "author": "AIFSH", - "title": "ComfyUI-UVR5", - "reference": "https://github.com/AIFSH/ComfyUI-UVR5", - "files": [ - "https://github.com/AIFSH/ComfyUI-UVR5" - ], - "install_type": "git-clone", - "description": "the custom code for [a/UVR5](https://github.com/Anjok07/ultimatevocalremovergui) to separate vocals and background music" - }, - { - "author": "chaojie", - "title": "ComfyUI_StreamingT2V", - "reference": "https://github.com/chaojie/ComfyUI_StreamingT2V", - "files": [ - "https://github.com/chaojie/ComfyUI_StreamingT2V" - ], - "install_type": "git-clone", - "description": "ComfyUI_StreamingT2V" - }, - { - "author": "Zuellni", - "title": "ComfyUI ExLlamaV2 Nodes", - "reference": "https://github.com/Zuellni/ComfyUI-ExLlama-Nodes", - "files": [ - "https://github.com/Zuellni/ComfyUI-ExLlama-Nodes" - ], - "install_type": "git-clone", - "description": "A simple local text generator for ComfyUI utilizing [a/ExLlamaV2](https://github.com/turboderp/exllamav2).\n[w/NOTE:Manual package installation is required.]" - }, - { - "author": "discus0434", - "title": "ComfyUI Caching Embeddings", - "reference": "https://github.com/discus0434/comfyui-caching-embeddings", - "files": [ - "https://github.com/discus0434/comfyui-caching-embeddings" - ], - "install_type": "git-clone", - "description": "This repository simply caches the CLIP embeddings and subtly accelerates the inference process by bypassing unnecessary computations." - }, - { - "author": "tsogzark", - "title": "ComfyUI-load-image-from-url", - "reference": "https://github.com/tsogzark/ComfyUI-load-image-from-url", - "files": [ - "https://github.com/tsogzark/ComfyUI-load-image-from-url" - ], - "install_type": "git-clone", - "description": "A simple node to load image from local path or http url.\nYou can find this node from 'image' category." - }, - { - "author": "SeaArtLab", - "title": "ComfyUI-Long-CLIP", - "reference": "https://github.com/SeaArtLab/ComfyUI-Long-CLIP", - "files": [ - "https://github.com/SeaArtLab/ComfyUI-Long-CLIP" - ], - "install_type": "git-clone", - "description": "This project implements the comfyui for long-clip, currently supporting the replacement of clip-l. For SD1.5, the SeaArtLongClip module can be used to replace the original clip in the model, expanding the token length from 77 to 248." - }, - { - "author": "chaojie", - "title": "ComfyUI-Open-Sora-Plan", - "reference": "https://github.com/chaojie/ComfyUI-Open-Sora-Plan", - "files": [ - "https://github.com/chaojie/ComfyUI-Open-Sora-Plan" - ], - "install_type": "git-clone", - "description": "ComfyUI-Open-Sora-Plan" - }, - { - "author": "shinich39", - "title": "comfyui-text-pipe-39", - "reference": "https://github.com/shinich39/comfyui-text-pipe-39", - "files": [ - "https://github.com/shinich39/comfyui-text-pipe-39" - ], - "install_type": "git-clone", - "description": "Modify text by condition." - }, - { - "author": "Sida Liu", - "title": "ComfyUI-Debug", - "reference": "https://github.com/liusida/ComfyUI-Debug", - "files": [ - "https://github.com/liusida/ComfyUI-Debug" - ], - "install_type": "git-clone", - "description": "Attach a debug node to an output to obtain more detailed information. Uncover the details of your models in ComfyUI with ease." - }, - { - "author": "hay86", - "title": "ComfyUI_AceNodes", - "reference": "https://github.com/hay86/ComfyUI_AceNodes", - "files": [ - "https://github.com/hay86/ComfyUI_AceNodes" - ], - "install_type": "git-clone", - "description": "Nodes:Integer, Float, Text, Seed, Text Concatenate, Text Input Switch (2/4/8 way), Text List, Text Preview, Text Selector, Text To Resolution. Some useful custom nodes that are not included in ComfyUI core yet." - }, - { - "author": "jtydhr88", - "title": "ComfyUI-Workflow-Encrypt", - "reference": "https://github.com/jtydhr88/ComfyUI-Workflow-Encrypt", - "files": [ - "https://github.com/jtydhr88/ComfyUI-Workflow-Encrypt" - ], - "install_type": "git-clone", - "description": "Encrypt your comfyui workflow, and share it with key" - }, - { - "author": "ronniebasak", - "title": "ComfyUI-Tara-LLM-Integration", - "reference": "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration", - "files": [ - "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration" - ], - "install_type": "git-clone", - "description": "Tara is a powerful node for ComfyUI that integrates Large Language Models (LLMs) to enhance and automate workflow processes. With Tara, you can create complex, intelligent workflows that refine and generate content, manage API keys, and seamlessly integrate various LLMs into your projects." - }, - { - "author": "SLAPaper", - "title": "ComfyUI DPM++ 2M Alt Sampler", - "reference": "https://github.com/SLAPaper/ComfyUI-dpmpp_2m_alt-Sampler", - "files": [ - "https://github.com/SLAPaper/ComfyUI-dpmpp_2m_alt-Sampler" - ], - "install_type": "git-clone", - "description": "the sampler introduced by [a/hallatore](https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/8457)\ncode extracted from [a/smZNodes](https://github.com/shiimizu/ComfyUI_smZNodes)" - }, - { - "author": "yuvraj108c", - "title": "ComfyUI PiperTTS", - "reference": "https://github.com/yuvraj108c/ComfyUI-PiperTTS", - "files": [ - "https://github.com/yuvraj108c/ComfyUI-PiperTTS" - ], - "install_type": "git-clone", - "description": "Convert Text-to-Speech inside ComfyUI using [a/Piper](https://github.com/rhasspy/piper)" + "description": "Custom nodes for ComfyUI with specialized image processing and saving functionality." } ] -} \ No newline at end of file +} diff --git a/node_db/new/extension-node-map.json b/node_db/new/extension-node-map.json index 1d6206f1..22913630 100644 --- a/node_db/new/extension-node-map.json +++ b/node_db/new/extension-node-map.json @@ -1,5 +1,5 @@ { - "https://gist.github.com/alkemann/7361b8eb966f29c8238fd323409efb68/raw/f9605be0b38d38d3e3a2988f89248ff557010076/alkemann.py": [ + "https://gist.githubusercontent.com/alkemann/7361b8eb966f29c8238fd323409efb68/raw/f9605be0b38d38d3e3a2988f89248ff557010076/alkemann.py": [ [ "Int to Text", "Save A1 Image", @@ -15,7 +15,43 @@ "MMakerColorEnhance" ], { - "title_aux": "Color Enhance" + "title_aux": "mmaker/Color Enhance" + } + ], + "https://gitee.com/yyh915/jkha-load-img": [ + [ + "JkhaLoadImage" + ], + { + "title_aux": "ImageLoadFromLocalOrUrl Node for ComfyUI" + } + ], + "https://github.com/0x-jerry/comfyui-rembg": [ + [ + "Load Rembg Model", + "Rembg Remove background" + ], + { + "title_aux": "0x-jerry/Rembg Background Removal Node for ComfyUI" + } + ], + "https://github.com/0xRavenBlack/ComfyUI-OOP": [ + [ + "OOPAnimalNode", + "OOPClothingNode", + "OOPEnvironmentNode", + "OOPEyesNode", + "OOPHairNode", + "OOPLocationNode", + "OOPMouthNode", + "OOPNode", + "OOPPersonNode", + "OOPPoseNode", + "OOPStyleNode", + "OOPViewNode" + ], + { + "title_aux": "ComfyUI-OOP" } ], "https://github.com/0xbitches/ComfyUI-LCM": [ @@ -29,13 +65,201 @@ "title_aux": "Latent Consistency Model for ComfyUI" } ], - "https://github.com/1038lab/ComfyUI-GPT2P": [ + "https://github.com/1038lab/ComfyUI-EdgeTTS": [ [ - "GPT2PNode", - "ShowText_GPT2P" + "EdgeTTS", + "Save_Audio", + "WhisperSTT" ], { - "title_aux": "ComfyUI-GPT2P" + "title_aux": "ComfyUI-EdgeTTS" + } + ], + "https://github.com/1038lab/ComfyUI-JoyCaption": [ + [ + "CaptionSaver", + "ImageBatchPath", + "JC", + "JC_ExtraOptions", + "JC_GGUF", + "JC_GGUF_adv", + "JC_adv" + ], + { + "title_aux": "ComfyUI-JoyCaption" + } + ], + "https://github.com/1038lab/ComfyUI-LBM": [ + [ + "LBM_DepthNormal", + "LBM_Relighting" + ], + { + "title_aux": "ComfyUI-LBM" + } + ], + "https://github.com/1038lab/ComfyUI-MegaTTS": [ + [ + "MegaTTS3", + "MegaTTS3S", + "MegaTTS_VoiceMaker" + ], + { + "title_aux": "ComfyUI-MegaTTS" + } + ], + "https://github.com/1038lab/ComfyUI-MiniCPM": [ + [ + "AILab_MiniCPM_V", + "AILab_MiniCPM_V_Advanced", + "AILab_MiniCPM_V_GGUF", + "AILab_MiniCPM_V_GGUF_Advanced" + ], + { + "title_aux": "ComfyUI-MiniCPM" + } + ], + "https://github.com/1038lab/ComfyUI-MiniMax-Remover": [ + [ + "ImageSizeAdjuster", + "MinimaxImageRemover", + "MinimaxModelLoader", + "MinimaxVideoLoader", + "MinimaxVideoRemover" + ], + { + "title_aux": "ComfyUI-MiniMax-Remover" + } + ], + "https://github.com/1038lab/ComfyUI-Mosaic": [ + [ + "MosaicCreator", + "MosaicDetector" + ], + { + "title_aux": "ComfyUI-Mosaic" + } + ], + "https://github.com/1038lab/ComfyUI-OmniGen": [ + [ + "ailab_OmniGen" + ], + { + "title_aux": "ComfyUI-OmniGen" + } + ], + "https://github.com/1038lab/ComfyUI-RMBG": [ + [ + "AILab_ColorInput", + "AILab_CropObject", + "AILab_ICLoRAConcat", + "AILab_ImageCombiner", + "AILab_ImageCompare", + "AILab_ImageCrop", + "AILab_ImageMaskConvert", + "AILab_ImageMaskResize", + "AILab_ImagePreview", + "AILab_ImageStitch", + "AILab_LamaRemover", + "AILab_LoadImage", + "AILab_LoadImageAdvanced", + "AILab_LoadImageSimple", + "AILab_MaskCombiner", + "AILab_MaskEnhancer", + "AILab_MaskExtractor", + "AILab_MaskOverlay", + "AILab_MaskPreview", + "AILab_Preview", + "AILab_ReferenceLatentMask", + "AILab_SDMatte", + "BiRefNetRMBG", + "BodySegment", + "ClothesSegment", + "FaceSegment", + "FashionSegmentAccessories", + "FashionSegmentClothing", + "RMBG", + "SAM2Segment", + "Segment", + "SegmentV2" + ], + { + "title_aux": "ComfyUI-RMBG" + } + ], + "https://github.com/1038lab/ComfyUI-ReduxFineTune": [ + [ + "ClipVisionStyleLoader", + "ReduxFineTune", + "ReduxFineTuneAdvanced" + ], + { + "title_aux": "ComfyUI-ReduxFineTune" + } + ], + "https://github.com/1038lab/ComfyUI-SparkTTS": [ + [ + "SparkTTS_AdvVoiceClone", + "SparkTTS_AudioRecorder", + "SparkTTS_VoiceClone", + "SparkTTS_VoiceCreator" + ], + { + "title_aux": "Comfyui-Spark-TTS" + } + ], + "https://github.com/1038lab/ComfyUI-WildPromptor": [ + [ + "AllInOneList", + "KeywordPicker", + "PromptBuilder", + "PromptConcat", + "WildPromptorAllInOne", + "WildPromptorGenerator", + "WildPromptor_DataToPromptList", + "WildPromptor_Enhancer" + ], + { + "title_aux": "ComfyUI-WildPromptor" + } + ], + "https://github.com/111496583yzy/comfyui-PuzzleCrack-Effect": [ + [ + "MyJigsawPuzzleEffect", + "MyRegionBoundaryEffect" + ], + { + "title_aux": "Jigsaw Puzzle Effect Plugin" + } + ], + "https://github.com/11dogzi/CYBERPUNK-STYLE-DIY": [ + [ + "CYBERPUNKHT" + ], + { + "title_aux": "CYBERPUNK-STYLE-DIY" + } + ], + "https://github.com/11dogzi/ComfUI-EGAdapterMadAssistant": [ + [ + "EGIPAdapter_Mad_Assistant", + "EGIPAdapter_Mad_AssistantV1", + "EGIPAdapter_Mad_AssistantV2", + "EGIPAdapter_Mad_AssistantV3", + "EGIPAdapter_Mad_AssistantV4", + "EGIPAdapter_Mad_AssistantV5", + "EGIPAdapter_Mad_AssistantV6" + ], + { + "title_aux": "ComfUI-EGAdapterMadAssistant" + } + ], + "https://github.com/11dogzi/Comfyui-HYPIR": [ + [ + "HYPIRAdvancedRestoration" + ], + { + "title_aux": "HYPIR ComfyUI Plugin" } ], "https://github.com/11dogzi/Comfyui-ergouzi-Nodes": [ @@ -84,6 +308,7 @@ "EG_ZZ_BSYH", "EG_ZZ_BYYH", "EG_ZZ_HSYH", + "EG_ZZ_MHHT", "EG_ZZ_SSKZ", "ER_JBCH", "ER_TX_ZZCJ" @@ -92,53 +317,217 @@ "title_aux": "Comfyui-ergouzi-Nodes" } ], + "https://github.com/11dogzi/Comfyui-ergouzi-kaiguan": [ + [ + "ALLty", + "EGRWGL", + "EGRYDZQHNode", + "EGSEED", + "GroupSwitchNode", + "GroupSwitchNodee", + "GroupSwitchNodeee", + "GroupSwitchNodeeee", + "GroupSwitchNodi", + "hulue", + "jinyong" + ], + { + "title_aux": "Comfyui-ergouzi-kaiguan" + } + ], + "https://github.com/11dogzi/Comfyui-ergouzi-samplers": [ + [ + "EGBYZZCYQ", + "EGCYQJB", + "EGCYQJBCJ" + ], + { + "title_aux": "Comfyui-ergouzi-samplers" + } + ], + "https://github.com/1hew/ComfyUI-1hewNodes": [ + [ + "ImageAddLabel", + "ImageBBoxOverlayByMask", + "ImageBatchToList", + "ImageBlendModesByAlpha", + "ImageBlendModesByCSS", + "ImageCropByMaskAlpha", + "ImageCropSquare", + "ImageCropWithBBoxMask", + "ImageEdgeCropPad", + "ImageEditStitch", + "ImageGetSize", + "ImageHLFreqCombine", + "ImageHLFreqSeparate", + "ImageHLFreqTransform", + "ImageListAppend", + "ImageListToBatch", + "ImageLumaMatte", + "ImagePasteByBBoxMask", + "ImagePlot", + "ImageResizeFluxKontext", + "ImageResizeUniversal", + "ImageRotateWithMask", + "ImageSolid", + "ImageStrokeByMask", + "ImageTileMerge", + "ImageTileSplit", + "ImageTileSplitPreset", + "ListCustomFloat", + "ListCustomInt", + "ListCustomSeed", + "ListCustomString", + "MaskBatchMathOps", + "MaskBatchToList", + "MaskCropByBBoxMask", + "MaskFillHole", + "MaskListToBatch", + "MaskMathOps", + "MaskPasteByBBoxMask", + "PathBuild", + "RangeMapping", + "StepSplit", + "StringCoordinateToBBoxMask", + "StringCoordinateToBBoxes", + "TextCustomExtract", + "TextFilterComment", + "TextJoinByTextList", + "TextJoinMulti", + "TextLoadLocal", + "TextPrefixSuffix" + ], + { + "title_aux": "ComfyUI 1hewNodes" + } + ], "https://github.com/1mckw/Comfyui-Gelbooru": [ [ "Gelbooru (ID)", - "Gelbooru (Random)" + "Gelbooru (Random)", + "UrlsToImage" ], { "title_aux": "Comfyui-Gelbooru" } ], - "https://github.com/1shadow1/hayo_comfyui_nodes/raw/main/LZCNodes.py": [ + "https://github.com/1zhangyy1/comfyui-vidu-nodes": [ [ - "LoadPILImages", - "MergeImages", - "make_transparentmask", - "tensor_trans_pil", - "words_generatee" + "Character2Video", + "Image2Video", + "StartEnd2Video", + "Text2Video", + "UpscaleVideo", + "VideoDownloader" ], { - "title_aux": "Hayo comfyui nodes" + "title_aux": "ComfyUI VIDU" } ], - "https://github.com/42lux/ComfyUI-safety-checker": [ + "https://github.com/2frames/ComfyUI-AQnodes": [ [ - "Safety Checker" + "AQ_BatchAverageImage", + "AQ_BlendImages", + "AQ_CLIPSetLastLayer", + "AQ_ColorMatchImage", + "AQ_Gemini", + "AQ_ImageMaskSwitch", + "AQ_Image_DetailTransfer", + "AQ_Image_Pad", + "AQ_Increment", + "AQ_LoadImageBase64", + "AQ_MasksAndImagesAsList", + "AQ_Qwen", + "AQ_QwenLoader", + "AQ_Random", + "AQ_SaveImageWebpReturnBase64", + "AQ_SendImageToAPI", + "AQ_multiface_ApplyPulidFlux" ], { - "title_aux": "ComfyUI-safety-checker" + "title_aux": "AQnodes for ComfyUI" + } + ], + "https://github.com/2kpr/ComfyUI-PMRF": [ + [ + "PMRF" + ], + { + "title_aux": "ComfyUI-PMRF" + } + ], + "https://github.com/2kpr/ComfyUI-UltraPixel": [ + [ + "UltraPixelLoad", + "UltraPixelProcess" + ], + { + "author": "italo", + "title_aux": "ComfyUI-UltraPixel" + } + ], + "https://github.com/311-code/ComfyUI-MagicClip_Strength": [ + [ + "CLIPTextEncodeSDXL_311_code" + ], + { + "title_aux": "ComfyUI MagicClip_Strength for SDXL" + } + ], + "https://github.com/31702160136/ComfyUI-GrsAI": [ + [ + "GPTImage_ImageToImage", + "GPTImage_TextToImage", + "GrsaiFluxKontext_ImageToImage", + "GrsaiFluxKontext_MultiImageToImage", + "GrsaiFluxKontext_TextToImage" + ], + { + "title_aux": "GrsAI api in ComfyUI" + } + ], + "https://github.com/42lux/ComfyUI-42lux": [ + [ + "FluxEmptyLatentSizePicker", + "HighResFixApply", + "HighResFixConditioningDuplicator", + "HighResFixModelInjection", + "ModelSamplingFluxNormalized", + "STORKSamplerSelect", + "SoulSampler", + "SoulSamplerAdvanced", + "SoulSamplerDPM", + "SoulSamplerDPMAdvanced", + "SoulSamplerHybrid", + "SoulSamplerHybridAdvanced" + ], + { + "title_aux": "ComfyUI-42lux" } ], "https://github.com/438443467/ComfyUI-GPT4V-Image-Captioner": [ [ - "GPT4VCaptioner", - "Image Load with Metadata", - "SAMIN String Attribute Selector", - "SANMIN ChineseToCharacter", - "SANMIN ClothingWildcards", - "SANMIN ConvertToEnglish", - "SANMIN LoadPathImagesPreview", - "SANMIN SanmiSaveImageToLocal", - "SANMIN SimpleWildcards", - "Samin Counter", - "Samin Load Image Batch" + "GPT4VCaptioner" ], { "title_aux": "ComfyUI-GPT4V-Image-Captioner" } ], + "https://github.com/45uee/ComfyUI-Color_Transfer": [ + [ + "ColorPalette", + "ColorTransferReinhard", + "PaletteOptimalTransportTransfer", + "PaletteRbfTransfer", + "PaletteTransfer", + "PaletteTransferReinhard", + "PalleteTransferClustering", + "PalletteSoftTransfer" + ], + { + "title_aux": "ComfyUI-Color_Transfer" + } + ], "https://github.com/54rt1n/ComfyUI-DareMerge": [ [ "DM_AdvancedDareModelMerger", @@ -171,6 +560,221 @@ "title_aux": "ComfyUI-DareMerge" } ], + "https://github.com/5x00/ComfyUI-PiAPI-Faceswap": [ + [ + "Face Swapper" + ], + { + "title_aux": "ComfyUI-PiAPI-Faceswap" + } + ], + "https://github.com/5x00/ComfyUI-VLM-Captions": [ + [ + "Image To Caption" + ], + { + "title_aux": "ComfyUI-VLM_Captions" + } + ], + "https://github.com/6174/comflowy-nodes": [ + [ + "Comflowy_Clarity_Upscale", + "Comflowy_Extract_JSON", + "Comflowy_Flux", + "Comflowy_Flux_Dev_Lora", + "Comflowy_Flux_Pro_Ultra", + "Comflowy_Hailuo", + "Comflowy_Http_Request", + "Comflowy_Ideogram", + "Comflowy_Kling", + "Comflowy_LLM", + "Comflowy_Load_JSON", + "Comflowy_Luma", + "Comflowy_Omost_LLM", + "Comflowy_Omost_Load_Canvas_Conditioning", + "Comflowy_Omost_Load_Canvas_Python_Code", + "Comflowy_Omost_Preview", + "Comflowy_Omost_To_Conditioning", + "Comflowy_Preview_JSON", + "Comflowy_Preview_Video", + "Comflowy_Recraft", + "Comflowy_Set_API_Key" + ], + { + "title_aux": "Comflowy's Custom Nodes" + } + ], + "https://github.com/807502278/ComfyUI-3D-MeshTool": [ + [ + "Auto_Normal", + "List_to_Tensor", + "Load_OBJ", + "Mesh_Clean_Data", + "Mesh_Cleanup", + "Mesh_Data_Get", + "Mesh_Data_Set", + "Mesh_Data_Statistics", + "Mesh_Optimization", + "Mesh_Subdivide", + "RT-to-camposes", + "Tensor_to_List", + "UV_options", + "UnwrapUV_Auto_xatlas", + "UnwrapUV_xatlas", + "array-append", + "array-attribute", + "array-convert", + "array-end-increment", + "array-end-step", + "array-is-null", + "array-number-to-angle", + "array-select-element", + "array-step", + "array-step-increment", + "array-t", + "array-to-camposes", + "cam-pos-bus", + "get-tensor-shape", + "img-bath-rotationZ", + "img-to-tensor", + "json-to-campos", + "mesh_data_bus", + "mesh_remap_cubvh", + "ply_load", + "ply_normalize", + "ply_save", + "show_any", + "string-to-array", + "tensor-new", + "tensor-shape", + "tensor-to-img", + "vc_to_texture" + ], + { + "author": "807502278", + "description": "A simple 3D model processing tool within ComfyUI", + "nickname": "3D Mesh Tool", + "title": "3D Mesh Tool", + "title_aux": "ComfyUI-3D-MeshTool" + } + ], + "https://github.com/807502278/ComfyUI-WJNodes": [ + [ + "Accurate_mask_clipping", + "Any_Pipe", + "ApplyEasyOCR_batch", + "AudioDuration_wan", + "Batch_Average", + "Bilateral_Filter", + "ColorData_HSV_Capture", + "Color_Data_Break", + "Color_check_Name", + "ComfyUI_Path_Out", + "Composite_Application_pro", + "Composite_Basic", + "Composite_Batch", + "Composite_Canvas_adv", + "Composite_Coordinate", + "Composite_Global_adv", + "Composite_Mask", + "Composite_Merge_pro", + "Composite_Other", + "Composite_Scale", + "Cutting_video", + "Detecting_videos_mask", + "Determine_Type", + "Folder_Operations_CH", + "Graphics_Detection_Reference", + "ImageCompositeMask_Adv", + "ListMerger", + "Load_Image_Adv", + "Load_Image_From_Path", + "Mask_Detection", + "PrimitiveNode", + "QwenImage_ratio", + "Random_Select_Prompt", + "Robust_Imager_Merge", + "Run_BEN_v2", + "Run_torchvision_model", + "Sam2AutoSegmentation_data", + "SaveMP4", + "SaveMP4_batch", + "Save_Image_Out", + "Save_Image_To_Path", + "SegmDetectorCombined_batch", + "SelectBatch_paragraph", + "Select_Batch_v2", + "Select_Images_Batch", + "Split_Path", + "Str_Append", + "Video_Fade", + "Video_MaskBasedSplit", + "Video_OverlappingSeparation_test", + "WAS_Mask_Fill_Region_batch", + "adv_crop", + "any_math", + "any_math_v2", + "audio_resample", + "audio_scale", + "bbox_restore_mask", + "color_segmentation", + "color_segmentation_v2", + "coords_select_mask", + "crop_by_bboxs", + "crop_data_CoordinateSmooth", + "crop_data_edit", + "filter_DensePose_color", + "get_image_data", + "get_image_ratio", + "image_math", + "image_math_value", + "image_scale_pixel_option", + "image_scale_pixel_v2", + "image_url_download", + "invert_channel_adv", + "load_BEN_model", + "load_ColorName_config", + "load_EasyOCR_model", + "load_color_config", + "load_model_value", + "load_torchvision_model", + "maskCompositeMask_Adv", + "mask_and_mask_math", + "mask_crop_option_Basic", + "mask_crop_option_SmoothCrop", + "mask_crop_square", + "mask_line_mapping", + "mask_select_mask", + "ratio_selector", + "run_yolo_bboxs", + "run_yolo_bboxs_v2", + "sort_images_batch" + ], + { + "title_aux": "ComfyUI-WJNodes" + } + ], + "https://github.com/807502278/ComfyUI_MaskGCT": [ + [ + "audio_capture_percentage", + "audio_resample", + "audio_scale", + "from_path_load_audio", + "get_audio_data", + "get_text_data", + "load_maskgct_model", + "load_w2vbert_model", + "maskgct_pipeline", + "maskgct_run_v2", + "maskgct_setting", + "multilingual_slice", + "remove_blank_space", + "whisper_large_v3" + ], + { + "title_aux": "ComfyUI_MaskGCT" + } + ], "https://github.com/80sVectorz/ComfyUI-Static-Primitives": [ [ "FloatStaticPrimitive", @@ -182,12 +786,241 @@ "title_aux": "ComfyUI-Static-Primitives" } ], - "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE": [ + "https://github.com/834t/ComfyUI_834t_scene_composer": [ [ - "PixelOE" + "B34tSceneComposerNode" ], { - "title_aux": "ComfyUI-PixelOE" + "title_aux": "Scene Composer for ComfyUI" + } + ], + "https://github.com/852wa/ComfyUI-AAP": [ + [ + "AdvancedAlphaProcessor" + ], + { + "title_aux": "ComfyUI-AdvancedAlphaProcessor" + } + ], + "https://github.com/852wa/ComfyUI-ColorshiftColor": [ + [ + "ColorshiftColor", + "CsCFill", + "CsCPaletteEditor" + ], + { + "title_aux": "ComfyUI-ColorshiftColor" + } + ], + "https://github.com/A043-studios/ComfyUI-ASDF-Pixel-Sort-Nodes": [ + [ + "PixelSortAdvancedNode", + "PixelSortNode" + ], + { + "title_aux": "ComfyUI ASDF Pixel Sort Nodes" + } + ], + "https://github.com/A043-studios/ComfyUI-OmniSVG": [ + [ + "OmniSVG Image to SVG", + "OmniSVG Model Loader", + "OmniSVG Text to SVG", + "SVG Saver", + "SVG to Image" + ], + { + "title_aux": "ComfyUI OmniSVG Nodes" + } + ], + "https://github.com/A043-studios/ComfyUI_HunyuanWorldnode": [ + [ + "HunyuanWorldHybridNode", + "HunyuanWorldImageTo3D", + "HunyuanWorldModelLoader", + "HunyuanWorldSimplifiedWrapper" + ], + { + "title_aux": "ComfyUI HunyuanWorld - Complete 3D Generation Suite" + } + ], + "https://github.com/A043-studios/Comfyui-ascii-generator": [ + [ + "ASCIIGeneratorNode" + ], + { + "title_aux": "ComfyUI ASCII Generator Node" + } + ], + "https://github.com/A043-studios/comfyui-deforum-x-flux-nodes": [ + [ + "DeforumAnimParamsNode", + "DeforumBaseParamsNode", + "DeforumCacheLatentNode", + "DeforumConditioningBlendNode", + "DeforumDepthWarping", + "DeforumDiffusionParamsNode", + "DeforumFluxSampler", + "DeforumGetCachedLatentNode", + "DeforumInterpolation", + "DeforumIteratorNode", + "DeforumPromptNode", + "DeforumRenderer", + "DeforumTranslationParamsNode", + "DeforumVideoInput", + "DeforumVideoOutput" + ], + { + "title_aux": "ComfyUI Deforum-X-Flux Nodes" + } + ], + "https://github.com/A043-studios/comfyui-pixel3dmm": [ + [ + "FLAMEOptimizer", + "FaceReconstructor3D", + "MeshExporter", + "NormalPredictor", + "Pixel3DMMLoader", + "UVPredictor" + ], + { + "title_aux": "Pixel3DMM ComfyUI Nodes" + } + ], + "https://github.com/A4P7J1N7M05OT/ComfyUI-AutoColorGimp": [ + [ + "AutoColorGimp" + ], + { + "title_aux": "ComfyUI-AutoColorGimp" + } + ], + "https://github.com/A4P7J1N7M05OT/ComfyUI-PixelOE-Wrapper": [ + [ + "PixelOE", + "PixelOETorch" + ], + { + "title_aux": "ComfyUI-PixelOE-Wrapper" + } + ], + "https://github.com/AARG-FAN/Image-Vector-for-ComfyUI": [ + [ + "AIraster" + ], + { + "title_aux": "Image-vector-for-ComfyUI" + } + ], + "https://github.com/AEmotionStudio/ComfyUI-DiscordSend": [ + [ + "DiscordSendSaveImage", + "DiscordSendSaveVideo" + ], + { + "title_aux": "ComfyUI-DiscordSend" + } + ], + "https://github.com/AEmotionStudio/ComfyUI-ShaderNoiseKSampler": [ + [ + "AdvancedImageComparer", + "ShaderNoiseKSampler", + "ShaderNoiseKSamplerDirect", + "Video Comparer", + "VideoComparer" + ], + { + "title_aux": "ComfyUI-ShaderNoiseKSampler" + } + ], + "https://github.com/AIExplorer25/ComfyUI_AutoDownloadModels": [ + [ + "ALIMAMAFUNCONTROLWANModelsAutoDownload", + "AutoDownloadALLModels", + "AutoDownloadModels", + "AutoInstallRequirements_txt", + "GetModelsFromWorkflow", + "SetModelPath", + "ShowModelsAndFolderMappings", + "WANALMAMAModelsAutoDownload", + "WANModelsAutoDownload" + ], + { + "title_aux": "ComfyUI_AutoDownloadModels" + } + ], + "https://github.com/AIExplorer25/ComfyUI_ChatGptHelper": [ + [ + "ChatGptHelper" + ], + { + "title_aux": "ComfyUI_ChatGptHelper" + } + ], + "https://github.com/AIExplorer25/ComfyUI_ImageCaptioner": [ + [ + "CheckImageCaptionsData", + "ImageCaptioner", + "ImageCaptionerPostProcessing", + "Quen3Helper", + "Quen3HelperGGUF", + "SingleImageCaptioner" + ], + { + "title_aux": "ComfyUI_ImageCaptioner" + } + ], + "https://github.com/AIFSH/AniTalker-ComfyUI": [ + [ + "AniTalkerNode", + "PreViewVideo" + ], + { + "title_aux": "AniTalker-ComfyUI" + } + ], + "https://github.com/AIFSH/ComfyUI-3d-photo-inpainting": [ + [ + "LoadImagePath", + "PreViewVideo", + "TreeDNode" + ], + { + "title_aux": "ComfyUI-3d-photo-inpainting" + } + ], + "https://github.com/AIFSH/ComfyUI-AuraSR": [ + [ + "AuraSRNode" + ], + { + "title_aux": "AIFSH/ComfyUI-AuraSR" + } + ], + "https://github.com/AIFSH/ComfyUI-DiffSynth-Studio": [ + [ + "ControlNetPathLoader", + "DiffTextNode", + "DiffutoonNode", + "ExVideoNode", + "LoadVideo", + "PreViewVideo", + "SDPathLoader" + ], + { + "title_aux": "ComfyUI-DiffSynth-Studio" + } + ], + "https://github.com/AIFSH/ComfyUI-FishSpeech": [ + [ + "FishSpeech_INFER", + "FishSpeech_INFER_SRT", + "LoadAudio", + "LoadSRT", + "PreViewAudio" + ], + { + "title_aux": "ComfyUI-FishSpeech" } ], "https://github.com/AIFSH/ComfyUI-GPT_SoVITS": [ @@ -203,6 +1036,29 @@ "title_aux": "ComfyUI-GPT_SoVITS" } ], + "https://github.com/AIFSH/ComfyUI-Hallo": [ + [ + "HalloNode", + "LoadAudioPath", + "LoadImagePath", + "PreViewVideo" + ], + { + "title_aux": "ComfyUI-Hallo" + } + ], + "https://github.com/AIFSH/ComfyUI-I2V-Adapter": [ + [ + "I2V_AdapterNode", + "LoraPathLoader", + "MotionLoraLoader", + "PreViewVideo", + "PromptNode" + ], + { + "title_aux": "ComfyUI-I2V-Adapter" + } + ], "https://github.com/AIFSH/ComfyUI-IP_LAP": [ [ "CombineAudioVideo", @@ -214,20 +1070,71 @@ "title_aux": "ComfyUI-IP_LAP" } ], + "https://github.com/AIFSH/ComfyUI-Live2DViewer": [ + [ + "Live2DViewer", + "LoadAudio" + ], + { + "title_aux": "ComfyUI-Live2DViewer" + } + ], + "https://github.com/AIFSH/ComfyUI-MARS5-TTS": [ + [ + "LoadAudioPath", + "MARS5TTS_Node", + "PreViewAudio", + "TTSTextEncode" + ], + { + "title_aux": "ComfyUI-MARS5-TTS" + } + ], + "https://github.com/AIFSH/ComfyUI-MimicBrush": [ + [ + "MimicBrushNode" + ], + { + "title_aux": "ComfyUI-MimicBrush" + } + ], + "https://github.com/AIFSH/ComfyUI-MimicMotion": [ + [ + "LoadVideo", + "MimicMotionNode", + "PreViewVideo" + ], + { + "title_aux": "ComfyUI-MimicMotion" + } + ], "https://github.com/AIFSH/ComfyUI-MuseTalk_FSH": [ [ "CombineAudioVideo", "LoadVideo", "MuseTalk", + "MuseTalkRealTime", "PreViewVideo" ], { "title_aux": "ComfyUI-MuseTalk_FSH" } ], + "https://github.com/AIFSH/ComfyUI-RVC": [ + [ + "CombineAudio", + "LoadAudio", + "PreViewAudio", + "RVC_Infer", + "RVC_Train" + ], + { + "title_aux": "ComfyUI-RVC" + } + ], "https://github.com/AIFSH/ComfyUI-UVR5": [ [ - "LoadAudio", + "LoadAudioPath", "PreViewAudio", "UVR5_Node" ], @@ -235,6 +1142,286 @@ "title_aux": "ComfyUI-UVR5" } ], + "https://github.com/AIFSH/ComfyUI-UniAnimate": [ + [ + "LoadImagePath", + "LoadVideo", + "PoseAlignNode", + "PreViewVideo", + "UniAnimateNode" + ], + { + "title_aux": "ComfyUI-UniAnimate" + } + ], + "https://github.com/AIFSH/ComfyUI-WhisperX": [ + [ + "LoadAudioVideoPath", + "PreViewSRT", + "SRTToString", + "WhisperX" + ], + { + "title_aux": "ComfyUI-WhisperX" + } + ], + "https://github.com/AIFSH/ComfyUI-XTTS": [ + [ + "LoadAudioPath", + "LoadSRT", + "PreViewAudio", + "XTTS_INFER", + "XTTS_INFER_SRT" + ], + { + "title_aux": "ComfyUI-XTTS" + } + ], + "https://github.com/AIFSH/ComfyUI_V-Express": [ + [ + "LoadAudioPath", + "LoadImagePath", + "LoadVideo", + "PreViewVideo", + "VExpress" + ], + { + "title_aux": "ComfyUI_V-Express" + } + ], + "https://github.com/AIFSH/CosyVoice-ComfyUI": [ + [ + "CosyVoiceDubbingNode", + "CosyVoiceNode", + "LoadSRT", + "TextNode" + ], + { + "title_aux": "CosyVoice-ComfyUI" + } + ], + "https://github.com/AIFSH/DHLive-ComfyUI": [ + [ + "CombineVideo", + "DHLIVELoadVideo", + "DHLiveNode", + "PreViewVideo", + "StaticVideo" + ], + { + "title_aux": "DHLive-ComfyUI" + } + ], + "https://github.com/AIFSH/DiffMorpher-ComfyUI": [ + [ + "DiffMorpherNode", + "PreViewGIF", + "TextNode" + ], + { + "title_aux": "DiffMorpher-ComfyUI" + } + ], + "https://github.com/AIFSH/DiffSynth-ComfyUI": [ + [ + "CogVideoNode", + "DownloadModelsNode", + "LoadVideo", + "PreViewVideo", + "TextEncode" + ], + { + "title_aux": "DiffSynth-ComfyUI" + } + ], + "https://github.com/AIFSH/EchoMimicV2-ComfyUI": [ + [ + "EchoMimicV2Node", + "EchoMimicV2PoseNode" + ], + { + "title_aux": "EchoMimicV2-ComfyUI" + } + ], + "https://github.com/AIFSH/EzAudio-ComfyUI": [ + [ + "EzAudioControlNetNode", + "EzAudioEditNode", + "EzAudioNode", + "TextPromptNode" + ], + { + "title_aux": "EzAudio-ComfyUI" + } + ], + "https://github.com/AIFSH/F5-TTS-ComfyUI": [ + [ + "F5TTSNode" + ], + { + "title_aux": "F5-TTS-ComfyUI" + } + ], + "https://github.com/AIFSH/FancyVideo-ComfyUI": [ + [ + "FancyVideoI2VNode", + "FancyVideoV2VNode" + ], + { + "title_aux": "FancyVideo-ComfyUI" + } + ], + "https://github.com/AIFSH/FireRedTTS-ComfyUI": [ + [ + "FireRedTTSNode" + ], + { + "title_aux": "FireRedTTS-ComfyUI" + } + ], + "https://github.com/AIFSH/GSTTS-ComfyUI": [ + [ + "ASRNode", + "AudioSlicerNode", + "ConfigGPTNode", + "ConfigSoVITSNode", + "DatasetNode", + "ExperienceNode", + "GSFinetuneNone", + "GSVTTSNode", + "LoadSRT", + "PreViewSRT", + "TSCY_Node", + "TextDictNode" + ], + { + "title_aux": "GSTTS-ComfyUI" + } + ], + "https://github.com/AIFSH/HivisionIDPhotos-ComfyUI": [ + [ + "AddBackgroundNode", + "AddWaterMarkNode", + "ENHivisionParamsNode", + "HivisionLayOutNode", + "HivisionNode", + "LaterProcessNode", + "ZHHivisionParamsNode" + ], + { + "author": "cuny", + "description": "", + "title_aux": "HivisionIDPhotos-ComfyUI" + } + ], + "https://github.com/AIFSH/IMAGDressing-ComfyUI": [ + [ + "IMAGDressingNode", + "TextNode" + ], + { + "title_aux": "IMAGDressing-ComfyUI" + } + ], + "https://github.com/AIFSH/JoyHallo-ComfyUI": [ + [ + "JoyHalloNode" + ], + { + "title_aux": "JoyHallo-ComfyUI" + } + ], + "https://github.com/AIFSH/MaskGCT-ComfyUI": [ + [ + "MaskGCTNode" + ], + { + "title_aux": "MaskGCT-ComfyUI" + } + ], + "https://github.com/AIFSH/MiniMates-ComfyUI": [ + [ + "MiniMatesNode" + ], + { + "title_aux": "MiniMates-ComfyUI" + } + ], + "https://github.com/AIFSH/OmniGen-ComfyUI": [ + [ + "OmniGenLoader", + "OmniGenNode" + ], + { + "title_aux": "OmniGen-ComfyUI" + } + ], + "https://github.com/AIFSH/PyramidFlow-ComfyUI": [ + [ + "PyramidFlowNode" + ], + { + "title_aux": "PyramidFlow-ComfyUI" + } + ], + "https://github.com/AIFSH/RealisDance-ComfyUI": [ + [ + "LoadFile", + "LoadVideo", + "PreViewVideo", + "RealisDanceNode" + ], + { + "title_aux": "RealisDance-ComfyUI" + } + ], + "https://github.com/AIFSH/SenseVoice-ComfyUI": [ + [ + "SenseVoiceNode", + "ShowTextNode" + ], + { + "title_aux": "SenseVoice-ComfyUI" + } + ], + "https://github.com/AIFSH/StyleShot-ComfyUI": [ + [ + "StyleShotNode", + "TextNode" + ], + { + "title_aux": "StyleShot-ComfyUI" + } + ], + "https://github.com/AIFSH/VideoSys-ComfyUI": [ + [ + "PreViewVideo", + "TextNode", + "VideoSysNode" + ], + { + "title_aux": "VideoSys-ComfyUI" + } + ], + "https://github.com/AIFSH/ViewCrafter-ComfyUI": [ + [ + "LoadVideo", + "PreViewVideo", + "ViewCrafterTxTNode" + ], + { + "title_aux": "ViewCrafter-ComfyUI" + } + ], + "https://github.com/AIFSH/VocalSeparation-ComfyUI": [ + [ + "CombineAudioNode", + "VocalSeparationNode" + ], + { + "title_aux": "VocalSeparation-ComfyUI" + } + ], "https://github.com/AIGCTeam/ComfyUI_kkTranslator_nodes": [ [ "LoadMarianMTCheckPoint", @@ -258,6 +1445,9 @@ "OpenPoseKeyPose", "OpenPoseLineart", "OpenPoseMediaPipeFace", + "PreviewAudio", + "SaveAudioBL", + "SaveModel", "\u5b58\u50a8", "\u5bfc\u5165", "\u622a\u56fe", @@ -269,6 +1459,70 @@ "title_aux": "ComfyUI-CUP" } ], + "https://github.com/AIGODLIKE/ComfyUI-ToonCrafter": [ + [ + "ToonCrafterNode", + "ToonCrafterWithSketch" + ], + { + "title_aux": "ComfyUI-ToonCrafter" + } + ], + "https://github.com/AIPOQUE/ComfyUI-APQNodes": [ + [ + "ColorPalette|AIPOQUE" + ], + { + "title_aux": "ComfyUI-APQNodes" + } + ], + "https://github.com/AIToldMeTo/comfyui-cache-cleaner": [ + [ + "CacheCleaner" + ], + { + "title_aux": "ComfyUI Cache Cleaner Node" + } + ], + "https://github.com/AIWarper/ComfyUI-DAViD": [ + [ + "DAViDDepthVisualizer", + "DAViDMultiTask", + "DAViDNormalToLight" + ], + { + "title_aux": "ComfyUI-DAViD" + } + ], + "https://github.com/AIWarper/ComfyUI-NormalCrafterWrapper": [ + [ + "DetailTransfer", + "NormalCrafterNode" + ], + { + "title_aux": "NormalCrafterWrapper" + } + ], + "https://github.com/AIWarper/ComfyUI-WarperNodes": [ + [ + "AspectRatioResolution_Warper", + "CropAndRestore_Warper", + "DWPoseScalerNode_Warper", + "FacialPartMaskFromPose_Warper", + "FlowConfig_Warper", + "FlowGetFlow_Warper", + "FlowVisualizerNode_Warper", + "GetBatchByIndex_Warper", + "GetRaftFlow_Warper", + "MouthMaskFromPose_Warper", + "PreprocessForTarget_Warper", + "SmartOverlappingBatcher_Warper", + "SmartVideoBatcher_Warper" + ], + { + "title_aux": "ComfyUI Warper Nodes" + } + ], "https://github.com/AInseven/ComfyUI-fastblend": [ [ "FillDarkMask", @@ -299,28 +1553,164 @@ "title_aux": "One Button Prompt" } ], + "https://github.com/AJO-reading/ComfyUI-AjoNodes": [ + [ + "AJO_AudioCollectAndConcat", + "AJO_PreviewAudio", + "AJO_SaveAudio", + "AJO_VfiSkipListCalculator" + ], + { + "title_aux": "ComfyUI-AjoNodes" + } + ], + "https://github.com/AKharytonchyk/ComfyUI-telegram-bot-node": [ + [ + "SaveToTelegram", + "TelegramListener", + "author", + "description", + "files", + "install_type", + "keywords", + "license", + "name", + "nodename_pattern", + "pip", + "reference", + "version" + ], + { + "title_aux": "ComfyUI-telegram-bot-node" + } + ], "https://github.com/ALatentPlace/ComfyUI_yanc": [ [ + "> Bloom", + "> Blur", + "> Brightness", "> Clear Text", + "> Combine Channels", + "> Contrast", + "> Divide Channels", + "> Edge Enhance", + "> Film Grain", "> Float to Int", + "> Fog", + "> Get Mean Color", + "> HUE", "> Int", "> Int to Text", + "> Layer Weights (for IPAMS)", + "> Lens Distortion", + "> Light Source Mask", "> Load Image", "> Load Image From Folder", + "> Mask Curves", + "> NIKSampler", + "> Noise From Image", + "> Normal Map Lighting", + "> RGB Color", + "> RGB Shift", "> Resolution by Aspect Ratio", "> Rotate Image", + "> Saturation", "> Save Image", + "> Save Text", "> Scale Image to Side", + "> Scanlines", + "> Sharpen", "> Text", "> Text Combine", + "> Text Count", + "> Text Pick Line by Index", "> Text Pick Random Line", "> Text Random Weights", - "> Text Replace" + "> Text Replace", + "> Vignette" ], { "title_aux": "ComfyUI_yanc" } ], + "https://github.com/ALatentPlace/YANC_LMStudio": [ + [ + "> LMStudio", + "> Select LMS Model" + ], + { + "title_aux": "YANC_LMStudio" + } + ], + "https://github.com/APZmedia/APZmedia-comfy-together-lora": [ + [ + "TogetherImageGenerator", + "TogetherImageGeneratorLoRA" + ], + { + "title_aux": "APZmedia Together Image Generator for ComfyUI" + } + ], + "https://github.com/APZmedia/APZmedia-comfyui-fast-image-save": [ + [ + "APZmedia Fast image save" + ], + { + "title_aux": "APZmedia Fast Image Save Node" + } + ], + "https://github.com/APZmedia/ComfyUI-APZmedia-cleanName-from-string": [ + [ + "APZmediaGenerateFilePath", + "APZmediaImageFilename", + "APZmediaReadWidget", + "APZmediaStandardFilenameBuilder", + "CleanFileNameNode" + ], + { + "title_aux": "APZmedia Naming Tools" + } + ], + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA": [ + [ + "CachingCLIPTextEncodeFlux|ARZUMATA", + "CachingCLIPTextEncode|ARZUMATA", + "ImageCacher", + "ImageLoaderWithPath|ARZUMATA", + "JDC_ImageLoader", + "Sampler Selector|ARZUMATA", + "Scheduler Selector|ARZUMATA" + ], + { + "title_aux": "ComfyUI-ARZUMATA" + } + ], + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-PixelIt": [ + [ + "PixelIt" + ], + { + "title_aux": "ComfyUI-ARZUMATA-PixelIt" + } + ], + "https://github.com/ARZUMATA/ComfyUI-ARZUMATA-Qwen2": [ + [ + "Image2Base64", + "Qwen2ModelLoader", + "Qwen2ModelRunInference" + ], + { + "title_aux": "ComfyUI-Qwen2" + } + ], + "https://github.com/Aaron-CHM/ComfyUI-z-a1111-sd-webui-DanTagGen": [ + [ + "DanTagGen" + ], + { + "title_aux": "z-a1111-sd-webui-DanTagGen" + } + ], "https://github.com/AbdullahAlfaraj/Comfy-Photoshop-SD": [ [ "APS_LatentBatch", @@ -339,15 +1729,27 @@ "title_aux": "Comfy-Photoshop-SD" } ], - "https://github.com/AbyssYuan0/ComfyUI_BadgerTools": [ + "https://github.com/AbstractEyes/comfyui-lycoris": [ + [ + "ABS_ConcatPrompts", + "ABS_PromptNode", + "LycorisLoaderNode" + ], + { + "title_aux": "comfyui-lycoris" + } + ], + "https://github.com/AbyssBadger0/ComfyUI_BadgerTools": [ [ "ApplyMaskToImage-badger", "CropImageByMask-badger", "ExpandImageWithColor-badger", "FindThickLinesFromCanny-badger", + "Find_closest_factors-badger", "FloatToInt-badger", "FloatToString-badger", "FrameToVideo-badger", + "GETRequset-badger", "GarbageCollect-badger", "GetColorFromBorder-badger", "GetDirName-badger", @@ -360,11 +1762,17 @@ "IntToString-badger", "IntToStringAdvanced-badger", "LoadImageAdvanced-badger", + "LoadImagesFromDirListAdvanced-badger", + "MapColorsToPalette-badger", + "NormalizationNumber-badger", + "ReduceColors-badger", + "RotateImageWithPadding-badger", "SegmentToMaskByPoint-badger", "SimpleBoolean-badger", "StringToFizz-badger", "TextListToString-badger", "ToPixel-badger", + "ToPixelV2-badger", "TrimTransparentEdges-badger", "VideoCutFromDir-badger", "VideoToFrame-badger", @@ -378,10 +1786,30 @@ "title_aux": "ComfyUI_BadgerTools" } ], + "https://github.com/AbyssBadger0/ComfyUI_Kolors_awesome_prompts": [ + [ + "KolorsAwesomePrompts" + ], + { + "title_aux": "Kolors Awesome Prompts" + } + ], + "https://github.com/AcademiaSD/comfyui_AcademiaSD": [ + [ + "LoopCounterToFile", + "PaddedFileName", + "PromptBatchSelector", + "ResetCounterFile" + ], + { + "title_aux": "comfyui_AcademiaSD" + } + ], "https://github.com/Acly/comfyui-inpaint-nodes": [ [ "INPAINT_ApplyFooocusInpaint", "INPAINT_DenoiseToCompositingMask", + "INPAINT_ExpandMask", "INPAINT_InpaintWithModel", "INPAINT_LoadFooocusInpaint", "INPAINT_LoadInpaintModel", @@ -396,15 +1824,126 @@ "https://github.com/Acly/comfyui-tooling-nodes": [ [ "ETN_ApplyMaskToImage", + "ETN_ApplyReferenceImages", + "ETN_AttentionMask", + "ETN_BackgroundRegion", "ETN_CropImage", + "ETN_DefineRegion", + "ETN_ExtractImageTile", + "ETN_ExtractMaskTile", + "ETN_GenerateTileMask", + "ETN_KritaCanvas", + "ETN_KritaImageLayer", + "ETN_KritaMaskLayer", + "ETN_KritaOutput", + "ETN_KritaSelection", + "ETN_KritaSendText", + "ETN_KritaStyle", + "ETN_ListRegionMasks", "ETN_LoadImageBase64", "ETN_LoadMaskBase64", - "ETN_SendImageWebSocket" + "ETN_MergeImageTile", + "ETN_NSFWFilter", + "ETN_Parameter", + "ETN_ReferenceImage", + "ETN_SendImageWebSocket", + "ETN_TileLayout", + "ETN_Translate" ], { "title_aux": "ComfyUI Nodes for External Tooling" } ], + "https://github.com/AconexOfficial/ComfyUI_GOAT_Nodes": [ + [ + "Advanced_Color_Correction", + "Advanced_Latent_Noise", + "Advanced_Sharpen", + "Advanced_Upscale_Image_Using_Model", + "Capped_Float_Positive", + "Capped_Int_Positive", + "Embedding_Selector", + "Fast_Color_Match", + "Fast_Film_Grain", + "Get_Side_Length_Of_Image", + "Image_Crop", + "Image_Dimensions", + "Image_Stitch", + "Image_Tiler", + "Image_Untiler", + "Int_Divide_Rounded", + "SamplerTiledContextAdvanced", + "Sampler_Settings", + "Smart_Seed", + "Triple_Prompt" + ], + { + "title_aux": "ComfyUI GOAT Nodes" + } + ], + "https://github.com/Aero-Ex/ComfyUI-Vision-LLM-Analyzer": [ + [ + "VisionLLMNode" + ], + { + "title_aux": "ComfyUI Vision LLM Analyzer Node" + } + ], + "https://github.com/Aerse/ComfyUI-Seed-Nodes": [ + [ + "Seed-Nodes: ImagePixelator", + "Seed-Nodes: ImageTo3D", + "Seed-Nodes: ImageTransparencyCrop", + "Seed-Nodes: LoadImage", + "Seed-Nodes: LoadMultipleImages", + "Seed-Nodes: QwenVLAPI", + "Seed-Nodes: SLICPixelator", + "Seed-Nodes: ScreenModeRemoveBlack", + "Seed-Nodes: SeedSaveAudio", + "Seed-Nodes: SiliconFlowVLAPI" + ], + { + "title_aux": "ComfyUI-Seed-Nodes" + } + ], + "https://github.com/AgencyMind/ComfyUI-Satori": [ + [ + "TemporalInvestigator", + "WhyDidItBreak" + ], + { + "title_aux": "ComfyUI-Satori" + } + ], + "https://github.com/AhBumm/ComfyUI_BillBum_APIset_Nodes": [ + [ + "BillBum_Modified_Base64_Url2Data_Node", + "BillBum_Modified_Base64_Url2Img_Node", + "BillBum_Modified_Dalle_API_Node", + "BillBum_Modified_DropoutToken_Node", + "BillBum_Modified_Flux_API_Node", + "BillBum_Modified_Flux_API_with_imgInput", + "BillBum_Modified_GPTImage1_API_Node", + "BillBum_Modified_Ideogram_API_Node", + "BillBum_Modified_ImageSplit_Node", + "BillBum_Modified_Image_API_Call_Node", + "BillBum_Modified_LLM_API_Node", + "BillBum_Modified_LLM_ForceStream_Mode", + "BillBum_Modified_Recraft_API_Node", + "BillBum_Modified_RegText_Node", + "BillBum_Modified_SD3_API_Node", + "BillBum_Modified_Structured_LLM_Node(Imperfect)", + "BillBum_Modified_VisionLM_API_Node", + "BillBum_Modified_img2b64_url_Node", + "BillBum_NonSysPrompt_VLM_API_Node", + "Input_Text", + "Text_Concat" + ], + { + "nodename_pattern": "\\(BillBum\\)$", + "title_aux": "Customizable API Call Nodes by BillBum" + } + ], "https://github.com/AiMiDi/ComfyUI-Aimidi-nodes": [ [ "Add Tag", @@ -419,25 +1958,330 @@ "title_aux": "ComfyUI-Aimidi-nodes" } ], - "https://github.com/Alysondao/Comfyui-Yolov8-JSON": [ + "https://github.com/AkashKarnatak/ComfyUI_faishme": [ [ - "Apply Yolov8 Model", - "Apply Yolov8 Model Seg", - "Load Yolov8 Model", - "Load Yolov8 Model From Path" + "Faishme Debug", + "Faishme Gemini", + "Faishme Load Image from Glob", + "Faishme Mannequin to Model Loader", + "Faishme Memory Debug", + "Faishme Moondream", + "Faishme Repeat BBOX", + "Faishme Repeat Image Batch", + "Faishme Repeat Latent Batch", + "Faishme Repeat Tensor Batch", + "Faishme Save Image", + "Faishme Split", + "Faishme Stack Images", + "Faishme Stack Latents", + "Faishme Unstack Images", + "Faishme Unstack Latents", + "Load Fashion Model" ], { - "title_aux": "Comfyui-Yolov8-JSON" + "title_aux": "ComfyUI_faishme" + } + ], + "https://github.com/Aksaz/comfyui-seamless-clone": [ + [ + "Seamless Clone" + ], + { + "title_aux": "seamless-clone-comfyui" + } + ], + "https://github.com/Alectriciti/comfyui-adaptiveprompts": [ + [ + "CleanupTags", + "NormalizeLoraTags", + "PromptGenerator", + "PromptReplace", + "PromptRewrap", + "ShuffleTags", + "ShuffleTagsAdvanced", + "StringMerger4", + "StringMerger8" + ], + { + "title_aux": "comfyui-adaptiveprompts" + } + ], + "https://github.com/Alexankharin/camera-comfyUI": [ + [ + "CameraInterpolationNode", + "CameraMotionNode", + "CameraTrajectoryNode", + "CombineDepthsNode", + "DepthEstimatorNode", + "DepthFramesToVideo", + "DepthRenormalizer", + "DepthToImageNode", + "DepthToPointCloud", + "FisheyeDepthEstimator", + "LoadPointCloud", + "LoadTrajectory", + "OutpaintAnyProjection", + "PointCloudCleaner", + "PointCloudUnion", + "PointcloudTrajectoryEnricher", + "ProjectAndClean", + "ProjectPointCloud", + "ReprojectDepth", + "ReprojectImage", + "SavePointCloud", + "SaveTrajectory", + "TransformPointCloud", + "TransformToMatrix", + "TransformToMatrixManual", + "VideoCameraMotionSequence", + "VideoMetricDepthEstimate", + "ZDepthToRayDepthNode" + ], + { + "title_aux": "camera-comfyUI" + } + ], + "https://github.com/AlfredClark/ComfyUI-ModelSpec": [ + [ + "ModelMetadataNode", + "ModelSpecEditNode", + "SelectModelNode" + ], + { + "title_aux": "ComfyUI-ModelSpec" + } + ], + "https://github.com/Aljnk/ComfyUI-JNK-Tiny-Nodes": [ + [ + "Add Layer Overlay JNK", + "Ask Google Gemini JNK", + "Bridge All JNK", + "Create Folder JNK", + "Create RGBA Image JNK", + "Get All Alpha Layers JNK", + "Get Gemini Keys JNK", + "Get Gemini Models JNK", + "Get Models JNK", + "Get One Alpha Layer JNK", + "Get Substring JNK", + "Get Text From List by Index JNK", + "Get Timestamp JNK", + "Image Filter Loader JNK", + "Join Strings JNK", + "Load Checkpoint Model with Name JNK", + "Load Image if Exist JNK", + "Load LoRA with Name JNK", + "Load UNet Model with Name JNK", + "Prepare Image for AI JNK", + "Queue Stop JNK", + "Save Frame JNK", + "Save Static Image JNK", + "Save Video Images JNK", + "Split String JNK", + "Stroke RGBA Image JNK", + "Switch Index JNK", + "Switch Integer JNK", + "Text Saver JNK", + "Text to Key JNK", + "Text to MD5 JNK", + "Topaz Photo Upscaler (Autopilot) JNK" + ], + { + "title_aux": "ComfyUI-JNK-Tiny-Nodes" + } + ], + "https://github.com/Altair200333/ComfyUI_Flux_1.1_PRO": [ + [ + "FluxGenerate", + "FluxProInpaint", + "FluxProOutpaint" + ], + { + "title_aux": "Flux Pro Nodes for ComfyUI" + } + ], + "https://github.com/Alvaroeai/ComfyUI-Text2Json": [ + [ + "TextToJson" + ], + { + "title_aux": "ComfyUI-Text2Json" + } + ], + "https://github.com/Amorano/Jovi_Capture": [ + [ + "CAMERA (JOV_CAPTURE)", + "MONITOR (JOV_CAPTURE)", + "REMOTE (JOV_CAPTURE)", + "WINDOW (JOV_CAPTURE)" + ], + { + "title_aux": "Jovi_Capture" + } + ], + "https://github.com/Amorano/Jovi_GLSL": [ + [ + "BLEND LINEAR (JOV_GL)", + "BLOOM (JOV_GL)", + "CIRCULAR GRADIENT (JOV_GL)", + "COLOR CONVERSION (JOV_GL)", + "COLOR PALETTE (JOV_GL)", + "CONICAL GRADIENT (JOV_GL)", + "DIRECTIONAL WARP (JOV_GL)", + "FILTER RANGE (JOV_GL)", + "GRAYSCALE (JOV_GL)", + "HSV ADJUST (JOV_GL)", + "INVERT (JOV_GL)", + "LINEAR GRADIENT (JOV_GL)", + "MIN MAX (JOV_GL)", + "NOISE PERLIN (JOV_GL)", + "NOISE SIMPLEX (JOV_GL)", + "NOISE WORLEY (JOV_GL)", + "NORMAL (JOV_GL)", + "NORMAL BLEND (JOV_GL)", + "PIXELATE (JOV_GL)", + "POSTERIZE (JOV_GL)", + "SHAPE: CAPSULE (JOV_GL)", + "SHAPE: ELLIPSE (JOV_GL)", + "SHAPE: POLYGON (JOV_GL)", + "SOBEL (JOV_GL)", + "TRANSFORM (JOV_GL)" + ], + { + "title_aux": "Jovi_GLSL" + } + ], + "https://github.com/Amorano/Jovi_MIDI": [ + [ + "MIDI FILTER (JOV_MIDI)", + "MIDI FILTER EZ (JOV_MIDI)", + "MIDI LOADER (JOV_MIDI)", + "MIDI MESSAGE (JOV_MIDI)", + "MIDI READER (JOV_MIDI)" + ], + { + "title_aux": "Jovi_MIDI" + } + ], + "https://github.com/Amorano/Jovi_Measure": [ + [ + "BLUR EFFECT (JOV_MEASURE)", + "SHANNON ENTROPY (JOV_MEASURE)" + ], + { + "title_aux": "Jovi_Measure" + } + ], + "https://github.com/Amorano/Jovi_Spout": [ + [ + "SPOUT READER (JOV_SPOUT)", + "SPOUT WRITER (JOV_SPOUT)" + ], + { + "title_aux": "Jovi_Spout" } ], "https://github.com/Amorano/Jovimetrix": [ - [], + [ + "ADJUST: BLUR (JOV)", + "ADJUST: COLOR (JOV)", + "ADJUST: EDGE (JOV)", + "ADJUST: EMBOSS (JOV)", + "ADJUST: LEVELS (JOV)", + "ADJUST: LIGHT (JOV)", + "ADJUST: MORPHOLOGY (JOV)", + "ADJUST: PIXEL (JOV)", + "ADJUST: SHARPEN (JOV)", + "AKASHIC (JOV) \ud83d\udcd3", + "ARRAY (JOV) \ud83d\udcda", + "BATCH TO LIST (JOV)", + "BIT SPLIT (JOV) \u2b44", + "BLEND (JOV) \u2697\ufe0f", + "COLOR BLIND (JOV) \ud83d\udc41\u200d\ud83d\udde8", + "COLOR MATCH (JOV) \ud83d\udc9e", + "COLOR MEANS (JOV) \u3030\ufe0f", + "COLOR THEORY (JOV) \ud83d\udede", + "COMPARISON (JOV) \ud83d\udd75\ud83c\udffd", + "CONSTANT (JOV) \ud83d\udfea", + "CROP (JOV) \u2702\ufe0f", + "DELAY (JOV) \u270b\ud83c\udffd", + "EXPORT (JOV) \ud83d\udcfd", + "FILTER MASK (JOV) \ud83e\udd3f", + "FLATTEN (JOV) \u2b07\ufe0f", + "GRADIENT MAP (JOV) \ud83c\uddf2\ud83c\uddfa", + "GRAPH (JOV) \ud83d\udcc8", + "IMAGE INFO (JOV) \ud83d\udcda", + "LERP (JOV) \ud83d\udd30", + "OP BINARY (JOV) \ud83c\udf1f", + "OP UNARY (JOV) \ud83c\udfb2", + "PIXEL MERGE (JOV) \ud83e\udec2", + "PIXEL SPLIT (JOV) \ud83d\udc94", + "PIXEL SWAP (JOV) \ud83d\udd03", + "QUEUE (JOV) \ud83d\uddc3", + "QUEUE TOO (JOV) \ud83d\uddc3", + "ROUTE (JOV) \ud83d\ude8c", + "SAVE OUTPUT (JOV) \ud83d\udcbe", + "SHAPE GEN (JOV) \u2728", + "SPLIT (JOV) \ud83c\udfad", + "STACK (JOV) \u2795", + "STRINGER (JOV) \ud83e\ude80", + "SWIZZLE (JOV) \ud83d\ude35", + "TEXT GEN (JOV) \ud83d\udcdd", + "THRESHOLD (JOV) \ud83d\udcc9", + "TICK (JOV) \u23f1", + "TRANSFORM (JOV) \ud83c\udfdd\ufe0f", + "VALUE (JOV) \ud83e\uddec", + "VECTOR2 (JOV)", + "VECTOR3 (JOV)", + "VECTOR4 (JOV)", + "WAVE GEN (JOV) \ud83c\udf0a" + ], { - "author": "amorano", - "description": "Webcams, GLSL shader, Media Streaming, Tick animation, Image manipulation,", - "nodename_pattern": " \\(jov\\)$", - "title": "Jovimetrix", - "title_aux": "Jovimetrix Composition Nodes" + "title_aux": "Jovimetrix" + } + ], + "https://github.com/Andro-Meta/ComfyUI-Ovis2": [ + [ + "Ovis2ImageCaption", + "Ovis2ModelLoader", + "Ovis2MultiImageInput", + "Ovis2VideoFramesDescription" + ], + { + "title_aux": "ComfyUI-Ovis2" + } + ], + "https://github.com/AngelCookies/ComfyUI-Seed-Tracker": [ + [ + "GlobalSeedTracker", + "SeedExporter", + "SeedTracker" + ], + { + "title_aux": "ComfyUI-Seed-Tracker" + } + ], + "https://github.com/Anibaaal/ComfyUI-UX-Nodes": [ + [ + "AdvancedCompositeImageMasked", + "BlockLayerStringGenerator", + "BlurNode", + "ColorGeneratorNode", + "DropShadowNode", + "EasyResolutionPicker", + "LerpNode", + "RemoveJSONMarkdownFormatting" + ], + { + "title_aux": "ComfyUI UX Nodes" + } + ], + "https://github.com/AonekoSS/ComfyUI-LoRA-Tuner": [ + [ + "LoraTuner" + ], + { + "title_aux": "ComfyUI-LoRA-Tuner" } ], "https://github.com/AonekoSS/ComfyUI-SimpleCounter": [ @@ -448,27 +2292,58 @@ "title_aux": "ComfyUI-SimpleCounter" } ], - "https://github.com/AppleBotzz/ComfyUI_LLMVISION": [ + "https://github.com/ArcherFMY/Diffusion360_ComfyUI": [ [ - "CLAUDE_CHAT", - "CLAUDE_VISION", - "GPT4_CHAT", - "GPT4_VISION" + "Diffusion360LoaderImage2Pano", + "Diffusion360LoaderText2Pano", + "Diffusion360Sampler", + "Diffusion360SamplerImage2Pano", + "Diffusion360SamplerText2Pano", + "InputImage", + "InputText", + "VAEDecodeTiledBlended" ], { - "title_aux": "ComfyUI_LLMVISION" + "title_aux": "Diffusion360_ComfyUI" } ], - "https://github.com/ArdeniusAI/CPlus_Ardenius": [ + "https://github.com/ArdeniusAI/ComfyUI-Ardenius": [ [ - "Control_Box" + "ARD 4crop Latent", + "ARD 4img Combine", + "ARD 4latent Upscale", + "ARD 4vae Decode", + "ARD Basic Load Image", + "ARD Control Box", + "ARD Counter", + "ARD Dual Prompt", + "ARD Empty Latent Image", + "ARD Float", + "ARD Float To Integer", + "ARD Integer", + "ARD Integer To Float", + "ARD Load Image", + "ARD Math", + "ARD Position", + "ARD Prompt Travel", + "ARD Remainder", + "ARD Resize", + "ARD Save Image", + "ARD Seed", + "ARD Text Box", + "ARD Text Box Counter", + "ARD XY Scripts" ], { - "author": "initials AMA", - "description": "CPlus control box is designed to gather workflow variables into 1 node for easier control of your workflow.", - "nickname": "Ardenius", - "title": "Ardenius", - "title_aux": "CPlus_Ardenius ComfyUI Control Box" + "title_aux": "ComfyUI-Ardenius" + } + ], + "https://github.com/Arkanun/ReadCSV_ComfyUI": [ + [ + "ReadCSVRowNode" + ], + { + "title_aux": "ReadCSV_ComfyUI" } ], "https://github.com/ArtBot2023/CharacterFaceSwap": [ @@ -489,18 +2364,114 @@ "title_aux": "Character Face Swap" } ], - "https://github.com/ArtVentureX/comfyui-animatediff": [ + "https://github.com/ArtHommage/HommageTools": [ [ - "AnimateDiffCombine", - "AnimateDiffLoraLoader", - "AnimateDiffModuleLoader", - "AnimateDiffSampler", - "AnimateDiffSlidingWindowOptions", - "ImageSizeAndBatchSize", - "LoadVideo" + "HTBaseShiftNode", + "HTConsoleLoggerNode", + "HTConversionNode", + "HTDWPoseConstraintNode", + "HTDetectionBatchProcessor", + "HTDiffusionLoaderMulti", + "HTDimensionAnalyzerNode", + "HTDimensionFormatterNode", + "HTDownsampleNode", + "HTDynamicPromptNode", + "HTDynamicSwitchNode", + "HTFlexibleNode", + "HTGeminiImageNode", + "HTGeminiNode", + "HTImageAdjusterNode", + "HTInspectorNode", + "HTLayerCollectorNode", + "HTLayerExportNode", + "HTLevelsNode", + "HTMaskDilationNode", + "HTMaskValidatorNode", + "HTMoireRemovalNode", + "HTMultiMaskDilationNode", + "HTNodeStateController", + "HTNodeUnmuteAll", + "HTNullNode", + "HTParameterExtractorNode", + "HTPhotoshopBlurNode", + "HTRegexNode", + "HTResizeNode", + "HTResolutionDownsampleNode", + "HTResolutionNode", + "HTSamplerBridgeNode", + "HTSaveImagePlus", + "HTScaleByNode", + "HTSchedulerBridgeNode", + "HTSeedAdvancedNode", + "HTSeedNode", + "HTSplitterNode", + "HTStatusIndicatorNode", + "HTSurfaceBlurNode", + "HTSwitchNode", + "HTTensorInfoNode", + "HTTextCleanupNode", + "HTTrainingSizeNode", + "HTValueMapperNode", + "HTWidgetControlNode" ], { - "title_aux": "AnimateDiff" + "title_aux": "HommageTools for ComfyUI" + } + ], + "https://github.com/Artificial-Sweetener/comfyui-WhiteRabbit": [ + [ + "AssembleLoopFrames", + "AutocropToLoop", + "BatchResizeWithLanczos", + "BatchWatermarkSingle", + "PixelHold", + "PrepareLoopFrames", + "RIFE_FPS_Resample", + "RIFE_SeamTimingAnalyzer", + "RIFE_VFI_Advanced", + "RIFE_VFI_Opt", + "RollFrames", + "TrimBatchEnds", + "UnrollFrames", + "UpscaleWithModelAdvanced" + ], + { + "title_aux": "WhiteRabbit" + } + ], + "https://github.com/Aryan185/ComfyUI-ExternalAPI-Helpers": [ + [ + "FluxKontextMaxNode", + "FluxKontextProNode", + "GPTImageEditNode", + "GeminiChatNode", + "GeminiSegmentationNode", + "GoogleImagenEditNode", + "GoogleImagenNode", + "Veo3VideoGenerator" + ], + { + "title_aux": "ComfyUI-ExternalAPI-Helpers" + } + ], + "https://github.com/AshMartian/ComfyUI-DirGir": [ + [ + "Dir_Gir_Looper", + "Dir_Gir_Picker", + "Gir_Image_Nabber" + ], + { + "title_aux": "Dir Gir" + } + ], + "https://github.com/AstroCorp/ComfyUI-AstroCorp-Nodes": [ + [ + "InstructNode", + "MergeTextsNode", + "TextareaNode" + ], + { + "title_aux": "ComfyUI AstroCorp Nodes" } ], "https://github.com/AuroBit/ComfyUI-AnimateAnyone-reproduction": [ @@ -511,6 +2482,16 @@ "title_aux": "ComfyUI-AnimateAnyone-reproduction" } ], + "https://github.com/AustinMroz/ComfyUI-DynamicOversampling": [ + [ + "DynamicSampler", + "MeasuredSampler", + "ResolveMaskPromise" + ], + { + "title_aux": "DynamicOversampling" + } + ], "https://github.com/AustinMroz/ComfyUI-SpliceTools": [ [ "LogSigmas", @@ -523,6 +2504,102 @@ "title_aux": "SpliceTools" } ], + "https://github.com/Auttasak-L/ComfyUI-ImageCropper": [ + [ + "ImageCropper" + ], + { + "title_aux": "ComfyUI-ImageCropper" + } + ], + "https://github.com/Azornes/Comfyui-LayerForge": [ + [ + "LayerForgeNode" + ], + { + "title_aux": "Comfyui-LayerForge" + } + ], + "https://github.com/Azornes/Comfyui-Resolution-Master": [ + [ + "ResolutionMaster" + ], + { + "title_aux": "Comfyui-Resolution-Master" + } + ], + "https://github.com/BAIKEMARK/ComfyUI-Civitai-Recipe": [ + [ + "CivitaiDataFetcherCKPT", + "CivitaiDataFetcherLORA", + "CivitaiRecipeGallery", + "LoraTriggerWords", + "ParameterAnalyzerCKPT", + "ParameterAnalyzerLORA", + "PromptAnalyzer", + "ResourceAnalyzer" + ], + { + "title_aux": "Civitai Recipe Finder" + } + ], + "https://github.com/BAIKEMARK/ComfyUI_Civitai_Prompt_Stats": [ + [ + "CivitaiPromptStatsCKPT", + "CivitaiPromptStatsLORA" + ], + { + "title_aux": "Civitai Prompt Stats Node" + } + ], + "https://github.com/BAIS1C/ComfyUI_RSS_Feed_Reader": [ + [ + "RSSFeedNode" + ], + { + "title_aux": "ComfyUI_RSS_Feed_Reader" + } + ], + "https://github.com/BEIBEI-star661/SJ_sweepEffect_Comfyui": [ + [ + "SJ_sweepEffect" + ], + { + "title_aux": "SJ_sweepEffect_Comfyui" + } + ], + "https://github.com/BIMer-99/ComfyUI_FishSpeech_EX": [ + [ + "AudioToPrompt", + "LoadVQGAN", + "Prompt2Semantic", + "SaveAudioToMp3", + "Semantic2Audio" + ], + { + "title_aux": "ComfyUI_FishSpeech_EX" + } + ], + "https://github.com/BIMer-99/Comfyui_Hunyuan3D_EX": [ + [ + "GenerateSixViews", + "Hunyuan3DNode", + "RemoveBackground", + "SquareImage", + "TriMeshViewer" + ], + { + "title_aux": "Comfyui_Hunyuan3D_EX" + } + ], + "https://github.com/BNP1111/comfyui_flux_corrector": [ + [ + "FLUXCorrector" + ], + { + "title_aux": "comfyui_flux_corrector" + } + ], "https://github.com/BXYMartin/ComfyUI-InstantIDUtils": [ [ "ListOfImages", @@ -532,7 +2609,17 @@ "PIL2NHWCTensor" ], { - "title_aux": "Comfyui-ergouzi-Nodes" + "title_aux": "ComfyUI-InstantIDUtils" + } + ], + "https://github.com/BZcreativ/ComfyUI-FLUX-TOGETHER-API": [ + [ + "FluxDev_TOGETHER", + "FluxPro11_TOGETHER", + "FluxPro_TOGETHER" + ], + { + "title_aux": "ComfyUI-FLUX-TOGETHER-API" } ], "https://github.com/BadCafeCode/masquerade-nodes-comfyui": [ @@ -564,6 +2651,27 @@ "title_aux": "Masquerade Nodes" } ], + "https://github.com/BahaC/ComfyUI-ZonosTTS": [ + [ + "ZonosTextToSpeech" + ], + { + "title_aux": "ComfyUI Zonos TTS Node" + } + ], + "https://github.com/Baverne/comfyUI-TiledWan": [ + [ + "TiledWanImageStatistics", + "TiledWanImageToMask", + "TiledWanInpaintCropImproved", + "TiledWanInpaintStitchImproved", + "TiledWanMaskStatistics", + "TiledWanVideoVACEpipe" + ], + { + "title_aux": "comfyUI-TiledWan" + } + ], "https://github.com/Beinsezii/bsz-cui-extras": [ [ "BSZAbsoluteHires", @@ -590,17 +2698,131 @@ "title_aux": "bsz-cui-extras" } ], + "https://github.com/Bellzs/ComfyUI-LoRA-Assistant": [ + [ + "LoRATriggerLocal" + ], + { + "title_aux": "ComfyUI-LoRA-Assistant" + } + ], + "https://github.com/BenNarum/ComfyUI_CAS": [ + [ + "AttentionToSigmas", + "AttenuatorNode", + "BasicCFGGuider", + "CELU", + "CustomAdvancedSampler", + "CustomLCMCFGPP", + "CustomModelSamplingDiscreteDistilledAncestralCFGPP", + "CustomModelSamplingDiscreteDistilledCFGPP", + "CustomX0AncestralCFGPP", + "CustomX0CFGPP", + "ELU", + "EPSCFGPPScheduler", + "GELU", + "GLU", + "HardTanhScheduler", + "Hardshrink", + "Hardsigmoid", + "Hardswish", + "Hardtanh", + "LatentActivation", + "LatentChannelPresets", + "LatentConvolution", + "LatentFFT", + "LatentFrequencyPresets", + "LatentGlitch", + "LatentMath", + "LatentMathFormulaBuilder", + "LatentMosaic", + "LatentNoisePresets", + "LatentPixelSort", + "LatentSelfAttention", + "LatentTwist", + "LatentValuePresets", + "LatentWarpPresets", + "LeakyReLU", + "LogSigmoid", + "LogSoftmax", + "Mish", + "PReLU", + "RReLU", + "ReLU", + "ReLU6", + "SELU", + "SamplerCustomLCMCFGPP", + "SamplerCustomModelSamplingDiscreteDistilledAncestralCFGPP", + "SamplerCustomModelSamplingDiscreteDistilledCFGPP", + "SamplerCustomX0AncestralCFGPP", + "SamplerCustomX0CFGPP", + "SamplerDPMCFGPP", + "SamplerDynamicCFGPP", + "SamplerEulerAttnCFGPP", + "SamplerEulerStepControlAncestralCFGPP", + "SamplerHeunCFGPP", + "SamplerLCMUpscaleW", + "SamplerLCMUpscaleWCFGPP", + "SamplerLCMUpscaleWGPU", + "SamplerStepSizeControlCFGPP", + "SamplerWeightedCFGPP", + "SiLU", + "Softmax", + "Softmax2D", + "SoftmaxScheduler", + "Softmin", + "Softplus", + "Softshrink", + "Softsign", + "Tanh", + "Tanhshrink", + "Threshold", + "tcd_euler_a_w", + "tcd_w" + ], + { + "title_aux": "ComfyUI_CAS" + } + ], + "https://github.com/BenNarum/SigmaWaveFormNode": [ + [ + "AttenuatorNode", + "FourierFilterNode", + "PhaseLockedLoopNode", + "SigmaWaveFormNode", + "SigmaWaveFormNodeAdvanced", + "SigmaWaveFormNodeSimple" + ], + { + "title_aux": "SigmaWaveFormNodes" + } + ], "https://github.com/BennyKok/comfyui-deploy": [ [ + "ComfyDeployOutputEXR", + "ComfyDeployOutputImage", + "ComfyDeployOutputText", "ComfyDeployWebscoketImageInput", "ComfyDeployWebscoketImageOutput", + "ComfyUIDeployExternalAudio", + "ComfyUIDeployExternalBoolean", "ComfyUIDeployExternalCheckpoint", + "ComfyUIDeployExternalEXR", + "ComfyUIDeployExternalFaceModel", "ComfyUIDeployExternalImage", "ComfyUIDeployExternalImageAlpha", + "ComfyUIDeployExternalImageBatch", "ComfyUIDeployExternalLora", "ComfyUIDeployExternalNumber", "ComfyUIDeployExternalNumberInt", - "ComfyUIDeployExternalText" + "ComfyUIDeployExternalNumberSlider", + "ComfyUIDeployExternalNumberSliderInt", + "ComfyUIDeployExternalSeed", + "ComfyUIDeployExternalText", + "ComfyUIDeployExternalTextAny", + "ComfyUIDeployExternalVid", + "ComfyUIDeployExternalVideo", + "ComfyUIDeployStringCombine" ], { "author": "BennyKok", @@ -610,23 +2832,97 @@ "title_aux": "ComfyUI Deploy" } ], - "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools": [ + "https://github.com/BetaDoggo/ComfyUI-Cloud-APIs": [ [ - "EndQueue", - "ImageTextOverlay", - "Loop", - "LoopEnd", - "LoopStart", - "PromptSchedule", - "PromptSelector" + "FalAddLora", + "FalAuraFlowAPI", + "FalFluxAPI", + "FalFluxI2IAPI", + "FalFluxLoraAPI", + "FalLLaVAAPI", + "FalSoteDiffusionAPI", + "FalStableCascadeAPI", + "FalVeo2ImagetoVideo", + "FluxResolutionPresets", + "LoadVideoFromURL", + "ReplicateFluxAPI", + "RunWareAPI", + "RunwareAddLora", + "SplitImages" ], { - "title_aux": "ComfyUI-Book-Tools" + "title_aux": "ComfyUI-Cloud-APIs" + } + ], + "https://github.com/BetaDoggo/ComfyUI-FastSDCPU": [ + [ + "fastsdcpu", + "fastsdcpu_lcm_models", + "fastsdcpu_loadModel", + "fastsdcpu_vino_models" + ], + { + "title_aux": "ComfyUI-FastSDCPU" + } + ], + "https://github.com/BetaDoggo/ComfyUI-Gatcha-Embedding": [ + [ + "GatchaEmbedding" + ], + { + "title_aux": "Gatcha Embeddings" + } + ], + "https://github.com/BetaDoggo/ComfyUI-VideoPlayer": [ + [ + "AllInOnePlayer", + "ImageToEmoji", + "LoadFrame", + "LoadJPGFrame", + "LoadVideoFrame" + ], + { + "title_aux": "ComfyUI Video Player" + } + ], + "https://github.com/BetaDoggo/ComfyUI-WDV-Nodes": [ + [ + "ModelSamplingWaifuDiffusionV" + ], + { + "title_aux": "neggles/ComfyUI-WDV-Nodes [gist-wrapper]" + } + ], + "https://github.com/BetaDoggo/ComfyUI-YetAnotherSafetyChecker": [ + [ + "YetAnotherSafetyChecker" + ], + { + "title_aux": "ComfyUI YetAnotherSafetyChecker" + } + ], + "https://github.com/Big-Idea-Technology/ComfyUI-Book-Tools": [ + [ + "BTDownloadFont", + "BTEndQueue", + "BTImageTextOverlay", + "BTLoop", + "BTLoopEnd", + "BTLoopStart", + "BTPromptSchedule", + "BTPromptSelector", + "BTRandomTextOverlay", + "BTTextGrowth", + "BTTextToImage" + ], + { + "title_aux": "ComfyUI-Book-Tools Nodes for ComfyUI" } ], "https://github.com/Big-Idea-Technology/ComfyUI_LLM_Node": [ [ "AdvOptions_Node", + "CodingOptionsNode", "LLM_Node", "Output_Node", "QuantizationConfig_Node" @@ -635,18 +2931,37 @@ "title_aux": "LLM Node for ComfyUI" } ], - "https://github.com/Bikecicle/ComfyUI-Waveform-Extensions/raw/main/EXT_AudioManipulation.py": [ + "https://github.com/BigStationW/ComfyUi-Load-Image-And-Display-Prompt-Metadata": [ [ - "BatchJoinAudio", - "CutAudio", - "DuplicateAudio", - "JoinAudio", - "ResampleAudio", - "ReverseAudio", - "StretchAudio" + "LoadImageX", + "OnlyLoadImagesWithMetadata" ], { - "title_aux": "Waveform Extensions" + "title_aux": "ComfyUi-Load-Image-And-Display-Prompt-Metadata" + } + ], + "https://github.com/BigStationW/ComfyUi-RescaleCFGAdvanced": [ + [ + "RescaleCFGAdvanced" + ], + { + "title_aux": "ComfyUi-RescaleCFGAdvanced" + } + ], + "https://github.com/BigStationW/ComfyUi-Scale-Image-to-Total-Pixels-Advanced": [ + [ + "ImageScaleToTotalPixelsX" + ], + { + "title_aux": "ComfyUi-Scale-Image-to-Total-Pixels-Advanced" + } + ], + "https://github.com/BigWhiteFly/ComfyUI-ImageConcat": [ + [ + "ImageConcatenateBatchWithTxt" + ], + { + "title_aux": "ComfyUI-ImageConcat" } ], "https://github.com/Billius-AI/ComfyUI-Path-Helper": [ @@ -664,6 +2979,56 @@ "title_aux": "ComfyUI-Path-Helper" } ], + "https://github.com/Bin-sam/DynamicPose-ComfyUI": [ + [ + "DynamicPose_Sampler", + "Load_Pose_Guider", + "Load_denoising_unet", + "Load_reference_unet", + "Pose_Guider_Encode", + "align", + "load_pose_model", + "pose_extraction" + ], + { + "title_aux": "DynamicPose-ComfyUI" + } + ], + "https://github.com/Black-Lioness/ComfyUI-PromptUtils": [ + [ + "FilenameGenerator", + "KeywordGenerator" + ], + { + "title_aux": "ComfyUI-PromptUtils" + } + ], + "https://github.com/BlackVortexAI/ComfyUI-BVortexNodes": [ + [ + "BV Conditional ImagePipe Splitter", + "BV Image Caption Saver", + "BV Image Difference Heatmap", + "BV Image Size with Math", + "BV ImagePipe Junction", + "BV ImagePipe Loader", + "BV ImagePipe Merger", + "BV Show LoRA Blocks", + "BV String to Combo", + "BV Upscale Config", + "BV Vector Edit", + "BV Vector Edit Dropdown FLUX", + "BV Vector Edit Range", + "BV Vector Edit Range Dropdown FLUX", + "BV Vector Edit Selector FLUX", + "BV Vector Permutation", + "BV Vector of Length-n", + "BV Vector to String", + "BV Vector to String List" + ], + { + "title_aux": "BV Nodes" + } + ], "https://github.com/BlakeOne/ComfyUI-CustomScheduler": [ [ "CustomScheduler" @@ -733,6 +3098,185 @@ "title_aux": "Tiled sampling for ComfyUI" } ], + "https://github.com/Blonicx/ComfyUI-X-Rework": [ + [ + "ClearNode", + "LoadImageURL", + "StopNode", + "UploadImage", + "XSampler", + "XSave" + ], + { + "title_aux": "ComfyUI-Rework-X" + } + ], + "https://github.com/BlueprintCoding/ComfyUI_AIDocsClinicalTools": [ + [ + "Multi Float", + "Multi Int", + "Multi Text", + "MultiFloatNodeAID", + "MultiInt", + "MultiText" + ], + { + "title_aux": "The AI Doctors Clinical Tools" + } + ], + "https://github.com/BobRandomNumber/ComfyUI-DiaTTS": [ + [ + "DiaGenerate", + "DiaLoader" + ], + { + "title_aux": "ComfyUI-DiaTTS" + } + ], + "https://github.com/BobRandomNumber/ComfyUI-KyutaiTTS": [ + [ + "KyutaiTTS" + ], + { + "title_aux": "ComfyUI-KyutaiTTS" + } + ], + "https://github.com/BobRandomNumber/ComfyUI-TLBVFI": [ + [ + "TLBVFI_VFI" + ], + { + "title_aux": "ComfyUI-TLBVFI" + } + ], + "https://github.com/BobsBlazed/Bobs-Lora-Loader": [ + [ + "BobsLoraLoaderFlux", + "BobsLoraLoaderSdxl" + ], + { + "title_aux": "Bobs_LoRA_Loader" + } + ], + "https://github.com/BobsBlazed/Bobs_Latent_Optimizer": [ + [ + "BobsLatentNode", + "BobsLatentNodeAdvanced" + ], + { + "title_aux": "Bobs_Latent_Optimizer" + } + ], + "https://github.com/BoyuanJiang/FitDiT-ComfyUI": [ + [ + "FitDiTLoader", + "FitDiTMaskGenerator", + "FitDiTTryOn" + ], + { + "title_aux": "FitDiT[official] - High-fidelity Virtual Try-on" + } + ], + "https://github.com/Brekel/ComfyUI-Brekel": [ + [ + "BrekelAutoPromptGenerator", + "BrekelEnhancePrompt", + "BrekelPromptChooser" + ], + { + "title_aux": "ComfyUI-Brekel" + } + ], + "https://github.com/Bria-AI/ComfyUI-BRIA-API": [ + [ + "BriaEraser", + "BriaGenFill", + "BriaTailoredGen", + "ImageExpansionNode", + "ReimagineNode", + "RemoveForegroundNode", + "ReplaceBgNode", + "RmbgNode", + "ShotByImageNode", + "ShotByTextNode", + "TailoredModelInfoNode", + "TailoredPortraitNode", + "Text2ImageBaseNode", + "Text2ImageFastNode", + "Text2ImageHDNode" + ], + { + "title_aux": "BRIA AI API nodes" + } + ], + "https://github.com/BuffMcBigHuge/ComfyUI-Google-AI-Studio": [ + [ + "GoogleAIStudioImageGen", + "GoogleAIStudioMultiSpeakerTTS", + "GoogleAIStudioTTS", + "GoogleAIStudioTextGen" + ], + { + "title_aux": "ComfyUI-Google-AI-Studio" + } + ], + "https://github.com/BuffMcBigHuge/ComfyUI-Zonos": [ + [ + "ZonosEmotion", + "ZonosGenerate" + ], + { + "title_aux": "ComfyUI-Zonos" + } + ], + "https://github.com/Burgstall-labs/ComfyUI-BETA-Cropnodes": [ + [ + "BETACrop", + "BETAStitch", + "IndexedLoRALoader_BETA", + "LoadTextFromIndex", + "SaveAudioAdvanced_BETA", + "SelectSharpestFrames", + "SharpestFrameClipper", + "TextLineCount", + "WANResolutionCalculator" + ], + { + "title_aux": "ComfyUI-BETA-Cropnodes" + } + ], + "https://github.com/Burgstall-labs/ComfyUI-BETA-Helpernodes": [ + [ + "BETACrop", + "BETAStitch", + "IndexedLoRALoader_BETA", + "LoadTextFromIndex", + "SaveAudioAdvanced_BETA", + "SelectSharpestFrames", + "SharpestFrameClipper", + "TextLineCount", + "WANResolutionCalculator" + ], + { + "title_aux": "ComfyUI-BETA-Helpernodes" + } + ], + "https://github.com/Burgstall-labs/ComfyUI-BS-Textchop": [ + [ + "BSTextChop" + ], + { + "title_aux": "ComfyUI-BS-Textchop" + } + ], + "https://github.com/Burgstall-labs/ComfyUI-BS_Kokoro-onnx": [ + [ + "Kokoro TTS" + ], + { + "title_aux": "ComfyUI-BS_Kokoro-onnx" + } + ], "https://github.com/CC-BryanOttho/ComfyUI_API_Manager": [ [ "APIRequestNode", @@ -743,6 +3287,143 @@ "title_aux": "ComfyUI_API_Manager" } ], + "https://github.com/CC-SUN6/ccsun_node": [ + [ + "Image Editing", + "Single Image", + "resize to 8", + "several images" + ], + { + "title_aux": "ccsun_node" + } + ], + "https://github.com/CHAOSEA/ComfyUI_FaceAlignPaste": [ + [ + "FaceAlignDouble", + "FaceAlignSingle", + "FaceAutoFitSingle" + ], + { + "title_aux": "ComfyUI_FaceAlignPaste" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-FramePack-HY": [ + [ + "CreateKeyframes_HY", + "FramePackBucketResize_HY", + "FramePackDiffusersSampler_HY", + "LoadFramePackDiffusersPipeline_HY" + ], + { + "title_aux": "ComfyUI-FramePack-HY" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Free-GPU": [ + [ + "FreeGPUMemory" + ], + { + "title_aux": "ComfyUI-Free-GPU" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-GPT-API": [ + [ + "GPT-ImageGenerator" + ], + { + "title_aux": "ComfyUI-GPT-API" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Gemini-API": [ + [ + "Google-Gemini" + ], + { + "title_aux": "ComfyUI-Gemini-API" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-ImageCompositionCy": [ + [ + "CombineImageAlpha", + "ImageCompositor", + "LoadImageAlpha" + ], + { + "title_aux": "ComfyUI-ImageCompositionCy" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-InpaintEasy": [ + [ + "CropByMask", + "ImageAndMaskResizeNode", + "ImageCropMerge", + "InpaintEasyModel" + ], + { + "title_aux": "ComfyUI-InpaintEasy" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Janus-Pro": [ + [ + "JanusImageGeneration", + "JanusImageUnderstanding", + "JanusModelLoader" + ], + { + "title_aux": "ComfyUI-Janus-Pro" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-Plus": [ + [ + "MiniCPM3_4B", + "MiniCPM3_4B_GPTQ_Int4", + "MiniCPM_V_2_6", + "MiniCPM_V_2_6_Int4", + "TextDisplay" + ], + { + "author": "CY-CHENYUE", + "description": "Custom nodes for MiniCPM language models in ComfyUI", + "nickname": "MiniCPM-Plus", + "title": "MiniCPM-Plus", + "title_aux": "ComfyUI-MiniCPM-Plus" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-MiniCPM-o": [ + [ + "Load MiniCPM Model", + "MiniCPM Image Chat", + "MiniCPMImageAnalyzer" + ], + { + "title_aux": "ComfyUI-MiniCPM-o" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Molmo": [ + [ + "Molmo7BDbnb" + ], + { + "title_aux": "ComfyUI-Molmo" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-OmniGenX": [ + [ + "LoadOmniGen" + ], + { + "title_aux": "ComfyUI-OmniGenX" + } + ], + "https://github.com/CY-CHENYUE/ComfyUI-Redux-Prompt": [ + [ + "ReduxPromptStyler" + ], + { + "title_aux": "ComfyUI-Redux-Prompt" + } + ], "https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr": [ [ "CLIPIter", @@ -770,13 +3451,12 @@ "title_aux": "ComfyUI-nodes-hnmr" } ], - "https://github.com/CaptainGrock/ComfyUIInvisibleWatermark/raw/main/Invisible%20Watermark.py": [ + "https://github.com/CallMe1101/ComfyUI_OmniAvatar": [ [ - "Apply Invisible Watermark", - "Extract Watermark" + "OmniAvatar All-in-One (14B)" ], { - "title_aux": "ComfyUIInvisibleWatermark" + "title_aux": "ComfyUI_OmniAvatar" } ], "https://github.com/Chan-0312/ComfyUI-EasyDeforum": [ @@ -815,6 +3495,357 @@ "title_aux": "ComfyUI_Ib_CustomNodes" } ], + "https://github.com/Charlweed/image_transceiver": [ + [ + "ImageTransceiver" + ], + { + "title_aux": "ImageTransceiver - ComfyUI" + } + ], + "https://github.com/Charonartist/comfyui-auto-lora-v2": [ + [ + "AutoLoRANode", + "LoRABrowserNode", + "LoRAManagerNode" + ], + { + "title_aux": "ComfyUI Auto LoRA" + } + ], + "https://github.com/Charonartist/comfyui-last-frame-extractor": [ + [ + "LastFrameExtractorNode" + ], + { + "title_aux": "comfyui-last-frame-extractor" + } + ], + "https://github.com/Charonartist/comfyui-smart-resize-node": [ + [ + "SmartResizeNode" + ], + { + "title_aux": "ComfyUI Smart Resize Node" + } + ], + "https://github.com/Charonartist/comfyui-tag-remover": [ + [ + "TagRemoverNode" + ], + { + "title_aux": "ComfyUI Tag Remover" + } + ], + "https://github.com/CheNing233/ComfyUI_Image_Pin": [ + [ + "ImagePin" + ], + { + "title_aux": "ComfyUI_Image_Pin" + } + ], + "https://github.com/ChenDarYen/ComfyUI-NAG": [ + [ + "KSamplerWithNAG", + "KSamplerWithNAG (Advanced)", + "NAGCFGGuider", + "NAGGuider", + "SamplerCustomWithNAG" + ], + { + "title_aux": "ComfyUI-NAG" + } + ], + "https://github.com/ChenDarYen/ComfyUI-TimestepShiftModel": [ + [ + "Timestep Shift Model" + ], + { + "title_aux": "ComfyUI-TimestepShiftModel" + } + ], + "https://github.com/Chengym2023/ComfyUI-DeepSeek_Online": [ + [ + "DeepSeekOnline", + "SiliconCloud" + ], + { + "title_aux": "ComfyUI-DeepSeek_Online" + } + ], + "https://github.com/ChrisColeTech/ComfyUI-Elegant-Resource-Monitor": [ + [ + "Resource Monitor" + ], + { + "title_aux": "ComfyUI-Elegant-Resource-Monitor" + } + ], + "https://github.com/ChrisColeTech/ComfyUI-Line-counter": [ + [ + "Directory File Counter", + "Simple Number Counter", + "Text File Line Counter", + "Text File Line Reader" + ], + { + "title_aux": "ComfyUI-Line-counter" + } + ], + "https://github.com/Chrisvenator/ComfyUI-Painting-by-colors-generator": [ + [ + "EnhancedPaintByNumbersNode", + "HexStackNode", + "NumbersOverlayAdvancedNode", + "NumbersOverlayNode", + "PaintByNumbersNode", + "PaintByNumbersTemplateNode" + ], + { + "title_aux": "painting-by-colors-generator" + } + ], + "https://github.com/ClownsharkBatwing/RES4LYF": [ + [ + "AdvancedNoise", + "Base64ToConditioning", + "CLIPTextEncodeFluxUnguided", + "ClownModelLoader", + "ClownRegionalConditioning", + "ClownRegionalConditioning2", + "ClownRegionalConditioning3", + "ClownRegionalConditioning_AB", + "ClownRegionalConditioning_ABC", + "ClownRegionalConditionings", + "ClownScheduler", + "ClownpileModelWanVideo", + "Conditioning Recast FP64", + "ConditioningAdd", + "ConditioningAverageScheduler", + "ConditioningBatch4", + "ConditioningBatch8", + "ConditioningDownsample (T5)", + "ConditioningMultiply", + "ConditioningOrthoCollin", + "ConditioningToBase64", + "ConditioningTruncate", + "ConditioningZeroAndTruncate", + "Constant Scheduler", + "CrossAttn_EraseReplace_HiDream", + "EmptyLatentImage64", + "EmptyLatentImageCustom", + "Film Grain", + "FluxGuidanceDisable", + "FluxLoader", + "FluxOrthoCFGPatcher", + "Frame Select", + "Frame Select Latent", + "Frame Select Latent Raw", + "Frames Concat", + "Frames Concat Latent", + "Frames Concat Latent Raw", + "Frames Concat Masks", + "Frames Latent ReverseOrder", + "Frames Masks Uninterpolate", + "Frames Masks ZeroOut", + "Frames Slice", + "Frames Slice Latent", + "Frames Slice Latent Raw", + "Frequency Separation Hard Light", + "Frequency Separation Hard Light LAB", + "Frequency Separation Linear Light", + "Image Channels LAB", + "Image Crop Location Exact", + "Image Gaussian Blur", + "Image Get Color Swatches", + "Image Grain Add", + "Image Median Blur", + "Image Pair Split", + "Image Repeat Tile To Size", + "Image Sharpen FS", + "Latent Batcher", + "Latent Channels From To", + "Latent Clear State Info", + "Latent Display State Info", + "Latent Get Channel Means", + "Latent Match Channelwise", + "Latent Normalize Channels", + "Latent Replace State Info", + "Latent Transfer State Info", + "Latent TrimVideo State Info", + "Latent to Cuda", + "Latent to RawX", + "LatentBatch_channels", + "LatentBatch_channels_16", + "LatentNoiseBatch_fractal", + "LatentNoiseBatch_gaussian", + "LatentNoiseBatch_gaussian_channels", + "LatentNoiseBatch_perlin", + "LatentNoiseList", + "LatentNoised", + "LatentPhaseMagnitude", + "LatentPhaseMagnitudeMultiply", + "LatentPhaseMagnitudeOffset", + "LatentPhaseMagnitudePower", + "LatentUpscaleWithVAE", + "LayerPatcher", + "Linear Quadratic Advanced", + "Mask Bounding Box Aspect Ratio", + "Mask Sketch", + "MaskEdge", + "MaskEdgeRatio", + "MaskFloatToBoolean", + "MaskToggle", + "Masks From Color Swatches", + "Masks From Colors", + "Masks Unpack 16", + "Masks Unpack 4", + "Masks Unpack 8", + "ModelSamplingAdvanced", + "ModelSamplingAdvancedResolution", + "ModelTimestepPatcher", + "PrepForUnsampling", + "ReAuraPatcher", + "ReAuraPatcherAdvanced", + "ReChromaPatcher", + "ReChromaPatcherAdvanced", + "ReFluxPatcher", + "ReFluxPatcherAdvanced", + "ReHiDreamPatcher", + "ReHiDreamPatcherAdvanced", + "ReLTXVPatcher", + "ReLTXVPatcherAdvanced", + "ReReduxPatcher", + "ReSD35Patcher", + "ReSD35PatcherAdvanced", + "ReSDPatcher", + "ReWanPatcher", + "ReWanPatcherAdvanced", + "SD35Loader", + "SeedGenerator", + "Set Precision", + "Set Precision Advanced", + "Set Precision Universal", + "SetImageSize", + "SetImageSizeWithScale", + "Sigmas Abs", + "Sigmas AdaptiveNoiseFloor", + "Sigmas AdaptiveStep", + "Sigmas Add", + "Sigmas Append", + "Sigmas ArcCosine", + "Sigmas ArcSine", + "Sigmas ArcTangent", + "Sigmas Attractor", + "Sigmas CNFInverse", + "Sigmas CatmullRom", + "Sigmas Chaos", + "Sigmas Cleanup", + "Sigmas CollatzIteration", + "Sigmas Concat", + "Sigmas ConwaySequence", + "Sigmas Count", + "Sigmas CrossProduct", + "Sigmas DeleteBelowFloor", + "Sigmas DeleteDuplicates", + "Sigmas DotProduct", + "Sigmas Easing", + "Sigmas Fmod", + "Sigmas Frac", + "Sigmas From Text", + "Sigmas GammaBeta", + "Sigmas Gaussian", + "Sigmas GaussianCDF", + "Sigmas GilbreathSequence", + "Sigmas HarmonicDecay", + "Sigmas Hyperbolic", + "Sigmas If", + "Sigmas InvLerp", + "Sigmas Iteration Karras", + "Sigmas Iteration Polyexp", + "Sigmas KernelSmooth", + "Sigmas LambertW", + "Sigmas LangevinDynamics", + "Sigmas Lerp", + "Sigmas LinearSine", + "Sigmas Logarithm2", + "Sigmas Math1", + "Sigmas Math3", + "Sigmas Modulus", + "Sigmas Mult", + "Sigmas Noise Inversion", + "Sigmas NormalizingFlows", + "Sigmas Pad", + "Sigmas Percentile", + "Sigmas PersistentHomology", + "Sigmas Power", + "Sigmas QuantileNorm", + "Sigmas Quotient", + "Sigmas ReactionDiffusion", + "Sigmas Recast", + "Sigmas Resample", + "Sigmas Rescale", + "Sigmas RiemannianFlow", + "Sigmas SetFloor", + "Sigmas Sigmoid", + "Sigmas SmoothStep", + "Sigmas Split", + "Sigmas Split Value", + "Sigmas SquareRoot", + "Sigmas Start", + "Sigmas StepwiseMultirate", + "Sigmas TimeStep", + "Sigmas Truncate", + "Sigmas Unpad", + "Sigmas Variance Floor", + "Sigmas ZetaEta", + "Sigmas2 Add", + "Sigmas2 Mult", + "SigmasPreview", + "SigmasSchedulePreview", + "StableCascade_StageB_Conditioning64", + "StableCascade_StageC_VAEEncode_Exact", + "StyleModelApplyStyle", + "Tan Scheduler", + "Tan Scheduler 2", + "Tan Scheduler 2 Simple", + "TemporalCrossAttnMask", + "TemporalMaskGenerator", + "TemporalSplitAttnMask", + "TemporalSplitAttnMask (Midframe)", + "TextBox1", + "TextBox2", + "TextBox3", + "TextBoxConcatenate", + "TextConcatenate", + "TextLoadFile", + "TextShuffle", + "TextShuffleAndTruncate", + "TextTruncateTokens", + "TorchCompileModelAura", + "TorchCompileModelFluxAdv", + "TorchCompileModelSD35", + "TorchCompileModels", + "UNetSave", + "VAEEncodeAdvanced", + "VAEStyleTransferLatent" + ], + { + "title_aux": "RES4LYF" + } + ], + "https://github.com/Clybius/ComfyUI-ClybsChromaNodes": [ + [ + "ClybGuidance", + "InverseSquaredScheduler", + "PrintSigmas", + "SamplerClyb_BDF" + ], + { + "title_aux": "ComfyUI-ClybsChromaNodes" + } + ], "https://github.com/Clybius/ComfyUI-Extra-Samplers": [ [ "GeometricCFGGuider", @@ -847,28 +3878,187 @@ "title_aux": "ComfyUI-Latent-Modifiers" } ], + "https://github.com/CoiiChan/ComfyUI-Depth-Visualization-Advanced": [ + [ + "DepthViewerAndQuilts" + ], + { + "title_aux": "ComfyUI-Depth-Visualization-advanced" + } + ], + "https://github.com/CoiiChan/ComfyUI-FuncAsTexture-CoiiNode": [ + [ + "Add", + "Ceil", + "Chroma_Key_Alpha", + "Clamp", + "Contant3Vector", + "CustomScriptNumpy", + "DDX", + "Desaturation", + "Distance", + "Divided", + "Dot", + "HueShift", + "InverseUVMapGenerator", + "Lerp", + "Max", + "Min", + "Multiply", + "Oneminus", + "Outline", + "Panner", + "Power", + "Rotator", + "Sine", + "Subtraction", + "TextureSampler", + "UVCoordinateGen", + "ifFunction" + ], + { + "title_aux": "ComfyUI-FuncAsTexture-CoiiNode" + } + ], + "https://github.com/Comfy-Org/NIMnodes": [ + [ + "Get_HFToken", + "InstallNIMNode", + "LoadNIMNode", + "NIMFLUXNode" + ], + { + "title_aux": "NVIDIA FLUX NIM" + } + ], + "https://github.com/ComfyAssets/ComfyUI-KikoStats": [ + [ + "ResourceMonitor" + ], + { + "title_aux": "ComfyUI-KikoStats" + } + ], + "https://github.com/ComfyAssets/ComfyUI-KikoTools": [ + [ + "BatchPrompts", + "DisplayAny", + "DisplayText", + "EmptyLatentBatch", + "FluxSamplerParams", + "GeminiPrompt", + "GlifConsistencyDecoder", + "GlifPatchConsistencyDecoderTiled", + "GlifVariable", + "HFHubEmbeddingLoader", + "HFHubLoraLoader", + "ImageScaleDownBy", + "ImageToMultipleOf", + "KikoFilmGrain", + "KikoLocalImageLoader", + "KikoPurgeVRAM", + "KikoSaveImage", + "LoRAFolderBatch", + "PlotParameters+", + "ResolutionCalculator", + "SDXLAspectRatio", + "SamplerCombo", + "SamplerComboCompact", + "SamplerSelectHelper", + "SchedulerSelectHelper", + "SeedHistory", + "TextEncodeSamplerParams", + "WidthHeightSelector" + ], + { + "title_aux": "ComfyUI-KikoTools" + } + ], + "https://github.com/ComfyAssets/ComfyUI_PromptManager": [ + [ + "PromptManager", + "PromptManagerText" + ], + { + "title_aux": "ComfyUI_PromptManager" + } + ], + "https://github.com/ComfyAssets/ComfyUI_Selectors": [ + [ + "HeightNode", + "SamplerSelector", + "SchedulerSelector", + "SeedHistory", + "WidthHeightNode", + "WidthNode" + ], + { + "title_aux": "ComfyUI_Selectors" + } + ], + "https://github.com/ComfyUI-JH/ComfyUI-JH-Misc-Nodes": [ + [ + "JHDaisyChainableStringConstantNode", + "JHPreviewImage", + "JHThreeWaySwitchNode", + "JHTwoWaySwitchNode" + ], + { + "title_aux": "JH Misc. Nodes" + } + ], + "https://github.com/ComplexRobot/ComfyUI-Simple-VFI": [ + [ + "Simple_Frame_Interpolation" + ], + { + "title_aux": "ComfyUI-Simple-VFI" + } + ], + "https://github.com/Conor-Collins/ComfyUI-CoCoTools_IO": [ + [ + "ColorspaceNode", + "CryptomatteLayer", + "ImageLoader", + "LoadExr", + "LoadExrLayerByName", + "LoadExrSequence", + "SaverNode", + "ZNormalizeNode" + ], + { + "title_aux": "ComfyUI-CoCoTools_IO" + } + ], "https://github.com/CosmicLaca/ComfyUI_Primere_Nodes": [ [ + "DebugToFile", "PrimereAestheticCKPTScorer", "PrimereAnyDetailer", "PrimereAnyOutput", "PrimereCKPT", "PrimereCKPTLoader", "PrimereCLIPEncoder", - "PrimereClearPrompt", + "PrimereClearNetworkTagsPrompt", "PrimereConceptDataTuple", + "PrimereDiTPurifyPrompt", "PrimereDynamicParser", "PrimereEmbedding", "PrimereEmbeddingHandler", "PrimereEmbeddingKeywordMerger", "PrimereEmotionsStyles", + "PrimereFaceAnalyzer", + "PrimereFastSeed", "PrimereHypernetwork", "PrimereImageSegments", + "PrimereImgToPrompt", "PrimereKSampler", - "PrimereLCMSelector", + "PrimereLLMEnhancer", + "PrimereLLMEnhancerOptions", "PrimereLORA", "PrimereLYCORIS", "PrimereLatentNoise", + "PrimereLensStyles", "PrimereLoraKeywordMerger", "PrimereLoraStackMerger", "PrimereLycorisKeywordMerger", @@ -877,42 +4067,283 @@ "PrimereMetaDistributor", "PrimereMetaDistributorStage2", "PrimereMetaHandler", - "PrimereMetaRead", "PrimereMetaSave", + "PrimereMetaTupleCollector", "PrimereMidjourneyStyles", "PrimereModelConceptSelector", "PrimereModelKeyword", + "PrimereNetworkDataCollector", "PrimereNetworkTagLoader", "PrimerePreviewImage", "PrimerePrompt", "PrimerePromptOrganizer", + "PrimerePromptOrganizerCSV", "PrimerePromptSwitch", "PrimereRefinerPrompt", "PrimereResolution", - "PrimereResolutionMultiplier", + "PrimereResolutionCoordinatorMPX", "PrimereResolutionMultiplierMPX", - "PrimereSamplers", "PrimereSamplersSteps", "PrimereSeed", - "PrimereStepsCfg", "PrimereStyleLoader", "PrimereStylePile", "PrimereTextOutput", "PrimereUpscaleModel", "PrimereVAE", "PrimereVAELoader", - "PrimereVAESelector", "PrimereVisualCKPT", "PrimereVisualEmbedding", "PrimereVisualHypernetwork", "PrimereVisualLORA", "PrimereVisualLYCORIS", + "PrimereVisualPromptOrganizerCSV", "PrimereVisualStyle" ], { "title_aux": "Primere nodes for ComfyUI" } ], + "https://github.com/CpreForEver/CFE_comfyui": [ + [ + "CFE Aspect Ratio", + "CFE FLUX Guidance", + "CFE FLUX Sampler", + "CFE FLUX Sampler (Pipe)", + "CFE Flux In Pipe", + "CFE Flux Out Pipe", + "CFE Lora Params", + "CFE Scheduler", + "CFE Sigma Sampler", + "CFE Sigma Sampler Strings" + ], + { + "title_aux": "CFE_comfyui" + } + ], + "https://github.com/Creeper-MZ/comfyui_nai_api": [ + [ + "NovelAI", + "NovelAI_Declutter_Preprocessor", + "NovelAI_Lineart_Processor", + "NovelAI_Prompt", + "NovelAI_Sketch_Processor", + "NovelAI_VIBE" + ], + { + "title_aux": "comfyui_nai_api" + } + ], + "https://github.com/Creepybits/ComfyUI-Creepy_nodes": [ + [ + "AudioKeywordExtractor", + "CLIPSwitch", + "Categorizer", + "CollectAndDistributeText", + "Coloring", + "ConditionalLoRAApplier", + "CustomNodeManager", + "DelayNode", + "DelayTextNode", + "DynamicClipswitch", + "DynamicConditioning", + "DynamicDelayText", + "DynamicImageSwitch", + "DynamicLatentSwitch", + "DynamicModelswitch", + "DynamicVAESwitch", + "EvaluaterNode", + "FilterImages", + "GeminiAPI", + "GeminiAudioAnalyzer", + "GeminiTokenCounter", + "IMGToIMGConditioning", + "KeywordExtractor", + "LoadBatchImagesDir", + "MasterKey", + "Modelswitch", + "PeopleEvaluationNode", + "PromptGenerator", + "RandomAudioSegment", + "SanitizeFilename", + "SummaryWriter", + "SystemPromp", + "Textswitch", + "VAESwitch" + ], + { + "title_aux": "ComfyUI-Creepy_nodes" + } + ], + "https://github.com/Creepybits/ComfyUI-Save_To_GDrive": [ + [ + "SaveImageToGoogleDrive" + ], + { + "title_aux": "Save Image To Google Drive" + } + ], + "https://github.com/Creepybits/ComfyUI-Save_To_OneDrive": [ + [ + "SaveImageToOneDrive_CreepyBits" + ], + { + "title_aux": "Comfyui-Save_To_OneDrive" + } + ], + "https://github.com/Cryptyox/anaglyphTool-Comfyui": [ + [ + "AnaglyphTool", + "CrossEyeTool", + "StereogramTool" + ], + { + "author": "Timon", + "description": "Provides CUDA GPU accelerated nodes for creating 3D images (Anaglyph, Cross-Eye, Stereogram).", + "nickname": "StereoTools", + "title": "Stereo Tools (CUDA)", + "title_aux": "anaglyphTool-Comfyui" + } + ], + "https://github.com/Curt-Park/human-parser-comfyui-node-in-pure-python": [ + [ + "Cozy Human Parser ATR", + "Cozy Human Parser LIP", + "Cozy Human Parser Pascal" + ], + { + "title_aux": "Cozy Human Parser in pure Python" + } + ], + "https://github.com/CyanAutumn/ComfyUi_Random_Manage_Cyan": [ + [ + "Random Prompt Cyan", + "Remove Prompt Cyan" + ], + { + "title_aux": "ComfyUi Random Manage Cyan" + } + ], + "https://github.com/Cyber-BlackCat/ComfyUI-Image-Vector": [ + [ + "Vector" + ], + { + "title_aux": "ComfyUI-Image-Vector" + } + ], + "https://github.com/Cyber-BlackCat/ComfyUI-MoneyMaker": [ + [ + ", and the value is the function name in the right of the", + "Black and white", + "Image Judgment", + "Image Resize MM", + "ImageMinusMask", + "Light or Dark", + "Load Random Images", + "Mask Preprocess Morphology", + "Mask To Gray", + "Number", + "PhotoShop Transfer", + "SomethingShow", + "TensorShow", + "a fake Nod" + ], + { + "title_aux": "ComfyUI-Yuan" + } + ], + "https://github.com/Cyber-BlackCat/ComfyUI_Auto_Caption": [ + [ + "Auto Caption", + "Auto_Caption2", + "ExtraOptionsSet", + "Joy Model load", + "Joy_Model2_load", + "LoadManyImages" + ], + { + "title_aux": "ComfyUI_Auto_Caption" + } + ], + "https://github.com/Cyberschorsch/ComfyUI-checkpoint-config-loader": [ + [ + "Checkpoint Loader Config" + ], + { + "title_aux": "ComfyUI Checkpoint Loader Config" + } + ], + "https://github.com/Cyrostar/Artha-Gemini": [ + [ + "Gemini Backdrop", + "Gemini Body", + "Gemini Camera", + "Gemini Cloth", + "Gemini Compose", + "Gemini Condense", + "Gemini Face", + "Gemini Form", + "Gemini Imagen", + "Gemini Instruct", + "Gemini Light", + "Gemini Makeup", + "Gemini Markdown", + "Gemini Motion", + "Gemini Operation", + "Gemini Portrait", + "Gemini Prompter", + "Gemini Question", + "Gemini Response", + "Gemini Scenery", + "Gemini Speech", + "Gemini Style", + "Gemini Subject", + "Gemini Translate", + "Gemini Vision" + ], + { + "title_aux": "Artha-Gemini" + } + ], + "https://github.com/Cyrostar/Artha-Projekt": [ + [ + "Project Pause", + "Project Prefix", + "Project Seed", + "Project Setup" + ], + { + "title_aux": "Artha-Projekt" + } + ], + "https://github.com/D3lUX3I/ComfyUI-VideoPromptEnhancer": [ + [ + "VideoPromptEnhancer" + ], + { + "title_aux": "VideoPromptEnhancer" + } + ], + "https://github.com/DJ-Tribefull/Comfyui_FOCUS_nodes": [ + [ + "Control Pipe (Focus Nodes)", + "FOCUS Upscale (Focus Nodes)", + "Global Seed Controller (Focus Nodes)", + "KSampler Settings (Focus Nodes)", + "Model Unloader (Focus Nodes)", + "Prompt Box (Focus Nodes)", + "SDXL All-In-One (Focus Nodes)", + "SDXL Control Module (Focus Nodes)", + "SDXL Preprocess (Focus Nodes)", + "Style Injector (Focus Nodes)", + "Style Selector (Focus Nodes)", + "Text Display (Focus Nodes)", + "Wildcard Processor (Focus Nodes)" + ], + { + "title_aux": "Comfyui FOCUS nodes" + } + ], "https://github.com/Danand/ComfyUI-ComfyCouple": [ [ "Attention couple", @@ -926,62 +4357,477 @@ "title_aux": "Comfy Couple" } ], - "https://github.com/DarKDinDoN/comfyui-checkpoint-automatic-config": [ + "https://github.com/DanielHabib/ComfyUI-Voxels": [ [ - "CheckpointAutomaticConfig" + "ImageBatchToImageList", + "MaskBatchToMaskList", + "MeshToVoxel", + "VoxelBlockLoader", + "VoxelBlockSaver", + "VoxelBlocksIntoVoxelVideo", + "VoxelVideoAPIInputNode", + "VoxelVideoLoader", + "VoxelVideoPreview", + "VoxelVideoViewer", + "VoxelViewer", + "VoxelizeMesh" ], { - "title_aux": "ComfyUI Checkpoint Automatic Config" + "title_aux": "ComfyUI-Voxels" + } + ], + "https://github.com/DareFail/ComfyUI-Roboflow": [ + [ + "CustomWorkflow_1image", + "LabelEmotions", + "RemoveBackground" + ], + { + "title_aux": "ComfyUI-Roboflow" + } + ], + "https://github.com/DarioFT/ComfyUI-VideoDirCombiner": [ + [ + "VideoDirCombiner" + ], + { + "title_aux": "ComfyUI-VideoDirCombiner" + } + ], + "https://github.com/DataCTE/prompt_injection": [ + [ + "AdvancedPromptInjection", + "AdvancedSD15PromptInjection", + "PromptInjection", + "SD15PromptInjection", + "SimplePromptInjection", + "SimpleSD15PromptInjection" + ], + { + "title_aux": "Prompt Injection Node for ComfyUI" + } + ], + "https://github.com/DavidPiazza/network_bending": [ + [ + "AudioFeatureExtractor", + "AudioLatentBlend", + "AudioLatentGuidance", + "AudioLatentInterpolate", + "AudioLatentManipulator", + "AudioReferenceEncoder", + "AudioStyleTransfer", + "AudioVAEDecode", + "AudioVAEEncode", + "LatentFormatConverter", + "ModelMixer", + "NetworkBending", + "NetworkBendingAdvanced", + "VAEChannelManipulator", + "VAELatentBending", + "VAEMixer", + "VAENetworkBending" + ], + { + "title_aux": "Network Bending for ComfyUI" + } + ], + "https://github.com/Daxamur/DaxNodes": [ + [ + "DaxGetStringByIndex", + "DaxStringSplitter", + "FaceFrameDetector", + "ResolutionPickerFLF2V", + "ResolutionPickerI2V", + "ResolutionPickerT2V", + "RuntimeGenerationLengthSet", + "TrimBatch", + "VideoColorCorrectV3", + "VideoPreview", + "VideoSave", + "VideoSegmentCombinerV2", + "VideoSegmentSaverV2", + "VideoSegmentStateLoader", + "VideoStreamRIFEVFI", + "VideoStreamUpscaler", + "WANResolutionPicker" + ], + { + "title_aux": "DaxNodes" + } + ], + "https://github.com/Dayuppy/ComfyUI-DiscordWebhook": [ + [ + "DiscordPostViaWebhook", + "DiscordSetWebhook", + "Set Discord Webhook", + "Use Discord Webhook" + ], + { + "author": "Dayuppy", + "description": "A very simple Discord webhook integration node for ComfyUI that lets you post images and text.", + "nickname": "DiscordWebhook", + "title": "Discord Webhook", + "title_aux": "Discord Webhook" + } + ], + "https://github.com/De-Zoomer/ComfyUI-DeZoomer-Nodes": [ + [ + "CaptionRefinement", + "VideoCaptioning" + ], + { + "title_aux": "ComfyUI-DeZoomer-Nodes" + } + ], + "https://github.com/DeJoker/pipeline-parallel-comfy": [ + [ + "PipelineParallel" + ], + { + "title_aux": "Pipeline Parallel ComfyUI" + } + ], + "https://github.com/DebugPadawan/DebugPadawans-ComfyUI-Essentials": [ + [ + "DebugPadawan_ConditionalString", + "DebugPadawan_DebugPrint", + "DebugPadawan_ListInfo", + "DebugPadawan_TextJoiner", + "DebugPadawan_TextSplitter", + "DebugPadawan_TextToJSON", + "DebugPadawan_WaitNode" + ], + { + "title_aux": "DebugPadawan's ComfyUI Essentials" + } + ], + "https://github.com/DeemosTech/ComfyUI-Rodin": [ + [ + "LoadRodinAPIKEY", + "Preview_3DMesh", + "PromptForRodin", + "RodinImage3D", + "RodinMultipleImage3D", + "RodinText3D" + ], + { + "title_aux": "ComfyUI-Rodin" + } + ], + "https://github.com/Deep-Neko/ComfyUI_ascii_art": [ + [ + "AsciiGenerator" + ], + { + "author": "DeepNeko ", + "title_aux": "ascii-art-comfyui" + } + ], + "https://github.com/Dehypnotic/comfyui-numbered-text": [ + [ + "NumberedText" + ], + { + "title_aux": "NumberedText" + } + ], + "https://github.com/Dehypnotic/comfyui-range-to-string": [ + [ + "RangeToString" + ], + { + "title_aux": "RangeToString" + } + ], + "https://github.com/DenRakEiw/Latent_Nodes": [ + [ + "LatentColorMatch", + "LatentColorMatchSimple", + "LatentImageAdjust" + ], + { + "title_aux": "ComfyUI Latent Color Tools" + } + ], + "https://github.com/DenRakEiw/WAN_NN_Latent_Upscale": [ + [ + "UniversalNNLatentUpscale" + ], + { + "title_aux": "Universal NN Latent Upscaler for ComfyUI" } ], "https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes": [ - [ - "Absolute value", - "Ceil", - "Conditioning area scale by ratio", - "Cosines", - "Divide", - "Float", - "Floor", - "Get image size", - "Get latent size", - "Image scale by ratio", - "Image scale to side", - "Int to float", - "Integer", - "Latent Scale by ratio", - "Latent Scale to side", - "Logic node", - "Multiply", - "Power", - "Random", - "Sinus", - "Square root", - "String Concatenate", - "String Replace", - "Subtract", - "Sum", - "Tangent", - "Text", - "Text box", - "To text (Debug)" - ], + [], { + "author": "Derfuu", + "description": "Pack of simple (or not) and modded nodes for scaling images/latents, editing numbers or text. Automate calculations depending on image sizes or any other thing you want. Or randomize any number in your workflow. Debug node included.", + "nickname": "Derfuu simple/modded Nodes", + "nodename_pattern": "^DF_", + "title": "Derfuu simple/modded Nodes", "title_aux": "Derfuu_ComfyUI_ModdedNodes" } ], - "https://github.com/DonBaronFactory/ComfyUI-Cre8it-Nodes": [ + "https://github.com/DesertPixelAi/ComfyUI-DP-Ideogram-Character": [ [ - "ApplySerialPrompter", - "ImageSizer", - "SerialPrompter" + "DP_IdeogramCharacter" ], { - "author": "CRE8IT GmbH", - "description": "This extension offers various nodes.", - "nickname": "cre8Nodes", - "title": "cr8SerialPrompter", - "title_aux": "ComfyUI-Cre8it-Nodes" + "title_aux": "ComfyUI DP Ideogram Character Node" + } + ], + "https://github.com/DesertPixelAi/ComfyUI-Desert-Pixel-Nodes": [ + [ + "DP 10 Images Switch Or Batch", + "DP 10 String Switch Or Connect", + "DP 2 String Switch", + "DP 3 Images Switch Or Batch", + "DP 3 String Switch Or Connect", + "DP 5 Find And Replace", + "DP 5 Image And Mask Switch", + "DP 5 Images Switch Or Batch", + "DP 5 String Switch Or Connect", + "DP Add Background To Png", + "DP Add Weight To String Sdxl", + "DP Advanced Sampler", + "DP Advanced Weight String Sdxl", + "DP Animation Calculator 10 Inputs", + "DP Animation Calculator 5 Inputs", + "DP Art Style Generator", + "DP Aspect Ratio Picker", + "DP Big Letters", + "DP Broken Token", + "DP Clean Prompt", + "DP Clean Prompt Travel", + "DP Condition Switch", + "DP ControlNet Apply Advanced", + "DP Crazy Prompt Mixer", + "DP Create Json File", + "DP Custom Aspect Ratio", + "DP Diff Int 8step Selector", + "DP Draggable Floats 1", + "DP Draggable Floats 2", + "DP Draggable Floats 3", + "DP Draggable Int 1step", + "DP Draggable Int 4step", + "DP Draggable Int 8step", + "DP Extract Mask", + "DP Fast Slow Motion", + "DP Five Lora", + "DP Five Lora Random", + "DP Float Stepper", + "DP Get Seed From Image", + "DP IF Int Condition", + "DP Image And String Pairs Switch", + "DP Image Color Analyzer", + "DP Image Color Analyzer Small", + "DP Image Color Effect", + "DP Image Effect Processor", + "DP Image Effect Processor Small", + "DP Image Empty Latent Switch Flux", + "DP Image Empty Latent Switch SDXL", + "DP Image Grid To Image", + "DP Image Slice To Grid", + "DP Image Slide Show", + "DP Image Strip", + "DP Image To Pixelgrid", + "DP Int 0 1000", + "DP Latent Split", + "DP Line Cycler", + "DP Load Checkpoint With Info", + "DP Load Controlnet Model With Name", + "DP Load Dual CLIP With Info", + "DP Load Image Effects", + "DP Load Image Effects Small", + "DP Load Image Folder", + "DP Load Image Minimal", + "DP Load Image V2", + "DP Load Image With Seed", + "DP Load UNET With Info", + "DP Logo Animator", + "DP Lora Random Strength Controller", + "DP Lora Strength Controller", + "DP Mask Settings", + "DP Place Image", + "DP Prompt Inverter", + "DP Prompt Manager Small", + "DP Prompt Mode Controller", + "DP Prompt Styler", + "DP Prompt Token Compressor", + "DP Prompt Travel Prompt", + "DP Quick Model Link", + "DP Random Character", + "DP Random Crazy Prompt Generator", + "DP Random Logo Style Generator", + "DP Random Min Max", + "DP Random Mode Controller", + "DP Random Mode Switch", + "DP Random Psychedelic Punk Generator", + "DP Random Superhero Prompt Generator", + "DP Random Vehicle Generator", + "DP Resize Image And Mask", + "DP Sampler With Info", + "DP Save Image V2", + "DP Save Preview Image", + "DP Stitch 2 Images", + "DP String Text", + "DP String Text With Sdxl Weight", + "DP Strip Edge Masks", + "DP Switch Controller", + "DP Text Preview", + "DP Transition Frames Selector", + "DP Versatile Prompt Subjects Generator", + "DP Video Effect Receiver", + "DP Video Effect Sender", + "DP Video Flicker", + "DP Video Looper", + "DP Video Transition", + "DP Words", + "DP_Crazy_Prompt_Mixer", + "DP_Float_Stepper", + "DP_Image_To_Pixelgrid", + "DP_Prompt_Inverter" + ], + { + "title_aux": "ComfyUI-Desert-Pixel-Nodes" + } + ], + "https://github.com/DesertPixelAi/comfyui-dp-them-styler": [ + [ + "DP_Add_Logo_Banner", + "DP_Advanced_Sampler_Modified", + "DP_Dynamic_Random_Styler", + "DP_Gender_Age_Detector" + ], + { + "title_aux": "ComfyUI DP Dynamic Random Styler" + } + ], + "https://github.com/DiaoDaiaChan/ComfyUI_API_Request": [ + [ + "Character_Prompt_Select", + "NovelAI_Request", + "NovelAI_Request_Payload", + "SDWebUI_Request", + "SDWebUI_Request_Payload", + "SDWebUI_Request_PayloadExtend" + ], + { + "title_aux": "Comfyui SDAPI Request / NovelAI" + } + ], + "https://github.com/DiffusionLight/DiffusionLight-ComfyUI": [ + [ + "DiffusionLightBall2Envmap", + "DiffusionLightChromeballMask", + "DiffusionLightExposure2HDR", + "DiffusionLightExposureBracket", + "DiffusionLightPadBlackBorder", + "DiffusionLightPercentileToPixelValueTonemap", + "DiffusionLightSaveHDR" + ], + { + "title_aux": "DiffusionLight-ComfyUI" + } + ], + "https://github.com/Diohim/ComfyUI-Unusual-Tools": [ + [ + "AdjustCrop", + "AutoImageResize", + "BatchLoadLatentImage", + "BatchSaveLatentImage", + "FillMaskWithColor" + ], + { + "title_aux": "ComfyUI Unusual Tools" + } + ], + "https://github.com/Dobidop/ComfyStereo": [ + [ + "DeoVRViewNode", + "StereoImageNode" + ], + { + "title_aux": "Dobidop ComfyStereo" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-BEN": [ + [ + "BackgroundEraseNetwork" + ], + { + "title_aux": "ComfyUI BEN - Background Erase Network" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-MediaMixer": [ + [ + "FinalFrameSelector", + "FirstFrameSelector", + "PromptJournal", + "ReverseFrameSequence", + "VideoMerge", + "YouTubeVideoDownloader" + ], + { + "title_aux": "MediaMixer" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-Schedulizer": [ + [ + "prompt_schedule_converter", + "whisper_node" + ], + { + "title_aux": "Schedulizer" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-SnakeOil": [ + [ + "NegativeLoRALoader" + ], + { + "title_aux": "ComfyUI-SnakeOil" + } + ], + "https://github.com/DoctorDiffusion/ComfyUI-basic-pitch": [ + [ + "AudioToMidi", + "SaveMidi" + ], + { + "title_aux": "ComfyUI-basic-pitch" + } + ], + "https://github.com/Dontdrunk/ComfyUI-DD-Nodes": [ + [ + "DD-AdvancedFusion", + "DD-AspectRatioSelector", + "DD-ConditionSwitcher", + "DD-DimensionCalculator", + "DD-ImageSizeLimiter", + "DD-ImageStroke", + "DD-ImageToVideo", + "DD-ImageUniformSize", + "DD-LatentSwitcher", + "DD-MaskUniformSize", + "DD-ModelOptimizer", + "DD-ModelSwitcher", + "DD-QwenMTTranslator", + "DD-SamplingOptimizer", + "DD-SimpleLatent", + "DD-VideoFrameExtractor" + ], + { + "title_aux": "ComfyUI-DD-Nodes" + } + ], + "https://github.com/DrMWeigand/ComfyUI-StereoVision": [ + [ + "AutostereogramGenerator", + "StereoscopicGenerator" + ], + { + "title_aux": "StereoVision Plugin for ComfyUI" } ], "https://github.com/DrMWeigand/ComfyUI_ColorImageDetection": [ @@ -993,6 +4839,244 @@ "title_aux": "ComfyUI Color Detection Nodes" } ], + "https://github.com/DrStone71/ComfyUI-Prompt-Translator": [ + [ + "CLIP Text Encode (Translate)", + "CLIP Text Translate Advanced", + "Combine Conditioning", + "Conditional Translate", + "Language Package Manager", + "Prompt Text (Translate)", + "Text Translate", + "Universal Text Translate" + ], + { + "title_aux": "ComfyUI-Prompt-Translator" + } + ], + "https://github.com/DraconicDragon/ComfyUI-RyuuNoodles": [ + [ + "Ryuu_CleanStringAdvanced", + "Ryuu_ColorMatch", + "Ryuu_ExtractAndSaveLora", + "Ryuu_FallbackPassthrough", + "Ryuu_FallbackSwitchAny", + "Ryuu_FallbackSwitchImage", + "Ryuu_FallbackSwitchLatent", + "Ryuu_FloatPlain", + "Ryuu_FloatPlainLarger", + "Ryuu_FloatSlider", + "Ryuu_IntSlider", + "Ryuu_IsMultipleOf", + "Ryuu_ScaleToMultiple", + "Ryuu_ScaleToMultipleAdvanced", + "Ryuu_ScaleToMultipleLatentSizePicker", + "Ryuu_TestNode", + "Ryuu_TextEncoderDiffCheck", + "Ryuu_TokenCountTextBox" + ], + { + "title_aux": "ComfyUI-RyuuNoodles" + } + ], + "https://github.com/DraconicDragon/ComfyUI-Venice-API": [ + [ + "CharCountTextBox", + "GenerateImage_VENICE", + "GenerateSpeech_VENICE", + "GenerateTextAdvanced_VENICE", + "GenerateTextVeniceParameters_VENICE", + "GenerateText_VENICE", + "I2IEnhanceUpscale_VENICE" + ], + { + "title_aux": "ComfyUI-Venice-API" + } + ], + "https://github.com/DragonDiffusionbyBoyo/BoyoSupercoolWrapper": [ + [ + "BoyoSuperCoolWrapper" + ], + { + "title_aux": "BoyoSupercoolWrapper" + } + ], + "https://github.com/DragonDiffusionbyBoyo/Boyonodes": [ + [ + "BoyoAudioEval", + "BoyoChainBastardLoops", + "BoyoFramePackLoRA", + "BoyoImageGrab", + "BoyoLoadImageList", + "BoyoLoopCollector", + "BoyoLoopImageSaver", + "BoyoPairedSaver", + "BoyoPromptInjector", + "BoyoPromptLoop", + "BoyoSaver", + "BoyoTiledVAEDecode", + "BoyoVAEDecode", + "BoyoWanFunEmptyLatent", + "BoyoWanFunImageSampler", + "Boyolatent", + "MandelbrotVideo" + ], + { + "title_aux": "Boyonodes" + } + ], + "https://github.com/Dream-Pixels-Forge/ComfyUI-Mzikart-Mixer": [ + [ + "ArrangementEnforcer", + "AudioPostProcessor", + "CompressorNode", + "LimiterNode", + "MasteringEffects" + ], + { + "title_aux": "ComfyUI Mzikart Mixer" + } + ], + "https://github.com/Duanyll/duanyll_nodepack": [ + [ + "AdvancedMorphology", + "AsAny", + "BBoxCrop", + "BBoxImageStitcher", + "CoverWordsWithRectangles", + "CreateArkClient", + "CreateBoundingBoxesMaskQwen", + "CreateS3Client", + "DownloadImageFromUrl", + "DrawBBox", + "DrawBBoxMask", + "DrawBoundingBoxesQwen", + "DrawTextInBBox", + "DumpJson", + "ExpandBBoxByRatio", + "FillBBoxWithImage", + "FluxKontextTrue3DPE", + "FluxTextLoraLoader", + "GetTextBBoxWithAnchor", + "HfCheckpointLoader", + "HfClipLoader", + "HfDiffusionModelLoader", + "HfDualClipLoader", + "HfLoraLoader", + "HfLoraLoaderModelOnly", + "HfQuadrupleClipLoader", + "HfTripleClipLoader", + "HfVaeLoader", + "HttpPostForJson", + "ImageCropFromPadded", + "ImageDifferenceCmap", + "ImagePadToResolution", + "InsightFaceSimilarity", + "JsonPathQuery", + "JsonPathQuerySingle", + "JsonPathUpdate", + "LaplacianVariance", + "LogicAnd", + "LogicOr", + "MaskToBBox", + "MergeBBoxes", + "ParseBBoxQwenVL", + "ParseJson5", + "ParseLlmJsonOutput", + "PhotoDoddleConditioning", + "ReadTextFile", + "SeedEditNode", + "UploadImageToS3" + ], + { + "title_aux": "Duanyll Nodepack" + } + ], + "https://github.com/Eagle-CN/ComfyUI-Addoor": [ + [ + "AD_AnyFileList", + "AD_BatchImageLoadFromDir", + "AD_CSVPromptStyler", + "AD_CSVReader", + "AD_CSVTranslator", + "AD_DeleteLocalAny", + "AD_FluxTrainStepMath", + "AD_HFDownload", + "AD_ImageDrawRectangleSimple", + "AD_ImageIndexer", + "AD_ImageSaver", + "AD_LoadImageAdvanced", + "AD_PromptReplace", + "AD_TextIndexer", + "AD_TextListToString", + "AD_TextSaver", + "AD_TxtToCSVCombiner", + "AD_ZipSave", + "AD_advanced-padding", + "AD_color-image", + "AD_image-concat", + "AD_image-resize", + "AD_mockup-maker", + "AD_poster-maker", + "AD_prompt-saver", + "ImageCaptioner", + "ImageResize", + "Incrementer \ud83e\udeb4", + "TextAppendNode", + "Width and height for scaling image to ideal resolution \ud83e\udeb4", + "Width and height from aspect ratio \ud83e\udeb4", + "YANC.MultilineString", + "comfyui-easy-padding", + "image concat mask" + ], + { + "author": "ComfyUI Addoor", + "description": "Save prompts to CSV file with customizable naming pattern", + "title": "ComfyUI-PromptSaver", + "title_aux": "ComfyUI-Addoor" + } + ], + "https://github.com/Easymode-ai/ComfyUI-BPT": [ + [ + "TrimeshBPT", + "TrimeshLoad", + "TrimeshPreview", + "TrimeshSave" + ], + { + "title_aux": "ComfyUI-BPT" + } + ], + "https://github.com/Easymode-ai/ComfyUI-ShadowR": [ + [ + "ShadowRModelLoader", + "ShadowRShadowRemover" + ], + { + "title_aux": "ComfyUI-ShadowR" + } + ], + "https://github.com/EeroHeikkinen/ComfyUI-eesahesNodes": [ + [ + "InstantX Flux Union ControlNet Loader" + ], + { + "author": "eesahe", + "description": "InstantX's Flux union ControlNet loader and implementation", + "nickname": "eesahesNodes", + "title": "eesahe's Nodes", + "title_aux": "ComfyUI-eesahesNodes" + } + ], + "https://github.com/Elaine-chennn/comfyui-overlay-media": [ + [ + "OverlayMediaNode", + "VideoUpload" + ], + { + "title_aux": "ComfyUI Overlay Media Node" + } + ], "https://github.com/Electrofried/ComfyUI-OpenAINode": [ [ "OpenAINode" @@ -1033,14 +5117,140 @@ "title_aux": "ComfyUI-post-processing-nodes" } ], - "https://github.com/ExponentialML/ComfyUI_ELLA": [ + "https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes": [ [ - "ELLATextEncode", - "GetSigma", - "LoadElla" + "EmAySee_AnyPassthrough", + "EmAySee_CheckboxFloatNode", + "EmAySee_DateTimeStringNode", + "EmAySee_DynamicStringSelectorNode", + "EmAySee_GreaterThanNode", + "EmAySee_HostPinger", + "EmAySee_ImagePassthrough", + "EmAySee_IntegerStringSelectorNode", + "EmAySee_IntegerStringSelectorNodeDynamic", + "EmAySee_MultiplierNode", + "EmAySee_ProbabilityStringSelectorNode", + "EmAySee_RandomIntFromList", + "EmAySee_RandomIntegerFromListNode", + "EmAySee_RandomIntegerFromTogglesNode_PremadeLabels", + "EmAySee_RandomStringSelectorNode", + "EmAySee_RandomStringSelectorNodeFourChoice", + "EmAySee_RandomStringSelectorNodeThreeChoice", + "EmAySee_RemoveDuplicateCSV", + "EmAySee_RepaintKSampler", + "EmAySee_SaveImage", + "EmAySee_SaveTextToFile", + "EmAySee_StringPoseSelectorNode", + "EmAySee_StringTupleInputNode", + "EmAySee_SubmitToOobaboogaAPI", + "EmAySee_SubmitToOobaboogaAPIWithKey", + "EmAySee_ToggleIntNode", + "EmAySee_VarTextReplacer", + "EmAySee_VeryUniqueStringSelectorNode" ], { - "title_aux": "ComfyUI_ELLA" + "title_aux": "ComfyUI_EmAySee_CustomNodes" + } + ], + "https://github.com/EnragedAntelope/ComfyUI-ConstrainResolution": [ + [ + "ConstrainResolution" + ], + { + "title_aux": "ComfyUI-ConstrainResolution" + } + ], + "https://github.com/EnragedAntelope/ComfyUI-Doubutsu-Describer": [ + [ + "DoubutsuDescriber" + ], + { + "title_aux": "ComfyUI-Doubutsu-Describer" + } + ], + "https://github.com/EnragedAntelope/ComfyUI-EACloudNodes": [ + [ + "GroqNode", + "OpenRouterModels", + "OpenrouterNode" + ], + { + "title_aux": "ComfyUI-EACloudNodes" + } + ], + "https://github.com/EnragedAntelope/comfyui-relight": [ + [ + "ReLight" + ], + { + "title_aux": "ComfyUI-ReLight" + } + ], + "https://github.com/Erehr/ComfyUI-EreNodes": [ + [ + "ErePromptCloud", + "ErePromptFilter", + "ErePromptGallery", + "ErePromptLoraStack", + "ErePromptMultiSelect", + "ErePromptMultiline", + "ErePromptRandomizer", + "ErePromptToggle" + ], + { + "title_aux": "ComfyUI-EreNodes" + } + ], + "https://github.com/EvilBT/ComfyUI_SLK_joy_caption_two": [ + [ + "Batch_joy_caption_two", + "Batch_joy_caption_two_advanced", + "Joy_caption_two", + "Joy_caption_two_advanced", + "Joy_caption_two_load", + "Joy_extra_options" + ], + { + "title_aux": "JoyCaptionAlpha Two for ComfyUI" + } + ], + "https://github.com/Excidos/ComfyUI-Documents": [ + [ + "ChunkRouter", + "DocumentLoader", + "ImageSelector", + "PDFPageSplitter", + "PDFToImage", + "TextChunker" + ], + { + "title_aux": "ComfyUI-Documents" + } + ], + "https://github.com/Excidos/ComfyUI-Lumina-Next-SFT-DiffusersWrapper": [ + [ + "LuminaDiffusersNode" + ], + { + "title_aux": "ComfyUI-Lumina-Next-SFT-DiffusersWrapper" + } + ], + "https://github.com/ExoticArts/comfyui-ea-nodes": [ + [ + "EA_AutoTrimPingPong", + "EA_FilenameCombine", + "EA_LightningMotionBias", + "EA_ListVideos", + "EA_ManifestIndex", + "EA_PingPong", + "EA_PowerLora", + "EA_PowerLora_CLIP", + "EA_PowerLora_WanVideo", + "EA_TrimFrames", + "EA_VideoLoad" + ], + { + "title_aux": "comfyui-ea-nodes" } ], "https://github.com/ExponentialML/ComfyUI_ModelScopeT2V": [ @@ -1068,19 +5278,49 @@ "title_aux": "ComfyUI_VisualStylePrompting" } ], + "https://github.com/ExterminanzHS/Gecco-Discord-Autosend": [ + [ + "GeccoAutosend", + "GeccoImageSave", + "GeccoSelectchannel" + ], + { + "title_aux": "Gecco Discord Autosend" + } + ], "https://github.com/Extraltodeus/ComfyUI-AutomaticCFG": [ [ "Automatic CFG", "Automatic CFG - Advanced", - "Automatic CFG - Fastest", + "Automatic CFG - Attention modifiers", + "Automatic CFG - Attention modifiers tester", + "Automatic CFG - Custom attentions", + "Automatic CFG - Excellent attention", "Automatic CFG - Negative", "Automatic CFG - Post rescale only", - "SAG delayed activation" + "Automatic CFG - Preset Loader", + "Automatic CFG - Unpatch function", + "Automatic CFG - Warp Drive", + "SAG delayed activation", + "Temperature separate settings CLIP SDXL", + "Temperature settings CLIP", + "Temperature settings SD 1.5", + "Temperature settings SDXL", + "Zero Uncond CFG - standalone patch (incompatible with the others)" ], { "title_aux": "ComfyUI-AutomaticCFG" } ], + "https://github.com/Extraltodeus/DistanceSampler": [ + [ + "SamplerDistance", + "SamplerDistanceAdvanced" + ], + { + "title_aux": "DistanceSampler" + } + ], "https://github.com/Extraltodeus/LoadLoraWithTags": [ [ "LoraLoaderTagsQuery" @@ -1089,6 +5329,49 @@ "title_aux": "LoadLoraWithTags" } ], + "https://github.com/Extraltodeus/Negative-attention-for-ComfyUI-": [ + [ + "Negative cross attention", + "Negative cross attention concatenate" + ], + { + "title_aux": "Negative-attention-for-ComfyUI-" + } + ], + "https://github.com/Extraltodeus/Skimmed_CFG": [ + [ + "Skimmed CFG", + "Skimmed CFG - Clean Skim", + "Skimmed CFG - Difference CFG", + "Skimmed CFG - Timed flip", + "Skimmed CFG - linear interpolation", + "Skimmed CFG - linear interpolation dual scales", + "Skimmed CFG - replace" + ], + { + "title_aux": "Skimmed_CFG" + } + ], + "https://github.com/Extraltodeus/Stable-Diffusion-temperature-settings": [ + [ + "CLIP Temperature", + "Unet Temperature" + ], + { + "title_aux": "Stable-Diffusion-temperature-settings" + } + ], + "https://github.com/Extraltodeus/Uncond-Zero-for-ComfyUI": [ + [ + "Conditioning combine positive and negative", + "Conditioning crop or fill", + "Uncond Zero", + "interrupt on NaN" + ], + { + "title_aux": "Uncond-Zero-for-ComfyUI" + } + ], "https://github.com/Extraltodeus/Vector_Sculptor_ComfyUI": [ [ "CLIP Vector Sculptor text encode", @@ -1103,7 +5386,8 @@ ], "https://github.com/Extraltodeus/noise_latent_perlinpinpin": [ [ - "NoisyLatentPerlin" + "NoisyLatentPerlin", + "NoisyLatentPerlin16ch" ], { "title_aux": "noise latent perlinpinpin" @@ -1111,9 +5395,12 @@ ], "https://github.com/Extraltodeus/sigmas_tools_and_the_golden_scheduler": [ [ + "Aligned Scheduler", + "Gaussian Tail Scheduler", "Get sigmas as float", "Graph sigmas", "Manual scheduler", + "Merge many sigmas by average", "Merge sigmas by average", "Merge sigmas gradually", "Multiply sigmas", @@ -1125,11 +5412,25 @@ "title_aux": "sigmas_tools_and_the_golden_scheduler" } ], + "https://github.com/FaberVS/MultiModel": [ + [ + "ActiveModel", + "DenoiseSelector", + "KSamplerPipe", + "ListSelector", + "ModelParamsPipe", + "MySwitchIndex", + "ParamsPipeUnpack", + "PromptBuilder" + ], + { + "title_aux": "MultiModel" + } + ], "https://github.com/Fannovel16/ComfyUI-Frame-Interpolation": [ [ "AMT VFI", "CAIN VFI", - "EISAI VFI", "FILM VFI", "FLAVR VFI", "GMFSS Fortuna VFI", @@ -1140,25 +5441,117 @@ "Make Interpolation State List", "RIFE VFI", "STMFNet VFI", - "Sepconv VFI" + "Sepconv VFI", + "VFI FloatToInt" ], { "title_aux": "ComfyUI Frame Interpolation" } ], - "https://github.com/Fannovel16/ComfyUI-Loopchain": [ + "https://github.com/Fannovel16/ComfyUI-MagickWand": [ [ - "EmptyLatentImageLoop", - "FolderToImageStorage", - "ImageStorageExportLoop", - "ImageStorageImport", - "ImageStorageReset", - "LatentStorageExportLoop", - "LatentStorageImport", - "LatentStorageReset" + "ImageMagick Adaptive Blur", + "ImageMagick Adaptive Resize", + "ImageMagick Adaptive Sharpen", + "ImageMagick Adaptive Threshold", + "ImageMagick Auto Gamma", + "ImageMagick Auto Level", + "ImageMagick Auto Orient", + "ImageMagick Auto Threshold", + "ImageMagick Blue Shift", + "ImageMagick Blur", + "ImageMagick Brightness Contrast", + "ImageMagick Canny", + "ImageMagick Charcoal", + "ImageMagick Chop", + "ImageMagick Clahe", + "ImageMagick Clamp", + "ImageMagick Coalesce", + "ImageMagick Color Decision List", + "ImageMagick Color Matrix", + "ImageMagick Combine", + "ImageMagick Concat", + "ImageMagick Contrast", + "ImageMagick Contrast Stretch", + "ImageMagick Crop", + "ImageMagick Cycle Color Map", + "ImageMagick Decipher", + "ImageMagick Despeckle", + "ImageMagick Distort", + "ImageMagick Edge", + "ImageMagick Emboss", + "ImageMagick Encipher", + "ImageMagick Enhance", + "ImageMagick Equalize", + "ImageMagick Evaluate", + "ImageMagick Extent", + "ImageMagick Flip", + "ImageMagick Flop", + "ImageMagick Forward Fourier Transform", + "ImageMagick Function", + "ImageMagick Gamma", + "ImageMagick Gaussian Blur", + "ImageMagick Hough Lines", + "ImageMagick Implode", + "ImageMagick Kmeans", + "ImageMagick Kuwahara", + "ImageMagick Level", + "ImageMagick Levelize", + "ImageMagick Linear Stretch", + "ImageMagick Liquid Rescale", + "ImageMagick Local Contrast", + "ImageMagick Magnify", + "ImageMagick Mean Shift", + "ImageMagick Merge Layers", + "ImageMagick Mode", + "ImageMagick Modulate", + "ImageMagick Morphology", + "ImageMagick Motion Blur", + "ImageMagick Negate", + "ImageMagick Noise", + "ImageMagick Normalize", + "ImageMagick Oil Paint", + "ImageMagick Ordered Dither", + "ImageMagick Polynomial", + "ImageMagick Posterize", + "ImageMagick Quantize", + "ImageMagick Random Threshold", + "ImageMagick Range Threshold", + "ImageMagick Resample", + "ImageMagick Resize", + "ImageMagick Roll", + "ImageMagick Rotational Blur", + "ImageMagick Sample", + "ImageMagick Scale", + "ImageMagick Selective Blur", + "ImageMagick Sepia Tone", + "ImageMagick Shade", + "ImageMagick Shadow", + "ImageMagick Sharpen", + "ImageMagick Shave", + "ImageMagick Sigmoidal Contrast", + "ImageMagick Sketch", + "ImageMagick Smush", + "ImageMagick Solarize", + "ImageMagick Splice", + "ImageMagick Spread", + "ImageMagick Statistic", + "ImageMagick Swirl", + "ImageMagick Threshold", + "ImageMagick Thumbnail", + "ImageMagick Transform", + "ImageMagick Transform Colorspace", + "ImageMagick Transparentize", + "ImageMagick Transpose", + "ImageMagick Transverse", + "ImageMagick Unsharp Mask", + "ImageMagick Vignette", + "ImageMagick Wave", + "ImageMagick Wavelet Denoise", + "ImageMagick White Balance" ], { - "title_aux": "ComfyUI Loopchain" + "title_aux": "ComfyUI-MagickWand" } ], "https://github.com/Fannovel16/ComfyUI-MotionDiff": [ @@ -1203,16 +5596,20 @@ "AnimalPosePreprocessor", "AnimeFace_SemSegPreprocessor", "AnimeLineArtPreprocessor", + "AnyLineArtPreprocessor_aux", "BAE-NormalMapPreprocessor", "BinaryPreprocessor", "CannyEdgePreprocessor", "ColorPreprocessor", + "ControlNetAuxSimpleAddText", "ControlNetPreprocessorSelector", "DSINE-NormalMapPreprocessor", "DWPreprocessor", "DensePosePreprocessor", "DepthAnythingPreprocessor", + "DepthAnythingV2Preprocessor", "DiffusionEdge_Preprocessor", + "ExecuteAllControlNetPreprocessors", "FacialPartColoringFromPoseKps", "FakeScribblePreprocessor", "HEDPreprocessor", @@ -1229,7 +5626,11 @@ "Manga2Anime_LineArt_Preprocessor", "MaskOptFlow", "MediaPipe-FaceMeshPreprocessor", + "MeshGraphormer+ImpactDetector-DepthMapPreprocessor", "MeshGraphormer-DepthMapPreprocessor", + "Metric3D-DepthMapPreprocessor", + "Metric3D-NormalMapPreprocessor", + "Metric_DepthAnythingV2Preprocessor", "MiDaS-DepthMapPreprocessor", "MiDaS-NormalMapPreprocessor", "OneFormer-ADE20K-SemSegPreprocessor", @@ -1237,21 +5638,27 @@ "OpenposePreprocessor", "PiDiNetPreprocessor", "PixelPerfectResolution", + "PyraCannyPreprocessor", + "RenderAnimalKps", + "RenderPeopleKps", "SAMPreprocessor", "SavePoseKpsAsJsonFile", "ScribblePreprocessor", + "Scribble_PiDiNet_Preprocessor", "Scribble_XDoG_Preprocessor", "SemSegPreprocessor", "ShufflePreprocessor", "TEEDPreprocessor", + "TTPlanet_TileGF_Preprocessor", + "TTPlanet_TileSimple_Preprocessor", "TilePreprocessor", "UniFormer-SemSegPreprocessor", "Unimatch_OptFlowPreprocessor", + "UpperBodyTrackingFromPoseKps", "Zoe-DepthMapPreprocessor", "Zoe_DepthAnythingPreprocessor" ], { - "author": "tstandley", "preemptions": [ "AIO_Preprocessor", "AnimalPosePreprocessor", @@ -1306,6 +5713,36 @@ "title_aux": "ComfyUI's ControlNet Auxiliary Preprocessors" } ], + "https://github.com/Fantaxico/ComfyUI-GCP-Storage": [ + [ + "GCPStorageNode" + ], + { + "title_aux": "ComfyUI-GCP-Storage" + } + ], + "https://github.com/FaraamFide/ComfyUI-ParamNodes": [ + [ + "HelperModelSwitch", + "ParamBoolean", + "ParamFloat", + "ParamImage", + "ParamInt", + "ParamString", + "ParamUniversal" + ], + { + "title_aux": "ComfyUI-ParamNodes" + } + ], + "https://github.com/FearL0rd/ComfyUI-MaskAIFingerprint": [ + [ + "MaskAIFingerprint" + ], + { + "title_aux": "ComfyUI MaskAIFingerprint" + } + ], "https://github.com/Feidorian/feidorian-ComfyNodes": [ [], { @@ -1313,18 +5750,79 @@ "title_aux": "feidorian-ComfyNodes" } ], + "https://github.com/Ferocit/comfyui-feroccustomnodes": [ + [ + "LoadDescriptionNode", + "RandomLineFromText" + ], + { + "title_aux": "comfyui-feroccustomnodes" + } + ], + "https://github.com/FewBox/fewbox-outfit-comfyui": [ + [ + "FewBoxInContextLora", + "FewBoxLab", + "FewBoxSaveImage", + "FewBoxWatermark", + "FewBoxWebDAV" + ], + { + "title_aux": "fewbox-outfit-comfyui" + } + ], "https://github.com/Fictiverse/ComfyUI_Fictiverse": [ [ - "Add Noise to Image with Mask", - "Color correction", - "Displace Image with Depth", - "Displace Images with Mask", - "Zoom Image with Depth" + "Add Margin With Color", + "Any to Int/Float/String", + "Audio Duration", + "Essential Params", + "Get Last Output Video Path", + "If Image Valid", + "Image Params", + "Is Image Valid ?", + "Math Operation", + "None if same Image", + "Prompt Assembler", + "Resize Images To Megapixels", + "Resize To Megapixels", + "Video Params", + "WaveformDevice" ], { "title_aux": "ComfyUI Fictiverse Nodes" } ], + "https://github.com/Fihade/IC-Light-ComfyUI-Node": [ + [ + "LoadICLightUnetDiffusers", + "diffusers_model_loader", + "iclight_diffusers_sampler" + ], + { + "title_aux": "IC-Light-ComfyUI-Node" + } + ], + "https://github.com/FinetunersAI/ComfyUI_Finetuners_Suite": [ + [ + "AutoImageResize", + "GroupLink", + "ModelListNode", + "VariablesInjector", + "VariablesLogicNode" + ], + { + "title_aux": "ComfyUI_Finetuners_Suite" + } + ], + "https://github.com/Firetheft/ComfyUI_Civitai_Gallery": [ + [ + "CivitaiGalleryNode" + ], + { + "title_aux": "ComfyUI Civitai Gallery" + } + ], "https://github.com/FizzleDorf/ComfyUI-AIT": [ [ "AIT_Unet_Loader", @@ -1374,6 +5872,16 @@ "title_aux": "FizzNodes" } ], + "https://github.com/Flow-two/ComfyUI-WanStartEndFramesNative": [ + [ + "GetImagesFromBatchRanged_F2", + "WanImageToVideo_F2", + "WanSkipEndFrameImages_F2" + ], + { + "title_aux": "ComfyUI-WanStartEndFramesNative" + } + ], "https://github.com/FlyingFireCo/tiled_ksampler": [ [ "Asymmetric Tiled KSampler", @@ -1386,17 +5894,43 @@ ], "https://github.com/ForeignGods/ComfyUI-Mana-Nodes": [ [ - "audio2video", - "font2img", - "speech2text", - "string2file", - "text2speech", - "video2audio" + "Canvas Properties", + "Combine Video", + "Font Properties", + "Generate Audio", + "Preset Color Animations", + "Save/Preview Text", + "Scheduled Values", + "Speech Recognition", + "Split Video", + "Text to Image Generator" ], { "title_aux": "ComfyUI-Mana-Nodes" } ], + "https://github.com/FortunaCournot/comfyui_stereoscopic": [ + [ + "DecryptWatermark", + "EncryptWatermark", + "GetResolutionForVR", + "ImageVRConverter", + "SaveStrippedUTF8File", + "ScaleByFactor", + "StripXML" + ], + { + "title_aux": "Stereoscopic" + } + ], + "https://github.com/Franck-Demongin/NX_HuggingFace_Flux": [ + [ + "HFFlux" + ], + { + "title_aux": "NX_HuggingFace_Flux" + } + ], "https://github.com/Franck-Demongin/NX_PromptStyler": [ [ "NX_PromptStyler" @@ -1405,25 +5939,190 @@ "title_aux": "NX_PromptStyler" } ], - "https://github.com/GMapeSplat/ComfyUI_ezXY": [ + "https://github.com/Franck-Demongin/NX_Translator": [ [ - "ConcatenateString", - "ItemFromDropdown", - "IterationDriver", - "JoinImages", - "LineToConsole", - "NumberFromList", - "NumbersToList", - "PlotImages", - "StringFromList", - "StringToLabel", - "StringsToList", - "ezMath", - "ezXY_AssemblePlot", - "ezXY_Driver" + "Nx_Translator" ], { - "title_aux": "ezXY scripts and nodes" + "title_aux": "NX_Translator" + } + ], + "https://github.com/Franklyc/comfyui-lora-adain-patcher-node": [ + [ + "LoraAdaLNPatcher" + ], + { + "title_aux": "ComfyUI LoRA adaLN Patcher Node" + } + ], + "https://github.com/Frief84/ComfyUI-LoRAWeightAxisXY": [ + [ + "XY Input: LoRA Weight (simple)" + ], + { + "title_aux": "ComfyUI-LoRAWeightAxisXY" + } + ], + "https://github.com/FunnyFinger/ComfyUi-RadarWeightNode": [ + [ + "RadarWeightsNode" + ], + { + "title_aux": "Radar Weights Node" + } + ], + "https://github.com/FuouM/ComfyUI-EbSynth": [ + [ + "ES_Guides7", + "ES_Translate", + "ES_VideoTransfer", + "ES_VideoTransferExtra" + ], + { + "author": "Fuou Marinas", + "description": "Run EbSynth in ComfyUI.", + "nickname": "EbSynth", + "title": "ComfyUI-EbSynth", + "title_aux": "ComfyUI-EbSynth" + } + ], + "https://github.com/FuouM/ComfyUI-FirstOrderMM": [ + [ + "Articulate_Runner", + "FOMM_Partswap", + "FOMM_Runner", + "FOMM_Seg10Chooser", + "FOMM_Seg15Chooser", + "FOMM_Seg5Chooser", + "FSRT_Runner", + "MRFA_Runner", + "Spline_Runner" + ], + { + "author": "Fuou Marinas", + "description": "ComfyUI-native nodes to run First Order Motion Model for Image Animation and its non-diffusion-based successors.", + "nickname": "FOMM", + "title": "ComfyUI-FirstOrderMM", + "title_aux": "ComfyUI-FirstOrderMM" + } + ], + "https://github.com/FuouM/ComfyUI-MatAnyone": [ + [ + "MatAnyone", + "SolidColorBatched" + ], + { + "author": "Fuou Marinas", + "description": "A collection of nodes.", + "nickname": "FM_nodes", + "title": "FM Nodes", + "title_aux": "ComfyUI-MatAnyone" + } + ], + "https://github.com/FuouM/ComfyUI-StyleTransferPlus": [ + [ + "AESFA", + "AesFAStyleBlend", + "AesPA", + "CAST", + "CoralColorTransfer", + "EFDM", + "MicroAST", + "NeuralNeighbor", + "TSSAT", + "UniST", + "UniST_Video" + ], + { + "author": "ZJU", + "description": "A collection of style transfer nodes.", + "nickname": "StyleTransferPlus", + "title": "ComfyUI-StyleTransferPlus", + "title_aux": "ComfyUI-StyleTransferPlus" + } + ], + "https://github.com/FuouM/FM_nodes": [ + [ + "CoLIE_LowLight_Enhance", + "ConvIR_DeHaze", + "ConvIR_DeRain", + "ConvIR_DeSnow", + "ConvIR_DefocusDeblur", + "ConvIR_MotionDeBlur", + "ProPIH_Harmonizer", + "RealViFormerSR", + "StabStitch", + "StabStitch_Crop_Resize", + "StabStitch_Stabilize", + "WFEN" + ], + { + "author": "Fuou Marinas", + "description": "A collection of nodes.", + "nickname": "FM_nodes", + "title": "FM Nodes", + "title_aux": "FM_nodes" + } + ], + "https://github.com/Fuwuffyi/ComfyUI-VisualArea-Nodes": [ + [ + "VisualAreaPrompt", + "VisualAreaPromptAdvanced" + ], + { + "author": "Fuwuffy", + "description": "This is a collection of nodes created to aid when managing area conditionings.", + "nickname": "comfy-visual-area", + "title": "ComfyUI Visual Area Nodes", + "title_aux": "ComfyUI-VisualArea-Nodes" + } + ], + "https://github.com/G-370/ComfyUI-SD3-Powerlab": [ + [ + "G370SD3PowerLab_AttentionToImage", + "G370SD3PowerLab_ImageIntoAttention", + "G370SD3PowerLab_ImageIntoLayer", + "G370SD3PowerLab_LayerToImage", + "G370SD3PowerLab_RenderAttention" + ], + { + "title_aux": "ComfyUI-SD3-Powerlab" + } + ], + "https://github.com/GACLove/ComfyUI-Lightx2vWrapper": [ + [ + "LightX2VConfigCombiner", + "LightX2VInferenceConfig", + "LightX2VLightweightVAE", + "LightX2VLoRALoader", + "LightX2VMemoryOptimization", + "LightX2VModularInference", + "LightX2VQuantization", + "LightX2VTeaCache" + ], + { + "title_aux": "ComfyUI-Lightx2vWrapper" + } + ], + "https://github.com/GACLove/ComfyUI-VFI": [ + [ + "RIFEInterpolation" + ], + { + "title_aux": "ComfyUI-VFI" + } + ], + "https://github.com/GHOSTLXH/ComfyUI-Counternodes": [ + [ + "AlternatingOutput", + "AlternatingOutputB", + "ImageCounter", + "IntervalCounter", + "IntervalCounterB", + "LoadPromptFromTXT" + ], + { + "title_aux": "ComfyUI-Counternodes" } ], "https://github.com/GTSuya-Studio/ComfyUI-Gtsuya-Nodes": [ @@ -1440,20 +6139,328 @@ "title_aux": "ComfyUI-GTSuya-Nodes" } ], - "https://github.com/Gourieff/comfyui-reactor-node": [ + "https://github.com/GadzoinksOfficial/comfyui_gprompts": [ [ + "GPrompts" + ], + { + "author": "gadzoinksofficial", + "description": "Another dynamic prompt node, designed to be easy to use and support wildcards", + "nickname": "Gprompts", + "title": "Gprompts", + "title_aux": "Gprompts" + } + ], + "https://github.com/GadzoinksOfficial/gadzoinks_ComfyUI": [ + [ + "Gadzoinks" + ], + { + "author": "gadzoinksofficial", + "description": "Custom node for integrating with gadzoinks iPhone app", + "nickname": "Gadzoinks", + "title": "Gadzoinks", + "title_aux": "Gadzoinks" + } + ], + "https://github.com/GamingDaveUk/daves_nodes": [ + [ + "davesTextToList" + ], + { + "title_aux": "Daves Nodes" + } + ], + "https://github.com/Gary-yeh/ComfyUI-WebPrompter": [ + [ + "ContentFetcher (WebPrompter)", + "LLMNewsScriptGenerator (WebPrompter)" + ], + { + "title_aux": "ComfyUI-WebPrompter" + } + ], + "https://github.com/Gary-yeh/comfyui-super-captioner": [ + [ + "SuperCaptioner" + ], + { + "title_aux": "comfyui-super-captioner" + } + ], + "https://github.com/GavChap/ComfyUI-SD3LatentSelectRes": [ + [ + "SD3LatentSelectRes" + ], + { + "title_aux": "ComfyUI-SD3LatentSelectRes" + } + ], + "https://github.com/GeekyGhost/ComfyUI-Geeky-Kokoro-TTS": [ + [ + "GeekyKokoroAdvancedVoice", + "GeekyKokoroTTS" + ], + { + "title_aux": "ComfyUI-Geeky-Kokoro-TTS" + } + ], + "https://github.com/GeekyGhost/ComfyUI-Geeky-LatentSyncWrapper": [ + [ + "GeekyLatentSyncNode", + "GeekyVideoLengthAdjuster" + ], + { + "title_aux": "ComfyUI-Geeky-LatentSyncWrapper 1.5" + } + ], + "https://github.com/GeekyGhost/ComfyUI-GeekyRemB": [ + [ + "GeekyRemB" + ], + { + "title_aux": "ComfyUI-GeekyRemB" + } + ], + "https://github.com/GeekyGhost/ComfyUI-Image-Segmenting-Loader": [ + [ + "GeekyQwenCompositor", + "GeekyQwenEffects", + "GeekyQwenSegmentLoader" + ], + { + "title_aux": "ComfyUI-Image-Segmenting-Loader" + } + ], + "https://github.com/GeekyGhost/ComfyUI_Geeky_AudioMixer": [ + [ + "GeekyAudioMixer" + ], + { + "title_aux": "ComfyUI Geeky AudioMixer" + } + ], + "https://github.com/GentlemanHu/ComfyUI-SunoAI": [ + [ + "GentlemanHu_SunoAI", + "GentlemanHu_SunoAI_NotSafe" + ], + { + "title_aux": "ComfyUI Suno API" + } + ], + "https://github.com/GeraldWie/ComfyUI-I2I-slim": [ + [ + "Color Transfer Slim", + "Combine and Paste Slim", + "Inpaint Segments Slim", + "Mask Ops Slim" + ], + { + "author": "GeraldWie", + "title": "ComfyI2I-lite", + "title_aux": "ComfyUI-I2I-slim" + } + ], + "https://github.com/Gipphe/comfyui-metadata-statistics": [ + [ + "RecordModels" + ], + { + "title_aux": "ComfyUI Metadata Statistics" + } + ], + "https://github.com/GiusTex/ComfyUI-DiffusersImageOutpaint": [ + [ + "DiffusersImageOutpaint", + "EncodeDiffusersOutpaintPrompt", + "LoadDiffuserControlnet", + "LoadDiffuserModel", + "PadImageForDiffusersOutpaint" + ], + { + "title_aux": "ComfyUI-DiffusersImageOutpaint" + } + ], + "https://github.com/Goktug/comfyui-saveimage-plus": [ + [ + "SaveImagePlus" + ], + { + "title_aux": "Save Image Plus for ComfyUI" + } + ], + "https://github.com/Goshe-nite/comfyui-gps-supplements": [ + [ + "KSampler to Image Saver", + "Lora Prompt Concatenation", + "Lora to String", + "Model to String", + "gpsdebugger" + ], + { + "title_aux": "GPS' Supplements for ComfyUI" + } + ], + "https://github.com/Gourieff/ComfyUI-ReActor": [ + [ + "ImageRGBA2RGB", "ReActorBuildFaceModel", + "ReActorFaceBoost", "ReActorFaceSwap", "ReActorFaceSwapOpt", "ReActorImageDublicator", "ReActorLoadFaceModel", + "ReActorMakeFaceModelBatch", "ReActorMaskHelper", "ReActorOptions", "ReActorRestoreFace", - "ReActorSaveFaceModel" + "ReActorSaveFaceModel", + "ReActorSetWeight", + "ReActorUnload" ], { - "title_aux": "ReActor Node for ComfyUI" + "title_aux": "comfyui-reactor-node" + } + ], + "https://github.com/GraftingRayman/ComfyUI-PuLID-Flux-GR": [ + [ + "GRApplyPulidFlux", + "GRPulidFluxEvaClipLoader", + "GRPulidFluxInsightFaceLoader", + "GRPulidFluxModelLoader" + ], + { + "title_aux": "ComfyUI-PuLID-Flux-GR" + } + ], + "https://github.com/GraftingRayman/ComfyUI_GraftingRayman": [ + [ + "GR BLIP 2 Caption Generator", + "GR BLIP 2 Text Expander", + "GR Background Remover REMBG", + "GR Checkered Board", + "GR Counter", + "GR Flip Tile Random Inverted", + "GR Flip Tile Random Red Ring", + "GR Florence 2 Caption Generator", + "GR INT Incremetor", + "GR Image Details Displayer", + "GR Image Details Saver", + "GR Image Multiplier", + "GR Image Paste", + "GR Image Paste With Mask", + "GR Image Resize", + "GR Image Resize Methods", + "GR Image Size", + "GR Image/Depth Mask", + "GR Lora Randomizer", + "GR Mask", + "GR Mask Create", + "GR Mask Create Random", + "GR Mask Create Random Multi", + "GR Mask Resize", + "GR Multi Mask Create", + "GR Onomatopoeia", + "GR Pan Or Zoom", + "GR Prompt Generator", + "GR Prompt Generator Extended", + "GR Prompt HUB", + "GR Prompt Selector", + "GR Prompt Selector Multi", + "GR Prompty", + "GR Scroller", + "GR Sigmas", + "GR Stack Image", + "GR Text Overlay", + "GR Tile and Border Image", + "GR Tile and Border Image Random Flip" + ], + { + "title_aux": "GraftingRayman" + } + ], + "https://github.com/GraftingRayman/ComfyUI_QueueTube": [ + [ + "GR QueueTube" + ], + { + "title_aux": "ComfyUI QueueTube" + } + ], + "https://github.com/GrailGreg/images_base64": [ + [ + "SaveImage64", + "ShowText64" + ], + { + "title_aux": "Image Saving and Base64 Encoding Script" + } + ], + "https://github.com/GreenLandisaLie/AuraSR-ComfyUI": [ + [ + "AuraSR.AuraSRUpscaler" + ], + { + "title_aux": "AuraSR-ComfyUI" + } + ], + "https://github.com/GrenKain/PixelArt-Processing-Nodes-for-ComfyUI": [ + [ + "PixelArtDownscaleNode", + "PixelArtNode" + ], + { + "title_aux": "PixelArt Processing Nodes" + } + ], + "https://github.com/GroxicTinch/EasyUI-ComfyUI": [ + [ + "UINode" + ], + { + "title_aux": "EasyUI" + } + ], + "https://github.com/GrvBdgr/comfyui-negativewildcardsprocessor": [ + [ + "custom_token_processor", + "neg_wildcard_processor" + ], + { + "title_aux": "Negative Wildcard Processor Node for ComfyUI" + } + ], + "https://github.com/Gue-e/ComfyUI-PanoCard": [ + [ + "PanoCardViewer", + "PanoCondAllBatch", + "PanoCondFaceBatch", + "PanoCondFaceClamp", + "PanoCondFaceDetailerHook", + "PanoCondFaceUnPack", + "PanoImage2FaceSplit", + "PanoImageAdjust", + "PanoImageEqu2Equ", + "PanoImageEqu2Face", + "PanoImageEqu2Pic", + "PanoImageFace2Equ", + "PanoImageFaceClamp", + "PanoImageFaceToLong", + "PanoImageHeightPad", + "PanoImagePad", + "PanoImagePic2Equ", + "PanoImageRoll", + "PanoImageUnPack", + "PanoImageWidthPad", + "PanoLongMaskSplit", + "PanoMaskUnPack", + "PanoPipe", + "PanoPromptSplit", + "PanoRegionalPrompt" + ], + { + "title_aux": "ComfyUI-PanoCard" } ], "https://github.com/Guillaume-Fgt/ComfyUI_StableCascadeLatentRatio": [ @@ -1461,7 +6468,7 @@ "StableCascadeLatentRatio" ], { - "title_aux": "ComfyUI-ScenarioPrompt" + "title_aux": "ComfyUI_StableCascadeLatentRatio" } ], "https://github.com/HAL41/ComfyUI-aichemy-nodes": [ @@ -1472,54 +6479,208 @@ "title_aux": "ComfyUI aichemy nodes" } ], - "https://github.com/Hangover3832/ComfyUI-Hangover-Moondream": [ + "https://github.com/HECer/ComfyUI-FilePathCreator": [ [ - "Moondream Interrogator" + "FilePathCreator", + "FilePathExtractor" ], { - "author": "AlexL", - "description": "An implementation of the moondream visual LLM", - "nickname": "Hangover-Moondream", - "title": "ComfyUI-Hangover-Moondream", - "title_aux": "ComfyUI-Hangover-Moondream" + "title_aux": "ComfyUI-FilePathCreator" } ], - "https://github.com/Hangover3832/ComfyUI-Hangover-Nodes": [ + "https://github.com/HJH-AILab/ComfyUI_CosyVoice2": [ [ + "CosyVoiceModel", + "CosyVoiceNode", + "HJHCosyVoiceSaveAudio" + ], + { + "title_aux": "ComfyUI_CosyVoice2" + } + ], + "https://github.com/HJH-AILab/ComfyUI_Facefusion": [ + [ + "FacefusionFaceEnhancerProcessor", + "FacefusionFaceSwapperProcessor", + "FacefusionFrameEnhancerProcessor", + "FacefusionLipSyncerProcessor", + "FacefusionOptionsNode", + "FacefusionProcesserOptionsNode", + "FacefusionProcessingNode" + ], + { + "title_aux": "ComfyUI_Facefusion" + } + ], + "https://github.com/HJH-AILab/ComfyUI_StableAnimator": [ + [ + "StableAnimatorDWPoseDetectorAlignedModels", + "StableAnimatorLoadFramesFromFolderNode", + "StableAnimatorModels", + "StableAnimatorNode", + "StableAnimatorSkeletonNode" + ], + { + "title_aux": "ComfyUI_StableAnimator" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_APICall": [ + [ + "RH_AudioUploader", + "RH_BatchImages", + "RH_ExecuteNode", + "RH_ExtractImage", + "RH_ImageUploaderNode", + "RH_NodeInfoListNode", + "RH_SettingsNode", + "RH_Utils", + "RH_VideoUploader" + ], + { + "title_aux": "ComfyUI_RH_APICall" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_DMOSpeech2": [ + [ + "RunningHub DMOSpeech2" + ], + { + "title_aux": "ComfyUI DMOSpeech2 Node" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_FramePack": [ + [ + "RunningHub_FramePack", + "RunningHub_FramePack_F1" + ], + { + "title_aux": "ComfyUI_RH_FramePack" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_OminiControl": [ + [ + "RunningHub_Omini_Fill", + "RunningHub_Omini_Spatial", + "RunningHub_Omini_Subject" + ], + { + "title_aux": "ComfyUI_RH_OminiControl" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_Qwen-Image": [ + [ + "QwenImageModelLoader", + "RH_QwenImageGenerator", + "RH_QwenImagePromptEnhancer" + ], + { + "title_aux": "ComfyUI Qwen-Image Node" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_SeedXPro": [ + [ + "RunningHub SeedXPro Translator" + ], + { + "title_aux": "ComfyUI SeedXPro Translation Node" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_Step1XEdit": [ + [ + "RunningHub_Step1XEdit" + ], + { + "title_aux": "ComfyUI_RH_Step1XEdit" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_UNO": [ + [ + "RunningHub_UNO_Loadmodel", + "RunningHub_UNO_Sampler" + ], + { + "title_aux": "ComfyUI_RH_UNO" + } + ], + "https://github.com/HM-RunningHub/ComfyUI_RH_USO": [ + [ + "RunningHub USO Loader", + "RunningHub USO Sampler" + ], + { + "title_aux": "ComfyUI USO Node" + } + ], + "https://github.com/HMG-Fiverr/ComfyUI-RandomNumberButton": [ + [ + "RandomNumberButton" + ], + { + "title_aux": "Random Number Button" + } + ], + "https://github.com/HSDHCdev/ComfyUI-AI-Pixel-Art-Enhancer": [ + [ + "AIPixelArtEnhancer" + ], + { + "title_aux": "AI Pixel Art Enhancer for ComfyUI" + } + ], + "https://github.com/HWDigi/Factory-Prompts_comfyui": [ + [ + "FactoryPromptsNegative", + "FactoryPromptsNegativeCategorized", + "FactoryPromptsNegativeToggle", + "FactoryPromptsPositive" + ], + { + "title_aux": "Factory Prompt Generator" + } + ], + "https://github.com/Haiper-ai/ComfyUI-HaiperAI-API": [ + [ + "HaiperImage2Video", + "HaiperKeyframeConditioning", + "HaiperText2Image", + "HaiperText2Video" + ], + { + "title_aux": "ComfyUI-HaiperAI-API" + } + ], + "https://github.com/Hangover3832/ComfyUI_Hangover-Utils": [ + [ + "Image Clipboard Paster", "Image Scale Bounding Box", - "MS kosmos-2 Interrogator", "Make Inpaint Model", - "Save Image w/o Metadata" + "Save Image w/o Metadata", + "Sympy Math Interpreter" ], { "author": "AlexL", "description": "Scales an input image into a given box size, whereby the aspect ratio keeps retained.", "nickname": "Hangover-Image_Scale_Bouning_Box", "title": "ComfyUI-Hangover-Image_Scale_Bouning_Box", - "title_aux": "ComfyUI-Hangover-Nodes" + "title_aux": "ComfyUI_Hangover-Utils" } ], - "https://github.com/Hangover3832/ComfyUI-Hangover-Recognize_Anything": [ + "https://github.com/HannibalP/comfyui-HannibalPack": [ [ - "Recognize Anything Model (RAM)" + "HannibalLoraLoader" ], { - "author": "AlexL", - "description": "An implementation of the Recognize Anything Model (RAM++) for ComfyUI. The counterpart of Segment Anything Model (SAM).", - "nickname": "Hangover-Recognize_Anything", - "title": "ComfyUI-Hangover-Recognize_Anything", - "title_aux": "Recognize Anything Model (RAM) for ComfyUI" + "title_aux": "comfyui-HannibalPack" } ], "https://github.com/Haoming02/comfyui-diffusion-cg": [ [ "Normalization", - "NormalizationXL", "Recenter", "Recenter XL" ], { - "title_aux": "ComfyUI Diffusion Color Grading" + "title_aux": "Diffusion CG" } ], "https://github.com/Haoming02/comfyui-floodgate": [ @@ -1527,7 +6688,62 @@ "FloodGate" ], { - "title_aux": "ComfyUI Floodgate" + "title_aux": "Floodgate" + } + ], + "https://github.com/Haoming02/comfyui-resharpen": [ + [ + "Resharpen" + ], + { + "title_aux": "ComfyUI ReSharpen" + } + ], + "https://github.com/HappyXY/ComfyUI-AmazonBedrock": [ + [ + "Amazon Bedrock - Nova Canvas Background Prompt Replace", + "Amazon Bedrock - Nova Canvas Generate Image", + "Amazon Bedrock - Nova Canvas Generate Variations", + "Amazon Bedrock - Nova Canvas Remove Object", + "Amazon Bedrock - Nova Reel Video", + "Bedrock - Claude", + "Bedrock - Claude Multimodal", + "Bedrock - Nova", + "Bedrock - SDXL" + ], + { + "title_aux": "ComfyUI-AmazonBedrock" + } + ], + "https://github.com/HavocsCall/comfyui_HavocsCall_Custom_Nodes": [ + [ + "Clip Switch", + "Combine String", + "Conditioning Switch", + "Float Selector", + "Float to Integer", + "Float to String", + "Image Switch", + "Integer Selector", + "Integer to Float", + "Integer to String", + "Latent Switch", + "Load Image", + "Logic Compare", + "Math Operation", + "Model Switch", + "Prompt Combiner", + "Prompt Styler", + "Sampler Config", + "Save Image", + "String Switch", + "String to Float", + "String to Integer", + "Text Box", + "VAE Switch" + ], + { + "title_aux": "HavocsCall's Custom ComfyUI Nodes" } ], "https://github.com/HaydenReeve/ComfyUI-Better-Strings": [ @@ -1538,6 +6754,32 @@ "title_aux": "ComfyUI Better Strings" } ], + "https://github.com/Hazukiaoi/ComfyUI-LM_Studio_Tools": [ + [ + "LMS_APIConfig", + "LMS_GetAssistantMessage", + "LMS_Request", + "LMS_SelectModel", + "LMS_SystemPrompt", + "LMS_UnloadModel", + "LMS_UserPrompt" + ], + { + "title_aux": "LM Studio Tools for ComfyUI" + } + ], + "https://github.com/HeadshotPro/ComfyUI-HeadshotPro": [ + [ + "[HSP] Download Dreambooth Checkpoint", + "[HSP] Download Flux Lora", + "[HSP] Get Random Value From List", + "[HSP] Load Canny Pose Face", + "[HSP] Transparent to White Background" + ], + { + "title_aux": "ComfyUI-HeadshotPro" + } + ], "https://github.com/HebelHuber/comfyui-enhanced-save-node": [ [ "EnhancedSaveNode" @@ -1546,6 +6788,58 @@ "title_aux": "comfyui-enhanced-save-node" } ], + "https://github.com/HellerCommaA/ComfyUI-VideoResolutions": [ + [ + "HunyuanResolutions" + ], + { + "title_aux": "Hunyuan Video Resolutions" + } + ], + "https://github.com/Hellfiredragon/comfyui-image-manipulation": [ + [ + "AlphaApplyMaskToImage", + "CreateMaskFromColorsNode" + ], + { + "title_aux": "comfyui-image-manipulation" + } + ], + "https://github.com/HelloVision/ComfyUI_HelloMeme": [ + [ + "GetExpression", + "GetExpression2", + "GetFaceLandmarks", + "GetHeadPose", + "HMFaceToolkitsLoader", + "HMImagePipelineLoader", + "HMPipelineImage", + "HMPipelineVideo", + "HMVideoPipelineLoader" + ], + { + "title_aux": "ComfyUI_HelloMeme" + } + ], + "https://github.com/Hellrunner2k/ComfyUI-HellrunnersMagicalNodes": [ + [ + "AdjustMojo", + "BufferedEncoder", + "LoRABox", + "LoadMaskMap", + "MagicalSaveNode", + "MaskMapPrompt", + "MaskMapPromptMix", + "MojoLoader", + "MojoMaker", + "SaveMojo", + "TEAce", + "ThermalLatenator" + ], + { + "title_aux": "Hellrunner's Magical Nodes" + } + ], "https://github.com/Hiero207/ComfyUI-Hiero-Nodes": [ [ "Load Prompt Travel file", @@ -1560,20 +6854,118 @@ "title_aux": "Hiero-Nodes" } ], + "https://github.com/HighDoping/ComfyUI_ASSSSA": [ + [ + "ASSSubtitleReader", + "ASSSubtitleSave", + "FFMpegSettings", + "MultilineTextInput", + "SubtitleEmbedding", + "SubtitleExtraction", + "VideoTranscoding" + ], + { + "title_aux": "ComfyUI-ASSSSA" + } + ], + "https://github.com/HoangYell/comfyui-hoangyell-video": [ + [ + "AddIntroImage" + ], + { + "title_aux": "comfyui-hoangyell-video-edit" + } + ], + "https://github.com/Holasyb918/Ghost2_Comfyui": [ + [ + "AlignPipeline", + "BlenderPipeline", + "FaceAnalysisePipeline", + "FaceParsingPipeline", + "LoadAlignerModel", + "LoadBlenderModel", + "LoadFaceAnalysisModel", + "LoadFaceParsingModel", + "LoadInpainterModel", + "LoadStyleMatteModel" + ], + { + "title_aux": "Ghost2_Comfyui" + } + ], + "https://github.com/Hopping-Mad-Games/ComfyUI_LiteLLM": [ + [ + "AgentMemoryProvider", + "AgentNode", + "BasicRecursionFilterNode", + "DocumentChunkRecursionFilterNode", + "DocumentProcessor", + "LinuxMemoryDirectory", + "QueryNode" + ], + { + "description": "Nodes for interfacing with LiteLLM", + "nickname": "Tasha", + "title": "ComfyUI_LiteLLM", + "title_aux": "ComfyUI_LiteLLM" + } + ], + "https://github.com/Hullabalo/ComfyUI-Loop": [ + [ + "ImageCropLoop", + "ImageCutLoop", + "ImagePasteLoop", + "LoadImageSimple", + "LoopImageSimple", + "SaveImageSimple" + ], + { + "title_aux": "ComfyUI-Loop" + } + ], + "https://github.com/IDGallagher/ComfyUI-IG-Motion-I2V": [ + [ + "MI2V Flow Animator", + "MI2V Flow Predictor", + "MI2V PauseNode", + "MotionPainter" + ], + { + "author": "IDGallagher", + "description": "Custom nodes to aid in the exploration of Latent Space", + "nickname": "IG Interpolation Nodes", + "title": "IG Interpolation Nodes", + "title_aux": "ComfyUI-IG-Motion-I2V" + } + ], "https://github.com/IDGallagher/ComfyUI-IG-Nodes": [ [ "IG Analyze SSIM", "IG Cross Fade Images", "IG Explorer", "IG Float", + "IG Float List", "IG Folder", + "IG Image Crop", "IG Int", + "IG Interpolate", "IG Load Image", "IG Load Images", + "IG MotionPredictor", "IG Multiply", "IG Path Join", + "IG PointCloud From Cylindrical", + "IG PointCloud From Depth", + "IG Save PLY PointCloud", + "IG Simple Translate Stitcher", + "IG Stitch Depth Tiles", + "IG Stitch Images CV2", "IG String", - "IG ZFill" + "IG String List", + "IG Tile Image", + "IG ZFill", + "SM Video Base", + "SM Video Base Control" ], { "author": "IDGallagher", @@ -1583,15 +6975,166 @@ "title_aux": "IG Interpolation Nodes" } ], - "https://github.com/IKHOR/ComfyUI-IKHOR-Jam-Nodes": [ + "https://github.com/IDGallagher/MotionVideoSearch": [ [ - "LoadBatchFromS3", - "LoadFromS3", - "SaveBatchToS3", - "SaveToS3" + "IG Motion Video Frame", + "IG Motion Video Search" ], { - "title_aux": "ikhor-nodes" + "author": "IDGallagher", + "description": "Search an index of videos by motion image", + "nickname": "IG Motion Video Search", + "title": "IG Motion Video Search", + "title_aux": "IG-Motion-Search" + } + ], + "https://github.com/IIEleven11/ComfyUI-FairyTaler": [ + [ + "FairyTalerStoryboard", + "SceneParser", + "SceneToConditioning", + "StoryboardCompositor", + "ThreeSceneGenerator" + ], + { + "author": "Eleven", + "description": "Turn your AI roleplay into AI generated scenes from every response. Visualize what you read!", + "nickname": "ComfyUI FairyTaler", + "title": "ComfyUI FairyTaler Storyboard Nodes", + "title_aux": "ComfyUI-FairyTaler" + } + ], + "https://github.com/IIs-fanta/ComfyUI-FANTA-GameBox": [ + [ + "BilliardsGameNode", + "BrickBreakerNode", + "FlappyBirdNode", + "SnakeGameNode" + ], + { + "title_aux": "ComfyUI-FANTA-GameBox" + } + ], + "https://github.com/INuBq8/ComfyUI-NotificationBridge": [ + [ + "DiscordNotifyNode", + "WhatsAppNotifyNodeTwilio" + ], + { + "title_aux": "Notification Bridge" + } + ], + "https://github.com/ITurchenko/ComfyUI-SizeFromArray": [ + [ + "SizeFromArray" + ], + { + "title_aux": "ComfyUI-SizeFromArray" + } + ], + "https://github.com/IamCreateAI/Ruyi-Models": [ + [ + "Ruyi_EnhanceAVideo", + "Ruyi_I2VSampler", + "Ruyi_LoadLora", + "Ruyi_LoadModel", + "Ruyi_TeaCache" + ], + { + "title_aux": "ComfyUI-Ruyi" + } + ], + "https://github.com/IcelandicCenterArtificialIntelligence/ComfyUI-SamplerSchedulerMetricsTester": [ + [ + "SamplerSchedulerMetricsTester" + ], + { + "title_aux": "Sampler Scheduler Metrics Tester for ComfyUI" + } + ], + "https://github.com/Icyman86/ComfyUI_AnimeCharacterSelect": [ + [ + "ActionPromptNode", + "CharacterPromptNode", + "CombinePromptStringsNode", + "EnhancedCharacterPromptNode", + "MinimalCharacterActionPrompt" + ], + { + "title_aux": "ComfyUI_AnimeCharacterSelect" + } + ], + "https://github.com/IgalOgonov/ComfyUI_Simple_String_Repository": [ + [ + "SimpleStringRepository", + "SimpleStringRepositoryCompact", + "SimpleStringRepositoryLarge", + "SimpleStringRepositoryLargeCompact", + "SimpleStringRepositorySmall", + "SimpleStringRepositorySmallCompact" + ], + { + "title_aux": "Simple String Repository" + } + ], + "https://github.com/ImagineerNL/ComfyUI-IMGNR-Utils": [ + [ + "CatchEditTextNode", + "PreviewImageBase64Node" + ], + { + "title_aux": "ComfyUI-IMGNR-Utils" + } + ], + "https://github.com/ImagineerNL/ComfyUI-ToSVG-Potracer": [ + [ + "PotracerVectorize", + "SaveAsSVG Potracer (Temporary Fix)" + ], + { + "title_aux": "ComfyUI-ToSVG-Potracer" + } + ], + "https://github.com/Immac/ComfyUI-CoreVideoMocks": [ + [ + "CoreVideoMocks:AV1Codec", + "CoreVideoMocks:BatchAudioStreams", + "CoreVideoMocks:BatchSubtitlesStreams", + "CoreVideoMocks:BatchVideoStreams", + "CoreVideoMocks:CodecFromVideoStream", + "CoreVideoMocks:CombineVideo", + "CoreVideoMocks:DecodeVideoStream", + "CoreVideoMocks:EncodeVideoStream", + "CoreVideoMocks:GetAudioStream", + "CoreVideoMocks:GetSubtitleStream", + "CoreVideoMocks:GetVideoStream", + "CoreVideoMocks:LoadVideo", + "CoreVideoMocks:PreviewVideo", + "CoreVideoMocks:SaveVideo", + "CoreVideoMocks:SplitVideo", + "CoreVideoMocks:VP9Codec", + "CoreVideoMocks:VideoStreamData" + ], + { + "title_aux": "ComfyUI Core Video Nodes" + } + ], + "https://github.com/ImmortalPie/ComfyUI-PonySwitch": [ + [ + "PonySwitch" + ], + { + "title_aux": "PonySwitch Node" + } + ], + "https://github.com/InstantStudioAI/ComfyUI-InstantStudio": [ + [ + "HuggingFace Classify", + "Moondream", + "UploadImagesToInstantStudio" + ], + { + "title_aux": "ComfyUI-InstantStudio" } ], "https://github.com/Intersection98/ComfyUI_MX_post_processing-nodes": [ @@ -1639,6 +7182,15 @@ "title_aux": "Ranbooru for ComfyUI" } ], + "https://github.com/Irsalistic/comfyui-dam-object-extractor": [ + [ + "DAMObjectNameNode", + "DAMVisualizeNode" + ], + { + "title_aux": "ComfyUI DAM Object Extractor" + } + ], "https://github.com/IsItDanOrAi/ComfyUI-Stereopsis": [ [ "Dan_FrameDelay", @@ -1648,8 +7200,187 @@ "title_aux": "ComfyUI-Stereopsis" } ], + "https://github.com/IsItDanOrAi/ComfyUI-exLoadout": [ + [ + "dropdowns", + "exCheckpointLoader", + "exLoadoutCheckpointLoader", + "exLoadoutEditCell", + "exLoadoutReadColumn", + "exLoadoutSeg", + "exLoadoutSeg2", + "exLoadoutSelector", + "exSeg", + "exSeg2" + ], + { + "title_aux": "exLoadout: Excel-Based Model & Settings Loader" + } + ], + "https://github.com/Isi-dev/ComfyUI-Animation_Nodes_and_Workflows": [ + [ + "CLIPTextEncodeStyles", + "JoinVideos", + "MakeDrivingVideoForLivePortrait", + "MakePortraitWalk", + "MoveInOrOut", + "MoveLeftOrRight", + "MoveUpOrDown", + "Replace_Img_or_Vid_Bg_Assistant" + ], + { + "title_aux": "ComfyUI-Animation_Nodes_and_Workflows" + } + ], + "https://github.com/Isi-dev/ComfyUI-Img2DrawingAssistants": [ + [ + "LineArt_Assistant", + "LineArt_Assistant_2", + "Sketch_Assistant", + "Sketch_Assistant_grayScale" + ], + { + "title_aux": "ComfyUI-Img2DrawingAssistants" + } + ], + "https://github.com/Isi-dev/ComfyUI-Img2PaintingAssistant": [ + [ + "Painting", + "ProcessInspyrenetRembg" + ], + { + "title_aux": "Image to Painting and Inspyrenet Assistant Nodes" + } + ], + "https://github.com/Isi-dev/ComfyUI-UniAnimate-W": [ + [ + "Animate_X_Image", + "Animate_X_Image_Long", + "Animate_X_Image_v2", + "Animate_X_ReposeImage", + "Animate_X_ReposeImage_v2", + "Gen_align_pose", + "Gen_align_pose2", + "ReposeImage", + "UniAnimateImage", + "UniAnimateImageLong" + ], + { + "title_aux": "ComfyUI-UniAnimate-W" + } + ], + "https://github.com/Isi-dev/ComfyUI_DeleteModelPassthrough": [ + [ + "ControlledControlNetLoader", + "ControlledUnetLoaderGGUF", + "ControlledVAELoader", + "DeleteModelPassthrough" + ], + { + "title_aux": "ComfyUI_DeleteModelPassthrough" + } + ], + "https://github.com/Isulion/ComfyUI_Isulion": [ + [ + "CustomTextNode", + "CustomTextNode \u2328\ufe0f", + "DisplayImageFromURL", + "IsuCollage_Node", + "Isulion Civitai Image Display", + "Isulion Civitai Model Explorer", + "Isulion Civitai Trending", + "IsulionActionGenerator", + "IsulionAlienWorldGenerator", + "IsulionAnimalBehaviorGenerator", + "IsulionAnimalRandom", + "IsulionArtStyleGenerator", + "IsulionArtifactGenerator", + "IsulionCivitaiImageDisplay", + "IsulionCivitaiModelExplorer", + "IsulionCivitaiTrending", + "IsulionClothingGenerator", + "IsulionCuteAnimalRandom", + "IsulionEmotionGenerator", + "IsulionEpochGenerator", + "IsulionFantasyRaceGenerator", + "IsulionHabitatGenerator", + "IsulionLoadImagesNode", + "IsulionMagicalEffectGenerator", + "IsulionMegaPromptV3", + "IsulionMultiplePromptGenerator", + "IsulionMythicalLocationGenerator", + "IsulionNegativePromptGenerator", + "IsulionProfessionGenerator", + "IsulionPromptEnhancer", + "IsulionSceneComposition", + "IsulionSpacecraftGenerator", + "IsulionStyleMixer", + "IsulionTechGenerator", + "IsulionTimeOfDayGenerator", + "IsulionVideoPromptGenerator", + "IsulionWeatherGenerator", + "\u29c9 IsulionOverlay", + "\ud83d\udca4 IsulionShutdown", + "\ud83e\udde9 IsulionQRCode" + ], + { + "title_aux": "ComfyUI_Isulion Random Prompt Generator" + } + ], + "https://github.com/IuvenisSapiens/ComfyUI_MiniCPM-V-4": [ + [ + "DisplayText", + "MiniCPM_VQA", + "MiniCPM_VQA_Polished", + "MultipleImagesInput" + ], + { + "title_aux": "ComfyUI_MiniCPM-V-4" + } + ], + "https://github.com/IuvenisSapiens/ComfyUI_Qwen2-Audio-7B-Instruct-Int4": [ + [ + "AudioLoader", + "AudioPreviewer", + "Qwen2_AQA" + ], + { + "title_aux": "ComfyUI_Qwen2-Audio-7B-Instruct-Int4" + } + ], + "https://github.com/IuvenisSapiens/ComfyUI_Qwen2_5-VL-Instruct": [ + [ + "ImageLoader", + "MultiplePathsInput", + "Qwen2_VQA", + "VideoLoader" + ], + { + "title_aux": "ComfyUI_Qwen2-VL-Instruct" + } + ], + "https://github.com/JEONG-JIWOO/ComfyUI_Eugene_Nodes": [ + [ + "DictBus", + "DictBusEdit", + "DictBusUnpack", + "DictMultilineSelect", + "DictTemplate", + "DictUpdate1", + "DictUpdate10", + "DictUpdate5", + "LoraPresetListLoader", + "LoraPresetLoader", + "LoraPresetSaver", + "LoraPresetSelector" + ], + { + "title_aux": "ComfyUI_Eugene_Nodes" + } + ], "https://github.com/JPS-GER/ComfyUI_JPS-Nodes": [ [ + "CLIPTextEncode SDXL Plus (JPS)", "Conditioning Switch (JPS)", "ControlNet Switch (JPS)", "Crop Image Pipe (JPS)", @@ -1671,13 +7402,23 @@ "Get Image Size (JPS)", "IP Adapter Settings (JPS)", "IP Adapter Settings Pipe (JPS)", - "IP Adapter Single Settings (JPS)", - "IP Adapter Single Settings Pipe (JPS)", + "IP Adapter Tiled Settings (JPS)", + "IP Adapter Tiled Settings Pipe (JPS)", "IPA Switch (JPS)", + "Image Prepare Pipe (JPS)", + "Image Prepare Settings (JPS)", "Image Switch (JPS)", "ImageToImage Pipe (JPS)", "ImageToImage Settings (JPS)", "Images Masks MultiPipe (JPS)", + "InstantID Mask Prepare Pipe (JPS)", + "InstantID Mask Prepare Settings (JPS)", + "InstantID Pipe (JPS)", + "InstantID Pose Prepare Pipe (JPS)", + "InstantID Pose Prepare Settings (JPS)", + "InstantID Settings (JPS)", + "InstantID Source Prepare Pipe (JPS)", + "InstantID Source Prepare Settings (JPS)", "Integer Switch (JPS)", "Largest Int (JPS)", "Latent Switch (JPS)", @@ -1687,6 +7428,9 @@ "Multiply Float Float (JPS)", "Multiply Int Float (JPS)", "Multiply Int Int (JPS)", + "Prepare Image (JPS)", + "Prepare Image Plus (JPS)", + "Prepare Image Tiled IPA (JPS)", "Resolution Multiply (JPS)", "Revision Settings (JPS)", "Revision Settings Pipe (JPS)", @@ -1698,11 +7442,15 @@ "SDXL Prompt Styler (JPS)", "SDXL Recommended Resolution Calc (JPS)", "SDXL Resolutions (JPS)", + "SDXL Settings (JPS)", + "SDXL Settings Pipe (JPS)", "Sampler Scheduler Settings (JPS)", "Save Images Plus (JPS)", "Substract Int Int (JPS)", "Text Concatenate (JPS)", "Text Prompt (JPS)", + "Text Prompt Combo (JPS)", + "Time Seed (JPS)", "VAE Switch (JPS)" ], { @@ -1713,6 +7461,66 @@ "title_aux": "JPS Custom Nodes for ComfyUI" } ], + "https://github.com/JPrevots/ComfyUI-PhyCV": [ + [ + "PAGE", + "PST", + "VEVID" + ], + { + "title_aux": "ComfyUI-PhyCV" + } + ], + "https://github.com/JTriggerFish/ComfyLatentTools": [ + [ + "DownsampledAttentionGuidance", + "DownsampledLatentGuidance", + "GenericAttentionGuidance", + "LatentNormalizedLanczosResize" + ], + { + "title_aux": "Comfy Latent Tools" + } + ], + "https://github.com/JackEllie/ComfyUI_AI_Assistant": [ + [ + "apply_lighting_effects", + "clean_prompt_tags", + "noline_process", + "prompt_blacklist", + "prompt_sorting", + "resize_image_sdxl_ratio" + ], + { + "title_aux": "ComfyUI-AI-Assistant" + } + ], + "https://github.com/Jacky-MYQ/comfyui-DataCleaning": [ + [ + "CleanData" + ], + { + "title_aux": "comfyui-DataCleaning" + } + ], + "https://github.com/Jacky-MYQ/comfyui-rgb2cmyk": [ + [ + "RGB2CMYK" + ], + { + "title_aux": "RGB to CMYK for ComfyUI (Save as tif)" + } + ], + "https://github.com/Jaminanim/ComfyUI-Random-Int-Divisor-Node": [ + [ + "RandomIntegerNodeEfficient", + "RandomIntegerNodeEfficientAdvanced", + "RandomIntegerNodeList" + ], + { + "title_aux": "ComfyUI-Random-Int-Divisor-Node" + } + ], "https://github.com/Jannchie/ComfyUI-J": [ [ "DiffusersCompelPromptEmbedding", @@ -1732,21 +7540,56 @@ "title_aux": "ComfyUI-J" } ], + "https://github.com/Jannled/owl-vit-comfyui": [ + [ + "OWL_BBox_Visualizer", + "OWL_Load_Model", + "OWL_Objectness_Inference" + ], + { + "title_aux": "OWL-ViT ComfyUI" + } + ], + "https://github.com/Jarcis-cy/ComfyUI-HunyuanVideoFoley": [ + [ + "HunyuanVideoFoleyGenerateAudio", + "VideoAudioMerger" + ], + { + "title_aux": "HunyuanVideo-Foley Audio Generator" + } + ], "https://github.com/JaredTherriault/ComfyUI-JNodes": [ [ "JNodes_AddOrSetMetaDataKey", "JNodes_AnyToString", "JNodes_AppendReversedFrames", + "JNodes_AudioInputOptions", "JNodes_BooleanSelectorWithString", + "JNodes_BreakMediaInfo", "JNodes_CheckpointSelectorWithString", + "JNodes_ConditioningInOut", + "JNodes_CreateStereoscopicImageFromDepth", + "JNodes_DiffusionModelSelector", + "JNodes_FloatLiteral", + "JNodes_GetCleanFilename", + "JNodes_GetComfyDirectory", + "JNodes_GetLeafDirectory", "JNodes_GetOutputDirectory", "JNodes_GetParameterFromList", "JNodes_GetParameterGlobal", "JNodes_GetTempDirectory", "JNodes_ImageFormatSelector", "JNodes_ImageSizeSelector", + "JNodes_IntLiteral", + "JNodes_JoinVideosInDirectory", "JNodes_LoadVideo", + "JNodes_LoadVisualMediaFromPath", + "JNodes_LoadVisualMediaFromPath_Batch", + "JNodes_LoadVisualMediaFromPath_List", "JNodes_LoraExtractor", + "JNodes_MediaInfoToString", + "JNodes_ModelInOut", "JNodes_OutVideoInfo", "JNodes_ParseDynamicPrompts", "JNodes_ParseParametersToGlobalList", @@ -1758,24 +7601,38 @@ "JNodes_SamplerSelectorWithString", "JNodes_SaveImageWithOutput", "JNodes_SaveVideo", + "JNodes_SaveVideoWithOptions", "JNodes_SchedulerSelectorWithString", "JNodes_SearchAndReplace", "JNodes_SearchAndReplaceFromFile", "JNodes_SearchAndReplaceFromList", + "JNodes_SelectRandomFileFromDirectory", + "JNodes_SeparateStringByDelimiters", + "JNodes_SetMetadataA1111", "JNodes_SetNegativePromptInMetaData", "JNodes_SetPositivePromptInMetaData", "JNodes_SplitAndJoin", "JNodes_StringLiteral", + "JNodes_SubdirectorySelector", "JNodes_SyncedStringLiteral", "JNodes_TokenCounter", "JNodes_TrimAndStrip", "JNodes_UploadVideo", + "JNodes_UploadVisualMedia", "JNodes_VaeSelectorWithString" ], { "title_aux": "ComfyUI-JNodes" } ], + "https://github.com/Jash-Vora/ComfyUI-GarmentDiT": [ + [ + "GarmentEnhancementNode" + ], + { + "title_aux": "FitDiT" + } + ], "https://github.com/JcandZero/ComfyUI_GLM4Node": [ [ "GLM3_turbo_CHAT", @@ -1794,6 +7651,14 @@ "title_aux": "Rembg Background Removal Node for ComfyUI" } ], + "https://github.com/Jelosus2/comfyui-vae-reflection": [ + [ + "AddReflectionToVAE" + ], + { + "title_aux": "ComfyUI VAE Reflection" + } + ], "https://github.com/JerryOrbachJr/ComfyUI-RandomSize": [ [ "JOJR_RandomSize" @@ -1806,14 +7671,106 @@ "title_aux": "Random Size" } ], + "https://github.com/JettHu/ComfyUI-TCD": [ + [ + "TCDModelSamplingDiscrete" + ], + { + "title_aux": "ComfyUI-TCD" + } + ], "https://github.com/JettHu/ComfyUI_TGate": [ [ - "TGateApply" + "TGateApply", + "TGateApplyAdvanced", + "TGateApplySimple" ], { "title_aux": "ComfyUI_TGate" } ], + "https://github.com/JiSenHua/ComfyUI-TD": [ + [ + "Comfy3DPacktoTD", + "Hy3DtoTD", + "ImagetoTD", + "ImagetoTD(JPEG)", + "LoadTDImage", + "Tripo3DtoTD", + "TripoSRtoTD", + "VideotoTD" + ], + { + "title_aux": "ComfyUI-TD" + } + ], + "https://github.com/Jint8888/Comfyui_JTnodes": [ + [ + "JT Find Text From Excel", + "JT Read From Excel", + "JTBrightness", + "JTImagesavetopath", + "JTSaveTextToExcel", + "JTSaveTextToFile", + "JTcounter", + "SiliconflowFree" + ], + { + "title_aux": "Comfyui_JTnodes" + } + ], + "https://github.com/JoeNavark/comfyui_custom_sigma_editor": [ + [ + "CustomSplineSigma", + "SigmaJoiner" + ], + { + "title_aux": "Custom Graph Sigma for ComfyUI" + } + ], + "https://github.com/JohanK66/ComfyUI-WebhookImage": [ + [ + "Notif-Webhook" + ], + { + "title_aux": "ComfyUI WebhookImage" + } + ], + "https://github.com/JohnDoeSmithee/ComfyUI-SoX-Mixdown": [ + [ + "SoxMixNode" + ], + { + "title_aux": "ComfyUI-SoX-Mixdown" + } + ], + "https://github.com/Jokimbe/ComfyUI-DrawThings-gRPC": [ + [ + "DrawThingsControlNet", + "DrawThingsHints", + "DrawThingsLoRA", + "DrawThingsNegative", + "DrawThingsPositive", + "DrawThingsPrompt", + "DrawThingsRefiner", + "DrawThingsSampler", + "DrawThingsUpscaler" + ], + { + "title_aux": "ComfyUI-DrawThings-gRPC" + } + ], + "https://github.com/Jonseed/ComfyUI-Detail-Daemon": [ + [ + "DetailDaemonGraphSigmasNode", + "DetailDaemonSamplerNode", + "LyingSigmaSampler", + "MultiplySigmas" + ], + { + "title_aux": "ComfyUI-Detail-Daemon" + } + ], "https://github.com/Jordach/comfy-plasma": [ [ "JDC_AutoContrast", @@ -1837,12 +7794,207 @@ "title_aux": "comfy-plasma" } ], - "https://github.com/Kaharos94/ComfyUI-Saveaswebp": [ + "https://github.com/JosefKuchar/ComfyUI-AdvancedTiling": [ [ - "Save_as_webp" + "AdvancedTiling", + "AdvancedTilingSettings", + "AdvancedTilingVAEDecode" ], { - "title_aux": "ComfyUI-Saveaswebp" + "title_aux": "ComfyUI-AdvancedTiling" + } + ], + "https://github.com/JosephThomasParker/ComfyUI-DrawThingsWrapper": [ + [ + "DrawThingsGenerateFromPipeline", + "DrawThingsImg2Img", + "DrawThingsImg2ImgPipeline", + "DrawThingsPipelineAddControl", + "DrawThingsPipelineAddCustom", + "DrawThingsPipelineAddLora", + "DrawThingsTxt2Img", + "DrawThingsTxt2ImgPipeline" + ], + { + "title_aux": "ComfyUI-DrawThingsWrapper" + } + ], + "https://github.com/Julian-adv/WildDivide": [ + [ + "Attention couple wild divide", + "Comfy Divide", + "WildPromptGenerator", + "WildcardDivide", + "WildcardEncode" + ], + { + "author": "Julian Adventurer.", + "description": "This node is used to encode a wildcard string.", + "nickname": "WildDivide", + "title": "Wild Divide", + "title_aux": "Wild Divide" + } + ], + "https://github.com/JustLateNightAI/KeywordImageBlocker": [ + [ + "TagKeywordBlocker" + ], + { + "title_aux": "KeywordImageBlocker" + } + ], + "https://github.com/Juste-Leo2/Canary-ComfyUI": [ + [ + "Canary180mFlashASRNode", + "Canary180mFlashTranslateFromENNode", + "Canary180mFlashTranslateToENNode", + "CanaryASRNode", + "CanaryFlashASRNode", + "CanaryFlashTranslateFromENNode", + "CanaryFlashTranslateToENNode", + "CanaryModelLoader", + "CanaryTranslateFromENNode", + "CanaryTranslateToENNode" + ], + { + "title_aux": "Canary-ComfyUI" + } + ], + "https://github.com/Juste-Leo2/USO_ComfyUI": [ + [ + "USOLoader", + "USOSampler" + ], + { + "title_aux": "USO Nodes for ComfyUI" + } + ], + "https://github.com/JustinMatters/comfyUI-JMNodes": [ + [ + "JMBinaryNot", + "JMIntegerToBooleans", + "JMNumberList", + "JMSWitchablePrompt" + ], + { + "title_aux": "ComfyUI JMNodes" + } + ], + "https://github.com/KAVVATARE/ComfyUI-Light-N-Color": [ + [ + "ControlNetSwitch", + "FluxLightingAndColor", + "FluxSamplerPuLID", + "ImageSwitch", + "LatentSwitch", + "LoadInputOutputImage" + ], + { + "title_aux": " ComfyUI-Light-N-Color" + } + ], + "https://github.com/KAVVATARE/ComfyUI_RightEyeDisparity": [ + [ + "RightEyeImageNode", + "VideoRightEyeNode" + ], + { + "title_aux": "RightEyeDisparity" + } + ], + "https://github.com/KERRY-YUAN/ComfyUI_Float_Animator": [ + [ + "Float_Animator" + ], + { + "title_aux": "ComfyUI_Float_Animator" + } + ], + "https://github.com/KERRY-YUAN/ComfyUI_Simple_Executor": [ + [ + "NodeAutoSampler", + "NodeImagePre", + "NodeImageResize" + ], + { + "title_aux": "NodeSimpleExecutor" + } + ], + "https://github.com/KERRY-YUAN/ComfyUI_Spark_TTS": [ + [ + "Spark_TTS_Clone", + "Spark_TTS_Creation" + ], + { + "title_aux": "ComfyUI_Spark_TTS" + } + ], + "https://github.com/KLL535/ComfyUI_SimpleButcher": [ + [ + "Simple Auto Bypass", + "Simple Extract Lora From Text", + "Simple Image Saver (as Forge)", + "Simple Load Image With Metadata", + "Simple Load Images from Dir", + "Simple Load Line From Text File", + "Simple Lora Loader", + "Simple Remove Think" + ], + { + "title_aux": "ComfyUI_SimpleButcher" + } + ], + "https://github.com/KY-2000/ComfyUI_PuLID_Flux_ll_FaceNet": [ + [ + "ApplyPulidFlux", + "FixPulidFluxPatch", + "PulidFluxEvaClipLoader", + "PulidFluxFaceDetector", + "PulidFluxFaceNetLoader", + "PulidFluxInsightFaceLoader", + "PulidFluxModelLoader", + "PulidFluxOptions" + ], + { + "title_aux": "ComfyUI_PuLID_Flux_ll_FaceNet" + } + ], + "https://github.com/KY-2000/RES4LYF-tester-loop": [ + [ + "DoubleFloatRangeLoop", + "DoubleIntRangeLoop", + "RES4LYFComboLoop", + "RES4LYFSamplerLoop", + "RES4LYFSchedulerLoop", + "SingleFloatLoop", + "SingleIntLoop" + ], + { + "title_aux": "RES4LYF-tester-loop" + } + ], + "https://github.com/KY-2000/comfyui-ksampler-tester-loop": [ + [ + "AllParametersLoop", + "AllParametersLoopAdvanced", + "FloatRangeLoop", + "ParametersRangeLoop", + "SamplerLoop", + "SamplerLoopAdvanced", + "SamplerSchedulerLoop", + "SamplerSchedulerLoopAdvanced", + "SchedulerLoop" + ], + { + "title_aux": "comfyui-ksampler-tester-loop" + } + ], + "https://github.com/KY-2000/comfyui-save-image-enhanced": [ + [ + "SaveImageEnhancedNode" + ], + { + "title_aux": "comfyui-save-image-enhanced" } ], "https://github.com/Kangkang625/ComfyUI-paint-by-example": [ @@ -1854,19 +8006,166 @@ "title_aux": "ComfyUI-Paint-by-Example" } ], + "https://github.com/KarmaSwint/ComfyUI-KarmaNodes": [ + [ + "Karma-Film-Grain", + "Karma-KSampler-Cycle", + "Karma-Kolors", + "Karma_Film_Grain", + "Karma_Kolors" + ], + { + "title_aux": "KarmaNodes" + } + ], + "https://github.com/Kayarte/AudioDriven-Latent-Space-Tools-for-ComfyUI": [ + [ + "AdvancedNoisePatterns", + "AudioNoiseMapper", + "LibrosaAnalysisNode", + "NoiseToLatentConverter" + ], + { + "title_aux": "AudioDriven-Latent-Space-Tools-for-ComfyUI" + } + ], + "https://github.com/Kayarte/GeoNodes/raw/refs/heads/main/GISDetectionNode.py": [ + [ + "GISDetectionNode" + ], + { + "title_aux": "GeoNodes" + } + ], + "https://github.com/Kesin11/ComfyUI-list-filter": [ + [ + "list_filter_FilterImageListByIndexList", + "list_filter_FilterStringListByIndexList", + "list_filter_FindAnyStrings", + "list_filter_FindNotAnyStrings", + "list_filter_StringToIndex", + "random_normal_dist" + ], + { + "title_aux": "ComfyUI-list-filter" + } + ], + "https://github.com/KewkLW/ComfyUI-kewky_tools": [ + [ + "CLIPInterrogator", + "FormattedPromptNode", + "ImageBatcher", + "LoadImagePlus", + "LoadVideoPlus", + "TensorDebugPlus", + "TextAppendNode", + "TextSearchNode", + "VRAM_Debug_Plus" + ], + { + "title_aux": "ComfyUI-kewky_tools" + } + ], + "https://github.com/Kidev/ComfyUI-Fisheye-effects": [ + [ + "Defisheye", + "Fisheye" + ], + { + "title_aux": "ComfyUI Fisheye Effects Nodes" + } + ], + "https://github.com/KohakuBlueleaf/HDM-ext": [ + [ + "HDMCameraParam", + "HDMLoader", + "HDMTreadGamma" + ], + { + "title_aux": "HDM-ext" + } + ], + "https://github.com/KohakuBlueleaf/z-tipo-extension": [ + [ + "TIPO", + "TIPOFormat", + "TIPOOperation" + ], + { + "title_aux": "TIPO-extension" + } + ], + "https://github.com/KoreTeknology/ComfyUI-Nai-Production-Nodes-Pack": [ + [ + "Brightness Image", + "ColorMatch2", + "Contrast Image", + "Get Text", + "Image Difference", + "ImageConcatenate", + "ImageDesaturate", + "ImageExtend", + "ImageFlip", + "ImageRotate", + "LoadImageNai", + "Math Operation", + "NoteAdvanced", + "Set Text" + ], + { + "title_aux": "ComfyUI Production Nodes Pack" + } + ], + "https://github.com/KoreTeknology/ComfyUI-Universal-Styler": [ + [ + "\ud83d\udee1\ufe0f Load Scripts from Database", + "\ud83d\udee1\ufe0f Save Script to Database (In progress)", + "\ud83d\udee1\ufe0f Set Main Channel" + ], + { + "title_aux": "ComfyUI Universal Styler" + } + ], + "https://github.com/Koren-cy/FlowCV": [ + [ + "Example" + ], + { + "title_aux": "FlowCV" + } + ], "https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet": [ [ "ACN_AdvancedControlNetApply", + "ACN_AdvancedControlNetApplySingle", + "ACN_AdvancedControlNetApplySingle_v2", + "ACN_AdvancedControlNetApply_v2", + "ACN_ControlNet++InputNode", + "ACN_ControlNet++LoaderAdvanced", + "ACN_ControlNet++LoaderSingle", + "ACN_ControlNetLoaderAdvanced", "ACN_ControlNetLoaderWithLoraAdvanced", + "ACN_CtrLoRALoader", + "ACN_CustomControlNetWeightsFlux", + "ACN_CustomControlNetWeightsSD15", + "ACN_CustomT2IAdapterWeights", "ACN_DefaultUniversalWeights", + "ACN_DiffControlNetLoaderAdvanced", + "ACN_ExtrasMiddleMult", "ACN_ReferenceControlNet", "ACN_ReferenceControlNetFinetune", "ACN_ReferencePreprocessor", + "ACN_ScaledSoftControlNetWeights", + "ACN_SoftControlNetWeightsSD15", + "ACN_SoftT2IAdapterWeights", "ACN_SparseCtrlIndexMethodNode", "ACN_SparseCtrlLoaderAdvanced", "ACN_SparseCtrlMergedLoaderAdvanced", "ACN_SparseCtrlRGBPreprocessor", "ACN_SparseCtrlSpreadMethodNode", + "ACN_SparseCtrlWeightExtras", + "ACN_TimestepKeyframeFromStrengthList", + "ACN_TimestepKeyframeInterpolation", "ControlNetLoaderAdvanced", "CustomControlNetWeights", "CustomT2IAdapterWeights", @@ -1897,6 +8196,7 @@ "ADE_AdjustWeightIndivAttnAdd", "ADE_AdjustWeightIndivAttnMult", "ADE_AdjustWeightIndivMult", + "ADE_AncestralOptions", "ADE_AnimateDiffCombine", "ADE_AnimateDiffKeyframe", "ADE_AnimateDiffLoRALoader", @@ -1913,36 +8213,108 @@ "ADE_AnimateDiffUnload", "ADE_ApplyAnimateDiffModel", "ADE_ApplyAnimateDiffModelSimple", + "ADE_ApplyAnimateDiffModelWithCameraCtrl", + "ADE_ApplyAnimateDiffModelWithPIA", "ADE_ApplyAnimateLCMI2VModel", + "ADE_AttachLoraHookToCLIP", + "ADE_AttachLoraHookToConditioning", "ADE_BatchedContextOptions", + "ADE_CFGExtrasPAG", + "ADE_CFGExtrasPAGSimple", + "ADE_CFGExtrasRescaleCFG", + "ADE_CFGExtrasRescaleCFGSimple", + "ADE_CameraCtrlAnimateDiffKeyframe", + "ADE_CameraManualPoseAppend", + "ADE_CameraPoseAdvanced", + "ADE_CameraPoseBasic", + "ADE_CameraPoseCombo", + "ADE_CombineLoraHooks", + "ADE_CombineLoraHooksEight", + "ADE_CombineLoraHooksFour", + "ADE_ConditioningCombine", + "ADE_ConditioningSetMask", + "ADE_ConditioningSetMaskAndCombine", + "ADE_ConditioningSetUnmaskedAndCombine", + "ADE_ContextExtras_ContextRef", + "ADE_ContextExtras_ContextRef_Keyframe", + "ADE_ContextExtras_ContextRef_KeyframeFromList", + "ADE_ContextExtras_ContextRef_KeyframeInterpolation", + "ADE_ContextExtras_ContextRef_ModeFirst", + "ADE_ContextExtras_ContextRef_ModeIndexes", + "ADE_ContextExtras_ContextRef_ModeSliding", + "ADE_ContextExtras_ContextRef_TuneAttn", + "ADE_ContextExtras_ContextRef_TuneAttnAdain", + "ADE_ContextExtras_NaiveReuse", + "ADE_ContextExtras_NaiveReuse_Keyframe", + "ADE_ContextExtras_NaiveReuse_KeyframeFromList", + "ADE_ContextExtras_NaiveReuse_KeyframeInterpolation", + "ADE_ContextExtras_Set", "ADE_CustomCFG", "ADE_CustomCFGKeyframe", + "ADE_CustomCFGKeyframeFromList", + "ADE_CustomCFGKeyframeInterpolation", + "ADE_CustomCFGKeyframeSimple", + "ADE_CustomCFGSimple", "ADE_EmptyLatentImageLarge", "ADE_InjectI2VIntoAnimateDiffModel", + "ADE_InjectPIAIntoAnimateDiffModel", + "ADE_InputPIA_Multival", + "ADE_InputPIA_PaperPresets", "ADE_IterationOptsDefault", "ADE_IterationOptsFreeInit", "ADE_LoadAnimateDiffModel", + "ADE_LoadAnimateDiffModelWithCameraCtrl", "ADE_LoadAnimateLCMI2VModel", + "ADE_LoadCameraPoses", + "ADE_LoadCameraPosesFromPath", "ADE_LoopedUniformContextOptions", "ADE_LoopedUniformViewOptions", - "ADE_MaskedLoadLora", + "ADE_LoraHookKeyframe", + "ADE_LoraHookKeyframeFromStrengthList", + "ADE_LoraHookKeyframeInterpolation", + "ADE_MultivalConvertToMask", "ADE_MultivalDynamic", + "ADE_MultivalDynamicFloatInput", + "ADE_MultivalDynamicFloats", "ADE_MultivalScaledMask", + "ADE_NoiseCalibration", "ADE_NoiseLayerAdd", "ADE_NoiseLayerAddWeighted", + "ADE_NoiseLayerNormalizedSum", "ADE_NoiseLayerReplace", + "ADE_NoisedImageInjectOptions", + "ADE_NoisedImageInjection", + "ADE_PIA_AnimateDiffKeyframe", + "ADE_PairedConditioningCombine", + "ADE_PairedConditioningSetMask", + "ADE_PairedConditioningSetMaskAndCombine", + "ADE_PairedConditioningSetUnmaskedAndCombine", + "ADE_PerturbedAttentionGuidanceMultival", "ADE_RawSigmaSchedule", + "ADE_RegisterLoraHook", + "ADE_RegisterLoraHookModelOnly", + "ADE_RegisterModelAsLoraHook", + "ADE_RegisterModelAsLoraHookModelOnly", + "ADE_ReplaceCameraParameters", + "ADE_ReplaceOriginalPoseAspectRatio", + "ADE_RescaleCFGMultival", + "ADE_SetLoraHookKeyframe", "ADE_SigmaSchedule", "ADE_SigmaScheduleSplitAndCombine", + "ADE_SigmaScheduleToSigmas", "ADE_SigmaScheduleWeightedAverage", "ADE_SigmaScheduleWeightedAverageInterp", "ADE_StandardStaticContextOptions", "ADE_StandardStaticViewOptions", "ADE_StandardUniformContextOptions", "ADE_StandardUniformViewOptions", + "ADE_TimestepsConditioning", "ADE_UpscaleAndVAEEncode", "ADE_UseEvolvedSampling", "ADE_ViewsOnlyContextOptions", + "ADE_VisualizeContextOptionsK", + "ADE_VisualizeContextOptionsKAdv", + "ADE_VisualizeContextOptionsSCustom", "AnimateDiffLoaderV1", "CheckpointLoaderSimpleWithNoiseSelect" ], @@ -1952,6 +8324,7 @@ ], "https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite": [ [ + "VHS_AudioToVHSAudio", "VHS_BatchManager", "VHS_DuplicateImages", "VHS_DuplicateLatents", @@ -1961,9 +8334,12 @@ "VHS_GetMaskCount", "VHS_LoadAudio", "VHS_LoadAudioUpload", + "VHS_LoadImagePath", "VHS_LoadImages", "VHS_LoadImagesPath", "VHS_LoadVideo", + "VHS_LoadVideoFFmpeg", + "VHS_LoadVideoFFmpegPath", "VHS_LoadVideoPath", "VHS_MergeImages", "VHS_MergeLatents", @@ -1972,11 +8348,18 @@ "VHS_SelectEveryNthImage", "VHS_SelectEveryNthLatent", "VHS_SelectEveryNthMask", + "VHS_SelectFilename", + "VHS_SelectImages", + "VHS_SelectLatents", + "VHS_SelectLatest", + "VHS_SelectMasks", "VHS_SplitImages", "VHS_SplitLatents", "VHS_SplitMasks", + "VHS_Unbatch", "VHS_VAEDecodeBatched", "VHS_VAEEncodeBatched", + "VHS_VHSAudioToAudio", "VHS_VideoCombine", "VHS_VideoInfo", "VHS_VideoInfoLoaded", @@ -1986,6 +8369,61 @@ "title_aux": "ComfyUI-VideoHelperSuite" } ], + "https://github.com/Koushakur/ComfyUI-DenoiseChooser": [ + [ + "DenoiseChooser|Koushakur" + ], + { + "title_aux": "ComfyUI-DenoiseChooser" + } + ], + "https://github.com/KunmyonChoi/ComfyUI_S3_direct": [ + [ + "Direct Load Image From S3", + "Direct Save Image To S3", + "Save VHS Video to S3" + ], + { + "title_aux": "ComfyUI_S3_direct" + } + ], + "https://github.com/Kurdknight/Kurdknight_comfycheck": [ + [ + "SystemCheck", + "SystemViz" + ], + { + "title_aux": "KurdKnight ComfyUI System Check Node" + } + ], + "https://github.com/KwaiVGI/ComfyUI-KLingAI-API": [ + [ + "Client", + "Effects", + "Image Generator", + "Image2Video", + "KLingAI Preview Video", + "Lip Sync", + "Lip Sync Audio Input", + "Lip Sync Text Input", + "Text2Video", + "Video Extend", + "Virtual Try On" + ], + { + "title_aux": "ComfyUI-KLingAI-API" + } + ], + "https://github.com/Ky11le/draw_tools": [ + [ + "DetectInnerBox", + "PasteIntoFrame", + "TextBoxAutoWrap" + ], + { + "title_aux": "draw_tools" + } + ], "https://github.com/KytraScript/ComfyUI_KytraWebhookHTTP": [ [ "SendToDiscordWebhook" @@ -1994,6 +8432,107 @@ "title_aux": "ComfyUI_KytraWebhookHTTP" } ], + "https://github.com/KytraScript/ComfyUI_MatAnyone_Kytra": [ + [ + "Kytra_Images_To_RGB", + "MatAnyoneVideoMatting" + ], + { + "title_aux": "ComfyUI_MatAnyone_Kytra" + } + ], + "https://github.com/L33chKing/comfyui-tag-frequency-weighter": [ + [ + "TagFrequencyWeighter" + ], + { + "title_aux": "Tag Frequency Weighter for ComfyUI" + } + ], + "https://github.com/LAOGOU-666/ComfyUI-LG_HotReload": [ + [ + "HotReload_Terminal" + ], + { + "title_aux": "ComfyUI-LG_HotReload" + } + ], + "https://github.com/LAOGOU-666/ComfyUI_LG_FFT": [ + [ + "LG_FFTNode", + "LG_IFFTNode" + ], + { + "title_aux": "ComfyUI_LG_FFT" + } + ], + "https://github.com/LAOGOU-666/Comfyui-LG_GroupExecutor": [ + [ + "GroupExecutorRepeater", + "GroupExecutorSender", + "GroupExecutorSingle", + "ImageListRepeater", + "ImageListSplitter", + "LG_AccumulatePreview", + "LG_FastPreview", + "LG_ImageReceiver", + "LG_ImageSender", + "MaskListRepeater", + "MaskListSplitter" + ], + { + "title_aux": "Comfyui-LG_GroupExecutor" + } + ], + "https://github.com/LAOGOU-666/Comfyui-LG_Relight": [ + [ + "LG_Relight", + "LG_Relight_Basic", + "LG_Relight_Ultra" + ], + { + "title_aux": "Comfyui-LG_Relight" + } + ], + "https://github.com/LAOGOU-666/Comfyui-Memory_Cleanup": [ + [ + "RAMCleanup", + "VRAMCleanup" + ], + { + "title_aux": "Comfyui-Memory_Cleanup" + } + ], + "https://github.com/LAOGOU-666/Comfyui_LG_Tools": [ + [ + "BridgePreviewNode", + "CachePreviewBridge", + "ColorAdjustment", + "FastCanvas", + "FastCanvasComposite", + "FastCanvasTool", + "GroupSwitcher", + "IPAdapterWeightTypes", + "ImageCropper", + "ImageSelector", + "ImageSizeAdjustment", + "InspyrenetRembgLoader", + "InspyrenetRembgProcess", + "LG_FloatRange", + "LG_InstallDependencies", + "LG_LatentBatchToList", + "LG_LoadImage", + "LG_Noise", + "LG_PipManager", + "LG_SaveImage", + "LazySwitch1way", + "LazySwitch2way", + "MuterSwitcher" + ], + { + "title_aux": "Comfyui_LG_Tools" + } + ], "https://github.com/LEv145/images-grid-comfy-plugin": [ [ "GridAnnotation", @@ -2006,6 +8545,71 @@ "title_aux": "ImagesGrid" } ], + "https://github.com/LK-168/comfyui_imgutils": [ + [ + "BBoxFilter", + "BBoxToMaskNode", + "CensorWithMask", + "ImgutilsAutoSegmenter", + "ImgutilsBBoxSegmenter", + "ImgutilsGenericDetector", + "MaskAttributeNodeLK", + "MaskCombineNodeLK", + "MaskEdgeNodeLK", + "MaskHelperLK", + "MaskInfoNodeLK", + "MaskMorphologyNodeLK", + "MaskToBBoxNode", + "SAMLoaderLK", + "SAMPredictorNode" + ], + { + "title_aux": "comfyui_imgutils" + } + ], + "https://github.com/LKbaba/ComfyUI-TuZi-Flux-Kontext": [ + [ + "FluxKontext_ImageToImage", + "FluxKontext_MultiImageToImage", + "FluxKontext_TextToImage" + ], + { + "title_aux": "ComfyUI-TuZi-Flux-Kontext" + } + ], + "https://github.com/LamEmil/ComfyUI_ASCIIArtNode": [ + [ + "ASCIIAnimationGenerator", + "ASCIIArtGenerator", + "ColorASCIIAnimationGenerator", + "RealisticColorASCIIAnimationGenerator", + "SequentialTwoPassTypingColorASCIIAnimation", + "TwoPassTypingColorASCIIAnimation", + "VideoToColorStaticASCIIArt", + "VideoToDynamicColorASCIIArt" + ], + { + "title_aux": "ComfyUI ASCII Art Nodes" + } + ], + "https://github.com/LaoMaoBoss/ComfyUI-WBLESS": [ + [ + "Inversed Switch", + "Switch" + ], + { + "title_aux": "ComfyUI-WBLESS" + } + ], + "https://github.com/LargeModGames/comfyui-smart-lora-downloader": [ + [ + "LoRAAutoDownloader", + "WorkflowLoRAScanner" + ], + { + "title_aux": "ComfyUI LoRA Auto Downloader" + } + ], "https://github.com/LarryJane491/Image-Captioning-in-ComfyUI": [ [ "LoRA Caption Load", @@ -2025,6 +8629,46 @@ "title_aux": "Lora-Training-in-Comfy" } ], + "https://github.com/LatentSpaceDirective/ComfyUI-Texturaizer": [ + [ + "Texturaizer_ApplyControlNets", + "Texturaizer_ApplyStyleToPrompt", + "Texturaizer_CachedCNLoader", + "Texturaizer_CachedCheckpointLoader", + "Texturaizer_ClipEncodeSwitchVersion", + "Texturaizer_CombinedConditioningFromColors", + "Texturaizer_ExtractCNData", + "Texturaizer_GenerateNoise", + "Texturaizer_GetCNData", + "Texturaizer_GetClipModelName", + "Texturaizer_GetFluxGuidance", + "Texturaizer_GetIPAdapterData", + "Texturaizer_GetImageData", + "Texturaizer_GetJsonData", + "Texturaizer_GetLoraData", + "Texturaizer_GetMaterialTileData", + "Texturaizer_GetModelName", + "Texturaizer_GetPromptData", + "Texturaizer_GetRenderData", + "Texturaizer_GetSamplerData", + "Texturaizer_GetSegData", + "Texturaizer_GetStyleData", + "Texturaizer_GetVAEName", + "Texturaizer_IPAdapterEmbeds", + "Texturaizer_KSamplerAdvanced", + "Texturaizer_Placeholder", + "Texturaizer_PowerLoraLoader", + "Texturaizer_SendImage", + "Texturaizer_SetGlobalDir", + "Texturaizer_SigmasSelector", + "Texturaizer_SwitchAny", + "Texturaizer_SwitchLazy", + "Texturaizer_UseSDXL" + ], + { + "title_aux": "ComfyUI-Texturaizer" + } + ], "https://github.com/Layer-norm/comfyui-lama-remover": [ [ "LamaRemover", @@ -2034,6 +8678,24 @@ "title_aux": "Comfyui lama remover" } ], + "https://github.com/LeanModels/ComfyUI-DFloat11": [ + [ + "DFloat11ModelLoader" + ], + { + "title_aux": "ComfyUI-DFloat11" + } + ], + "https://github.com/Legorobotdude/ComfyUI-VariationLab": [ + [ + "CFGExplorer", + "CheckpointExplorer", + "StepExplorer" + ], + { + "title_aux": "ComfyUI-VariationLab" + } + ], "https://github.com/Lerc/canvas_tab": [ [ "Canvas_Tab", @@ -2047,6 +8709,349 @@ "title_aux": "Canvas Tab" } ], + "https://github.com/LevelPixel/ComfyUI-LevelPixel": [ + [ + "AnyToText|LP", + "BoolToInt|LP", + "BoolToString|LP", + "CLIP Text Encode Translate [LP]", + "CLIPTextEncodeTranslate|LP", + "Calculate Target Size By Mask [LP]", + "CalculateTargetSizeByMask|LP", + "ComboToText|LP", + "Convert Any To Text [LP]", + "Convert Bool To Int [LP]", + "Convert Bool To String [LP]", + "Convert Combo To Text [LP]", + "Convert Float To Int [LP]", + "Convert Float To String [LP]", + "Convert Int To Bool [LP]", + "Convert Int To Float [LP]", + "Convert Int To String [LP]", + "Convert String To Bool [LP]", + "Convert String To Combo [LP]", + "Convert String To Float [LP]", + "Convert String To Int [LP]", + "Convert String To Number [LP]", + "Count Objects [LP]", + "CountObjects|LP", + "Cropped Aspect Size Parameters [LP]", + "Cropped Forsed Size Parameters [LP]", + "Cropped Free Size Parameters [LP]", + "Cropped Ranged Size Parameters [LP]", + "CroppedAspectSizeParameters|LP", + "CroppedForsedSizeParameters|LP", + "CroppedFreeSizeParameters|LP", + "CroppedRangedSizeParameters|LP", + "Delay [LP]", + "Delay|LP", + "Extend Factor Parameters [LP]", + "ExtendFactorParameters|LP", + "Fast Checker Pattern [LP]", + "FastCheckerPattern|LP", + "File Counter [LP]", + "FileCounter|LP", + "Find Value From File [LP]", + "FindValueFromFile|LP", + "FloatToInt|LP", + "FloatToString|LP", + "Get ComfyUI Folder Path [LP]", + "Get ComfyUI HTTP Folder Path [LP]", + "Get Filename By Index In Folder [LP]", + "Get Iterator Data From Image Folders [LP]", + "Get Iterator Data From Videos [LP]", + "GetComfyUIFolderPath|LP", + "GetComfyUIHttpFolderPath|LP", + "GetFilenameByIndexInFolder|LP", + "GetIteratorDataImageFolders|LP", + "GetIteratorDataVideos|LP", + "Hard Unload All Models [LP]", + "HardModelUnloader|LP", + "HundredthsSimpleFloatSlider|LP", + "Image Data Iterator [LP]", + "Image Loader From Path [LP]", + "Image Overlay [LP]", + "ImageDataIterator|LP", + "ImageLoaderFromPath|LP", + "ImageOverlay|LP", + "Inpaint Crop [LP]", + "Inpaint Stitch [LP]", + "InpaintCrop|LP", + "InpaintStitch|LP", + "IntToBool|LP", + "IntToFloat|LP", + "IntToString|LP", + "Iterator [LP]", + "Iterator|LP", + "Keep Only English Tags [LP]", + "Keep Only English Words [LP]", + "KeepOnlyEnglishTags|LP", + "KeepOnlyEnglishWords|LP", + "Load Image [LP]", + "Load LoRA Tag [LP]", + "LoadImage|LP", + "LoraTagLoader|LP", + "ModelUnloader|LP", + "Override CLIP Device [LP]", + "Override CLIP Vision Device [LP]", + "Override VAE Device [LP]", + "OverrideCLIPDevice|LP", + "OverrideCLIPVisionDevice|LP", + "OverrideVAEDevice|LP", + "Pipe In [LP]", + "Pipe Out [LP]", + "Pipe [LP]", + "PipeIn|LP", + "PipeOut|LP", + "Pipe|LP", + "Preview Image Bridge [LP]", + "PreviewImageForConditions|LP", + "Remove Banned Tags From Tags [LP]", + "Remove Banned Tags From Text [LP]", + "Remove Duplicate Tags [LP]", + "RemoveBannedTagsFromTags|LP", + "RemoveBannedTagsFromText|LP", + "RemoveDuplicateTags|LP", + "Resize Image To Target Size [LP]", + "Resize Image and Masks [LP]", + "ResizeImageAndMasks|LP", + "ResizeImageToTargetSize|LP", + "Resorting Tags [LP]", + "ResortingTags|LP", + "Seed [LP]", + "Seed|LP", + "Show Text Bridge [LP]", + "Show Text [LP]", + "ShowTextBridge|LP", + "ShowText|LP", + "Simple Float Slider - Hundredths Step [LP]", + "Simple Float Slider - Tenths Step [LP]", + "Simple Float Slider [LP]", + "SimpleFloatSlider|LP", + "Soft Full Clean RAM and VRAM [LP]", + "Soft Unload Models Data [LP]", + "SoftFullCleanRAMAndVRAM|LP", + "SoftModelUnloader|LP", + "Split Compound Text [LP]", + "SplitCompoundText|LP", + "String Cycler [LP]", + "String [LP]", + "StringCycler|LP", + "StringToBool|LP", + "StringToCombo|LP", + "StringToFloat|LP", + "StringToInt|LP", + "StringToNumber|LP", + "String|LP", + "Tag Category Filter [LP]", + "Tag Category Keeper [LP]", + "Tag Category Remover [LP]", + "Tag Category [LP]", + "Tag Merger [LP]", + "Tag Remover [LP]", + "Tag Replace [LP]", + "Tag Switcher [LP]", + "TagCategoryFilter|LP", + "TagCategoryKeeper|LP", + "TagCategoryRemover|LP", + "TagCategory|LP", + "TagMerger|LP", + "TagRemover|LP", + "TagReplace|LP", + "TagSwitcher|LP", + "TenthsSimpleFloatSlider|LP", + "Text Choice Parser [LP]", + "Text Replace [LP]", + "Text To List [LP]", + "Text Translate [LP]", + "Text [LP]", + "TextChoiceParser|LP", + "TextReplace|LP", + "TextToList|LP", + "TextTranslateManualAll|LP", + "TextTranslateManual|LP", + "TextTranslate|LP", + "Text|LP", + "Unload Model [LP]" + ], + { + "title_aux": "ComfyUI Level Pixel" + } + ], + "https://github.com/LevelPixel/ComfyUI-LevelPixel-Advanced": [ + [ + "Autotagger [LP]", + "Autotagger|LP", + "Color Input [LP]", + "ColorInput|LP", + "Image Remove Background (BiRefNet) [LP]", + "Image Remove Background (RMBG) [LP]", + "Image Remove Background (rembg) [LP]", + "ImageRemoveBackgroundBiRefNet|LP", + "ImageRemoveBackgroundRMBG|LP", + "ImageRemoveBackground|LP", + "LLM Advanced [LP]", + "LLM Loader [LP]", + "LLM Sampler [LP]", + "LLMAdvanced|LP", + "LLMLoader|LP", + "LLMSampler|LP", + "LLava Advanced [LP]", + "LLava Clip Loader [LP]", + "LLava Loader [LP]", + "LLava Sampler Advanced [LP]", + "LLava Sampler Simple [LP]", + "LLava Simple [LP]", + "LLavaAdvanced|LP", + "LLavaClipLoader|LP", + "LLavaLoader|LP", + "LLavaSamplerAdvanced|LP", + "LLavaSamplerSimple|LP", + "LLavaSimple|LP", + "Multimodal Generator Advanced [LP]", + "MultimodalGeneratorAdvanced|LP", + "Recognize Anything (RAM) [LP]", + "RecognizeAnything(RAM)|LP" + ], + { + "title_aux": "ComfyUI Level Pixel Advanced" + } + ], + "https://github.com/Lhyejin/ComfyUI-Fill-Image-for-Outpainting": [ + [ + "FillImageForOutpainting" + ], + { + "title_aux": "ComfyUI-Fill-Image-for-Outpainting" + } + ], + "https://github.com/LiJT/ComfyUI-Gemini-Prompt-Generator-JT": [ + [ + "GeminiPromptGeneratorJT" + ], + { + "title_aux": "Gemini prompt generator JT version" + } + ], + "https://github.com/Light-x02/ComfyUI-FluxSettingsNode": [ + [ + "DisableNoise", + "FluxSettingsNode" + ], + { + "title_aux": "Flux Settings Node" + } + ], + "https://github.com/Light-x02/ComfyUI-Image-Metadata-Nodes": [ + [ + "ImageMetadataLoader", + "ImageMetadataSaver" + ], + { + "title_aux": "Image Metadata Nodes" + } + ], + "https://github.com/Light-x02/ComfyUI_Crop_Image_By_Lightx02": [ + [ + "CropImageByLightx02" + ], + { + "title_aux": "Crop Image by Lightx02" + } + ], + "https://github.com/LightSketch-ai/ComfyUI-LivePortraitNode": [ + [ + "LightSketch Live Portrait", + "Preview Video" + ], + { + "title_aux": "ComfyUI-LivePortraitNode (Replicate API)" + } + ], + "https://github.com/Lightricks/ComfyUI-LTXVideo": [ + [ + "AddLatentGuide", + "ImageToCPU", + "LTXAttentioOverride", + "LTXAttentionBank", + "LTXAttnOverride", + "LTXFetaEnhance", + "LTXFlowEditCFGGuider", + "LTXFlowEditSampler", + "LTXForwardModelSamplingPred", + "LTXPerturbedAttention", + "LTXPrepareAttnInjections", + "LTXQ8Patch", + "LTXRFForwardODESampler", + "LTXRFReverseODESampler", + "LTXReverseModelSamplingPred", + "LTXVAdainLatent", + "LTXVAddGuideAdvanced", + "LTXVApplySTG", + "LTXVBaseSampler", + "LTXVExtendSampler", + "LTXVFilmGrain", + "LTXVInContextSampler", + "LTXVLatentUpsampler", + "LTXVLinearOverlapLatentTransition", + "LTXVLoopingSampler", + "LTXVMultiPromptProvider", + "LTXVPatcherVAE", + "LTXVPreprocessMasks", + "LTXVPromptEnhancer", + "LTXVPromptEnhancerLoader", + "LTXVQ8LoraModelLoader", + "LTXVSelectLatents", + "LTXVSetVideoLatentNoiseMasks", + "LTXVTiledSampler", + "LTXVTiledVAEDecode", + "ModifyLTXModel", + "STGAdvancedPresets", + "STGGuiderAdvanced", + "STGGuiderNode", + "Set VAE Decoder Noise" + ], + { + "title_aux": "ComfyUI-LTXVideo" + } + ], + "https://github.com/Limbicnation/ComfyUI-RandomSeedGenerator": [ + [ + "AdvancedSeedGenerator" + ], + { + "title_aux": "ComfyUI-RandomSeedGenerator" + } + ], + "https://github.com/Limbicnation/ComfyUI-TransparencyBackgroundRemover": [ + [ + "AutoGrabCutRemover", + "GrabCutRefinement", + "TransparencyBackgroundRemover", + "TransparencyBackgroundRemoverBatch" + ], + { + "title_aux": "Transparency Background Remover" + } + ], + "https://github.com/Limbicnation/ComfyUIDepthEstimation": [ + [ + "DepthEstimationNode" + ], + { + "title_aux": "Depth Estimation Node" + } + ], + "https://github.com/Limbicnation/ComfyUI_FaceDetectionNode": [ + [ + "FaceDetectionNode", + "custom_nodes" + ], + { + "nodename_pattern": "FaceDetectionNode", + "title_aux": "ComfyUI Face Detection Node" + } + ], "https://github.com/Limitex/ComfyUI-Calculation": [ [ "CenterCalculation", @@ -2075,12 +9080,36 @@ "title_aux": "ComfyUI-Diffusers" } ], + "https://github.com/Ling-APE/ComfyUI-PixelResolutionCalculator": [ + [ + "LatentSizeToPixelSize", + "PixelResolutionCalculator" + ], + { + "title_aux": "ComfyUI-PixelResolutionCalculator" + } + ], + "https://github.com/LingSss9/comfyui-merge": [ + [ + "LoadLoRAMenu", + "MergeLoRAsKohyaSSLike", + "OnlyLoadLoRAsModel", + "SaveLoRAModels" + ], + { + "author": "cyberblackcat", + "description": "This extension provides some nodes to support merge lora, adjust Lora Block Weight.", + "nickname": "CBC", + "title": "merge", + "title_aux": "comfyui-merge" + } + ], "https://github.com/Loewen-Hob/rembg-comfyui-node-better": [ [ "Image Remove Background (rembg)" ], { - "title_aux": "Rembg Background Removal Node for ComfyUI" + "title_aux": "Rembg Background Removal Node for ComfyUI (Better)" } ], "https://github.com/LonicaMewinsky/ComfyUI-MakeFrame": [ @@ -2103,6 +9132,73 @@ "title_aux": "ComfyUI-RawSaver" } ], + "https://github.com/LoveEatCandy/COMFYUI-ReplacePartOfImage": [ + [ + "ReplacePartOfImage" + ], + { + "title_aux": "COMFYUI-ReplacePartOfImage" + } + ], + "https://github.com/Lovzu/ComfyUI-KittenTTS": [ + [ + "KittenTTS" + ], + { + "title_aux": "KittenTTS Node for Voice Generation" + } + ], + "https://github.com/Ltamann/ComfyUI-TBG-ETUR": [ + [ + "EdgePadNode", + "TBG_masked_attention" + ], + { + "title_aux": "TBG_Enhanced Tiled Upscaler & Refiner FLUX PRO" + } + ], + "https://github.com/Ltamann/ComfyUI-TBG-Takeaways": [ + [ + "BasicSchedulerNormalized", + "LogSigmaSamplerNode", + "LogSigmaStepSamplerNode", + "ModelSamplingFluxGradual", + "PolyExponentialSigmaAdder", + "TBG_FluxKontextStabilizer" + ], + { + "title_aux": "TBG\u2019s ComfyUI Development Takeaways" + } + ], + "https://github.com/LucipherDev/ComfyUI-AniDoc": [ + [ + "AniDocLoader", + "AniDocSampler", + "GetAniDocControlnetImages", + "LoadCoTracker" + ], + { + "title_aux": "ComfyUI-AniDoc" + } + ], + "https://github.com/LucipherDev/ComfyUI-Golden-Noise": [ + [ + "GoldenNoise" + ], + { + "title_aux": "ComfyUI-Golden-Noise" + } + ], + "https://github.com/LucipherDev/ComfyUI-TangoFlux": [ + [ + "TangoFluxLoader", + "TangoFluxSampler", + "TangoFluxVAEDecodeAndPlay" + ], + { + "title_aux": "ComfyUI-TangoFlux" + } + ], "https://github.com/Ludobico/ComfyUI-ScenarioPrompt": [ [ "ScenarioPrompt" @@ -2119,77 +9215,13 @@ "title_aux": "Anime Character Segmentation node for comfyui" } ], - "https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes": [ + "https://github.com/LyazS/comfyui-nettools": [ [ - "AIO_Preprocessor", - "AnimalPosePreprocessor", - "AnimeFace_SemSegPreprocessor", - "AnimeLineArtPreprocessor", - "BAE-NormalMapPreprocessor", - "BinaryPreprocessor", - "CannyEdgePreprocessor", - "ColorPreprocessor", - "DWPreprocessor", - "DensePosePreprocessor", - "DepthAnythingPreprocessor", - "DiffusionEdge_Preprocessor", - "FacialPartColoringFromPoseKps", - "FakeScribblePreprocessor", - "HEDPreprocessor", - "HintImageEnchance", - "ImageGenResolutionFromImage", - "ImageGenResolutionFromLatent", - "ImageIntensityDetector", - "ImageLuminanceDetector", - "InpaintPreprocessor", - "LayeredDiffusionApply", - "LayeredDiffusionCondApply", - "LayeredDiffusionCondJointApply", - "LayeredDiffusionDecode", - "LayeredDiffusionDecodeRGBA", - "LayeredDiffusionDecodeSplit", - "LayeredDiffusionDiffApply", - "LayeredDiffusionJointApply", - "LeReS-DepthMapPreprocessor", - "LineArtPreprocessor", - "LineartStandardPreprocessor", - "M-LSDPreprocessor", - "Manga2Anime_LineArt_Preprocessor", - "MaskOptFlow", - "MediaPipe-FaceMeshPreprocessor", - "MeshGraphormer-DepthMapPreprocessor", - "MiDaS-DepthMapPreprocessor", - "MiDaS-NormalMapPreprocessor", - "ModelMergeBlockNumber", - "ModelMergeSDXL", - "ModelMergeSDXLDetailedTransformers", - "ModelMergeSDXLTransformers", - "ModelSamplerTonemapNoiseTest", - "OneFormer-ADE20K-SemSegPreprocessor", - "OneFormer-COCO-SemSegPreprocessor", - "OpenposePreprocessor", - "PiDiNetPreprocessor", - "PixelPerfectResolution", - "PromptExpansion", - "ReferenceOnlySimple", - "RescaleClassifierFreeGuidanceTest", - "SAMPreprocessor", - "SavePoseKpsAsJsonFile", - "ScribblePreprocessor", - "Scribble_XDoG_Preprocessor", - "SemSegPreprocessor", - "ShufflePreprocessor", - "TEEDPreprocessor", - "TilePreprocessor", - "TonemapNoiseWithRescaleCFG", - "UniFormer-SemSegPreprocessor", - "Unimatch_OptFlowPreprocessor", - "Zoe-DepthMapPreprocessor", - "Zoe_DepthAnythingPreprocessor" + "NTL_LoadImagesBase64", + "NTL_SendImagesWebSocket" ], { - "author": "tstandley", - "title_aux": "ComfyUI Nodes for Inference.Core" + "title_aux": "net tool node for comfyui" } ], "https://github.com/M1kep/ComfyLiterals": [ @@ -2280,17 +9312,127 @@ "title_aux": "KepPromptLang" } ], + "https://github.com/MDMAchine/ComfyUI_MD_Nodes": [ + [ + "ACE_LatentVisualizer", + "APGGuiderForked", + "AdvancedAudioPreviewAndSave", + "AdvancedMediaSave", + "HybridAdaptiveSigmas", + "MasteringChainNode", + "NoiseDecayScheduler_Custom", + "PingPongSampler_Custom_FBG", + "PingPongSampler_Custom_Lite", + "SceneGeniusAutocreator", + "SeedSaver", + "UniversalGuardian" + ], + { + "title_aux": "MD Nodes" + } + ], "https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes": [ [ + "AudioVisualizer", + "LoraTagLoader", + "ResolutionSelector", + "StringCleaning", + "StringTextExtractor", + "StringTextSplitter", + "TiktokenTokenizer", + "WildcardProcessor", "\u26d4 Generate Negative Prompt", - "\u2728 Groq LLM API", + "\u2702\ufe0f String Text Extractor", + "\u2702\ufe0f String Text Splitter", + "\u2728\ud83c\udf10 Groq ALM API - Translate [EN only]", + "\u2728\ud83d\udcac Groq LLM API", + "\u2728\ud83d\udcdd Groq ALM API - Transcribe", + "\u2728\ud83d\udcf7 Groq VLM API", + "\ud83c\udfb5\ud83d\udcca Audio Visualizer", + "\ud83c\udff7\ufe0f LoRA Loader Prompt Tags", "\ud83d\udcbe Save Text File With Path", - "\ud83d\uddbc\ufe0f Download Image from URL" + "\ud83d\udcc1 Get File Path", + "\ud83d\udcc5 Format Date Time", + "\ud83d\udcd0 Resolution Image Size Selector", + "\ud83d\udcdd Wildcard Processor", + "\ud83d\udd20 Tiktoken Tokenizer Info", + "\ud83d\uddbc\ufe0f Download Image from URL", + "\ud83d\uddbc\ufe0f+\ud83d\udcdd Load Text-Image Pair (Single)", + "\ud83d\uddbc\ufe0f+\ud83d\udcdd Load Text-Image Pairs (List)", + "\ud83d\uddbc\ufe0f\ud83d\udcca Metadata Extractor", + "\ud83e\uddf9 String Cleaning" ], { "title_aux": "ComfyUI-mnemic-nodes" } ], + "https://github.com/Makeezi/ComfyUI-promptLAB": [ + [ + "PromptLAB" + ], + { + "title_aux": "ComfyUI-promptLAB" + } + ], + "https://github.com/MakkiShizu/ComfyUI-MakkiTools": [ + [ + "AnyImageStitch_makki", + "AnyImagetoConditioning_flux_kontext_makki", + "AutoLoop_create_pseudo_loop_video_makki", + "BatchLoraLoader_makki", + "Environment_INFO_makki", + "GetImageNthCount_makki", + "ImageChannelSeparate_makki", + "ImageCountConcatenate_makki", + "ImageHeigthStitch_makki", + "ImageWidthStitch_makki", + "Image_Resize_makki", + "MergeImageChannels_makki", + "Prism_Mirage_makki", + "int_calculate_statistics_makki", + "random_any_makki", + "show_type_makki", + "timer_makki", + "translator_m2m100_makki", + "translators_makki" + ], + { + "title_aux": "ComfyUI-MakkiTools" + } + ], + "https://github.com/MakkiShizu/ComfyUI-Prompt-Wildcards": [ + [ + "makitextwildcards", + "makiwildcards", + "makiwildcards_Advanced", + "textconcatenate", + "textconcatenate_v2" + ], + { + "title_aux": "ComfyUI-Prompt-Wildcards" + } + ], + "https://github.com/MakkiShizu/ComfyUI-Qwen2_5-VL": [ + [ + "BatchImageLoaderToLocalFiles", + "DownloadAndLoadQwen2_5_VLModel", + "Qwen2_5_VL_Run", + "Qwen2_5_VL_Run_Advanced" + ], + { + "title_aux": "ComfyUI-Qwen2_5-VL" + } + ], + "https://github.com/MakkiShizu/comfyui_reimgsize": [ + [ + "Cropimg", + "Reimgsize", + "Resizebyratio" + ], + { + "title_aux": "comfyui_reimgsize" + } + ], "https://github.com/Mamaaaamooooo/batchImg-rembg-ComfyUI-nodes": [ [ "Image Remove Background (rembg)" @@ -2312,6 +9454,39 @@ "title_aux": "ComfyI2I" } ], + "https://github.com/MarcusNyne/m9-prompts-comfyui": [ + [ + "ScramblePrompts_m9", + "TweakWeights_m9" + ], + { + "title_aux": "m9-prompts-comfyui" + } + ], + "https://github.com/MariusKM/ComfyUI-BadmanNodes": [ + [ + "BadmanBrightness", + "BadmanCLIPTextEncodeSDXLRegion", + "BadmanDesaturate", + "BadmanDilateErodeMask", + "BadmanIO", + "BadmanIntUtil", + "BadmanMaskBlur", + "BadmanStringSelect", + "BadmanStringToInteger", + "BadmanWildCardProcessor", + "Badman_Blend", + "Badman_ColorTransferLab", + "Badman_Concat_String", + "Badman_HexGenerator", + "Badman_PalletteGenerator", + "Badman_Print", + "Badman_String" + ], + { + "title_aux": "ComfyUI-BadmanNodes" + } + ], "https://github.com/MarkoCa1/ComfyUI-Text": [ [ "CombinationText", @@ -2320,7 +9495,7 @@ "ShowText" ], { - "title_aux": "ComfyUI_Text" + "title_aux": "ComfyUI-Text" } ], "https://github.com/MarkoCa1/ComfyUI_Segment_Mask": [ @@ -2331,6 +9506,295 @@ "title_aux": "ComfyUI_Segment_Mask" } ], + "https://github.com/Marksusu/ComfyUI_MTCLIPEncode": [ + [ + "MTCLIPEncode" + ], + { + "title_aux": "ComfyUI_MTCLIPEncode" + } + ], + "https://github.com/MartinDeanMoriarty/ComfyUI-DeanLogic": [ + [ + "ImageCount", + "ImageInputSwitch", + "ImageOutputSwitch", + "Int Compare" + ], + { + "title_aux": "ComfyUI-DeanLogic" + } + ], + "https://github.com/MaruPelkar/comfyui-conditioning-resizer": [ + [ + "ConditioningResizer" + ], + { + "title_aux": "ComfyUI Conditioning Resizer" + } + ], + "https://github.com/Mason-McGough/ComfyUI-Mosaica": [ + [ + "ApplyLUTToLabelImage", + "KMeans", + "LoadLUTFromMatplotlib", + "MeanShift", + "RandomLUT", + "Watershed" + ], + { + "title_aux": "Mosaica" + } + ], + "https://github.com/MasterDenis/VAE-Decode-Switch": [ + [ + "VAEDecodeSwitcher" + ], + { + "title_aux": "VAE Decode Switch for ComfyUI" + } + ], + "https://github.com/Mattabyte/ComfyUI-SecureApiCall": [ + [ + "SaveLatentToS3", + "SaveVideoFilesS3", + "SecureAPI-SecureAPI", + "SecureAPI-SecureAPI-AWS" + ], + { + "title_aux": "ComfyUI Secure API Call" + } + ], + "https://github.com/Maxed-Out-99/ComfyUI-MaxedOut": [ + [ + "Crop Image By Mask", + "Flux Empty Latent Image", + "Flux Image Scale To Total Pixels (Flux Safe)", + "Flux Resolution Selector", + "FluxResolutionMatcher", + "Image Scale To Total Pixels (SDXL Safe)", + "LatentHalfMasks", + "Load Image Batch MXD", + "LoadImageWithPromptsMXD", + "LoadLatent_WithParams", + "LoadLatents_FromFolder_WithParams", + "Place Image By Mask", + "Prompt With Guidance (Flux)", + "SaveLatentMXD", + "Sdxl Empty Latent Image", + "Sdxl Resolution Selector", + "Wan2_2EmptyLatentImageMXD" + ], + { + "title_aux": "ComfyUI-MaxedOut" + } + ], + "https://github.com/Maxed-Out-99/ComfyUI-SmartModelLoaders-MXD": [ + [ + "CLIPLoaderUnified", + "DualCLIPLoaderUnified", + "QuadrupleCLIPLoaderUnified", + "TripleCLIPLoaderUnified", + "UNETLoaderUnified" + ], + { + "title_aux": "ComfyUI-SmartModelLoaders-MXD" + } + ], + "https://github.com/McKlinton2/comfyui-mcklinton-pack": [ + [ + "ColormaskNode", + "LoadFilteredImageBatch", + "MultiLayerComposeNode", + "SaveTextArrayToFiles" + ], + { + "title_aux": "ComfyUI McKlinton Pack \u2014 Mask Node" + } + ], + "https://github.com/Mcmillian/ComfyUI-SimpleToolsNodes": [ + [ + "GetModelStep", + "GlmPromptNode" + ], + { + "title_aux": "SimpleToolsNodes" + } + ], + "https://github.com/MeeeyoAI/ComfyUI_StringOps": [ + [ + "AddPrefixSuffix", + "AddPrefixSuffixToLines", + "BatchReplaceStrings", + "CheckSubstringPresence", + "CompareInt", + "ConditionalTextOutput", + "CountOccurrences", + "CustomCrop", + "DecodePreview", + "ExtractAndCombineLines", + "ExtractBeforeAfter", + "ExtractLinesByIndex", + "ExtractSpecificData", + "ExtractSpecificLines", + "ExtractSubstring", + "ExtractSubstringByIndices", + "FileCopyCutNode", + "FileDeleteNode", + "FileListAndSuffix", + "FileNameReplacer", + "FilterLinesBySubstrings", + "FilterLinesByWordCount", + "FindExcelData", + "FindFirstLineContent", + "FloatToInteger", + "GenerateNumbers", + "GenerateVideoPrompt", + "GenericImageLoader", + "GetCurrentTime", + "GetFloatParam", + "GetIntParam", + "GetRandomIntegerInRange", + "ImageAdjuster", + "ImageOverlayAlignment", + "LoadAndAdjustImage", + "MultiParamInputNode", + "NumberExtractor", + "ProcessString", + "RandomLineFromText", + "ReadExcelData", + "ReadExcelRowOrColumnDiff", + "ReadWebNode", + "RemoveContentBetweenChars", + "ReplaceMultiple", + "ReplaceNthOccurrence", + "SaveImagEX", + "SelectionParameter", + "ShuffleTextLines", + "SimpleRandomSeed", + "SimpleTextReplacer", + "SingleTextInput", + "SplitAndExtractText", + "SplitStringByDelimiter", + "TextConcatenation", + "TextConcatenator", + "TextConditionCheck", + "TextToImage", + "TextToList", + "WriteExcelData", + "WriteExcelImage", + "WriteToTxtFile" + ], + { + "title_aux": "ComfyUI_StringOps" + } + ], + "https://github.com/Meettya/ComfyUI-OneForOne": [ + [ + "OFO Image Fit" + ], + { + "title_aux": "ComfyUI-OneForOne" + } + ], + "https://github.com/MetaGLM/ComfyUI-ZhipuAI-Platform": [ + [ + "VideoReportData", + "VideoReportGenerate", + "VideoReportPull" + ], + { + "title_aux": "ComfyUI ZhipuAI Platform" + } + ], + "https://github.com/MicheleGuidi/ComfyUI-Contextual-SAM2": [ + [ + "Sam2ContextSegmentation", + "Sam2TiledSegmentation" + ], + { + "title_aux": "ComfyUI-Computer-Vision" + } + ], + "https://github.com/MiddleKD/ComfyUI-denoise-mask-scheduler": [ + [ + "ApplyDenoiseMaskSchedulerWithSigma", + "ApplyDenoiseMaskSchedulerWithStep", + "DynamicImageResize" + ], + { + "title_aux": "ComfyUI-denoise-mask-scheduler" + } + ], + "https://github.com/MiddleKD/ComfyUI-mem-safe-wrapper": [ + [ + "MakeModelMemorySafe-safewrapper", + "ResetModelPatcher-safewrapper", + "SimpleDummyModel-safewrapper", + "SimpleDummyRun-safewrapper" + ], + { + "title_aux": "ComfyUI-mem-safe-wrapper" + } + ], + "https://github.com/MiddleKD/ComfyUI-productfix": [ + [ + "ApplyLatentInjection", + "DetailTransferAdd", + "DetailTransferLatentAdd", + "DynamicImageResize", + "GetTextMask", + "ResetModelPatcherCalculateWeight", + "VQDecoder", + "VQEncoder", + "VQLoader" + ], + { + "title_aux": "ComfyUI-productfix" + } + ], + "https://github.com/MijnSpam/ComfyUI_SwapAndScale": [ + [ + "SwapAndScale" + ], + { + "title_aux": "Comfy swap and scale" + } + ], + "https://github.com/MijnSpam/UploadToPushOver": [ + [ + "UploadToPushOver" + ], + { + "title_aux": "Upload to PushOver" + } + ], + "https://github.com/MilitantHitchhiker/MilitantHitchhiker-SwitchbladePack": [ + [ + "FluxModelSave_v2", + "FluxQuantNode", + "GODARCScheduler", + "GroqAPIPromptEnhancer", + "IntegratedRandomPromptGenerator", + "ModelAnalyserNode", + "TextAppender_v2" + ], + { + "author": "Militant Hitchhiker", + "description": "Militant Hitchhiker's multi-function nodes.", + "nickname": "Switchblade", + "title": "Switchblade Pack", + "title_aux": "MilitantHitchhiker-SwitchbladePack" + } + ], + "https://github.com/Mintbeer96/ComfyUI-KerasOCR": [ + [ + "KerasOCR" + ], + { + "title_aux": "ComfyUI-KerasOCR" + } + ], "https://github.com/Miosp/ComfyUI-FBCNN": [ [ "JPEG artifacts removal FBCNN" @@ -2339,7 +9803,16 @@ "title_aux": "ComfyUI-FBCNN" } ], - "https://github.com/MitoshiroPJ/comfyui_slothful_attention": [ + "https://github.com/MitoshiroPJ/ComfyUI_save_image_sdli": [ + [ + "PreviewSdlImage", + "SaveSdlImage" + ], + { + "title_aux": "ComfyUI SaveImage SDLI" + } + ], + "https://github.com/MitoshiroPJ/comfyui_nearsighted_attention": [ [ "NearSightedAttention", "NearSightedAttentionSimple", @@ -2347,44 +9820,210 @@ "SlothfulAttention" ], { - "title_aux": "ComfyUI Slothful Attention" + "title_aux": "ComfyUI Nearsighted Attention" + } + ], + "https://github.com/Miyuutsu/comfyui-save-vpred": [ + [ + "CheckpointSaveVpred" + ], + { + "author": "miyuu", + "description": "Used to save SDXL V-Prediction models directly with correct tensors.", + "nickname": "vpred-save", + "title": "vpred-save", + "title_aux": "comfyui-save-vpred" + } + ], + "https://github.com/MohammadAboulEla/ComfyUI-iTools": [ + [ + "iToolsAddOverlay", + "iToolsCheckerBoard", + "iToolsCompareImage", + "iToolsGridFiller", + "iToolsKSampler", + "iToolsLineLoader", + "iToolsLoadImagePlus", + "iToolsLoadImages", + "iToolsLoadRandomImage", + "iToolsPreviewImage", + "iToolsPreviewText", + "iToolsPromptLoader", + "iToolsPromptRecord", + "iToolsPromptSaver", + "iToolsPromptStyler", + "iToolsPromptStylerExtra", + "iToolsRegexNode", + "iToolsTextReplacer", + "iToolsVaePreview" + ], + { + "title_aux": "ComfyUI-iTools" } ], "https://github.com/MokkaBoss1/ComfyUI_Mokkaboss1": [ [ + "AnimeCosplayDir", "AspectRatioCondition", + "ChooseImage", "Colors", + "CombinedCrop", "ConnectFloat", "ConnectImage", "ConnectInteger", + "ConnectInteger2", "ConnectLatent", "ConnectString", + "CycleInteger", + "DirSelector", "DoubleClipTextEncode", + "DoubleConditioningMixer", "EmbeddingLoader", + "FilmCharDir", + "FlexEmptyLatent", + "FloatEvaluate", + "FuseImages", + "FuseImages2", "HashText", "HueSatLum", + "HueShift", "ImageDimensions", + "ImageDimensionsBatch", + "ImageOverlayResized", + "ImageResizeLong", + "ImageZigzag", "IndoorBackgrounds", + "IndoorDir", + "IntEvaluate", "IntFloatDict", "IntStringDict", + "JsonSearch", + "KillWorkflow", "LandscapeBackgrounds", + "LandscapeDir", + "LinEqEval", + "MakeupStylesDir", + "Mbsampler", "OptimalCrop", + "Overlay", + "PhotomontageA", + "PhotomontageB", + "PhotomontageC", + "PostSamplerCrop", + "PresetLoad", + "PresetRemove", + "PresetSave", + "PromptSwitcher", + "QuadClipTextEncode", + "RandomString", "SDXLEmptyLatent", + "SavePrompt", "SaveWithMetaData", + "SaveWithMetaData2", + "SearchReplace", "SimplePrompts", + "SpecificStylesDir", + "SplitImages", + "StringJoin", "TimeStamp", + "TintnShift", "TricolorComposition", "WorkflowSettings", "WrapText", "X_In_a_Dress", "X_In_a_Suit", "X_In_a_Suit)", - "ZoomCrop" + "ZoomCrop", + "imageborder" ], { "title_aux": "Node Pack mostly for manipulating strings and integers" } ], + "https://github.com/MontagenAI/ComfyUI-Montagen": [ + [ + "MontagenAudioAdapter", + "MontagenAudioConvertResourceAdapter", + "MontagenAudioListAdapter", + "MontagenCreateTimeline", + "MontagenEdgeTTSNode", + "MontagenFishAudioCloneNode", + "MontagenFishAudioTTSNode", + "MontagenImageAdapter", + "MontagenImageListAdapter", + "MontagenRenderTimeline", + "MontagenResourceConvertAudioAdapter", + "MontagenSRTListParser", + "MontagenStickerAdapter", + "MontagenStickerListAdapter", + "MontagenTextAdapter", + "MontagenTextListAdapter", + "MontagenVideoAdapter", + "MontagenVideoListAdapter" + ], + { + "title_aux": "ComfyUI-Montagen" + } + ], + "https://github.com/MoonHugo/ComfyUI-BAGEL-Hugo": [ + [ + "BagelByHugo" + ], + { + "title_aux": "ComfyUI-BAGEL-Hugo" + } + ], + "https://github.com/MoonHugo/ComfyUI-BiRefNet-Hugo": [ + [ + "BiRefNet_Hugo" + ], + { + "title_aux": "ComfyUI-BiRefNet-Hugo" + } + ], + "https://github.com/MoonHugo/ComfyUI-FFmpeg": [ + [ + "AddAudio", + "AddImgWatermark", + "AddTextWatermark", + "ExtractAudio", + "Frames2Video", + "ImageCopy", + "ImagePath2Tensor", + "ImagesSave", + "LoadImageFromDir", + "MergingVideoByPlenty", + "MergingVideoByTwo", + "MultiCuttingVideo", + "PipVideo", + "SingleCuttingVideo", + "StitchingVideo", + "Video2Frames", + "VideoFlip", + "VideoPlayback", + "VideoTransition" + ], + { + "title_aux": "ComfyUI-FFmpeg" + } + ], + "https://github.com/MoonHugo/ComfyUI-StableAudioOpen": [ + [ + "Text2Audio" + ], + { + "title_aux": "ComfyUI-StableAudioOpen" + } + ], + "https://github.com/MovieLabs/comfyui-movielabs-util": [ + [ + "PublishAsset", + "PublishBlender" + ], + { + "title_aux": "MovieLabs ComfyUI Nodes for Publishing Workflow" + } + ], "https://github.com/MrForExample/ComfyUI-3D-Pack": [ [], { @@ -2399,6 +10038,27 @@ "title_aux": "ComfyUI-AnimateAnyone-Evolved" } ], + "https://github.com/MrSamSeen/ComfyUI_SSBeforeAfterNode": [ + [ + "SSBeforeAndAfterVideo", + "SSBeforeAndAfterVideoWithDepthMap" + ], + { + "title_aux": "ComfyUI_SSBeforeAfterNode" + } + ], + "https://github.com/MrSamSeen/ComfyUI_SSStereoscope": [ + [ + "SBS_External_Depthmap_by_SamSeen", + "SBS_Image_Uploader", + "SBS_V2_by_SamSeen", + "SBS_Video_Combiner", + "SBS_Video_Uploader" + ], + { + "title_aux": "SideBySide_Stereoscope" + } + ], "https://github.com/Munkyfoot/ComfyUI-TextOverlay": [ [ "Text Overlay" @@ -2407,6 +10067,227 @@ "title_aux": "ComfyUI-TextOverlay" } ], + "https://github.com/MushroomFleet/ComfyUI-DJZ-POML": [ + [ + "ZenkaiPOMLProcessor", + "ZenkaiPOMLTemplate" + ], + { + "title_aux": "Zenkai-POML for ComfyUI" + } + ], + "https://github.com/MuziekMagie/ComfyUI-Matchering": [ + [ + "Matchering", + "MatcheringAdvanced", + "MatcheringLimiterConfig" + ], + { + "title_aux": "ComfyUI-Matchering" + } + ], + "https://github.com/MzMaXaM/ComfyUi-MzMaXaM": [ + [ + "KSamplerWithVAE", + "SelectLatentSize1MP", + "SelectLatentSize2MP", + "TextEncode3in1", + "UpscaleImageBy1_5x", + "UpscaleLatentBy1_5x", + "selectLatentSizePlus" + ], + { + "title_aux": "ComfyUi-MzMaXaM" + } + ], + "https://github.com/N3rd00d/ComfyUI-Paint3D-Nodes": [ + [ + "3D_GenerateDepthImage", + "3D_GenerateInpaintMask", + "3D_GenerateInpaintUVMapMask", + "3D_GeneratePreviewVideo", + "3D_LoadMeshModel", + "3D_Projection", + "3D_SaveUVMapImage", + "3D_TrainConfig", + "3D_TrainConfigPipe" + ], + { + "title_aux": "ComfyUI-Paint3D-Nodes" + } + ], + "https://github.com/NHLStenden/ComfyUI-ImageBag": [ + [ + "EnhancedImageColourTransferNode" + ], + { + "title_aux": "ComfyUI-ImageBag" + } + ], + "https://github.com/NMWave/ComfyUI-Nader-Tagging": [ + [ + "Load Text List", + "Split Sentences", + "Split Tags", + "Tag Alternating Combiner", + "Tag Duplicate Remover", + "Token Counter" + ], + { + "title_aux": "Image Captioning and Tagging Assistor Nodes" + } + ], + "https://github.com/NVIDIAGameWorks/ComfyUI-RTX-Remix": [ + [ + "RTXRemixCloseProject", + "RTXRemixCreateLayer", + "RTXRemixDefineLayerId", + "RTXRemixDeleteFile", + "RTXRemixEndContext", + "RTXRemixGetDefaultDirectory", + "RTXRemixGetEditTarget", + "RTXRemixGetLayers", + "RTXRemixGetLoadedProject", + "RTXRemixGetTextures", + "RTXRemixIngestTexture", + "RTXRemixInvertBool", + "RTXRemixLayerType", + "RTXRemixLayerTypes", + "RTXRemixMuteLayer", + "RTXRemixOpenProject", + "RTXRemixRemoveLayer", + "RTXRemixRestAPIDetails", + "RTXRemixSaveLayer", + "RTXRemixSetEditTarget", + "RTXRemixSetTexture", + "RTXRemixStartContext", + "RTXRemixStrToList", + "RTXRemixStringConcatenate", + "RTXRemixStringConstant", + "RTXRemixSwitch", + "RTXRemixTextureTypeToUSDAttribute", + "RTXRemixTexturesType", + "RTXRemixTexturesTypes" + ], + { + "title_aux": "ComfyUI-RTX-Remix" + } + ], + "https://github.com/NakamuraShippo/ComfyUI-NS-ManySliders": [ + [ + "NS_ManySliders" + ], + { + "title_aux": "ComfyUI-NS-ManySliders" + } + ], + "https://github.com/NakamuraShippo/ComfyUI-NS-PromptList": [ + [ + "NS-PromptList" + ], + { + "title_aux": "ComfyUI-PromptList" + } + ], + "https://github.com/NakamuraShippo/ComfyUI-NS-Util": [ + [ + "AlbedoMapGenerator", + "NS-FlexPreset", + "NS-ManySliders", + "NS-PromptList", + "NS-ToonFilter", + "SimpleLLMAddDocument", + "SimpleLLMAddMemory", + "SimpleLLMAgent", + "SimpleLLMAgentToTool", + "SimpleLLMAgentWithRules", + "SimpleLLMChainOfThought", + "SimpleLLMConfigClaude", + "SimpleLLMConfigGemini", + "SimpleLLMConfigOllama", + "SimpleLLMConfigOpenAI", + "SimpleLLMDisplayText", + "SimpleLLMLoadWorkflow", + "SimpleLLMMemoryBank", + "SimpleLLMMergeText", + "SimpleLLMRAGQuery", + "SimpleLLMRunPrompt", + "SimpleLLMStringViewer", + "SimpleLLMTextInput", + "SimpleLLMTextOutput", + "SimpleLLMVectorStore" + ], + { + "title_aux": "ComfyUI-NS-Util" + } + ], + "https://github.com/NeoDroleDeGueule/comfyui-image-mixer": [ + [ + "ImageLatentMixer" + ], + { + "title_aux": "comfyui-image-mixer" + } + ], + "https://github.com/NeoGriever/ComfyUI-NeoGriever": [ + [ + "NGs_BetterCLIPTextEncode", + "NGs_Checkerboard_Generator", + "NGs_Create_Solid_Color", + "NGs_Discord_Webhook", + "NGs_Fill_with_Color", + "NGs_Image_Progress_Bar", + "NGs_Multimask_Read", + "NGs_Multimask_Write", + "NGs_ResolutionProvider", + "NGs_Sliders_FLOAT", + "NGs_Sliders_INT", + "NGs_Sliders_PERCENTAGECUT", + "NGs_String_Operator", + "NGs_String_Squisher", + "NGs_Tag_Source", + "NGs_TextBox_JOIN", + "NGs_TextBox_SIMPLE", + "NGs_TextBox_x2", + "NGs_TextBox_x3", + "NGs_Text_Cut_String" + ], + { + "title_aux": "ComfyUI - NeoGriever" + } + ], + "https://github.com/NeonLightning/neonllama": [ + [ + "OllamaPromptFromIdea" + ], + { + "title_aux": "neonllama" + } + ], + "https://github.com/NeuralSamurAI/ComfyUI-Dimensional-Latent-Perlin": [ + [ + "NoisyLatentPerlinD" + ], + { + "title_aux": "Dimensional Latent Perlin for ComfyUI" + } + ], + "https://github.com/NeuralSamurAI/ComfyUI-FluxPseudoNegativePrompt": [ + [ + "FluxPseudoNegativeNode" + ], + { + "title_aux": "FluxPseudoNegative" + } + ], + "https://github.com/NeuralSamurAI/ComfyUI-PromptJSON": [ + [ + "PromptJSON" + ], + { + "title_aux": "PromptJSON Node for ComfyUI" + } + ], "https://github.com/NeuralSamurAI/Comfyui-Superprompt-Unofficial": [ [ "SuperPrompterNode" @@ -2415,6 +10296,49 @@ "title_aux": "SuperPrompter Node for ComfyUI" } ], + "https://github.com/NeuroSenko/ComfyUI_LLM_SDXL_Adapter": [ + [ + "ApplyLLMToSDXLAdapter", + "LLMAdapterLoader", + "LLMAdapterLoaderCustom", + "LLMGGUFModelLoader", + "LLMModelLoader", + "LLMTextEncoder", + "T5GEMMALoader", + "T5GEMMATextEncoder" + ], + { + "title_aux": "ComfyUI LLM SDXL Adapter" + } + ], + "https://github.com/NewNoviceChen/ComfyUI-XingLiu": [ + [ + "Image2ImageByAlpha", + "Image2ImageCustom", + "Image2ImageCustomAlpha", + "MakeAuth", + "MakeControlNet", + "MakeHiResFix", + "MakeLora", + "MergeControlNet", + "MergeLora", + "Text2ImageByAlpha", + "Text2ImageCustom", + "Text2ImageCustomAlpha", + "UploadLibLib" + ], + { + "title_aux": "ComfyUI-XingLiu" + } + ], + "https://github.com/NguynHungNguyen/Segment-Bedroom-Interior": [ + [ + "BedroomFurnitureMask" + ], + { + "title_aux": "Segment Any Bedroom Interior" + } + ], "https://github.com/NicholasMcCarthy/ComfyUI_TravelSuite": [ [ "LatentTravel" @@ -2423,9 +10347,36 @@ "title_aux": "ComfyUI_TravelSuite" } ], + "https://github.com/Nikosis/ComfyUI-Nikosis-Nodes": [ + [ + "AspectRatioNikosis", + "PromptCameraAngleSelectorNikosis", + "PromptMultipleStylesSelectorNikosis", + "TextConcatenateNikosis" + ], + { + "title_aux": "ComfyUI-Nikosis-Nodes" + } + ], + "https://github.com/Nikosis/ComfyUI-Nikosis-Preprocessors": [ + [ + "DepthAnythingV2Nikosis", + "EdgePreprocessorNikosis", + "LaplacianPreprocessorNikosis", + "LineArtPreprocessorNikosis", + "LineArtSketchPreprocessorNikosis" + ], + { + "title_aux": "ComfyUI-Nikosis-Preprocessors" + } + ], "https://github.com/NimaNzrii/comfyui-photoshop": [ [ - "PhotoshopToComfyUI" + "\ud83d\udd39 Photoshop RemoteConnection", + "\ud83d\udd39ClipPass", + "\ud83d\udd39Photoshop ComfyUI Plugin", + "\ud83d\udd39SendTo Photoshop Plugin", + "\ud83d\udd39modelPass" ], { "title_aux": "comfyui-photoshop" @@ -2447,6 +10398,14 @@ "title_aux": "ComfyUi-NoodleWebcam" } ], + "https://github.com/Njbx/ComfyUI-LTX13B-Blockswap": [ + [ + "LTXBlockswap" + ], + { + "title_aux": "ComfyUI-LTX13B-Blockswap" + } + ], "https://github.com/Nlar/ComfyUI_CartoonSegmentation": [ [ "AnimeSegmentation", @@ -2462,6 +10421,16 @@ "title_aux": "ComfyUI_CartoonSegmentation" } ], + "https://github.com/Nojahhh/ComfyUI_GLM4_Wrapper": [ + [ + "GLM-4 Inferencing", + "GLM-4 Model Loader", + "GLM-4 Prompt Enhancer" + ], + { + "title_aux": "ComfyUI GLM-4 Wrapper" + } + ], "https://github.com/NotHarroweD/Harronode": [ [ "Harronode" @@ -2602,6 +10571,50 @@ "title_aux": "ComfyUI-N-Nodes" } ], + "https://github.com/NyaFuP/ComfyUI_Preview_Selector": [ + [ + "NFPreviewSelector" + ], + { + "title_aux": "NF Preview Selector" + } + ], + "https://github.com/NyaamZ/efficiency-nodes-ED": [ + [ + "Context To BasicPipe", + "Context To DetailerPipe", + "Detailer (SEGS) \ud83d\udcacED", + "Efficient Loader \ud83d\udcacED", + "Embedding Stacker \ud83d\udcacED", + "Ext Model Input \ud83d\udcacED", + "FaceDetailer \ud83d\udcacED", + "Get Booru Tag \ud83d\udcacED", + "Int Holder \ud83d\udcacED", + "KSampler (Efficient) \ud83d\udcacED", + "KSampler Text \ud83d\udcacED", + "LoRA Stacker \ud83d\udcacED", + "Load Image \ud83d\udcacED", + "MaskDetailer \ud83d\udcacED", + "Refiner Script \ud83d\udcacED", + "Regional Processor \ud83d\udcacED", + "Regional Script \ud83d\udcacED", + "Regional Stacker \ud83d\udcacED", + "SUPIR Model Loader \ud83d\udcacED", + "SUPIR Sampler \ud83d\udcacED", + "Save Image \ud83d\udd14ED", + "Simple Text \ud83d\udcacED", + "TIPO Script \ud83d\udcacED", + "Ultimate SD Upscale \ud83d\udcacED", + "Wildcard Encode \ud83d\udcacED" + ], + { + "author": "NyaamZ", + "description": "Expansion of Efficiency Nodes for ComfyUI. Significant UX improvements.", + "nickname": "Efficiency Nodes ED", + "title": "Efficiency Nodes ExtendeD", + "title_aux": "Efficiency Nodes ExtendeD" + } + ], "https://github.com/Off-Live/ComfyUI-off-suite": [ [ "Apply CLAHE", @@ -2627,12 +10640,50 @@ "title_aux": "ComfyUI-off-suite" } ], - "https://github.com/Onierous/QRNG_Node_ComfyUI/raw/main/qrng_node.py": [ + "https://github.com/OneThingAI/ComfyUI_Onething_CV": [ [ - "QRNG_Node_CSV" + "OneThingAI ImageToText" ], { - "title_aux": "QRNG_Node_ComfyUI" + "title_aux": "ComfyUI OneThing CV Node" + } + ], + "https://github.com/OneThingAI/ComfyUI_Onething_Image": [ + [ + "OneThingAILoader" + ], + { + "title_aux": "ComfyUI OneThing AI Node" + } + ], + "https://github.com/Onionman61/ComfyUI-ModelScope-Kontext": [ + [ + "ModelScopeKontextAPI" + ], + { + "title_aux": "ComfyUI ModelScope Kontext API Node" + } + ], + "https://github.com/OpalSky-AI/OpalSky_Nodes": [ + [ + "PromptAssistantOpalSky", + "StringSwitchOpalSky", + "string_switch_opalsky" + ], + { + "title_aux": "OpalSky Nodes" + } + ], + "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex": [ + [ + "Pipe From Parameters", + "Pipe To Parameters", + "Prompt Tidy", + "Text Switch 2 Way", + "Text With Context" + ], + { + "title_aux": "ComfyUI-Simple-Of-Complex" } ], "https://github.com/PCMonsterx/ComfyUI-CSV-Loader": [ @@ -2652,6 +10703,76 @@ "title_aux": "ComfyUI-CSV-Loader" } ], + "https://github.com/PICOPON/ComfyUI-API-OpenAI-Node": [ + [ + "OpenAINode" + ], + { + "title_aux": "ComfyUI OpenAI Node" + } + ], + "https://github.com/Pablerdo/ComfyUI-MultiCutAndDrag": [ + [ + "BatchImageToMask", + "LoadImageFromBase64", + "LoadImagesFromBase64Array", + "MapTrajectoriesToSegmentedMasks", + "MultiCutAndDragOnPath" + ], + { + "title_aux": "ComfyUI-MultiCutAndDrag" + } + ], + "https://github.com/Pablerdo/ComfyUI-ResizeZeptaPayload": [ + [ + "ResizeImageBatch", + "ResizeTrajectories" + ], + { + "title_aux": "ComfyUI-ResizeZeptaPayload" + } + ], + "https://github.com/Pablerdo/ComfyUI-StableVirtualCameraWrapper": [ + [ + "SVCFly", + "SVCFly_Bash" + ], + { + "title_aux": "Stable Virtual Camera" + } + ], + "https://github.com/Pablerdo/ComfyUI-ZeptaframePromptMerger": [ + [ + "MergePrompts" + ], + { + "title_aux": "ComfyUI-ZeptaframePromptMerger" + } + ], + "https://github.com/PanicTitan/ComfyUI-Fooocus-V2-Expansion": [ + [ + "FooocusV2Expansion" + ], + { + "title_aux": "ComfyUI-Fooocus-V2-Expansion" + } + ], + "https://github.com/PanicTitan/ComfyUI-Gallery": [ + [ + "GalleryNode" + ], + { + "title_aux": "ComfyUI-Gallery" + } + ], + "https://github.com/Parameshvadivel/ComfyUI-SVGview": [ + [ + "SVGPreview" + ], + { + "title_aux": "ComfyUI-SVGview" + } + ], "https://github.com/ParisNeo/lollms_nodes_suite": [ [ "Artbot", @@ -2674,6 +10795,30 @@ "title_aux": "ComfyUI-Malefish-Custom-Scripts" } ], + "https://github.com/PauldeLavallaz/comfyui_claude_prompt_generator": [ + [ + "ClaudeCustomPrompt" + ], + { + "title_aux": "Claude Prompt Generator" + } + ], + "https://github.com/PenguinTeo/Comfyui-GeminiBanana": [ + [ + "GeminiFlash25Node" + ], + { + "title_aux": "GeminiBanana for ComfyUI" + } + ], + "https://github.com/PenguinTeo/Comfyui-TextEditor-Penguin": [ + [ + "PenguinTextOnImage" + ], + { + "title_aux": "Comfyui-TextEditor-Penguin" + } + ], "https://github.com/Pfaeff/pfaeff-comfyui": [ [ "AstropulsePixelDetector", @@ -2686,37 +10831,287 @@ "title_aux": "pfaeff-comfyui" } ], - "https://github.com/Pos13/comfyui-cyclist": [ + "https://github.com/Phando/ComfyUI-PhandoNodes": [ [ - "CyclistCompare", - "CyclistMathFloat", - "CyclistMathInt", - "CyclistTimer", - "CyclistTimerStop", - "CyclistTypeCast", - "Interrupt", - "LoopManager", - "MemorizeConditioning", - "MemorizeFloat", - "MemorizeInt", - "MemorizeString", - "OverrideImage", - "OverrideLatent", - "OverrideModel", - "RecallConditioning", - "RecallFloat", - "RecallInt", - "RecallString", - "ReloadImage", - "ReloadLatent", - "ReloadModel" + "SearchBySubstring", + "TextConcatenateDynamic" ], { - "author": "Pos13", - "description": "This extension provides tools to iterate generation results between runs. In general, it's for cycles.", - "nickname": "comfyui-cyclist", - "title": "Cyclist", - "title_aux": "Cyclist" + "title_aux": "ComfyUI-PhandoNodes" + } + ], + "https://github.com/Pheat-AI/Remade_nodes": [ + [ + "Batch Enlarged Overlay", + "Batch Image Blend by Mask", + "Batch Image Overlay", + "CannyImageCropper", + "MaskBoundingBox", + "Place Canny On Canvas", + "REMADE Batch Color Blend", + "REMADE Batch Image Blend", + "REMADE Batch Image Composite Masked", + "REMADE Batch Image Select Channel", + "Remove Black To Transparent", + "Shrink Canny Image" + ], + { + "title_aux": "Remade_nodes" + } + ], + "https://github.com/PiggyDance/ComfyUI_OpenCV": [ + [ + "OpenCV_CvtColor", + "OpenCV_GaussianBlur", + "OpenCV_MedianBlur" + ], + { + "title_aux": "ComfyUI_OpenCV" + } + ], + "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-SaveMP3": [ + [ + "SaveAudioAsMP3" + ], + { + "title_aux": "ComfyUI-LikeSpiderAI-SaveMP3" + } + ], + "https://github.com/Pigidiy/ComfyUI-LikeSpiderAI-UI": [ + [ + "AudioExport" + ], + { + "title_aux": "ComfyUI-LikeSpiderAI-UI" + } + ], + "https://github.com/Pirog17000/Pirogs-Nodes": [ + [ + "BatchCropFromMaskSimple", + "BatchUncropSimple", + "BlurByMask", + "BlurMask", + "CropImage", + "CropMaskByBBox", + "DSLRNoise", + "GradientMaskGenerator", + "ImageBlendByMask", + "ImageScalePro", + "InvertMask", + "KSamplerMultiSeed", + "KSamplerMultiSeedPlus", + "LensSimulatedBloom", + "PreviewImageQueue", + "PromptRandomizer", + "StringCombine", + "TestResetButton", + "Watermark" + ], + { + "title_aux": "Pirog's Nodes for ComfyUI" + } + ], + "https://github.com/PixelFunAI/ComfyUI_PixelFun": [ + [ + "HunyuanLoadAndEditLoraBlocks", + "HunyuanLoadFromBlockCache", + "HunyuanLoraFromJson", + "HunyuanLoraFromPrompt" + ], + { + "title_aux": "Hunyuan LoRA Loader Nodes" + } + ], + "https://github.com/PixelML/ComfyUI-PixelML-CustomNodes": [ + [ + "AgenticflowAIVariable", + "BooleanInput_PixelML", + "FloatInput_PixelML", + "IntegerInput_PixelML", + "LoadImageFromURL_PixelML", + "SaveImage_PixelML", + "StringInput_PixelML" + ], + { + "title_aux": "PixelML ComfyUI Nodes" + } + ], + "https://github.com/PnthrLeo/comfyUI-PL-data-tools": [ + [ + "AreasGenerator", + "BatchImageGetter", + "CloseImagesSearcher" + ], + { + "title_aux": "comfyUI-PL-data-tools" + } + ], + "https://github.com/Poseidon-fan/ComfyUI-RabbitMQ-Publisher": [ + [ + "Publish Image To RabbitMQ" + ], + { + "title_aux": "ComfyUI-RabbitMQ-Publisher" + } + ], + "https://github.com/Positliver/comfyui-zegr": [ + [ + "ZEGR_ALI_UF", + "ZEGR_LF", + "ZEGR_WD" + ], + { + "title_aux": "comfyui-zegr" + } + ], + "https://github.com/PowerHouseMan/ComfyUI-AdvancedLivePortrait": [ + [ + "AdvancedLivePortrait", + "ExpData", + "ExpressionEditor", + "LoadExpData", + "PrintExpData:", + "SaveExpData" + ], + { + "title_aux": "ComfyUI-AdvancedLivePortrait" + } + ], + "https://github.com/PressWagon/ComfyUI-StringsAndThings": [ + [ + "DebugString", + "FormatConcatStrings", + "FormattingSingle", + "FourierAnalysisNode", + "ImageDifference", + "MosaicEffectNode", + "PWLoraNameCollector", + "PWLoraSelector", + "TextEmbeddingsInterrogator" + ], + { + "title_aux": "ComfyUI-StringsAndThings" + } + ], + "https://github.com/ProGamerGov/ComfyUI_preview360panorama": [ + [ + "PanoramaVideoViewerNode", + "PanoramaViewerNode" + ], + { + "title_aux": "Preview 360 Panorama for ComfyUI" + } + ], + "https://github.com/ProGamerGov/ComfyUI_pytorch360convert": [ + [ + "Apply Circular Padding Model", + "Apply Circular Padding VAE", + "Create 180 To 360 Mask", + "Create Pole Mask", + "Create Seam Mask", + "Crop 360 to 180 Equirectangular", + "Crop Image with Coords", + "Crop Stereo to Monoscopic", + "Cubemap to Equirectangular", + "Equirectangular Mask to Face", + "Equirectangular Rotation", + "Equirectangular to Cubemap", + "Equirectangular to Face", + "Equirectangular to Perspective", + "Face Mask to Equirectangular", + "Face to Equirectangular", + "Mask Equirectangular Rotation", + "Masked Diff C2E", + "Merge Monoscopic into Stereo", + "Pad 180 to 360 Equirectangular", + "Paste Image with Coords", + "Roll Image Axes", + "Roll Mask Axes", + "Split Cubemap Faces", + "Stack Cubemap Faces" + ], + { + "title_aux": "ComfyUI_pytorch360convert" + } + ], + "https://github.com/PrunaAI/ComfyUI_pruna": [ + [ + "CacheModelAdaptive", + "CacheModelAuto", + "CacheModelPeriodic", + "PrunaCompileModel" + ], + { + "title_aux": "Pruna nodes for ComfyUI" + } + ], + "https://github.com/Pseudotools/Pseudocomfy": [ + [ + "PseudoApplyDenseDiffusionSDXL", + "PseudoApplyIPAdaperSDXL", + "PseudoConcatStrings", + "PseudoFloatToInt", + "PseudoIPAdapterUnifiedLoaderClone", + "PseudoLoadModelSnapshot", + "PseudoMaskAggregate", + "PseudoMaskBlur", + "PseudoMaskClamp", + "PseudoMaskInvert", + "PseudoMaskRemap", + "PseudoMaskReshape", + "PseudoPreviewStrings", + "PseudoProcessEnvironmentalPrompts", + "PseudoProcessImagePrompt", + "PseudoProcessMaterialPrompts", + "PseudoRemapNormalizedFloat", + "PseudoSaveImageWithEmbeddedMasks", + "PseudoUnpackModelSnapshot" + ], + { + "title_aux": "Pseudocomfy" + } + ], + "https://github.com/Pun0110/ComfyUI-CSV-Styler": [ + [ + "PT.CSV Styler" + ], + { + "title_aux": "CSV Styler" + } + ], + "https://github.com/Q-Bug4/Comfyui-Qb-DateNodes": [ + [ + "DateTimeFormatterNode" + ], + { + "title_aux": "Comfyui-Qb-Date-Nodes" + } + ], + "https://github.com/Q-Bug4/Comfyui-Simple-Json-Node": [ + [ + "JSONArrayIteratorNode", + "JSONGeneratorNode", + "JSONKeyCheckerNode", + "JSONLengthNode", + "JSONMergeNode", + "JSONModifierNode", + "JSONObjectIteratorNode", + "JSONParserNode", + "JSONStringifierNode", + "RandomJSONValueNode" + ], + { + "title_aux": "Simple JSON Parser Node for ComfyUI" + } + ], + "https://github.com/Q-Bug4/comfyui-qbug-batch": [ + [ + "CrossJoinSelector", + "ListFiles", + "NoPreviewSaveImage" + ], + { + "title_aux": "comfyui-qbug-batch" } ], "https://github.com/QaisMalkawi/ComfyUI-QaisHelper": [ @@ -2733,6 +11128,135 @@ "title_aux": "ComfyUI-Qais-Helper" } ], + "https://github.com/QijiTec/ComfyUI-RED-UNO": [ + [ + "REDUNOGenerate", + "REDUNOModelLoader" + ], + { + "title_aux": "ComfyUI-RED-UNO" + } + ], + "https://github.com/R5-Revo/llm-node-comfyui": [ + [ + "UniversalLLMNode" + ], + { + "title_aux": "Universal LLM Node for ComfyUI" + } + ], + "https://github.com/RUiNtheExtinct/comfyui-save-file-extended": [ + [ + "LoadAudioExtended", + "LoadImageExtended", + "LoadVideoExtended", + "SaveAudioExtended", + "SaveAudioMP3Extended", + "SaveAudioOpusExtended", + "SaveImageExtended", + "SaveVideoExtended", + "SaveWEBMExtended" + ], + { + "title_aux": "comfyui-save-file-extended" + } + ], + "https://github.com/Raapys/ComfyUI-LatentGC_Aggressive": [ + [ + "LatentGC" + ], + { + "title_aux": "LatentGC Aggressive" + } + ], + "https://github.com/RainyN0077/ComfyUI-PromptSE": [ + [ + "PromptSE" + ], + { + "title_aux": "ComfyUI-PromptSE" + } + ], + "https://github.com/RamonGuthrie/ComfyUI-RBG-ImageStitchPlus": [ + [ + "RBGImageStitchPlus", + "RBGPadPro" + ], + { + "title_aux": "ComfyUI-RBG-ImageStitchPlus" + } + ], + "https://github.com/Raykosan/ComfyUI_RS-SaturationNode": [ + [ + "RS_SaturationSwitch" + ], + { + "title_aux": "ComfyUI_RS-SaturationNode" + } + ], + "https://github.com/Raykosan/ComfyUI_RaykoStudio": [ + [ + "RS_RusTextOverlay" + ], + { + "title_aux": "ComfyUI_RaykoStudio" + } + ], + "https://github.com/RaymondProduction/comfyui-zerna-pack": [ + [ + "CLIPDynamicPromptEncoder //Zerna Pack", + "DynamicPromptInjector //Zerna Pack", + "LastImage //Zerna Pack", + "UnzipPrompt //Zerna Pack" + ], + { + "author": "Raymond", + "description": "A set of nodes for batch processing of text and images.", + "nickname": "Zerna Pack", + "title": "Zerna Pack", + "title_aux": "Zerna Pack" + } + ], + "https://github.com/ReBeating/ComfyUI-Artist-Selector": [ + [ + "LoadArtistTag" + ], + { + "title_aux": "ComfyUI-Artist-Selector" + } + ], + "https://github.com/RegulusAlpha/ComfyUI-DynPromptSimplified": [ + [ + "DynPromptExpand" + ], + { + "title_aux": "ComfyUI Dynamic Prompting Simplified" + } + ], + "https://github.com/ReinerBforartists/comfyui_auto_prompt_schedule": [ + [ + "AutoPromptSchedule" + ], + { + "title_aux": "Auto Prompt Schedule" + } + ], + "https://github.com/ReinerBforartists/comfyui_text_line_combine": [ + [ + "CombineTextLines" + ], + { + "title_aux": "ComfyUI_Text_Line_Combine" + } + ], + "https://github.com/Reithan/negative_rejection_steering": [ + [ + "NRS" + ], + { + "title_aux": "Negative Rejection Steering" + } + ], "https://github.com/RenderRift/ComfyUI-RenderRiftNodes": [ [ "AnalyseMetadata", @@ -2746,6 +11270,133 @@ "title_aux": "ComfyUI-RenderRiftNodes" } ], + "https://github.com/RhizoNymph/ComfyUI-CLIPSlider": [ + [ + "CLIPSlider" + ], + { + "title_aux": "ComfyUI-CLIPSlider" + } + ], + "https://github.com/RhizoNymph/ComfyUI-ColorWheel": [ + [ + "AccurateColorWheelNode" + ], + { + "title_aux": "ComfyUI-ColorWheel" + } + ], + "https://github.com/RhizoNymph/ComfyUI-Latte": [ + [ + "LatteVideoGenerator" + ], + { + "title_aux": "ComfyUI-Latte" + } + ], + "https://github.com/RiceRound/ComfyUI_CryptoCat": [ + [ + "CryptoCatImage", + "DecodeCryptoNode", + "ExcuteCryptoNode", + "RandomSeedNode", + "SaveCryptoBridgeNode", + "SaveCryptoNode" + ], + { + "title_aux": "ComfyUI Compression and Encryption Node" + } + ], + "https://github.com/RiceRound/ComfyUI_RiceRound": [ + [ + "RiceRoundAdvancedChoiceNode", + "RiceRoundBooleanNode", + "RiceRoundDecryptNode", + "RiceRoundDownloadImageAndMaskNode", + "RiceRoundDownloadImageNode", + "RiceRoundDownloadMaskNode", + "RiceRoundEncryptNode", + "RiceRoundFloatNode", + "RiceRoundImageBridgeNode", + "RiceRoundImageNode", + "RiceRoundImageUrlNode", + "RiceRoundInputTextNode", + "RiceRoundIntNode", + "RiceRoundMaskBridgeNode", + "RiceRoundOutputBooleanNode", + "RiceRoundOutputFloatNode", + "RiceRoundOutputImageBridgeNode", + "RiceRoundOutputImageNode", + "RiceRoundOutputIntNode", + "RiceRoundOutputMaskBridgeNode", + "RiceRoundOutputTextNode", + "RiceRoundRandomSeedNode", + "RiceRoundSimpleChoiceNode", + "RiceRoundSimpleImageNode", + "RiceRoundStrToBooleanNode", + "RiceRoundStrToFloatNode", + "RiceRoundStrToIntNode", + "RiceRoundUploadImageNode" + ], + { + "title_aux": "RiceRound Cloud Node" + } + ], + "https://github.com/Rinsanga1/comfyui-florence2xy": [ + [ + "Florence2toCoordinatesButxy", + "LoadImageWithName" + ], + { + "title_aux": "comfyui-florence2xy" + } + ], + "https://github.com/Rizzlord/ComfyUI-RizzNodes": [ + [ + "RizzAnything", + "RizzBatchImageLoader", + "RizzBlur", + "RizzChannelPack", + "RizzClean", + "RizzCropAndScaleFromMask", + "RizzDynamicPromptGenerator", + "RizzEditImage", + "RizzLoadLatestImage", + "RizzLoadLatestMesh", + "RizzModelBatchLoader", + "RizzPasteAndUnscale", + "RizzUpscaleImageBatch" + ], + { + "title_aux": "ComfyUI-RizzNodes" + } + ], + "https://github.com/RodrigoSKohl/ComfyUI-Panoramic-ImgStitcher": [ + [ + "Image Stitching Node" + ], + { + "title_aux": "Panoramic Image Stitcher" + } + ], + "https://github.com/RodrigoSKohl/InteriorDesign-for-ComfyUI": [ + [ + "Control Items", + "Image Normalize", + "Interior Design Segmentator" + ], + { + "title_aux": "Interior Design for Comfyui" + } + ], + "https://github.com/RodrigoSKohl/comfyui-tryoff-anyone": [ + [ + "TryOffAnyoneNode" + ], + { + "title_aux": "TryOff Anyone" + } + ], "https://github.com/RomanKuschanow/ComfyUI-Advanced-Latent-Control": [ [ "LatentAddTransform", @@ -2772,19 +11423,62 @@ "title_aux": "Advanced Latent Control" } ], + "https://github.com/Ron-Digital/ComfyUI-SceneGenerator": [ + [ + "Scene Generator" + ], + { + "title_aux": "ComfyUI-SceneGenerator" + } + ], + "https://github.com/Runware/ComfyUI-Runware": [ + [ + "Runware API Manager", + "Runware Background Removal", + "Runware ControlNet", + "Runware ControlNet Combine", + "Runware ControlNet PreProcessor", + "Runware DeepCache", + "Runware Embedding Search", + "Runware Embeddings Combine", + "Runware IPAdapter", + "Runware IPAdapters Combine", + "Runware Image Caption", + "Runware Image Inference", + "Runware Image Masking", + "Runware Image Upscaler", + "Runware Imagen Inference", + "Runware Kontext Inference", + "Runware Lora Combine", + "Runware Lora Search", + "Runware Model Search", + "Runware Multi Inference", + "Runware Outpaint", + "Runware PhotoMaker V2", + "Runware Reference Images", + "Runware Refiner", + "Runware TeaCache", + "Runware VAE Search" + ], + { + "title_aux": "Runware.ai ComfyUI Inference API Integration" + } + ], "https://github.com/Ryuukeisyou/comfyui_face_parsing": [ [ + "BBoxDecompose(FaceParsing)", + "BBoxDetect(FaceParsing)", + "BBoxDetectorLoader(FaceParsing)", "BBoxListItemSelect(FaceParsing)", "BBoxResize(FaceParsing)", "ColorAdjust(FaceParsing)", - "FaceBBoxDetect(FaceParsing)", - "FaceBBoxDetectorLoader(FaceParsing)", "FaceParse(FaceParsing)", "FaceParsingModelLoader(FaceParsing)", "FaceParsingProcessorLoader(FaceParsing)", "FaceParsingResultsParser(FaceParsing)", "GuidedFilter(FaceParsing)", "ImageCropWithBBox(FaceParsing)", + "ImageCropWithBBoxList(FaceParsing)", "ImageInsertWithBBox(FaceParsing)", "ImageListSelect(FaceParsing)", "ImagePadWithBBox(FaceParsing)", @@ -2794,10 +11488,15 @@ "LatentCropWithBBox(FaceParsing)", "LatentInsertWithBBox(FaceParsing)", "LatentSize(FaceParsing)", + "MaskBatchComposite(FaceParsing)", + "MaskBlackOut(FaceParsing)", + "MaskBorderDissolve(FaceParsing)", + "MaskBorderDissolveAdvanced(FaceParsing)", "MaskComposite(FaceParsing)", - "MaskListComposite(FaceParsing)", + "MaskCropWithBBox(FaceParsing)", + "MaskInsertWithBBox(FaceParsing)", "MaskListSelect(FaceParsing)", - "MaskToBBox(FaceParsing)", + "MaskToBBoxList(FaceParsing)", "SkinDetectTraditional(FaceParsing)" ], { @@ -2811,12 +11510,107 @@ "ImageLoadFromBase64(IOHelpers)", "ImageSaveAsBase64(IOHelpers)", "ImageSaveToPath(IOHelpers)", - "TypeConversion(IOHelpers)" + "TypeConversion(IOHelpers)", + "VHSFileNamesToStrings(IOHelpers)" ], { "title_aux": "comfyui_io_helpers" } ], + "https://github.com/S4MUEL-404/ComfyUI-Prepack": [ + [ + "PrepackGetPipe", + "PrepackKsampler", + "PrepackLoras", + "PrepackModelDualCLIP", + "PrepackModelSingleCLIP", + "PrepackSeed", + "PrepackSetPipe" + ], + { + "title_aux": "ComfyUI Prepack" + } + ], + "https://github.com/S4MUEL-404/ComfyUI-S4Motion": [ + [ + "\ud83d\udc80Motion Config", + "\ud83d\udc80Motion Distortion", + "\ud83d\udc80Motion Mask", + "\ud83d\udc80Motion Opacity", + "\ud83d\udc80Motion Position", + "\ud83d\udc80Motion Position On Path", + "\ud83d\udc80Motion Rotation", + "\ud83d\udc80Motion Scale", + "\ud83d\udc80Motion Shake" + ], + { + "title_aux": "ComfyUI S4Motion" + } + ], + "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Image": [ + [ + "CombineImageBatch", + "GetImageBatch", + "ImageAdjustment", + "ImageBlendWithAlpha", + "ImageBoard", + "ImageColor", + "ImageCombine", + "ImageCropToFit", + "ImageFromBase64", + "ImageGetColor", + "ImageMaskExpand", + "ImageOverlay", + "ImagePalette", + "ImagePalette631", + "ImagePrimaryColor", + "ImageResize", + "ImageTilingPattern", + "ImageToBase64", + "SetImageBatch" + ], + { + "title_aux": "ComfyUI S4Tool Image" + } + ], + "https://github.com/S4MUEL-404/ComfyUI-S4Tool-Text": [ + [ + "S4Tools Text Basic", + "S4Tools Text Font Base64", + "S4Tools Text Font URL", + "S4Tools Text Font file", + "S4Tools Text Style" + ], + { + "title_aux": "ComfyUI S4Tool Text" + } + ], + "https://github.com/SEkINVR/ComfyUI-SaveAs": [ + [ + "ComfyUISaveAs" + ], + { + "title_aux": "ComfyUI SaveAS" + } + ], + "https://github.com/SKBv0/ComfyUI_SKBundle": [ + [ + "AspectRatioAdvanced", + "DisplayEverything", + "ImageComparer", + "LensFlare", + "MultiFloat", + "MultiTextNode", + "PaintPro", + "SKB_AnySwitch", + "SeamlessTexture", + "TextBox", + "TitlePlus" + ], + { + "title_aux": "ComfyUI SKBundle" + } + ], "https://github.com/SLAPaper/ComfyUI-Image-Selector": [ [ "ImageDuplicator", @@ -2854,25 +11648,251 @@ "ImageScaleToMin", "LoadAesteticModel", "MD5ImageHashNode", + "NSFWClassifierNode", "SamplerPropertiesNode", "ScoreConverterNode", "SeedIncrementerNode", "SegformerNode", "SegformerNodeMasks", "SegformerNodeMergeSegments", - "StepCfgIncrementNode" + "StepCfgIncrementNode", + "WatermarkDetectionNode" ], { "title_aux": "ComfyUI-LexTools" } ], - "https://github.com/SadaleNet/CLIPTextEncodeA1111-ComfyUI/raw/master/custom_nodes/clip_text_encoder_a1111.py": [ + "https://github.com/SS-snap/ComfyUI-Ad_scheduler": [ [ - "CLIPTextEncodeA1111", - "RerouteTextForCLIPTextEncodeA1111" + "AD_Scheduler" ], { - "title_aux": "ComfyUI A1111-like Prompt Custom Node Solution" + "title_aux": "ComfyUI-Ad-scheduler" + } + ], + "https://github.com/SS-snap/ComfyUI-LBW_flux": [ + [ + "LoraBlockWeight_Flux" + ], + { + "title_aux": "ComfyUI-LBW_flux" + } + ], + "https://github.com/SS-snap/ComfyUI-Snap_Processing": [ + [ + "AreaCalculator", + "PyQtCanvasNode", + "Snapload" + ], + { + "title_aux": "Snap Processing for Comfyui" + } + ], + "https://github.com/SS-snap/Comfyui_SSsnap_pose-Remapping": [ + [ + "ApplyPoseScalesToFrames", + "CalculatePoseScales", + "ConvertPoseToStandardFormat", + "RenderKps" + ], + { + "title_aux": "Comfyui_SSsnap_pose-Remapping" + } + ], + "https://github.com/SXQBW/ComfyUI-Qwen": [ + [ + "Qwen2_Chat_Zho", + "Qwen2_ModelLoader_Zho", + "Qwen2_Zho" + ], + { + "title_aux": "ComfyUI-Qwen" + } + ], + "https://github.com/SXQBW/ComfyUI-Qwen-Omni": [ + [ + "QwenOmniCombined", + "VideoUploader" + ], + { + "title_aux": "ComfyUI-Qwen-Omni" + } + ], + "https://github.com/SXQBW/ComfyUI-Qwen-VL": [ + [ + "QwenVisionParser" + ], + { + "title_aux": "ComfyUI-Qwen-VL" + } + ], + "https://github.com/Saganaki22/ComfyUI-dotWaveform": [ + [ + "DottedWaveformVisualizer" + ], + { + "title_aux": "dotWaveform" + } + ], + "https://github.com/SamKhoze/ComfyUI-DeepFuze": [ + [ + "DeepFuze Save", + "DeepFuzeAdavance", + "DeepFuzeFaceSwap", + "DeepfuzePreview", + "LLM_node", + "PlayBackAudio", + "TTS_generation" + ], + { + "title_aux": "DeepFuze" + } + ], + "https://github.com/SamTyurenkov/comfyui-vace-preprocessors": [ + [ + "CombineLayoutTracksNode", + "VideoLayoutTrackAnnotatorNode" + ], + { + "title_aux": "comfyui_vace_preprocessors" + } + ], + "https://github.com/SamTyurenkov/comfyui_chatgpt": [ + [ + "ChatGPTImageEditNode", + "ChatGPTImageGenerationNode", + "ImageToBase64" + ], + { + "title_aux": "comfyui_chatgpt" + } + ], + "https://github.com/San4itos/ComfyUI-Save-Images-as-Video": [ + [ + "ConvertVideoFFmpeg_san4itos", + "LoadVideoByPath_san4itos", + "SaveFramesToVideoFFmpeg_san4itos" + ], + { + "title_aux": "Save Images to Video (FFmpeg) for ComfyUI" + } + ], + "https://github.com/SanDiegoDude/ComfyUI-DeepStereo": [ + [ + "ColorPickerNode", + "DepthMapProcessor", + "ImageEffectsTransformer", + "ImageResizeAndTransform", + "MiDaSDepthEstimator", + "ProceduralTextureGenerator", + "RandomDotStereogramGenerator", + "RandomNoiseGenerator", + "StereogramGenerator", + "TextureTransformer" + ], + { + "title_aux": "ComfyUI-DeepStereo" + } + ], + "https://github.com/SanDiegoDude/ComfyUI-Kontext-API": [ + [ + "FalKontextMaxMultiImageNode", + "KontextAPINode" + ], + { + "title_aux": "ComfyUI-Kontext-API" + } + ], + "https://github.com/SanDiegoDude/ComfyUI-SaveAudioMP3": [ + [ + "SaveAudioMP3" + ], + { + "title_aux": "ComfyUI-SaveAudioMP3" + } + ], + "https://github.com/Santodan/santodan-custom-nodes-comfyui": [ + [ + "LoRACachePreloader", + "RandomLoRACustom", + "RandomLoRAFolder" + ], + { + "title_aux": "Santodan Random LoRA Node" + } + ], + "https://github.com/Saquib764/omini-kontext": [ + [ + "NunchakuOminiKontextPatch", + "OminiKontextConditioning", + "OminiKontextEditor", + "OminiKontextModelPatch", + "OminiQwenImageEditModelPatch" + ], + { + "title_aux": "Omini Kontext" + } + ], + "https://github.com/SaturMars/ComfyUI-NVVFR": [ + [ + "NVVFR" + ], + { + "title_aux": "ComfyUI-NVVFR" + } + ], + "https://github.com/SaturMars/ComfyUI-QwenImageLoraConverter": [ + [ + "QwenLoraConverterNode" + ], + { + "title_aux": "ComfyUI Qwen LoRA Converter Node" + } + ], + "https://github.com/SayanoAI/Comfy-RVC": [ + [ + "Any2ListNode", + "AudioBatchValueNode", + "AudioInfoNode", + "AudioTranscriptionNode", + "BatchedTranscriptionEncoderNode", + "DownloadAudio", + "ImageRepeatInterleavedNode", + "LatentRepeatInterleavedNode", + "List2AnyNode", + "LoadHubertModel", + "LoadPitchExtractionParams", + "LoadRVCModelNode", + "LoadWhisperModelNode", + "MergeAudioNode", + "MergeImageBatches", + "MergeLatentBatches", + "MuseAudioFeatureExtractionNode", + "MuseImageFeatureExtractionNode", + "MuseTalkNode", + "ProcessAudioNode", + "RVC-Studio.LoadAudio", + "RVC-Studio.PreviewAudio", + "RVCNode", + "RVCProcessDatasetNode", + "RVCTrainModelNode", + "RVCTrainParamsNode", + "SimpleMathNode", + "SliceNode", + "SortImagesNode", + "UVR5Node", + "ZipNode" + ], + { + "title_aux": "Comfy-RVC" + } + ], + "https://github.com/Sayene/comfyui-base64-to-image-size": [ + [ + "LoadImageFromBase64Size" + ], + { + "title_aux": "comfyui-base64-to-image-size" } ], "https://github.com/Scholar01/ComfyUI-Keyframe": [ @@ -2885,8 +11905,33 @@ "title_aux": "SComfyUI-Keyframe" } ], + "https://github.com/Scorpinaus/ComfyUI-DiffusersLoader": [ + [ + "CombinedDiffusersLoader", + "DiffusersClipLoader", + "DiffusersUNETLoader", + "DiffusersVAELoader" + ], + { + "title_aux": "ComfyUI-DiffusersLoader" + } + ], + "https://github.com/ScreamingHawk/comfyui-ollama-prompt-encode": [ + [ + "OllamaCLIPTextEncode", + "OllamaPromptGenerator" + ], + { + "author": "Michael Standen", + "description": "Use AI to generate prompts and perform CLIP text encoding", + "nickname": "Ollama Prompt Encode", + "title": "Ollama Prompt Encode", + "title_aux": "Ollama Prompt Encode" + } + ], "https://github.com/SeaArtLab/ComfyUI-Long-CLIP": [ [ + "LongCLIPTextEncodeFlux", "SeaArtLongClip", "SeaArtLongXLClipMerge" ], @@ -2894,6 +11939,51 @@ "title_aux": "ComfyUI-Long-CLIP" } ], + "https://github.com/SeanScripts/ComfyUI-PixtralLlamaMolmoVision": [ + [ + "AutoVisionModelLoader", + "JoinString", + "LlamaVisionGenerateText", + "LlamaVisionModelLoader", + "MolmoGenerateText", + "MolmoModelLoader", + "ParseBoundingBoxes", + "ParsePoints", + "PixtralGenerateText", + "PixtralImageEncode", + "PixtralModelLoader", + "PixtralTextEncode", + "PlotPoints", + "RegexFindAll", + "RegexSearch", + "RegexSplitString", + "RegexSubstitution", + "SelectIndex", + "SliceList" + ], + { + "title_aux": "ComfyUI-PixtralLlamaMolmoVision" + } + ], + "https://github.com/SeanScripts/ComfyUI-Unload-Model": [ + [ + "UnloadAllModels", + "UnloadModel" + ], + { + "title_aux": "ComfyUI-Unload-Model" + } + ], + "https://github.com/SeargeDP/ComfyUI_Searge_LLM": [ + [ + "Searge_AdvOptionsNode", + "Searge_LLM_Node", + "Searge_Output_Node" + ], + { + "title_aux": "Searge-LLM for ComfyUI v1.0" + } + ], "https://github.com/SeargeDP/SeargeSDXL": [ [ "SeargeAdvancedParameters", @@ -2974,178 +12064,28 @@ "title_aux": "SeargeSDXL" } ], - "https://github.com/Seedsa/Fooocus_Nodes": [ + "https://github.com/Sekiun/ComfyUI-WebpToPNGSequence": [ [ - "BasicScheduler", - "CLIPLoader", - "CLIPMergeSimple", - "CLIPSave", - "CLIPSetLastLayer", - "CLIPTextEncode", - "CLIPTextEncodeSDXL", - "CLIPTextEncodeSDXLRefiner", - "CLIPVisionEncode", - "CLIPVisionLoader", - "Canny", - "CheckpointLoader", - "CheckpointLoaderSimple", - "CheckpointSave", - "ConditioningAverage", - "ConditioningCombine", - "ConditioningConcat", - "ConditioningSetArea", - "ConditioningSetAreaPercentage", - "ConditioningSetMask", - "ConditioningSetTimestepRange", - "ConditioningZeroOut", - "ControlNetApply", - "ControlNetApplyAdvanced", - "ControlNetLoader", - "CropMask", - "DiffControlNetLoader", - "DiffusersLoader", - "DualCLIPLoader", - "EmptyImage", - "EmptyLatentImage", - "ExponentialScheduler", - "FeatherMask", - "FlipSigmas", - "Fooocus ApplyImagePrompt", - "Fooocus Controlnet", - "Fooocus ImagePrompt", - "Fooocus Inpaint", - "Fooocus KSampler", - "Fooocus Loader", - "Fooocus LoraStack", - "Fooocus PipeOut", - "Fooocus PreKSampler", - "Fooocus Styles", - "Fooocus Upscale", - "Fooocus detailerFix", - "Fooocus negative", - "Fooocus positive", - "Fooocus preDetailerFix", - "Fooocus samLoaderPipe", - "Fooocus ultralyticsDetectorPipe", - "FreeU", - "FreeU_V2", - "GLIGENLoader", - "GLIGENTextBoxApply", - "GrowMask", - "HyperTile", - "HypernetworkLoader", - "ImageBatch", - "ImageBlend", - "ImageBlur", - "ImageColorToMask", - "ImageCompositeMasked", - "ImageCrop", - "ImageInvert", - "ImageOnlyCheckpointLoader", - "ImageOnlyCheckpointSave", - "ImagePadForOutpaint", - "ImageQuantize", - "ImageScale", - "ImageScaleBy", - "ImageScaleToTotalPixels", - "ImageSharpen", - "ImageToMask", - "ImageUpscaleWithModel", - "InpaintModelConditioning", - "InvertMask", - "JoinImageWithAlpha", - "KSampler", - "KSamplerAdvanced", - "KSamplerSelect", - "KarrasScheduler", - "LatentAdd", - "LatentBatch", - "LatentBatchSeedBehavior", - "LatentBlend", - "LatentComposite", - "LatentCompositeMasked", - "LatentCrop", - "LatentFlip", - "LatentFromBatch", - "LatentInterpolate", - "LatentMultiply", - "LatentRotate", - "LatentSubtract", - "LatentUpscale", - "LatentUpscaleBy", - "LoadImage", - "LoadImageMask", - "LoadLatent", - "LoraLoader", - "LoraLoaderModelOnly", - "MaskComposite", - "MaskToImage", - "ModelMergeAdd", - "ModelMergeBlocks", - "ModelMergeSimple", - "ModelMergeSubtract", - "ModelSamplingContinuousEDM", - "ModelSamplingDiscrete", - "PatchModelAddDownscale", - "PerpNeg", - "PhotoMakerEncode", - "PhotoMakerLoader", - "PolyexponentialScheduler", - "PorterDuffImageComposite", - "PreviewImage", - "RebatchImages", - "RebatchLatents", - "RepeatImageBatch", - "RepeatLatentBatch", - "RescaleCFG", - "SDTurboScheduler", - "SD_4XUpscale_Conditioning", - "SVD_img2vid_Conditioning", - "SamplerCustom", - "SamplerDPMPP_2M_SDE", - "SamplerDPMPP_SDE", - "SaveAnimatedPNG", - "SaveAnimatedWEBP", - "SaveImage", - "SaveLatent", - "SelfAttentionGuidance", - "SetLatentNoiseMask", - "SolidMask", - "SplitImageWithAlpha", - "SplitSigmas", - "StableZero123_Conditioning", - "StableZero123_Conditioning_Batched", - "StyleModelApply", - "StyleModelLoader", - "TomePatchModel", - "UNETLoader", - "UpscaleModelLoader", - "VAEDecode", - "VAEDecodeTiled", - "VAEEncode", - "VAEEncodeForInpaint", - "VAEEncodeTiled", - "VAELoader", - "VAESave", - "VPScheduler", - "VideoLinearCFGGuidance", - "unCLIPCheckpointLoader", - "unCLIPConditioning" + "WebpToPngSequence" ], { - "title_aux": "ComfyUI Fooocus Nodes" + "title_aux": "ComfyUI-WebpToPNGSequence" } ], - "https://github.com/Ser-Hilary/SDXL_sizing/raw/main/conditioning_sizing_for_SDXL.py": [ + "https://github.com/Semper-Sursum/HF-Flux-ComfyUI": [ [ - "get_aspect_from_image", - "get_aspect_from_ints", - "sizing_node", - "sizing_node_basic", - "sizing_node_unparsed" + "HuggingFaceTextToImage" ], { - "title_aux": "SDXL_sizing" + "title_aux": "HF-Flux-ComfyUI" + } + ], + "https://github.com/ServiceStack/comfy-asset-downloader": [ + [ + "AssetDownloader" + ], + { + "title_aux": "ComfyUI Asset Downloader" } ], "https://github.com/Shadetail/ComfyUI_Eagleshadow": [ @@ -3160,12 +12100,322 @@ "Round Float to String", "SaveImageToFolder", "Select ControlNet", + "Select Model 20", "Simple Load Image Batch" ], { "title_aux": "Eagleshadow Custom Nodes" } ], + "https://github.com/Shakker-Labs/ComfyUI-IPAdapter-Flux": [ + [ + "ApplyIPAdapterFlux", + "ApplyIPAdapterFluxAdvanced", + "IPAdapterFluxLoader", + "IPAdapterFluxLoaderAdvanced" + ], + { + "title_aux": "ComfyUI-IPAdapter-Flux" + } + ], + "https://github.com/Shannooty/ComfyUI-Timer-Nodes": [ + [ + "TimerStart", + "TimerStringConcat" + ], + { + "title_aux": "ComfyUI Timer Nodes" + } + ], + "https://github.com/Shellishack/comfyui-remote-media-loaders": [ + [ + "LoadRemoteAudio", + "LoadRemoteImage", + "LoadRemoteVideo" + ], + { + "title_aux": "ComfyUI Remote Media Loaders" + } + ], + "https://github.com/SherryXieYuchen/ComfyUI-Image-Inpainting": [ + [ + "CropImageByRect", + "INPAINT_ColorCorrection", + "INPAINT_CropImage", + "INPAINT_InpaintingWithModel", + "INPAINT_LoadModel", + "INPAINT_PasteBackCropImage", + "INPAINT_VAEDecode", + "INPAINT_VAEEncode", + "ImagePostprocess", + "ImagePreprocess" + ], + { + "title_aux": "ComfyUI-Image-Inpainting" + } + ], + "https://github.com/Shiba-2-shiba/ComfyUI-Magcache-for-SDXL": [ + [ + "MagCacheSDXL", + "MagCacheSDXLCalibration" + ], + { + "title_aux": "ComfyUI-Magcache-for-SDXL" + } + ], + "https://github.com/Shiba-2-shiba/ComfyUI_DiffusionModel_fp8_converter": [ + [ + "ClipFP8ConverterNode", + "ModelFP8ConverterNode" + ], + { + "title_aux": "ComfyUI_DiffusionModel_fp8_converter" + } + ], + "https://github.com/Shiba-2-shiba/ComfyUI_FreeU_V2_timestepadd": [ + [ + "FreeU_V2_timestepadd" + ], + { + "title_aux": "ComfyUI_FreeU_V2_timestepadd" + } + ], + "https://github.com/Shiba-2-shiba/comfyui-color-ascii-art-node": [ + [ + "ASCIIArtNodeV3" + ], + { + "title_aux": "ComfyUI-color-ascii-art-node" + } + ], + "https://github.com/Shibiko-AI/ShibikoAI-ComfyUI-Tools": [ + [ + "BboxInsertImage", + "BboxSplit", + "Cascade", + "ImageFilters", + "Luts", + "LutsAdvanced", + "RemoveAreaByMask", + "RemoveBackground", + "SeedGenerator", + "Waifu2x" + ], + { + "title_aux": "Shibiko AI ComfyUI Tools" + } + ], + "https://github.com/ShinChven/sc-comfy-nodes": [ + [ + "Rescale Node", + "Width & Height" + ], + { + "title_aux": "ShinChven's Custom Nodes Package" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Apply_Style_Model_Adjust": [ + [ + "ApplyStyleModelAdjust" + ], + { + "title_aux": "Apply Style Model Adjust for ComfyUI" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-AstralAnimator": [ + [ + "AstralAnimator" + ], + { + "title_aux": "ComfyUI-AstralAnimator" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Audio_Quality_Enhancer": [ + [ + "AudioQualityEffects", + "AudioQualityEnhancer" + ], + { + "title_aux": "ComfyUI-Audio_Quality_Enhancer" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-CohernetVideoSampler": [ + [ + "CohernetVideoSampler" + ], + { + "title_aux": "ComfyUI Coherent Video Sampler Node" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-DeepSeek_R1-Chat": [ + [ + "ComfyUIDeepSeekChat" + ], + { + "title_aux": "ComfyUI DeepSeek_R1 Chat Node" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-EmptyHunyuanLatent": [ + [ + "EmptyHunyuanLatentForImage", + "EmptyHunyuanLatentForVideo" + ], + { + "title_aux": "ComfyUI-EmptyHunyuanLatent" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-FramePackWrapper_Plus": [ + [ + "DownloadAndLoadFramePackModel", + "FramePackFindNearestBucket", + "FramePackLoraSelect", + "FramePackSampler", + "FramePackSampler_F1", + "FramePackTimestampedTextEncode", + "FramePackTorchCompileSettings", + "LoadFramePackModel" + ], + { + "title_aux": "ComfyUI-FramePackWrapper_Plus" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-FreeMemory": [ + [ + "FreeMemoryCLIP", + "FreeMemoryImage", + "FreeMemoryLatent", + "FreeMemoryModel", + "FreeMemoryString" + ], + { + "title_aux": "ComfyUI-FreeMemory" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-FreeVC_wrapper": [ + [ + "FreeVC Voice Conversion" + ], + { + "title_aux": "ComfyUI-FreeVC_wrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Gemini_Flash_2.0_Exp": [ + [ + "AudioRecorder", + "GeminiFlash" + ], + { + "title_aux": "ComfyUI-Gemini_Flash_2.0_Exp" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Gemini_TTS": [ + [ + "GeminiTTS" + ], + { + "title_aux": "ComfyUI-Gemini_TTS" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-HiggsAudio_Wrapper": [ + [ + "HiggsAudio", + "LoadHiggsAudioModel", + "LoadHiggsAudioPrompt", + "LoadHiggsAudioSystemPrompt", + "LoadHiggsAudioTokenizer" + ], + { + "title_aux": "ComfyUI-HiggsAudio_Wrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoSamplerSave": [ + [ + "EmptyVideoLatentForHunyuan", + "HunyuanVideoSamplerSave", + "ImageMotionInfluance", + "ResizeImageForHunyuan" + ], + { + "title_aux": "ComfyUI-HunyuanVideoSamplerSave" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-HunyuanVideoStyler": [ + [ + "HunyuanVideoStyler" + ], + { + "title_aux": "ComfyUI-HunyuanVideoStyler" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-ImageMotionGuider": [ + [ + "ImageMotionGuider" + ], + { + "title_aux": "ComfyUI-ImageMotionGuider" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Janus_pro_vision": [ + [ + "UnifiedVisionAnalyzer", + "VisionModelLoader" + ], + { + "title_aux": "ComfyUI Janus Pro Vision" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-JoyHallo_wrapper": [ + [ + "JoyHallo_wrapper" + ], + { + "title_aux": "ComfyUI-JoyHallo_wrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-LatentSyncWrapper": [ + [ + "LatentSyncNode", + "VideoLengthAdjuster" + ], + { + "title_aux": "ComfyUI-LatentSyncWrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-NanoBanano": [ + [ + "ComfyUI_NanoBanana" + ], + { + "title_aux": "ComfyUI-NanoBanano" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Orpheus-TTS": [ + [ + "OrpheusAudioEffects", + "OrpheusGenerate", + "OrpheusModelLoader" + ], + { + "title_aux": "ComfyUI-Orpheus-TTS" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-PS_Flatten_Image": [ + [ + "FlattenImage" + ], + { + "title_aux": "ComfyUI-PS_Flatten_Image" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-PixArt_XL": [ + [ + "PA_BaseModelLoader_fromhub", + "PA_Generation" + ], + { + "title_aux": "ComfyUI-PixArt_XL" + } + ], "https://github.com/ShmuelRonen/ComfyUI-SVDResizer": [ [ "SVDRsizer" @@ -3174,6 +12424,148 @@ "title_aux": "ComfyUI-SVDResizer" } ], + "https://github.com/ShmuelRonen/ComfyUI-ThinkSound_Wrapper": [ + [ + "ThinkSoundFeatureUtilsLoader", + "ThinkSoundModelLoader", + "ThinkSoundSampler" + ], + { + "title_aux": "ComfyUI-ThinkSound_Wrapper" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-Veo2-Experimental": [ + [ + "VeoTextToVideo", + "VeoToVHS", + "VeoVideoPreview" + ], + { + "title_aux": "ComfyUI-Veo2-Experimental" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-VideoUpscale_WithModel": [ + [ + "Free_Video_Memory", + "Video_Upscale_With_Model" + ], + { + "title_aux": "ComfyUI-VideoUpscale_WithModel" + } + ], + "https://github.com/ShmuelRonen/ComfyUI-WanVideoKsampler": [ + [ + "WanVideoKsampler" + ], + { + "title_aux": "ComfyUI-WanVideoKsampler" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_ChatterBox_Voice": [ + [ + "ChatterBoxVoiceCapture", + "ChatterBoxVoiceTTS", + "ChatterBoxVoiceVC" + ], + { + "title_aux": "ComfyUI_ChatterBox_Voice" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_Flux_1.1_RAW_API": [ + [ + "FluxPro11WithFinetune" + ], + { + "title_aux": "ComfyUI Flux 1.1 Ultra & Raw Node" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_Gemini_Flash": [ + [ + "Gemini_Flash_002" + ], + { + "title_aux": "ComfyUI_Gemini_Flash" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_Hedra": [ + [ + "HedraImageToVideo" + ], + { + "title_aux": "ComfyUI Hedra Node" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_pixtral_large": [ + [ + "ComfyUIPixtralLarge", + "MultiImagesInput", + "preview_text" + ], + { + "title_aux": "ComfyUI Pixtral Large Extension" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_pixtral_vision": [ + [ + "ComfyUIPixtralVision", + "MultiImagesInput", + "preview_text" + ], + { + "title_aux": "ComfyUI_pixtral_vision" + } + ], + "https://github.com/ShmuelRonen/ComfyUI_wav2lip": [ + [ + "LoadAudio", + "Wav2Lip" + ], + { + "title_aux": "Wav2Lip Node for ComfyUI" + } + ], + "https://github.com/ShmuelRonen/DJ_VideoAudioMixer": [ + [ + "DJ_VideoAudioMixer" + ], + { + "title_aux": "DJ_VideoAudioMixer" + } + ], + "https://github.com/ShmuelRonen/FluxKontextCreator": [ + [ + "FluxKontextCreator", + "FluxKontextCreatorExperimental" + ], + { + "title_aux": "Flux Kontext Creator for ComfyUI" + } + ], + "https://github.com/ShmuelRonen/comfyui-openai_fm": [ + [ + "OpenAIFMNode" + ], + { + "title_aux": "comfyui-openai_fm" + } + ], + "https://github.com/ShmuelRonen/google_moogle": [ + [ + "googletrans" + ], + { + "title_aux": "Google Moogle" + } + ], + "https://github.com/ShmuelRonen/multi-lora-stack": [ + [ + "MultiLoRAStack", + "MultiLoRAStackModelOnly" + ], + { + "title_aux": "multi-lora-stack" + } + ], "https://github.com/Shraknard/ComfyUI-Remover": [ [ "Remover" @@ -3184,9 +12576,11 @@ ], "https://github.com/Siberpone/lazy-pony-prompter": [ [ + "LPP_Danbooru", "LPP_Deleter", "LPP_Derpibooru", "LPP_E621", + "LPP_Loader_Danbooru", "LPP_Loader_Derpibooru", "LPP_Loader_E621", "LPP_Saver" @@ -3195,12 +12589,194 @@ "title_aux": "Lazy Pony Prompter" } ], - "https://github.com/Smuzzies/comfyui_chatbox_overlay/raw/main/chatbox_overlay.py": [ + "https://github.com/Siempreflaco/ComfyUI-NCNodes": [ [ - "Chatbox Overlay" + "Load3DMesh", + "NCAudioRecorderNode", + "NCImageProcessor", + "NCIncrementINT", + "NCLineCounter" ], { - "title_aux": "Chatbox Overlay node for ComfyUI" + "title_aux": "ComfyUI-NCNodes" + } + ], + "https://github.com/Sieyalixnet/ComfyUI_Textarea_Loaders": [ + [ + "CheckPointLoader_Text", + "EmptyLatentImage_Text", + "LoRALoader_Text", + "LoadImage_Text" + ], + { + "title_aux": "ComfyUI_Textarea_Loaders" + } + ], + "https://github.com/SignalCha1n/comfyui-ComfySnap": [ + [ + "FaceAvoidRandomY", + "LowQualityDigitalLook", + "SnapBasicFilters", + "SnapTextOverlay" + ], + { + "title_aux": "Snap Style Nodes for ComfyUI" + } + ], + "https://github.com/SijieMei/ComfyUI-promptHistory": [ + [ + "PromptHistory" + ], + { + "title_aux": "ComfyUI-Prompt-History" + } + ], + "https://github.com/SilverAndJade/comfyui-silver-nodes": [ + [ + "SilverFileTextLoader", + "SilverFlickrRandomImage", + "SilverFolderFilePathLoader", + "SilverFolderImageLoader", + "SilverFolderVideoLoader", + "SilverLoraModelLoader", + "SilverRandomFromList", + "SilverStringReplacer", + "SilverUrlImageLoader", + "SilverWebImageLoader" + ], + { + "title_aux": "ComfyUI Silver Nodes" + } + ], + "https://github.com/Simlym/comfyui-prompt-helper": [ + [ + "PromptProcessor" + ], + { + "title_aux": "ComfyUI Prompt Helper" + } + ], + "https://github.com/SimonHeese/ComfyUI_AnimationNodes/raw/refs/heads/main/animated_offset_pad.py": [ + [ + "AnimatedOffsetPadding" + ], + { + "title_aux": "ComfyUI_AnimationNodes" + } + ], + "https://github.com/Sinphaltimus/comfyui_fedcoms_node_pack": [ + [ + "EnhancedModelMetadataReader", + "ModelDataExtractor", + "ModelMetadataReader" + ], + { + "title_aux": "comfyui_fedcoms_node_pack" + } + ], + "https://github.com/SipherAGI/comfyui-animatediff": [ + [ + "AnimateDiffCombine", + "AnimateDiffLoraLoader", + "AnimateDiffModuleLoader", + "AnimateDiffSampler", + "AnimateDiffSlidingWindowOptions", + "ImageSizeAndBatchSize", + "LoadVideo" + ], + { + "title_aux": "AnimateDiff" + } + ], + "https://github.com/SlackinJack/asyncdiff_comfyui": [ + [ + "ADADSampler", + "ADControlNetLoader", + "ADIPAdapterLoader", + "ADLoraLoader", + "ADModelLoader", + "ADMultiLoraCombiner", + "ADPipelineConfig", + "ADSDSampler", + "ADSDUpscaleSampler", + "ADSVDSampler", + "ADSchedulerSelector" + ], + { + "title_aux": "asyncdiff_comfyui" + } + ], + "https://github.com/SlackinJack/distrifuser_comfyui": [ + [ + "DFPipelineConfig", + "DFSampler" + ], + { + "title_aux": "distrifuser_comfyui" + } + ], + "https://github.com/SleeeepyZhou/ComfyUI-CNtranslator": [ + [ + "CNtranslator", + "TextShow" + ], + { + "title_aux": "CNtranslator" + } + ], + "https://github.com/Slickytail/ComfyUI-InstantX-IPAdapter-SD3": [ + [ + "ApplyIPAdapterSD3", + "IPAdapterSD3Loader" + ], + { + "title_aux": "ComfyUI-InstantX-IPAdapter-SD3" + } + ], + "https://github.com/Slickytail/ComfyUI-RegionalAdaptiveSampling": [ + [ + "RegionalAdaptiveSampling" + ], + { + "title_aux": "ComfyUI-RegionalAdaptiveSampling" + } + ], + "https://github.com/Smirnov75/ComfyUI-mxToolkit": [ + [ + "mxSeed", + "mxSlider", + "mxSlider2D", + "mxStop" + ], + { + "title_aux": "ComfyUI-mxToolkit" + } + ], + "https://github.com/Smuzzies/comfyui_meme_maker": [ + [ + "MemeMaker" + ], + { + "title_aux": "comfyui_meme_maker" + } + ], + "https://github.com/SoftMeng/ComfyUI-DeepCache-Fix": [ + [ + "DeepCache_Fix" + ], + { + "title_aux": "ComfyUI-DeepCache-Fix" + } + ], + "https://github.com/SoftMeng/ComfyUI-PIL": [ + [ + "PIL Effects (Mexx)", + "PIL Merge Image (Mexx)", + "PIL Remove Black Dots (Mexx)", + "PIL TITLE (Mexx)" + ], + { + "title_aux": "ComfyUI-PIL" } ], "https://github.com/SoftMeng/ComfyUI_ImageToText": [ @@ -3228,6 +12804,14 @@ "title_aux": "ComfyUI_Mexx_Styler" } ], + "https://github.com/SongGuo11/ComfyUI-SaveAnything-SG11": [ + [ + "SG11_SaveAnything" + ], + { + "title_aux": "ComfyUI SaveAnything Node (SG11)" + } + ], "https://github.com/Sorcerio/MBM-Music-Visualizer": [ [ "id", @@ -3244,22 +12828,154 @@ "title_aux": "MBM's Music Visualizer" } ], - "https://github.com/SpaceKendo/ComfyUI-svd_txt2vid": [ + "https://github.com/SozeInc/ComfyUI-Mobile": [ [ - "SVD_txt2vid_ConditioningwithLatent" + "Mobile_Settings_Launcher_Data", + "Send Notification (Mobile)", + "Settings Launcher (Mobile)", + "Ultimate Concat (Mobile)" ], { - "title_aux": "Text to video for Stable Video Diffusion in ComfyUI" + "title_aux": "ComfyUI-Mobile" + } + ], + "https://github.com/SozeInc/ComfyUI_Soze": [ + [ + "Alpha Crop and Position Image", + "CSV Reader", + "CSV Reader X Checkpoint", + "CSV Reader X Lora", + "CSV Writer", + "Checkpoint File Loader", + "ComfyDeploy API Boolean Parameters", + "ComfyDeploy API Float Parameters", + "ComfyDeploy API Image Parameters", + "ComfyDeploy API Int Parameters", + "ComfyDeploy API Mixed Parameters", + "ComfyDeploy API Node", + "ComfyDeploy API String Parameters", + "ElevenLabs Voice Retriever", + "Empty Images", + "Get Most Common Image Colors", + "Image Batch Process Switch", + "Image List Loader", + "Image Overlay", + "Is Input In List", + "Is String Empty", + "Load Image", + "Load Image From URL", + "Load Images From Folder", + "Lora File Loader", + "Multiline Concatenate Strings", + "Output Filename", + "Pad Mask", + "Prompt Cache", + "Range(Num Steps) - Float", + "Range(Num Steps) - Int", + "Range(Step) - Float", + "Range(Step) - Int", + "Shrink Image", + "Special Character Replacer", + "Text Contains (Return Bool)", + "Text Contains (Return String)", + "Variable Image Builder", + "XY Any", + "XY Image" + ], + { + "title_aux": "Quality of Life Nodes for ComfyUI" + } + ], + "https://github.com/SparknightLLC/ComfyUI-ConditionalInterrupt": [ + [ + "Conditional Interrupt" + ], + { + "title_aux": "ComfyUI-ConditionalInterrupt" + } + ], + "https://github.com/SparknightLLC/ComfyUI-GPENO": [ + [ + "GPENO Face Restoration" + ], + { + "author": "yangxy (yangtao9009@gmail.com)", + "title_aux": "ComfyUI-GPENO" + } + ], + "https://github.com/SparknightLLC/ComfyUI-ImageAutosize": [ + [ + "ImageAutosize" + ], + { + "title_aux": "ComfyUI-ImageAutosize" + } + ], + "https://github.com/SparknightLLC/ComfyUI-ImageAutotone": [ + [ + "ImageAutotone" + ], + { + "title_aux": "ComfyUI-ImageAutotone" + } + ], + "https://github.com/SparknightLLC/ComfyUI-LatentClamp": [ + [ + "LatentClamp" + ], + { + "title_aux": "ComfyUI-LatentClamp" + } + ], + "https://github.com/SparknightLLC/ComfyUI-MaskArbiter": [ + [ + "GroundingDinoSAM2SegmentList", + "MaskArbiter" + ], + { + "title_aux": "ComfyUI-MaskArbiter" + } + ], + "https://github.com/SparknightLLC/ComfyUI-WeightedRandomChoice": [ + [ + "WeightedRandomChoice" + ], + { + "title_aux": "ComfyUI-WeightedRandomChoice" + } + ], + "https://github.com/SpenserCai/ComfyUI-FunAudioLLM": [ + [ + "CosyVoiceCrossLingualNode", + "CosyVoiceInstructNode", + "CosyVoiceLoadSpeakerModelFromUrlNode", + "CosyVoiceLoadSpeakerModelNode", + "CosyVoiceSFTNode", + "CosyVoiceSaveSpeakerModelNode", + "CosyVoiceZeroShotNode", + "SenseVoiceNode" + ], + { + "title_aux": "ComfyUI-FunAudioLLM" } ], "https://github.com/Stability-AI/ComfyUI-SAI_API": [ [ + "Stability Conservative Upscale", + "Stability Control Sketch", + "Stability Control Structure", + "Stability Control Style", "Stability Creative Upscale", + "Stability Erase", + "Stability Fast Upscale", "Stability Image Core", + "Stability Image Ultra", "Stability Inpainting", "Stability Outpainting", "Stability Remove Background", + "Stability Replace Background and Relight", "Stability SD3", + "Stability Search And Recolor", "Stability Search and Replace" ], { @@ -3276,6 +12992,396 @@ "title_aux": "stability-ComfyUI-nodes" } ], + "https://github.com/StableLlama/ComfyUI-basic_data_handling": [ + [ + "Basic data handling: Boolean And", + "Basic data handling: Boolean Nand", + "Basic data handling: Boolean Nor", + "Basic data handling: Boolean Not", + "Basic data handling: Boolean Or", + "Basic data handling: Boolean Xor", + "Basic data handling: CastToBoolean", + "Basic data handling: CastToDict", + "Basic data handling: CastToFloat", + "Basic data handling: CastToInt", + "Basic data handling: CastToList", + "Basic data handling: CastToSet", + "Basic data handling: CastToString", + "Basic data handling: CompareLength", + "Basic data handling: ContinueFlow", + "Basic data handling: DataListAll", + "Basic data handling: DataListAny", + "Basic data handling: DataListAppend", + "Basic data handling: DataListContains", + "Basic data handling: DataListCount", + "Basic data handling: DataListCreate", + "Basic data handling: DataListCreateFromBoolean", + "Basic data handling: DataListCreateFromFloat", + "Basic data handling: DataListCreateFromInt", + "Basic data handling: DataListCreateFromString", + "Basic data handling: DataListEnumerate", + "Basic data handling: DataListExtend", + "Basic data handling: DataListFilter", + "Basic data handling: DataListFilterSelect", + "Basic data handling: DataListFirst", + "Basic data handling: DataListGetItem", + "Basic data handling: DataListIndex", + "Basic data handling: DataListInsert", + "Basic data handling: DataListLast", + "Basic data handling: DataListLength", + "Basic data handling: DataListMax", + "Basic data handling: DataListMin", + "Basic data handling: DataListPop", + "Basic data handling: DataListPopRandom", + "Basic data handling: DataListRange", + "Basic data handling: DataListRemove", + "Basic data handling: DataListReverse", + "Basic data handling: DataListSetItem", + "Basic data handling: DataListSlice", + "Basic data handling: DataListSort", + "Basic data handling: DataListSum", + "Basic data handling: DataListToList", + "Basic data handling: DataListToSet", + "Basic data handling: DataListZip", + "Basic data handling: DictCompare", + "Basic data handling: DictContainsKey", + "Basic data handling: DictCreate", + "Basic data handling: DictCreateFromBoolean", + "Basic data handling: DictCreateFromFloat", + "Basic data handling: DictCreateFromInt", + "Basic data handling: DictCreateFromItemsDataList", + "Basic data handling: DictCreateFromItemsList", + "Basic data handling: DictCreateFromLists", + "Basic data handling: DictCreateFromString", + "Basic data handling: DictExcludeKeys", + "Basic data handling: DictFilterByKeys", + "Basic data handling: DictFromKeys", + "Basic data handling: DictGet", + "Basic data handling: DictGetKeysValues", + "Basic data handling: DictGetMultiple", + "Basic data handling: DictInvert", + "Basic data handling: DictItems", + "Basic data handling: DictKeys", + "Basic data handling: DictLength", + "Basic data handling: DictMerge", + "Basic data handling: DictPop", + "Basic data handling: DictPopItem", + "Basic data handling: DictPopRandom", + "Basic data handling: DictRemove", + "Basic data handling: DictSet", + "Basic data handling: DictSetDefault", + "Basic data handling: DictUpdate", + "Basic data handling: DictValues", + "Basic data handling: Equal", + "Basic data handling: ExecutionOrder", + "Basic data handling: FloatAdd", + "Basic data handling: FloatAsIntegerRatio", + "Basic data handling: FloatCreate", + "Basic data handling: FloatDivide", + "Basic data handling: FloatDivideSafe", + "Basic data handling: FloatFromHex", + "Basic data handling: FloatHex", + "Basic data handling: FloatIsInteger", + "Basic data handling: FloatMultiply", + "Basic data handling: FloatPower", + "Basic data handling: FloatRound", + "Basic data handling: FloatSubtract", + "Basic data handling: FlowSelect", + "Basic data handling: ForceCalculation", + "Basic data handling: GreaterThan", + "Basic data handling: GreaterThanOrEqual", + "Basic data handling: IfElifElse", + "Basic data handling: IfElse", + "Basic data handling: IntAdd", + "Basic data handling: IntBitCount", + "Basic data handling: IntBitLength", + "Basic data handling: IntCreate", + "Basic data handling: IntCreateWithBase", + "Basic data handling: IntDivide", + "Basic data handling: IntDivideSafe", + "Basic data handling: IntFromBytes", + "Basic data handling: IntModulus", + "Basic data handling: IntMultiply", + "Basic data handling: IntPower", + "Basic data handling: IntSubtract", + "Basic data handling: IntToBytes", + "Basic data handling: IsNull", + "Basic data handling: LessThan", + "Basic data handling: LessThanOrEqual", + "Basic data handling: ListAll", + "Basic data handling: ListAny", + "Basic data handling: ListAppend", + "Basic data handling: ListContains", + "Basic data handling: ListCount", + "Basic data handling: ListCreate", + "Basic data handling: ListCreateFromBoolean", + "Basic data handling: ListCreateFromFloat", + "Basic data handling: ListCreateFromInt", + "Basic data handling: ListCreateFromString", + "Basic data handling: ListEnumerate", + "Basic data handling: ListExtend", + "Basic data handling: ListFirst", + "Basic data handling: ListGetItem", + "Basic data handling: ListIndex", + "Basic data handling: ListInsert", + "Basic data handling: ListLast", + "Basic data handling: ListLength", + "Basic data handling: ListMax", + "Basic data handling: ListMin", + "Basic data handling: ListPop", + "Basic data handling: ListPopRandom", + "Basic data handling: ListRange", + "Basic data handling: ListRemove", + "Basic data handling: ListReverse", + "Basic data handling: ListSetItem", + "Basic data handling: ListSlice", + "Basic data handling: ListSort", + "Basic data handling: ListSum", + "Basic data handling: ListToDataList", + "Basic data handling: ListToSet", + "Basic data handling: MathAbs", + "Basic data handling: MathAcos", + "Basic data handling: MathAsin", + "Basic data handling: MathAtan", + "Basic data handling: MathAtan2", + "Basic data handling: MathCeil", + "Basic data handling: MathCos", + "Basic data handling: MathDegrees", + "Basic data handling: MathE", + "Basic data handling: MathExp", + "Basic data handling: MathFloor", + "Basic data handling: MathFormula", + "Basic data handling: MathLog", + "Basic data handling: MathLog10", + "Basic data handling: MathMax", + "Basic data handling: MathMin", + "Basic data handling: MathPi", + "Basic data handling: MathRadians", + "Basic data handling: MathSin", + "Basic data handling: MathSqrt", + "Basic data handling: MathTan", + "Basic data handling: NotEqual", + "Basic data handling: NumberInRange", + "Basic data handling: PathAbspath", + "Basic data handling: PathBasename", + "Basic data handling: PathCommonPrefix", + "Basic data handling: PathDirname", + "Basic data handling: PathExists", + "Basic data handling: PathExpandVars", + "Basic data handling: PathGetCwd", + "Basic data handling: PathGetExtension", + "Basic data handling: PathGetSize", + "Basic data handling: PathGlob", + "Basic data handling: PathIsAbsolute", + "Basic data handling: PathIsDir", + "Basic data handling: PathIsFile", + "Basic data handling: PathJoin", + "Basic data handling: PathListDir", + "Basic data handling: PathLoadImageRGB", + "Basic data handling: PathLoadImageRGBA", + "Basic data handling: PathLoadMaskFromAlpha", + "Basic data handling: PathLoadMaskFromGreyscale", + "Basic data handling: PathLoadStringFile", + "Basic data handling: PathNormalize", + "Basic data handling: PathRelative", + "Basic data handling: PathSaveImageRGB", + "Basic data handling: PathSaveImageRGBA", + "Basic data handling: PathSaveStringFile", + "Basic data handling: PathSetExtension", + "Basic data handling: PathSplit", + "Basic data handling: PathSplitExt", + "Basic data handling: RegexFindallDataList", + "Basic data handling: RegexFindallList", + "Basic data handling: RegexGroupDict", + "Basic data handling: RegexSearchGroupsDataList", + "Basic data handling: RegexSearchGroupsList", + "Basic data handling: RegexSplitDataList", + "Basic data handling: RegexSplitList", + "Basic data handling: RegexSub", + "Basic data handling: RegexTest", + "Basic data handling: SetAdd", + "Basic data handling: SetAll", + "Basic data handling: SetAny", + "Basic data handling: SetContains", + "Basic data handling: SetCreate", + "Basic data handling: SetCreateFromBoolean", + "Basic data handling: SetCreateFromFloat", + "Basic data handling: SetCreateFromInt", + "Basic data handling: SetCreateFromString", + "Basic data handling: SetDifference", + "Basic data handling: SetDiscard", + "Basic data handling: SetEnumerate", + "Basic data handling: SetIntersection", + "Basic data handling: SetIsDisjoint", + "Basic data handling: SetIsSubset", + "Basic data handling: SetIsSuperset", + "Basic data handling: SetLength", + "Basic data handling: SetPop", + "Basic data handling: SetPopRandom", + "Basic data handling: SetRemove", + "Basic data handling: SetSum", + "Basic data handling: SetSymmetricDifference", + "Basic data handling: SetToDataList", + "Basic data handling: SetToList", + "Basic data handling: SetUnion", + "Basic data handling: StringCapitalize", + "Basic data handling: StringCasefold", + "Basic data handling: StringCenter", + "Basic data handling: StringComparison", + "Basic data handling: StringConcat", + "Basic data handling: StringCount", + "Basic data handling: StringDataListJoin", + "Basic data handling: StringDecode", + "Basic data handling: StringEncode", + "Basic data handling: StringEndswith", + "Basic data handling: StringEscape", + "Basic data handling: StringExpandtabs", + "Basic data handling: StringFind", + "Basic data handling: StringFormatMap", + "Basic data handling: StringIn", + "Basic data handling: StringIsAlnum", + "Basic data handling: StringIsAlpha", + "Basic data handling: StringIsAscii", + "Basic data handling: StringIsDecimal", + "Basic data handling: StringIsDigit", + "Basic data handling: StringIsIdentifier", + "Basic data handling: StringIsLower", + "Basic data handling: StringIsNumeric", + "Basic data handling: StringIsPrintable", + "Basic data handling: StringIsSpace", + "Basic data handling: StringIsTitle", + "Basic data handling: StringIsUpper", + "Basic data handling: StringLength", + "Basic data handling: StringListJoin", + "Basic data handling: StringLjust", + "Basic data handling: StringLower", + "Basic data handling: StringLstrip", + "Basic data handling: StringRemoveprefix", + "Basic data handling: StringRemovesuffix", + "Basic data handling: StringReplace", + "Basic data handling: StringRfind", + "Basic data handling: StringRjust", + "Basic data handling: StringRsplitDataList", + "Basic data handling: StringRsplitList", + "Basic data handling: StringRstrip", + "Basic data handling: StringSplitDataList", + "Basic data handling: StringSplitList", + "Basic data handling: StringSplitlinesDataList", + "Basic data handling: StringSplitlinesList", + "Basic data handling: StringStartswith", + "Basic data handling: StringStrip", + "Basic data handling: StringSwapcase", + "Basic data handling: StringTitle", + "Basic data handling: StringUnescape", + "Basic data handling: StringUpper", + "Basic data handling: StringZfill", + "Basic data handling: SwitchCase", + "Basic data handling: TimeAddDelta", + "Basic data handling: TimeDelta", + "Basic data handling: TimeDifference", + "Basic data handling: TimeExtract", + "Basic data handling: TimeFormat", + "Basic data handling: TimeNow", + "Basic data handling: TimeParse", + "Basic data handling: TimeSubtractDelta", + "Basic data handling: TimeToUnix", + "Basic data handling: UnixToTime" + ], + { + "title_aux": "Basic data handling" + } + ], + "https://github.com/StarAsh042/ComfyUI_RollingArtist": [ + [ + "RollingArtist" + ], + { + "title_aux": "ComfyUI_RollingArtist" + } + ], + "https://github.com/StarMagicAI/comfyui_tagger": [ + [ + "DownloadAndLoadFlorence2Lora_jsonL", + "DownloadAndLoadFlorence2Model_jsonL", + "Florence2ModelLoader_jsonL", + "Florence2Run_jsonL", + "batch_text_save_jsonL" + ], + { + "title_aux": "ComfyUI-tagger" + } + ], + "https://github.com/Starnodes2024/ComfyUI_StarBetaNodes": [ + [ + "StarApplyOverlayDepth", + "StarOllamaSysprompterJC", + "StarQwenEditEncoder", + "StarQwenImageEditInputs", + "StarQwenImageRatio", + "StarQwenWanRatio", + "StarSaveFolderString" + ], + { + "title_aux": "ComfyUI_StarBetaNodes" + } + ], + "https://github.com/Starnodes2024/ComfyUI_StarNodes": [ + [ + "AdaptiveDetailEnhancement", + "DetailStarDaemon", + "FluxFillSampler", + "FluxStartSettings", + "Fluxstarsampler", + "OllamaModelChooser", + "SD35StartSettings", + "SDXLStartSettings", + "SDstarsampler", + "Star Face Loader", + "Star3LoRAs", + "StarConditioningLoader", + "StarConditioningSaver", + "StarDeleteSamplerSettings", + "StarDenoiseSlider", + "StarDivisibleDimension", + "StarEasyTextStorage", + "StarFiveWildcards", + "StarFrameFromVideo", + "StarGridCaptionsBatcher", + "StarGridComposer", + "StarGridImageBatcher", + "StarIconExporter", + "StarImageLoader1by1", + "StarImageSwitch", + "StarImageSwitch2", + "StarInfiniteYouAdvancedPatchMaker", + "StarInfiniteYouApply", + "StarInfiniteYouFaceSwapMod", + "StarInfiniteYouPatch", + "StarInfiniteYouPatchCombine", + "StarInfiniteYouSaver", + "StarLatentSwitch", + "StarLoadSamplerSettings", + "StarNewsScraper", + "StarPSDSaver", + "StarPSDSaver2", + "StarPaletteExtractor", + "StarRandomImageLoader", + "StarSavePanoramaJPEG", + "StarSaveSamplerSettings", + "StarTextFilter", + "StarTextInput", + "StarWildcardsAdvanced", + "Star_Image2Latent", + "Star_Show_Last_Frame", + "Starnodes_Aspect_Ratio", + "Starnodes_Aspect_Ratio_Advanced", + "Starnodes_Aspect_Video_Ratio", + "Starupscale" + ], + { + "title_aux": "ComfyUI_StarNodes" + } + ], "https://github.com/StartHua/ComfyUI_OOTDiffusion_CXH": [ [ "Ood_CXH" @@ -3284,6 +13390,14 @@ "title_aux": "ComfyUI_OOTDiffusion_CXH" } ], + "https://github.com/StartHua/ComfyUI_PCDMs": [ + [ + "PCDMS_CXH" + ], + { + "title_aux": "ComfyUI_PCDMs" + } + ], "https://github.com/StartHua/ComfyUI_Seg_VITON": [ [ "segformer_agnostic", @@ -3295,6 +13409,44 @@ "title_aux": "ComfyUI_Seg_VITON" } ], + "https://github.com/StartHua/Comfyui_CXH_DeepLX": [ + [ + "CXH_DeepLX_Free", + "CXH_DeepLX_translate" + ], + { + "title_aux": "Comfyui_CXH_DeepLX" + } + ], + "https://github.com/StartHua/Comfyui_CXH_FluxLoraMerge": [ + [ + "CXH_Lora_Merge" + ], + { + "title_aux": "Comfyui_CXH_FluxLoraMerge" + } + ], + "https://github.com/StartHua/Comfyui_CXH_Phi_3.5": [ + [ + "CXH_Phi_Run", + "CXH_Phi_chat_load", + "CXH_Phi_chat_min", + "CXH_Phi_load" + ], + { + "title_aux": "Comfyui_CXH_Phi_3.5" + } + ], + "https://github.com/StartHua/Comfyui_Gemini2": [ + [ + "CXH_Gemini2_TX", + "CXH_Gemini2_Vision", + "CXH_Local_Prompt" + ], + { + "title_aux": "Comfyui_Gemini2" + } + ], "https://github.com/StartHua/Comfyui_joytag": [ [ "CXH_JoyTag" @@ -3305,24 +13457,64 @@ ], "https://github.com/StartHua/Comfyui_segformer_b2_clothes": [ [ - "segformer_b2_clothes" + "segformer_b2_clothes", + "segformer_b3_fashion" ], { "title_aux": "comfyui_segformer_b2_clothes" } ], + "https://github.com/Steudio/ComfyUI_Steudio": [ + [ + "Combine Tiles", + "Display UI", + "Divide Image and Select Tile", + "Divide and Conquer Algorithm", + "Load Images into List", + "Ratio Calculator", + "Ratio to Size", + "Seed Shifter", + "Sequence Generator", + "Simple Config" + ], + { + "title_aux": "ComfyUI Steudio" + } + ], + "https://github.com/Style-Mosaic/dino-x-comfyui-node": [ + [ + "DinoxDetector" + ], + { + "title_aux": "ComfyUI DINO-X Detector Node" + } + ], "https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts": [ [ - "Cross Fade Image Batches (SuperBeasts.AI)", - "Deflicker (SuperBeasts.AI)", + "Deflicker - Experimental (SuperBeasts.AI)", "HDR Effects (SuperBeasts.AI)", + "Image Batch Manager (SuperBeasts.AI)", "Make Resized Mask Batch (SuperBeasts.AI)", - "Pixel Deflicker (SuperBeasts.AI)" + "Mask Batch Manager (SuperBeasts.AI)", + "Pixel Deflicker - Experimental (SuperBeasts.AI)", + "SB Load Model (SuperBeasts.AI)", + "String List Manager (SuperBeasts.AI)", + "Super Pop Color Adjustment (SuperBeasts.AI)", + "Super Pop Residual Blend (SuperBeasts.AI)" ], { "title_aux": "ComfyUI-SuperBeasts" } ], + "https://github.com/SuperMasterBlasterLaser/ComfyUI_YOLO_Classifiers": [ + [ + "YOLO Classifier Model Loader", + "YOLO Classify" + ], + { + "title_aux": "ComfyUI_YOLO_Classifiers" + } + ], "https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes": [ [ "CR 8 Channel In", @@ -3544,31 +13736,69 @@ ], "https://github.com/Sxela/ComfyWarp": [ [ + "ApplyMask", + "ApplyMaskConditional", + "ApplyMaskLatent", + "ApplyMaskLatentConditional", + "ExtractFlowAndMixConsistencyMaps", "ExtractOpticalFlow", + "FixedQueue", + "KeyframedFlowApplication", "LoadFrame", "LoadFrameFromDataset", "LoadFrameFromFolder", "LoadFramePairFromDataset", "LoadFrameSequence", "MakeFrameDataset", + "MakePaths", "MixConsistencyMaps", "OffsetNumber", + "RenderVideo", "ResizeToFit", "SaveFrame", + "SchedulerFloat", + "SchedulerInt", + "SchedulerString", "WarpFrame" ], { "title_aux": "ComfyWarp" } ], - "https://github.com/TGu-97/ComfyUI-TGu-utils": [ + "https://github.com/SykkoAtHome/ComfyUI_FaceProcessor": [ [ - "MPNReroute", - "MPNSwitch", - "PNSwitch" + "FaceFitAndRestore", + "FaceTracker", + "FaceWrapper", + "HighPassFilter", + "ImageFeeder" ], { - "title_aux": "TGu Utilities" + "title_aux": "Face Processor for ComfyUI" + } + ], + "https://github.com/T-Ph525/ComfyUI-Underage-Filter": [ + [ + "AgeCheckerNode", + "MultiTypeGateNode", + "UnderageFilterNode" + ], + { + "title_aux": "Underage Filter" + } + ], + "https://github.com/TFL-TFL/ComfyUI_Text_Translation": [ + [ + "Get_Translator", + "Text", + "Text_Concatenate", + "Text_Switch", + "Text_Translation", + "Text_Translation_V2", + "Text_Translation_V2_Full" + ], + { + "title_aux": "ComfyUI_Text_Translation" } ], "https://github.com/THtianhao/ComfyUI-FaceChain": [ @@ -3624,9 +13854,40 @@ "title_aux": "comfyUI_TJ_NormalLighting" } ], + "https://github.com/TKRLAB/ComfyUI_Prompt_List_JSON": [ + [ + "ComfyUI_Prompt_JSON" + ], + { + "author": "TKRLAB", + "description": "ComfyUI JSON-based prompt management tool.", + "title": "ComfyUI_Prompt_List_JSON", + "title_aux": "Prompt List JSON" + } + ], + "https://github.com/TMElyralab/Comfyui-MusePose": [ + [ + "filenamestring", + "musepose", + "museposealign" + ], + { + "title_aux": "Comfyui-MusePose" + } + ], + "https://github.com/TRI3D-LC/ComfyUI-MiroBoard": [ + [ + "add-image-miro-board" + ], + { + "title_aux": "ComfyUI-MiroBoard" + } + ], "https://github.com/TRI3D-LC/tri3d-comfyui-nodes": [ [ + "TRI3D_CutByMaskAspectRatio", "get_histogram_limits", + "main_light_layer", "main_scaled_paste", "simple_rescale_histogram", "tri3d-HistogramEqualization", @@ -3635,14 +13896,22 @@ "tri3d-adjust-neck", "tri3d-atr-parse", "tri3d-atr-parse-batch", + "tri3d-bgremove-mega", + "tri3d-clean_mask", + "tri3d-clear-memory", "tri3d-clipdrop-bgremove-api", + "tri3d-clipdrop-bgreplace-api", "tri3d-composite-image-splitter", "tri3d-dwpose", "tri3d-extract-hand", + "tri3d-extract-masks-batch", "tri3d-extract-parts-batch", "tri3d-extract-parts-batch2", "tri3d-extract-parts-mask-batch", + "tri3d-extract-pascal-parts-batch", + "tri3d-extract_pose_part", "tri3d-face-recognise", + "tri3d-flexible_color_extract", "tri3d-float-to-image", "tri3d-fuzzification", "tri3d-get_histogram_limits", @@ -3651,30 +13920,198 @@ "tri3d-image-mask-2-box", "tri3d-image-mask-box-2-image", "tri3d-interaction-canny", + "tri3d-levindabhi-cloth-seg", "tri3d-load-pose-json", + "tri3d-load_AEMatter_Model", "tri3d-luminosity-match", "tri3d-main_transparent_background", + "tri3d-photoroom-bgremove-api", "tri3d-pose-adaption", "tri3d-pose-to-image", "tri3d-position-hands", "tri3d-position-parts-batch", + "tri3d-position-pascal-parts-batch", "tri3d-recolor-mask", "tri3d-recolor-mask-LAB_space", "tri3d-recolor-mask-LAB_space_manual", "tri3d-recolor-mask-RGB_space", "tri3d-renormalize_array", + "tri3d-run_AEMatter_inference", "tri3d-scaled-paste", + "tri3d-scaled-paste_unsafe", "tri3d-simple_bg_swap", "tri3d-simple_rescale_histogram", "tri3d-skin-feathered-padded-mask", - "tri3d-swap-pixels" + "tri3d-swap-pixels", + "tri3d_CutByMaskAspectRatio", + "tri3d_H_Stack_Images", + "tri3d_Image_extend", + "tri3d_MaskAreaPercentage", + "tri3d_NSFWFilter", + "tri3d_NarrowfyImage", + "tri3d_Remove_Small_Mask_Islands", + "tri3d_SaveFlattenedPoseKpsAsJsonFile", + "tri3d_SaveImage_absolute", + "tri3d_SaveText_absolute", + "tri3d_Skip_HeadMask", + "tri3d_Skip_HeadMask_AddNeck", + "tri3d_Skip_LipMask", + "tri3d_SmartBox", + "tri3d_Smart_Depth", + "tri3d_StringContains", + "tri3d_Wait_And_Read_File", + "tri3d_extract_facer_mask", + "tri3d_fill_mask", + "tri3d_is_only_trouser", + "tri3d_position_pose_part" ], { "title_aux": "tri3d-comfyui-nodes" } ], + "https://github.com/TTPlanetPig/Comfyui_Hunyuan3D": [ + [ + "GifImageViewerNode", + "Hunyuan3DNode", + "SquareImage" + ], + { + "title_aux": "Comfyui_Hunyuan3D" + } + ], + "https://github.com/TTPlanetPig/Comfyui_JC2": [ + [ + "ExtraOptionsNode", + "ExtraOptionsNode_Beta", + "JoyCaption2", + "JoyCaption2_simple", + "JoyCaptionBetaOne_Full", + "JoyCaptionBetaOne_Simple" + ], + { + "title_aux": "Comfyui_JC2" + } + ], + "https://github.com/TTPlanetPig/Comfyui_Object_Detect_QWen_VL": [ + [ + "BBoxesToSAM2", + "DownloadAndLoadQwenModel", + "QwenVLDetection" + ], + { + "title_aux": "ComfyUI Qwen2.5-VL Object Detection Node" + } + ], + "https://github.com/TTPlanetPig/Comfyui_Object_Migration": [ + [ + "TTP_Expand_And_Mask", + "TTP_text_mix" + ], + { + "title_aux": "Clothing Migration Kit" + } + ], + "https://github.com/TTPlanetPig/Comfyui_TTP_CN_Preprocessor": [ + [ + "TTPlanet_Tile_Preprocessor_GF", + "TTPlanet_Tile_Preprocessor_Simple", + "TTPlanet_Tile_Preprocessor_cufoff", + "TTPlanet_inpainting_Preprecessor" + ], + { + "title_aux": "for comfyui image proprocessor" + } + ], + "https://github.com/TTPlanetPig/Comfyui_TTP_Toolset": [ + [ + "TTP_CoordinateSplitter", + "TTP_Expand_And_Mask", + "TTP_Image_Assy", + "TTP_Image_Tile_Batch", + "TTP_Tile_image_size", + "TTP_condsetarea_merge", + "TTP_condsetarea_merge_test", + "TTP_condtobatch", + "TTP_text_mix", + "TTPlanet_Tile_Preprocessor_Simple", + "TeaCacheHunyuanVideoSampler" + ], + { + "title_aux": "Comfyui_TTP_Toolset" + } + ], + "https://github.com/TTPlanetPig/TTP_Comfyui_FramePack_SE": [ + [ + "TTPlanet_FramePack" + ], + { + "title_aux": "TTP_Comfyui_FramePack_SE" + } + ], + "https://github.com/TW-CUI/TW-CUI-Util": [ + [ + "TWCUI_Util_CommonSDXLResolutions", + "TWCUI_Util_FloatLiteral", + "TWCUI_Util_GenerationParameters", + "TWCUI_Util_GenerationPrompts", + "TWCUI_Util_IntLiteral", + "TWCUI_Util_ModelVAELORALoader", + "TWCUI_Util_ModelVAELoader", + "TWCUI_Util_MultilineStringLiteral", + "TWCUI_Util_SaveImage", + "TWCUI_Util_SaveImageAdvanced", + "TWCUI_Util_StringLiteral" + ], + { + "title_aux": "TW-CUI-Util" + } + ], + "https://github.com/TZOOTZ/ComfyUI-TZOOTZ_VHS": [ + [ + "TZOOTZ_VHSNode" + ], + { + "title_aux": "TZOOTZ VHS Effect Node" + } + ], + "https://github.com/TaiTair/comfyui-simswap": [ + [ + "Simswap", + "SimswapBuildFaceModel", + "SimswapFaceSwapOpt", + "SimswapImageDublicator", + "SimswapLoadFaceModel", + "SimswapMaskHelper", + "SimswapOptions", + "SimswapRestoreFace", + "SimswapSaveFaceModel" + ], + { + "title_aux": "Simswap Node for ComfyUI" + } + ], + "https://github.com/Taithrah/ComfyUI_Fens_Simple_Nodes": [ + [ + "FensTokenCounter", + "OptiEmptyLatent" + ], + { + "title_aux": "Fens-Simple-Nodes" + } + ], + "https://github.com/Taremin/comfyui-prompt-config": [ + [ + "PromptEdit", + "PromptGenerationConfig" + ], + { + "title_aux": "comfyui-prompt-config" + } + ], "https://github.com/Taremin/comfyui-prompt-extranetworks": [ [ + "PromptControlNetApply", + "PromptControlNetPrepare", "PromptExtraNetworks" ], { @@ -3693,12 +14130,23 @@ "title_aux": "ComfyUI String Tools" } ], + "https://github.com/Taremin/webui-monaco-prompt": [ + [ + "WebuiMonacoPromptFind", + "WebuiMonacoPromptReplace" + ], + { + "title_aux": "WebUI Monaco Prompt" + } + ], "https://github.com/TeaCrab/ComfyUI-TeaNodes": [ [ "TC_ColorFill", + "TC_CropTo", "TC_EqualizeCLAHE", "TC_ImageResize", "TC_ImageScale", + "TC_KorniaGamma", "TC_RandomColorFill", "TC_SizeApproximation" ], @@ -3718,12 +14166,34 @@ "title_aux": "ComfyS3" } ], + "https://github.com/TemryL/ComfyUI-IDM-VTON": [ + [ + "IDM-VTON", + "PipelineLoader" + ], + { + "title_aux": "ComfyUI-IDM-VTON [WIP]" + } + ], + "https://github.com/Temult/TWanSigmaGraph": [ + [ + "TWanSigmaGraph" + ], + { + "title_aux": "TWanSigmaGraph" + } + ], "https://github.com/TencentQQGYLab/ComfyUI-ELLA": [ [ + "CombineClipEllaEmbeds", + "ConcatConditionEllaEmbeds", "ConditionToEllaEmbeds", "ELLALoader", "EllaApply", "EllaCombineEmbeds", + "EllaEncode", + "EllaTextEncode", + "SetEllaTimesteps", "T5TextEncode #ELLA", "T5TextEncoderLoader #ELLA" ], @@ -3731,6 +14201,31 @@ "title_aux": "ComfyUI-ELLA" } ], + "https://github.com/Tensor-Art/ComfyUI_TENSOR_ART": [ + [ + "TA_AIToolsNode", + "TA_ExecuteNode", + "TA_UploadImageNode" + ], + { + "title_aux": "ComfyUI_TENSOR_ART" + } + ], + "https://github.com/TensorKaze/ComfyUI-TkNodes": [ + [ + "FluxAdvancedSampler", + "FluxLatentSampler", + "LoadImageAndScaleToTotalPixels", + "LoadModelAndUpscaleImage", + "MultiLatentSelector", + "MultiModelLoader", + "RepeatLatentBatchOptional", + "VAEEncodeOptional" + ], + { + "title_aux": "ComfyUI-TkNodes" + } + ], "https://github.com/TheBarret/ZSuite": [ [ "ZSuite: Prompter", @@ -3753,12 +14248,95 @@ "title_aux": "comfyui-upscale-by-model" } ], + "https://github.com/TheLustriVA/ComfyUI-Image-Size-Tools": [ + [ + "FluxResolutionNode", + "ImageSizeDetectorNode", + "SD15ResolutionNode", + "SDXLResolutionNode", + "WAN21AdvancedResolutionNode", + "WAN21ResolutionNode" + ], + { + "title_aux": "ComfyUI Image Size Tool" + } + ], + "https://github.com/TheMistoAI/ComfyUI-Anyline": [ + [ + "AnyLinePreprocessor" + ], + { + "title_aux": "Anyline" + } + ], + "https://github.com/TheWhykiki/Whykiki-ComfyUIToolset": [ + [ + "SequentialImageLoaderV8" + ], + { + "title_aux": "Whykiki ComfyUI Toolset" + } + ], + "https://github.com/ThepExcel/aiangelgallery-comfyui": [ + [ + "ThepExcel_AiAngel_MultilineTextChoiceNode" + ], + { + "title_aux": "Multiline Text Choice Node for ComfyUI" + } + ], + "https://github.com/ThereforeGames/ComfyUI-Unprompted": [ + [ + "Unprompted", + "UnpromptedSetRack" + ], + { + "title_aux": "ComfyUI-Unprompted" + } + ], + "https://github.com/TiamaTiramisu/risutools": [ + [ + "CheckFileNamePrefixExists", + "LoadImageFromText", + "LoadLastFileNamePrefix", + "UUIDGenerator" + ], + { + "title_aux": "RisuTools" + } + ], + "https://github.com/TinyBeeman/ComfyUI-TinyBee": [ + [ + "Filter Existing Files", + "Filter List", + "Filter Words", + "Get File List", + "Get List From File", + "Incrementer", + "Indexed Entry", + "List Count", + "Process Path Name", + "Random Entry", + "Randomize List", + "Replace List", + "Sort List" + ], + { + "title_aux": "ComfyUI-TinyBee" + } + ], "https://github.com/TinyTerra/ComfyUI_tinyterraNodes": [ [ - "ttN busIN", - "ttN busOUT", + "ttN KSampler_v2", + "ttN advPlot combo", + "ttN advPlot images", + "ttN advPlot merge", + "ttN advPlot range", + "ttN advPlot string", + "ttN advanced xyPlot", "ttN compareInput", "ttN concat", + "ttN conditioning", "ttN debugInput", "ttN float", "ttN hiresfixScale", @@ -3773,34 +14351,78 @@ "ttN pipeIN", "ttN pipeKSampler", "ttN pipeKSamplerAdvanced", + "ttN pipeKSamplerAdvanced_v2", "ttN pipeKSamplerSDXL", + "ttN pipeKSamplerSDXL_v2", + "ttN pipeKSampler_v2", "ttN pipeLoader", "ttN pipeLoaderSDXL", + "ttN pipeLoaderSDXL_v2", + "ttN pipeLoader_v2", "ttN pipeLoraStack", "ttN pipeOUT", "ttN seed", - "ttN seedDebug", "ttN text", "ttN text3BOX_3WAYconcat", "ttN text7BOX_concat", + "ttN textCycleLine", "ttN textDebug", + "ttN textOutput", + "ttN tinyLoader", "ttN xyPlot" ], { "author": "tinyterra", - "description": "This extension offers various pipe nodes, fullscreen image viewer based on node history, dynamic widgets, interface customization, and more.", - "nickname": "ttNodes", + "description": "This extension offers extensive xyPlot, various pipe nodes, fullscreen image viewer based on node history, dynamic widgets, interface customization, and more.", + "nickname": "\ud83c\udf0f", "nodename_pattern": "^ttN ", "title": "tinyterraNodes", - "title_aux": "tinyterraNodes" + "title_aux": "ComfyUI_tinyterraNodes" } ], - "https://github.com/TripleHeadedMonkey/ComfyUI_MileHighStyler": [ + "https://github.com/Tlant/ComfyUI-OllamaPromptsGeneratorTlant": [ [ - "menus" + "LoadImageAndExtractMetadataTlant", + "LoadRandomTxtFileTlant", + "LoadRandomTxtFileTlantV2", + "LoadRandomTxtFileTlantV3", + "LoadSequencedTxtFileTlant", + "LoadSpecificTxtFileTlant", + "OllamaPromptsGeneratorTlant", + "OllamaSimpleTextGeneratorTlant", + "RandomImageLoaderTlant", + "ReasoningLLMOutputCleaner", + "SaveImagePairForKontext", + "StringFormatterTlant" ], { - "title_aux": "ComfyUI_MileHighStyler" + "title_aux": "ComfyUI-OllamaPromptsGeneratorTlant" + } + ], + "https://github.com/ToTheBeginning/ComfyUI-DreamO": [ + [ + "ApplyDreamO", + "DreamOProcessorLoader", + "DreamORefEncode" + ], + { + "title_aux": "DreamO Comfyui" + } + ], + "https://github.com/Tr1dae/ComfyUI-Dequality": [ + [ + "Dequality" + ], + { + "title_aux": "ComfyUI-Dequality" + } + ], + "https://github.com/Trgtuan10/ComfyUI_YoloSegment_Mask": [ + [ + "Object Mask" + ], + { + "title_aux": "ComfyUI_YoloSegment_Mask" } ], "https://github.com/Tropfchen/ComfyUI-Embedding_Picker": [ @@ -3820,13 +14442,47 @@ "title_aux": "YARS: Yet Another Resolution Selector" } ], + "https://github.com/TrophiHunter/ComfyUI_Photography_Nodes": [ + [ + "Bloom", + "Bloom Lens Flares", + "Chromatic Aberration", + "Contrast Adaptive Sharpening", + "Contrast Brightness", + "Depth of Field", + "Get Watermark", + "Halation", + "Lens Dirt", + "Lens Distortion", + "Levels Adjustment", + "Lut", + "Manga Toner", + "Monitor Filter", + "Multi Scale Contrast", + "NTSC Filter", + "Noise", + "Physically Accurate Lens Dirt", + "Pixel Art", + "Saturation Vibrance", + "Sensor Dust", + "Sharpen Simple", + "Sharpen Unsharp Mask", + "Tint", + "VHS Chroma Smear", + "VHS Degrade", + "Vignette Effect", + "Watermark" + ], + { + "title_aux": "Photography Nodes" + } + ], "https://github.com/Trung0246/ComfyUI-0246": [ [ "0246.Beautify", "0246.BoxRange", "0246.CastReroute", "0246.Cloud", - "0246.Convert", "0246.Count", "0246.Highway", "0246.HighwayBatch", @@ -3837,7 +14493,6 @@ "0246.Loop", "0246.Merge", "0246.Meta", - "0246.Pick", "0246.RandomInt", "0246.Script", "0246.ScriptNode", @@ -3866,6 +14521,14 @@ "title_aux": "ComfyUI Neural Network Latent Upscale" } ], + "https://github.com/TylerZoro/SD3-Scaling": [ + [ + "SD3ImageScaleToTotalPixels" + ], + { + "title_aux": "SD3-Scaling" + } + ], "https://github.com/Umikaze-job/select_folder_path_easy": [ [ "SelectFolderPathEasy" @@ -3874,23 +14537,290 @@ "title_aux": "select_folder_path_easy" } ], + "https://github.com/Urabewe/ComfyUI-CountS2VExtend": [ + [ + "CountVideoExtendS2VNode" + ], + { + "title_aux": "ComfyUI Video Extend Counter" + } + ], "https://github.com/VAST-AI-Research/ComfyUI-Tripo": [ [ - "TripoAPIImageToMeshNode", - "TripoAPITextToMeshNode", - "TripoGLBViewer" + "TripoAPIDraft", + "TripoAnimateRetargetNode", + "TripoAnimateRigNode", + "TripoConvertNode", + "TripoMeshCompletion", + "TripoMeshSegmentation", + "TripoRefineModel", + "TripoSmartLowPoly", + "TripoStylizeModel", + "TripoTextureModel" ], { "title_aux": "Tripo for ComfyUI" } ], - "https://github.com/WASasquatch/ASTERR": [ + "https://github.com/VK/vk-nodes": [ [ - "ASTERR", - "SaveASTERR" + "PrepareJobs", + "SketchyText", + "SketchyThumbnail", + "TiledConfigNode", + "TiledCropNode", + "TiledRenderNode", + "TiledSetupNode", + "VKLoadAudio" ], { - "title_aux": "ASTERR" + "title_aux": "VK Nodes" + } + ], + "https://github.com/Vaibhavs10/ComfyUI-DDUF": [ + [ + "DDUFLoader", + "DiffusersModelMakeup", + "DiffusersPipelineLoader", + "DiffusersSchedulerLoader", + "DiffusersSimpleSampler" + ], + { + "title_aux": "ComfyUI-DDUF" + } + ], + "https://github.com/VangengLab/ComfyUI-LivePortrait_v2": [ + [ + "LivePortraitProcess_animal" + ], + { + "title_aux": "ComfyUI-LivePortrait_v2" + } + ], + "https://github.com/VangengLab/ComfyUI-LivePortrait_v3": [ + [ + "LivePortraitp2p" + ], + { + "title_aux": "ComfyUI-LivePortrait_v3" + } + ], + "https://github.com/Vaporbook/ComfyUI-SaveImage-PP": [ + [ + "SaveImagePP" + ], + { + "title_aux": "ComfyUI-SaveImage-PP" + } + ], + "https://github.com/Verolelb/ComfyUI-Qwen-Aspect-Ratio": [ + [ + "QwenAspectRatioSelectorLatent" + ], + { + "title_aux": "ComfyUI-Qwen-Aspect-Ratio" + } + ], + "https://github.com/VertexAnomaly/ComfyUI_ImageSentinel": [ + [ + "ImageSentinel" + ], + { + "title_aux": "ComfyUI_ImageSentinel" + } + ], + "https://github.com/VertexStudio/roblox-comfyui-nodes": [ + [ + "FirstLetterNode", + "FlowNodes", + "MirrorEffectNode", + "SaveImageNode", + "ScaleImageNode", + "SwitchImageNode", + "SwitchTextNode", + "TextToImageNode" + ], + { + "title_aux": "roblox-comfyui-nodes" + } + ], + "https://github.com/VikramxD/VEnhancer-ComfyUI-Wrapper": [ + [ + "MultiGPUInference", + "MultiGPUVEnhancerLoader", + "SingleGPUInference", + "SingleGPUVEnhancerLoader", + "VideoLoader", + "VideoSaver" + ], + { + "title_aux": "VEnhancer ComfyUI Extension" + } + ], + "https://github.com/Visionatrix/ComfyUI-Gemini": [ + [ + "ConcatText_Zho", + "DisplayText_Zho", + "Gemini_15P_API_S_Advance_Zho", + "Gemini_15P_API_S_Chat_Advance_Zho", + "Gemini_API_Chat_Zho", + "Gemini_API_S_Chat_Zho", + "Gemini_API_S_Vsion_ImgURL_Zho", + "Gemini_API_S_Zho", + "Gemini_API_Vsion_ImgURL_Zho", + "Gemini_API_Zho", + "Gemini_FileUpload_API_S_Zho", + "Gemini_File_API_S_Zho" + ], + { + "title_aux": "ComfyUI-Gemini" + } + ], + "https://github.com/Visionatrix/ComfyUI-RemoteVAE": [ + [ + "RemoteVAEDecode" + ], + { + "title_aux": "ComfyUI-RemoteVAE" + } + ], + "https://github.com/Visionatrix/ComfyUI-Visionatrix": [ + [ + "StyleAlignedBatchAlign", + "VixCheckboxLogic", + "VixDictionaryConvert", + "VixDictionaryGet", + "VixDictionaryNew", + "VixDictionaryUpdate", + "VixDynamicLoraDefinition", + "VixImageFilters", + "VixMultilineText", + "VixTextConcatenate", + "VixTextReplace", + "VixUiAspectRatioSelector", + "VixUiCheckbox", + "VixUiCheckboxLogic", + "VixUiList", + "VixUiListLogic", + "VixUiPrompt", + "VixUiRangeFloat", + "VixUiRangeInt", + "VixUiRangeScaleFloat", + "VixUiWorkflowMetadata" + ], + { + "title_aux": "ComfyUI-Visionatrix" + } + ], + "https://github.com/VraethrDalkr/ComfyUI-ProgressiveBlend": [ + [ + "ProgressiveColorMatchBlend", + "ProgressiveImageBatchBlend" + ], + { + "title_aux": "ComfyUI-ProgressiveBlend" + } + ], + "https://github.com/VrchStudio/comfyui-web-viewer": [ + [ + "VrchAnyOSCControlNode", + "VrchAudioChannelLoaderNode", + "VrchAudioConcatNode", + "VrchAudioEmotionVisualizerNode", + "VrchAudioFrequencyBandAnalyzerNode", + "VrchAudioGenresNode", + "VrchAudioMusic2EmotionNode", + "VrchAudioRecorderNode", + "VrchAudioSaverNode", + "VrchAudioVisualizerNode", + "VrchAudioWebViewerNode", + "VrchBPMDetectorNode", + "VrchBooleanKeyControlNode", + "VrchChannelOSCControlNode", + "VrchChannelX4OSCControlNode", + "VrchDelayNode", + "VrchDelayOSCControlNode", + "VrchFloatKeyControlNode", + "VrchFloatOSCControlNode", + "VrchFloatRemapNode", + "VrchGamepadLoaderNode", + "VrchImageChannelLoaderNode", + "VrchImageFlipBookWebViewerNode", + "VrchImagePreviewBackgroundNewNode", + "VrchImagePreviewBackgroundNode", + "VrchImageSaverNode", + "VrchImageSwitchOSCControlNode", + "VrchImageWebSocketChannelLoaderNode", + "VrchImageWebSocketFilterSettingsNode", + "VrchImageWebSocketSettingsNode", + "VrchImageWebSocketSimpleWebViewerNode", + "VrchImageWebSocketWebViewerNode", + "VrchImageWebViewerNode", + "VrchInstantQueueKeyControlNode", + "VrchIntKeyControlNode", + "VrchIntOSCControlNode", + "VrchIntRemapNode", + "VrchJsonUrlLoaderNode", + "VrchJsonWebSocketChannelLoaderNode", + "VrchJsonWebSocketSenderNode", + "VrchLatentWebSocketChannelLoaderNode", + "VrchLatentWebSocketSenderNode", + "VrchMicLoaderNode", + "VrchMidiDeviceLoaderNode", + "VrchModelWebViewerNode", + "VrchOSCControlSettingsNode", + "VrchQRCodeNode", + "VrchSwitchOSCControlNode", + "VrchTextConcatOSCControlNode", + "VrchTextKeyControlNode", + "VrchTextSrtPlayerNode", + "VrchTextSwitchOSCControlNode", + "VrchTriggerToggleNode", + "VrchTriggerToggleX4Node", + "VrchTriggerToggleX8Node", + "VrchVideoWebViewerNode", + "VrchWebSocketServerNode", + "VrchWebViewerNode", + "VrchXYOSCControlNode", + "VrchXYZOSCControlNode", + "VrchXboxControllerNode" + ], + { + "title_aux": "ComfyUI Web Viewer" + } + ], + "https://github.com/VykosX/ControlFlowUtils": [ + [ + "Cycle", + "CycleContinue", + "CycleEnd", + "DataMonitor", + "FallbackAnyBatch", + "FallbackImagePreviewer", + "FolderSearch", + "GarbageCollector", + "HaltExecution", + "IfConditionSelector", + "ImageResolutionAdjust", + "InvertCondition", + "LoopClose", + "LoopOpen", + "LoraSelector", + "MemoryStorage", + "ModelSelector", + "NullInput", + "NullOutput", + "ReadTextFile", + "SaveTextFile", + "SimpleToggle", + "StringOperation", + "UniversalSwitch", + "UnloadModels", + "VAESelector", + "Wait" + ], + { + "title_aux": "ControlFlowUtils" } ], "https://github.com/WASasquatch/ComfyUI_Preset_Merger": [ @@ -3949,229 +14879,284 @@ "KSamplerSeq", "KSamplerSeq2", "VAEEncodeForInpaint (WAS)", - "VividSharpen" + "VividSharpen", + "VividSharpenV2" ], { "title_aux": "WAS_Extras" } ], - "https://github.com/WASasquatch/was-node-suite-comfyui": [ + "https://github.com/WASasquatch/face-upscaling-and-seamless-embedding": [ [ - "BLIP Analyze Image", - "BLIP Model Loader", - "Blend Latents", - "Boolean To Text", - "Bounded Image Blend", - "Bounded Image Blend with Mask", - "Bounded Image Crop", - "Bounded Image Crop with Mask", - "Bus Node", - "CLIP Input Switch", - "CLIP Vision Input Switch", - "CLIPSeg Batch Masking", - "CLIPSeg Masking", - "CLIPSeg Model Loader", - "CLIPTextEncode (BlenderNeko Advanced + NSP)", - "CLIPTextEncode (NSP)", - "Cache Node", - "Checkpoint Loader", - "Checkpoint Loader (Simple)", - "Conditioning Input Switch", - "Constant Number", - "Control Net Model Input Switch", - "Convert Masks to Images", - "Create Grid Image", - "Create Grid Image from Batch", - "Create Morph Image", - "Create Morph Image from Path", - "Create Video from Path", - "Debug Number to Console", - "Dictionary to Console", - "Diffusers Hub Model Down-Loader", - "Diffusers Model Loader", - "Export API", - "Image Analyze", - "Image Aspect Ratio", - "Image Batch", - "Image Blank", - "Image Blend", - "Image Blend by Mask", - "Image Blending Mode", - "Image Bloom Filter", - "Image Bounds", - "Image Bounds to Console", - "Image Canny Filter", - "Image Chromatic Aberration", - "Image Color Palette", - "Image Crop Face", - "Image Crop Location", - "Image Crop Square Location", - "Image Displacement Warp", - "Image Dragan Photography Filter", - "Image Edge Detection Filter", - "Image Film Grain", - "Image Filter Adjustments", - "Image Flip", - "Image Generate Gradient", - "Image Gradient Map", - "Image High Pass Filter", - "Image History Loader", - "Image Input Switch", - "Image Levels Adjustment", - "Image Load", - "Image Lucy Sharpen", - "Image Median Filter", - "Image Mix RGB Channels", - "Image Monitor Effects Filter", - "Image Nova Filter", - "Image Padding", - "Image Paste Crop", - "Image Paste Crop by Location", - "Image Paste Face", - "Image Perlin Noise", - "Image Perlin Power Fractal", - "Image Pixelate", - "Image Power Noise", - "Image Rembg (Remove Background)", - "Image Remove Background (Alpha)", - "Image Remove Color", - "Image Resize", - "Image Rotate", - "Image Rotate Hue", - "Image SSAO (Ambient Occlusion)", - "Image SSDO (Direct Occlusion)", - "Image Save", - "Image Seamless Texture", - "Image Select Channel", - "Image Select Color", - "Image Shadows and Highlights", - "Image Size to Number", - "Image Stitch", - "Image Style Filter", - "Image Threshold", - "Image Tiled", - "Image Transpose", - "Image Voronoi Noise Filter", - "Image fDOF Filter", - "Image to Latent Mask", - "Image to Noise", - "Image to Seed", - "Images to Linear", - "Images to RGB", - "Inset Image Bounds", - "Integer place counter", - "KSampler (WAS)", - "KSampler Cycle", - "Latent Batch", - "Latent Input Switch", - "Latent Noise Injection", - "Latent Size to Number", - "Latent Upscale by Factor (WAS)", - "Load Cache", - "Load Image Batch", - "Load Lora", - "Load Text File", - "Logic Boolean", - "Logic Boolean Primitive", - "Logic Comparison AND", - "Logic Comparison OR", - "Logic Comparison XOR", - "Logic NOT", - "Lora Input Switch", - "Lora Loader", - "Mask Arbitrary Region", - "Mask Batch", - "Mask Batch to Mask", - "Mask Ceiling Region", - "Mask Crop Dominant Region", - "Mask Crop Minority Region", - "Mask Crop Region", - "Mask Dilate Region", - "Mask Dominant Region", - "Mask Erode Region", - "Mask Fill Holes", - "Mask Floor Region", - "Mask Gaussian Region", - "Mask Invert", - "Mask Minority Region", - "Mask Paste Region", - "Mask Smooth Region", - "Mask Threshold Region", - "Masks Add", - "Masks Combine Batch", - "Masks Combine Regions", - "Masks Subtract", - "MiDaS Depth Approximation", - "MiDaS Mask Image", - "MiDaS Model Loader", - "Model Input Switch", - "Number Counter", - "Number Input Condition", - "Number Input Switch", - "Number Multiple Of", - "Number Operation", - "Number PI", - "Number to Float", - "Number to Int", - "Number to Seed", - "Number to String", - "Number to Text", - "Prompt Multiple Styles Selector", - "Prompt Styles Selector", - "Random Number", - "SAM Image Mask", - "SAM Model Loader", - "SAM Parameters", - "SAM Parameters Combine", - "Samples Passthrough (Stat System)", - "Save Text File", - "Seed", - "String to Text", - "Tensor Batch to Image", - "Text Add Token by Input", - "Text Add Tokens", - "Text Compare", - "Text Concatenate", - "Text Contains", - "Text Dictionary Convert", - "Text Dictionary Get", - "Text Dictionary Keys", - "Text Dictionary New", - "Text Dictionary To Text", - "Text Dictionary Update", - "Text File History Loader", - "Text Find and Replace", - "Text Find and Replace Input", - "Text Find and Replace by Dictionary", - "Text Input Switch", - "Text List", - "Text List Concatenate", - "Text List to Text", - "Text Load Line From File", - "Text Multiline", - "Text Parse A1111 Embeddings", - "Text Parse Noodle Soup Prompts", - "Text Parse Tokens", - "Text Random Line", - "Text Random Prompt", - "Text Shuffle", - "Text String", - "Text String Truncate", - "Text to Conditioning", - "Text to Console", - "Text to Number", - "Text to String", - "True Random.org Number Generator", - "Upscale Model Loader", - "Upscale Model Switch", - "VAE Input Switch", - "Video Dump Frames", - "Write to GIF", - "Write to Video", - "unCLIP Checkpoint Loader" + "FUSEGenericKSampler", + "FUSEKSampler", + "FUSESamplerMaskOptions", + "FUSEYOLOSettings" ], { - "title_aux": "WAS Node Suite" + "title_aux": "FUSE Face Enhancer" + } + ], + "https://github.com/WUYUDING2583/ComfyUI-Save-Image-Callback": [ + [ + "Save Image With Callback" + ], + { + "title_aux": "Save Image With Callback" + } + ], + "https://github.com/WX-NPS1598/ComfyUI-Auto_Crop_By_NPS": [ + [ + "AutoCropByNPS" + ], + { + "title_aux": "Auto Crop By NPS" + } + ], + "https://github.com/WaddingtonHoldings/ComfyUI-InstaSD": [ + [ + "GPTImage1Generate", + "InstaCBoolean", + "InstaCFloat", + "InstaCInteger", + "InstaCLoadImageFromS3", + "InstaCLoraLoader", + "InstaCSaveImageToS3", + "InstaCSeed", + "InstaCText", + "InstaCTextML", + "InstaLoadImageLocal", + "InstaLoadImageWithMask", + "InstaPromptMultipleStyleSelector", + "InstaPromptStyleSelector", + "LoadVideo", + "PreViewVideo" + ], + { + "title_aux": "InstaSD nodes for ComfyUI" + } + ], + "https://github.com/WainWong/ComfyUI-Loop-image": [ + [ + "CyberEve_BatchImageLoopClose", + "CyberEve_BatchImageLoopOpen", + "CyberEve_LoopIndexSwitch", + "CyberEve_MaskMerge", + "CyberEve_MaskSegmentation", + "CyberEve_SingleImageLoopClose", + "CyberEve_SingleImageLoopOpen" + ], + { + "title_aux": "ComfyUI-Loop-image" + } + ], + "https://github.com/Wakfull33/ComfyUI-SaveImageCivitAI": [ + [ + "SaveCivitai" + ], + { + "title_aux": "ComfyUI-SaveImageCivitAI" + } + ], + "https://github.com/WangPengxing/ComfyUI_WPX_Node": [ + [ + "AnimalContour", + "AnimalContourSilhouette", + "CircleContour", + "DetermineRowsAndCols", + "PenetrateStyle", + "RectangleContour", + "SplitMaskElements", + "SplitStickers" + ], + { + "title_aux": "ComfyUI WPX Nodes" + } + ], + "https://github.com/WarpedAnimation/ComfyUI-WarpedToolset": [ + [ + "ClipLoaderGGUF", + "DualClipLoaderGGUF", + "GGUFRun", + "GGUFSave", + "GGUFUndo", + "LoaderGGUF", + "LoaderGGUFAdvanced", + "QuadrupleClipLoaderGGUF", + "TENSORBoost", + "TENSORCut", + "TripleClipLoaderGGUF", + "VaeGGUF", + "WarpedBasicGuider", + "WarpedBundleAllVideoImages", + "WarpedBundleVideoImages", + "WarpedCLIPLoader", + "WarpedCLIPVisionLoader", + "WarpedCheckpointLoader", + "WarpedClipLoaderGGUF", + "WarpedCreateEmptyImageBatch", + "WarpedCreateEmptyLatentBatch", + "WarpedCreateSpecialImageBatch", + "WarpedDualCLIPLoader", + "WarpedDualClipLoaderGGUF", + "WarpedDualEncoder", + "WarpedDualGuider", + "WarpedFramepackLoraSelectBatch", + "WarpedFramepackMultiLoraSelect", + "WarpedFramepackMultiLoraSelectExt", + "WarpedFramepackSampler", + "WarpedFramepackSamplerScripted", + "WarpedGetImageFromVideo", + "WarpedGetTwoImagesFromVideo", + "WarpedHunyuanImageToVideo", + "WarpedHunyuanLoraAvgMerge", + "WarpedHunyuanLoraBatchMerge", + "WarpedHunyuanLoraConvert", + "WarpedHunyuanLoraConvertKeys", + "WarpedHunyuanLoraConvertKeys2", + "WarpedHunyuanLoraMerge", + "WarpedHunyuanMultiLoraAvgMerge", + "WarpedHunyuanMultiLoraLoader", + "WarpedHunyuanMultiLoraMerge", + "WarpedHunyuanMultiLoraMixer", + "WarpedHunyuanMultiLoraMixerExt", + "WarpedHunyuanVideoLoraLoader", + "WarpedImageNoiseAugmentation", + "WarpedImageScaleToSide", + "WarpedLeapfusionHunyuanI2V", + "WarpedLoadFramePackModel", + "WarpedLoadImages", + "WarpedLoadLorasBatchByPrefix", + "WarpedLoadVideosBatch", + "WarpedLoaderGGUF", + "WarpedLoraKeysAndMetadataReader", + "WarpedLoraReSave", + "WarpedModifyCaptionFile", + "WarpedMultiLoraLoader", + "WarpedNumericalConversion", + "WarpedReverseImageBatch", + "WarpedSamplerCustomAdv", + "WarpedSamplerCustomAdvLatent", + "WarpedSamplerCustomScripted", + "WarpedSamplerScripts12", + "WarpedSamplerScripts16", + "WarpedSamplerScripts20", + "WarpedSamplerScripts30", + "WarpedSamplerScripts40", + "WarpedSamplerScripts5", + "WarpedSamplerScripts8", + "WarpedSaveAnimatedPng", + "WarpedSaveImageCaption", + "WarpedUpscaleWithModel", + "WarpedVAELoader", + "WarpedWanImageToVideo", + "WarpedWanLoadAndEditLoraBlocks", + "WarpedWanLoraMerge" + ], + { + "title_aux": "ComfyUI-WarpedToolset" + } + ], + "https://github.com/WaveSpeedAI/wavespeed-comfyui": [ + [ + "WaveSpeedAI BytedanceSeedanceLiteI2VNode", + "WaveSpeedAI BytedanceSeedanceLiteT2VNode", + "WaveSpeedAI BytedanceSeedanceProI2VNode", + "WaveSpeedAI BytedanceSeedanceProT2VNode", + "WaveSpeedAI Client", + "WaveSpeedAI DiaTTSNode", + "WaveSpeedAI Flux Image2Image", + "WaveSpeedAI Flux Loras", + "WaveSpeedAI Flux Text2Image", + "WaveSpeedAI FluxControlLoraCannyNode", + "WaveSpeedAI FluxControlLoraDepthNode", + "WaveSpeedAI FluxControlnetUnionPro2_0Node", + "WaveSpeedAI FluxDevFillNode", + "WaveSpeedAI FluxDevLoraNode", + "WaveSpeedAI FluxDevLoraUltraFastNode", + "WaveSpeedAI FluxDevNode", + "WaveSpeedAI FluxDevUltraFastNode", + "WaveSpeedAI FluxProReduxNode", + "WaveSpeedAI FluxReduxDevNode", + "WaveSpeedAI FluxSchnellLoraNode", + "WaveSpeedAI FluxSchnellNode", + "WaveSpeedAI FramepackNode", + "WaveSpeedAI GhibliNode", + "WaveSpeedAI GoogleVeo3FastNode", + "WaveSpeedAI GoogleVeo3Node", + "WaveSpeedAI HidreamE1FullNode", + "WaveSpeedAI HidreamI1DevNode", + "WaveSpeedAI HidreamI1FullNode", + "WaveSpeedAI Hunyuan3DV2MultiViewNode", + "WaveSpeedAI HunyuanCustomRef2V480pNode", + "WaveSpeedAI HunyuanCustomRef2V720pNode", + "WaveSpeedAI HunyuanVideoI2VNode", + "WaveSpeedAI HunyuanVideoT2VNode", + "WaveSpeedAI InstantCharacterNode", + "WaveSpeedAI KwaivgiKlingV16I2VProNode", + "WaveSpeedAI KwaivgiKlingV16I2VStandardNode", + "WaveSpeedAI KwaivgiKlingV16T2VStandardNode", + "WaveSpeedAI KwaivgiKlingV21I2vMasterNode", + "WaveSpeedAI KwaivgiKlingV21I2vProNode", + "WaveSpeedAI KwaivgiKlingV21I2vStandardNode", + "WaveSpeedAI KwaivgiKlingV21T2vMasterNode", + "WaveSpeedAI LtxVideoV097I2V480pNode", + "WaveSpeedAI LtxVideoV097I2V720pNode", + "WaveSpeedAI MMAudioV2Node", + "WaveSpeedAI Magi124bNode", + "WaveSpeedAI Minimax Image2Video", + "WaveSpeedAI MinimaxVideo01Node", + "WaveSpeedAI NightmareAIRealESRGANNode", + "WaveSpeedAI Preview Video", + "WaveSpeedAI SDXLLoraNode", + "WaveSpeedAI SDXLNode", + "WaveSpeedAI Save Audio", + "WaveSpeedAI SeedEditV3Node", + "WaveSpeedAI SeedreamV3Node", + "WaveSpeedAI SkyReelsV1Node", + "WaveSpeedAI Step1xEditNode", + "WaveSpeedAI UnoNode", + "WaveSpeedAI Upload Audio", + "WaveSpeedAI Upload Image", + "WaveSpeedAI Upload Video", + "WaveSpeedAI Veo2I2vNode", + "WaveSpeedAI Veo2T2vNode", + "WaveSpeedAI ViduImageToVideo20Node", + "WaveSpeedAI ViduReferenceToVideo20Node", + "WaveSpeedAI ViduStartEndToVideo20Node", + "WaveSpeedAI Wan Image2Video", + "WaveSpeedAI Wan Loras", + "WaveSpeedAI Wan Text2Video", + "WaveSpeedAI Wan2114BVaceNode", + "WaveSpeedAI Wan21I2V480pLoraNode", + "WaveSpeedAI Wan21I2V480pLoraUltraFastNode", + "WaveSpeedAI Wan21I2V480pNode", + "WaveSpeedAI Wan21I2V480pUltraFastNode", + "WaveSpeedAI Wan21I2V720pLoraNode", + "WaveSpeedAI Wan21I2V720pLoraUltraFastNode", + "WaveSpeedAI Wan21I2V720pNode", + "WaveSpeedAI Wan21I2V720pUltraFastNode", + "WaveSpeedAI Wan21T2V480pLoraNode", + "WaveSpeedAI Wan21T2V480pLoraUltraFastNode", + "WaveSpeedAI Wan21T2V480pUltraFastNode", + "WaveSpeedAI Wan21T2V720pLoraNode", + "WaveSpeedAI Wan21T2V720pLoraUltraFastNode", + "WaveSpeedAI Wan21T2V720pNode", + "WaveSpeedAI Wan21T2V720pUltraFastNode" + ], + { + "title_aux": "wavespeed-comfyui" + } + ], + "https://github.com/WeChatCV/Stand-In_Preprocessor_ComfyUI": [ + [ + "ApplyFaceProcessor", + "FaceOnlyModeSwitch", + "FaceProcessorLoader", + "VideoFramePreprocessor" + ], + { + "title_aux": "Stand-In Official Preprocessor ComfyUI Nodes" } ], "https://github.com/WebDev9000/WebDev9000-Nodes": [ @@ -4183,16 +15168,184 @@ "title_aux": "WebDev9000-Nodes" } ], + "https://github.com/Wenaka2004/ComfyUI-TagClassifier": [ + [ + "LLMProcessingNode" + ], + { + "title_aux": "ComfyUI-TagClassifier" + } + ], + "https://github.com/What-a-stupid-username/comfyui-InversedSampler": [ + [ + "SamplerInversedEulerNode" + ], + { + "title_aux": "comfyui_InversedSampler" + } + ], "https://github.com/Wicloz/ComfyUI-Simply-Nodes": [ [ "WF_ConditionalLoraLoader", + "WF_FixupPixelArt", "WF_MultilineText", "WF_RandomStyle", "WF_ResolutionSDXL", "WF_TextFlow" ], { - "title_aux": "ComfyUI-Simply-Nodes" + "title_aux": "ComfyUI Simply Nodes" + } + ], + "https://github.com/Windecay/ComfyUI-ReservedVRAM": [ + [ + "ReservedVRAMSetter" + ], + { + "title_aux": "ComfyUI-ReservedVRAM" + } + ], + "https://github.com/Windecay/ComfyUI-SDupcaleTiledSize": [ + [ + "SDupscaleTiledSize" + ], + { + "title_aux": "ComfyUI-SDupcaleTiledSize" + } + ], + "https://github.com/X-School-Academy/X-FluxAgent": [ + [ + "X-FluxAgent.AICodeGenNode", + "X-FluxAgent.OpenAIChatnNode", + "X-FluxAgent.RichTextNode", + "X-FluxAgent.SaveTextNode" + ], + { + "title_aux": "X-FluxAgent" + } + ], + "https://github.com/X-T-E-R/ComfyUI-EasyCivitai-XTNodes": [ + [ + "CheckpointLoaderSimpleWithPreviews", + "CivitaiCheckpointLoaderSimple", + "CivitaiLoraLoader", + "CivitaiLoraLoaderStacked", + "CivitaiLoraLoaderStackedAdvanced", + "LoraLoaderStackedAdvancedWithPreviews", + "LoraLoaderStackedWithPreviews", + "LoraLoaderWithPreviews", + "XTNodesCleanPrompt", + "XTNodesPromptConcatenate" + ], + { + "title_aux": "ComfyUI Easy Civitai (XTNodes)" + } + ], + "https://github.com/XLabs-AI/x-flux-comfyui": [ + [ + "ApplyAdvancedFluxControlNet", + "ApplyAdvancedFluxIPAdapter", + "ApplyFluxControlNet", + "ApplyFluxIPAdapter", + "FluxLoraLoader", + "LoadFluxControlNet", + "LoadFluxIPAdapter", + "XlabsSampler" + ], + { + "title_aux": "x-flux-comfyui" + } + ], + "https://github.com/XWAVEart/comfyui-xwave-xlitch-nodes": [ + [ + "XWAVECellularNoiseNode", + "XWAVEPixelate", + "XWaveChromaticAberration", + "XWaveColorChannelManipulation", + "XWaveColorFilter", + "XWaveColorShiftExpansion", + "XWaveCurvedHueShift", + "XWaveGaussianBlur", + "XWaveHistogramGlitch", + "XWaveJPEGArtifacts", + "XWaveNoiseEffect", + "XWavePosterize", + "XWaveRGBChannelShift", + "XWaveSharpen" + ], + { + "title_aux": "ComfyUI XWAVE Nodes" + } + ], + "https://github.com/XchanBik/ComfyUI_SimpleBridgeNode": [ + [ + "LoraTextLoader", + "SimpleBridgeLoadNode", + "SimpleBridgeStoreNode" + ], + { + "description": "A custom node for ComfyUI to store and retrieve data dynamically.", + "nickname": "SimpleBridgeNode", + "title": "SimpleBridgeNode", + "title_aux": "ComfyUI_SimpleBridgeNode" + } + ], + "https://github.com/Xclbr7/ComfyUI-Merlin": [ + [ + "GeminiPromptExpander", + "Magic Photo Prompter \ud83e\ude84" + ], + { + "title_aux": "ComfyUI-Merlin: Magic Photo Prompter" + } + ], + "https://github.com/Xiangyu-CAS/HandFixer": [ + [ + "MediapipeHandNode" + ], + { + "title_aux": "HandFixer" + } + ], + "https://github.com/XieJunchen/comfyUI_LLM": [ + [ + "AppendImagesToBatch", + "CloudImageUploadNode", + "CloudImagesToVideoAndUpload", + "CloudVideoUploadNode", + "ComfyUI_LLM_Ollama", + "CreateEmptyImageBatch", + "DeepSeek_Online", + "GetFirstImageFromBatch", + "GetVideoClipByIndex", + "LoadGifFromLocal", + "LoadImgFromUrl", + "RemoveFirstOrLastImageFromBatch", + "SplitVideoByFrames", + "StringArrayFormatter", + "StringArrayIndexer" + ], + { + "title_aux": "comfyUI_LLM" + } + ], + "https://github.com/Xkipper/ComfyUI_SkipperNodes": [ + [ + "Embedding Stack", + "Simple Box" + ], + { + "title_aux": "ComfyUI_SkipperNodes" + } + ], + "https://github.com/XmYx/ComfyUI-SmolLM3": [ + [ + "SmolLM3ModelLoader", + "SmolLM3Sampler", + "SmolLM3SimpleGenerate" + ], + { + "title_aux": "ComfyUI-SmolLM3" } ], "https://github.com/XmYx/deforum-comfy-nodes": [ @@ -4239,48 +15392,6 @@ "title_aux": "Xycuno Oobabooga" } ], - "https://github.com/YMC-GitHub/ymc-node-suite-comfyui": [ - [ - "canvas-util-cal-size", - "conditioning-util-input-switch", - "cutoff-region-util", - "hks-util-cal-denoise-step", - "img-util-get-image-size", - "img-util-switch-input-image", - "io-image-save", - "io-text-save", - "io-util-file-list-get", - "io-util-file-list-get-text", - "number-util-random-num", - "pipe-util-to-basic-pipe", - "region-util-get-by-center-and-size", - "region-util-get-by-lt", - "region-util-get-crop-location-from-center-size-text", - "region-util-get-pad-out-location-by-size", - "text-preset-colors", - "text-util-join-text", - "text-util-loop-text", - "text-util-path-list", - "text-util-prompt-add-prompt", - "text-util-prompt-adv-dup", - "text-util-prompt-adv-search", - "text-util-prompt-del", - "text-util-prompt-dup", - "text-util-prompt-join", - "text-util-prompt-search", - "text-util-prompt-shuffle", - "text-util-prompt-std", - "text-util-prompt-unweight", - "text-util-random-text", - "text-util-search-text", - "text-util-show-text", - "text-util-switch-text", - "xyz-util-txt-to-int" - ], - { - "title_aux": "ymc-node-suite-comfyui" - } - ], "https://github.com/YOUR-WORST-TACO/ComfyUI-TacoNodes": [ [ "Example", @@ -4294,6 +15405,98 @@ "title_aux": "ComfyUI-TacoNodes" } ], + "https://github.com/YRIKKA/ComfyUI-InferenceTimeScaling": [ + [ + "InferenceTimeScaler", + "LoadCLIPScoreVerifier", + "LoadImageRewardVerifier", + "LoadQwenVLMVerifier" + ], + { + "title_aux": "ComfyUI-InferenceTimeScaling" + } + ], + "https://github.com/Yahweasel/ComfyUI-MinDalle": [ + [ + "MinDalleNode" + ], + { + "title_aux": "ComfyUI-MinDalle" + } + ], + "https://github.com/Yanick112/ComfyUI-ToSVG": [ + [ + "TS_ImageQuantize", + "TS_ImageToSVGStringBW_Potracer", + "TS_ImageToSVGStringBW_Vtracer", + "TS_ImageToSVGStringColor_Vtracer", + "TS_SVGBytesIOToString", + "TS_SVGPathSimplify", + "TS_SVGStringPreview", + "TS_SVGStringToImage", + "TS_SVGStringToSVGBytesIO", + "TS_SaveSVGString" + ], + { + "title_aux": "ComfyUI-ToSVG" + } + ], + "https://github.com/YaroslavIv/comfyui_swd": [ + [ + "SwDSelector" + ], + { + "title_aux": "SwD Preset Selector for ComfyUI" + } + ], + "https://github.com/YarvixPA/ComfyUI-YarvixPA": [ + [ + "ApplyStyleModelEnhanced", + "ApplyStyleModelSimple", + "BatchImagesNode", + "FrameCalculator", + "FrameCalculatorAudio", + "InpaintConditioningNode", + "InpaintFluxKontextConditioning", + "Prepimg2Vid", + "RemoveBackgroundNode", + "StitchImages", + "StitchImagesAndMask", + "TextFieldNode", + "UnstitchImages", + "UnstitchImagesAndMask", + "UpscaleImageWithModel" + ], + { + "title_aux": "ComfyUI-YarvixPA" + } + ], + "https://github.com/YaserJaradeh/comfyui-yaser-nodes": [ + [ + "Float", + "GeneralSwitch", + "ImageColorMatch", + "ImageSizeBySide", + "IterativeUpscaleWithModelsNode", + "LoraLoaderStack" + ], + { + "title_aux": "Yaser-nodes for ComfyUI" + } + ], + "https://github.com/Yeq6X/ComfyUI-image-to-video-inserter": [ + [ + "Base64ListToImages", + "Base64VideoToImages", + "CreateBlankFrames", + "ImageFrameSelector", + "ImagesToBase64Video", + "MultiImageInserter" + ], + { + "title_aux": "ComfyUI Image to Video Inserter" + } + ], "https://github.com/YinBailiang/MergeBlockWeighted_fo_ComfyUI": [ [ "MergeBlockWeighted" @@ -4302,6 +15505,387 @@ "title_aux": "MergeBlockWeighted_fo_ComfyUI" } ], + "https://github.com/Yo1up/Diffusion-Model-Detailer": [ + [ + "Detailer" + ], + { + "title_aux": "Diffusion-Model-Detailer" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-AniSora": [ + [ + "AniSora", + "AniSoraPrompt", + "LoadAniSoraModel", + "SaveAniSora" + ], + { + "title_aux": "ComfyUI-AniSora" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-AudioX": [ + [ + "AudioXPrompt", + "Condition", + "Generate", + "LoadAudioXAudio", + "LoadAudioXModel", + "LoadAudioXVideo", + "SaveAudioXAudio" + ], + { + "title_aux": "Yuan-ManX/ComfyUI-AudioX" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Bagel": [ + [ + "BagelPrompt", + "ImageEditing", + "ImageGeneration", + "ImageThinkEditing", + "ImageThinkGeneration", + "ImageUnderstanding", + "LoadBAGELModel", + "LoadEditImage" + ], + { + "title_aux": "ComfyUI-Bagel" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-ChatterboxTTS": [ + [ + "ChatterboxAudioPrompt", + "ChatterboxPrompt", + "ChatterboxTTS", + "ChatterboxVC", + "LoadChatterboxAudio", + "LoadChatterboxTTSModel", + "LoadChatterboxTargetAudio", + "LoadChatterboxVCModel", + "SaveChatterboxAudio" + ], + { + "title_aux": "ComfyUI-ChatterboxTTS" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Cobra": [ + [ + "ColorizeImage", + "DrawColorHint", + "ExtractLineArt", + "GetColorValue", + "LoadCobraModel" + ], + { + "title_aux": "ComfyUI-Cobra" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Dia": [ + [ + "DiaTTS", + "InputDiaText", + "LoadDiaAudio", + "LoadDiaModel", + "SaveDiaAudio" + ], + { + "title_aux": "ComfyUI-Dia" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Direct3D-S2": [ + [ + "Direct3DS2", + "LoadDirect3DS2Image", + "LoadDirect3DS2Model", + "SaveDirect3DS2Mesh" + ], + { + "title_aux": "ComfyUI-Direct3D-S2" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-HiDream-I1": [ + [ + "GenerateHiDreamImage", + "LoadHiDreamModel", + "SaveHiDreamImage" + ], + { + "title_aux": "ComfyUI-HiDream-I1" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-HiggsAudio": [ + [ + "HiggsAudio", + "LoadHiggsAudioModel", + "LoadHiggsAudioPrompt", + "LoadHiggsAudioSystemPrompt", + "LoadHiggsAudioTokenizer", + "SaveHiggsAudio" + ], + { + "title_aux": "ComfyUI-HiggsAudio" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Hunyuan3D-2.1": [ + [ + "Hunyuan3DShapeGeneration", + "Hunyuan3DTexureSynthsis", + "LoadHunyuan3DImage", + "LoadHunyuan3DModel" + ], + { + "title_aux": "ComfyUI-Hunyuan3D-2.1" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-HunyuanPortrait": [ + [ + "HunyuanPortrait", + "LoadHunyuanPortraitConfig", + "LoadHunyuanPortraitImage", + "LoadHunyuanPortraitVideo" + ], + { + "title_aux": "ComfyUI-HunyuanPortrait" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Kimi-VL": [ + [ + "KimiVL", + "LoadKimiVLImage", + "LoadKimiVLModel", + "SaveKimiVLText" + ], + { + "title_aux": "ComfyUI-Kimi-VL" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-LLaMA-Mesh": [ + [ + "Apply Gradient Color", + "Chat LLaMa Mesh", + "Visualize Mesh" + ], + { + "title_aux": "ComfyUI-LLaMA-Mesh" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-LayerAnimate": [ + [ + "LayerAnimateNode", + "LoadImages", + "LoadPretrainedModel" + ], + { + "title_aux": "ComfyUI-LayerAnimate" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-LiveCC": [ + [ + "LiveCC", + "LiveCCPrompt", + "LoadLiveCCModel", + "LoadLiveCCVideo", + "SaveLiveCCText" + ], + { + "title_aux": "ComfyUI-LiveCC" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Matrix-Game": [ + [ + "GameVideoGenerator", + "LoadDiTModel", + "LoadGameImage", + "LoadMouseIcon", + "LoadTextEncoderModel", + "LoadVAEModel", + "MatrixGameOutput" + ], + { + "title_aux": "ComfyUI-Matrix-Game" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-MoviiGen": [ + [ + "LoadMoviiGenModel", + "MoviiGen", + "MoviiGenPrompt", + "SaveMoviiGen" + ], + { + "title_aux": "ComfyUI-MoviiGen" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Multiverse": [ + [ + "PlayGame" + ], + { + "title_aux": "ComfyUI-Multiverse" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Muyan-TTS": [ + [ + "Generate", + "InputText", + "LoadMuyanTTSModel", + "LoadRefAudio", + "PromptText", + "SaveMuyanTTSAudio" + ], + { + "title_aux": "ComfyUI-Muyan-TTS" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-OmniGen2": [ + [ + "LoadOmniGen2Image", + "LoadOmniGen2Model", + "OmniGen2" + ], + { + "title_aux": "ComfyUI-OmniGen2" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-OrpheusTTS": [ + [ + "Long Text Generation", + "Single Text Generation" + ], + { + "title_aux": "ComfyUI-OrpheusTTS" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-PhotoDoodle": [ + [ + "PhotoDoodle Gen" + ], + { + "title_aux": "ComfyUI-PhotoDoodle" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-PosterCraft": [ + [ + "LoadCustomTransformer", + "LoadPipeline", + "LoadPosterCraftPrompt", + "LoadQwenModel", + "PosterCraft", + "SavePosterCraft" + ], + { + "title_aux": "ComfyUI-PosterCraft" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-SkyReels-A2": [ + [ + "A2Prompt", + "A2VideoGenerator", + "CombineImages", + "LoadA2Model", + "NegativePrompt", + "ReferenceImages", + "SaveVideo" + ], + { + "title_aux": "ComfyUI-SkyReels-A2" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-SkyworkUniPic": [ + [ + "Image2Text", + "ImageEditing", + "LoadSkyworkUniPicCheckpoint", + "LoadSkyworkUniPicConfig", + "LoadSkyworkUniPicImage", + "LoadSkyworkUniPicPrompt", + "SaveSkyworkUniPicEditImage", + "SaveSkyworkUniPicImage", + "Text2Image" + ], + { + "title_aux": "ComfyUI-SkyworkUniPic" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-SoundHub": [ + [ + "Load Audio", + "Preview Audio", + "Save Audio" + ], + { + "title_aux": "ComfyUI-SoundHub" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Step1X-3D": [ + [ + "GeometryGeneration", + "GeometryLabelGeneration", + "LoadInputImage", + "LoadStep1X3DGeometryLabelModel", + "LoadStep1X3DGeometryModel", + "LoadStep1X3DTextureModel", + "LoadUntexturedMesh", + "SaveTexturedMesh", + "SaveUntexturedMesh", + "TexureSynthsis" + ], + { + "title_aux": "ComfyUI-Step1X-3D" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-StyleStudio": [ + [ + "StyleStudio Image Stylization" + ], + { + "title_aux": "ComfyUI-StyleStudio" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-ThinkSound": [ + [ + "LoadCaption", + "LoadCoTDescription", + "LoadOThinkSoundVideo", + "ThinkSound" + ], + { + "title_aux": "ComfyUI-ThinkSound" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-UNO": [ + [ + "ConfigSave", + "ImageConcat", + "ImagePathLoader", + "ImageSave", + "UNOGenerator", + "UNOParams" + ], + { + "title_aux": "ComfyUI-UNO" + } + ], + "https://github.com/Yuan-ManX/ComfyUI-Vui": [ + [ + "LoadVuiModel", + "LoadVuiPrompt", + "SaveVui", + "Vui" + ], + { + "title_aux": "ComfyUI-Vui" + } + ], + "https://github.com/Yukinoshita-Yukinoe/ComfyUI-Qwen-Node": [ + [ + "QwenAPILLMNode" + ], + { + "title_aux": "ComfyUI-Qwen-Node" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-APISR": [ [ "APISR_Lterative_Zho", @@ -4312,6 +15896,14 @@ "title_aux": "APISR IN COMFYUI" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Animated-optical-illusions": [ + [ + "AOI_Processing_Zho" + ], + { + "title_aux": "ComfyUI-Animated-optical-illusions" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-ArtGallery": [ [ "ArtGallery_Zho", @@ -4334,13 +15926,14 @@ "title_aux": "ComfyUI-BRIA_AI-RMBG" } ], - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-BiRefNet-ZHO": [ + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DeepSeek-JanusPro": [ [ - "BiRefNet_ModelLoader_Zho", - "BiRefNet_Zho" + "Janus_ImageGeneration", + "Janus_ModelLoader", + "Janus_MultimodalUnderstanding" ], { - "title_aux": "ComfyUI-BiRefNet-ZHO" + "title_aux": "ComfyUI-DeepSeek-JanusPro" } ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-DepthFM": [ @@ -4353,25 +15946,6 @@ "title_aux": "DepthFM IN COMFYUI" } ], - "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Gemini": [ - [ - "ConcatText_Zho", - "DisplayText_Zho", - "Gemini_15P_API_S_Advance_Zho", - "Gemini_15P_API_S_Chat_Advance_Zho", - "Gemini_API_Chat_Zho", - "Gemini_API_S_Chat_Zho", - "Gemini_API_S_Vsion_ImgURL_Zho", - "Gemini_API_S_Zho", - "Gemini_API_Vsion_ImgURL_Zho", - "Gemini_API_Zho", - "Gemini_FileUpload_API_S_Zho", - "Gemini_File_API_S_Zho" - ], - { - "title_aux": "ComfyUI-Gemini" - } - ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID": [ [ "IDBaseModelLoader_fromhub", @@ -4386,6 +15960,16 @@ "title_aux": "ComfyUI-InstantID" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-Phi-3-mini": [ + [ + "Phi3mini_4k_Chat_Zho", + "Phi3mini_4k_ModelLoader_Zho", + "Phi3mini_4k_Zho" + ], + { + "title_aux": "Phi-3-mini in ComfyUI" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO": [ [ "BaseModel_Loader_fromhub", @@ -4464,6 +16048,16 @@ "title_aux": "ComfyUI-Text_Image-Composite [WIP]" } ], + "https://github.com/ZHO-ZHO-ZHO/ComfyUI-UltraEdit-ZHO": [ + [ + "UltraEdit_Generation_Zho", + "UltraEdit_ModelLoader_Zho", + "UltraEdit_ModelLoader_local_Zho" + ], + { + "title_aux": "ComfyUI-UltraEdit-ZHO" + } + ], "https://github.com/ZHO-ZHO-ZHO/ComfyUI-YoloWorld-EfficientSAM": [ [ "ESAM_ModelLoader_Zho", @@ -4483,6 +16077,42 @@ "title_aux": "comfyui-portrait-master-zh-cn" } ], + "https://github.com/ZXL-Xinram/ComfyUI-AutoFlow": [ + [ + "AutoFlowPathJoiner", + "AutoFlowPathParser", + "AutoFlowPathValidator", + "AutoFlowStringCase", + "AutoFlowStringConcat", + "AutoFlowStringFormat", + "AutoFlowStringMultiConcat", + "AutoFlowStringReplace", + "AutoFlowStringSplit", + "AutoFlowTimestampFormatter", + "AutoFlowTimestampGenerator" + ], + { + "title_aux": "ComfyUI-AutoFlow" + } + ], + "https://github.com/ZZXYWQ/ComfyUI-ZZXYWQ": [ + [ + "StreamRecorder", + "VideoFormatConverter", + "ZZX_PaintsUndo" + ], + { + "title_aux": "ZZX Nodes" + } + ], + "https://github.com/Zachary116699/ComfyUI-LoadImageWithMetaDataEx": [ + [ + "ZLoadImageWithMetaDataFP" + ], + { + "title_aux": "ComfyUI_LoadImageWithMetaDataEx" + } + ], "https://github.com/ZaneA/ComfyUI-ImageReward": [ [ "ImageRewardLoader", @@ -4492,17 +16122,166 @@ "title_aux": "ImageReward" } ], + "https://github.com/Zar4X/ComfyUI-Batch-Process": [ + [ + "ImageBatchLoader", + "ImageBatchSaver", + "LoraBatchLoader", + "SimpleImageTagger", + "TXTBatchLoader", + "TextModifyTool" + ], + { + "title_aux": "ComfyUI-Batch-Process" + } + ], + "https://github.com/Zar4X/ComfyUI-Image-Resizing": [ + [ + "CalculateAspectRatioExtension", + "CalculateUpscaleFactor", + "CalculateUpscaleRounds", + "ExtendCanvasByPercentage", + "ExtendCanvasByPercentage (ZX)", + "ImageAspectRatioExtractor", + "ImageCropByPercentage", + "ImageResolutionExtractor", + "MaskCropByPercentage", + "ResizeToMultiple" + ], + { + "title_aux": "ComfyUI-Image-Resizing" + } + ], + "https://github.com/Zch6111/AI_Text_Comfyui": [ + [ + "AutoPromptGeneratorNode", + "GeminiImageToPrompt", + "SmartAutoPromptNode" + ], + { + "title_aux": "AI_Text_Comfyui" + } + ], + "https://github.com/ZeDarkAdam/ComfyUI-Embeddings-Tools": [ + [ + "EmbeddingsNameLoader", + "EmbendingList" + ], + { + "title_aux": "ComfyUI-Embeddings-Tools" + } + ], + "https://github.com/Zehong-Ma/ComfyUI-MagCache": [ + [ + "CompileModel", + "MagCache", + "MagCacheCalibration" + ], + { + "title_aux": "ComfyUI-MagCache" + } + ], + "https://github.com/Zeks/comfyui-rapidfire": [ + [ + "BracketEscaper", + "CachedCheckpoint", + "CsvWriterNode", + "HyperTile //Inspire", + "ImmatureImageCounter", + "ImmatureImageDataLoader", + "KSampler //Inspire", + "KSamplerAdvanced //Inspire", + "KSamplerAdvancedPipe //Inspire", + "KSamplerAdvancedProgress //Inspire", + "KSamplerPipe //Inspire", + "KSamplerProgress //Inspire", + "MultiModelAdvancedKsampler", + "MultiModelCheckpointIterator", + "MultiModelPromptSaver", + "MultiModelPromptSaverIterative", + "MultiModelPromptSaverIterativeFirst", + "Ranbooru", + "RandomCharacterSelector", + "RandomNoise //Inspire", + "RapidSchedulerCombo", + "RapidSchedulerSelector", + "ScheduledCFGGuider //Inspire", + "ScheduledPerpNegCFGGuider //Inspire", + "StringHasher" + ], + { + "title_aux": "comfyui-rapidfire" + } + ], + "https://github.com/ZeroSpaceStudios/ComfyUI-ZSNodes": [ + [ + "ZS_BoundingBoxCrop", + "ZS_SaveImage" + ], + { + "title_aux": "ComfyUI-ZSNodes" + } + ], + "https://github.com/a-l-e-x-d-s-9/ComfyUI-SaveCheckpointWithMetadata": [ + [ + "SaveCheckpointWithMetadata" + ], + { + "title_aux": "Save Checkpoint with Metadata" + } + ], + "https://github.com/a-und-b/ComfyUI_Delay": [ + [ + "Add Delay" + ], + { + "title_aux": "ComfyUI_Delay" + } + ], + "https://github.com/a-und-b/ComfyUI_IC-Light-v2_fal": [ + [ + "ICLightV2" + ], + { + "title_aux": "IC-Light V2 (fal.ai)" + } + ], + "https://github.com/a-und-b/ComfyUI_JSON_Helper": [ + [ + "JSONStringToObjectNode" + ], + { + "title_aux": "ComfyUI_JSON_Helper" + } + ], + "https://github.com/a-und-b/ComfyUI_LoRA_from_URL": [ + [ + "Load LoRA From URL" + ], + { + "title_aux": "ComfyUI_LoRA_from_URL" + } + ], + "https://github.com/a-und-b/ComfyUI_MaskAreaCondition": [ + [ + "MaskAreaCondition", + "SelectData" + ], + { + "title_aux": "ComfyUI Mask Area Condition" + } + ], "https://github.com/a1lazydog/ComfyUI-AudioScheduler": [ [ "AmplitudeToGraph", "AmplitudeToNumber", "AudioToAmplitudeGraph", + "AudioToAudioData", "AudioToFFTs", "BatchAmplitudeSchedule", "ClipAmplitude", "FloatArrayToGraph", "GateNormalizedAmplitude", - "LoadAudio", "NormalizeAmplitude", "NormalizedAmplitudeDrivenString", "NormalizedAmplitudeToGraph", @@ -4513,6 +16292,22 @@ "title_aux": "ComfyUI-AudioScheduler" } ], + "https://github.com/abdozmantar/ComfyUI-DeepExtract": [ + [ + "VocalAndSoundRemoverNode" + ], + { + "title_aux": "DeepExtract" + } + ], + "https://github.com/aburahamu/ComfyUI-IsNiceParts": [ + [ + "NiceHand" + ], + { + "title_aux": "ComfyUI-IsNiceParts" + } + ], "https://github.com/aburahamu/ComfyUI-RequestsPoster": [ [ "GetImageFromSD3byI2I", @@ -4527,6 +16322,7 @@ ], "https://github.com/abyz22/image_control": [ [ + "abyz22_AddPrompt", "abyz22_Convertpipe", "abyz22_Editpipe", "abyz22_FirstNonNull", @@ -4536,7 +16332,9 @@ "abyz22_ImpactWildcardEncode_GetPrompt", "abyz22_Ksampler", "abyz22_Padding Image", + "abyz22_RandomMask", "abyz22_RemoveControlnet", + "abyz22_ResizeOpenpose", "abyz22_SaveImage", "abyz22_SetQueue", "abyz22_ToBasicPipe", @@ -4544,10 +16342,12 @@ "abyz22_blend_onecolor", "abyz22_blendimages", "abyz22_bypass", + "abyz22_censoring", "abyz22_drawmask", "abyz22_lamaInpaint", "abyz22_lamaPreprocessor", "abyz22_makecircles", + "abyz22_path_generator", "abyz22_setimageinfo", "abyz22_smallhead" ], @@ -4555,6 +16355,19 @@ "title_aux": "image_control" } ], + "https://github.com/acorderob/sd-webui-prompt-postprocessor": [ + [ + "ACBPPPSelectVariable", + "ACBPromptPostProcessor" + ], + { + "author": "ACB", + "description": "Node for processing prompts. Includes the following options: send to negative prompt, set variables, if/elif/else command for conditional content, wildcards and choices.", + "nickname": "ACB PPP", + "title": "Prompt Post Processor", + "title_aux": "Prompt PostProcessor" + } + ], "https://github.com/adbrasi/ComfyUI-TrashNodes-DownloadHuggingface": [ [ "DownloadLinkChecker", @@ -4577,6 +16390,37 @@ "title_aux": "DynamicPrompts Custom Nodes" } ], + "https://github.com/adigayung/ComfyUI-Translator": [ + [ + "CLIP Text Encode (Auto Translate)", + "Prompt Text (Auto Translate)" + ], + { + "title_aux": "ComfyUI-Translator" + } + ], + "https://github.com/adrianschubek/comfyui-zeug": [ + [ + "ZeugBool", + "ZeugCleanGpuPass", + "ZeugFloat", + "ZeugFloatToStr", + "ZeugInt", + "ZeugIntToStr", + "ZeugIntToWxH", + "ZeugJoinStr", + "ZeugJoinStrList", + "ZeugPrintPass", + "ZeugSplitStrList", + "ZeugStr", + "ZeugStrToFloat", + "ZeugStrToInt", + "ZeugWxHToInt" + ], + { + "title_aux": "comfyui-zeug" + } + ], "https://github.com/adriflex/ComfyUI_Blender_Texdiff": [ [ "ViewportColor", @@ -4628,12 +16472,155 @@ "title_aux": "ComfyUI-styles-all" } ], + "https://github.com/aesethtics/ComfyUI-Utilitools": [ + [ + "UtilAdd", + "UtilAspectRatio", + "UtilBatchController", + "UtilBooleanAND", + "UtilBooleanNOT", + "UtilBooleanOR", + "UtilCalculator", + "UtilConstantFloat", + "UtilConstantInt", + "UtilConstantString", + "UtilCounter", + "UtilDateTimestamp", + "UtilDivide", + "UtilFloatToInt", + "UtilIfThenElse", + "UtilImageDimensions", + "UtilIntToFloat", + "UtilListCreate", + "UtilListIndex", + "UtilMultiply", + "UtilPassthrough", + "UtilStringReplace", + "UtilSubtract", + "UtilSwitch", + "UtilTextConcat", + "UtilWhateverToString" + ], + { + "title_aux": "ComfyUI Utilitools Nodes" + } + ], + "https://github.com/agilly1989/ComfyUI_agilly1989_motorway": [ + [ + "MotorwayFloat", + "MotorwayInt", + "MotorwaySeed", + "MotorwayStr", + "MotorwayStrMulti" + ], + { + "title_aux": "ComfyUI_agilly1989_motorway" + } + ], + "https://github.com/ahernandezmiro/ComfyUI-GCP_Storage_tools": [ + [ + "GCPReadImageNode", + "GCPWriteImageNode" + ], + { + "title_aux": "ComfyUI-GCP_Storage_tools" + } + ], + "https://github.com/ai-liam/comfyui-liam": [ + [ + "AiStoreAzureGPTLiam", + "GetBetterDepthImage", + "LiamLibDisplayText", + "LiamLibFillImage", + "LiamLibImageToGray", + "LiamLibLoadImage", + "LiamLibMergeText", + "LiamLibSaveImg", + "LiamLibSaveText", + "OllamaApiTNodeLiam", + "PreviewReliefImage", + "SpeechRecognitionLiam", + "SpeechSynthesisLiam" + ], + { + "title_aux": "LiamUtil" + } + ], "https://github.com/ai-liam/comfyui_liam_util": [ [ "LiamLoadImage" ], { - "title_aux": "LiamUtil" + "title_aux": "LiamUtil (single node)" + } + ], + "https://github.com/ai-shizuka/ComfyUI-tbox": [ + [ + "AnimalPosePreprocessor", + "BatchManager", + "CannyPreprocessor", + "ConstrainImageNode", + "DWPosePreprocessor", + "DWPreprocessor", + "DensePosePreprocessor", + "GFPGANNode", + "ImageLoader", + "ImageResize", + "ImageSaver", + "ImageSize", + "ImagesSaver", + "LineArtPreprocessor", + "LineartStandardPreprocessor", + "MaskAddNode", + "MiDaSDepthPreprocessor", + "PurgeVRAMNode", + "VideoInfo", + "VideoLoader", + "VideoSaver", + "WatermarkNode" + ], + { + "author": "tstandley", + "title_aux": "ComfyUI-tbox" + } + ], + "https://github.com/aiaiaikkk/ComfyUI-Curve": [ + [ + "CameraRawEnhanceNode", + "CameraRawToneCurveNode", + "ColorGradingNode", + "CurvePresetNode", + "GaussianBlurNode", + "HistogramAnalysisNode", + "PhotoshopCurveNode", + "PhotoshopHSLNode", + "PhotoshopLevelsNode" + ], + { + "title_aux": "ComfyUI-Curve" + } + ], + "https://github.com/aiaiaikkk/comfyui-api-image-edit": [ + [ + "APIImageEditNode" + ], + { + "title_aux": "ComfyUI API Image Edit" + } + ], + "https://github.com/aiaiaikkk/super-prompt-canvas": [ + [ + "AdvancedBackgroundRemoval", + "BackgroundRemovalSettings", + "CustomModelPromptGenerator", + "KontextSuperPrompt", + "LRPGCanvas", + "OllamaKontextPromptGenerator", + "OllamaServiceManager", + "TextGenWebUIFluxKontextEnhancer" + ], + { + "title_aux": "super-prompt-canvas" } ], "https://github.com/aianimation55/ComfyUI-FatLabels": [ @@ -4644,6 +16631,403 @@ "title_aux": "Comfy UI FatLabels" } ], + "https://github.com/aiartvn/A2V_Multi_Image_Composite": [ + [ + "A2V_Multi_Image_Composite" + ], + { + "title_aux": "A2V Multi Image Composite" + } + ], + "https://github.com/aicuai/aicu-comfyui-stability-ai-api": [ + [ + "Preview3DModel", + "Save3DModel", + "StabilityControlSketch", + "StabilityControlStructure", + "StabilityControlStyle", + "StabilityEdit", + "StabilityImageCore", + "StabilityImageSD3", + "StabilityImageToVideo", + "StabilityImageUltra", + "StabilityUpscaleConservative", + "StabilityUpscaleCreative", + "StabilityUpscaleFast", + "StableFast3D", + "StablePointAware3D" + ], + { + "title_aux": "aicu-comfyui-stability-ai-api" + } + ], + "https://github.com/aidec/Comfyui_TextBatch_aidec": [ + [ + "ImageFilenameProcessor", + "ImageInfoExtractor", + "ImageQueueProcessor", + "LoadImagesFromDirBatch", + "PathParser", + "TextBatch", + "TextQueueProcessor", + "TextSplitCounter" + ], + { + "title_aux": "Comfyui_TextBatch_aidec" + } + ], + "https://github.com/aidenli/ComfyUI_NYJY": [ + [ + "BailianChat", + "BailianChatOption", + "BailianVL", + "BailianVLOption", + "CivitaiPrompt", + "CommonLLMChat", + "ConvertAnyToString", + "ConvertStringToNumber", + "CustomLatentImage-NYJY", + "CustomLatentImageSimple", + "FloatSlider-NYJY", + "FluxProOnline", + "GetItemFromList", + "JoyCaption", + "JoyCaptionAlpha1Online", + "JoyCaptionAlpha2Online", + "JoyTag", + "JsonDumps", + "JsonGetValueByKeys", + "JsonLoads", + "ReadFileToString", + "SplitString", + "Translate" + ], + { + "title_aux": "ComfyUI_NYJY" + } + ], + "https://github.com/aigc-apps/EasyAnimate": [ + [ + "CameraBasicFromChaoJie", + "CameraCombineFromChaoJie", + "CameraJoinFromChaoJie", + "CameraTrajectoryFromChaoJie", + "CreateTrajectoryBasedOnKJNodes", + "EasyAnimateI2VSampler", + "EasyAnimateT2VSampler", + "EasyAnimateV2VSampler", + "EasyAnimateV5_I2VSampler", + "EasyAnimateV5_T2VSampler", + "EasyAnimateV5_V2VSampler", + "EasyAnimate_TextBox", + "ImageMaximumNode", + "LoadEasyAnimateLora", + "LoadEasyAnimateModel", + "TextBox" + ], + { + "title_aux": "Video Generation Nodes for EasyAnimate" + } + ], + "https://github.com/aigc-apps/VideoX-Fun": [ + [ + "CameraBasicFromChaoJie", + "CameraCombineFromChaoJie", + "CameraJoinFromChaoJie", + "CameraTrajectoryFromChaoJie", + "CogVideoXFunInpaintSampler", + "CogVideoXFunT2VSampler", + "CogVideoXFunV2VSampler", + "CreateTrajectoryBasedOnKJNodes", + "FunCompile", + "FunRiflex", + "FunTextBox", + "ImageMaximumNode", + "LoadCogVideoXFunLora", + "LoadCogVideoXFunModel", + "LoadWan2_2FunLora", + "LoadWan2_2FunModel", + "LoadWan2_2Lora", + "LoadWan2_2Model", + "LoadWanFunLora", + "LoadWanFunModel", + "LoadWanLora", + "LoadWanModel", + "VideoToCanny", + "VideoToDepth", + "VideoToOpenpose", + "Wan2_2FunInpaintSampler", + "Wan2_2FunT2VSampler", + "Wan2_2FunV2VSampler", + "Wan2_2I2VSampler", + "Wan2_2T2VSampler", + "WanFunInpaintSampler", + "WanFunT2VSampler", + "WanFunV2VSampler", + "WanI2VSampler", + "WanT2VSampler" + ], + { + "title_aux": "VideoX-Fun" + } + ], + "https://github.com/aimerib/ComfyUI_HigherBitDepthSaveImage": [ + [ + "SaveImageHigherBitDepth" + ], + { + "title_aux": "ComfyUI-HigherBitDepthSaveImage" + } + ], + "https://github.com/ainewsto/Comfyui-chatgpt-api": [ + [ + "ComfyuiChatGPTApi", + "Comfyui_gpt_image_1", + "Comfyui_gpt_image_1_edit" + ], + { + "title_aux": "Comfyui-chatgpt-api" + } + ], + "https://github.com/ainewsto/Comfyui-google-veo2-api": [ + [ + "ComfyuiGoogleVeo2" + ], + { + "title_aux": "Comfyui-google-veo2-api" + } + ], + "https://github.com/ainewsto/Comfyui_Comfly_v2": [ + [ + "ComflyChatGPTApi", + "ComflyGeminiAPI", + "ComflyJimengApi", + "ComflyJimengVideoApi", + "ComflySeededit", + "Comfly_Doubao_Seededit", + "Comfly_Doubao_Seedream", + "Comfly_Flux_Kontext", + "Comfly_Flux_Kontext_Edit", + "Comfly_Flux_Kontext_bfl", + "Comfly_Googel_Veo3", + "Comfly_MiniMax_video", + "Comfly_Mj", + "Comfly_Mj_swap_face", + "Comfly_Mju", + "Comfly_Mjv", + "Comfly_gpt_image_1", + "Comfly_gpt_image_1_edit", + "Comfly_kling_image2video", + "Comfly_kling_multi_image2video", + "Comfly_kling_text2video", + "Comfly_lip_sync", + "Comfly_mj_video", + "Comfly_mj_video_extend", + "Comfly_mjstyle", + "Comfly_nano_banana", + "Comfly_nano_banana_edit", + "Comfly_nano_banana_fal", + "Comfly_qwen_image", + "Comfly_qwen_image_edit", + "Comfly_upload", + "Comfly_video_extend" + ], + { + "title_aux": "Comfyui_Comfly_v2" + } + ], + "https://github.com/ainewsto/comfyui-labs-google": [ + [ + "ComfyUI-ImageFx", + "ComfyUI-Whisk", + "ComfyUI-Whisk-Prompts" + ], + { + "title_aux": "comfyui-labs-google" + } + ], + "https://github.com/aisabervisionlab/ComfyUI_merge_ASVL": [ + [ + "ASVL" + ], + { + "title_aux": "ComfyUI_merge_ASVL" + } + ], + "https://github.com/aistudynow/Comfyui-HunyuanFoley": [ + [ + "HunyuanDependenciesLoader", + "HunyuanFoleySampler", + "HunyuanFoleyTorchCompile", + "HunyuanModelLoader", + "SelectAudioFromBatch" + ], + { + "title_aux": "Comfyui-HunyuanFoley" + } + ], + "https://github.com/ajbergh/comfyui-ethnicity_hairstyle_clip_encoder": [ + [ + "CLIPTextEncodeWithExtras" + ], + { + "title_aux": "comfyui-ethnicity_hairstyle_clip_encoder" + } + ], + "https://github.com/akatz-ai/ComfyUI-AKatz-Nodes": [ + [ + "AK_AdjustDepthmapBrightness", + "AK_AdjustListSize", + "AK_AnimatedDilationMaskLinear", + "AK_AudioFramesyncSchedule", + "AK_AudioreactiveDilateMaskInfinite", + "AK_AudioreactiveDilationMask", + "AK_AudioreactiveDynamicDilationMask", + "AK_BinaryAmplitudeGate", + "AK_BlobTrack", + "AK_BrightnessToFloatList", + "AK_ConvertListToFloatList", + "AK_DilateMaskLinearInfinite", + "AK_FadeBetweenBatches", + "AK_FlexFeatureToFloatList", + "AK_FloatListToDilateMaskSchedule", + "AK_FloatListToFlexFeature", + "AK_IPAdapterCustomWeights", + "AK_KeyframeScheduler", + "AK_LagChop", + "AK_ListToNumpyFloatArray", + "AK_MakeDepthmapSeamless", + "AK_NormalizeMaskImage", + "AK_RescaleFloatList", + "AK_ScaleMask", + "AK_ScheduledBinaryComparison", + "AK_ShrinkNumSequence", + "AK_SplitImageBatch", + "AK_VideoSpeedAdjust", + "Scale Mask Node" + ], + { + "author": "akatz", + "description": "Custom node pack for nodes I use in my workflows.", + "nickname": "Akatz Custom Nodes", + "title": "Akatz Custom Nodes", + "title_aux": "Akatz Custom Nodes" + } + ], + "https://github.com/akatz-ai/ComfyUI-Basic-Math": [ + [ + "BasicMath", + "BooleanInput", + "BooleanLogic", + "BooleanUnary", + "FloatComparison", + "FloatInput", + "IntMath", + "IntegerComparison", + "IntegerInput", + "MathConstants", + "NumberClamp", + "NumberComparison", + "NumberInRange", + "NumberLerp", + "NumberRound", + "PreciseFloatInput", + "StringComparison", + "StringInput", + "ToBool", + "ToFloat", + "ToInt", + "ToString", + "UnaryMath" + ], + { + "title_aux": "ComfyUI-Basic-Math" + } + ], + "https://github.com/akatz-ai/ComfyUI-DepthCrafter-Nodes": [ + [ + "DepthCrafter", + "DownloadAndLoadDepthCrafterModel" + ], + { + "author": "akatz", + "description": "Custom nodes for use with DepthCrafter. Create consistent depth maps for your videos.", + "nickname": "DepthCrafter Nodes", + "title": "DepthCrafter Nodes", + "title_aux": "DepthCrafter Nodes" + } + ], + "https://github.com/akatz-ai/ComfyUI-Depthflow-Nodes": [ + [ + "Depthflow", + "DepthflowEffectColor", + "DepthflowEffectDOF", + "DepthflowEffectInpaint", + "DepthflowEffectVignette", + "DepthflowMotionArc", + "DepthflowMotionCosine", + "DepthflowMotionLinear", + "DepthflowMotionPresetCircle", + "DepthflowMotionPresetDolly", + "DepthflowMotionPresetHorizontal", + "DepthflowMotionPresetOrbital", + "DepthflowMotionPresetVertical", + "DepthflowMotionPresetZoom", + "DepthflowMotionSetTarget", + "DepthflowMotionSine", + "DepthflowMotionTriangle" + ], + { + "author": "akatz", + "description": "Custom nodes for use with Tremeschin's Depthflow library.", + "nickname": "Depthflow Nodes", + "title": "Depthflow Nodes", + "title_aux": "\ud83c\udf0a Depthflow Nodes" + } + ], + "https://github.com/akatz-ai/ComfyUI-X-Portrait-Nodes": [ + [ + "DownloadXPortraitModel", + "XPortrait" + ], + { + "author": "akatz", + "description": "Custom nodes for use with X-Portrait. Animate portraits with an input video and a reference image.", + "nickname": "X-Portrait Nodes", + "title": "X-Portrait Nodes", + "title_aux": "ComfyUI-X-Portrait-Nodes" + } + ], + "https://github.com/akierson/ComfyUI-textnodes": [ + [ + "Prompt Truncate", + "Tidy Tags" + ], + { + "title_aux": "ComfyUI-textnodes" + } + ], + "https://github.com/akierson/comfyui-colornodes": [ + [ + "Color Picker", + "Color to Hex", + "Color to RGB", + "Image Replace Color", + "Invert Color" + ], + { + "title_aux": "comfyui-colornodes" + } + ], + "https://github.com/al-swaiti/All-IN-ONE-style": [ + [ + "ComfyUIStyler", + "menus" + ], + { + "title_aux": "All-IN-ONE-style" + } + ], "https://github.com/al-swaiti/ComfyUI-CascadeResolutions": [ [ "CascadeResolutions" @@ -4652,29 +17036,240 @@ "title_aux": "ComfyUI-CascadeResolutions" } ], - "https://github.com/alexopus/ComfyUI-Image-Saver": [ + "https://github.com/al-swaiti/ComfyUI-OllamaGemini": [ [ - "Cfg Literal (Image Saver)", - "Checkpoint Loader with Name (Image Saver)", - "Float Literal (Image Saver)", - "Image Saver", - "Int Literal (Image Saver)", - "Sampler Selector (Image Saver)", - "Scheduler Selector (Image Saver)", - "Seed Generator (Image Saver)", - "String Literal (Image Saver)", - "Width/Height Literal (Image Saver)" + "ClaudeAPI", + "GeminiAPI", + "GeminiBRIA_RMBG", + "GeminiBRIA_RMBG_Safe", + "GeminiCLIPSeg", + "GeminiCombineSegMasks", + "GeminiComfyUIStyler", + "GeminiConvertRasterToVector", + "GeminiFLUXResolutions", + "GeminiImageGenerator", + "GeminiSVGPreview", + "GeminiSaveSVG", + "GeminiSaveText", + "GeminiSmartPromptGenerator", + "GeminiTextSplitter", + "ListAvailableModels", + "OllamaAPI", + "OpenAIAPI", + "QwenAPI", + "style_menus" ], { - "title_aux": "ComfyUI Image Saver" + "title_aux": "GeminiOllama ComfyUI Extension" } ], - "https://github.com/alisson-anjos/ComfyUI-LLaVA-Describer": [ + "https://github.com/alFrame/ComfyUI-AF-EditGeneratedPrompt": [ [ - "LLaVaDescriber" + "AF_Edit_Generated_Prompt" ], { - "title_aux": "ComfyUI-LLaVA-Describer" + "title_aux": "AF - Edit Generated Prompt" + } + ], + "https://github.com/alanhuang67/ComfyUI-FAI-Node": [ + [ + "FAIDynamicMask", + "FAIScaleScheduler", + "FAI_Voronoi_Generator" + ], + { + "title_aux": "FAI-Node" + } + ], + "https://github.com/alastor-666-1933/caching_to_not_waste": [ + [ + "caching_condition", + "caching_controlnet", + "caching_from_combined_images", + "caching_image", + "caching_mask", + "caching_text", + "caching_wildcard_list" + ], + { + "title_aux": "Caching to not Waste" + } + ], + "https://github.com/alchemine/comfyui-alchemine-pack": [ + [ + "DanbooruPopularPostsTagsRetriever", + "DanbooruPostTagsRetriever", + "DanbooruRelatedTagsRetriever", + "FilterSubtags", + "FilterTags", + "FixBreakAfterTIPO", + "GeminiInference", + "OllamaInference", + "ProcessTags", + "ReplaceUnderscores", + "SignalSwitch", + "TextEditingInference", + "TokenAnalyzer", + "WidthHeight" + ], + { + "title_aux": "ComfyUI-Alchemine-Pack" + } + ], + "https://github.com/aleolidev/comfy_kaizen_package": [ + [ + "KaizenImageComposite" + ], + { + "title_aux": "Kaizen Package" + } + ], + "https://github.com/alessandroperilli/OCS_Nodes": [ + [ + "OCS_CloudImageSize", + "OCS_ImageListFilter", + "OCS_ImageSaver", + "OCS_LocalImageSize", + "OCS_LocalVideoSize", + "OCS_ModelDownloader" + ], + { + "title_aux": "Open Creative Studio Nodes" + } + ], + "https://github.com/alessandrozonta/ComfyUI-CenterNode": [ + [ + "BBoxCrop" + ], + { + "title_aux": "ComfyUI-CenterNode" + } + ], + "https://github.com/alessandrozonta/ComfyUI-Layers": [ + [ + "LayersSaver - Save Layer", + "LayersSaver - Save Layer From Images" + ], + { + "title_aux": "Save Layers Node for ComfyUI" + } + ], + "https://github.com/alessandrozonta/ComfyUI-OpenPose": [ + [ + "OpenPose - Get poses" + ], + { + "author": "joe", + "title_aux": "OpenPose Node" + } + ], + "https://github.com/alessandrozonta/ComfyUI-PoseDirection": [ + [ + "OpenPose - Get direction" + ], + { + "title_aux": "ComfyUI-PoseDirection" + } + ], + "https://github.com/alessandrozonta/Comfyui-LoopLoader": [ + [ + "LoadLoopImagesFromDir" + ], + { + "title_aux": "Comfyui-LoopLoader" + } + ], + "https://github.com/alexcong/ComfyUI_QwenVL": [ + [ + "Qwen2.5", + "Qwen2.5VL" + ], + { + "title_aux": "Qwen2-VL wrapper for ComfyUI" + } + ], + "https://github.com/alexgenovese/ComfyUI-UNO-Flux": [ + [ + "UNOGenerate", + "UNOModelLoader" + ], + { + "title_aux": "ComfyUI UNO Nodes" + } + ], + "https://github.com/alexgenovese/ComfyUI_HF_Servelress_Inference": [ + [ + "HF_QuestionAnswer", + "Job_Caption", + "Joy_caption", + "Joy_caption_load" + ], + { + "author": "Alex Genovese", + "description": "Huggingface Api Serverless request", + "nickname": "alexgenovese", + "title": "Huggingface Api Serverless", + "title_aux": "Huggingface Api Serverless" + } + ], + "https://github.com/alexisrolland/ComfyUI-Blender": [ + [ + "BlenderInputBoolean", + "BlenderInputCombo", + "BlenderInputFloat", + "BlenderInputGroup", + "BlenderInputInt", + "BlenderInputLoad3D", + "BlenderInputLoadCheckpoint", + "BlenderInputLoadDiffusionModel", + "BlenderInputLoadImage", + "BlenderInputLoadLora", + "BlenderInputSeed", + "BlenderInputString", + "BlenderInputStringMultiline", + "BlenderOutputDownload3D", + "BlenderOutputSaveGlb", + "BlenderOutputSaveImage" + ], + { + "title_aux": "ComfyUI-Blender" + } + ], + "https://github.com/alexisrolland/ComfyUI-Phi": [ + [ + "LoadPhi", + "LoadPhiMultimodal", + "LoadPhiVision", + "RunPhi", + "RunPhiMultimodal", + "RunPhiVision" + ], + { + "title_aux": "ComfyUI-Phi" + } + ], + "https://github.com/alisson-anjos/ComfyUI-Ollama-Describer": [ + [ + "InputText", + "JsonPropertyExtractorNode", + "OllamaCaptionerExtraOptions", + "OllamaImageCaptioner", + "OllamaImageDescriber", + "OllamaTextDescriber", + "ShowText", + "TextTransformer" + ], + { + "title_aux": "ComfyUI-Ollama-Describer" + } + ], + "https://github.com/alpertunga-bile/image-caption-comfyui": [ + [ + "Image Caption Node", + "Insert Prompt Node" + ], + { + "title_aux": "image-caption-comfyui" } ], "https://github.com/alpertunga-bile/prompt-generator-comfyui": [ @@ -4740,6 +17335,7 @@ "Noise from Palette [Dream]", "Palette Color Align [Dream]", "Palette Color Shift [Dream]", + "Random Prompt Words [Dream]", "Sample Image Area as Palette [Dream]", "Sample Image as Palette [Dream]", "Saw Curve [Dream]", @@ -4819,6 +17415,19 @@ "title_aux": "CLIP Directional Prompt Attention" } ], + "https://github.com/andygill/comfyui-sunflower-nodes": [ + [ + "DepthViewToIsometric", + "DisparityToDepthView", + "EquirectangularToRectilinear", + "ImageChannelSelect", + "MaskChannelSelect", + "ResizeDown" + ], + { + "title_aux": "comfyui-sunflower-nodes" + } + ], "https://github.com/angeloshredder/StableCascadeResizer": [ [ "CascadeResize" @@ -4827,16 +17436,184 @@ "title_aux": "StableCascadeResizer" } ], - "https://github.com/antrobot1234/antrobots-comfyUI-nodepack": [ + "https://github.com/angree/ComfyUI-Q_GLB_Material_Modifier": [ [ - "composite", - "crop", - "paste", - "preview_mask", - "scale" + "QManualGLBMaterialModifier", + "QPresetGLBMaterialModifier" ], { - "title_aux": "antrobots ComfyUI Nodepack" + "title_aux": "Q GLB Material Modifier" + } + ], + "https://github.com/angree/ComfyUI-Q_find-mask-size": [ + [ + "QImageCropCalculator" + ], + { + "title_aux": "Q Find Mask Size" + } + ], + "https://github.com/anhkhoatranle30/Handy-Nodes-ComfyUI": [ + [ + "Custom Save Image //Handy" + ], + { + "author": "Khoa Tran", + "description": "This extension offers various handy nodes.", + "nickname": "Handy-Nodes-ComfyUI", + "title": "Handy-Nodes-ComfyUI", + "title_aux": "Handy Node ComfyUI" + } + ], + "https://github.com/annewj023/Comfyui_google_nano": [ + [ + "GoogleNanoNode" + ], + { + "title_aux": "Google Nano" + } + ], + "https://github.com/apeirography/DaimalyadNodes": [ + [ + "DaimalyadModelDownloader", + "DaimalyadWildcardProcessor" + ], + { + "title_aux": "DaimalyadNodes" + } + ], + "https://github.com/arcum42/ComfyUI_SageUtils": [ + [ + "SageSetWildcardText", + "Sage_AdvSamplerInfo", + "Sage_CLIPLoaderFromInfo", + "Sage_CLIPSelector", + "Sage_CacheMaintenance", + "Sage_CheckLorasForUpdates", + "Sage_CheckpointSelector", + "Sage_ChromaCLIPLoaderFromInfo", + "Sage_CleanText", + "Sage_CollectKeywordsFromLoraStack", + "Sage_ConditioningZeroOut", + "Sage_ConstructLLMPrompt", + "Sage_ConstructLLMPromptExtra", + "Sage_ConstructMetadata", + "Sage_ConstructMetadataFlexible", + "Sage_ConstructMetadataLite", + "Sage_CropImage", + "Sage_CubiqImageResize", + "Sage_DualCLIPSelector", + "Sage_DualCLIPTextEncode", + "Sage_DualCLIPTextEncodeLumina2", + "Sage_EmptyLatentImagePassthrough", + "Sage_FloatToStr", + "Sage_FreeMemory", + "Sage_FreeU2", + "Sage_GetFileHash", + "Sage_GuessResolutionByRatio", + "Sage_Halt", + "Sage_HiDreamE1_Instruction", + "Sage_IntToStr", + "Sage_JoinText", + "Sage_KSampler", + "Sage_KSamplerAudioDecoder", + "Sage_KSamplerTiledDecoder", + "Sage_LMStudioLLMPromptText", + "Sage_LMStudioLLMPromptVision", + "Sage_LMStudioLLMPromptVisionRefine", + "Sage_LastLoraInfo", + "Sage_LoadImage", + "Sage_LoadImageTextSetFromFolderNode", + "Sage_LoadModelFromInfo", + "Sage_Load_Dataset_From_Folder", + "Sage_LogicalSwitch", + "Sage_LoraStack", + "Sage_LoraStackInfoDisplay", + "Sage_LoraStackLoader", + "Sage_ModelInfo", + "Sage_ModelInfoDisplay", + "Sage_ModelLoraStackLoader", + "Sage_ModelReport", + "Sage_ModelShiftOnly", + "Sage_ModelShifts", + "Sage_MultiModelPicker", + "Sage_OllamaLLMPromptText", + "Sage_OllamaLLMPromptVision", + "Sage_OllamaLLMPromptVisionRefine", + "Sage_PonyPrefix", + "Sage_PonyStyle", + "Sage_QuadCLIPSelector", + "Sage_QuickLoraStack", + "Sage_QuickNineLoraStack", + "Sage_QuickResPicker", + "Sage_QuickSixLoraStack", + "Sage_ReferenceImage", + "Sage_SamplerInfo", + "Sage_SamplerSelector", + "Sage_SaveImageWithMetadata", + "Sage_SaveText", + "Sage_SchedulerSelector", + "Sage_SetText", + "Sage_SetTextWithInt", + "Sage_SixLoraStack", + "Sage_TextRandomLine", + "Sage_TextSelectLine", + "Sage_TextSubstitution", + "Sage_TextSwitch", + "Sage_TextWeight", + "Sage_TilingInfo", + "Sage_TrainingCaptionsToConditioning", + "Sage_TripleCLIPSelector", + "Sage_TripleJoinText", + "Sage_TripleLoraStack", + "Sage_TripleQuickLoraStack", + "Sage_UNETLoRALoader", + "Sage_UNETLoaderFromInfo", + "Sage_UNETSelector", + "Sage_UnetClipVaeToModelInfo", + "Sage_VAELoaderFromInfo", + "Sage_VAESelector", + "Sage_ViewAnything", + "Sage_ViewNotes" + ], + { + "title_aux": "Sage Utils" + } + ], + "https://github.com/asaddi/ComfyUI-YALLM-node": [ + [ + "LLMChat", + "LLMMinP", + "LLMModel", + "LLMPrependAppend", + "LLMProvider", + "LLMTemperature", + "LLMTextLatch", + "LLMTopK", + "LLMTopP" + ], + { + "title_aux": "ComfyUI-YALLM-node" + } + ], + "https://github.com/asaddi/YALLM-LlamaVision": [ + [ + "LLMSamplerSettings", + "LlamaVisionChat", + "LlamaVisionModel" + ], + { + "title_aux": "YALLM-LlamaVision" + } + ], + "https://github.com/asagi4/ComfyUI-Adaptive-Guidance": [ + [ + "AdaptiveGuidance", + "AdaptiveProjectedGuidance", + "PerpNegAdaptiveGuidanceGuider" + ], + { + "title_aux": "Adaptive Guidance for ComfyUI" } ], "https://github.com/asagi4/ComfyUI-CADS": [ @@ -4847,29 +17624,46 @@ "title_aux": "ComfyUI-CADS" } ], - "https://github.com/asagi4/comfyui-prompt-control": [ + "https://github.com/asagi4/ComfyUI-NPNet": [ [ - "EditableCLIPEncode", - "FilterSchedule", - "LoRAScheduler", - "PCApplySettings", - "PCPromptFromSchedule", - "PCScheduleSettings", - "PCSplitSampling", - "PCWrapGuider", - "PromptControlSimple", - "PromptToSchedule", - "ScheduleToCond", - "ScheduleToModel" + "NPNetGoldenNoise" ], { - "title_aux": "ComfyUI prompt control" + "title_aux": "ComfyUI NPNet (Golden Noise)" + } + ], + "https://github.com/asagi4/comfyui-prompt-control": [ + [ + "PCAddMaskToCLIP", + "PCAddMaskToCLIPMany", + "PCAttentionCoupleBatchNegative", + "PCExtractScheduledPrompt", + "PCLazyLoraLoader", + "PCLazyLoraLoaderAdvanced", + "PCLazyTextEncode", + "PCLazyTextEncodeAdvanced", + "PCLoraHooksFromText", + "PCMacroExpand", + "PCSaveExpandedWorkflow", + "PCSetLogLevel", + "PCSetPCTextEncodeSettings", + "PCTextEncode", + "PCTextEncodeWithRange" + ], + { + "author": "asagi4", + "description": "Control LoRA and prompt scheduling, advanced text encoding, regional prompting, and much more, through your text prompt. Generates dynamic graphs that are literally identical to handcrafted noodle soup.", + "nickname": "ComfyUI Prompt Control", + "title": "ComfyUI Prompt Control", + "title_aux": "ComfyUI Prompt Control" } ], "https://github.com/asagi4/comfyui-utility-nodes": [ [ + "MUConditioningCutoff", "MUForceCacheClear", "MUJinjaRender", + "MURemoveControlNet", "MUReplaceModelWeights", "MUSimpleWildcard" ], @@ -4877,6 +17671,30 @@ "title_aux": "asagi4/comfyui-utility-nodes" } ], + "https://github.com/asdrabael/Hunyuan-Multi-Lora-Loader": [ + [ + "HunyuanMultiLoraLoader", + "HunyuanMultiLoraLoaderWrapper" + ], + { + "title_aux": "Hunyuan-Multi-Lora-Loader" + } + ], + "https://github.com/asutermo/ComfyUI-Flux-TryOff": [ + [ + "TryOffFluxFillModelNode", + "TryOffFluxFillPipelineNode", + "TryOffModelNode", + "TryOffQuantizerNode", + "TryOffRunNode", + "TryOnOffModelNode", + "TryOnOffRunNode", + "TryOnRunNode" + ], + { + "title_aux": "ComfyUI-Flux-TryOff" + } + ], "https://github.com/aszc-dev/ComfyUI-CoreMLSuite": [ [ "Core ML Converter", @@ -4891,6 +17709,64 @@ "title_aux": "Core ML Suite for ComfyUI" } ], + "https://github.com/atluslin/comfyui_arcane_style_trans": [ + [ + "Arcane_style_trans" + ], + { + "title_aux": "comfyui_arcane_style_trans" + } + ], + "https://github.com/attashe/ComfyUI-FluxRegionAttention": [ + [ + "BBoxToMaskNode", + "BoundingBoxNode", + "CLIPDebug", + "FluxRegionBBOX", + "FluxRegionMask", + "RegionAttention", + "VisualizeBBoxesNode" + ], + { + "title_aux": "ComfyUI-FluxRegionAttention" + } + ], + "https://github.com/audioscavenger/ComfyUI-Thumbnails": [ + [ + "LoadImage" + ], + { + "author": "AudioscavengeR", + "description": "Load Image thumbnails and show input subfolders.", + "nickname": "LoadImageThumbnails", + "title": "LoadImageThumbnails", + "title_aux": "ComfyUI-Thumbnails" + } + ], + "https://github.com/audioscavenger/save-image-extended-comfyui": [ + [ + "SaveImageExtended" + ], + { + "author": "AudioscavengeR", + "description": "1 custom node to save your pictures in various folders and formats.", + "nickname": "Save Image Extended", + "title": "Save Image Extended", + "title_aux": "Save Image Extended for ComfyUI" + } + ], + "https://github.com/austinbrown34/ComfyUI-IO-Helpers": [ + [ + "EncodedPromptFromFile", + "EncodedPromptToFile", + "IO_LoadImage", + "SampledLatentsFromFile", + "SampledLatentsToFile" + ], + { + "title_aux": "ComfyUI-IO-Helpers" + } + ], "https://github.com/avatechai/avatar-graph-comfyui": [ [ "ApplyMeshTransformAsShapeKey", @@ -4918,6 +17794,80 @@ "title_aux": "Avatar Graph" } ], + "https://github.com/avenstack/ComfyUI-AV-FunASR": [ + [ + "AVASRTimestamp", + "AVFormat2Subtitle", + "AVSaveSubtitles", + "AVSpeechTimestamp" + ], + { + "title_aux": "ComfyUI-AV-FunASR" + } + ], + "https://github.com/avenstack/ComfyUI-AV-LatentSync": [ + [ + "AVLatentSync", + "AVVideoLengthAdjuster" + ], + { + "title_aux": "ComfyUI-AV-LatentSync" + } + ], + "https://github.com/avenstack/ComfyUI-AV-MegaTTS3": [ + [ + "AVMegaTTS3", + "AVPromptInit" + ], + { + "title_aux": "ComfyUI-AV-MegaTTS3" + } + ], + "https://github.com/avocadori/ComfyUI-load-image-prompt-lora": [ + [ + "YAMLImageCycler", + "YAMLImageCyclerSimple", + "YAMLLoRAExtractor", + "YAMLLoRALoader", + "YAMLLoRASelector" + ], + { + "title_aux": "ComfyUI-load-image-prompt-lora" + } + ], + "https://github.com/aws-samples/comfyui-llm-node-for-amazon-bedrock": [ + [ + "Amazon Bedrock - Luma AI Ray Video", + "Amazon Bedrock - Nova Canvas Background Prompt Replace", + "Amazon Bedrock - Nova Canvas Generate Image", + "Amazon Bedrock - Nova Canvas Generate Variations", + "Amazon Bedrock - Nova Reel Video", + "Amazon Bedrock - SD3 & SD3.5 Large | Image to Image", + "Amazon Bedrock - Stability AI Models | Text to Image", + "Bedrock - Claude", + "Bedrock - Claude Multimodal", + "Bedrock - Nova", + "Bedrock - SDXL", + "Bedrock - Titan Inpainting", + "Bedrock - Titan Outpainting", + "Bedrock - Titan Text to Image", + "Bedrock - Titan Variation", + "Image From S3", + "Image From URL", + "Image OCR By Textract", + "Image OCR By Textract V2", + "Image OCR By Textract V3", + "Image OCR by PaddleOCR", + "Image To S3", + "JSON Text Extraction", + "Prompt Regex Remove", + "Prompt Template", + "Prompt Template with Two Inputs" + ], + { + "title_aux": "Amazon Bedrock nodes for ComfyUI" + } + ], "https://github.com/azure-dragon-ai/ComfyUI-ClipScore-Nodes": [ [ "HaojihuiClipScoreFakeImageProcessor", @@ -4931,23 +17881,247 @@ "title_aux": "ComfyUI-ClipScore-Nodes" } ], + "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes": [ + [ + "GetImageSize", + "HaojihuiHPSv2ImageProcessor", + "HaojihuiHPSv2ImageScore", + "HaojihuiHPSv2ImageScores", + "HaojihuiHPSv2Loader", + "HaojihuiHPSv2SaveAnimatedWEBP", + "HaojihuiHPSv2SaveImage", + "HaojihuiHPSv2SaveWEBP", + "HaojihuiHPSv2SaveWebpImage", + "HaojihuiHPSv2TextProcessor", + "SaveImageWebp", + "ScaleShort" + ], + { + "title_aux": "ComfyUI-HPSv2-Nodes" + } + ], + "https://github.com/babe-and-spencer-enterprises/base-comfyui-node": [ + [ + "UploadToBaseNode" + ], + { + "title_aux": "ComfyUI Upload to BASE Node" + } + ], + "https://github.com/bablueza/ComfyUI-Vaja-Ai4thai": [ + [ + "ShowText", + "Vaja Synthesis Api" + ], + { + "title_aux": "Vaja TextToSpeech Node for ComfyUI" + } + ], + "https://github.com/babydjac/comfyui-grok-prompts": [ + [ + "Flux", + "PonyXL" + ], + { + "title_aux": "ComfyUI Grok Prompts" + } + ], + "https://github.com/babydjac/comfyui-smart-scaler": [ + [ + "AspectRatioAdjuster", + "BatchFrameProcessor", + "DynamicResolutionSelector", + "ImageMetadataExtractor", + "SizeParser", + "SmartAspectScaler", + "WanVideoFrameScaler" + ], + { + "title_aux": "ComfyUI Smart Scaler" + } + ], + "https://github.com/badayvedat/ComfyUI-fal-Connector": [ + [ + "RemoteCheckpointLoader_fal", + "RemoteLoraLoader_fal" + ], + { + "title_aux": "ComfyUI-fal-Connector" + } + ], "https://github.com/badjeff/comfyui_lora_tag_loader": [ [ "LoraTagLoader" ], { - "title_aux": "LoRA Tag Loader for ComfyUI" + "title_aux": "badjeff/LoRA Tag Loader for ComfyUI" + } + ], + "https://github.com/badxprogramm/ComfyUI-GradientBlur": [ + [ + "GradientBlur" + ], + { + "title_aux": "GradientBlurNode for ComfyUI" + } + ], + "https://github.com/baicai99/ComfyUI-FrameSkipping": [ + [ + "FrameSelector", + "FrameSkipping", + "FrameTruncating", + "IntOperationsNode", + "MaskFrameSkipping", + "MaskGenerator", + "MaskSelector" + ], + { + "title_aux": "ComfyUI-FrameSkipping" + } + ], + "https://github.com/bananasss00/ComfyUI-SP-Nodes": [ + [ + "BoolSwitchOutStr", + "CivitaiPrompts", + "ComfyuiRuntimeArgs", + "FaceScatter", + "FaceScatter2", + "FluxInspireLbw_Batch", + "FluxInspireLbw_BlockVectorPreset", + "GodnessMerger_Apply", + "GodnessMerger_InputBlocks", + "GodnessMerger_InputBlocksExperimental", + "GodnessMerger_LabelEmb", + "GodnessMerger_MiddleBlock", + "GodnessMerger_MiddleBlockExperimental", + "GodnessMerger_NoiseInjection", + "GodnessMerger_Out", + "GodnessMerger_OutputBlocks", + "GodnessMerger_OutputBlocksExperimental", + "GodnessMerger_RAW_Apply", + "GodnessMerger_TimeEmbed", + "ImageMonitor", + "ImgMetaValueExtractor", + "LoraLoaderByPath", + "LoraLoaderFromFolder", + "LoraLoaderOnlyModelByPath", + "NoiseInjectionEssentialsHookProvider", + "PreviewImageWEBP", + "PromptChecker", + "RandomPromptFromBook", + "Random_Model_Merge", + "SD3BlocksMultiply", + "SD3Multiply", + "SP-CheckpointSave", + "SP-UnetSave", + "SP_AnyPipe10", + "SP_AnyPipe15", + "SP_AnyPipe20", + "SP_AnyPipe30", + "SP_AnyPipe40", + "SP_AnyPipe5", + "SP_AnyPipe50", + "SP_DDInpaint_Pipe", + "SP_DictValue", + "SP_DynamicCombo", + "SP_FlorenceCaption", + "SP_FluxFastMergePatchFP8 [Experimental]", + "SP_FluxLoader", + "SP_FluxUnsampler", + "SP_FluxUnsampler_ForwardODESampler", + "SP_FluxUnsampler_InverseSampler", + "SP_HiresGen", + "SP_HiresGen_Dynamic", + "SP_HiresGen_HiresCfg", + "SP_HiresGen_Sharpen", + "SP_HunyuanLoader", + "SP_ImpactSwitchCombo", + "SP_KSampler", + "SP_KSamplerSelect", + "SP_KoboldCpp", + "SP_KoboldCppWithContext", + "SP_KoboldCpp_BannedTokens", + "SP_KoboldCpp_OverrideCfg", + "SP_ListAny", + "SP_ModelLoader", + "SP_Name_Checkpoint", + "SP_Name_Clip", + "SP_Name_ClipVision", + "SP_Name_ControlNet", + "SP_Name_StyleModel", + "SP_Name_Unet", + "SP_Name_UpscaleModel", + "SP_Name_Vae", + "SP_Pass", + "SP_Pipe", + "SP_Pipe_ToBasicPipe", + "SP_SD3Loader", + "SP_SDLoader", + "SP_SetPipeModelType", + "SP_Supir", + "SP_SupirSampler", + "SP_SupirSampler_DPMPP2M", + "SP_SupirSampler_EDM", + "SP_SwitchBooleanAny", + "SP_UnlistValues", + "SP_WebsocketSendImage", + "SP_XYGrid", + "SP_XYValues", + "ScatterParams", + "ScatterParamsBatch", + "SendTelegramChatBot", + "StrToCombo", + "TextSplitJoinByDelimiter" + ], + { + "author": "SeniorPioner", + "description": "Node Pack: PromptChecker for token toggling, KoboldCPP API, ModelMerging, Telegram-Bot-API, and more", + "nickname": "SP-Nodes", + "title": "SP-Nodes", + "title_aux": "SP-Nodes" + } + ], + "https://github.com/bananasss00/ComfyUI-flux_fill_patcher": [ + [ + "ApplyFluxFillPatch" + ], + { + "title_aux": "ComfyUI-flux_fill_patcher" } ], "https://github.com/banodoco/steerable-motion": [ [ "BatchCreativeInterpolation", - "IpaConfiguration" + "IpaConfiguration", + "RemoveAndInterpolateFrames", + "VideoContinuationGenerator", + "VideoFrameExtractorAndMaskGenerator", + "WanInputFrameNumber", + "WanVideoBlender" ], { "title_aux": "Steerable Motion" } ], + "https://github.com/banqingyuan/ComfyUI-text-replace": [ + [ + "ChatOverlayNode", + "ExtractJsonNode", + "ImageEraseNode", + "OCRLocNode" + ], + { + "title_aux": "ComfyUI-text-replace" + } + ], + "https://github.com/bartly/Comfyui_babel_removebg_api": [ + [ + "BabelRemovebg" + ], + { + "title_aux": "Babel Removebg Api Node for ComfyUI" + } + ], "https://github.com/bash-j/mikey_nodes": [ [ "AddMetaData", @@ -4957,6 +18131,7 @@ "Batch Resize Image for SDXL", "Checkpoint Loader Simple Mikey", "CheckpointHash", + "CheckpointSaveModelOnly", "CinematicLook", "Empty Latent Ratio Custom SDXL", "Empty Latent Ratio Select SDXL", @@ -4965,6 +18140,7 @@ "FileNamePrefix", "FileNamePrefixDateDirFirst", "Float to String", + "GetSubdirectories", "HaldCLUT", "Image Caption", "ImageBorder", @@ -4979,8 +18155,13 @@ "Mikey Sampler Base Only Advanced", "Mikey Sampler Tiled", "Mikey Sampler Tiled Base Only", + "MikeyLatentTileSampler", + "MikeyLatentTileSamplerCustom", "MikeySamplerTiledAdvanced", "MikeySamplerTiledAdvancedBaseOnly", + "ModelMergePixArtSigmaXL2_1024MS", + "ModelMergeTrainDiff", + "ModelMergeTrainDiffPixartSigmaXL2_1024MS", "MosaicExpandImage", "OobaPrompt", "PresetRatioSelector", @@ -4991,7 +18172,9 @@ "Range Float", "Range Integer", "Ratio Advanced", + "RemoveTextBetween", "Resize Image for SDXL", + "SD3TextConditioningWithOptionsOnePrompt", "SRFloatPromptInput", "SRIntPromptInput", "SRStringPromptInput", @@ -5008,6 +18191,7 @@ "TextCombinations", "TextCombinations3", "TextConcat", + "TextPadderMikey", "TextPreserve", "Upscale Tile Calculator", "Wildcard Processor", @@ -5018,27 +18202,203 @@ "title_aux": "Mikey Nodes" } ], + "https://github.com/bbaudio-2025/ComfyUI-SuperUltimateVaceTools": [ + [ + "CustomCropArea", + "CustomRefineOption", + "NAGParamtersSetting", + "RefineTest", + "RegionalBatchPrompt", + "SuperUltimateVACEUpscale", + "VACEControlImageCombine", + "VACEPromptCheckTotalFrame", + "VACEPromptCombine", + "VaceLongVideo" + ], + { + "title_aux": "ComfyUI-SuperUltimateVaceTools" + } + ], + "https://github.com/bbtaivi/ComfyUI-Aiv-Param": [ + [ + "AivParam" + ], + { + "title_aux": "AIV ComfyUI Node" + } + ], + "https://github.com/bear2b/comfyui-argo-nodes": [ + [ + "ColorMatrixGPU", + "LoadGridFromURL", + "SaveGridToS3" + ], + { + "title_aux": "ColorMatrixGPU Node for ComfyUI" + } + ], "https://github.com/bedovyy/ComfyUI_NAIDGenerator": [ [ + "ColorizeNAID", + "DeclutterNAID", + "EmotionNAID", "GenerateNAID", "Img2ImgOptionNAID", "InpaintingOptionNAID", + "LineArtNAID", "MaskImageToNAID", "ModelOptionNAID", + "NetworkOptionNAID", "PromptToNAID", + "RemoveBGNAID", + "SketchNAID", + "V4BasePrompt", + "V4NegativePrompt", "VibeTransferOptionNAID" ], { "title_aux": "ComfyUI_NAIDGenerator" } ], - "https://github.com/biegert/ComfyUI-CLIPSeg/raw/main/custom_nodes/clipseg.py": [ + "https://github.com/bemoregt/ComfyUI_CustomNode_Image2Spectrum": [ [ - "CLIPSeg", - "CombineSegMasks" + "Image_Spectrum" ], { - "title_aux": "CLIPSeg" + "title_aux": "ComfyUI_CustomNode_Image2Spectrum" + } + ], + "https://github.com/benda1989/CosyVoice2_ComfyUI": [ + [ + "CosyVoice3s", + "CosyVoiceCrossLingual", + "CosyVoiceLoader", + "CosyVoiceNLControl", + "CosyVoiceSonic", + "Text2" + ], + { + "title_aux": "GKK\u00b7CosyVoice" + } + ], + "https://github.com/benda1989/Sonic_ComfyUI": [ + [ + "SonicLoader", + "SonicSimper", + "SonicSpeechs" + ], + { + "title_aux": "GKK\u00b7Sonic" + } + ], + "https://github.com/benjamin-bertram/Comfyui_OIDN_Denoiser": [ + [ + "OIDNDenoiser" + ], + { + "title_aux": "ComfyUI OIDN Denoiser" + } + ], + "https://github.com/benjiyaya/ComfyUI-HunyuanVideoImagesGuider": [ + [ + "Hunyuan Video Image To Guider" + ], + { + "title_aux": "ComfyUI-HunyuanVideoImagesGuider" + } + ], + "https://github.com/benjiyaya/ComfyUI-KokoroTTS": [ + [ + "Kokoro TextToSpeech" + ], + { + "title_aux": "ComfyUI-KokoroTTS" + } + ], + "https://github.com/benstaniford/comfy-contact-sheet-image-loader": [ + [ + "ContactSheetImageLoader" + ], + { + "title_aux": "Comfy Contact Sheet Image Loader" + } + ], + "https://github.com/benstaniford/comfy-image-switch": [ + [ + "ImageSwitchNode", + "SwitchAnyValid" + ], + { + "title_aux": "ComfyUI Image Switch Node" + } + ], + "https://github.com/benstaniford/comfy-load-last-image": [ + [ + "LoadMostRecentImage" + ], + { + "title_aux": "ComfyUI Load Most Recent Image Node" + } + ], + "https://github.com/benstaniford/comfy-lora-loader-with-triggerdb": [ + [ + "LoRaLoaderWithTriggerDB" + ], + { + "title_aux": "LoRa Loader with Trigger Database" + } + ], + "https://github.com/benstaniford/comfy-prompt-db": [ + [ + "PromptDB", + "PromptStack" + ], + { + "title_aux": "Prompt Database for ComfyUI" + } + ], + "https://github.com/bentoml/comfy-pack": [ + [ + "CPackInputAny", + "CPackInputFile", + "CPackInputImage", + "CPackInputInt", + "CPackInputString", + "CPackOutputAudio", + "CPackOutputFile", + "CPackOutputImage", + "CPackOutputTextFile", + "CPackOutputVideo", + "CPackOutputZip", + "CPackOutputZipSwitch" + ], + { + "title_aux": "Comfy-Pack" + } + ], + "https://github.com/bhvbhushan/ComfyUI-LoRABlockWeight": [ + [ + "HierarchicalLoRAWeightEditor", + "NunchakuHierarchicalLoRALoader" + ], + { + "title_aux": "ComfyUI LoRA Block Weight Loader" + } + ], + "https://github.com/big-mon/ComfyUI-ResolutionPresets": [ + [ + "ResolutionPresetsSDXL" + ], + { + "title_aux": "ComfyUI-ResolutionPresets" + } + ], + "https://github.com/bikiam/ComfyUI_WhisperSRT": [ + [ + "WhisperAudioToSRTText" + ], + { + "title_aux": "ComfyUI_WhisperSRT" } ], "https://github.com/bilal-arikan/ComfyUI_TextAssets": [ @@ -5049,26 +18409,287 @@ "title_aux": "ComfyUI_TextAssets" } ], - "https://github.com/bkunbargi/BrevImage/raw/main/BrevLoadImage.py": [ + "https://github.com/billwuhao/ComfyUI_ACE-Step": [ [ - "BrevImage" + "ACELoRALoader", + "ACEModelLoader", + "ACEStepEdit", + "ACEStepExtend", + "ACEStepGen", + "ACEStepRepainting", + "GenerationParameters", + "LyricsLangSwitch", + "MultiLineLyrics", + "MultiLinePromptACES" ], { - "title_aux": "BrevImage" + "title_aux": "ComfyUI_ACE-Step" + } + ], + "https://github.com/billwuhao/ComfyUI_AudioTools": [ + [ + "AddSubtitlesToVideo", + "AdjustAudio", + "AudioAddWatermark", + "AudioConcatenate", + "AudioDenoising", + "AudioRecorderAT", + "ClearVoiceRun", + "LoadAudioMW", + "MergeAudioMW", + "MinimalPauseNode", + "MultiLinePromptAT", + "MusicSeparation", + "RemoveSilence", + "SpeechSeparation", + "StringEditNode", + "TrimAudio" + ], + { + "title_aux": "ComfyUI_AudioTools" + } + ], + "https://github.com/billwuhao/ComfyUI_CSM": [ + [ + "CSMDialogRun", + "CSMSpeakersPreview", + "MultiLineText" + ], + { + "title_aux": "ComfyUI_CSM" + } + ], + "https://github.com/billwuhao/ComfyUI_DiffRhythm": [ + [ + "DiffRhythmRun", + "MultiLineLyricsDR" + ], + { + "title_aux": "ComfyUI_DiffRhythm_MW" + } + ], + "https://github.com/billwuhao/ComfyUI_EraX-WoW-Turbo": [ + [ + "EraXWoWRUN", + "WhisperTurboRun" + ], + { + "title_aux": "MW-ComfyUI_EraX-WoW-Turbo" + } + ], + "https://github.com/billwuhao/ComfyUI_IndexTTS": [ + [ + "IndexSpeakersPreview", + "IndexTTSRun", + "MultiLinePromptIndex" + ], + { + "title_aux": "ComfyUI_IndexTTS" + } + ], + "https://github.com/billwuhao/ComfyUI_KokoroTTS_MW": [ + [ + "KokoroRun", + "KokoroZHRun", + "MultiLinePromptKK" + ], + { + "title_aux": "ComfyUI_KokoroTTS_MW" + } + ], + "https://github.com/billwuhao/ComfyUI_MegaTTS3": [ + [ + "MegaTTS3Run", + "MegaTTS3SpeakersPreview", + "MultiLinePromptMG" + ], + { + "title_aux": "MW-ComfyUI_MegaTTS3" + } + ], + "https://github.com/billwuhao/ComfyUI_NotaGen": [ + [ + "NotaGenRun" + ], + { + "title_aux": "ComfyUI_NotaGen" + } + ], + "https://github.com/billwuhao/ComfyUI_OneButtonPrompt": [ + [ + "LoadImageAndPromptFromURL", + "LoadImageFromURL", + "LoadPrompt", + "StringEditNodeOBP" + ], + { + "title_aux": "MW-ComfyUI_OneButtonPrompt" + } + ], + "https://github.com/billwuhao/ComfyUI_OuteTTS": [ + [ + "OuteTTSRun" + ], + { + "title_aux": "MW-ComfyUI_OuteTTS" + } + ], + "https://github.com/billwuhao/ComfyUI_PortraitTools": [ + [ + "AlignFace", + "BeautifyPhoto", + "DetectCropFace", + "IDPhotos", + "ImageWatermark", + "LoadImageMW" + ], + { + "title_aux": "MW-ComfyUI_PortraitTools" + } + ], + "https://github.com/billwuhao/ComfyUI_SOME": [ + [ + "SomeSing2Midi" + ], + { + "title_aux": "ComfyUI_SOME" + } + ], + "https://github.com/billwuhao/ComfyUI_SparkTTS": [ + [ + "AudioRecorderSpark", + "SparkTTSClone", + "SparkTTSRun" + ], + { + "title_aux": "ComfyUI_SparkTTS" + } + ], + "https://github.com/billwuhao/ComfyUI_StepAudioTTS": [ + [ + "AudioRecorder", + "StepAudioClone", + "StepAudioRun" + ], + { + "title_aux": "ComfyUI_StepAudioTTS" + } + ], + "https://github.com/billwuhao/ComfyUI_gemmax": [ + [ + "GemmaxRun", + "QuickMTRun" + ], + { + "title_aux": "MW-ComfyUI_gemmax" + } + ], + "https://github.com/billwuhao/ComfyUI_parakeet-tdt": [ + [ + "ParakeetASRRun" + ], + { + "title_aux": "ComfyUI_parakeet-tdt" + } + ], + "https://github.com/billwuhao/Comfyui_HeyGem": [ + [ + "HeyGemRun" + ], + { + "title_aux": "Comfyui_HeyGem" + } + ], + "https://github.com/birdneststream/ComfyUI-Mircify": [ + [ + "IRC Art Converter", + "IRC PNG Exporter", + "IRC Text Saver" + ], + { + "title_aux": "ComfyUI-Mircify" + } + ], + "https://github.com/bitaffinity/ComfyUI_HF_Inference": [ + [ + "Classification", + "FeatureExtraction", + "Generation", + "ObjectDetection", + "QuestionAnswering", + "Segmentation", + "TextToImage", + "Translation" + ], + { + "title_aux": "ComfyUI_HF_Inference" + } + ], + "https://github.com/black-forest-labs/bfl-comfy-nodes": [ + [ + "FLUX 1.0 [canny]", + "FLUX 1.0 [canny] Finetuned", + "FLUX 1.0 [depth]", + "FLUX 1.0 [depth] Finetuned", + "FLUX 1.0 [dev]", + "FLUX 1.0 [fill]", + "FLUX 1.0 [fill] Finetuned", + "FLUX 1.0 [pro]", + "FLUX 1.0 [pro] Finetuned", + "FLUX 1.1 [pro]", + "FLUX 1.1 [ultra]", + "FLUX 1.1 [ultra] Finetuned" + ], + { + "title_aux": "Black Forest Labs API Nodes" + } + ], + "https://github.com/blackcodetavern/ComfyUI-Benripack": [ + [ + "AnimationExtractor", + "CharacterPipe", + "Load3DModel" + ], + { + "title_aux": "ComfyUI-Benripack" + } + ], + "https://github.com/blepping/ComfyUI-ApplyResAdapterUnet": [ + [ + "ApplyResAdapterUnet" + ], + { + "title_aux": "ComfyUI-ApplyResAdapterUnet" } ], "https://github.com/blepping/ComfyUI-bleh": [ [ + "BlehBlockCFG", "BlehBlockOps", + "BlehCFGInitSampler", + "BlehCast", "BlehDeepShrink", + "BlehDisableNoise", "BlehDiscardPenultimateSigma", + "BlehEnsurePreviewer", "BlehForceSeedSampler", + "BlehGlobalSageAttention", "BlehHyperTile", + "BlehImageAsLatent", "BlehInsaneChainSampler", + "BlehLatentAsImage", + "BlehLatentBlend", "BlehLatentOps", "BlehLatentScaleBy", "BlehModelPatchConditional", - "BlehRefinerAfter" + "BlehModelPatchFastTerminate", + "BlehPlug", + "BlehRefinerAfter", + "BlehSageAttentionSampler", + "BlehSetSamplerPreset", + "BlehSetSigmas", + "BlehTAEVideoDecode", + "BlehTAEVideoEncode" ], { "title_aux": "ComfyUI-bleh" @@ -5076,19 +18697,150 @@ ], "https://github.com/blepping/ComfyUI-sonar": [ [ + "FreeUExtreme", + "FreeUExtremeConfig", "NoisyLatentLike", + "SONAR_CUSTOM_NOISE to NOISE", "SamplerConfigOverride", "SamplerSonarDPMPPSDE", "SamplerSonarEuler", "SamplerSonarEulerA", + "SonarAdvanced1fNoise", + "SonarAdvancedCollatzNoise", + "SonarAdvancedDistroNoise", + "SonarAdvancedPowerLawNoise", + "SonarAdvancedPyramidNoise", + "SonarAdvancedVoronoiNoise", + "SonarApplyLatentOperationCFG", + "SonarBlendedNoise", + "SonarChannelNoise", + "SonarCompositeNoise", "SonarCustomNoise", + "SonarCustomNoiseAdv", + "SonarCustomNoiseParameters", "SonarGuidanceConfig", - "SonarPowerNoise" + "SonarGuidedNoise", + "SonarLatentOperationAdvanced", + "SonarLatentOperationFilteredNoise", + "SonarLatentOperationNoise", + "SonarLatentOperationQuantileFilter", + "SonarLatentOperationSetSeed", + "SonarModulatedNoise", + "SonarNoiseImage", + "SonarNormalizeNoiseToScale", + "SonarPatternBreakNoise", + "SonarPerDimNoise", + "SonarPowerFilter", + "SonarPowerFilterNoise", + "SonarPowerNoise", + "SonarPreviewFilter", + "SonarQuantileFilteredNoise", + "SonarRandomNoise", + "SonarRepeatedNoise", + "SonarResizedNoise", + "SonarResizedNoiseAdv", + "SonarRippleFilteredNoise", + "SonarScatternetFilteredNoise", + "SonarScheduledNoise", + "SonarShuffledNoise", + "SonarSplitNoiseChain", + "SonarWaveletCFG", + "SonarWaveletFilteredNoise", + "SonarWaveletNoise" ], { "title_aux": "ComfyUI-sonar" } ], + "https://github.com/blepping/comfyui_jankdiffusehigh": [ + [ + "DiffuseHighParam", + "DiffuseHighSampler" + ], + { + "title_aux": "comfyui_jankdiffusehigh" + } + ], + "https://github.com/blepping/comfyui_jankhidiffusion": [ + [ + "ApplyMSWMSAAttention", + "ApplyMSWMSAAttentionSimple", + "ApplyRAUNet", + "ApplyRAUNetSimple" + ], + { + "title_aux": "comfyui_jankhidiffusion" + } + ], + "https://github.com/blepping/comfyui_overly_complicated_sampling": [ + [ + "OCS ApplyFilterImage", + "OCS ApplyFilterLatent", + "OCS Group", + "OCS ModelSetMaxSigma", + "OCS MultiParam", + "OCS Param", + "OCS Sampler", + "OCS SimpleRestartSchedule", + "OCS Substeps", + "OCSNoise Conditioning", + "OCSNoise ExpressionFilteredNoise", + "OCSNoise ImmiscibleReference", + "OCSNoise OverrideSamplerNoise", + "OCSNoise PerlinAdvanced", + "OCSNoise PerlinSimple", + "OCSNoise to SONAR_CUSTOM_NOISE" + ], + { + "title_aux": "comfyui_overly_complicated_sampling" + } + ], + "https://github.com/blird/ComfyUI-Wanify": [ + [ + "AdaptiveImageResize" + ], + { + "title_aux": "ComfyUI-Wanify: Adaptive Image Resize Node" + } + ], + "https://github.com/blob8/ComfyUI_sloppy-comic": [ + [ + "Generate Comic", + "LLM API Request" + ], + { + "title_aux": "ComfyUI_sloppy-comic" + } + ], + "https://github.com/blovett80/ComfyUI-PixelDojo": [ + [ + "PixelDojoAPI" + ], + { + "title_aux": "ComfyUI-PixelDojo" + } + ], + "https://github.com/blueraincoatli/comfyUI_SillyNodes": [ + [ + "BooleanJumper|SillyNode", + "CloseErrorWindowNode|SillyNode", + "QueueSequence|SillyNode", + "Screenshots|SillyNode", + "dummyInput|SillyNode", + "dummyInput|blueraincoat" + ], + { + "title_aux": "comfyUI_SillyNodes" + } + ], + "https://github.com/bluevisor/ComfyUI_PS_Blend_Node": [ + [ + "PSBlendNode" + ], + { + "title_aux": "ComfyUI_PS_Blend_Node" + } + ], "https://github.com/bmad4ever/comfyui_ab_samplercustom": [ [ "AB SamplerCustom (experimental)" @@ -5097,139 +18849,6 @@ "title_aux": "comfyui_ab_sampler" } ], - "https://github.com/bmad4ever/comfyui_bmad_nodes": [ - [ - "AdaptiveThresholding", - "Add String To Many", - "AddAlpha", - "AdjustRect", - "AnyToAny", - "BoundingRect (contours)", - "BuildColorRangeAdvanced (hsv)", - "BuildColorRangeHSV (hsv)", - "CLAHE", - "CLIPEncodeMultiple", - "CLIPEncodeMultipleAdvanced", - "ChameleonMask", - "CheckpointLoader (dirty)", - "CheckpointLoaderSimple (dirty)", - "Color (RGB)", - "Color (hexadecimal)", - "Color Clip", - "Color Clip (advanced)", - "Color Clip ADE20k", - "ColorDictionary", - "ColorDictionary (custom)", - "Conditioning (combine multiple)", - "Conditioning (combine selective)", - "Conditioning Grid (cond)", - "Conditioning Grid (string)", - "Conditioning Grid (string) Advanced", - "Contour To Mask", - "Contours", - "ControlNetHadamard", - "ControlNetHadamard (manual)", - "ConvertImg", - "CopyMakeBorder", - "CreateRequestMetadata", - "DistanceTransform", - "Draw Contour(s)", - "EqualizeHistogram", - "ExtendColorList", - "ExtendCondList", - "ExtendFloatList", - "ExtendImageList", - "ExtendIntList", - "ExtendLatentList", - "ExtendMaskList", - "ExtendModelList", - "ExtendStringList", - "FadeMaskEdges", - "Filter Contour", - "FindComplementaryColor", - "FindThreshold", - "FlatLatentsIntoSingleGrid", - "Framed Mask Grab Cut", - "Framed Mask Grab Cut 2", - "FromListGet1Color", - "FromListGet1Cond", - "FromListGet1Float", - "FromListGet1Image", - "FromListGet1Int", - "FromListGet1Latent", - "FromListGet1Mask", - "FromListGet1Model", - "FromListGet1String", - "FromListGetColors", - "FromListGetConds", - "FromListGetFloats", - "FromListGetImages", - "FromListGetInts", - "FromListGetLatents", - "FromListGetMasks", - "FromListGetModels", - "FromListGetStrings", - "Get Contour from list", - "Get Models", - "Get Prompt", - "HypernetworkLoader (dirty)", - "ImageBatchToList", - "InRange (hsv)", - "Inpaint", - "Input/String to Int Array", - "KMeansColor", - "Load 64 Encoded Image", - "LoraLoader (dirty)", - "MaskGrid N KSamplers Advanced", - "MaskOuterBlur", - "Merge Latent Batch Gridwise", - "MonoMerge", - "MorphologicOperation", - "MorphologicSkeletoning", - "NaiveAutoKMeansColor", - "OtsuThreshold", - "RGB to HSV", - "Rect Grab Cut", - "Remap", - "RemapBarrelDistortion", - "RemapFromInsideParabolas", - "RemapFromQuadrilateral (homography)", - "RemapInsideParabolas", - "RemapInsideParabolasAdvanced", - "RemapPinch", - "RemapReverseBarrelDistortion", - "RemapStretch", - "RemapToInnerCylinder", - "RemapToOuterCylinder", - "RemapToQuadrilateral", - "RemapWarpPolar", - "Repeat Into Grid (image)", - "Repeat Into Grid (latent)", - "RequestInputs", - "SampleColorHSV", - "Save Image (api)", - "SeamlessClone", - "SeamlessClone (simple)", - "SetRequestStateToComplete", - "String", - "String to Float", - "String to Integer", - "ToColorList", - "ToCondList", - "ToFloatList", - "ToImageList", - "ToIntList", - "ToLatentList", - "ToMaskList", - "ToModelList", - "ToStringList", - "UnGridify (image)", - "VAEEncodeBatch" - ], - { - "title_aux": "Bmad Nodes" - } - ], "https://github.com/bmad4ever/comfyui_lists_cartesian_product": [ [ "AnyListCartesianProduct" @@ -5240,7 +18859,12 @@ ], "https://github.com/bmad4ever/comfyui_quilting": [ [ + "GuessQuiltingBlockSize_Bmad", + "ImageQuiltingSeamlessMB_Bmad", + "ImageQuiltingSeamlessSB_Bmad", "ImageQuilting_Bmad", + "LatentQuiltingSeamlessMB_Bmad", + "LatentQuiltingSeamlessSB_Bmad", "LatentQuilting_Bmad" ], { @@ -5265,14 +18889,140 @@ ], "https://github.com/bobmagicii/comfykit-custom-nodes": [ [ + "LoraStackFiveSimple", + "LoraThree", "LoraWithMeta", + "TypecasterClip", + "TypecasterCond", "TypecasterImage", - "TypecasterLatent" + "TypecasterLatent", + "TypecasterModel", + "TypecasterVae" ], { "title_aux": "ComfyKit Custom Nodes" } ], + "https://github.com/bollerdominik/ComfyUI-load-lora-from-url": [ + [ + "LoadLoraFromUrlOrPath", + "LoadVideoLoraFromUrlOrPath", + "LoadVideoLoraFromUrlOrPathSelect" + ], + { + "title_aux": "ComfyUI-load-lora-from-url" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-Allegro": [ + [ + "AllegroDecoder", + "AllegroEncoder", + "AllegroSampler", + "AllegroTI2VEncoder", + "AllegroTI2VSampler", + "AllegroTextEncoder", + "LoadAllegroModel", + "LoadAllegroTI2VModel" + ], + { + "title_aux": "ComfyUI-Allegro" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-DisPose": [ + [ + "DisPoseDecoder", + "DisPoseLoader", + "DisPoseSampler" + ], + { + "title_aux": "ComfyUI-DisPose" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-MagicDance": [ + [ + "LoadMagicDanceModel", + "MagicDanceDecoder", + "MagicDanceEncoder", + "MagicDanceSampler" + ], + { + "title_aux": "ComfyUI-MagicDance" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-Open-Sora-I2V": [ + [ + "OpenSoraDecoder", + "OpenSoraEncoder", + "OpenSoraLoader", + "OpenSoraSampler", + "OpenSoraTextEncoder" + ], + { + "title_aux": "ComfyUI-Open-Sora-I2V" + } + ], + "https://github.com/bombax-xiaoice/ComfyUI-OpenSoraPlan": [ + [ + "OpenSoraPlan0LoaderT2V", + "OpenSoraPlan1LoaderT2V", + "OpenSoraPlan2LoaderI2V", + "OpenSoraPlan2LoaderT2V", + "OpenSoraPlan2SamplerI2V", + "OpenSoraPlan3LoaderI2V", + "OpenSoraPlan3LoaderT2V", + "OpenSoraPlan3SamplerI2V", + "OpenSoraPlanDecoder", + "OpenSoraPlanPromptRefiner", + "OpenSoraPlanSamplerT2V" + ], + { + "title_aux": "ComfyUI-OpenSoraPlan" + } + ], + "https://github.com/bombless/comfyUI-RememberingUtils": [ + [ + "RememberLastSeed", + "ShowLastSeed", + "ShowLastText" + ], + { + "title_aux": "Remembering utils" + } + ], + "https://github.com/bongsang/ComfyUI-Bongsang": [ + [ + "AnyInfo", + "RgbChannel" + ], + { + "title_aux": "ComfyUI-Bongsang" + } + ], + "https://github.com/boredofnames/ComfyUI-ntfy": [ + [ + "Ntfy", + "SaveImageAndNtfy" + ], + { + "title_aux": "ComfyUI-ntfy" + } + ], + "https://github.com/boricuapab/ComfyUI-Bori-JsonSetGetConverter": [ + [ + "Bori Json Get Set Convert" + ], + { + "title_aux": "ComfyUI-Bori-JsonSetGetConverter" + } + ], + "https://github.com/boricuapab/ComfyUI-Bori-QwenImageResolutions": [ + [ + "Bori Qwen Image Resolution" + ], + { + "title_aux": "ComfyUI-Bori-QwenImageResolutions" + } + ], "https://github.com/bradsec/ComfyUI_ResolutionSelector": [ [ "ResolutionSelector" @@ -5281,21 +19031,65 @@ "title_aux": "ResolutionSelector for ComfyUI" } ], + "https://github.com/bradsec/ComfyUI_StringEssentials": [ + [ + "StringMultiReplace", + "StringPreview", + "StringStrip", + "StringTextbox" + ], + { + "title_aux": "ComfyUI_StringEssentials" + } + ], "https://github.com/braintacles/braintacles-comfyui-nodes": [ [ "CLIPTextEncodeSDXL-Multi-IO", "CLIPTextEncodeSDXL-Pipe", "Empty Latent Image from Aspect-Ratio", - "Random Find and Replace", - "VAE Decode Pipe", - "VAE Decode Tiled Pipe", - "VAE Encode Pipe", - "VAE Encode Tiled Pipe" + "Interval Sampler", + "Random Find and Replace" ], { "title_aux": "braintacles-nodes" } ], + "https://github.com/brantje/ComfyUI-api-tools": [ + [ + "SimpleGenImageInterface" + ], + { + "title_aux": "ComfyUI-api-tools" + } + ], + "https://github.com/brantje/ComfyUI_MagicQuill": [ + [ + "MagicQuill" + ], + { + "author": "Zichen LIU (https://zliucz.github.io/) and Yue YU (https://bruceyyu.github.io/)", + "description": "Official ComfyUI Implementations for Paper - MagicQuill: An Intelligent Interactive Image Editing System", + "nickname": "MagicQuill nodes", + "title": "MagicQuill", + "title_aux": "ComfyUI-MagicQuill" + } + ], + "https://github.com/brayevalerien/ComfyUI-SplitString": [ + [ + "Split String" + ], + { + "title_aux": "ComfyUI-splitstring" + } + ], + "https://github.com/brayevalerien/ComfyUI-resynthesizer": [ + [ + "Resynthesize" + ], + { + "title_aux": "ComfyUI Resynthesizer" + } + ], "https://github.com/brianfitzgerald/style_aligned_comfy": [ [ "StyleAlignedBatchAlign", @@ -5322,6 +19116,16 @@ "title_aux": "comfyui-fitsize" } ], + "https://github.com/brucew4yn3rp/ComfyUI_SelectiveMetadata": [ + [ + "Multiline String", + "Save Image (Selective Metadata)", + "SaveImage" + ], + { + "title_aux": "Save Image with Selective Metadata" + } + ], "https://github.com/bruefire/ComfyUI-SeqImageLoader": [ [ "VFrame Loader With Mask Editor", @@ -5331,6 +19135,15 @@ "title_aux": "ComfyUI Sequential Image Loader" } ], + "https://github.com/budihartono/comfyui-aspect-ratio-presets": [ + [ + "CAS Empty Latent Aspect Ratio Axis", + "CAS Empty Latent Aspect Ratio Preset" + ], + { + "title_aux": "CAS Aspect Ratio Presets Node for ComfyUI" + } + ], "https://github.com/budihartono/comfyui_otonx_nodes": [ [ "OTX Integer Multiple Inputs 4", @@ -5345,6 +19158,107 @@ "title_aux": "Otonx's Custom Nodes" } ], + "https://github.com/bugltd/ComfyLab-Pack": [ + [ + "Convert to Any (lab)", + "File Queue (lab)", + "Format: Multiline (lab)", + "Format: String (lab)", + "Generic Queue (lab)", + "Image Queue (lab)", + "Image: Downscale to Total Pixels (lab)", + "Input: Boolean (lab)", + "Input: Float (lab)", + "Input: Folder (lab)", + "Input: Integer (lab)", + "Input: Multiline (lab)", + "Input: String (lab)", + "List: Checkpoints (lab)", + "List: Limit (lab)", + "List: LoRAs (lab)", + "List: Merge (lab)", + "List: Random Seeds (lab)", + "List: Samplers (lab)", + "List: Schedulers (lab)", + "List: from Elements (lab)", + "List: from File (backend) (lab)", + "List: from Multiline (lab)", + "List: from String (lab)", + "Load Image (RGBA) (lab)", + "Output Config: Load (lab)", + "Output Config: Retrieve (backend) (lab)", + "Plot Config: Grid (lab)", + "Plot Config: Header/Footer (lab)", + "Resolution to Dimensions (lab)", + "Save Text File (lab)", + "Sleep (lab)", + "XY Plot: Queue (lab)", + "XY Plot: Render (lab)", + "XY Plot: Split Data (lab)" + ], + { + "nodename_pattern": " \\(lab\\)$", + "title_aux": "ComfyLab Pack" + } + ], + "https://github.com/burnsbert/ComfyUI-EBU-LMStudio": [ + [ + "EbuLMStudioBrainstormer", + "EbuLMStudioLoadModel", + "EbuLMStudioMakeRequest", + "EbuLMStudioUnload", + "EbuLMStudioUnloadGuider" + ], + { + "title_aux": "EBU LMStudio LLM Integration" + } + ], + "https://github.com/burnsbert/ComfyUI-EBU-PromptHelper": [ + [ + "EbuPromptHelperCharacterDescriberFemale", + "EbuPromptHelperCharacterDescriberMale", + "EbuPromptHelperCombineTwoStrings", + "EbuPromptHelperConsumeListItem", + "EbuPromptHelperCurrentDateTime", + "EbuPromptHelperListSampler", + "EbuPromptHelperLoadFileAsString", + "EbuPromptHelperRandomColorPalette", + "EbuPromptHelperRandomize", + "EbuPromptHelperReplace", + "EbuPromptHelperSeasonWeatherTimeOfDay", + "EbuPromptHelperTruncate" + ], + { + "title_aux": "EBU PromptHelper" + } + ], + "https://github.com/burnsbert/ComfyUI-EBU-Workflow": [ + [ + "EbuAppendToFile", + "EbuDecodeNewLines", + "EbuEncodeNewLines", + "EbuFileListCache", + "EbuGetImageAspectRatio", + "EbuImageWaitForImage", + "EbuModelWaitForImage", + "EbuReadFromFile", + "EbuScalingResolution", + "EbuScalingTile", + "EbuStringWaitForImage", + "EbuUniqueFileName" + ], + { + "title_aux": "EBU Workflow" + } + ], + "https://github.com/bvhari/ComfyUI_CFGStar": [ + [ + "CFGStar" + ], + { + "title_aux": "ComfyUI_CFGStar" + } + ], "https://github.com/bvhari/ComfyUI_ImageProcessing": [ [ "BilateralFilter", @@ -5359,12 +19273,12 @@ "title_aux": "ImageProcessing" } ], - "https://github.com/bvhari/ComfyUI_LatentToRGB": [ + "https://github.com/bvhari/ComfyUI_PerpCFG": [ [ - "LatentToRGB" + "PerpCFG" ], { - "title_aux": "LatentToRGB" + "title_aux": "ComfyUI_PerpCFG" } ], "https://github.com/bvhari/ComfyUI_PerpWeight": [ @@ -5377,12 +19291,7 @@ ], "https://github.com/bvhari/ComfyUI_SUNoise": [ [ - "SamplerDPM2Ancestral_SUN", - "SamplerDPMPP2SAncestral_SUN", - "SamplerDPMPP_2M_SDE_SUN", - "SamplerDPMPP_3M_SDE_SUN", - "SamplerDPMPP_SDE_SUN", - "SamplerEulerAncestral_SUN", + "SUNoiseLatent", "SamplersSUNoise", "SamplersSUNoiseAdvanced" ], @@ -5390,12 +19299,416 @@ "title_aux": "ComfyUI_SUNoise" } ], - "https://github.com/catscandrive/comfyui-imagesubfolders/raw/main/loadImageWithSubfolders.py": [ + "https://github.com/bytedance/ComfyUI-HyperLoRA": [ [ - "LoadImagewithSubfolders" + "HyperLoRAApplyLoRA", + "HyperLoRABaseCond", + "HyperLoRAConfig", + "HyperLoRAFaceAttr", + "HyperLoRAGenerateBaseLoRA", + "HyperLoRAGenerateIDLoRA", + "HyperLoRAIDCond", + "HyperLoRALoader", + "HyperLoRASaveLoRA", + "HyperLoRAUniGenerateIDLoRA", + "HyperLoRAUniLoader" ], { - "title_aux": "Image loader with subfolders" + "title_aux": "ComfyUI-HyperLoRA" + } + ], + "https://github.com/bytedance/ComfyUI_InfiniteYou": [ + [ + "FaceCombine", + "FaceSwap_InfiniteYou", + "InfiniteYouApply" + ], + { + "title_aux": "ComfyUI_InfiniteYou" + } + ], + "https://github.com/c0ffymachyne/ComfyUI_BeatByte": [ + [ + "BytebeatSynth" + ], + { + "title_aux": "Bytebeat Synthesizer: Composing with Operators" + } + ], + "https://github.com/c0ffymachyne/ComfyUI_SignalProcessing": [ + [ + "SignalProcessingBaxandall3BandEQ", + "SignalProcessingBaxandallEQ", + "SignalProcessingCompressor", + "SignalProcessingConvolutionReverb", + "SignalProcessingFilter", + "SignalProcessingHarmonicsEnhancer", + "SignalProcessingLimiter", + "SignalProcessingLoadAudio", + "SignalProcessingLoudness", + "SignalProcessingMixdown", + "SignalProcessingNormalizer", + "SignalProcessingPadSynth", + "SignalProcessingPadSynthChoir", + "SignalProcessingPaulStretch", + "SignalProcessingPitchShifter", + "SignalProcessingSaturation", + "SignalProcessingSpectrogram", + "SignalProcessingStereoWidening", + "SignalProcessingWaveform" + ], + { + "title_aux": "ComfyUI Signal Processing" + } + ], + "https://github.com/cake-ml/tiny-sana-preview": [ + [ + "TinySanaPreview" + ], + { + "title_aux": "TinySanaPreview" + } + ], + "https://github.com/calcuis/gguf": [ + [ + "AudioEncoderLoaderGGUF", + "ClipLoaderGGUF", + "DualClipLoaderGGUF", + "GGUFRun", + "GGUFSave", + "GGUFUndo", + "LoaderGGUF", + "LoaderGGUFAdvanced", + "QuadrupleClipLoaderGGUF", + "TENSORBoost", + "TENSORCut", + "TripleClipLoaderGGUF", + "VaeGGUF" + ], + { + "preemptions": [ + "LoaderGGUF", + "ClipLoaderGGUF", + "DualClipLoaderGGUF", + "TripleClipLoaderGGUF", + "LoaderGGUFAdvanced", + "GGUFSave" + ], + "title_aux": "gguf" + } + ], + "https://github.com/caleboleary/ComfyUI-Arc2Face": [ + [ + "Arc2FaceEncoderLoader", + "Arc2FaceFaceExtractor", + "Arc2FaceGenerator", + "Arc2FaceImageGridGenerator", + "Arc2FaceImg2ImgGenerator", + "Arc2FaceUNetLoader" + ], + { + "title_aux": "Arc2Face ComfyUI Node Library" + } + ], + "https://github.com/camenduru/ComfyUI-TostAI": [ + [ + "SendToTostAI" + ], + { + "title_aux": "ComfyUI-TostAI" + } + ], + "https://github.com/cardenluo/ComfyUI-Apt_Preset": [ + [ + "AD_DrawSchedule", + "AD_ImageExpandBatch", + "AD_MaskExpandBatch", + "AD_batch_replace", + "AD_font2img", + "AD_pingpong_vedio", + "AD_sch_IPA", + "AD_sch_image_merge", + "AD_sch_latent", + "AD_sch_mask", + "AD_sch_prompt_adv", + "AD_sch_prompt_basic", + "AD_sch_prompt_stack", + "AD_sch_value", + "AD_slice_Condi", + "AI_GLM4", + "AI_Ollama", + "Amp_audio_Normalized", + "Amp_drive_String", + "Amp_drive_mask", + "Amp_drive_value", + "Apply_CN_union", + "Apply_ControlNetStack", + "Apply_IPA", + "Apply_IPA_SD3", + "Apply_LoRAStack", + "Apply_Redux", + "Apply_adv_CN", + "Apply_condiStack", + "Apply_latent", + "Apply_textStack", + "CN_preset1_Unpack", + "CN_preset1_pack", + "Data_Highway", + "Data_basic", + "Data_bus_chx", + "Data_chx_Merge", + "Data_presetData", + "Data_preset_save", + "Data_sampleData", + "Data_select", + "IO_adjust_image", + "IO_clear_cache", + "IO_input_any", + "IO_inputbasic", + "IO_load_anyimage", + "IO_save_image", + "IO_video_encode", + "IPA_XL_PromptInjection", + "IPA_clip_vision", + "IPA_dapterSD3LOAD", + "Image_Channel_Apply", + "Image_Channel_Extract", + "Image_Channel_RemoveAlpha", + "Image_Pair_Merge", + "Image_Pair_crop", + "Image_Resize2", + "Image_Resize_sum", + "Image_Upscaletile", + "Image_batch_composite", + "Image_batch_select", + "Image_pad_outfill", + "Image_solo_crop", + "Image_solo_stitch", + "Image_transform_layer", + "Image_transform_solo", + "Mask_Detect_label", + "Mask_Remove_bg", + "Mask_face_detect", + "Mask_image2mask", + "Mask_math", + "Mask_splitMask", + "Mask_splitMask_by_color", + "Mask_split_mulMask", + "Mask_transform_sum", + "Model_Preset_Unpack", + "Model_Preset_pack", + "Stack_CN_union", + "Stack_ControlNet", + "Stack_IPA", + "Stack_IPA_SD3", + "Stack_LoRA", + "Stack_Redux", + "Stack_WanCameralToVideo", + "Stack_WanFirstLastFrameToVideo", + "Stack_WanFunControlToVideo", + "Stack_WanFunInpaintToVideo", + "Stack_WanImageToVideo", + "Stack_WanVaceToVideo", + "Stack_adv_CN", + "Stack_condi", + "Stack_latent", + "Stack_pre_Mark", + "Stack_sample_data", + "Stack_text", + "basicIn_Sampler", + "basicIn_Scheduler", + "basicIn_Seed", + "basicIn_color", + "basicIn_float", + "basicIn_int", + "basicIn_string", + "basic_Ksampler_adv", + "basic_Ksampler_custom", + "basic_Ksampler_full", + "basic_Ksampler_mid", + "basic_Ksampler_simple", + "batch_BatchGetByIndex", + "batch_BatchSlice", + "batch_MergeBatch", + "chx_IPA_XL", + "chx_IPA_adv", + "chx_IPA_apply_combine", + "chx_IPA_basic", + "chx_IPA_faceID", + "chx_IPA_faceID_adv", + "chx_IPA_region_combine", + "chx_Ksampler_Kontext", + "chx_Ksampler_Kontext_adv", + "chx_Ksampler_Kontext_inpaint", + "chx_Ksampler_VisualStyle", + "chx_Ksampler_dual_area", + "chx_Ksampler_dual_paint", + "chx_Ksampler_inpaint", + "chx_Ksampler_mix", + "chx_Ksampler_refine", + "chx_Ksampler_texture", + "chx_StyleModelApply", + "chx_Style_Redux", + "chx_YC_LG_Redux", + "chx_ksampler_Deforum_sch", + "chx_ksampler_tile", + "chx_latent_adjust", + "color_Local_Gray", + "color_OneColor_keep", + "color_OneColor_replace", + "color_adjust_HDR", + "color_adjust_HSL", + "color_adjust_WB_balance", + "color_adjust_light", + "color_match_adv", + "color_selector", + "color_tool", + "creat_any_List", + "creat_any_batch", + "creat_image_batch", + "creat_image_batch_input", + "creat_mask_batch", + "creat_mask_batch_input", + "create_AD_mask", + "create_Mask_match_shape", + "create_Mask_visual_tag", + "create_RadialGradient", + "create_lineGradient", + "create_mask_array", + "create_mask_solo", + "create_mulcolor_img", + "excel_Prompter", + "excel_VedioPrompt", + "excel_column_diff", + "excel_imgEditor_helper", + "excel_insert_image", + "excel_qwen_artistic", + "excel_qwen_font", + "excel_read", + "excel_row_diff", + "excel_search_data", + "excel_write_data", + "img_effect_CircleWarp", + "img_effect_Liquify", + "img_effect_Load", + "img_effect_Stretch", + "img_effect_WaveWarp", + "latent_Image2Noise", + "latent_chx_noise", + "latent_ratio", + "lay_ImageGrid", + "lay_MaskGrid", + "lay_compare_img", + "lay_edge_cut", + "lay_fill_inpaint", + "lay_image_grid_note", + "lay_images_free_layout", + "lay_imgCanvas", + "lay_text_sum", + "lay_texture_Offset", + "list_ListGetByIndex", + "list_ListSlice", + "list_MergeList", + "list_num_range", + "list_sch_Value", + "load_FLUX", + "load_GGUF", + "load_SD35", + "load_basic", + "math_Remap_data", + "math_calculate", + "model_Regional", + "model_Style_Align", + "model_adjust_color", + "model_diff_inpaint", + "pack_Pack", + "pack_Unpack", + "param_preset_Unpack", + "param_preset_pack", + "photoshop_preset_Unpack", + "photoshop_preset_pack", + "pre_Flex2", + "pre_Kontext", + "pre_Kontext_mul", + "pre_QwenEdit", + "pre_controlnet", + "pre_controlnet_union", + "pre_guide", + "pre_ic_light_sd15", + "pre_latent_light", + "pre_mul_Mulcondi", + "pre_qwen_controlnet", + "pre_sample_data", + "sampler_DynamicTileMerge", + "sampler_DynamicTileSplit", + "sampler_enhance", + "sch_Prompt", + "sch_Value", + "sch_image", + "sch_mask", + "sch_split_text", + "sch_text", + "stack_Mask2color", + "stack_sum_pack", + "sum_create_chx", + "sum_editor", + "sum_latent", + "sum_load_adv", + "sum_lora", + "sum_stack_AD", + "sum_stack_Wan", + "sum_stack_all", + "sum_stack_image", + "text_SuperPrompter", + "text_free_wildcards", + "text_mul_Join", + "text_mul_Split", + "text_mul_remove", + "text_mul_replace", + "text_stack_wildcards", + "text_sum", + "type_AnyCast", + "type_Anyswitch", + "type_BasiPIPE", + "type_BatchToList", + "type_Image_Batch2List", + "type_Image_List2Batch", + "type_ListToBatch", + "type_Mask_Batch2List", + "type_Mask_List2Batch", + "type_text_list2batch", + "unpack_box2", + "view_Data", + "view_GetLength", + "view_GetShape", + "view_GetWidgetsValues", + "view_Mask_And_Img", + "view_bridge_Text", + "view_bridge_image", + "view_combo", + "view_latent", + "view_mask", + "view_node_Script" + ], + { + "title_aux": "ComfyUI-Apt_Preset" + } + ], + "https://github.com/casterpollux/MiniMax-bmo": [ + [ + "MinimaxRemoverBMO" + ], + { + "nodename_pattern": "MiniMax.*BMO|BMO.*MiniMax", + "title_aux": "MiniMax Video Object Remover Suite" + } + ], + "https://github.com/catboxanon/comfyui_stealth_pnginfo": [ + [ + "CatboxAnonSaveImageStealth" + ], + { + "title_aux": "comfyui_stealth_pnginfo" } ], "https://github.com/cdb-boop/ComfyUI-Bringing-Old-Photos-Back-to-Life": [ @@ -5418,6 +19731,7 @@ ], "https://github.com/cdb-boop/comfyui-image-round": [ [ + "ComfyUI_Image_Round__CircularCrop", "ComfyUI_Image_Round__ImageCropAdvanced", "ComfyUI_Image_Round__ImageRound", "ComfyUI_Image_Round__ImageRoundAdvanced" @@ -5426,19 +19740,124 @@ "title_aux": "comfyui-image-round" } ], - "https://github.com/celsojr2013/comfyui_simpletools/raw/main/google_translator.py": [ + "https://github.com/cdxOo/comfyui-text-node-with-comments": [ [ - "GoogleTranslator" + "text-node-with-comments" + ], + { + "title_aux": "Text Node With Comments (@cdxoo)" + } + ], + "https://github.com/cedarconnor/ComfyUI_HunyuanWorld": [ + [ + "HYW_Config", + "HYW_MeshAnalyzer", + "HYW_MeshExport", + "HYW_MeshProcessor", + "HYW_MetadataManager", + "HYW_ModelLoader", + "HYW_PanoGen", + "HYW_PanoGenBatch", + "HYW_PanoInpaint_Advanced", + "HYW_PanoInpaint_Scene", + "HYW_PanoInpaint_Sky", + "HYW_PanoramaValidator", + "HYW_PerspectiveToPanoramaMask", + "HYW_RuntimeFromStock", + "HYW_SeamlessWrap360", + "HYW_SettingsLoader", + "HYW_ShiftPanorama", + "HYW_SkyMaskGenerator", + "HYW_TextureBaker", + "HYW_Thumbnailer", + "HYW_WorldReconstructor" + ], + { + "title_aux": "ComfyUI HunyuanWorld - Professional 3D World Generation" + } + ], + "https://github.com/cedarconnor/comfyui-BatchNameLoop": [ + [ + "Batch Image Iterator", + "Batch Image Loader", + "Batch Image Saver", + "Batch Image Single Saver" + ], + { + "title_aux": "ComfyUI Batch Name Loop" + } + ], + "https://github.com/cedarconnor/comfyui-LatLong": [ + [ + "Equirectangular Crop 180", + "Equirectangular Crop Square", + "Equirectangular Perspective Extract", + "Equirectangular Processor", + "Equirectangular Rotate", + "Equirectangular To Cubemap" + ], + { + "title_aux": "ComfyUI LatLong - Equirectangular Image Processing Nodes" + } + ], + "https://github.com/cedarconnor/upsampler": [ + [ + "Upsampler Dynamic Upscale", + "Upsampler Precise Upscale", + "Upsampler Smart Upscale" + ], + { + "title_aux": "ComfyUI Upsampler Nodes" + } + ], + "https://github.com/celoron/ComfyUI-VisualQueryTemplate": [ + [ + "VisualQueryTemplateNode" + ], + { + "title_aux": "ComfyUI-VisualQueryTemplate" + } + ], + "https://github.com/celsojr2013/comfyui_jamworks_client": [ + [ + "Jamworks_Download", + "Jamworks_Login", + "Shell_Command" + ], + { + "title_aux": "comfyui_jamworks_client" + } + ], + "https://github.com/celsojr2013/comfyui_simpletools": [ + [ + "GoogleTranslator", + "Parameters", + "ResolutionSolver" ], { "title_aux": "ComfyUI SimpleTools Suit" } ], + "https://github.com/cenzijing/ComfyUI-Markmap": [ + [ + "MarkmapNode", + "ReadHtmlNode" + ], + { + "title_aux": "ComfyUI-Markmap" + } + ], "https://github.com/cerspense/ComfyUI_cspnodes": [ [ + "DepthToNormalMap", + "GetMP4Prompt", "ImageDirIterator", + "IncrementEveryN", "Modelscopet2v", "Modelscopev2v", + "RemapRange", + "ResizeByImage", + "SplitImageChannels", "VidDirIterator" ], { @@ -5453,6 +19872,63 @@ "title_aux": "ComfyUI LLaVA Captioner" } ], + "https://github.com/cganimitta/ComfyUI_CGAnimittaTools": [ + [ + "CGA_BlackBorderCrop", + "CGA_BlenderBridge", + "CGA_ColorToGrayscale", + "CGA_ExtractFromList", + "CGA_FrameExtraction\ud83c\udf9e\ufe0f", + "CGA_ListSubfolders", + "CGA_NegativeSelector", + "CGA_TxtReaderNode" + ], + { + "title_aux": "ComfyUI_CGAnimittaTools" + } + ], + "https://github.com/chakib-belgaid/ComfyUI-autosize": [ + [ + "CustomAutoSize", + "SDXLAutoSize" + ], + { + "title_aux": "ComfyUI-autosize" + } + ], + "https://github.com/chakib-belgaid/Comfyui_Prompt_styler": [ + [ + "Prompt_Styler" + ], + { + "title_aux": "ComfyUI Style Plugin" + } + ], + "https://github.com/chandlergis/ComfyUI-IMG_Query": [ + [ + "ImageRequestNode" + ], + { + "title_aux": "ComfyUI-IMG_Query" + } + ], + "https://github.com/chandlergis/ComfyUI_EmojiOverlay": [ + [ + "Image Emoji Overlay" + ], + { + "title_aux": "ComfyUI_EmojiOverlay" + } + ], + "https://github.com/changwook987/ComfyUI-Small-Utility": [ + [ + "Eval", + "RandomEmptyLatent" + ], + { + "title_aux": "ComfyUI-Small-Utility" + } + ], "https://github.com/chaojie/ComfyUI-AniPortrait": [ [ "AniPortraitLoader", @@ -5580,6 +20056,25 @@ "title_aux": "ComfyUI-Img2Img-Turbo" } ], + "https://github.com/chaojie/ComfyUI-LaVIT": [ + [ + "VHS_FILENAMES_STRING_LaVIT", + "VideoLaVITI2I", + "VideoLaVITI2V", + "VideoLaVITI2VLong", + "VideoLaVITLoader", + "VideoLaVITT2V", + "VideoLaVITT2VLong", + "VideoLaVITUnderstandingImage", + "VideoLaVITUnderstandingLoader", + "VideoLaVITUnderstandingVideo", + "VideoLaVITVideoDetokenizerLoader", + "VideoLaVITVideoReconstruction" + ], + { + "title_aux": "ComfyUI-LaVIT" + } + ], "https://github.com/chaojie/ComfyUI-LightGlue": [ [ "LightGlue Loader", @@ -5722,6 +20217,17 @@ "title_aux": "ComfyUI-RAFT" } ], + "https://github.com/chaojie/ComfyUI-SimDA": [ + [ + "SimDALoader", + "SimDARun", + "SimDATrain", + "VHS_FILENAMES_STRING_SimDA" + ], + { + "title_aux": "ComfyUI-SimDA" + } + ], "https://github.com/chaojie/ComfyUI-Trajectory": [ [ "Trajectory_Canvas_Tab" @@ -5734,8 +20240,20 @@ "title_aux": "ComfyUI-Trajectory" } ], + "https://github.com/chaojie/ComfyUI-Video-Editing-X-Attention": [ + [ + "StringList", + "VEXAGuidance", + "VEXALoader", + "VEXARun" + ], + { + "title_aux": "ComfyUI-Video-Editing-X-Attention" + } + ], "https://github.com/chaojie/ComfyUI-dust3r": [ [ + "CameraPoseVideo", "Dust3rLoader", "Dust3rRun" ], @@ -5779,6 +20297,7 @@ "chaosaiart_Any_Switch", "chaosaiart_Any_Switch_Big_Number", "chaosaiart_Any_Switch_small", + "chaosaiart_AutoNone_Switch_small", "chaosaiart_CheckpointLoader", "chaosaiart_CheckpointPrompt", "chaosaiart_CheckpointPrompt2", @@ -5828,6 +20347,7 @@ "chaosaiart_controlnet_weidgth", "chaosaiart_convert", "chaosaiart_convert_Prompt", + "chaosaiart_deepseek_fix", "chaosaiart_forPreview", "chaosaiart_image_loop", "chaosaiart_img2gif", @@ -5851,6 +20371,160 @@ "title_aux": "Chaosaiart-Nodes" } ], + "https://github.com/charlyad142/ComfyUI_Charly_FitToAspectNode": [ + [ + "Charly FitToAspectNode" + ], + { + "title_aux": "ComfyUI Charly FitToAspectNode" + } + ], + "https://github.com/charlyad142/ComfyUI_bfl_api_pro_nodes": [ + [ + "BFL Canny Control", + "BFL Depth Control", + "BFL Flux Kontext", + "BFL Flux Ultra", + "BFL Image Expander", + "BFL Image Generator", + "BFL Inpainting" + ], + { + "title_aux": "ComfyUI BFL API Pro Nodes" + } + ], + "https://github.com/chaserhkj/ComfyUI-Chaser-nodes": [ + [ + "EvalFloatExpr", + "EvalIntExpr", + "LoadImageFromWebDAV", + "UploadImagesToWebDAV", + "UploadWebMToWebDAV" + ], + { + "title_aux": "Chaser's Custom Nodes" + } + ], + "https://github.com/checkbins/checkbin-comfy": [ + [ + "Checkbin Get Image Bin", + "Checkbin Get String Bin", + "Checkbin Save Image Bin", + "Checkbin Save String Bin", + "Checkbin Start Run", + "Checkbin Submit Bin" + ], + { + "title_aux": "checkbin-comfy" + } + ], + "https://github.com/chenbaiyujason/ComfyUI_StepFun": [ + [ + "CombineStrings", + "JSONParser", + "StepFunClient", + "TextImageChat", + "VideoChat", + "VideoFileUploader" + ], + { + "title_aux": "ComfyUI-SCStepFun" + } + ], + "https://github.com/chenlongming/ComfyUI_Spectral": [ + [ + "Calculate", + "KMeans", + "LoadEnvi", + "LoadSpectral", + "Plot" + ], + { + "title_aux": "ComfyUI_Spectral" + } + ], + "https://github.com/chenpipi0807/ComfyUI-Index-TTS": [ + [ + "AudioCleanupNode", + "IndexTTSNode", + "IndexTTSProNode", + "NovelTextStructureNode", + "TimbreAudioLoader" + ], + { + "author": "ComfyUI-Index-TTS", + "description": "ComfyUI\u63a5\u53e3\u7684\u5de5\u4e1a\u7ea7\u96f6\u6837\u672c\u6587\u672c\u5230\u8bed\u97f3\u5408\u6210\u7cfb\u7edf", + "title": "IndexTTS for ComfyUI", + "title_aux": "ComfyUI-Index-TTS" + } + ], + "https://github.com/chenpipi0807/ComfyUI_NSFW_Godie": [ + [ + "NSFWFilterNode" + ], + { + "title_aux": "ComfyUI NSFW Filter" + } + ], + "https://github.com/chenpipi0807/Comfyui-Qwen-image-edit-CharacterConsistency": [ + [ + "TextEncodeQwenImageEditEnhanced" + ], + { + "title_aux": "Comfyui-Qwen-image-edit-CharacterConsistency" + } + ], + "https://github.com/chenpipi0807/PIP_ArtisticWords": [ + [ + "PIP Artistic Text Generator", + "PIP ArtisticWords Fusion", + "PIP ColorPicker", + "PIP SVG Recorder", + "PIP Text Preview", + "PIPAdvancedColorAnalyzer", + "PIPColorPicker", + "PIPColorWheel" + ], + { + "title_aux": "PIP Artistic Words for ComfyUI" + } + ], + "https://github.com/cherninlab/logo-generator-comfyui": [ + [ + "GoogleFontsLogo" + ], + { + "title_aux": "Logo Generator Node for ComfyUI" + } + ], + "https://github.com/chesnokovivan/ComfyUI-Novakid": [ + [ + "Novakid Styler" + ], + { + "title_aux": "ComfyUI-Novakid" + } + ], + "https://github.com/chflame163/ComfyUI_CatVTON_Wrapper": [ + [ + "CatVTONWrapper" + ], + { + "author": "chflame", + "description": "CatVTON warpper for ComfyUI", + "nickname": "CatVTON_Wrapper", + "title": "CatVTON_Wrapper", + "title_aux": "ComfyUI_CatVTON_Wrapper" + } + ], + "https://github.com/chflame163/ComfyUI_CogView4_Wrapper": [ + [ + "CogView4" + ], + { + "title_aux": "ComfyUI_CogView4_Wrapper" + } + ], "https://github.com/chflame163/ComfyUI_FaceSimilarity": [ [ "Face Similarity" @@ -5859,103 +20533,277 @@ "title_aux": "ComfyUI Face Similarity" } ], + "https://github.com/chflame163/ComfyUI_Janus_Wrapper": [ + [ + "JanusImage2Text", + "JanusTextToImage", + "LoadJanusModel" + ], + { + "title_aux": "ComfyUI_Janus_Wrapper" + } + ], "https://github.com/chflame163/ComfyUI_LayerStyle": [ [ + "LayerColor: AutoAdjust", + "LayerColor: AutoAdjustV2", "LayerColor: AutoBrightness", "LayerColor: Brightness & Contrast", + "LayerColor: BrightnessContrastV2", "LayerColor: Color of Shadow & Highlight", "LayerColor: ColorAdapter", + "LayerColor: ColorBalance", + "LayerColor: ColorTemperature", + "LayerColor: ColorofShadowHighlightV2", "LayerColor: Exposure", "LayerColor: Gamma", "LayerColor: HSV", "LayerColor: LAB", "LayerColor: LUT Apply", + "LayerColor: Levels", + "LayerColor: Negative", "LayerColor: RGB", "LayerColor: YUV", + "LayerFilter: AddGrain", "LayerFilter: ChannelShake", "LayerFilter: ColorMap", "LayerFilter: Film", + "LayerFilter: FilmV2", "LayerFilter: GaussianBlur", + "LayerFilter: GaussianBlurV2", "LayerFilter: HDREffects", + "LayerFilter: HalfTone", "LayerFilter: LightLeak", "LayerFilter: MotionBlur", "LayerFilter: Sharp & Soft", "LayerFilter: SkinBeauty", "LayerFilter: SoftLight", "LayerFilter: WaterColor", - "LayerMask: BiRefNetUltra", + "LayerMask: BlendIf Mask", "LayerMask: CreateGradientMask", + "LayerMask: ImageToMask", + "LayerMask: LoadSegformerModel", "LayerMask: MaskBoxDetect", - "LayerMask: MaskByDifferent", + "LayerMask: MaskBoxExtend", + "LayerMask: MaskByColor", "LayerMask: MaskEdgeShrink", "LayerMask: MaskEdgeUltraDetail", "LayerMask: MaskEdgeUltraDetail V2", "LayerMask: MaskGradient", + "LayerMask: MaskGrain", "LayerMask: MaskGrow", "LayerMask: MaskInvert", "LayerMask: MaskMotionBlur", "LayerMask: MaskPreview", "LayerMask: MaskStroke", - "LayerMask: PersonMaskUltra", - "LayerMask: PersonMaskUltra V2", "LayerMask: PixelSpread", "LayerMask: RemBgUltra", "LayerMask: RmBgUltra V2", - "LayerMask: SegmentAnythingUltra", - "LayerMask: SegmentAnythingUltra V2", + "LayerMask: SegformerB2ClothesUltra", + "LayerMask: SegformerClothesPipelineLoader", + "LayerMask: SegformerClothesSetting", + "LayerMask: SegformerFashionPipelineLoader", + "LayerMask: SegformerFashionSetting", + "LayerMask: SegformerUltraV2", + "LayerMask: SegformerUltraV3", "LayerMask: Shadow & Highlight Mask", + "LayerMask: ShadowHighlightMaskV2", "LayerStyle: ColorOverlay", + "LayerStyle: ColorOverlay V2", "LayerStyle: DropShadow", + "LayerStyle: DropShadow V2", + "LayerStyle: DropShadow V3", + "LayerStyle: Gradient Map", "LayerStyle: GradientOverlay", + "LayerStyle: GradientOverlay V2", "LayerStyle: InnerGlow", + "LayerStyle: InnerGlow V2", "LayerStyle: InnerShadow", + "LayerStyle: InnerShadow V2", "LayerStyle: OuterGlow", + "LayerStyle: OuterGlow V2", "LayerStyle: Stroke", + "LayerStyle: Stroke V2", + "LayerUtility: AnyRerouter", + "LayerUtility: BatchSelector", + "LayerUtility: Boolean", + "LayerUtility: BooleanOperator", + "LayerUtility: BooleanOperatorV2", + "LayerUtility: CheckMask", + "LayerUtility: CheckMaskV2", + "LayerUtility: ChoiceTextPreset", "LayerUtility: ColorImage", "LayerUtility: ColorImage V2", + "LayerUtility: ColorName", "LayerUtility: ColorPicker", "LayerUtility: CropBoxResolve", "LayerUtility: CropByMask", "LayerUtility: CropByMask V2", + "LayerUtility: CropByMask V3", "LayerUtility: ExtendCanvas", - "LayerUtility: GetColorTone", - "LayerUtility: GetColorToneV2", + "LayerUtility: ExtendCanvasV2", + "LayerUtility: Float", + "LayerUtility: FluxKontextImageScale", "LayerUtility: GetImageSize", + "LayerUtility: GetMainColors", + "LayerUtility: GetMainColorsV2", "LayerUtility: GradientImage", "LayerUtility: GradientImage V2", - "LayerUtility: ImageAutoCrop", - "LayerUtility: ImageAutoCrop V2", + "LayerUtility: GrayValue", + "LayerUtility: HLFrequencyDetailRestore", + "LayerUtility: HSV Value", + "LayerUtility: ICMask", + "LayerUtility: ICMaskCropBack", + "LayerUtility: If", "LayerUtility: ImageBlend", + "LayerUtility: ImageBlend V2", "LayerUtility: ImageBlendAdvance", + "LayerUtility: ImageBlendAdvance V2", + "LayerUtility: ImageBlendAdvance V3", "LayerUtility: ImageChannelMerge", "LayerUtility: ImageChannelSplit", "LayerUtility: ImageCombineAlpha", "LayerUtility: ImageHub", "LayerUtility: ImageMaskScaleAs", + "LayerUtility: ImageMaskScaleAsV2", "LayerUtility: ImageOpacity", + "LayerUtility: ImageReel", + "LayerUtility: ImageReelComposit", "LayerUtility: ImageRemoveAlpha", - "LayerUtility: ImageRewardFilter", "LayerUtility: ImageScaleByAspectRatio", "LayerUtility: ImageScaleByAspectRatio V2", "LayerUtility: ImageScaleRestore", "LayerUtility: ImageScaleRestore V2", "LayerUtility: ImageShift", - "LayerUtility: LaMa", + "LayerUtility: ImageTaggerSave", + "LayerUtility: ImageTaggerSaveV2", + "LayerUtility: Integer", "LayerUtility: LayerImageTransform", "LayerUtility: LayerMaskTransform", + "LayerUtility: LoadImagesFromPath", + "LayerUtility: LoadVQAModel", + "LayerUtility: NameToColor", + "LayerUtility: NumberCalculator", + "LayerUtility: NumberCalculatorV2", "LayerUtility: PrintInfo", - "LayerUtility: PromptEmbellish", - "LayerUtility: PromptTagger", + "LayerUtility: PurgeVRAM", + "LayerUtility: PurgeVRAM V2", + "LayerUtility: QueueStop", + "LayerUtility: RGB Value", + "LayerUtility: RandomGenerator", + "LayerUtility: RandomGeneratorV2", "LayerUtility: RestoreCropBox", + "LayerUtility: RoundedRectangle", + "LayerUtility: Seed", "LayerUtility: SimpleTextImage", + "LayerUtility: String", + "LayerUtility: StringCondition", + "LayerUtility: SwitchCase", + "LayerUtility: TextBox", "LayerUtility: TextImage", + "LayerUtility: TextImage V2", "LayerUtility: TextJoin", + "LayerUtility: TextJoinV2", + "LayerUtility: TextPreseter", + "LayerUtility: VQAPrompt", "LayerUtility: XY to Percent" ], { + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", "title_aux": "ComfyUI Layer Style" } ], + "https://github.com/chflame163/ComfyUI_LayerStyle_Advance": [ + [ + "LayerMask: BBoxJoin", + "LayerMask: BenUltra", + "LayerMask: BiRefNetUltra", + "LayerMask: BiRefNetUltraV2", + "LayerMask: DrawBBoxMask", + "LayerMask: DrawBBoxMaskV2", + "LayerMask: EVFSAMUltra", + "LayerMask: Florence2Ultra", + "LayerMask: HumanPartsUltra", + "LayerMask: LoadBenModel", + "LayerMask: LoadBiRefNetModel", + "LayerMask: LoadBiRefNetModelV2", + "LayerMask: LoadFlorence2Model", + "LayerMask: LoadSAM2Model", + "LayerMask: LoadSegmentAnythingModels", + "LayerMask: MaskByDifferent", + "LayerMask: MediapipeFacialSegment", + "LayerMask: ObjectDetectorFL2", + "LayerMask: ObjectDetectorGemini", + "LayerMask: ObjectDetectorGeminiV2", + "LayerMask: ObjectDetectorMask", + "LayerMask: ObjectDetectorYOLO8", + "LayerMask: ObjectDetectorYOLOWorld", + "LayerMask: PersonMaskUltra", + "LayerMask: PersonMaskUltra V2", + "LayerMask: SAM2Ultra", + "LayerMask: SAM2UltraV2", + "LayerMask: SAM2VideoUltra", + "LayerMask: SegmentAnythingUltra", + "LayerMask: SegmentAnythingUltra V2", + "LayerMask: SegmentAnythingUltra V3", + "LayerMask: TransparentBackgroundUltra", + "LayerMask: YoloV8Detect", + "LayerUtility: AddBlindWaterMark", + "LayerUtility: Collage", + "LayerUtility: CreateQRCode", + "LayerUtility: DecodeQRCode", + "LayerUtility: DeepSeekAPI", + "LayerUtility: DeepSeekAPIV2", + "LayerUtility: Florence2Image2Prompt", + "LayerUtility: Gemini", + "LayerUtility: GeminiImageEdit", + "LayerUtility: GeminiV2", + "LayerUtility: GetColorTone", + "LayerUtility: GetColorToneV2", + "LayerUtility: ImageAutoCrop", + "LayerUtility: ImageAutoCrop V2", + "LayerUtility: ImageAutoCrop V3", + "LayerUtility: ImageRewardFilter", + "LayerUtility: JimengI2IAPI", + "LayerUtility: JoyCaption2", + "LayerUtility: JoyCaption2ExtraOptions", + "LayerUtility: JoyCaption2Split", + "LayerUtility: JoyCaptionBeta1", + "LayerUtility: JoyCaptionBeta1ExtraOptions", + "LayerUtility: LaMa", + "LayerUtility: LlamaVision", + "LayerUtility: LoadJoyCaption2Model", + "LayerUtility: LoadJoyCaptionBeta1Model", + "LayerUtility: LoadPSD", + "LayerUtility: LoadSmolLM2Model", + "LayerUtility: LoadSmolVLMModel", + "LayerUtility: PhiPrompt", + "LayerUtility: PromptEmbellish", + "LayerUtility: PromptTagger", + "LayerUtility: QWenImage2Prompt", + "LayerUtility: SD3NegativeConditioning", + "LayerUtility: SaveImagePlus", + "LayerUtility: SaveImagePlusV2", + "LayerUtility: ShowBlindWaterMark", + "LayerUtility: SmolLM2", + "LayerUtility: SmolVLM", + "LayerUtility: UserPromptGeneratorReplaceWord", + "LayerUtility: UserPromptGeneratorTxt2ImgPrompt", + "LayerUtility: UserPromptGeneratorTxt2ImgPromptWithReference", + "LayerUtility: ZhipuGLM4", + "LayerUtility: ZhipuGLM4V" + ], + { + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", + "title_aux": "ComfyUI_LayerStyle_Advance" + } + ], "https://github.com/chflame163/ComfyUI_MSSpeech_TTS": [ [ "Input Trigger", @@ -5967,6 +20815,14 @@ "title_aux": "ComfyUI_MSSpeech_TTS" } ], + "https://github.com/chflame163/ComfyUI_OmniGen_Wrapper": [ + [ + "dzOmniGenWrapper" + ], + { + "title_aux": "ComfyUI_OmniGen_Wrapper" + } + ], "https://github.com/chflame163/ComfyUI_WordCloud": [ [ "ComfyWordCloud", @@ -5981,6 +20837,7 @@ [ "ConditionText", "ConditionTextMulti", + "ConditionTextPrompts", "ImageAddText", "ImageSimpleResize", "ImageSizeInfo", @@ -6012,28 +20869,130 @@ "title_aux": "Comfy-Topaz" } ], - "https://github.com/chrisgoringe/cg-image-picker": [ + "https://github.com/chou18194766xx/comfyui-EncryptSave": [ [ - "Preview Chooser", - "Preview Chooser Fabric" + "EncryptSaveAES" + ], + { + "title_aux": "comfyui-EncryptSave" + } + ], + "https://github.com/chou18194766xx/comfyui_EncryptPreview": [ + [ + "EncryptPreviewImage" + ], + { + "title_aux": "comfyui_EncryptPreview" + } + ], + "https://github.com/chri002/ComfyUI_depthMapOperation": [ + [ + "CleanPoints (KDTree)", + "CloudPointsInfo", + "CubeLimit", + "Export to PLY", + "ImageToPoints", + "ImageToPoints (Legacy)", + "ImageToPoints (Torch)", + "Import PLY", + "InterpolatePoints (KDTree)", + "PointsToImage (Orthographic)", + "PointsToImage (Projection)", + "PointsToImage advance (DEBUG)", + "PointsToImage advance (Orthographic)", + "PointsToImage advance (Projection)", + "TransformPoints" + ], + { + "title_aux": "ComfyUI_depthMapOperation" + } + ], + "https://github.com/chris-arsenault/ComfyUI-AharaNodes": [ + [ + "FrameSegmenter", + "FrameSegmenterIndexer", + "RepeatSampler", + "RepeatSamplerConfigNode", + "RepeatSamplerConfigPatchLatent", + "RepeatSamplerConfigPatchModel" + ], + { + "title_aux": "ComfyUI-AharaNodes" + } + ], + "https://github.com/chris-the-wiz/EmbeddingsCurveEditor_ComfyUI": [ + [ + "Embeddings Curve Editor" + ], + { + "title_aux": "EmbeddingsCurveEditor_ComfyUI" + } + ], + "https://github.com/chrisfreilich/virtuoso-nodes": [ + [ + "BlackAndWhite", + "BlendIf", + "BlendModes", + "ColorBalance", + "ColorBalanceAdvanced", + "GaussianBlur", + "GaussianBlurDepth", + "HueSat", + "HueSatAdvanced", + "LensBlur", + "LensBlurDepth", + "Levels", + "MergeRGB", + "MotionBlur", + "MotionBlurDepth", + "SelectiveColor", + "SolidColor", + "SolidColorHSV", + "SolidColorRGB", + "SplitRGB" + ], + { + "author": "Chris Freilich", + "description": "This extension provides a \"Levels\" node.", + "nickname": "Virtuoso Pack - Contrast", + "title": "Virtuoso Pack - Contrast", + "title_aux": "Virtuoso Nodes for ComfyUI" + } + ], + "https://github.com/chrisgoringe/cg-image-filter": [ + [ + "Any List to String", + "Batch from Image List", + "Image Filter", + "Image List From Batch", + "Mask Image Filter", + "Masked Section", + "Pick from List", + "Split String by Commas", + "String List from Strings", + "String to Float", + "String to Int", + "Text Image Filter", + "Text Image Filter with Extras" ], { "author": "chrisgoringe", - "description": "Custom nodes that preview images and pause the workflow to allow the user to select one or more to progress", - "nickname": "Image Chooser", - "title": "Image Chooser", - "title_aux": "Image chooser" + "description": "A custom node that pauses the flow while you choose which image or images to pass on to the rest of the workflow. Simplified and improved version of cg-image-picker.", + "nickname": "Image Filter", + "title": "Image Filter", + "title_aux": "Image Filter" } ], - "https://github.com/chrisgoringe/cg-noise": [ + "https://github.com/chrisgoringe/cg-noisetools": [ [ - "Hijack", - "KSampler Advanced with Variations", - "KSampler with Variations", - "UnHijack" + "Batch Noise Simulate", + "Mix Noise", + "Seperable Batch Noise", + "Shape Noise", + "Split Sigmas with Rewind" ], { - "title_aux": "Variation seeds" + "title_aux": "Noise variation and batch noise tools" } ], "https://github.com/chrisgoringe/cg-use-everywhere": [ @@ -6045,6 +21004,197 @@ "title_aux": "Use Everywhere (UE Nodes)" } ], + "https://github.com/chrissy0/chris-comfyui-nodes": [ + [ + "PadImageSquare" + ], + { + "title_aux": "chris-comfyui-nodes" + } + ], + "https://github.com/christian-byrne/audio-separation-nodes-comfyui": [ + [ + "AudioCombine", + "AudioCrop", + "AudioGetTempo", + "AudioSeparation", + "AudioSpeedShift", + "AudioTempoMatch", + "AudioVideoCombine" + ], + { + "title_aux": "audio-separation-nodes-comfyui" + } + ], + "https://github.com/christian-byrne/claude-code-comfyui-nodes": [ + [ + "ClaudeCodeArguments", + "ClaudeCodeContext", + "ClaudeCodeExecute", + "ClaudeCodeMCP", + "ClaudeCodeMemory", + "ClaudeCodeReader", + "ClaudeCodeTools", + "ClaudeRedditScraper" + ], + { + "title_aux": "Claude Code ComfyUI Nodes" + } + ], + "https://github.com/christian-byrne/img2colors-comfyui-node": [ + [ + "bmy_Img2ColorNode" + ], + { + "author": "christian-byrne", + "description": "", + "nickname": "img2color", + "title": "Img2Color Node - Detect and describe color palettes in images", + "title_aux": "Img2color - Extract Colors from Image" + } + ], + "https://github.com/christian-byrne/img2txt-comfyui-nodes": [ + [ + "img2txt BLIP/Llava Multimodel Tagger" + ], + { + "author": "christian-byrne", + "title": "Img2Txt auto captioning", + "title_aux": "img2txt-comfyui-nodes" + } + ], + "https://github.com/christian-byrne/size-match-compositing-nodes": [ + [ + "Composite Alpha Layer", + "Size Match Images/Masks" + ], + { + "title_aux": "Node - Size Matcher" + } + ], + "https://github.com/christian-byrne/youtube-dl-comfyui": [ + [ + "YoutubeDL" + ], + { + "title_aux": "youtube-dl-comfyui" + } + ], + "https://github.com/chuchu114514/comfyui_proportion_solver": [ + [ + "ProportionSolver", + "ProportionSolverAdvanced" + ], + { + "title_aux": "comfyui_proportion_solver" + } + ], + "https://github.com/chuchu114514/comfyui_text_list_stepper": [ + [ + "TextListProcessor_Gemini" + ], + { + "title_aux": "comfyui_text_list_stepper" + } + ], + "https://github.com/chyer/Chye-ComfyUI-Toolset": [ + [ + "CYHARRHalationNode", + "CYHChromaticAberrationNode", + "CYHFilmGrainNode", + "CYHFolderFilenameBuilderNode", + "CYHGlobalColorGradingNode", + "CYHLatentFluxAspectRatio", + "CYHLatentPhoneAspectRatio", + "CYHLatentQwenAspectRatio", + "CYHLatentSDXLAspectRatio", + "CYHLatentSocialAspectRatio", + "CYHLatentVideoAspectRatio", + "CYHPreviewVideo", + "CYHResolutionMultiplierNode", + "CYHTextFileEditorNode", + "CYHTextFileLoaderNode", + "PromptEnhancer", + "PromptEnhancerEditable", + "PromptToolsSetup" + ], + { + "title_aux": "Chye ComfyUI Toolset" + } + ], + "https://github.com/ciga2011/ComfyUI-MarkItDown": [ + [ + "WIZ_AUDIO2MARKDOWN", + "WIZ_EXCEL2MARKDOWN", + "WIZ_HTML2MARKDOWN", + "WIZ_IMAGE2MARKDOWN", + "WIZ_IPYNB2MARKDOWN", + "WIZ_LLM_CLIENT", + "WIZ_MARKITDOWN", + "WIZ_PDF2MARKDOWN", + "WIZ_POWERPOINT2MARKDOWN", + "WIZ_WORD2MARKDOWN" + ], + { + "title_aux": "ComfyUI MarkItDown" + } + ], + "https://github.com/ciga2011/ComfyUI-Pollinations": [ + [ + "PollinationsNode" + ], + { + "title_aux": "ComfyUI Pollinations" + } + ], + "https://github.com/ciga2011/ComfyUI-PromptOptimizer": [ + [ + "PromptOptimizer" + ], + { + "title_aux": "ComfyUI Prompt Optimizer" + } + ], + "https://github.com/ciri/comfyui-model-downloader": [ + [ + "Auto Model Downloader", + "CivitAI Downloader", + "HF Downloader" + ], + { + "title_aux": "ComfyUI Model Downloader" + } + ], + "https://github.com/citronlegacy/ComfyUI-CitronNodes": [ + [ + "GetDateTime", + "nodes", + "project" + ], + { + "title_aux": "ComfyUI-CitronNodes" + } + ], + "https://github.com/city96/ComfyUI-GGUF": [ + [ + "CLIPLoaderGGUF", + "DualCLIPLoaderGGUF", + "QuadrupleCLIPLoaderGGUF", + "TripleCLIPLoaderGGUF", + "UnetLoaderGGUF", + "UnetLoaderGGUFAdvanced" + ], + { + "preemptions": [ + "CLIPLoaderGGUF", + "DualCLIPLoaderGGUF", + "TripleCLIPLoaderGGUF", + "UnetLoaderGGUF", + "UnetLoaderGGUFAdvanced" + ], + "title_aux": "ComfyUI-GGUF" + } + ], "https://github.com/city96/ComfyUI_ColorMod": [ [ "CV2Tonemap", @@ -6056,6 +21206,7 @@ "ColorModEdges", "ColorModMove", "ColorModPivot", + "ColorspaceConvert", "HDRCreate", "HDRExposureFusion", "LoadImageHDR", @@ -6085,13 +21236,32 @@ "DiTCondLabelEmpty", "DiTCondLabelSelect", "DitCheckpointLoader", + "EmptyDCAELatentImage", + "EmptySanaLatentImage", "ExtraVAELoader", + "GemmaLoader", + "GemmaTextEncode", + "HYDiTCheckpointLoader", + "HYDiTSrcSizeCond", + "HYDiTTextEncode", + "HYDiTTextEncodeSimple", + "HYDiTTextEncoderLoader", + "MiaoBiCLIPLoader", + "MiaoBiDiffusersLoader", + "OverrideCLIPDevice", + "OverrideVAEDevice", "PixArtCheckpointLoader", + "PixArtCheckpointLoaderSimple", "PixArtControlNetCond", "PixArtLoraLoader", "PixArtResolutionCond", "PixArtResolutionSelect", + "PixArtT5FromSD3CLIP", "PixArtT5TextEncode", + "SanaCheckpointLoader", + "SanaResolutionCond", + "SanaResolutionSelect", + "SanaTextEncode", "T5TextEncode", "T5v11Loader" ], @@ -6120,15 +21290,6 @@ "title_aux": "ComfyUI_NetDist" } ], - "https://github.com/city96/SD-Advanced-Noise": [ - [ - "LatentGaussianNoise", - "MathEncode" - ], - { - "title_aux": "SD-Advanced-Noise" - } - ], "https://github.com/city96/SD-Latent-Interposer": [ [ "LatentInterposer" @@ -6145,22 +21306,287 @@ "title_aux": "SD-Latent-Upscaler" } ], - "https://github.com/civitai/comfy-nodes": [ + "https://github.com/civen-cn/ComfyUI-PaddleOcr": [ + [ + "OcrBlur", + "OcrBoxMask", + "OcrImageText" + ], + { + "title_aux": "ComfyUI-PaddleOcr" + } + ], + "https://github.com/civen-cn/ComfyUI-Whisper-Translator": [ + [ + "Add Subtitles To FramesX", + "Apply WhisperX" + ], + { + "title_aux": "ComfyUI Whisper Translator" + } + ], + "https://github.com/civitai/civitai_comfy_nodes": [ [ "CivitAI_Checkpoint_Loader", "CivitAI_Lora_Loader" ], { - "title_aux": "comfy-nodes" + "title_aux": "Civitai Comfy Nodes" + } + ], + "https://github.com/cjj198909/comfy_openai_image_api_azure": [ + [ + "OpenAI Image API" + ], + { + "title_aux": "OpenAI/Azure OpenAI Image API" + } + ], + "https://github.com/claptrap0/ComfyUI_LLM_Hub": [ + [ + "Generated_Output", + "LLM_Hub", + "LLM_Settings" + ], + { + "title_aux": "ComfyUI_LLM_Hub" + } + ], + "https://github.com/claussteinmassl/ComfyUI-CS-CustomNodes": [ + [ + "CS Transform" + ], + { + "title_aux": "CS Transform Node for ComfyUI" + } + ], + "https://github.com/cleanlii/comfyui-dalle-integration": [ + [ + "DalleImageEdit", + "DalleImageGeneration", + "DalleImageVariation" + ], + { + "title_aux": "DalleImageNodes - OpenAI DALL\u00b7E Nodes for ComfyUI" + } + ], + "https://github.com/clhui/ComfyUi-clh-Tool": [ + [ + "EchartGraph_clh", + "EchartOptionByPath_clh", + "EchartOption_clh", + "INTConstant_clh", + "JavaScript_clh", + "JoinStringMulti_clh", + "MathExpression_clh", + "SetRedis|clh", + "ShowText_clh", + "SomethingToString_clh", + "String2FatLabels_clh", + "String2Image_clh", + "StringConstant_clh" + ], + { + "author": "Dr.Lt.Data", + "description": "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler.", + "nickname": "CLH Simple Tool", + "title": "CLH simple Tool", + "title_aux": "Clh Tool for ComfyUI" + } + ], + "https://github.com/clouddreamfly/ComfyUI-PromptWrapper": [ + [ + "CombinePrompt", + "CustomPrompt", + "DrawStylePrompt", + "GeneratePrompt", + "InputPrompt", + "LightPrompt", + "MultiCombinePrompt", + "MultiReplacePrompt", + "NegativePrompt", + "PortraitCosmeticPrompt", + "PortraitFashionPrompt", + "PortraitPosePrompt", + "PortraitPrompt", + "PortraitSkinPrompt", + "PreviewPrompt", + "PromptTranslation", + "RandomLinePrompt", + "RandomsPrompt", + "RandomsWeightPrompt", + "ReplacePrompt", + "SavePrompt", + "SceneryPrompt" + ], + { + "title_aux": "ComfyUI-PromptWrapper" + } + ], + "https://github.com/cloudkoala/comfyui-koala": [ + [ + "AspectRatioLatentNode", + "SaveImageAnywhere", + "SaveMeshAnywhere" + ], + { + "title_aux": "comfyui-koala" + } + ], + "https://github.com/cluny85/ComfyUI-Scripting-Tools": [ + [ + "EnhancedUUIDGeneratorNode", + "UUIDGeneratorNode" + ], + { + "title_aux": "ComfyUI-Scripting-Tools" + } + ], + "https://github.com/cmdicely/simple_image_to_palette": [ + [ + "Example" + ], + { + "title_aux": "Simple Image To Palette" + } + ], + "https://github.com/cnnmmd/comfyui_xoxxox_cnnmmd": [ + [ + "Xoxxox_CnvDat", + "Xoxxox_CnvSen", + "Xoxxox_CnvTxt", + "Xoxxox_CnvVce", + "Xoxxox_DlyGet", + "Xoxxox_DlySet", + "Xoxxox_GenImg", + "Xoxxox_GenTxt", + "Xoxxox_GetAud", + "Xoxxox_GetDir", + "Xoxxox_GetDis", + "Xoxxox_GetImg", + "Xoxxox_GetMem", + "Xoxxox_GetTxt", + "Xoxxox_IniFlw", + "Xoxxox_LogNum", + "Xoxxox_LogTxt", + "Xoxxox_PutTxt", + "Xoxxox_RcvVce", + "Xoxxox_RepTxt", + "Xoxxox_RunFlw", + "Xoxxox_SenSlc", + "Xoxxox_SenTxt", + "Xoxxox_SetAud", + "Xoxxox_SetDir", + "Xoxxox_SetDis", + "Xoxxox_SetImg", + "Xoxxox_SetMem", + "Xoxxox_SetNil", + "Xoxxox_SetTxt", + "Xoxxox_SndVce", + "Xoxxox_SwtImg", + "Xoxxox_TrnBak" + ], + { + "title_aux": "cnnmmd: comfyui_xoxxox_cnnmmd" + } + ], + "https://github.com/codeprimate/ComfyUI-MaskContourProcessor": [ + [ + "MaskContourProcessor" + ], + { + "title_aux": "ComfyUI Mask Contour Processor" + } + ], + "https://github.com/comfy-deploy/comfyui-llm-toolkit": [ + [ + "APIKeyInput", + "AudioDurationFrames", + "BFLProviderNode", + "BananaTaskGenerator", + "BlankImage", + "CheckImageEmpty", + "ConfigGenerateImage", + "ConfigGenerateImageBFL", + "ConfigGenerateImageFluxDev", + "ConfigGenerateImageGemini", + "ConfigGenerateImageOpenAI", + "ConfigGenerateImagePortrait", + "ConfigGenerateImageSeedanceEditV3", + "ConfigGenerateMusic", + "ConfigGenerateSpeech", + "ConfigGenerateVideo", + "ConfigGenerateVideoHailuoI2VPro", + "ConfigGenerateVideoHailuoI2VStandard", + "ConfigGenerateVideoHailuoT2VPro", + "ConfigGenerateVideoHailuoT2VStandard", + "ConfigGenerateVideoKlingI2VMaster", + "ConfigGenerateVideoKlingI2VPro", + "ConfigGenerateVideoKlingI2VStandard", + "ConfigGenerateVideoSeedanceProI2V", + "ConfigGenerateVideoSeedanceProT2V", + "ConfigGenerateVideoVeo2I2V", + "ConfigGenerateVideoVeo2T2V", + "ConfigGenerateVideoVeo3", + "ConfigGenerateVideoVeo3Fast", + "Display_Text", + "FramesToSeconds", + "GeminiProviderNode", + "GenerateImage", + "GenerateLyrics", + "GenerateMusic", + "GenerateSpeech", + "GenerateVideo", + "GroqProviderNode", + "HighLowSNR", + "ImageComparer", + "JoinStringsMulti", + "LLMPromptManager", + "LLMToolkitProviderSelector", + "LLMToolkitTextGenerator", + "LLMToolkitTextGeneratorStream", + "LoadAudioFromPath", + "LoadVideoFromPath", + "LocalTransformersProviderNode", + "LocalVLLMProviderNode", + "OpenAIProviderNode", + "PlayRandomSound", + "PreviewImageLogic", + "PreviewOutputs", + "PreviewVideo", + "PromptManager", + "ResolutionSelector", + "StylePromptGenerator", + "SunoProviderSelector", + "SwitchAny", + "SwitchAnyRoute", + "SwitchAnyRoute_wANY", + "SwitchAny_wANY", + "SystemPromptTaskGenerator", + "TestAPIKeyContext", + "UpscaleVideo", + "WaveSpeedProviderNode" + ], + { + "author": "ComfyDeploy", + "description": "llm toolkit", + "nickname": "llm_toolkit", + "title": "llm toolkit", + "title_aux": "ComfyUI LLM Toolkit" } ], "https://github.com/comfyanonymous/ComfyUI": [ [ "AddNoise", "AlignYourStepsScheduler", + "AudioEncoderEncode", + "AudioEncoderLoader", "BasicGuider", "BasicScheduler", + "BetaSamplingScheduler", "CFGGuider", + "CFGNorm", + "CFGZeroStar", "CLIPLoader", "CLIPMergeAdd", "CLIPMergeSimple", @@ -6169,6 +21595,12 @@ "CLIPSetLastLayer", "CLIPTextEncode", "CLIPTextEncodeControlnet", + "CLIPTextEncodeFlux", + "CLIPTextEncodeHiDream", + "CLIPTextEncodeHunyuanDiT", + "CLIPTextEncodeLumina2", + "CLIPTextEncodePixArtAlpha", + "CLIPTextEncodeSD3", "CLIPTextEncodeSDXL", "CLIPTextEncodeSDXLRefiner", "CLIPVisionEncode", @@ -6182,13 +21614,19 @@ "ConditioningConcat", "ConditioningSetArea", "ConditioningSetAreaPercentage", + "ConditioningSetAreaPercentageVideo", "ConditioningSetAreaStrength", "ConditioningSetMask", "ConditioningSetTimestepRange", + "ConditioningStableAudio", "ConditioningZeroOut", "ControlNetApply", "ControlNetApplyAdvanced", + "ControlNetApplySD3", + "ControlNetInpaintingAliMamaApply", "ControlNetLoader", + "CosmosImageToVideoLatent", + "CosmosPredict2ImageToVideoLatent", "CropMask", "DiffControlNetLoader", "DifferentialDiffusion", @@ -6196,36 +21634,71 @@ "DisableNoise", "DualCFGGuider", "DualCLIPLoader", + "EmptyCosmosLatentVideo", + "EmptyHunyuanLatentVideo", "EmptyImage", + "EmptyLTXVLatentVideo", + "EmptyLatentAudio", + "EmptyLatentHunyuan3Dv2", "EmptyLatentImage", + "EmptyMochiLatentVideo", + "EmptySD3LatentImage", "ExponentialScheduler", + "ExtendIntermediateSigmas", "FeatherMask", "FlipSigmas", + "FluxDisableGuidance", + "FluxGuidance", + "FluxKontextImageScale", + "FluxKontextMaxImageNode", + "FluxKontextMultiReferenceLatentMethod", + "FluxKontextProImageNode", + "FluxProCannyNode", + "FluxProDepthNode", + "FluxProExpandNode", + "FluxProFillNode", + "FluxProImageNode", + "FluxProUltraImageNode", + "FreSca", "FreeU", "FreeU_V2", + "GITSScheduler", "GLIGENLoader", "GLIGENTextBoxApply", + "GeminiImageNode", + "GeminiInputFiles", + "GeminiNode", + "GetImageSize", "GrowMask", + "Hunyuan3Dv2Conditioning", + "Hunyuan3Dv2ConditioningMultiView", + "HunyuanImageToVideo", "HyperTile", "HypernetworkLoader", + "ImageAddNoise", "ImageBatch", "ImageBlend", "ImageBlur", "ImageColorToMask", "ImageCompositeMasked", "ImageCrop", + "ImageFlip", "ImageFromBatch", "ImageInvert", "ImageOnlyCheckpointLoader", "ImageOnlyCheckpointSave", "ImagePadForOutpaint", "ImageQuantize", + "ImageRGBToYUV", + "ImageRotate", "ImageScale", "ImageScaleBy", "ImageScaleToTotalPixels", "ImageSharpen", + "ImageStitch", "ImageToMask", "ImageUpscaleWithModel", + "ImageYUVToRGB", "InpaintModelConditioning", "InstructPixToPixConditioning", "InvertMask", @@ -6234,54 +21707,176 @@ "KSamplerAdvanced", "KSamplerSelect", "KarrasScheduler", + "KlingCameraControlI2VNode", + "KlingCameraControlT2VNode", + "KlingCameraControls", + "KlingDualCharacterVideoEffectNode", + "KlingImage2VideoNode", + "KlingImageGenerationNode", + "KlingLipSyncAudioToVideoNode", + "KlingLipSyncTextToVideoNode", + "KlingSingleImageVideoEffectNode", + "KlingStartEndFrameNode", + "KlingTextToVideoNode", + "KlingVideoExtendNode", + "KlingVirtualTryOnNode", + "LTXVAddGuide", + "LTXVConditioning", + "LTXVCropGuides", + "LTXVImgToVideo", + "LTXVPreprocess", + "LTXVScheduler", + "LaplaceScheduler", "LatentAdd", + "LatentApplyOperation", + "LatentApplyOperationCFG", "LatentBatch", "LatentBatchSeedBehavior", "LatentBlend", "LatentComposite", "LatentCompositeMasked", + "LatentConcat", "LatentCrop", + "LatentCut", "LatentFlip", "LatentFromBatch", "LatentInterpolate", "LatentMultiply", + "LatentOperationSharpen", + "LatentOperationTonemapReinhard", "LatentRotate", "LatentSubtract", "LatentUpscale", "LatentUpscaleBy", + "Load3D", + "Load3DAnimation", + "LoadAudio", "LoadImage", "LoadImageMask", + "LoadImageOutput", + "LoadImageSetFromFolderNode", + "LoadImageTextSetFromFolderNode", "LoadLatent", "LoraLoader", "LoraLoaderModelOnly", + "LoraModelLoader", + "LoraSave", + "LossGraphNode", + "LotusConditioning", + "LumaConceptsNode", + "LumaImageModifyNode", + "LumaImageNode", + "LumaImageToVideoNode", + "LumaReferenceNode", + "LumaVideoNode", + "Mahiro", "MaskComposite", + "MaskPreview", "MaskToImage", + "MinimaxHailuoVideoNode", + "MinimaxImageToVideoNode", + "MinimaxSubjectToVideoNode", + "MinimaxTextToVideoNode", + "ModelComputeDtype", "ModelMergeAdd", + "ModelMergeAuraflow", "ModelMergeBlocks", + "ModelMergeCosmos14B", + "ModelMergeCosmos7B", + "ModelMergeCosmosPredict2_14B", + "ModelMergeCosmosPredict2_2B", + "ModelMergeFlux1", + "ModelMergeLTXV", + "ModelMergeMochiPreview", + "ModelMergeQwenImage", "ModelMergeSD1", "ModelMergeSD2", + "ModelMergeSD35_Large", + "ModelMergeSD3_2B", "ModelMergeSDXL", "ModelMergeSimple", "ModelMergeSubtract", + "ModelMergeWAN2_1", + "ModelPatchLoader", + "ModelSamplingAuraFlow", "ModelSamplingContinuousEDM", + "ModelSamplingContinuousV", "ModelSamplingDiscrete", + "ModelSamplingFlux", + "ModelSamplingLTXV", + "ModelSamplingSD3", "ModelSamplingStableCascade", + "ModelSave", + "MoonvalleyImg2VideoNode", + "MoonvalleyTxt2VideoNode", + "MoonvalleyVideo2VideoNode", "Morphology", + "OpenAIChatConfig", + "OpenAIChatNode", + "OpenAIDalle2", + "OpenAIDalle3", + "OpenAIGPTImage1", + "OpenAIInputFiles", + "OptimalStepsScheduler", "PatchModelAddDownscale", "PerpNeg", "PerpNegGuider", "PerturbedAttentionGuidance", "PhotoMakerEncode", "PhotoMakerLoader", + "PikaImageToVideoNode2_2", + "PikaScenesV2_2", + "PikaStartEndFrameNode2_2", + "PikaTextToVideoNode2_2", + "Pikadditions", + "Pikaffects", + "Pikaswaps", + "PixverseImageToVideoNode", + "PixverseTemplateNode", + "PixverseTextToVideoNode", + "PixverseTransitionVideoNode", "PolyexponentialScheduler", "PorterDuffImageComposite", + "Preview3D", + "Preview3DAnimation", + "PreviewAny", + "PreviewAudio", "PreviewImage", + "QuadrupleCLIPLoader", + "QwenImageDiffsynthControlnet", "RandomNoise", "RebatchImages", "RebatchLatents", + "RecordAudio", + "RecraftColorRGB", + "RecraftControls", + "RecraftCreativeUpscaleNode", + "RecraftCrispUpscaleNode", + "RecraftImageInpaintingNode", + "RecraftImageToImageNode", + "RecraftRemoveBackgroundNode", + "RecraftReplaceBackgroundNode", + "RecraftStyleV3DigitalIllustration", + "RecraftStyleV3InfiniteStyleLibrary", + "RecraftStyleV3LogoRaster", + "RecraftStyleV3RealisticImage", + "RecraftTextToImageNode", + "RecraftTextToVectorNode", + "RecraftVectorizeImageNode", + "ReferenceLatent", + "RenormCFG", "RepeatImageBatch", "RepeatLatentBatch", "RescaleCFG", + "ResizeAndPadImage", + "Rodin3D_Detail", + "Rodin3D_Regular", + "Rodin3D_Sketch", + "Rodin3D_Smooth", + "RunwayFirstLastFrameNode", + "RunwayImageToVideoNodeGen3a", + "RunwayImageToVideoNodeGen4", + "RunwayTextToImageNode", "SDTurboScheduler", "SD_4XUpscale_Conditioning", "SV3D_Conditioning", @@ -6290,35 +21885,118 @@ "SamplerCustomAdvanced", "SamplerDPMAdaptative", "SamplerDPMPP_2M_SDE", + "SamplerDPMPP_2S_Ancestral", "SamplerDPMPP_3M_SDE", "SamplerDPMPP_SDE", + "SamplerER_SDE", "SamplerEulerAncestral", + "SamplerEulerAncestralCFGPP", "SamplerLMS", + "SamplerSASolver", + "SamplingPercentToSigma", "SaveAnimatedPNG", "SaveAnimatedWEBP", + "SaveAudio", + "SaveAudioMP3", + "SaveAudioOpus", + "SaveGLB", "SaveImage", "SaveImageWebsocket", "SaveLatent", + "SaveLoRANode", + "SaveSVGNode", "SelfAttentionGuidance", + "SetFirstSigma", "SetLatentNoiseMask", + "SetUnionControlNetType", + "SkipLayerGuidanceDiT", + "SkipLayerGuidanceDiTSimple", + "SkipLayerGuidanceSD3", "SolidMask", "SplitImageWithAlpha", "SplitSigmas", - "StableCascade_EmptyLatentImage", - "StableCascade_StageB_Conditioning", - "StableCascade_StageC_VAEEncode", - "StableCascade_SuperResolutionControlnet", + "SplitSigmasDenoise", "StableZero123_Conditioning", "StableZero123_Conditioning_Batched", + "StubConstantImage", + "StubFloat", + "StubImage", + "StubInt", + "StubMask", "StyleModelApply", "StyleModelLoader", + "T5TokenizerOptions", + "TCFG", + "TestAccumulateNode", + "TestAccumulationGetItemNode", + "TestAccumulationGetLengthNode", + "TestAccumulationHeadNode", + "TestAccumulationSetItemNode", + "TestAccumulationTailNode", + "TestAccumulationToListNode", + "TestAsyncBatchProcessing", + "TestAsyncConcurrentLimit", + "TestAsyncError", + "TestAsyncLazyCheck", + "TestAsyncProgressUpdate", + "TestAsyncResourceUser", + "TestAsyncTimeout", + "TestAsyncValidation", + "TestAsyncValidationError", + "TestBoolOperationNode", + "TestCustomIsChanged", + "TestCustomValidation1", + "TestCustomValidation2", + "TestCustomValidation3", + "TestCustomValidation4", + "TestCustomValidation5", + "TestDynamicAsyncGeneration", + "TestDynamicDependencyCycle", + "TestExecutionBlocker", + "TestFloatConditions", + "TestForLoopClose", + "TestForLoopOpen", + "TestIntConditions", + "TestIntMathOperation", + "TestIsChangedWithConstants", + "TestLazyMixImages", + "TestListToAccumulationNode", + "TestMakeListNode", + "TestMixedExpansionReturns", + "TestOutputNodeWithSocketOutput", + "TestParallelSleep", + "TestSamplingInExpansion", + "TestSleep", + "TestStringConditions", + "TestSyncError", + "TestSyncProgressUpdate", + "TestToBoolNode", + "TestVariadicAverage", + "TestWhileLoopClose", + "TestWhileLoopOpen", + "TextEncodeHunyuanVideo_ImageToVideo", + "TextEncodeQwenImageEdit", "ThresholdMask", "TomePatchModel", + "TorchCompileModel", + "TrainLoraNode", + "TripleCLIPLoader", + "TripoConversionNode", + "TripoImageToModelNode", + "TripoMultiviewToModelNode", + "TripoRefineNode", + "TripoRetargetNode", + "TripoRigNode", + "TripoTextToModelNode", + "TripoTextureNode", "UNETLoader", "UpscaleModelLoader", "VAEDecode", + "VAEDecodeAudio", + "VAEDecodeHunyuan3D", "VAEDecodeTiled", "VAEEncode", + "VAEEncodeAudio", "VAEEncodeForInpaint", "VAEEncodeTiled", "VAELoader", @@ -6326,6 +22004,10 @@ "VPScheduler", "VideoLinearCFGGuidance", "VideoTriangleCFGGuidance", + "VoxelToMesh", + "VoxelToMeshBasic", + "WanCameraEmbedding", + "WebcamCapture", "unCLIPCheckpointLoader", "unCLIPConditioning" ], @@ -6333,6 +22015,16 @@ "title_aux": "ComfyUI" } ], + "https://github.com/comfyanonymous/ComfyUI_TensorRT": [ + [ + "DYNAMIC_TRT_MODEL_CONVERSION", + "STATIC_TRT_MODEL_CONVERSION", + "TensorRTLoader" + ], + { + "title_aux": "TensorRT Node for ComfyUI" + } + ], "https://github.com/comfyanonymous/ComfyUI_experiments": [ [ "ModelMergeBlockNumber", @@ -6348,6 +22040,51 @@ "title_aux": "ComfyUI_experiments" } ], + "https://github.com/comfyuistudio/ComfyUI-Studio-nodes": [ + [ + "AspectRatioImageSize", + "AspectRatioResizeImage", + "MarkdownModelNote" + ], + { + "title_aux": "ComfyUI-Studio-nodes" + } + ], + "https://github.com/comnote-max/builmenlabo": [ + [ + "GeminiPoseAnalyzer", + "LlamaCppAIO", + "LlamaCppCompleteUnload", + "LlamaCppGenerate", + "LlamaCppLoader", + "LlamaCppMemoryInfo", + "LlamaCppSafeUnload", + "LlamaCppUnload", + "MultiControlNetLoader", + "PromptTranslator" + ], + { + "nodename_pattern": "builmenlabo", + "title_aux": "ComfyUI builmenlabo - Unified Package" + } + ], + "https://github.com/concarne000/ComfyUI-Stacker": [ + [ + "StackPopFloat", + "StackPopImage", + "StackPopInt", + "StackPopObject", + "StackPopString", + "StackPushFloat", + "StackPushImage", + "StackPushInt", + "StackPushObject", + "StackPushString" + ], + { + "title_aux": "ComfyUI-Stacker" + } + ], "https://github.com/concarne000/ConCarneNode": [ [ "BingImageGrabber", @@ -6358,6 +22095,18 @@ "title_aux": "ConCarneNode" } ], + "https://github.com/conquestace/ComfyUI-ImageUploader": [ + [ + "ImageUploader" + ], + { + "author": "ConquestAce", + "description": "Upload to temporary websites with API.", + "nickname": "Image Uploader", + "title": "Image Uploader", + "title_aux": "Image Uploader" + } + ], "https://github.com/coreyryanhanson/ComfyQR": [ [ "comfy-qr-by-image-size", @@ -6378,6 +22127,23 @@ "title_aux": "ComfyQR-scanning-nodes" } ], + "https://github.com/coulterj/comfyui-svg-visual-normalize": [ + [ + "SVGVisualBoundsNormalize" + ], + { + "title_aux": "ComfyUI SVG Visual Normalize & Margin Node" + } + ], + "https://github.com/cozy-comfyui/cozy_comm": [ + [ + "CozyDiscordPost" + ], + { + "nodename_pattern": " \\(cozy\\)", + "title_aux": "Cozy Communication" + } + ], "https://github.com/cozymantis/cozy-utils-comfyui-nodes": [ [ "Cozy Sampler Options" @@ -6405,6 +22171,31 @@ "title_aux": "Cozy Reference Pose Generator" } ], + "https://github.com/cr7Por/ComfyUI_DepthFlow": [ + [ + "DepthFlowSimple" + ], + { + "title_aux": "ComfyUI_DepthFlow" + } + ], + "https://github.com/craig-tanaka/comfyui_animeseg": [ + [ + "AdvancedAnimeSeg", + "SimpleAnimeSeg" + ], + { + "title_aux": "ComfyUI Anime Segmentation Nodes v1.1.0" + } + ], + "https://github.com/crave33/RenesStuffDanbooruTagGet": [ + [ + "DanbooruTagFetcher" + ], + { + "title_aux": "RenesStuffDanboruTagGet" + } + ], "https://github.com/crystian/ComfyUI-Crystools": [ [], { @@ -6416,11 +22207,34 @@ "title_aux": "Crystools" } ], + "https://github.com/cuban044/ComfyUI-Veo3-Experimental": [ + [ + "Veo3TextToVideo", + "Veo3ToVHS", + "Veo3VideoPreview" + ], + { + "title_aux": "[Unofficial] ComfyUI-Veo3-Experimental" + } + ], + "https://github.com/cubiq/Block_Patcher_ComfyUI": [ + [ + "FluxBlockPatcherSampler", + "FluxBlockShareKV", + "PlotBlockParams" + ], + { + "title_aux": "Flux blocks patcher sampler" + } + ], "https://github.com/cubiq/ComfyUI_FaceAnalysis": [ [ + "FaceAlign", "FaceAnalysisModels", "FaceBoundingBox", - "FaceEmbedDistance" + "FaceEmbedDistance", + "FaceSegmentation", + "FaceWarp" ], { "title_aux": "Face Analysis for ComfyUI" @@ -6432,15 +22246,28 @@ "IPAdapter", "IPAdapterAdvanced", "IPAdapterBatch", + "IPAdapterClipVisionEnhancer", + "IPAdapterClipVisionEnhancerBatch", "IPAdapterCombineEmbeds", + "IPAdapterCombineParams", + "IPAdapterCombineWeights", "IPAdapterEmbeds", + "IPAdapterEmbedsBatch", "IPAdapterEncoder", "IPAdapterFaceID", + "IPAdapterFaceIDKolors", + "IPAdapterFromParams", "IPAdapterInsightFaceLoader", "IPAdapterLoadEmbeds", "IPAdapterMS", "IPAdapterModelLoader", "IPAdapterNoise", + "IPAdapterPreciseComposition", + "IPAdapterPreciseCompositionBatch", + "IPAdapterPreciseStyleTransfer", + "IPAdapterPreciseStyleTransferBatch", + "IPAdapterPromptScheduleFromWeightsStrategy", + "IPAdapterRegionalConditioning", "IPAdapterSaveEmbeds", "IPAdapterStyleComposition", "IPAdapterStyleCompositionBatch", @@ -6450,9 +22277,48 @@ "IPAdapterUnifiedLoaderCommunity", "IPAdapterUnifiedLoaderFaceID", "IPAdapterWeights", + "IPAdapterWeightsFromStrategy", "PrepImageForClipVision" ], { + "preemptions": [ + "IPAAdapterFaceIDBatch", + "IPAdapter", + "IPAdapterAdvanced", + "IPAdapterBatch", + "IPAdapterClipVisionEnhancer", + "IPAdapterClipVisionEnhancerBatch", + "IPAdapterCombineEmbeds", + "IPAdapterCombineParams", + "IPAdapterCombineWeights", + "IPAdapterEmbeds", + "IPAdapterEmbedsBatch", + "IPAdapterEncoder", + "IPAdapterFaceID", + "IPAdapterFromParams", + "IPAdapterInsightFaceLoader", + "IPAdapterLoadEmbeds", + "IPAdapterMS", + "IPAdapterModelLoader", + "IPAdapterNoise", + "IPAdapterPreciseComposition", + "IPAdapterPreciseCompositionBatch", + "IPAdapterPreciseStyleTransfer", + "IPAdapterPreciseStyleTransferBatch", + "IPAdapterPromptScheduleFromWeightsStrategy", + "IPAdapterRegionalConditioning", + "IPAdapterSaveEmbeds", + "IPAdapterStyleComposition", + "IPAdapterStyleCompositionBatch", + "IPAdapterTiled", + "IPAdapterTiledBatch", + "IPAdapterUnifiedLoader", + "IPAdapterUnifiedLoaderCommunity", + "IPAdapterUnifiedLoaderFaceID", + "IPAdapterWeights", + "IPAdapterWeightsFromStrategy", + "PrepImageForClipVision" + ], "title_aux": "ComfyUI_IPAdapter_plus" } ], @@ -6470,26 +22336,29 @@ "title_aux": "ComfyUI InstantID (Native Support)" } ], - "https://github.com/cubiq/ComfyUI_SimpleMath": [ - [ - "SimpleMath", - "SimpleMathDebug" - ], - { - "title_aux": "Simple Math" - } - ], "https://github.com/cubiq/ComfyUI_essentials": [ [ + "ApplyCLIPSeg+", "BatchCount+", "CLIPTextEncodeSDXL+", + "ConditioningCombineMultiple+", "ConsoleDebug+", "DebugTensorShape+", + "DisplayAny", "DrawText+", "ExtractKeyframes+", + "FluxAttentionSeeker+", + "FluxBlocksBuster+", + "FluxSamplerParams+", "GetImageSize+", + "GuidanceTimestepping+", "ImageApplyLUT+", + "ImageBatchMultiple+", + "ImageBatchToList+", "ImageCASharpening+", + "ImageColorMatch+", + "ImageColorMatchAdobe+", + "ImageComposite+", "ImageCompositeFromMaskBatch+", "ImageCrop+", "ImageDesaturate+", @@ -6497,37 +22366,113 @@ "ImageExpandBatch+", "ImageFlip+", "ImageFromBatch+", + "ImageHistogramMatch+", "ImageListToBatch+", "ImagePosterize+", + "ImagePreviewFromLatent+", + "ImageRandomTransform+", + "ImageRemoveAlpha+", "ImageRemoveBackground+", "ImageResize+", "ImageSeamCarving+", + "ImageSmartSharpen+", + "ImageTile+", + "ImageToDevice+", + "ImageUntile+", + "InjectLatentNoise+", "KSamplerVariationsStochastic+", "KSamplerVariationsWithNoise+", + "LoadCLIPSegModels+", + "LorasForFluxParams+", "MaskBatch+", "MaskBlur+", "MaskBoundingBox+", "MaskExpandBatch+", + "MaskFix+", "MaskFlip+", "MaskFromBatch+", "MaskFromColor+", + "MaskFromList+", "MaskFromRGBCMYBW+", "MaskFromSegmentation+", "MaskPreview+", "MaskSmooth+", "ModelCompile+", - "NoiseFromImage~", + "ModelSamplingSD3Advanced+", + "NoiseFromImage+", "PixelOEPixelize+", + "PlotParameters+", "RemBGSession+", "RemoveLatentMask+", + "SD3AttentionSeekerLG+", + "SD3AttentionSeekerT5+", + "SD3NegativeConditioning+", "SDXLEmptyLatentSizePicker+", + "SamplerSelectHelper+", + "SchedulerSelectHelper+", + "SimpleComparison+", + "SimpleCondition+", "SimpleMath+", - "TransitionMask+" + "SimpleMathBoolean+", + "SimpleMathCondition+", + "SimpleMathDual+", + "SimpleMathFloat+", + "SimpleMathInt+", + "SimpleMathPercent+", + "SimpleMathSlider+", + "SimpleMathSliderLowRes+", + "TextEncodeForSamplerParams+", + "TransitionMask+", + "TransparentBGSession+" ], { "title_aux": "ComfyUI Essentials" } ], + "https://github.com/cubiq/PuLID_ComfyUI": [ + [ + "ApplyPulid", + "ApplyPulidAdvanced", + "PulidEvaClipLoader", + "PulidInsightFaceLoader", + "PulidModelLoader" + ], + { + "title_aux": "PuLID_ComfyUI" + } + ], + "https://github.com/cuongloveit/comfy_http_request": [ + [ + "Send Http Request", + "Send Http request" + ], + { + "title_aux": "comfy_http_request" + } + ], + "https://github.com/curiousjp/ComfyUI-MaskBatchPermutations": [ + [ + "CombinatorialDetailer", + "FlattenAgainstOriginal", + "PermuteMaskBatch" + ], + { + "title_aux": "ComfyUI-MaskBatchPermutations" + } + ], + "https://github.com/cyberhirsch/seb_nodes": [ + [ + "AspectRatioSeb", + "DepthInpaintSeb", + "SaveImageSeb", + "SwitchMasksSeb", + "SwitchSeb", + "UnifiedPrompterSeb" + ], + { + "title_aux": "Seb Nodes" + } + ], "https://github.com/czcz1024/Comfyui-FaceCompare": [ [ "FaceCompare" @@ -6540,16 +22485,272 @@ "title_aux": "Face Compare" } ], + "https://github.com/da2el-ai/ComfyUI-d2-send-eagle": [ + [ + "D2 Send Eagle" + ], + { + "author": "da2el", + "description": "Send images to Eagle, an image management application", + "title": "D2 Send Eagle", + "title_aux": "D2 Send Eagle" + } + ], + "https://github.com/da2el-ai/ComfyUI-d2-size-selector": [ + [ + "D2_SizeSelector" + ], + { + "author": "da2el", + "description": "Easy select image size", + "title": "D2 Size Selector", + "title_aux": "D2 Size Selector" + } + ], + "https://github.com/da2el-ai/ComfyUI-d2-steps": [ + [ + "D2 Refiner Steps", + "D2 Refiner Steps A1111", + "D2 Refiner Steps Tester" + ], + { + "author": "da2el", + "description": "Calculate the steps for the refiner", + "title": "D2 Steps", + "title_aux": "D2 Steps" + } + ], + "https://github.com/da2el-ai/ComfyUI-d2-xyplot-utils": [ + [ + "D2 Checkpoint List", + "D2 Checkpoint Loader", + "D2 Multi Output", + "D2 Prompt SR", + "D2 Regex Switcher" + ], + { + "author": "da2el", + "description": "A parameter output node compatible with qq-nodes-comfyui. It outputs parameters such as Prompt S/R and seed.", + "title": "D2 XYPlot Utils", + "title_aux": "D2 XYPlot Utils" + } + ], + "https://github.com/da2el-ai/D2-SavePSD-ComfyUI": [ + [ + "D2 Apply Alpha Channel", + "D2 Extract Alpha", + "D2 Save PSD" + ], + { + "author": "da2el", + "description": "", + "title": "D2 Save PSD", + "title_aux": "D2-SavePSD-ComfyUI" + } + ], + "https://github.com/da2el-ai/D2-nodes-ComfyUI": [ + [ + "D2 Any Delivery", + "D2 Checkpoint Loader", + "D2 Controlnet Loader", + "D2 Cut By Mask", + "D2 EmptyImage Alpha", + "D2 Filename Template", + "D2 Filename Template2", + "D2 Folder Image Queue", + "D2 Get Image Size", + "D2 Grid Image", + "D2 Image Mask Stack", + "D2 Image Resize", + "D2 Image Stack", + "D2 KSampler", + "D2 KSampler(Advanced)", + "D2 List To String", + "D2 Load Folder Images", + "D2 Load Image", + "D2 Load Lora", + "D2 Model and CLIP Merge SDXL", + "D2 Mosaic Filter", + "D2 Multi Output", + "D2 Paste By Mask", + "D2 Pipe", + "D2 Preview Image", + "D2 Prompt", + "D2 Refiner Steps", + "D2 Refiner Steps A1111", + "D2 Refiner Steps Tester", + "D2 Regex Replace", + "D2 Regex Switcher", + "D2 Resize Calculator", + "D2 Save Image", + "D2 Save Image Eagle", + "D2 Send File Eagle", + "D2 Size Selector", + "D2 Token Counter", + "D2 XY Annotation", + "D2 XY Folder Images", + "D2 XY Grid Image", + "D2 XY List To Plot", + "D2 XY Model List", + "D2 XY Plot", + "D2 XY Plot Easy", + "D2 XY Plot Easy Mini", + "D2 XY Prompt SR", + "D2 XY Prompt SR2", + "D2 XY Seed", + "D2 XY Seed2", + "D2 XY String To Plot", + "D2 XY Upload Image" + ], + { + "author": "da2el", + "description": "A Collection of Handy Custom Nodes for ComfyUI", + "title": "D2 Nodes", + "title_aux": "D2 Nodes ComfyUI" + } + ], + "https://github.com/dadoirie/ComfyUI_Dados_Nodes": [ + [ + "DN_CSVMultiDropDownNode", + "DN_JoyTaggerNode", + "DN_MiaoshouAITaggerNode", + "DN_MultilineString", + "DN_PromptSectionsExtractor", + "DN_SmolVLMNode", + "DN_TextConcatenateNode", + "DN_TextDropDownNode", + "DN_WildcardPromptEditorNode", + "DN_WildcardSelectorComposerV2", + "DN_WildcardsProcessor", + "PinterestFetch", + "inactivePinterestImageNode" + ], + { + "author": "Dado", + "description": "Node with dynamic text inputs for concatenation", + "title": "Text Concatenator", + "title_aux": "ComfyUI_Dados_Nodes" + } + ], + "https://github.com/daehwa00/ComfyUI-NanoBananaAPI": [ + [ + "NanoBanana API\ud83c\udf4c" + ], + { + "title_aux": "ComfyUI-NanoBananaAPI" + } + ], + "https://github.com/dafeng012/comfyui-imgmake": [ + [ + "LoadImageListPlus", + "LoadImagesFromPath_lp", + "SaveImage_lp", + "SelectImageName", + "VideoKeyFramesExtractor", + "ebsynth_hecheng", + "ebsynth_main", + "ebsynth_process", + "image2mask", + "video2image" + ], + { + "title_aux": "comfyui-imgmake" + } + ], "https://github.com/dagthomas/comfyui_dagthomas": [ [ - "CSL", - "CSVPromptGenerator", - "PromptGenerator" + "APNLatent", + "CustomPromptLoader", + "DynamicStringCombinerNode", + "FileReaderNode", + "FlexibleStringMergerNode", + "GPT4MiniNode", + "GPT4VisionNode", + "GeminiCustomVision", + "GeminiTextOnly", + "Gpt4CustomVision", + "Gpt4VisionCloner", + "OllamaNode", + "OllamaVisionNode", + "PGSD3LatentGenerator", + "PhiCustomModelInference", + "PhiModelInference", + "PhiModelLoader", + "PromptGenerator", + "RandomIntegerNode", + "SentenceMixerNode", + "StringMergerNode" ], { "title_aux": "SDXL Auto Prompter" } ], + "https://github.com/danTheMonk/comfyui-int-and-float": [ + [ + "FloatToInt", + "IntToFloat" + ], + { + "title_aux": "ComfyUI Int and Float Conversion Nodes" + } + ], + "https://github.com/danger-electrodes/ComfyUI_Fawfluencer_Nodes": [ + [ + "FawfaceModelSpreadsheetRealismNode", + "FawfakeAuthenticImageSaveNode", + "FawfluxencerNode", + "FawfulizedAddImagesToImageList", + "FawfulizedEmptyImageList", + "FawfulizedHunyuanAddNoise", + "FawfulizedHunyuanBasicGuider", + "FawfulizedHunyuanBasicScheduler", + "FawfulizedHunyuanBetaSamplingScheduler", + "FawfulizedHunyuanCFGGuider", + "FawfulizedHunyuanControlNetApply", + "FawfulizedHunyuanControlNetApplyAdvanced", + "FawfulizedHunyuanControlNetLoader", + "FawfulizedHunyuanDiffControlNetLoader", + "FawfulizedHunyuanDisableNoise", + "FawfulizedHunyuanDualCFGGuider", + "FawfulizedHunyuanExponentialScheduler", + "FawfulizedHunyuanFlipSigmas", + "FawfulizedHunyuanKSamplerSelect", + "FawfulizedHunyuanKarrasScheduler", + "FawfulizedHunyuanLaplaceScheduler", + "FawfulizedHunyuanLatentVideo", + "FawfulizedHunyuanPolyexponentialScheduler", + "FawfulizedHunyuanRandomNoise", + "FawfulizedHunyuanSDTurboScheduler", + "FawfulizedHunyuanSamplerCustom", + "FawfulizedHunyuanSamplerCustomAdvanced", + "FawfulizedHunyuanSamplerDPMAdaptative", + "FawfulizedHunyuanSamplerDPMPP_2M_SDE", + "FawfulizedHunyuanSamplerDPMPP_2S_Ancestral", + "FawfulizedHunyuanSamplerDPMPP_3M_SDE", + "FawfulizedHunyuanSamplerDPMPP_SDE", + "FawfulizedHunyuanSamplerEulerAncestral", + "FawfulizedHunyuanSamplerEulerAncestralCFGPP", + "FawfulizedHunyuanSamplerLMS", + "FawfulizedHunyuanSetFirstSigma", + "FawfulizedHunyuanSetLatentNoiseMask", + "FawfulizedHunyuanSplitSigmas", + "FawfulizedHunyuanSplitSigmasDenoise", + "FawfulizedHunyuanVPScheduler", + "Img2ImgFawfluencerNodeSDXL" + ], + { + "title_aux": "ComfyUI_Fawfluencer_Nodes" + } + ], + "https://github.com/daniabib/ComfyUI_ProPainter_Nodes": [ + [ + "ProPainterInpaint", + "ProPainterOutpaint" + ], + { + "title_aux": "ComfyUI ProPainter Nodes" + } + ], "https://github.com/daniel-lewis-ab/ComfyUI-Llama": [ [ "Call LLM Advanced", @@ -6583,6 +22784,7 @@ ], "https://github.com/darkpixel/darkprompts": [ [ + "DarkAnyToString", "DarkCheckpointRandomizer", "DarkCheckpointSwitcher", "DarkCombine", @@ -6590,18 +22792,64 @@ "DarkFaceIndexShuffle", "DarkFolders", "DarkLoRALoader", + "DarkLoraStackFromString", + "DarkPopLoraFromStack", "DarkPrompt" ], { "title_aux": "DarkPrompts" } ], - "https://github.com/davask/ComfyUI-MarasIT-Nodes": [ + "https://github.com/darth-veitcher/comfydv": [ [ - "MarasitAnyBusNode" + "CircuitBreaker", + "FormatString", + "ModelUnloader", + "RandomChoice" ], { - "title_aux": "\ud83d\udc30 MarasIT Nodes" + "author": "Darth Veitcher", + "description": "This collection of nodes provides string formatting, random choices, model memory management, and other quality of life improvements.", + "nickname": "DV Nodes", + "title": "Comfy DV Nodes", + "title_aux": "Comfy DV" + } + ], + "https://github.com/daryltucker/ComfyUI-LoadFiles": [ + [ + "CountLines", + "ListFilenames", + "LoadImages" + ], + { + "title_aux": "ComfyUI-LoadFiles" + } + ], + "https://github.com/dasilva333/ComfyUI_ContrastingColor": [ + [ + "ContrastingComplementaryColor|pysssss" + ], + { + "title_aux": "ComfyUI_ContrastingColor" + } + ], + "https://github.com/dasilva333/ComfyUI_HunyuanVideo-Foley": [ + [ + "HunyuanFoleyAudio" + ], + { + "title_aux": "ComfyUI HunyuanVideo-Foley Custom Node" + } + ], + "https://github.com/dasilva333/ComfyUI_MarkdownImage": [ + [ + "CreateDialogImage", + "CreateDialogImageV2", + "CreateMarkdownImage", + "CreateMarkdownImageV2" + ], + { + "title_aux": "ComfyUI_MarkdownImage" } ], "https://github.com/dave-palt/comfyui_DSP_imagehelpers": [ @@ -6612,32 +22860,71 @@ "title_aux": "comfyui_DSP_imagehelpers" } ], - "https://github.com/dawangraoming/ComfyUI_ksampler_gpu/raw/main/ksampler_gpu.py": [ + "https://github.com/davidgressett/comfyui-systemlevel": [ [ - "KSamplerAdvancedGPU", - "KSamplerGPU" + "CartesianCSVNode" ], { - "title_aux": "KSampler GPU" + "title_aux": "CartesianCSVNode for ComfyUI" + } + ], + "https://github.com/daxcay/ComfyUI-DataSet": [ + [ + "DataSet_ClaudeAIChat", + "DataSet_ClaudeAIChatImage", + "DataSet_ConceptManager", + "DataSet_CopyFiles", + "DataSet_FindAndReplace", + "DataSet_GroqChat", + "DataSet_GroqChatImage", + "DataSet_LoadImage", + "DataSet_OpenAIChat", + "DataSet_OpenAIChatImage", + "DataSet_OpenAIChatImageBatch", + "DataSet_PathSelector", + "DataSet_SaveImage", + "DataSet_SaveImagePro", + "DataSet_TextFilesLoad", + "DataSet_TextFilesLoadFromList", + "DataSet_TextFilesSave", + "DataSet_TriggerWords", + "DataSet_Visualizer" + ], + { + "author": "Daxton Caylor", + "description": "Data Research, Preparation, and Manipulation Nodes for Model Trainers, Artists, Designers, and Animators.", + "nickname": "ComfyUI-DataSet", + "title": "ComfyUI-DataSet", + "title_aux": "ComfyUI-DataSet" } ], "https://github.com/daxcay/ComfyUI-JDCN": [ [ + "JDCN_AnyCheckpointLoader", "JDCN_AnyFileList", "JDCN_AnyFileListHelper", "JDCN_AnyFileListRandom", "JDCN_AnyFileSelector", + "JDCN_BatchCounter", + "JDCN_BatchCounterAdvance", + "JDCN_BatchImageLoadFromDir", "JDCN_BatchImageLoadFromList", "JDCN_BatchLatentLoadFromDir", "JDCN_BatchLatentLoadFromList", "JDCN_BatchSaveLatent", + "JDCN_BoolInt", + "JDCN_EnableDisable", "JDCN_FileMover", "JDCN_ImageSaver", "JDCN_ListToString", + "JDCN_LoadImage", "JDCN_ReBatch", "JDCN_SeamlessExperience", + "JDCN_ShowAny", "JDCN_SplitString", + "JDCN_StringManipulator", "JDCN_StringToList", + "JDCN_SwapInputs", "JDCN_TXTFileSaver", "JDCN_VHSFileMover" ], @@ -6649,21 +22936,78 @@ "title_aux": "ComfyUI-JDCN" } ], - "https://github.com/daxthin/DZ-FaceDetailer": [ + "https://github.com/daxcay/ComfyUI-TG": [ [ - "DZ_Face_Detailer" + "TG_ImageSaver" ], { - "title_aux": "DZ-FaceDetailer" + "author": "Daxton Caylor", + "description": "This node enables someone to run comfyui in telegram.", + "nickname": "ComfyUI-TG", + "title": "ComfyUI-TG", + "title_aux": "ComfyUI-TG" + } + ], + "https://github.com/daxcay/ComfyUI-WA": [ + [ + "WA_ImageSaver" + ], + { + "author": "Daxton Caylor", + "description": "This node enables someone to run comfyui in whatsapp.", + "nickname": "ComfyUI-WA", + "title": "ComfyUI-WA", + "title_aux": "ComfyUI-WA" + } + ], + "https://github.com/daxcay/ComfyUI-YouTubeVideoPlayer": [ + [ + "YouTubeVideoPlayer" + ], + { + "author": "Daxton Caylor & Jerry Davos", + "description": "YouTube Video Player in Comfy.", + "nickname": "ComfyUI-YouTubeVideoPlayer", + "title": "ComfyUI-YouTubeVideoPlayer", + "title_aux": "ComfyUI-YouTubeVideoPlayer" + } + ], + "https://github.com/dchatel/comfyui_davcha": [ + [ + "ApplyMask", + "ConditioningCompress", + "DStack", + "DavchaCLIPMergeSimple", + "DavchaCLIPTextEncode", + "DavchaConditioningConcat", + "DavchaEmptyLatentImage", + "DavchaLLM", + "DavchaLLMAdvanced", + "DavchaLoadLLM", + "DavchaLoadVideo", + "DavchaMaskImage", + "DavchaModelMergeSD1", + "DavchaModelMergeSDXL", + "DavchaModelMergeSimple", + "DavchaPop", + "PadAndResize", + "PercentPadding", + "ResizeCropFit", + "SmartMask", + "SoftErosion", + "StringScheduleHelper" + ], + { + "title_aux": "comfyui_davcha" } ], "https://github.com/dchatel/comfyui_facetools": [ [ - "AlignFaces", + "BiSeNetMask", "CropFaces", "DetectFaces", - "FaceDetails", "GenderFaceFilter", + "JonathandinuMask", "MergeWarps", "OrderedFaceFilter", "WarpFacesBack" @@ -6672,6 +23016,40 @@ "title_aux": "comfyui_facetools" } ], + "https://github.com/denfrost/Den_ComfyUI_Workflow": [ + [ + "Den_BatchIndex_AS", + "Den_CropImage_AS", + "Den_Eval_AS", + "Den_FaceRestoreCFWithModel", + "Den_GPTLoaderSimple_llama", + "Den_GPTSampler_llama", + "Den_ImageMixMasked_As", + "Den_ImageToLatentSpace", + "Den_ImageToMask_AS", + "Den_Int2Any_AS", + "Den_LatentAdd_AS", + "Den_LatentMixMasked_As", + "Den_LatentMix_AS", + "Den_LatentToImages_AS", + "Den_LoadLatent_AS", + "Den_MapRange_AS", + "Den_MaskToImage_AS", + "Den_Math_AS", + "Den_NoiseImage_AS", + "Den_Number2Float_AS", + "Den_Number2Int_AS", + "Den_Number_AS", + "Den_SVD_img2vid", + "Den_SaveLatent_AS", + "Den_TextToImage_AS", + "Den_TextWildcardList_AS", + "Increment_AS" + ], + { + "title_aux": "Den_ComfyUI_Workflows" + } + ], "https://github.com/deroberon/StableZero123-comfyui": [ [ "SDZero ImageSplit", @@ -6693,6 +23071,15 @@ "title_aux": "demofusion-comfyui" } ], + "https://github.com/dfghsdh/ComfyUI_FluxPromptGen": [ + [ + "FluxImageCaptionNode", + "FluxPromptGeneratorNode" + ], + { + "title_aux": "ComfyUI_FluxPromptGen" + } + ], "https://github.com/dfl/comfyui-clip-with-break": [ [ "AdvancedCLIPTextEncodeWithBreak", @@ -6703,7 +23090,7 @@ "description": "CLIP text encoder that does BREAK prompting like A1111", "nickname": "CLIP with BREAK", "title": "CLIP with BREAK syntax", - "title_aux": "CLIP with BREAK syntax" + "title_aux": "comfyui-clip-with-break" } ], "https://github.com/dfl/comfyui-tcd-scheduler": [ @@ -6716,6 +23103,14 @@ "title_aux": "ComfyUI-TCD-scheduler" } ], + "https://github.com/diStyApps/ComfyUI-disty-Flow": [ + [ + "Flow" + ], + { + "title_aux": "Flow - Streamlined Way to ComfyUI" + } + ], "https://github.com/diStyApps/ComfyUI_FrameMaker": [ [ "FrameMaker", @@ -6725,6 +23120,29 @@ "title_aux": "ComfyUI Frame Maker" } ], + "https://github.com/dicksensei69/comfyui_loops": [ + [ + "LoopImageNode" + ], + { + "title_aux": "ComfyUI Loops" + } + ], + "https://github.com/dicksondickson/ComfyUI-Dickson-Nodes": [ + [ + "DicksonColorMatch", + "DicksonLoadImage", + "Dickson_TTP_Preprocessor_Simple", + "Dickson_TTP_Preprocessor_cufoff", + "Dickson_TTP_Tile_Preprocessor_GF" + ], + { + "description": "This is a set of custom nodes that I've either written myself or adapted from other authors for my own convenience. Currently includes color matching node forked from StableSR and TTPlanet's controlnet preprocessor. https://github.com/dicksondickson", + "nickname": "Dickson Nodes", + "title": "Dickson Nodes", + "title_aux": "ComfyUI-Dickson-Nodes" + } + ], "https://github.com/digitaljohn/comfyui-propost": [ [ "ProPostApplyLUT", @@ -6737,18 +23155,70 @@ "title_aux": "ComfyUI-ProPost" } ], + "https://github.com/dimtion/comfyui-raw-image": [ + [ + "Load Raw Image" + ], + { + "title_aux": "ComfyUI-Raw-Image" + } + ], "https://github.com/dimtoneff/ComfyUI-PixelArt-Detector": [ [ "PixelArtAddDitherPattern", "PixelArtDetectorConverter", "PixelArtDetectorSave", "PixelArtDetectorToImage", - "PixelArtLoadPalettes" + "PixelArtLoadPalettes", + "PixelArtPaletteGenerator" ], { "title_aux": "ComfyUI PixelArt Detector" } ], + "https://github.com/dimtoneff/ComfyUI-VL-Nodes": [ + [ + "GGUF_VLM_ImageToText", + "GGUF_VLM_ModelLoader", + "InternVL3_5_ImageToText", + "InternVL3_5_ModelLoader", + "KeyeModelLoader", + "KeyeNode", + "LFM2TransformerImageToText", + "LFM2TransformerModelLoader", + "LoadImagesFromDirBatch_VL", + "LoadImagesFromDirList_VL", + "Ovis25ImageToText", + "Ovis25ModelLoader", + "OvisU1ImageCaption", + "OvisU1VLModelLoader", + "TextSave_VL", + "VLNodesFreeMemoryAPI" + ], + { + "title_aux": "ComfyUI-VL-Nodes" + } + ], + "https://github.com/diodiogod/TTS-Audio-Suite": [ + [ + "AudioAnalyzerNode", + "AudioAnalyzerOptionsNode", + "CharacterVoicesNode", + "ChatterBoxEngineNode", + "ChatterBoxF5TTSEditOptions", + "F5TTSEngineNode", + "HiggsAudioEngineNode", + "MouthMovementAnalyzer", + "UnifiedTTSSRTNode", + "UnifiedTTSTextNode", + "UnifiedVoiceChangerNode", + "VibeVoiceEngineNode", + "VisemeDetectionOptionsNode" + ], + { + "title_aux": "TTS Audio Suite" + } + ], "https://github.com/diontimmer/ComfyUI-Vextra-Nodes": [ [ "Add Text To Image", @@ -6768,6 +23238,18 @@ "title_aux": "ComfyUI-Vextra-Nodes" } ], + "https://github.com/discopixel-studio/comfyui-discopixel": [ + [ + "PhotoroomRemoveBG" + ], + { + "author": "Anson Kao", + "description": "A small collection of custom nodes for use with ComfyUI, by Discopixel", + "nickname": "ComfyUI Discopixel", + "title": "ComfyUI Discopixel", + "title_aux": "PhotoRoom Nodes by Discopixel" + } + ], "https://github.com/discus0434/comfyui-caching-embeddings": [ [ "CachingCLIPTextEncode" @@ -6776,8 +23258,17 @@ "title_aux": "ComfyUI Caching Embeddings" } ], + "https://github.com/discus0434/comfyui-flux-accelerator": [ + [ + "\ud83c\udf6dFluxAccelerator" + ], + { + "title_aux": "ComfyUI Flux Accelerator" + } + ], "https://github.com/djbielejeski/a-person-mask-generator": [ [ + "APersonFaceLandmarkMaskGenerator", "APersonMaskGenerator" ], { @@ -6896,6 +23387,38 @@ "title_aux": "ComfyUI-Keyframed" } ], + "https://github.com/dorpxam/ComfyUI-FramePack-F1-T2V": [ + [ + "FramePackF1T2VLoraStack", + "FramePackF1T2VSampler", + "FramePackF1T2VSamplerSettings", + "FramePackF1T2VTextEncode", + "FramePackF1T2VUserSettings" + ], + { + "title_aux": "ComfyUI-FramePack-F1-T2V" + } + ], + "https://github.com/dorpxam/ComfyUI-LTXVideoLoRA": [ + [ + "LTXVLoRABlockEdit", + "LTXVLoRALoader", + "LTXVLoRASelector" + ], + { + "title_aux": "ComfyUI-LTXVideoLoRA" + } + ], + "https://github.com/doubletwisted/ComfyUI-Deadline-Plugin": [ + [ + "DeadlineSeed", + "DeadlineSubmit" + ], + { + "nodename_pattern": "DeadlineSubmitNode", + "title_aux": "ComfyUI Deadline Submission" + } + ], "https://github.com/drago87/ComfyUI_Dragos_Nodes": [ [ "file_padding", @@ -6907,6 +23430,79 @@ "title_aux": "ComfyUI_Dragos_Nodes" } ], + "https://github.com/dreamhartley/ComfyUI_show_seed": [ + [ + "Show Seed" + ], + { + "title_aux": "ComfyUI_show_seed" + } + ], + "https://github.com/drmbt/comfyui-dreambait-nodes": [ + [ + "AudioInfoPlus", + "BoolPlusPlus", + "CompareImageSimilarity", + "DRMBT_AspectPadImageForOutpainting", + "DRMBT_LoadMedia", + "DRMBT_MultiMinMax", + "DRMBT_String_Item_Menu", + "DictToOutputs", + "DownloadAndLoadMiniCPMV", + "DrawMana", + "DrawText", + "DreambaitFolderOpener", + "DynamicDictionary", + "DynamicStringConcatenate", + "ImageFrameBlend", + "ImageResizeFaceAware", + "ListItemExtract", + "ListItemSelector", + "LoadAudioPlus", + "MiniCPMVNode", + "MusicGen", + "NormalizeAudio", + "NumberPlusPlus", + "NumberRemap", + "Qwen2AudioInstruct", + "ShotHistory", + "StringToDict", + "SwitchDuo", + "TextBoxStyle", + "TextLineSelect", + "TextLinesToList", + "TextMargins", + "TextPlusPlus", + "TextShadow" + ], + { + "title_aux": "comfyui-dreambait-nodes" + } + ], + "https://github.com/drozbay/ComfyUI-WanVaceAdvanced": [ + [ + "VaceAdvancedModelPatch", + "VaceStrengthTester", + "WanVacePhantomDual", + "WanVacePhantomDualV2", + "WanVacePhantomExperimental", + "WanVacePhantomExperimentalV2", + "WanVacePhantomSimple", + "WanVacePhantomSimpleV2", + "WanVaceToVideoLatent" + ], + { + "title_aux": "ComfyUI-WanVaceAdvanced" + } + ], + "https://github.com/drphero/comfyui_prompttester": [ + [ + "PromptTester" + ], + { + "title_aux": "ComfyUI-PromptTester" + } + ], "https://github.com/drustan-hawk/primitive-types": [ [ "float", @@ -6918,6 +23514,108 @@ "title_aux": "primitive-types" } ], + "https://github.com/dseditor/ComfyUI-ListHelper": [ + [ + "AudioListCombine", + "AudioListGenerator", + "AudioToFrameCount", + "CeilDivide", + "FrameMatch", + "LoadVideoPath", + "MergeVideoFilename", + "NumberListGenerator", + "OpenRouterLLM", + "PromptListGenerator", + "SaveVideoPath" + ], + { + "title_aux": "ComfyUI-ListHelper" + } + ], + "https://github.com/dseditor/ComfyUI-ScheduledTask": [ + [ + "DailyPromptScheduler", + "ShutdownNode", + "TimeToSeedList" + ], + { + "title_aux": "ComfyUI-ScheduledTask" + } + ], + "https://github.com/dseditor/ComfyUI-Thread": [ + [ + "PublishThread", + "StartWithLongLiveToken", + "ThreadPublishVideo", + "ThreadsHistory" + ], + { + "title_aux": "ComfyUI-Thread" + } + ], + "https://github.com/duchamps0305/comfyui-white-extractor": [ + [ + "WhitePercentage" + ], + { + "title_aux": "comfyui-white-extractor" + } + ], + "https://github.com/ducido/ObjectFusion_ComfyUI_nodes": [ + [ + "Custom ESAM_ModelLoader_Zho", + "Custom Generate Stable Diffsution Prompt With LLM", + "Custom Yoloworld_ESAM_Zho", + "Custom Yoloworld_ModelLoader_Zho", + "ObjectCrop" + ], + { + "title_aux": "ObjectFusion_ComfyUI_nodes" + } + ], + "https://github.com/duskfallcrew/Comfyui_EmbeddingMerge_Node/raw/refs/heads/main/merge_embed.py": [ + [ + "EmbeddingMerger" + ], + { + "title_aux": "Embedding Merge for ComfyUI" + } + ], + "https://github.com/dymokomi/comfyui_dygen": [ + [ + "AdaptiveColorCircles", + "AdaptiveColorLines", + "AdaptiveColorRectangles", + "BinaryPatternStamper", + "DYImageCluster", + "DYImageMasks", + "DYImagePalette", + "DYImageQuantize", + "ImageListToGrid", + "ImageScaler", + "RandomLines" + ], + { + "title_aux": "comfyui_dygen" + } + ], + "https://github.com/dzqdzq/ComfyUI-crop-alpha": [ + [ + "FastAlphaCropper", + "ShrinkImage" + ], + { + "title_aux": "ComfyUI-crop-alpha" + } + ], + "https://github.com/e-tier-newbie/ComfyUI-E-Tier-TextSaver": [ + [ + "E_TierTextSaver" + ], + { + "title_aux": "ComfyUI-E-Tier-TextSaver" + } + ], "https://github.com/e7mac/ComfyUI-ShadertoyGL": [ [ "ColorChannelOffset", @@ -6928,7 +23626,7 @@ "title_aux": "ComfyUI-ShadertoyGL" } ], - "https://github.com/ealkanat/comfyui_easy_padding": [ + "https://github.com/ealkanat/comfyui-easy-padding": [ [ "comfyui-easy-padding" ], @@ -6936,30 +23634,246 @@ "title_aux": "ComfyUI Easy Padding" } ], - "https://github.com/edenartlab/eden_comfy_pipelines": [ + "https://github.com/eastoc/ComfyUI_SemanticSAM": [ [ - "CLIP_Interrogator", - "ConvertToGrayscale", - "Eden_Bool", - "Eden_Compare", - "Eden_DebugPrint", - "Eden_Float", - "Eden_Int", - "Eden_String", - "HistogramMatching", - "IMG_blender", - "IMG_padder", - "IMG_resolution_multiple_of", - "IMG_scaler", - "IMG_unpadder", - "If ANY execute A else B", - "LatentTypeConversion", - "LoadRandomImage", - "SaveImageAdvanced", - "VAEDecode_to_folder" + "PointPrompt", + "SemanticSAMLoader", + "SemanticSAMSegment" ], { - "title_aux": "eden_comfy_pipelines" + "title_aux": "Semantic-SAM" + } + ], + "https://github.com/ebrinz/ComfyUI-MusicGen-HF": [ + [ + "AudioOutputToConditioningQueue", + "BPMDurationInput", + "ConditioningQueueManager", + "HuggingFaceMusicGen", + "LoadAudioStandalone", + "LoopingAudioPreview", + "MusicGenAudioToFile", + "ProfessionalLoopTransition", + "SaveAudioStandalone", + "SmoothAudioQueue", + "custom_nodes" + ], + { + "title_aux": "ComfyUI-MusicGen-HF" + } + ], + "https://github.com/edelvarden/ComfyUI-Display-Value": [ + [ + "DisplayValue" + ], + { + "title_aux": "ComfyUI-Display-Value" + } + ], + "https://github.com/edenartlab/eden_comfy_pipelines": [ + [ + "AnimatedShapeMaskNode", + "Animation_RGB_Mask", + "AspectPadImageForOutpainting", + "CLIP_Interrogator", + "ConvertToGrayscale", + "DepthSlicer", + "Eden_AllMediaLoader", + "Eden_Bool", + "Eden_BoolBinaryOperation", + "Eden_Compare", + "Eden_Debug_Anything", + "Eden_DepthSlice_MaskVideo", + "Eden_DetermineFrameCount", + "Eden_FaceToMask", + "Eden_Face_Crop", + "Eden_Float", + "Eden_FloatToInt", + "Eden_GPTPromptEnhancer", + "Eden_GPTStructuredOutput", + "Eden_IMG_padder", + "Eden_IMG_unpadder", + "Eden_ImageMaskComposite", + "Eden_Image_Math", + "Eden_Int", + "Eden_IntToFloat", + "Eden_MaskBoundingBox", + "Eden_MaskCombiner", + "Eden_Math", + "Eden_RGBA_to_RGB", + "Eden_RandomFilepathSampler", + "Eden_RandomNumberSampler", + "Eden_RandomPromptFromFile", + "Eden_Regex_Replace", + "Eden_RepeatLatentBatch", + "Eden_Save_Param_Dict", + "Eden_Seed", + "Eden_String", + "Eden_StringHash", + "Eden_StringReplace", + "Eden_gpt4_node", + "Eden_randbool", + "Extend_Sequence", + "FolderScanner", + "GetRandomFile", + "Get_Prefixed_Imgs", + "HistogramMatching", + "IMG_blender", + "IMG_resolution_multiple_of", + "IMG_scaler", + "IP_Adapter_Settings_Distribution", + "If ANY execute A else B", + "ImageDescriptionNode", + "ImageFolderIterator", + "KeyframeBlender", + "LatentTypeConversion", + "Linear_Combine_IP_Embeds", + "LoadImagesByFilename", + "LoadRandomImage", + "Load_Embeddings_From_Folder", + "MaskFromRGB_KMeans", + "MaskedRegionVideoExport", + "OrganicFillNode", + "ParallaxZoom", + "Random_Style_Mixture", + "SDAnyConverter", + "SDTypeConverter", + "SaveImageAdvanced", + "SavePosEmbeds", + "VAEDecode_to_folder", + "VideoFrameSelector", + "WidthHeightPicker" + ], + { + "title_aux": "Eden.art nodesuite" + } + ], + "https://github.com/edenartlab/sd-lora-trainer": [ + [ + "Eden_LoRa_trainer" + ], + { + "title_aux": "Eden.art LoRa Trainer" + } + ], + "https://github.com/educator-art/ComfyUI-Load-DirectoryFiles": [ + [ + "Load Images and Prompts from Directory", + "Load Images and Prompts from Directory(Advanced)" + ], + { + "title_aux": "ComfyUI-Load-DirectoryFiles" + } + ], + "https://github.com/educator-art/ComfyUI-gpt-oss-PromptDesigner": [ + [ + "Load gpt-oss Prompt Designer" + ], + { + "title_aux": "ComfyUI-gpt-oss-PromptDesigner" + } + ], + "https://github.com/eg0pr0xy/comfyui_noisegen": [ + [ + "AudioAnalyzer", + "AudioMixer", + "AudioSave", + "BandLimitedNoise", + "ChaosNoiseMix", + "ConvolutionReverb", + "FeedbackProcessor", + "GranularProcessor", + "GranularSequencer", + "HarshFilter", + "MicrosoundSculptor", + "ModulationMatrix", + "MultiDistortion", + "NoiseGenerator", + "PerlinNoise", + "SpectralProcessor", + "SpectrumAnalyzer", + "TrueChaos" + ], + { + "title_aux": "ComfyUI-NoiseGen" + } + ], + "https://github.com/einhorn13/ComfyUI-ImageProcessUtilities": [ + [ + "CombineCoords", + "CropByCoords", + "ImageTiler", + "ImageUntiler", + "PasteByCoords", + "ReorderBatch", + "SplitCoords", + "StringToIntegers" + ], + { + "title_aux": "ComfyUI-ImageProcessUtilities" + } + ], + "https://github.com/emojiiii/ComfyUI_Emojiiii_Custom_Nodes": [ + [ + "BatchImageProcessor", + "Caption", + "CaptionDownload", + "KolorsMultiTextEncode", + "MultiTextEncode" + ], + { + "title_aux": "ComfyUI_Emojiiii_Custom_Nodes" + } + ], + "https://github.com/envy-ai/ComfyUI-ConDelta": [ + [ + "ApplyConDelta", + "ApplyConDeltaAutoScale", + "CFGlessNegativePrompt", + "ClampConDelta", + "ConditioningAddConDelta", + "ConditioningAddConDeltaAutoScale", + "ConditioningAverageMultiple", + "ConditioningGetNoise", + "ConditioningGetRandom", + "ConditioningScale", + "ConditioningSubtract", + "ExtendedConditioningAverage", + "GetConDeltaFromPrompt", + "HardClampConDelta", + "LoadConditioningDelta", + "MaskConDelta", + "QuickConDelta", + "SaveConditioningDelta", + "ThresholdConditioning" + ], + { + "title_aux": "ComfyUI-ConDelta" + } + ], + "https://github.com/eric183/ComfyUI-Only": [ + [ + "ArchiveImageLoader", + "LatentLoaderAdvanced", + "WorkflowImageFileLoader", + "WorkflowJSONParser" + ], + { + "title_aux": "ComfyUI-Only" + } + ], + "https://github.com/erosDiffusion/ComfyUI-enricos-nodes": [ + [ + "Compositor3", + "CompositorColorPicker", + "CompositorConfig3", + "CompositorMasksOutputV3", + "CompositorTools3", + "CompositorTransformsOutV3", + "ImageColorSampler" + ], + { + "title_aux": "ComfyUI-enricos-nodes" } ], "https://github.com/evanspearman/ComfyMath": [ @@ -6986,6 +23900,7 @@ "CM_IntToNumber", "CM_IntUnaryCondition", "CM_IntUnaryOperation", + "CM_NearestSDXLExtendedResolution", "CM_NearestSDXLResolution", "CM_NumberBinaryCondition", "CM_NumberBinaryOperation", @@ -6993,6 +23908,7 @@ "CM_NumberToInt", "CM_NumberUnaryCondition", "CM_NumberUnaryOperation", + "CM_SDXLExtendedResolution", "CM_SDXLResolution", "CM_Vec2BinaryCondition", "CM_Vec2BinaryOperation", @@ -7020,19 +23936,419 @@ "title_aux": "ComfyMath" } ], - "https://github.com/fearnworks/ComfyUI_FearnworksNodes/raw/main/fw_nodes.py": [ + "https://github.com/excelwong/ComfyUI-PromptComposer": [ + [ + "PromptComposer" + ], + { + "title_aux": "ComfyUI Prompt Composer" + } + ], + "https://github.com/exdysa/comfyui-selector": [ + [ + "RecourseAny", + "RecourseCkpt", + "RecourseImage", + "RecoursePolar", + "RecourseStrings", + "SelInClip", + "SelInFloat", + "SelInGuider", + "SelInInt", + "SelInLatent", + "SelInModel", + "SelInPolar", + "SelInSampler", + "SelInSigmas", + "SelInVae", + "SelOutCLIP", + "SelOutModel", + "SelOutPolar", + "Selector", + "Selector Advanced", + "Selector Hub" + ], + { + "author": "\"\u02f6\ud835\udfa2\u292c\u2ad2\u2d56s\u143c\u02f6\"", + "description": "\"EXDYSA. Selector and Recourse. Presets & failsafes. Work flow.\"", + "nickname": "\"Selector\"", + "title": "\"Selector\"", + "title_aux": "comfyui-selector" + } + ], + "https://github.com/exectails/comfyui-et_dynamicprompts": [ + [ + "ETDynamicPrompt" + ], + { + "title_aux": "Dynamic Prompts" + } + ], + "https://github.com/exectails/comfyui-et_infoutils": [ + [ + "ETInspectTextNode", + "ETIntBoxNode", + "ETPresentImageNode", + "ETShowDataNode", + "ETStringBoxNode", + "ETTextBoxNode", + "ETTokenCountNode" + ], + { + "title_aux": "Info Utils" + } + ], + "https://github.com/exectails/comfyui-et_stringutils": [ + [ + "ETATOI", + "ETITOA", + "ETJoinTextNode", + "ETReplaceTextNode", + "ETSplitTextNode", + "ETSwitchTextNode", + "ETTextFormatter10Node", + "ETTextFormatter2Node", + "ETTextFormatter5Node" + ], + { + "title_aux": "String Utils" + } + ], + "https://github.com/ez-af/ComfyUI-EZ-AF-Nodes": [ + [ + "EZ_CSV_Loader", + "EZ_Extract_Prompt", + "EZ_Find_Replace", + "EZ_Input", + "EZ_Prompt_Loader", + "EZ_Switch", + "EZ_Tag_Loader", + "EZ_Test", + "EZ_Text_Concat", + "EZ_Text_to_Size" + ], + { + "title_aux": "ComfyUI-EZ-AF-Nodes" + } + ], + "https://github.com/facok/ComfyUI-HunyuanVideoMultiLora": [ + [ + "HunyuanVideoLoraLoader" + ], + { + "title_aux": "ComfyUI-HunyuanVideoMultiLora" + } + ], + "https://github.com/facok/ComfyUI-TeaCacheHunyuanVideo": [ + [ + "TeaCacheHunyuanVideoSampler_FOK" + ], + { + "title_aux": "ComfyUI-TeaCacheHunyuanVideo" + } + ], + "https://github.com/fairy-root/ComfyUI-GLHF": [ + [ + "glhf_chat" + ], + { + "title_aux": "ComfyUI-GLHF" + } + ], + "https://github.com/fairy-root/ComfyUI-OpenAI-FM": [ + [ + "OpenAIFMNode" + ], + { + "title_aux": "ComfyUI-OpenAI-FM" + } + ], + "https://github.com/fairy-root/ComfyUI-Show-Text": [ + [ + "ShowText" + ], + { + "title_aux": "ComfyUI-Show-Text" + } + ], + "https://github.com/fairy-root/Flux-Prompt-Generator": [ + [ + "FluxPromptGenerator" + ], + { + "title_aux": "Flux Prompt Generator for ComfyUI" + } + ], + "https://github.com/fairy-root/comfyui-ollama-llms": [ + [ + "ConcatenateText", + "llava", + "ollama" + ], + { + "title_aux": "Ollama and Llava Vision integration for ComfyUI" + } + ], + "https://github.com/fallingmeteorite/nsfw-image-check-comfyui": [ + [ + "NsfwAreaCoverNode", + "NsfwCheckNode" + ], + { + "title_aux": "nsfw-image-check-comfyui" + } + ], + "https://github.com/fashn-AI/ComfyUI-FASHN": [ + [ + "FASHN" + ], + { + "title_aux": "FASHN Virtual Try-On" + } + ], + "https://github.com/fat-tire/comfyui-unified-media-suite": [ + [ + "MediaLoad", + "MediaMerge", + "MediaSave" + ], + { + "title_aux": "ComfyUI Unified Media Suite" + } + ], + "https://github.com/fblissjr/ComfyUI-DatasetHelper": [ + [ + "DatasetBatchNode" + ], + { + "title_aux": "ComfyUI Dataset Helper & Batch Node" + } + ], + "https://github.com/fblissjr/ComfyUI-EmbeddingPipelineAnalytics": [ + [ + "EmbeddingAnalyzer", + "EmbeddingPipelineCapture" + ], + { + "title_aux": "ComfyUI-EmbeddingPipelineAnalytics" + } + ], + "https://github.com/fblissjr/ComfyUI-QwenImageWanBridge": [ + [ + "DenoiseCurveVisualizer", + "LatentStatisticsMonitor", + "MinimalKeyframeV2V", + "QwenCheckpointLoaderSimple", + "QwenCompareEncoders", + "QwenDebugTextEncoder", + "QwenDiffusionModelLoader", + "QwenEliGenController", + "QwenEliGenMaskCreator", + "QwenFrameLoader", + "QwenImageEditAdvanced", + "QwenImageEditLatentPrepare", + "QwenImageEditProcessor", + "QwenImageEditSimple", + "QwenImageEditUnified", + "QwenImageIterativeSampler", + "QwenImageResolutionHelper", + "QwenImageSamplerAdvanced", + "QwenImageSamplerWrapper", + "QwenImageVAEEncode", + "QwenLowresFixNode", + "QwenModelValidator", + "QwenMultiFrameComplete", + "QwenMultiFrameEncoder", + "QwenMultiFrameWrapper", + "QwenOptimalResolution", + "QwenPromptFormatter", + "QwenPromptInterpolator", + "QwenPromptInterpolatorBatch", + "QwenResolutionSelector", + "QwenTemplateBuilder", + "QwenTemplateBuilderV2", + "QwenTemplateConnector", + "QwenTextEncoderLoader", + "QwenToNativeLatentBridge", + "QwenTokenInfo", + "QwenVAELoader", + "QwenVAENormalizer", + "QwenVLCLIPLoader", + "QwenVLLoader", + "QwenVLTextEncoder", + "QwenVisionPatchEncoder", + "QwenWANCompareLatents", + "QwenWANConditioningDebug", + "QwenWANKeyframeEditor", + "QwenWANKeyframeExtractor", + "QwenWANLatentDebug" + ], + { + "title_aux": "ComfyUI-QwenImageWanBridge" + } + ], + "https://github.com/fblissjr/ComfyUI-WanActivationEditor": [ + [ + "WanVideoActivationEditor", + "WanVideoAdvancedActivationEditor", + "WanVideoBlockActivationBuilder", + "WanVideoBlockActivationViewer", + "WanVideoBlockStrengthBuilder", + "WanVideoDirectInjector", + "WanVideoEmbeddingAmplifier", + "WanVideoEmbeddingAnalyzer", + "WanVideoEmbeddingDatabase", + "WanVideoGuidanceController", + "WanVideoInjectionTester", + "WanVideoLatentEncoder", + "WanVideoLatentInjector", + "WanVideoNoiseController", + "WanVideoProjectionBooster", + "WanVideoSequentialMixer", + "WanVideoStrengthVisualizer", + "WanVideoVectorArithmetic", + "WanVideoVectorDifference", + "WanVideoVectorInterpolation" + ], + { + "title_aux": "ComfyUI-WanActivationEditor" + } + ], + "https://github.com/fblissjr/ComfyUI-WanSeamlessFlow": [ + [ + "WanAdaptiveFlow", + "WanBlendVisualize", + "WanEmbeddingPrevizCanvas", + "WanMinimalCanvasTest", + "WanSmartBlend" + ], + { + "title_aux": "wanvideo - seamless flow" + } + ], + "https://github.com/fblissjr/shrug-prompter": [ + [ + "AccumulationNodeCompat", + "AdvancedVLMSampler", + "AnyTypePassthrough", + "AutoMemoryManager", + "DualProviderConfig", + "GlobalMemoryCleanup", + "ImageToAny", + "LoopAwareResponseIterator", + "LoopAwareVLMAccumulator", + "LoopSafeAccumulator", + "PromptTemplateLoader", + "RemoteTextEncoder", + "RobustImageRangeExtractor", + "SeedPromptGenerator", + "ShrugPrompter", + "SmartImageRangeExtractor", + "TextCleanup", + "TextListCleanup", + "TextListIndexer", + "TextListToString", + "TwoRoundVLMPrompter", + "VLMImagePassthrough", + "VLMImageProcessor", + "VLMImageResizer", + "VLMPrompterFast", + "VLMProviderConfig", + "VLMResponseExtractor", + "VLMResultCollector", + "VLMResultIterator", + "VLMResultsToGeneric", + "VLMStyleRewriter", + "VideoFramePairExtractor", + "VideoSegmentAssembler" + ], + { + "title_aux": "Shrug-Prompter: Unified VLM Integration for ComfyUI" + } + ], + "https://github.com/fcanfora/comfyui-camera-tools": [ + [ + "Load3DAnimation_Adv", + "Load3D_Adv", + "LoadCameraFromFile", + "Preview3D_Adv", + "Preview3D_AdvAnimation_Adv" + ], + { + "title_aux": "comfyui-camera-tools" + } + ], + "https://github.com/fchangjun/Comfyui_MultiSaveImage": [ + [ + "MultiSaveImage", + "SimpleLLMNode" + ], + { + "title_aux": "MultiSaveImage Node" + } + ], + "https://github.com/fearnworks/ComfyUI_FearnworksNodes": [ [ "Count Files in Directory (FW)", "Count Tokens (FW)", + "CountTokens", + "FileCountInDirectory", "Token Count Ranker(FW)", - "Trim To Tokens (FW)" + "TokenCountRanker", + "Trim To Tokens (FW)", + "TrimToTokens" ], { - "title_aux": "Fearnworks Custom Nodes" + "title_aux": "Fearnworks Nodes" + } + ], + "https://github.com/feffy380/comfyui-chroma-cache": [ + [ + "ChromaCache" + ], + { + "title_aux": "Chroma Cache" + } + ], + "https://github.com/feixuetuba/Spleeter": [ + [ + "Spleeter" + ], + { + "title_aux": "Spleeter" + } + ], + "https://github.com/felixszeto/ComfyUI-RequestNodes": [ + [ + "Chainable Upload Image", + "ChainableUploadImage", + "Form Post Request Node", + "FormPostRequestNode", + "Get Request Node", + "GetRequestNode", + "Image To Base64 Node", + "Image To Blob Node", + "ImageToBase64Node", + "ImageToBlobNode", + "Key/Value Node", + "KeyValueNode", + "Post Request Node", + "PostRequestNode", + "Rest Api Node", + "RestApiNode", + "Retry Settings Node", + "RetrySettingNode", + "String Replace Node", + "StringReplaceNode" + ], + { + "title_aux": "ComfyUI-RequestNodes" } ], "https://github.com/fexli/fexli-util-node-comfyui": [ [ + "FEAnyToDict", + "FEAnyToString", "FEBCPrompt", "FEBatchGenStringBCDocker", "FEColor2Image", @@ -7041,15 +24357,21 @@ "FEDataPacker", "FEDataUnpacker", "FEDeepClone", + "FEDictCombine", "FEDictPacker", "FEDictUnpacker", + "FEEncLoraAutoLoader", + "FEEncLoraAutoLoaderStack", "FEEncLoraLoader", "FEExtraInfoAdd", "FEGenStringBCDocker", "FEGenStringGPT", + "FEGenStringNBus", "FEImageNoiseGenerate", "FEImagePadForOutpaint", "FEImagePadForOutpaintByImage", + "FEInterruptCondition", + "FELoadImageQQUrl", "FEOperatorIf", "FEPythonStrOp", "FERandomBool", @@ -7067,6 +24389,38 @@ "title_aux": "fexli-util-node-comfyui" } ], + "https://github.com/fexploit/ComfyUI-AutoLabel": [ + [ + "AutoLabel" + ], + { + "title_aux": "ComfyUI-AutoLabel" + } + ], + "https://github.com/fexploit/ComfyUI-AutoTrimBG": [ + [ + "RonLayers/TrimBg: RonLayersTrimBgUltraV2" + ], + { + "title_aux": "ComfyUI-AutoTrimBG" + } + ], + "https://github.com/fexploit/ComfyUI-Classifier": [ + [ + "ClassifierNode" + ], + { + "title_aux": "ComfyUI-Classifier" + } + ], + "https://github.com/fidecastro/comfyui-llamacpp-client": [ + [ + "LlamaCppClient" + ], + { + "title_aux": "comfyui-llamacpp-client" + } + ], "https://github.com/filipemeneses/comfy_pixelization": [ [ "Pixelization" @@ -7075,33 +24429,221 @@ "title_aux": "Pixelization" } ], + "https://github.com/filliptm/ComfyUI_FL-Trainer": [ + [ + "FL_ImageCaptionSaver", + "FL_KohyaSSAdvConfig", + "FL_KohyaSSDatasetConfig", + "FL_KohyaSSInitWorkspace", + "FL_KohyaSSTrain", + "FL_Kohya_EasyTrain", + "FL_LoadImagesFromDirectoryPath", + "FL_SliderLoraAdvConfig", + "FL_SliderLoraDatasetConfig", + "FL_SliderLoraInitWorkspace", + "FL_SliderLoraTrain" + ], + { + "title_aux": "ComfyUI_FL-Trainer" + } + ], + "https://github.com/filliptm/ComfyUI_Fill-ChatterBox": [ + [ + "FL_ChatterboxDialogTTS", + "FL_ChatterboxTTS", + "FL_ChatterboxVC" + ], + { + "title_aux": "ComfyUI_Fill-ChatterBox" + } + ], "https://github.com/filliptm/ComfyUI_Fill-Nodes": [ [ + "FL_API_Base64_ImageLoader", + "FL_API_ImageSaver", + "FL_AnimeLineExtractor", + "FL_ApplyMask", "FL_Ascii", - "FL_AudioConverter", - "FL_AudioFrameCalculator", - "FL_AudioPreview", + "FL_BatchAlign", + "FL_BlackFrameReject", + "FL_BulkPDFLoader", + "FL_BulletHellGame", + "FL_CaptionSaver_V2", + "FL_CaptionToCSV", + "FL_ClipScanner", "FL_CodeNode", + "FL_ColorPicker", + "FL_Dalle3", "FL_DirectoryCrawl", + "FL_Dither", + "FL_Fal_Kontext", + "FL_Fal_Pixverse", + "FL_Fal_Seedance_i2v", + "FL_Float", + "FL_FractalKSampler", + "FL_GPT_Image1", + "FL_GPT_Image1_ADV", + "FL_GPT_Text", + "FL_GPT_Vision", + "FL_GeminiImageEditor", + "FL_GeminiImageGenADV", + "FL_GeminiTextAPI", + "FL_GeminiVideoCaptioner", + "FL_Glitch", + "FL_GoogleCloudStorage", + "FL_GoogleDriveDownloader", + "FL_GoogleDriveImageDownloader", + "FL_GradGenerator", + "FL_HFDatasetDownloader", + "FL_HFHubModelUploader", + "FL_HF_Character", + "FL_HF_UploaderAbsolute", + "FL_HalftonePattern", + "FL_Hedra_API", + "FL_HexagonalPattern", + "FL_HunyuanDelight", + "FL_ImageAddNoise", + "FL_ImageAddToBatch", + "FL_ImageAdjuster", + "FL_ImageAspectCropper", + "FL_ImageBatch", + "FL_ImageBatchToGrid", + "FL_ImageBatchToImageList", + "FL_ImageBlank", + "FL_ImageCaptionLayout", + "FL_ImageCaptionLayoutPDF", "FL_ImageCaptionSaver", + "FL_ImageCollage", + "FL_ImageCrop", "FL_ImageDimensionDisplay", - "FL_ImageDurationSync", + "FL_ImageListToImageBatch", + "FL_ImageNotes", "FL_ImagePixelator", - "FL_ImageRandomizer" + "FL_ImageRandomizer", + "FL_ImageSelector", + "FL_ImageSlicer", + "FL_ImagesToPDF", + "FL_InfiniteZoom", + "FL_InpaintCrop", + "FL_Inpaint_Stitch", + "FL_JS", + "FL_KSamplerXYZPlot", + "FL_KsamplerBasic", + "FL_KsamplerPlus", + "FL_KsamplerPlusV2", + "FL_KsamplerSettings", + "FL_LoadImage", + "FL_MadLibGenerator", + "FL_Math", + "FL_MirrorAndAppendCaptions", + "FL_ModelInspector", + "FL_NFTGenerator", + "FL_NodeLoader", + "FL_NodePackLoader", + "FL_OllamaCaptioner", + "FL_PDFEncryptor", + "FL_PDFImageExtractor", + "FL_PDFLoader", + "FL_PDFMerger", + "FL_PDFSaver", + "FL_PDFTextExtractor", + "FL_PDFToImages", + "FL_Padding", + "FL_PaddingRemover", + "FL_PaperDrawn", + "FL_PasteByMask", + "FL_PasteOnCanvas", + "FL_PathTypeChecker", + "FL_PixVerseAPI", + "FL_PixelArtShader", + "FL_PixelSort", + "FL_ProResVideo", + "FL_PromptBasic", + "FL_PromptMulti", + "FL_PromptSelector", + "FL_RandomNumber", + "FL_RetroEffect", + "FL_Ripple", + "FL_RunwayAct2", + "FL_RunwayImageAPI", + "FL_SDUltimate_Slices", + "FL_SamplerStrings", + "FL_SaveAndDisplayImage", + "FL_SaveCSV", + "FL_SaveImages", + "FL_SaveWebM", + "FL_SaveWebPImage(SaveImage)", + "FL_SchedulerStrings", + "FL_SendToDiscordWebhook", + "FL_SeparateMaskComponents", + "FL_Shadertoy", + "FL_SimpleGPTVision", + "FL_Switch", + "FL_Switch_Big", + "FL_SystemCheck", + "FL_TetrisGame", + "FL_TextOverlayNode", + "FL_TextToPDF", + "FL_TimeLine", + "FL_UnloadAllModels", + "FL_UnloadModel", + "FL_UpscaleModel", + "FL_VideoBatchSplitter", + "FL_VideoCadence", + "FL_VideoCadenceCompile", + "FL_VideoCaptionSaver", + "FL_VideoCropMask", + "FL_VideoCrossfade", + "FL_VideoCut", + "FL_VideoRecompose", + "FL_VideoTrim", + "FL_WF_Agent", + "FL_WanFirstLastFrameToVideo", + "FL_WordFrequencyGraph", + "FL_ZipDirectory", + "FL_ZipSave", + "GradientImageGenerator", + "SaveWebPImage" ], { "title_aux": "ComfyUI_Fill-Nodes" } ], - "https://github.com/fitCorder/fcSuite/raw/main/fcSuite.py": [ + "https://github.com/flamacore/ComfyUI-YouTubeUploader": [ [ - "fcFloat", - "fcFloatMatic", - "fcHex", - "fcInteger" + "YouTubeAuthNode", + "YouTubeUploaderNode" ], { - "title_aux": "fcSuite" + "title_aux": "ComfyUI YouTube Uploader" + } + ], + "https://github.com/florestefano1975/ComfyUI-Advanced-Sequence-Seed": [ + [ + "AdvancedSequenceSeedNode" + ], + { + "title_aux": "Advanced Sequence Seed Generator" + } + ], + "https://github.com/florestefano1975/ComfyUI-CogVideoX": [ + [ + "CogVideoX Image-2-Video Extended", + "CogVideoX Save Video" + ], + { + "title_aux": "ComfyUI-CogVideoX" + } + ], + "https://github.com/florestefano1975/ComfyUI-HiDiffusion": [ + [ + "HiDiffusionSD15", + "HiDiffusionSD21", + "HiDiffusionSDXL", + "HiDiffusionSDXLTurbo" + ], + { + "title_aux": "ComfyUI HiDiffusion" } ], "https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite": [ @@ -7121,7 +24663,12 @@ ], "https://github.com/florestefano1975/comfyui-portrait-master": [ [ - "PortraitMaster" + "PortraitMaster", + "PortraitMasterBaseCharacter", + "PortraitMasterMakeup", + "PortraitMasterPromptStyler", + "PortraitMasterSkinDetails", + "PortraitMasterStylePose" ], { "title_aux": "comfyui-portrait-master" @@ -7176,6 +24723,30 @@ "title_aux": "ComfyUI-Flowty-TripoSR" } ], + "https://github.com/fluffydiveX/ComfyUI-hvBlockswap": [ + [ + "hvBlockSwap" + ], + { + "title_aux": "ComfyUI-hvBlockswap" + } + ], + "https://github.com/flybirdxx/ComfyUI-SDMatte": [ + [ + "SDMatteApply" + ], + { + "title_aux": "ComfyUI-SDMatte" + } + ], + "https://github.com/flycarl/ComfyUI-Pixelate": [ + [ + "ComfyUIPixelate" + ], + { + "title_aux": "ComfyUI-Pixelate" + } + ], "https://github.com/flyingshutter/As_ComfyUI_CustomNodes": [ [ "BatchIndex_AS", @@ -7205,6 +24776,52 @@ "title_aux": "As_ComfyUI_CustomNodes" } ], + "https://github.com/fmatray/ComfyUI_BattlemapGrid": [ + [ + "Battlemap Grid", + "Compass", + "Map Generator", + "Map Generator(Outdoors)" + ], + { + "title_aux": "ComfyUI_BattlemapGrid" + } + ], + "https://github.com/fofr/ComfyUI-HyperSDXL1StepUnetScheduler": [ + [ + "HyperSDXL1StepUnetScheduler" + ], + { + "title_aux": "ComfyUI-HyperSDXL1StepUnetScheduler (ByteDance)" + } + ], + "https://github.com/fofr/ComfyUI-Prompter-fofrAI": [ + [ + "List sampler \ud83e\udeb4", + "Prompt from template \ud83e\udeb4" + ], + { + "title_aux": "ComfyUI-Prompter-fofrAI" + } + ], + "https://github.com/fofr/comfyui-basic-auth": [ + [ + "BasicAuthSetup" + ], + { + "title_aux": "ComfyUI-Basic-Auth" + } + ], + "https://github.com/fofr/comfyui-fofr-toolkit": [ + [ + "Incrementer \ud83e\udeb4", + "Width and height for scaling image to ideal resolution \ud83e\udeb4", + "Width and height from aspect ratio \ud83e\udeb4" + ], + { + "title_aux": "comfyui-fofr-toolkit" + } + ], "https://github.com/forever22777/comfyui-self-guidance": [ [ "CLIPConditioning", @@ -7215,6 +24832,14 @@ "title_aux": "Self-Guidance nodes" } ], + "https://github.com/fotobudka-team/comfyui-ai-faces": [ + [ + "PhotoVerification" + ], + { + "title_aux": "ComfyUI AI Faces - Photo Verification Node" + } + ], "https://github.com/foxtrot-roger/comfyui-rf-nodes": [ [ "LogBool", @@ -7250,11 +24875,28 @@ "title_aux": "RF Nodes" } ], + "https://github.com/fpgaminer/joycaption_comfyui": [ + [ + "JJC_JoyCaption", + "JJC_JoyCaption_Custom" + ], + { + "title_aux": "JoyCaption Nodes" + } + ], + "https://github.com/fplu/comfyui_lama_with_refiner": [ + [ + "INPAINT_InpaintWithLaMaRefinerModel", + "INPAINT_LoadInpaintLaMaModel" + ], + { + "title_aux": "lama_with_refiner" + } + ], "https://github.com/frankchieng/ComfyUI_Aniportrait": [ [ "AniPortrait_Audio2Video", "AniPortrait_Audio_Path", - "AniPortrait_Generate_Ref_Pose", "AniPortrait_LoadVideoPath", "AniPortrait_Pose_Gen_Video", "AniPortrait_Ref_Image_Path", @@ -7266,12 +24908,241 @@ ], "https://github.com/frankchieng/ComfyUI_MagicClothing": [ [ - "MagicClothing_Generate" + "MagicClothing_Animatediff", + "MagicClothing_Generate", + "MagicClothing_Inpainting" ], { "title_aux": "ComfyUI_MagicClothing" } ], + "https://github.com/frankchieng/ComfyUI_llm_easyanimiate": [ + [], + { + "nodename_pattern": "^FrankChiengEasyAnimate", + "title_aux": "ComfyUI_llm_easyanimiate" + } + ], + "https://github.com/fredconex/ComfyUI-SongBloom": [ + [ + "SongBloomGenerate", + "SongBloomModelLoader" + ], + { + "title_aux": "SongBloom" + } + ], + "https://github.com/fredconex/ComfyUI-SoundFlow": [ + [ + "SoundFlow_Concatenator", + "SoundFlow_DuckCompressor", + "SoundFlow_Equalizer", + "SoundFlow_Fade", + "SoundFlow_GainPitchControl", + "SoundFlow_GetLength", + "SoundFlow_Mixer", + "SoundFlow_PreviewAudio", + "SoundFlow_SetLength", + "SoundFlow_SilenceTrimmer", + "SoundFlow_SimpleCompressor", + "SoundFlow_TrimAudio" + ], + { + "title_aux": "ComfyUI-SoundFlow" + } + ], + "https://github.com/fredconex/ComfyUI-SyncEdit": [ + [ + "SyncTextEditor" + ], + { + "title_aux": "Sync Edit" + } + ], + "https://github.com/fredhopp/comfyui-flipflopnodes": [ + [ + "FF Group Positioner", + "FF Load Image with Metadata", + "FF Text" + ], + { + "title_aux": "comfyui-flipflopnodes" + } + ], + "https://github.com/freelifehacker/ComfyUI-ImgMask2PNG": [ + [ + "ImageMask2PNG" + ], + { + "title_aux": "ComfyUI-ImgMask2PNG" + } + ], + "https://github.com/fsdymy1024/ComfyUI_fsdymy": [ + [ + "IPAdapterLayerWeight", + "Preview Image Without Metadata", + "PreviewImageWithoutMetadata", + "Save Image Without Metadata", + "SaveImageWithoutMetadata", + "ShowText", + "ZhiPuAiNode" + ], + { + "title_aux": "ComfyUI_fsdymy" + } + ], + "https://github.com/fssorc/ComfyUI_FFT": [ + [ + "FFTNode", + "FindFFTSpot", + "InvertFFTNode", + "InvertFFTWithMask" + ], + { + "title_aux": "ComfyUI_FFT" + } + ], + "https://github.com/fssorc/ComfyUI_FaceShaper": [ + [ + "FaceAlignmentCropper", + "FaceShaper", + "FaceShaperComposite", + "FaceShaperCropper", + "FaceShaperFaceMask", + "FaceShaperLoadInsightFaceCropper", + "FaceShaperLoadMediaPipeCropper", + "FaceShaperMatchV2", + "FaceShaperModels", + "FaceShaperShowLandMarks" + ], + { + "title_aux": "ComfyUI_FaceShaper" + } + ], + "https://github.com/fssorc/ComfyUI_RopeWrapper": [ + [ + "RopeVideoCombine", + "RopeWrapper_DetectNode", + "RopeWrapper_FaceRestore", + "RopeWrapper_LoadModels", + "RopeWrapper_LoadSwapInfo", + "RopeWrapper_OptionNode", + "RopeWrapper_SaveSwapInfo", + "RopeWrapper_SwapNode", + "RopeWrapper_SwapNodeTEST" + ], + { + "title_aux": "ComfyUI_RopeWrapper" + } + ], + "https://github.com/fssorc/ComfyUI_pose_inter": [ + [ + "GenTPose", + "PoseModify", + "Pose_Inter", + "Pose_Inter_V2" + ], + { + "title_aux": "ComfyUI_pose_inter" + } + ], + "https://github.com/fuselayer/comfyui-mosaic-blur": [ + [ + "ImageMosaic" + ], + { + "title_aux": "comfyui-mosaic-blur" + } + ], + "https://github.com/g0kuvonlange/ComfyUI-Load-From-URL": [ + [ + "Load LoRA From URL", + "Load LoRAs from JSON", + "Load Video From URL" + ], + { + "title_aux": "ComfyUI Load From URL" + } + ], + "https://github.com/gabe-init/ComfyUI-11labs": [ + [ + "ElevenLabsNode" + ], + { + "title_aux": "ComfyUI-11labs" + } + ], + "https://github.com/gabe-init/ComfyUI-Google-Image-Search": [ + [ + "GoogleImageSearchNode" + ], + { + "title_aux": "ComfyUI-Google-Image-Search" + } + ], + "https://github.com/gabe-init/ComfyUI-Openrouter_node": [ + [ + "OpenRouterNode" + ], + { + "title_aux": "ComfyUI OpenRouter Node" + } + ], + "https://github.com/gabe-init/ComfyUI-String-Similarity": [ + [ + "StringSimilarity" + ], + { + "title_aux": "ComfyUI-String-Similarity" + } + ], + "https://github.com/game4d/ComfyUI-BDsInfiniteYou": [ + [ + "InfiniteYou_Image", + "InfiniteYou_Load" + ], + { + "title_aux": "ComfyUI-BDsInfiniteYou" + } + ], + "https://github.com/gasparuff/CustomSelector": [ + [ + "CustomSelector" + ], + { + "title_aux": "comfyui-customselector" + } + ], + "https://github.com/gelasdev/ComfyUI-FLUX-BFL-API": [ + [ + "FluxConfig_BFL", + "FluxDeleteFinetune_BFL", + "FluxDevRedux_BFL", + "FluxDev_BFL", + "FluxFinetuneDetails_BFL", + "FluxFinetuneStatus_BFL", + "FluxFinetune_BFL", + "FluxKontextMax_BFL", + "FluxKontextPro_BFL", + "FluxMyFinetunes_BFL", + "FluxPro11Redux_BFL", + "FluxPro11UltraFinetune_BFL", + "FluxPro11UltraRedux_BFL", + "FluxPro11Ultra_BFL", + "FluxPro11_BFL", + "FluxProCannyFinetune_BFL", + "FluxProCanny_BFL", + "FluxProDepthFinetune_BFL", + "FluxProDepth_BFL", + "FluxProFillFinetune_BFL", + "FluxProFill_BFL", + "FluxProFinetune_BFL", + "FluxPro_BFL" + ], + { + "title_aux": "ComfyUI-FLUX-BFL-API" + } + ], "https://github.com/gemell1/ComfyUI_GMIC": [ [ "GmicCliWrapper", @@ -7281,61 +25152,35 @@ "title_aux": "ComfyUI_GMIC" } ], - "https://github.com/get-salt-AI/SaltAI": [ + "https://github.com/geocine/geocine-comfyui": [ [ - "LLMChat", - "LLMChatEngine", - "LLMChatMessageConcat", - "LLMChatMessages", - "LLMChatMessagesAdv", - "LLMComplete", - "LLMDirectoryReader", - "LLMHtmlComposer", - "LLMHtmlRepair", - "LLMJSONQueryEngine", - "LLMJsonComposer", - "LLMJsonRepair", - "LLMMarkdownComposer", - "LLMMarkdownRepair", - "LLMNotionReader", - "LLMPostProcessDocuments", - "LLMQueryEngine", - "LLMQueryEngineAdv", - "LLMRegexCreator", - "LLMRegexRepair", - "LLMRssReaderNode", - "LLMSemanticSplitterNodeParser", - "LLMSentenceSplitterNodeCreator", - "LLMServiceContextAdv", - "LLMServiceContextDefault", - "LLMSimpleWebPageReader", - "LLMSummaryIndex", - "LLMTrafilaturaWebReader", - "LLMTreeIndex", - "LLMVectorStoreIndex", - "LLMYamlComposer", - "LLMYamlRepair", - "OPAC", - "OPAC2Floats", - "OPACList2ExecList", - "OPACListVariance", - "OPACPerlinSettings", - "OPACTransformImages", - "OPCSLayerExtractor", - "OPCScheduler", - "OpenAIModel", - "ParallaxMotion", - "SAIPrimitiveConverter", - "SAIStringRegexSearchMatch", - "SAIStringRegexSearchReplace", - "SaltAIStableVideoDiffusion", - "SaltInfo", - "SaltInput", - "SaltOutput", - "ScheduledImageAdjust" + "Image Scale", + "Image Selector", + "LoRA Name List", + "Prompt Text", + "Seed to Noise", + "ShowTextNode", + "Text Replace" ], { - "title_aux": "SaltAI-Open-Resources" + "title_aux": "geocine-comfyui" + } + ], + "https://github.com/georgitsenov/ComfyUI-R2": [ + [ + "S3SaveNode" + ], + { + "title_aux": "ComfyUI S3 Save Node" + } + ], + "https://github.com/ggarra13/ComfyUI-mrv2": [ + [ + "mrv2AnnotationsImageNode", + "mrv2SaveEXRImage" + ], + { + "title_aux": "ComfyUI-mrv2" } ], "https://github.com/giriss/comfy-image-saver": [ @@ -7354,13 +25199,122 @@ "title_aux": "Save Image with Generation Metadata" } ], + "https://github.com/gisu/comfyui-foxpack": [ + [ + "Add_To_List", + "BaseSamplerSetup", + "Big_Prompter", + "Change_Entries_In_A_List", + "Change_Entry_From_List", + "CheckpointMetaExtractor", + "CheckpointSelector", + "Complete_Setup", + "Convert_Into", + "Negate_Boolean", + "Optional_Value_Override", + "OverrideSamplerSetup", + "Override_Value_If_Unset", + "Pick_Value_From_Dict", + "Pick_Values_From_List", + "Refine_Prompt", + "Refine_Setup", + "Remap_Values", + "Remove_Values_From_List", + "Select_By_Index", + "Select_Line_By_Index", + "Select_String_By_Index", + "SetupSelector", + "Show_Type", + "Split_Entry_In_2Chunks", + "Split_Entry_In_4Chunks", + "Split_Entry_In_6Chunks", + "Split_Entry_In_8Chunks", + "Step_Denoise", + "UniversalLatentHelper", + "Universal_VAE_Loader" + ], + { + "title_aux": "foxpack" + } + ], + "https://github.com/gitadmini/comfyui_extractstoryboards": [ + [ + "Example", + "ExtractStoryboards_xuhuan1024", + "IntBatchSize_xuhuan1024", + "IntBatch_xuhuan1024" + ], + { + "title_aux": "ExtractStoryboards" + } + ], + "https://github.com/githubYiheng/ComfyUI_Change_IMAGE_BOREDER": [ + [ + "ChangeImageBorder" + ], + { + "title_aux": "ComfyUI_Change_IMAGE_BOREDER" + } + ], + "https://github.com/githubYiheng/ComfyUI_GetFileNameFromURL": [ + [ + "GetFileNameFromURL" + ], + { + "title_aux": "ComfyUI_GetFileNameFromURL" + } + ], + "https://github.com/githubYiheng/comfyui_kmeans_filter": [ + [ + "ImageKmeansFilter" + ], + { + "title_aux": "comfyui_kmeans_filter" + } + ], + "https://github.com/githubYiheng/comfyui_meanshift_filter": [ + [ + "ImageMeanshiftFilter" + ], + { + "title_aux": "comfyui_meanshift_filter" + } + ], + "https://github.com/githubYiheng/comfyui_private_postprocessor": [ + [ + "ImageCPostprocessor", + "PrivateImageMask" + ], + { + "title_aux": "comfyui_private_postprocessor" + } + ], "https://github.com/glibsonoran/Plush-for-ComfyUI": [ [ + "AI Chooser", + "Add Parameters", "AdvPromptEnhancer", + "Custom API Key", "DalleImage", "Enhancer", + "GPT Image", + "Gemini Image", + "Image Mixer", + "Imagen Image", "ImgTextSwitch", + "Load Remote Models", + "LoadText|plush", + "Model-CLIP Output Switch", + "ParseJSON", "Plush-Exif Wrangler", + "Random Image Output", + "Random Mixer", + "Random Output", + "Remove Text", + "SaveText|plush", + "Tagger", + "Text (Any)", + "Type Converter", "mulTextSwitch" ], { @@ -7369,16 +25323,35 @@ ], "https://github.com/glifxyz/ComfyUI-GlifNodes": [ [ + "FilmGrain", + "FluxReduxFloatRamp", "GlifConsistencyDecoder", "GlifPatchConsistencyDecoderTiled", + "GlifVariable", + "HFHubEmbeddingLoader", "HFHubLoraLoader", + "ImagePaddingAdvanced", "ImageToMultipleOf", + "LoraLoaderFromURL", "SDXLAspectRatio" ], { "title_aux": "ComfyUI-GlifNodes" } ], + "https://github.com/glitchinthemetrix16/ComfyUI-Roop": [ + [ + "RoopBatchFaceSwap", + "RoopFaceSwap", + "RoopFaceSwapVideo", + "RoopFaceSwapWithEnhancer", + "RoopSendWebhookFile", + "RoopSendWebhookImage" + ], + { + "title_aux": "ComfyUI Roop Custom Nodes" + } + ], "https://github.com/glowcone/comfyui-base64-to-image": [ [ "LoadImageFromBase64" @@ -7387,6 +25360,85 @@ "title_aux": "Load Image From Base64 URI" } ], + "https://github.com/glowcone/comfyui-string-converter": [ + [ + "StringToFloat", + "StringToInt" + ], + { + "title_aux": "String Converter" + } + ], + "https://github.com/gmorks/ComfyUI-Animagine-Prompt": [ + [ + "AnimaginePrompt", + "MultiWildcardLoader", + "MultilineTextInput", + "TextFileLoader" + ], + { + "title_aux": "ComfyUI-Animagine-Prompt" + } + ], + "https://github.com/gmorks/ComfyUI-SendToDiscord": [ + [ + "PreviewImageWithDiscord" + ], + { + "title_aux": "ComfyUI-SendToDiscord" + } + ], + "https://github.com/goburiin/nsfwrecog-comfyui": [ + [ + "NSFWDetectorNode" + ], + { + "title_aux": "nsfwrecog-comfyui" + } + ], + "https://github.com/godmt/ComfyUI-IP-Composer": [ + [ + "IPCompConceptMerge", + "IPCompConceptSubspace", + "IPCompLoadOpenCLIP", + "IPLoadConceptSubspace", + "IPSaveConceptSubspace" + ], + { + "title_aux": "ComfyUI-IP-Composer" + } + ], + "https://github.com/godmt/ComfyUI-List-Utils": [ + [ + "GODMT_AnyCast", + "GODMT_AnyToDict", + "GODMT_BatchGetByIndex", + "GODMT_BatchItemCast", + "GODMT_BatchSlice", + "GODMT_BatchToList", + "GODMT_CreateArange", + "GODMT_CreateBatch", + "GODMT_CreateLinspace", + "GODMT_CreateList", + "GODMT_CreateRange", + "GODMT_Exec", + "GODMT_GetLength", + "GODMT_GetShape", + "GODMT_GetWidgetsValues", + "GODMT_ListDir", + "GODMT_ListGetByIndex", + "GODMT_ListSlice", + "GODMT_ListToBatch", + "GODMT_MergeBatch", + "GODMT_MergeList", + "GODMT_Pack", + "GODMT_SplitString", + "GODMT_Unpack" + ], + { + "title_aux": "ComfyUI-List-Utils" + } + ], "https://github.com/godspede/ComfyUI_Substring": [ [ "SubstringTheory" @@ -7419,29 +25471,83 @@ "title_aux": "ComfyUI-Texture-Simple" } ], + "https://github.com/gokayfem/ComfyUI-fal-API": [ + [ + "CombinedVideoGeneration_fal", + "FluxDev_fal", + "FluxGeneral_fal", + "FluxLoraTrainer_fal", + "FluxLora_fal", + "FluxPro11_fal", + "FluxProKontextMulti_fal", + "FluxProKontextTextToImage_fal", + "FluxProKontext_fal", + "FluxPro_fal", + "FluxSchnell_fal", + "FluxUltra_fal", + "Hidreamfull_fal", + "HunyuanVideoLoraTrainer_fal", + "Ideogramv3_fal", + "Imagen4Preview_fal", + "KlingMaster_fal", + "KlingPro10_fal", + "KlingPro16_fal", + "Kling_fal", + "LLM_fal", + "LoadVideoURL", + "LtxVideoTrainer_fal", + "LumaDreamMachine_fal", + "MiniMaxSubjectReference_fal", + "MiniMaxTextToVideo_fal", + "MiniMax_fal", + "Recraft_fal", + "RunwayGen3_fal", + "Sana_fal", + "SeedEditV3_fal", + "SeedanceImageToVideo_fal", + "SeedanceTextToVideo_fal", + "Upscaler_fal", + "VLM_fal", + "Veo2ImageToVideo_fal", + "Veo3_fal", + "VideoUpscaler_fal", + "WanLoraTrainer_fal", + "WanPro_fal" + ], + { + "title_aux": "ComfyUI-fal-API" + } + ], "https://github.com/gokayfem/ComfyUI_VLM_nodes": [ [ "AudioLDM2Node", "ChatMusician", "CreativeArtPromptGenerator", - "Internlm", "Joytag", "JsonToText", "KeywordExtraction", "Kosmos2model", "LLMLoader", + "LLMOptionalMemoryFreeAdvanced", + "LLMOptionalMemoryFreeSimple", "LLMPromptGenerator", "LLMSampler", "LLava Loader Simple", + "LLavaOptionalMemoryFreeAdvanced", + "LLavaOptionalMemoryFreeSimple", "LLavaPromptGenerator", "LLavaSamplerAdvanced", "LLavaSamplerSimple", "LlavaClipLoader", "MCLLaVAModel", + "MiniCPMNode", + "MolmoNode", "MoonDream", "Moondream2model", + "Paligemma", "PlayMusic", "PromptGenerateAPI", + "Qwen2VLNode", "SaveAudioNode", "SimpleText", "StructuredOutput", @@ -7453,6 +25559,353 @@ "title_aux": "VLM_nodes" } ], + "https://github.com/goldwins520/Comfyui_saveimg2webdav": [ + [ + "SaveFileToWebDAV", + "SaveImageToWebDAV" + ], + { + "title_aux": "Save Image To Webdav" + } + ], + "https://github.com/gonzalu/ComfyUI_YFG_Comical": [ + [ + "Image10Switcher_node", + "Image15Switcher_node", + "Image20Switcher_node", + "Image3Switcher_node", + "Image5Switcher_node", + "MonoClip_node", + "PixelArt_node", + "RandomOrgTrueRandomNumber_node", + "VAEDecodePreview_node", + "image2contrastMask_node", + "image2imbgg_node", + "image_halftone", + "image_histograms_node", + "image_histograms_node_compact", + "images_side_by_side", + "imgbbLoader_node", + "smartCheckpointLoader_node", + "storeURL_node", + "textMaskOverlay_node" + ], + { + "author": "Manny Gonzalez", + "description": "Utility custom nodes for special effects, image manipulation and quality of life tools.", + "nickname": "\ud83d\udc2f YFG Comical Nodes", + "title": "\ud83d\udc2f YFG Comical Nodes", + "title_aux": "\ud83d\ude38 YFG Comical Nodes" + } + ], + "https://github.com/gorillaframeai/GF_nodes": [ + [ + "GFrbmg2", + "GFrbmg2Plus" + ], + { + "title_aux": "GFrbmg2" + } + ], + "https://github.com/gorillaframeai/GF_translate": [ + [ + "GFDeepTranslate", + "GFJsonTranslate" + ], + { + "title_aux": "GF_translate" + } + ], + "https://github.com/greengerong/ComfyUI-JanusPro-PL": [ + [ + "JanusProImageGenerator", + "JanusProImageUnderstanding", + "JanusProModelLoader" + ], + { + "title_aux": "Janus-Pro ComfyUI Plugin" + } + ], + "https://github.com/gremlation/ComfyUI-ImageLabel": [ + [ + "gremlation:ComfyUI-ImageLabel:ImageLabel" + ], + { + "title_aux": "ComfyUI-ImageLabel" + } + ], + "https://github.com/gremlation/ComfyUI-JMESPath": [ + [ + "gremlation:ComfyUI-JMESPath" + ], + { + "title_aux": "ComfyUI-JMESPath" + } + ], + "https://github.com/gremlation/ComfyUI-ViewData": [ + [ + "gremlation:ComfyUI-ViewData:ViewData" + ], + { + "title_aux": "ComfyUI-ViewData" + } + ], + "https://github.com/gremlation/ComfyUI-jq": [ + [ + "gremlation:ComfyUI-jq" + ], + { + "title_aux": "ComfyUI-jq" + } + ], + "https://github.com/griptape-ai/ComfyUI-Griptape": [ + [ + "Griptape Agent Config: Amazon Bedrock Drivers", + "Griptape Agent Config: Amazon Bedrock [DEPRECATED]", + "Griptape Agent Config: Anthropic Drivers", + "Griptape Agent Config: Anthropic [DEPRECATED]", + "Griptape Agent Config: Azure OpenAI Drivers", + "Griptape Agent Config: Azure OpenAI [DEPRECATED]", + "Griptape Agent Config: Cohere Drivers", + "Griptape Agent Config: Custom Structure", + "Griptape Agent Config: Environment Variables", + "Griptape Agent Config: Expand", + "Griptape Agent Config: Google Drivers", + "Griptape Agent Config: Google [DEPRECATED]", + "Griptape Agent Config: Griptape Cloud", + "Griptape Agent Config: Grok Drivers", + "Griptape Agent Config: Groq Drivers", + "Griptape Agent Config: HuggingFace Drivers", + "Griptape Agent Config: HuggingFace [DEPRECATED]", + "Griptape Agent Config: LM Studio Drivers", + "Griptape Agent Config: LM Studio [DEPRECATED]", + "Griptape Agent Config: Ollama Drivers", + "Griptape Agent Config: Ollama [DEPRECATED]", + "Griptape Agent Config: OpenAI Compatible Drivers", + "Griptape Agent Config: OpenAI Compatible [DEPRECATED]", + "Griptape Agent Config: OpenAI Drivers", + "Griptape Agent Config: OpenAI [DEPRECATED]", + "Griptape Audio Transcription Driver: Groq", + "Griptape Audio Transcription Driver: OpenAI", + "Griptape Code: Run Griptape Cloud Structure", + "Griptape Code: Run Python [DEPRECATED]", + "Griptape Combine: Merge Dictionary", + "Griptape Combine: Merge Inputs", + "Griptape Combine: Merge Texts", + "Griptape Combine: RAG Module List", + "Griptape Combine: Rules List", + "Griptape Combine: String List", + "Griptape Combine: Tool List", + "Griptape Config: Environment Variables", + "Griptape Convert: Agent to Tool", + "Griptape Convert: Text to CLIP Encode", + "Griptape Convert: Text to Combo", + "Griptape Create: Agent", + "Griptape Create: Agent from Config", + "Griptape Create: CLIP Text Encode", + "Griptape Create: Image Inpainting Variation", + "Griptape Create: Image Variation", + "Griptape Create: Image from Text", + "Griptape Create: Key Value Pair", + "Griptape Create: Rules", + "Griptape Create: Text", + "Griptape Display: Artifact", + "Griptape Display: Data as Text", + "Griptape Display: Dictionary", + "Griptape Display: Image", + "Griptape Display: Text", + "Griptape Display: Text as Markdown", + "Griptape Driver: Amazon Bedrock Stable Diffusion", + "Griptape Driver: Amazon Bedrock Titan", + "Griptape Driver: Azure OpenAI Image Generation", + "Griptape Driver: Black Forest Labs Image Generation", + "Griptape Driver: Leonardo.AI", + "Griptape Driver: OpenAI Compatible Image Generation", + "Griptape Driver: OpenAI Image Generation", + "Griptape Embedding Driver: Amazon Bedrock Titan", + "Griptape Embedding Driver: Amazon SageMaker Jumpstart", + "Griptape Embedding Driver: Azure OpenAI", + "Griptape Embedding Driver: Cohere", + "Griptape Embedding Driver: Google", + "Griptape Embedding Driver: HuggingFace", + "Griptape Embedding Driver: LM Studio", + "Griptape Embedding Driver: Ollama", + "Griptape Embedding Driver: OpenAI", + "Griptape Embedding Driver: OpenAI Compatible", + "Griptape Embedding Driver: Voyage AI", + "Griptape End Workflow", + "Griptape Expand: Agent Nodes", + "Griptape Load: Audio", + "Griptape Load: Image From URL", + "Griptape Load: Text", + "Griptape Prompt Driver: Amazon Bedrock", + "Griptape Prompt Driver: Amazon SageMaker Jumpstart", + "Griptape Prompt Driver: Anthropic", + "Griptape Prompt Driver: Azure OpenAI", + "Griptape Prompt Driver: Cohere", + "Griptape Prompt Driver: Google", + "Griptape Prompt Driver: Griptape Cloud", + "Griptape Prompt Driver: Grok", + "Griptape Prompt Driver: Groq", + "Griptape Prompt Driver: HuggingFace", + "Griptape Prompt Driver: LM Studio", + "Griptape Prompt Driver: Ollama", + "Griptape Prompt Driver: OpenAI", + "Griptape Prompt Driver: OpenAI Compatible", + "Griptape RAG Query: Translate Module", + "Griptape RAG Rerank: Text Chunks Module", + "Griptape RAG Response: Footnote Prompt Module", + "Griptape RAG Response: Prompt Module", + "Griptape RAG Response: Text Chunks Module", + "Griptape RAG Retrieve: Text Loader Module", + "Griptape RAG Retrieve: Vector Store Module", + "Griptape RAG: Engine", + "Griptape Replace: Rulesets on Agent", + "Griptape Replace: Tools on Agent", + "Griptape Rerank Driver: Cohere", + "Griptape Rerank Driver: Local", + "Griptape Retrieve: Cloud Ruleset", + "Griptape Run: Agent", + "Griptape Run: Audio Transcription", + "Griptape Run: Cloud Assistant", + "Griptape Run: Image Description", + "Griptape Run: Parallel Image Description", + "Griptape Run: Parallel Prompt Task", + "Griptape Run: Prompt Task", + "Griptape Run: Task", + "Griptape Run: Text Extraction", + "Griptape Run: Text Summary", + "Griptape Run: Text to Speech", + "Griptape Run: Tool Task", + "Griptape Run: Toolkit Task", + "Griptape Save: Text", + "Griptape Set: Default Agent", + "Griptape Start Workflow", + "Griptape Text To Speech Driver: ElevenLabs", + "Griptape Text To Speech Driver: OpenAI", + "Griptape Tool: Audio Transcription", + "Griptape Tool: Calculator", + "Griptape Tool: DateTime", + "Griptape Tool: Extraction", + "Griptape Tool: FileManager", + "Griptape Tool: Griptape Cloud KnowledgeBase", + "Griptape Tool: Prompt Summary", + "Griptape Tool: Query", + "Griptape Tool: RAG", + "Griptape Tool: Text to Speech", + "Griptape Tool: VectorStore", + "Griptape Tool: WebScraper", + "Griptape Tool: WebSearch", + "Griptape Util: Create Agent Modelfile", + "Griptape Util: Create Model from Modelfile", + "Griptape Util: Remove Ollama Model", + "Griptape Util: Switch Node", + "Griptape Vector Store Driver: Amazon OpenSearch", + "Griptape Vector Store Driver: Azure MongoDB", + "Griptape Vector Store Driver: Griptape Cloud", + "Griptape Vector Store Driver: Local", + "Griptape Vector Store Driver: Marqo", + "Griptape Vector Store Driver: MongoDB Atlas", + "Griptape Vector Store Driver: PGVector", + "Griptape Vector Store Driver: Pinecone", + "Griptape Vector Store Driver: Qdrant", + "Griptape Vector Store Driver: Redis", + "Griptape Vector Store: Add Text", + "Griptape Vector Store: Query", + "Griptape WebSearch Driver: DuckDuckGo", + "Griptape WebSearch Driver: Exa", + "Griptape WebSearch Driver: Google", + "Griptape WebSearch Driver: Serper", + "Griptape WebSearch Driver: Tavily" + ], + { + "author": "Jason Schleifer", + "description": "This extension offers various nodes that allow you to work with LLMs using the Griptape Python Framework (https://griptape.ai)", + "nickname": "ComfyUI-Griptape", + "title": "ComfyUI Griptape Nodes", + "title_aux": "ComfyUI Griptape Nodes" + } + ], + "https://github.com/grmchn/ComfyUI-ProportionChanger": [ + [ + "PoseJSONToPoseKeypoint", + "PoseKeypointPreview", + "ProportionChangerDWPoseDetector", + "ProportionChangerDWPoseRender", + "ProportionChangerInterpolator", + "ProportionChangerKeypointDenoiser", + "ProportionChangerKeypointDenoiserAdvanced", + "ProportionChangerParams", + "ProportionChangerReference" + ], + { + "title_aux": "ComfyUI Utilitools Nodes" + } + ], + "https://github.com/grovergol/comfyui-grover-nodes": [ + [ + "OpenPathNode" + ], + { + "title_aux": "ComfyUI Grover Nodes" + } + ], + "https://github.com/gseth/ControlAltAI-Nodes": [ + [ + "BooleanBasic", + "BooleanReverse", + "ChooseUpscaleModel", + "FluxAttentionCleanup", + "FluxAttentionControl", + "FluxControlNetApply", + "FluxResolutionNode", + "FluxSampler", + "FluxUnionControlNetApply", + "GetImageSizeRatio", + "HiDreamResolutionNode", + "IntegerSettings", + "IntegerSettingsAdvanced", + "NoisePlusBlend", + "PerturbationTexture", + "RegionMaskConditioning", + "RegionMaskGenerator", + "RegionMaskProcessor", + "RegionMaskValidator", + "RegionOverlayVisualizer", + "TextBridge", + "ThreeWaySwitch", + "TwoWaySwitch" + ], + { + "title_aux": "ControlAltAI Nodes" + } + ], + "https://github.com/gsusgg/ComfyUI_CozyGen": [ + [ + "CozyGenDynamicInput", + "CozyGenOutput" + ], + { + "title_aux": "ComfyUI-CozyGen" + } + ], + "https://github.com/gt732/ComfyUI-DreamWaltz-G": [ + [ + "DreamWaltzGStageOneTrainer", + "DreamWaltzGStageTwoTrainer" + ], + { + "title_aux": "ComfyUI-DreamWaltz-G" + } + ], + "https://github.com/guerreiro/comfyg-switch": [ + [ + "ComfygSwitch" + ], + { + "title_aux": "Comfyg Switch" + } + ], "https://github.com/guill/abracadabra-comfyui": [ [ "AbracadabraNode", @@ -7462,13 +25915,25 @@ "title_aux": "abracadabra-comfyui" } ], - "https://github.com/guoyk93/yk-node-suite-comfyui": [ + "https://github.com/guyaton/guy-nodes-comfyui": [ [ - "YKImagePadForOutpaint", - "YKMaskToImage" + "GuyRecommendedLatentResCalc" ], { - "title_aux": "y.k.'s ComfyUI node suite" + "title_aux": "guy-nodes-comfyui" + } + ], + "https://github.com/gvfarns/comfyui_gvf": [ + [ + "CheckpointLoaderWithName", + "CropToAspectRatio", + "CropToAspectRatioMinMax", + "IfElseFloat", + "IfElseInt", + "StringContains" + ], + { + "title_aux": "comfyui_gvf" } ], "https://github.com/hackkhai/ComfyUI-Image-Matting": [ @@ -7481,32 +25946,83 @@ "title_aux": "ComfyUI-Image-Matting" } ], - "https://github.com/hay86/ComfyUI_AceNodes": [ + "https://github.com/hanoixan/ComfyUI-DataBeast": [ [ - "ACE_AudioLoad", - "ACE_AudioPlay", - "ACE_AudioSave", - "ACE_Float", - "ACE_ImageColorFix", - "ACE_ImageConstrain", - "ACE_ImageQA", - "ACE_ImageRemoveBackground", - "ACE_Integer", - "ACE_Seed", - "ACE_Text", - "ACE_TextConcatenate", - "ACE_TextGoogleTranslate", - "ACE_TextInputSwitch2Way", - "ACE_TextInputSwitch4Way", - "ACE_TextInputSwitch8Way", - "ACE_TextList", - "ACE_TextPreview", - "ACE_TextSelector", - "ACE_TextToResolution", - "ACE_TextTranslate" + "DBConvertToBoolean //DataBeast", + "DBConvertToFloat //DataBeast", + "DBConvertToInt //DataBeast", + "DBConvertToString //DataBeast", + "DBFloatExpression //DataBeast", + "DBGetBatchList //DataBeast", + "DBGetItem //DataBeast", + "DBLoadData //DataBeast", + "DBStringExpression //DataBeast" ], { - "title_aux": "ComfyUI AceNodes" + "author": "hanoixan", + "description": "This extension provides nodes for controlling data-driven processing in Comfy-UI", + "nickname": "DataBeast", + "title": "DataBeast", + "title_aux": "ComfyUI DataBeast" + } + ], + "https://github.com/hao-ai-lab/FastVideo": [ + [ + "DITConfig", + "InferenceArgs", + "LoadImagePath", + "TextEncoderConfig", + "VAEConfig", + "VideoGenerator" + ], + { + "title_aux": "ComfyUI-FastVideo" + } + ], + "https://github.com/haohaocreates/ComfyUI-HH-Image-Selector": [ + [ + "Image Selector" + ], + { + "title_aux": "ComfyUI-HH-Image-Selector" + } + ], + "https://github.com/hassan-sd/comfyui-image-prompt-loader": [ + [ + "ImagePromptLoader", + "apt", + "author", + "category", + "description", + "files", + "install_type", + "js_path", + "license", + "name", + "nodename_pattern", + "pip", + "preemptions", + "reference", + "repository", + "tags", + "title_aux", + "version" + ], + { + "title_aux": "ComfyUI Image & Prompt Loader" + } + ], + "https://github.com/havvk/ComfyUI_AIIA": [ + [ + "AIIA_E2E_Speaker_Diarization", + "AIIA_FloatProcess_InMemory", + "AIIA_FloatProcess_ToDisk", + "AIIA_GenerateSpeakerSegments", + "AIIA_Utils_Image_Concanate", + "AIIA_VideoCombine" + ], + { + "title_aux": "ComfyUI_AIIA" } ], "https://github.com/hay86/ComfyUI_DDColor": [ @@ -7525,6 +26041,22 @@ "title_aux": "ComfyUI Dreamtalk" } ], + "https://github.com/hay86/ComfyUI_Hallo": [ + [ + "D_HalloNode" + ], + { + "title_aux": "ComfyUI Hallo" + } + ], + "https://github.com/hay86/ComfyUI_LatentSync": [ + [ + "D_LatentSyncNode" + ], + { + "title_aux": "ComfyUI LatentSync" + } + ], "https://github.com/hay86/ComfyUI_MiniCPM-V": [ [ "D_MiniCPM_VQA" @@ -7536,37 +26068,362 @@ "https://github.com/hay86/ComfyUI_OpenVoice": [ [ "D_OpenVoice_STS", - "D_OpenVoice_TTS" + "D_OpenVoice_TTS", + "D_OpenVoice_TTS_V2" ], { "title_aux": "ComfyUI OpenVoice" } ], + "https://github.com/hayd-zju/ICEdit-ComfyUI-official": [ + [ + "SaveImageWebsocket" + ], + { + "title_aux": "ICEdit-ComfyUI-official" + } + ], + "https://github.com/hayde0096/Comfyui-EasySettingpipes": [ + [ + "ConvertAny", + "SamplerSetup", + "SamplerSetupUnpack" + ], + { + "title_aux": "EasySettingpipes" + } + ], + "https://github.com/hben35096/ComfyUI-ReplenishNodes": [ + [ + "Batch Image Blend", + "FLOAT Output", + "Fill Alpha", + "Get Batch Count", + "Image Align", + "Image Blend BG", + "Integer Output", + "Load CLIP Name", + "Load Ckpt Name", + "Load Lora Name", + "Load Sampler Name", + "Load Scheduler Name", + "Load UNET Name", + "Mask Levels Adjust", + "Multi Line Text", + "Multiple Image Blend", + "Multiple Image Blend 2", + "Preview Image-JPEG", + "Reference Resize", + "Seed Output", + "To JPEG", + "To RGB" + ], + { + "title_aux": "ComfyUI-ReplenishNodes" + } + ], + "https://github.com/heheok/comfyui_wan2.1_vace_infinite_helpers": [ + [ + "CyclicCharacterAndBackgroundPrompt", + "LatestVideoFromFolder", + "PrepareControlVideo" + ], + { + "title_aux": "comfyui_wan2.1_vace_infinite_helpers" + } + ], + "https://github.com/hekmon/comfyui-checkpoint-extract": [ + [ + "CLIPModelSaver", + "VAEModelSaver" + ], + { + "title_aux": "comfyui-checkpoint-extract" + } + ], + "https://github.com/hekmon/comfyui-openai-api": [ + [ + "OAIAPIChatCompletion", + "OAIAPIClient", + "OAIAPIDebug", + "OAIAPIDeveloperRole", + "OAIAPIExtraBody", + "OAIAPIFrequencyPenalty", + "OAIAPIMaxTokens", + "OAIAPIPresencePenalty", + "OAIAPISeed", + "OAIAPITemperature", + "OAIAPITopP" + ], + { + "title_aux": "ComfyUI OpenAI API" + } + ], "https://github.com/heshengtao/comfyui_LLM_party": [ [ + "About_us", + "AmapRegeoTool", + "AmapWeatherTool", + "Browser_display", + "CLIPTextEncode_party", + "Combine_Videos_party", + "Dingding", + "Dingding_tool", + "EasyOCR_advance", + "EasyOCR_choose", + "FeishuDownloadAudio", + "FeishuDownloadImage", + "FeishuGetHistory", + "FeishuSendMsg", + "FileOnlineDelete_gitee", + "FileOnlineStorage_gitee", + "FilePathExists", + "FolderCleaner", + "GGUFLoader", + "GeocodeTool", + "Image2Video_party", + "Images2Image", + "KG_csv_toolkit_developer", + "KG_csv_toolkit_user", + "KG_json_toolkit_developer", + "KG_json_toolkit_user", + "KG_neo_toolkit_developer", + "KG_neo_toolkit_user", + "KSampler_party", "LLM", + "LLM_api_loader", "LLM_local", + "LLM_local_loader", + "LLavaLoader", + "LorapathLoader", + "Lorebook", + "Mcp_tool", + "RSS_loader", + "RSS_tool", + "SpeedChange", + "URL2IMG", + "VAEDecode_party", + "accuweather_tool", + "advance_ebd_tool", + "aisuite_loader", + "any2str", + "any_switcher", + "api_function", + "api_tool", + "arxiv_tool", + "bing_loader", + "bing_tool", + "bool_logic", + "browser_use_tool", + "check_text", "check_web_tool", "classify_function", + "classify_function_plus", "classify_persona", + "classify_persona_plus", + "clear_file", + "clear_model", + "custom_persona", + "custom_string_format", + "dall_e_tool", + "discord_bot", + "discord_file_monitor", + "discord_send", + "duckduckgo_loader", + "duckduckgo_tool", + "easy_GGUFLoader", + "easy_LLM_api_loader", + "easy_LLM_local_loader", + "easy_LLavaLoader", + "easy_load_llm_lora", + "easy_vlmLoader", "ebd_tool", + "embeddings_function", + "end_anything", "end_dialog", + "end_workflow", + "extra_parameters", + "feishu", + "feishu_tool", "file_combine", "file_combine_plus", + "file_path_iterator", + "files_read_tool", + "fish_tts", + "fish_whisper", + "flux_persona", + "genai_api_loader", + "get_string", + "github_tool", + "google_loader", "google_tool", + "got_ocr", + "gpt_sovits", + "graph_md_to_html", + "html2img_function", + "ic_lora_persona", + "image_iterator", + "img2path", + "img_hosting", + "interpreter_function", "interpreter_tool", + "interrupt_loop", + "json2text", + "json_extractor", + "json_get_value", + "json_iterator", + "json_parser", + "json_writing", + "keyword_tool", + "list_append", + "list_append_plus", + "list_extend", + "list_extend_plus", + "listen_audio", + "load_SQL_memo", + "load_bool", + "load_ebd", + "load_excel", "load_file", + "load_file_folder", + "load_float", + "load_img_path", + "load_int", + "load_keyword", + "load_llm_lora", + "load_memo", + "load_name", + "load_openai_ebd", "load_persona", + "load_redis_memo", + "load_url", + "load_wikipedia", + "md_to_excel", + "md_to_html", + "mini_error_correction", + "mini_flux_prompt", + "mini_flux_tag", + "mini_intent_recognition", + "mini_ocr", + "mini_party", + "mini_sd_prompt", + "mini_sd_tag", + "mini_story", + "mini_summary", + "mini_translate", + "none2false", + "omost_decode", + "omost_json2py", + "omost_setting", + "open_url_function", + "open_url_tool", + "openai_dall_e", + "openai_ebd_tool", + "openai_tts", + "openai_whisper", + "parameter_combine", + "parameter_combine_plus", + "parameter_function", + "path2img_tool", + "red_book_text_persona", + "replace_string", + "save_SQL_memo", + "save_ebd_database", + "save_memo", + "save_openai_ebd", + "save_redis_memo", + "savepersona", + "searxng_tool", + "send_to_wechat_official", + "show_text_party", + "sql_tool", + "srt2txt", + "start_anything", "start_dialog", + "start_workflow", + "story_json_tool", + "str2float", + "str2int", + "string_combine", + "string_combine_plus", + "string_logic", + "substring", + "svg2html", + "svg2img_function", + "text2json", + "text2parameters", + "text_iterator", + "text_writing", + "time_sleep", "time_tool", "tool_combine", "tool_combine_plus", - "weather_tool" + "translate_persona", + "txt2srt", + "url2img_tool", + "vlmLoader", + "weekday_tool", + "whisper_local", + "wikipedia_tool", + "work_wechat", + "work_wechat_tool", + "workflow_tool", + "workflow_transfer", + "workflow_transfer_v2" ], { "title_aux": "comfyui_LLM_party" } ], + "https://github.com/heshengtao/comfyui_LLM_schools": [ + [ + "CausalLM_trainer", + "IA3_Arguments", + "LLM_Arguments", + "Lora_or_adapter_Arguments", + "P_or_Prompt_Arguments", + "Prefix_Arguments", + "download_dataset", + "get_dataset_name", + "split_dataset" + ], + { + "title_aux": "comfyui_LLM_schools" + } + ], + "https://github.com/hexxacubic/ComfyUI-Prompt_Library": [ + [ + "Double_Prompt_Encode", + "Multi_Wildcard_Loader", + "Prompt_Extender", + "Prompt_Library", + "Simple_Prompt_Library" + ], + { + "title_aux": "ComfyUI-Prompt_Library" + } + ], + "https://github.com/hgabha/WWAA-CustomNodes": [ + [ + "WWAA-BuildString", + "WWAA-LineCount", + "WWAA_AdvancedGridLayoutNode", + "WWAA_AdvancedTextFileReader", + "WWAA_DitherNode", + "WWAA_GBCamera", + "WWAA_GridLayoutNode", + "WWAA_ImageLoader", + "WWAA_ImageToTextFile", + "WWAA_IndexGridLayoutNode", + "WWAA_NestedLoopCounter", + "WWAA_PromptWriter", + "WWAA_SearchReplaceText", + "WWAA_Switch_Int" + ], + { + "title_aux": "WWAA-CustomNodes" + } + ], "https://github.com/hhhzzyang/Comfyui_Lama": [ [ "LamaApply", @@ -7577,6 +26434,23 @@ "title_aux": "Comfyui-Lama" } ], + "https://github.com/hiderminer/ComfyUI-HM-Utilities": [ + [ + "AutoCropImage", + "NormalizeImageWithRectangle" + ], + { + "title_aux": "ComfyUI-HM-Tools" + } + ], + "https://github.com/hieuck/ComfyUI-BiRefNet": [ + [ + "BiRefNet" + ], + { + "title_aux": "ComfyUI-BiRefNet-Fix utils" + } + ], "https://github.com/hiforce/comfyui-hiforce-plugin": [ [ "HfBoolSwitchKSampleStatus", @@ -7610,13 +26484,105 @@ "title_aux": "ComfyUI 3D Pose Editor" } ], - "https://github.com/holchan/ComfyUI-ModelDownloader": [ + "https://github.com/hmwl/ComfyUI_zip": [ [ - "LoRADownloader", - "ModelDownloader" + "CleanFolders", + "CompressImages", + "UnzipToInput" ], { - "title_aux": "ComfyUI-ModelDownloader" + "title_aux": "ComfyUI_zip" + } + ], + "https://github.com/hnmr293/comfyui-savemem": [ + [ + "SaveImagesMemory", + "SaveLatentsMemory" + ], + { + "title_aux": "ComfyUI-SaveMem" + } + ], + "https://github.com/hodanajan/optimal-crop-resolution": [ + [ + "AspectRatioCalculator", + "ResolutionMatcher" + ], + { + "title_aux": "optimal-crop-resolution" + } + ], + "https://github.com/hoveychen/ComfyUI-MusePose-Remaster": [ + [ + "musepose_getposes", + "musepose_inference" + ], + { + "title_aux": "ComfyUI-MusePose-Remaster" + } + ], + "https://github.com/huagetai/ComfyUI-Gaffer": [ + [ + "ApplyICLight", + "CalculateNormalMap", + "GrayScaler", + "ICLightModelLoader", + "LightSource" + ], + { + "title_aux": "comfyui's gaffer(ComfyUI native implementation of IC-Light. )" + } + ], + "https://github.com/huagetai/ComfyUI_LightGradient": [ + [ + "ImageGradient", + "MaskGradient" + ], + { + "title_aux": "Light Gradient for ComfyUI" + } + ], + "https://github.com/huanngzh/ComfyUI-MVAdapter": [ + [ + "BiRefNet", + "ControlImagePreprocessor", + "ControlNetModelLoader", + "CustomLoraModelLoader", + "DiffusersMVModelMakeup", + "DiffusersMVPipelineLoader", + "DiffusersMVSampler", + "DiffusersMVSchedulerLoader", + "DiffusersMVVaeLoader", + "ImagePreprocessor", + "LdmPipelineLoader", + "LdmVaeLoader", + "ViewSelector" + ], + { + "title_aux": "ComfyUI-MVAdapter" + } + ], + "https://github.com/hubentu/ComfyUI-loras-loader": [ + [ + "DynamicLoRALoader", + "ImageBatchToImageList", + "LoRAStringAdapter", + "MultiLoRAnameLoader", + "MultiLoraLoader", + "MultiTriggerLoader" + ], + { + "title_aux": "Multiple LoRA Loader for ComfyUI" + } + ], + "https://github.com/huchenlei/ComfyUI-IC-Light-Native": [ + [ + "ICLightApplyMaskGrey", + "ICLightAppply", + "VAEEncodeArgMax" + ], + { + "title_aux": "ComfyUI-IC-Light-Native" } ], "https://github.com/huchenlei/ComfyUI-layerdiffuse": [ @@ -7634,6 +26600,14 @@ "title_aux": "ComfyUI-layerdiffuse (layerdiffusion)" } ], + "https://github.com/huchenlei/ComfyUI-openpose-editor": [ + [ + "huchenlei.LoadOpenposeJSON" + ], + { + "title_aux": "ComfyUI-openpose-editor" + } + ], "https://github.com/huchenlei/ComfyUI_DanTagGen": [ [ "PromptDanTagGen" @@ -7642,6 +26616,31 @@ "title_aux": "ComfyUI_DanTagGen" } ], + "https://github.com/huchenlei/ComfyUI_densediffusion": [ + [ + "DenseDiffusionAddCondNode", + "DenseDiffusionApplyNode" + ], + { + "title_aux": "ComfyUI DenseDiffusion" + } + ], + "https://github.com/huchenlei/ComfyUI_omost": [ + [ + "OmostDenseDiffusionLayoutNode", + "OmostGreedyBagsTextEmbeddingNode", + "OmostLLMChatNode", + "OmostLLMHTTPServerNode", + "OmostLLMLoaderNode", + "OmostLayoutCondNode", + "OmostLoadCanvasConditioningNode", + "OmostLoadCanvasPythonCodeNode", + "OmostRenderCanvasConditioningNode" + ], + { + "title_aux": "ComfyUI_omost" + } + ], "https://github.com/hughescr/ComfyUI-OpenPose-Keypoint-Extractor": [ [ "Openpose Keypoint Extractor" @@ -7650,6 +26649,54 @@ "title_aux": "OpenPose Keypoint Extractor" } ], + "https://github.com/hugobb/FastGAN-ComfyUI-Node": [ + [ + "GenerateImages", + "LoadFastGAN", + "LoadLatent", + "SampleLatent", + "SaveLatent" + ], + { + "title_aux": "fastgan-comfyui" + } + ], + "https://github.com/huixingyun/ComfyUI-HX-Captioner": [ + [ + "HXOllamaCaptioner" + ], + { + "title_aux": "ComfyUI-HX-Captioner" + } + ], + "https://github.com/huixingyun/ComfyUI-HX-Pimg": [ + [ + "SaveImageWithPromptsWebsocket" + ], + { + "title_aux": "ComfyUI-HX-Pimg" + } + ], + "https://github.com/hujuying/ComfyUI-ModelScope-API": [ + [ + "ModelScopeImageEditNode", + "ModelScopeImageNode", + "ModelScopeTextNode", + "ModelScopeVisionNode" + ], + { + "title_aux": "ComfyUI ModelScope API Node" + } + ], + "https://github.com/hunzmusic/ComfyUI-IG2MV": [ + [ + "DiffusersIGMVModelMakeup", + "DiffusersIGMVSampler" + ], + { + "title_aux": "ComfyUI-IG2MV" + } + ], "https://github.com/hustille/ComfyUI_Fooocus_KSampler": [ [ "KSampler With Refiner (Fooocus)" @@ -7671,15 +26718,275 @@ "title_aux": "hus' utils for ComfyUI" } ], - "https://github.com/hylarucoder/ComfyUI-Eagle-PNGInfo": [ + "https://github.com/huwenkai26/comfyui-remove-text": [ [ - "EagleImageNode", - "SDXLPromptStyler", - "SDXLPromptStylerAdvanced", - "SDXLResolutionPresets" + "ImageRemoveText" ], { - "title_aux": "Eagle PNGInfo" + "title_aux": "ComfyUI Text Remove Node" + } + ], + "https://github.com/hvppycoding/comfyui-json-prompt-renderer": [ + [ + "ExtractJSON", + "TemplateRenderFromJSON" + ], + { + "title_aux": "json prompt renderer" + } + ], + "https://github.com/hvppycoding/comfyui-random-sampler-scheduler-steps": [ + [ + "RandomSamplerSchedulerSteps" + ], + { + "title_aux": "RandomSamplerSchedulerSteps for ComfyUI" + } + ], + "https://github.com/hwhaocool/ComfyUI-Select-Any": [ + [ + "SelectAnyValues" + ], + { + "title_aux": "ComfyUI-Select-Any" + } + ], + "https://github.com/hybskgks28275/ComfyUI-hybs-nodes": [ + [ + "Random Resolution Selector", + "Resolution Selector", + "Seed List Generator" + ], + { + "title_aux": "ComfyUI-hybs-nodes" + } + ], + "https://github.com/hyunamy/comfy-ui-on-complete-email-me": [ + [ + "OnCompleteEmailMe", + "OnCompletePlaySound", + "OnCompleteWebhook" + ], + { + "title_aux": "Comfy-UI on-complete-email-me" + } + ], + "https://github.com/iDAPPA/ComfyUI-AMDGPUMonitor": [ + [ + "AMDGPUMonitor" + ], + { + "title_aux": "AMD GPU Monitor for ComfyUI" + } + ], + "https://github.com/iFREEGROUP/comfyui-undistort": [ + [ + "IG_LoadCheckerboardImageForCalibrateCamera", + "IG_MatrixAndDistCoefToText", + "IG_Undistort" + ], + { + "title_aux": "comfyui-undistort" + } + ], + "https://github.com/iacoposk8/ComfyUI-Fooocus-Inpaint-Wrapper": [ + [ + "AlignYourStepsScheduler", + "BasicScheduler", + "CLIPLoader", + "CLIPMergeSimple", + "CLIPSave", + "CLIPSetLastLayer", + "CLIPTextEncode", + "CLIPTextEncodeSDXL", + "CLIPTextEncodeSDXLRefiner", + "CLIPVisionEncode", + "CLIPVisionLoader", + "Canny", + "CheckpointLoader", + "CheckpointLoaderSimple", + "CheckpointSave", + "ConditioningAverage", + "ConditioningCombine", + "ConditioningConcat", + "ConditioningSetArea", + "ConditioningSetAreaPercentage", + "ConditioningSetMask", + "ConditioningSetTimestepRange", + "ConditioningZeroOut", + "ControlNetApply", + "ControlNetApplyAdvanced", + "ControlNetLoader", + "CropMask", + "DiffControlNetLoader", + "DiffusersLoader", + "DualCLIPLoader", + "EmptyImage", + "EmptyLatentImage", + "ExponentialScheduler", + "FeatherMask", + "FlipSigmas", + "FooocusInpaintWrapper", + "FreeU", + "FreeU_V2", + "GLIGENLoader", + "GLIGENTextBoxApply", + "GrowMask", + "HyperTile", + "HypernetworkLoader", + "ImageBatch", + "ImageBlend", + "ImageBlur", + "ImageColorToMask", + "ImageCompositeMasked", + "ImageCrop", + "ImageInvert", + "ImageOnlyCheckpointLoader", + "ImageOnlyCheckpointSave", + "ImagePadForOutpaint", + "ImageQuantize", + "ImageScale", + "ImageScaleBy", + "ImageScaleToTotalPixels", + "ImageSharpen", + "ImageToMask", + "ImageUpscaleWithModel", + "InpaintModelConditioning", + "InvertMask", + "JoinImageWithAlpha", + "KSampler", + "KSamplerAdvanced", + "KSamplerSelect", + "KarrasScheduler", + "LatentAdd", + "LatentBatch", + "LatentBatchSeedBehavior", + "LatentBlend", + "LatentComposite", + "LatentCompositeMasked", + "LatentCrop", + "LatentFlip", + "LatentFromBatch", + "LatentInterpolate", + "LatentMultiply", + "LatentRotate", + "LatentSubtract", + "LatentUpscale", + "LatentUpscaleBy", + "LoadImage", + "LoadImageMask", + "LoadLatent", + "LoraLoader", + "LoraLoaderModelOnly", + "MaskComposite", + "MaskToImage", + "ModelMergeAdd", + "ModelMergeBlocks", + "ModelMergeSimple", + "ModelMergeSubtract", + "ModelSamplingContinuousEDM", + "ModelSamplingDiscrete", + "PatchModelAddDownscale", + "PerpNeg", + "PhotoMakerEncode", + "PhotoMakerLoader", + "PolyexponentialScheduler", + "PorterDuffImageComposite", + "PreviewImage", + "RebatchImages", + "RebatchLatents", + "RepeatImageBatch", + "RepeatLatentBatch", + "RescaleCFG", + "SDTurboScheduler", + "SD_4XUpscale_Conditioning", + "SVD_img2vid_Conditioning", + "SamplerCustom", + "SamplerDPMPP_2M_SDE", + "SamplerDPMPP_SDE", + "SamplerTCD", + "SaveAnimatedPNG", + "SaveAnimatedWEBP", + "SaveImage", + "SaveLatent", + "SelfAttentionGuidance", + "SetLatentNoiseMask", + "SolidMask", + "SplitImageWithAlpha", + "SplitSigmas", + "StableZero123_Conditioning", + "StableZero123_Conditioning_Batched", + "StyleModelApply", + "StyleModelLoader", + "TomePatchModel", + "UNETLoader", + "UpscaleModelLoader", + "VAEDecode", + "VAEDecodeTiled", + "VAEEncode", + "VAEEncodeForInpaint", + "VAEEncodeTiled", + "VAELoader", + "VAESave", + "VPScheduler", + "VideoLinearCFGGuidance", + "unCLIPCheckpointLoader", + "unCLIPConditioning" + ], + { + "title_aux": "ComfyUI Fooocus Inpaint Wrapper" + } + ], + "https://github.com/iacoposk8/xor_pickle_nodes": [ + [ + "DecryptXORText", + "Load XOR Pickle From File", + "Save XOR Pickle To File" + ], + { + "title_aux": "ComfyUI XOR Text & Pickle Nodes" + } + ], + "https://github.com/ialhabbal/OcclusionMask": [ + [ + "BatchLoadImages", + "ImageOcclusion" + ], + { + "title_aux": "OcclusionMask" + } + ], + "https://github.com/iamandeepsandhu/ComfyUI-NSFW-Check": [ + [ + "NSFWScore" + ], + { + "title_aux": "NSFW Check for ComfyUI" + } + ], + "https://github.com/icesun963/ComfyUI_HFDownLoad": [ + [ + "Apply EasyOCR V2", + "HFDownLoad_Tool", + "LayerMask: SegmentAnythingUltra V2.1", + "LayerUtility: LaMa V2" + ], + { + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", + "title_aux": "HFDownLoad Node for ComfyUI" + } + ], + "https://github.com/ichabodcole/ComfyUI-Ichis-Pack": [ + [ + "ICHIS_Aspect_Ratio_Plus", + "ICHIS_Extract_Tags", + "ICHIS_Text_Selector" + ], + { + "title_aux": "ComfyUI-Ichis-Pack" } ], "https://github.com/idrirap/ComfyUI-Lora-Auto-Trigger-Words": [ @@ -7700,25 +27007,260 @@ "title_aux": "ComfyUI-Lora-Auto-Trigger-Words" } ], + "https://github.com/iemesowum/ComfyUI_IsaacNodes": [ + [ + "I_AmplitudeToWeights", + "I_BinaryAmplitudeGate", + "I_UnmixAudio", + "I_WeightsListToWeights" + ], + { + "author": "Isaac Emesowum", + "description": "This extension offers automatic drums extraction from audio files, as well as a few helper nodes to support my audio synchronization AnimateDiff workflows.", + "nickname": "Isaac's Nodes", + "title": "Isaac's Nodes", + "title_aux": "Isaac's Nodes" + } + ], + "https://github.com/if-ai/ComfyUI-IF_AI_Dreamtalk": [ + [ + "IF_DreamTalk" + ], + { + "title_aux": "IF_Dreamtalk" + } + ], + "https://github.com/if-ai/ComfyUI-IF_AI_HFDownloaderNode": [ + [ + "IF_HFDownload", + "IF_HFDownloadNode" + ], + { + "title_aux": "IF_AI_HFDownloaderNode" + } + ], + "https://github.com/if-ai/ComfyUI-IF_AI_ParlerTTSNode": [ + [ + "IF_ParlerTTS" + ], + { + "title_aux": "IF_ParlerTTSNode" + } + ], "https://github.com/if-ai/ComfyUI-IF_AI_WishperSpeechNode": [ [ "IF_WhisperSpeech" ], { - "title_aux": "ComfyUI-IF_AI_WishperSpeechNode" + "title_aux": "IF_AI_WishperSpeechNode" } ], "https://github.com/if-ai/ComfyUI-IF_AI_tools": [ [ "IF_ChatPrompt", + "IF_DisplayOmni", "IF_DisplayText", + "IF_DisplayTextWildcard", "IF_ImagePrompt", + "IF_JoinText", + "IF_LoadImagesS", "IF_PromptMkr", "IF_SaveText", - "IF_saveText" + "IF_StepCounter", + "IF_TextTyper", + "IF_VisualizeGraph", + "IF_tools_LoadImagesS" ], { - "title_aux": "ComfyUI-IF_AI_tools" + "title_aux": "IF_AI_tools" + } + ], + "https://github.com/if-ai/ComfyUI-IF_DatasetMkr": [ + [ + "IF_DatasetMkr", + "IF_HyDatasetMkr" + ], + { + "title_aux": "IF_DatasetMkr" + } + ], + "https://github.com/if-ai/ComfyUI-IF_Gemini": [ + [ + "IFGeminiNode", + "IFPromptCombiner", + "IFTaskPromptManager" + ], + { + "title_aux": "IF_Gemini" + } + ], + "https://github.com/if-ai/ComfyUI-IF_LLM": [ + [ + "IF_DisplayText", + "IF_JoinText", + "IF_LLM", + "IF_LLM_DisplayOmni", + "IF_LLM_DisplayText", + "IF_LLM_DisplayTextWildcard", + "IF_LLM_JoinText", + "IF_LLM_ListModels", + "IF_LLM_LoadImagesS", + "IF_LLM_SaveText", + "IF_LLM_TextTyper", + "IF_LoadImagesS", + "IF_TextTyper", + "IF_saveText", + "ListModelsNode" + ], + { + "title_aux": "IF_LLM" + } + ], + "https://github.com/if-ai/ComfyUI-IF_MemoAvatar": [ + [ + "IF_MemoAvatar", + "IF_MemoCheckpointLoader" + ], + { + "title_aux": "IF_MemoAvatar" + } + ], + "https://github.com/if-ai/ComfyUI-IF_Trellis": [ + [ + "IF_TrellisCheckpointLoader", + "IF_TrellisImageTo3D" + ], + { + "title_aux": "IF_Trellis" + } + ], + "https://github.com/if-ai/ComfyUI-IF_VideoPrompts": [ + [ + "VideoPromptNode" + ], + { + "title_aux": "IF_VideoPrompts" + } + ], + "https://github.com/if-ai/ComfyUI-WanResolutionSelector": [ + [ + "VideoResolutionSelector" + ], + { + "title_aux": "ComfyUI-WanResolutionSelector" + } + ], + "https://github.com/if-ai/ComfyUI-yt_dl": [ + [ + "YouTubeDownloader" + ], + { + "title_aux": "ComfyUI-yt_dl" + } + ], + "https://github.com/if-ai/ComfyUI_HunyuanVideoFoley": [ + [ + "HunyuanVideoFoley", + "HunyuanVideoFoleyDependenciesLoader", + "HunyuanVideoFoleyGeneratorAdvanced", + "HunyuanVideoFoleyModelLoader", + "HunyuanVideoFoleyTorchCompile" + ], + { + "title_aux": "ComfyUI HunyuanVideo-Foley" + } + ], + "https://github.com/if-ai/ComfyUI_IF_AI_LoadImages": [ + [ + "IF_LoadImagesS" + ], + { + "title_aux": "IF_AI_LoadImages" + } + ], + "https://github.com/ifmylove2011/comfyui-missed-tool": [ + [ + "ImageQueueLoader", + "LoadImageA", + "LoraLoad", + "LoraMerge", + "LoraSaver", + "ScaleMultilplePixels", + "TrimBG", + "TrimBGAdvanced", + "TxtSave" + ], + { + "title_aux": "comfyui-missed-tool" + } + ], + "https://github.com/ihmily/ComfyUI-Light-Tool": [ + [ + "Light-Tool: AddBackground", + "Light-Tool: AddBackgroundV2", + "Light-Tool: BoundingBoxCropping", + "Light-Tool: Calculate", + "Light-Tool: ConvertNumType", + "Light-Tool: CropImage", + "Light-Tool: DeserializeJsonString", + "Light-Tool: GetImageSize", + "Light-Tool: GetImagesCount", + "Light-Tool: Hex2RGB", + "Light-Tool: ImageConcat", + "Light-Tool: ImageMaskApply", + "Light-Tool: ImageOverlay", + "Light-Tool: ImageToMask", + "Light-Tool: InputText", + "Light-Tool: InputTextList", + "Light-Tool: InvertMask", + "Light-Tool: IsTransparent", + "Light-Tool: KeyValue", + "Light-Tool: LoadImage", + "Light-Tool: LoadImageFromURL", + "Light-Tool: LoadImagesFromDir", + "Light-Tool: LoadMetadataFromURL", + "Light-Tool: LoadVideo", + "Light-Tool: MaskBoundingBoxCropping", + "Light-Tool: MaskContourExtractor", + "Light-Tool: MaskImageToTransparent", + "Light-Tool: MaskToImage", + "Light-Tool: MorphologicalTF", + "Light-Tool: PhantomTankEffect", + "Light-Tool: PreviewVideo", + "Light-Tool: RGB2Hex", + "Light-Tool: RGB2RGBA", + "Light-Tool: RGBA2RGB", + "Light-Tool: ResizeImage", + "Light-Tool: ResizeImageByMaxSize", + "Light-Tool: ResizeImageByRatio", + "Light-Tool: ResizeImageV2", + "Light-Tool: SaveMetadata", + "Light-Tool: SaveToAliyunOSS", + "Light-Tool: SaveVideo", + "Light-Tool: ScaleImage", + "Light-Tool: SerializeJsonObject", + "Light-Tool: ShowText", + "Light-Tool: SimpleImageOverlay", + "Light-Tool: SimpleTextConnect", + "Light-Tool: SolidColorBackground", + "Light-Tool: TextConnect", + "Light-Tool: UpscaleImage" + ], + { + "author": "Hmily", + "description": "An awesome light tool nodes for ComfyUI.", + "nickname": "ComfyUI-Light-Tool", + "title": "ComfyUI-Light-Tool", + "title_aux": "ComfyUI-Light-Tool" + } + ], + "https://github.com/illuminatianon/comfyui-csvwildcards": [ + [ + "CSVWildcardNode", + "DisplayTextNode" + ], + { + "title_aux": "CSV Wildcard Node for ComfyUI" } ], "https://github.com/imb101/ComfyUI-FaceSwap": [ @@ -7729,6 +27271,148 @@ "title_aux": "FaceSwap" } ], + "https://github.com/infinigence/ComfyUI-Infinigence-Nodes": [ + [ + "DrawTextNode", + "Qwen2.5VL_api" + ], + { + "title_aux": "ComfyUI-Infinigence-Nodes" + } + ], + "https://github.com/inflamously/comfyui-prompt-enhancer": [ + [ + "PROMPT_ENHANCER", + "PROMPT_ENHANCER_CHAIN_CONTROL", + "PROMPT_ENHANCER_CHAIN_RANDOM", + "PROMPT_ENHANCER_REPROMPT" + ], + { + "title_aux": "comfyui-prompt-enhancer" + } + ], + "https://github.com/injet-zhou/comfyui_extra_api": [ + [ + "SimpleGenImageInterface" + ], + { + "title_aux": "comfyui_extra_api" + } + ], + "https://github.com/inventorado/ComfyUI_NNT": [ + [ + "NntAnalyzeInferenceMetrics", + "NntAnalyzeModel", + "NntCompileModel", + "NntDatasetToImageTensor", + "NntDatasetToTargetTensor", + "NntDatasetToTensor", + "NntDatasetToTextTensor", + "NntDefineActivationLayer", + "NntDefineAlibiPositionalBias", + "NntDefineConvLayer", + "NntDefineDenseLayer", + "NntDefineFlattenLayer", + "NntDefineGRULayer", + "NntDefineLSTMLayer", + "NntDefineLinearAttention", + "NntDefineLocalAttention", + "NntDefineMultiheadAttention", + "NntDefineNormLayer", + "NntDefinePoolingLayer", + "NntDefinePositionalEncoding", + "NntDefineRNNLayer", + "NntDefineReformerAttention", + "NntDefineRelativePositionBias", + "NntDefineReshapeLayer", + "NntDefineRotaryPositionalEmbedding", + "NntDefineTransformerEncoderLayer", + "NntDefineTransformerXLAttention", + "NntDefineVanillaAttention", + "NntEditModelLayers", + "NntEvaluatePredictions", + "NntFileLoader", + "NntFineTuneModel", + "NntHuggingFaceDataLoader", + "NntImageToTensor", + "NntInference", + "NntInputLayer", + "NntLoadModel", + "NntMergeExtendModel", + "NntPlotTensors", + "NntRandomTensorGenerator", + "NntSHAPSummaryNode", + "NntSaveModel", + "NntShowLayerStack", + "NntShowModelInfo", + "NntTensorElementToImage", + "NntTensorOperations", + "NntTensorSlice", + "NntTensorToText", + "NntTextBatchProcessor", + "NntTextToTensor", + "NntTimeSeriesDataLoader", + "NntTorchvisionDataLoader", + "NntTorchvisionDatasets", + "NntTrainModel", + "NntTrainingHyperparameters", + "NntVisualizeConfidenceScores", + "NntVisualizeGraph", + "NntVisualizePredictionMetrics", + "NntVisualizeTrainingMetrics" + ], + { + "title_aux": "ComfyUI Neural Network Toolkit NNT " + } + ], + "https://github.com/irreveloper/ComfyUI-DSD": [ + [ + "DSDGeminiPromptEnhancer", + "DSDImageGenerator", + "DSDModelDownloader", + "DSDModelLoader", + "DSDModelSelector", + "DSDResizeSelector" + ], + { + "title_aux": "ComfyUI-DSD" + } + ], + "https://github.com/isaac-mcfadyen/ComfyUI-QwenClip": [ + [ + "CLIPSetQwenImageEditPrompt", + "CLIPSetQwenImagePrompt" + ], + { + "title_aux": "ComfyUI-QwenClip" + } + ], + "https://github.com/iwanders/ComfyUI_nodes": [ + [ + "IW_JsonPickItem", + "IW_ModelHook", + "IW_StringConcat", + "IW_StringFromInt", + "IW_StringNode", + "IW_StringPrint", + "IW_StringReplace", + "IW_StringSave", + "IW_TokenizerVocab" + ], + { + "title_aux": "iwanders/ComfyUI_nodes" + } + ], + "https://github.com/jacklukai/ComfyUI_DeployCash": [ + [ + "DeployCash", + "DeployCash_saveImage", + "DeployCash_textInput" + ], + { + "title_aux": "ComfyUI_DeployCash" + } + ], "https://github.com/jags111/ComfyUI_Jags_Audiotools": [ [ "BatchJoinAudio", @@ -7802,7 +27486,6 @@ "YoloSEGdetectionNode", "YoloSegNode", "color_drop", - "my unique name", "xy_Tiling_KSampler" ], { @@ -7859,6 +27542,281 @@ "title_aux": "Efficiency Nodes for ComfyUI Version 2.0+" } ], + "https://github.com/jaimitoes/ComfyUI_Wan2_1_lora_trainer": [ + [ + "MusubiCompileSettings", + "MusubiMemorySettings", + "MusubiSamplingSettings", + "WanCacheLatents", + "WanCacheTextEncoder", + "WanDatasetConfig", + "WanLoRATrainer" + ], + { + "title_aux": "ComfyUI_Wan2_1_lora_trainer" + } + ], + "https://github.com/jakechai/ComfyUI-JakeUpgrade": [ + [ + "Animation Prompt JK", + "Animation Value JK", + "Base Image Parameters Extract JK", + "Base Model Parameters Extract JK", + "Base Model Parameters JK", + "Base Model Parameters SD3API JK", + "Base Model Pipe Extract JK", + "Base Model Pipe JK", + "Bool Binary And JK", + "Bool Binary OR JK", + "CM_BoolBinaryOperation JK", + "CM_BoolToInt JK", + "CM_BoolUnaryOperation JK", + "CM_BreakoutVec2 JK", + "CM_BreakoutVec3 JK", + "CM_BreakoutVec4 JK", + "CM_ComposeVec2 JK", + "CM_ComposeVec3 JK", + "CM_ComposeVec4 JK", + "CM_FillVec2 JK", + "CM_FillVec3 JK", + "CM_FillVec4 JK", + "CM_FloatBinaryCondition JK", + "CM_FloatBinaryOperation JK", + "CM_FloatToInt JK", + "CM_FloatToNumber JK", + "CM_FloatUnaryCondition JK", + "CM_FloatUnaryOperation JK", + "CM_IntBinaryCondition JK", + "CM_IntBinaryOperation JK", + "CM_IntToBool JK", + "CM_IntToFloat JK", + "CM_IntToNumber JK", + "CM_IntUnaryCondition JK", + "CM_IntUnaryOperation JK", + "CM_NumberBinaryCondition JK", + "CM_NumberBinaryOperation JK", + "CM_NumberToFloat JK", + "CM_NumberToInt JK", + "CM_NumberUnaryCondition JK", + "CM_NumberUnaryOperation JK", + "CM_PromptCombine_JK", + "CM_StringBinaryCondition_JK", + "CM_Vec2BinaryCondition JK", + "CM_Vec2BinaryOperation JK", + "CM_Vec2FloatOperation_JK", + "CM_Vec2ToFloatBinaryOperation JK", + "CM_Vec2ToFloatUnaryOperation JK", + "CM_Vec2UnaryCondition JK", + "CM_Vec2UnaryOperation JK", + "CM_Vec3BinaryCondition JK", + "CM_Vec3BinaryOperation JK", + "CM_Vec3FloatOperation_JK", + "CM_Vec3ToFloatBinaryOperation JK", + "CM_Vec3ToFloatUnaryOperation JK", + "CM_Vec3UnaryCondition JK", + "CM_Vec3UnaryOperation JK", + "CM_Vec4BinaryCondition JK", + "CM_Vec4BinaryOperation JK", + "CM_Vec4FloatOperation_JK", + "CM_Vec4ToFloatBinaryOperation JK", + "CM_Vec4ToFloatUnaryOperation JK", + "CM_Vec4UnaryCondition JK", + "CM_Vec4UnaryOperation JK", + "CR Apply ControlNet JK", + "CR Apply LoRA Stack JK", + "CR Apply LoRA Stack Model Only JK", + "CR Apply Multi-ControlNet Adv JK", + "CR Apply Multi-ControlNet JK", + "CR Aspect Ratio JK", + "CR Boolean JK", + "CR Clip Input Switch JK", + "CR Conditioning Input Switch JK", + "CR ControlNet Input Switch JK", + "CR ControlNet Loader JK", + "CR ControlNet Stack Input Switch JK", + "CR Float Input Switch JK", + "CR Guider Input Switch JK", + "CR Image Input Switch JK", + "CR Impact Pipe Input Switch JK", + "CR Int Input Switch JK", + "CR Latent Input Switch JK", + "CR LoRA Stack JK", + "CR LoRA Stack Model Only JK", + "CR Load LoRA JK", + "CR Mask Input Switch JK", + "CR Mesh Input Switch JK", + "CR Model Input Switch JK", + "CR Multi-ControlNet Param Stack JK", + "CR Multi-ControlNet Stack JK", + "CR Noise Input Switch JK", + "CR Orbit Pose Input Switch JK", + "CR Pipe Input Switch JK", + "CR Ply Input Switch JK", + "CR SD1.5 Aspect Ratio JK", + "CR SD3 Aspect Ratio JK", + "CR SDXL Aspect Ratio JK", + "CR Sampler Input Switch JK", + "CR Sigmas Input Switch JK", + "CR Text Input Switch JK", + "CR TriMesh Input Switch JK", + "CR VAE Input Switch JK", + "Ckpt Loader JK", + "Color Grading JK", + "Create Loop Schedule List", + "Detailer Parameters JK", + "Embedding Picker JK", + "Embedding Picker Multi JK", + "Empty Latent Color JK", + "Evaluate Examples JK", + "Evaluate Floats JK", + "Evaluate Ints JK", + "Evaluate Strings JK", + "Get OrbitPoses From List JK", + "Get Size JK", + "Guidance Default JK", + "HintImageEnchance JK", + "Hy3D Cam Config 20to21 JK", + "IPAAdapterFaceIDBatch", + "IPAdapter", + "IPAdapterAdvanced", + "IPAdapterBatch", + "IPAdapterClipVisionEnhancer", + "IPAdapterClipVisionEnhancerBatch", + "IPAdapterCombineEmbeds", + "IPAdapterCombineParams", + "IPAdapterCombineWeights", + "IPAdapterEmbeds", + "IPAdapterEmbedsBatch", + "IPAdapterEncoder", + "IPAdapterFaceID", + "IPAdapterFaceIDKolors", + "IPAdapterFromParams", + "IPAdapterInsightFaceLoader", + "IPAdapterLoadEmbeds", + "IPAdapterMS", + "IPAdapterModelLoader", + "IPAdapterNoise", + "IPAdapterPreciseComposition", + "IPAdapterPreciseCompositionBatch", + "IPAdapterPreciseStyleTransfer", + "IPAdapterPreciseStyleTransferBatch", + "IPAdapterPromptScheduleFromWeightsStrategy", + "IPAdapterRegionalConditioning", + "IPAdapterSaveEmbeds", + "IPAdapterStyleComposition", + "IPAdapterStyleCompositionBatch", + "IPAdapterTiled", + "IPAdapterTiledBatch", + "IPAdapterUnifiedLoader", + "IPAdapterUnifiedLoaderCommunity", + "IPAdapterUnifiedLoaderFaceID", + "IPAdapterWeights", + "IPAdapterWeightsFromStrategy", + "Image Crop By Mask Resolution Grp JK", + "Image Crop by Mask Params JK", + "Image Crop by Mask Resolution JK", + "Image Remove Alpha JK", + "Image Resize Mode JK", + "Image Upscale Parameters Extract JK", + "Inject Noise Params JK", + "Is Mask Empty JK", + "Ksampler Adv Parameters Default JK", + "Ksampler Parameters Default JK", + "Ksampler Parameters JK", + "Latent Crop Offset JK", + "Latent Upscale Parameters Extract JK", + "Load Image With Alpha JK", + "Load Image With Metadata JK", + "Load String List From JSON JK", + "Make Image Grid JK", + "Metadata Pipe Extract JK", + "Metadata Pipe JK", + "NodesState JK", + "Noise Injection Parameters JK", + "Noise Injection Pipe Extract JK", + "OpenDWPose_JK", + "Orbit Poses JK", + "OrbitLists to OrbitPoses JK", + "OrbitPoses to OrbitLists JK", + "Pipe End JK", + "PrepImageForClipVision", + "Project Setting JK", + "Random Beats JK", + "Refine 1 Parameters Extract JK", + "Refine 2 Parameters Extract JK", + "Refine Model Parameters JK", + "Refine Pipe Extract JK", + "Refine Pipe JK", + "Remove Input JK", + "Reroute Ckpt JK", + "Reroute List JK", + "Reroute Resize JK", + "Reroute Sampler JK", + "Reroute String JK", + "Reroute Upscale JK", + "Reroute Vae JK", + "Rough Outline JK", + "SD3 Prompts Switch JK", + "SDXL Target Res JK", + "SDXLPromptStylerAll", + "SDXLPromptStylerHorror", + "SDXLPromptStylerMisc", + "SDXLPromptStylerbyArtist", + "SDXLPromptStylerbyCamera", + "SDXLPromptStylerbyComposition", + "SDXLPromptStylerbyCyberpunkSurrealism", + "SDXLPromptStylerbyDepth", + "SDXLPromptStylerbyDiva", + "SDXLPromptStylerbyEnvironment", + "SDXLPromptStylerbyFantasySetting", + "SDXLPromptStylerbyFilter", + "SDXLPromptStylerbyFocus", + "SDXLPromptStylerbyFooocus", + "SDXLPromptStylerbyImpressionism", + "SDXLPromptStylerbyLighting", + "SDXLPromptStylerbyMarc", + "SDXLPromptStylerbyMileHigh", + "SDXLPromptStylerbyMood", + "SDXLPromptStylerbyMre", + "SDXLPromptStylerbyMythicalCreature", + "SDXLPromptStylerbyOriginal", + "SDXLPromptStylerbyQuantumRealism", + "SDXLPromptStylerbySai", + "SDXLPromptStylerbySteamPunkRealism", + "SDXLPromptStylerbySubject", + "SDXLPromptStylerbySurrealism", + "SDXLPromptStylerbyTheme", + "SDXLPromptStylerbyTimeofDay", + "SDXLPromptStylerbyTwri", + "SDXLPromptStylerbyWyvern", + "SDXLPromptbyCelticArt", + "SDXLPromptbyContemporaryNordicArt", + "SDXLPromptbyFashionArt", + "SDXLPromptbyGothicRevival", + "SDXLPromptbyIrishFolkArt", + "SDXLPromptbyRomanticNationalismArt", + "SDXLPromptbySportsArt", + "SDXLPromptbyStreetArt", + "SDXLPromptbyVikingArt", + "SDXLPromptbyWildlifeArt", + "Sampler Loader JK", + "Save Image with Metadata Flow JK", + "Save Image with Metadata JK", + "Save String List To JSON JK", + "Scale To Resolution JK", + "Split Image Grid JK", + "String To Combo JK", + "Tiling Mode JK", + "Upscale Method JK", + "Upscale Model Loader JK", + "Upscale Model Parameters Extract JK", + "Upscale Model Parameters JK", + "Vae Loader JK" + ], + { + "title_aux": "ComfyUI-JakeUpgrade" + } + ], "https://github.com/jamal-alkharrat/ComfyUI_rotate_image": [ [ "RotateImage" @@ -7867,13 +27825,264 @@ "title_aux": "ComfyUI_rotate_image" } ], + "https://github.com/jamesWalker55/comfyui-p2ldgan": [ + [ + "P2LDGAN" + ], + { + "title_aux": "ComfyUI - P2LDGAN Node" + } + ], "https://github.com/jamesWalker55/comfyui-various": [ - [], + [ + "BatchLoadImage", + "BatchSaveImage", + "GroupInfoExtractFloat", + "GroupInfoExtractInt", + "GroupLoadBatchImages", + "GroupLoadImage", + "JWAudioBlend", + "JWAudioSaveToPath", + "JWDatetimeString", + "JWImageBatchCount", + "JWImageContrast", + "JWImageExtractFromBatch", + "JWImageFlip", + "JWImageLevels", + "JWImageLoadRGB", + "JWImageLoadRGBA", + "JWImageLoadRGBA From Clipboard", + "JWImageLoadRGBFromClipboard", + "JWImageLoadRGBIfExists", + "JWImageMix", + "JWImageResize", + "JWImageResizeByFactor", + "JWImageResizeByLongerSide", + "JWImageResizeByShorterSide", + "JWImageResizeToSquare", + "JWImageSaturation", + "JWImageSaveToPath", + "JWImageSequenceExtractFromBatch", + "JWImageStackChannels", + "JWInfoHashExtractFloat", + "JWInfoHashExtractInteger", + "JWInfoHashExtractString", + "JWInfoHashFromInfoHashList", + "JWInfoHashFromRangedInfo", + "JWInfoHashListExtractStringList", + "JWInfoHashListFromRangedInfo", + "JWInfoHashPrint", + "JWLoadAudio", + "JWLoadImageSequence", + "JWLoadImagesFromString", + "JWLoopImageSequence", + "JWMaskLikeImageSize", + "JWMaskResize", + "JWMaskSequenceApplyToLatent", + "JWMaskSequenceFromMask", + "JWMaskSequenceJoin", + "JWPrintFloat", + "JWPrintImage", + "JWPrintInteger", + "JWPrintLatent", + "JWPrintMask", + "JWPrintString", + "JWRangedInfoCalculateSubBatch", + "JWReferenceOnly", + "JWSaveImageSequence", + "JWStringListCLIPEncode", + "JWStringListFromString", + "JWStringListFromStrings", + "JWStringListJoin", + "JWStringListRepeat", + "JWStringListToFormatedString", + "JWStringListToString", + "JWUncropCrop", + "JWUncropNewRect", + "JWUncropUncrop", + "JamesLoadImageGroup", + "RAFTEstimate", + "RAFTFlowToImage", + "RAFTLoadFlowFromEXRChannels", + "RCReceiveFloat", + "RCReceiveFloatList", + "RCReceiveInt", + "RCReceiveIntList", + "RCReceiveLatent", + "RCSendLatent" + ], { "nodename_pattern": "^JW", "title_aux": "Various ComfyUI Nodes by Type" } ], + "https://github.com/jammyfu/ComfyUI_PaintingCoderUtils": [ + [ + "PaintingCoder::DynamicImageCombiner", + "PaintingCoder::DynamicMaskCombiner", + "PaintingCoder::ImageLatentCreator", + "PaintingCoder::ImageLatentCreatorPlus", + "PaintingCoder::ImageResolutionAdjuster", + "PaintingCoder::ImageSizeCreator", + "PaintingCoder::ImageSizeCreatorPlus", + "PaintingCoder::ImageSwitch", + "PaintingCoder::ImageToBase64", + "PaintingCoder::LatentSwitch", + "PaintingCoder::MaskPreview", + "PaintingCoder::MaskSwitch", + "PaintingCoder::MultilineTextInput", + "PaintingCoder::OutputToTextConverter", + "PaintingCoder::RemoveEmptyLinesAndLeadingSpaces", + "PaintingCoder::ShowTextPlus", + "PaintingCoder::SimpleTextInput", + "PaintingCoder::TextCombiner", + "PaintingCoder::TextSwitch", + "PaintingCoder::WebImageLoader" + ], + { + "title_aux": "Painting Coder Utils" + } + ], + "https://github.com/jasonjgardner/comfui-substance-designer-integration": [ + [ + "SubstanceBatchProcessor", + "SubstanceCooker", + "SubstanceInfoExtractor", + "SubstanceParameterController", + "SubstanceRenderer" + ], + { + "title_aux": "ComfyUI Substance Designer Integration Plugin" + } + ], + "https://github.com/jax-explorer/ComfyUI-InstantCharacter": [ + [ + "InstantCharacterGenerate", + "InstantCharacterLoadModel", + "InstantCharacterLoadModelFromLocal" + ], + { + "title_aux": "ComfyUI-InstantCharacter" + } + ], + "https://github.com/jax-explorer/ComfyUI-VideoBasic": [ + [ + "VideoBasicLoadVideo", + "VideoBasicMergeVideo", + "VideoBasicVideoSave", + "VideoBasicVideoUpscaleWithModel" + ], + { + "title_aux": "ComfyUI-VideoBasic" + } + ], + "https://github.com/jax-explorer/ComfyUI-VideoBasicLatentSync": [ + [ + "VideoBasicLatentSyncLengthAdjuster", + "VideoBasicLatentSyncNode" + ], + { + "title_aux": "ComfyUI-VideoBasicLatentSync" + } + ], + "https://github.com/jax-explorer/ComfyUI-easycontrol": [ + [ + "EasyControlGenerate", + "EasyControlLoadFlux", + "EasyControlLoadLora", + "EasyControlLoadMultiLora", + "EasyControlLoadStyleLora", + "EasyControlLoadStyleLoraFromCivitai" + ], + { + "title_aux": "ComfyUI-easycontrol" + } + ], + "https://github.com/jax-explorer/comfyui-model-dynamic-loader": [ + [ + "ComfyOnlineSaveFile", + "ComfyOnlineUploadAnything", + "EmbeddingLoader", + "LoadCheckpointFromCivitAI", + "LoadHunyuanLoraFromCivitAI", + "LoadHunyuanLoraFromComfyOnline", + "LoadHunyuanLoraFromHF", + "LoadImageFromURL", + "LoadLoraFromCivitAI", + "LoadLoraFromComfyOnline", + "LoadLoraFromHF", + "LoadLoraFromHFWithToken", + "LoadWanVideoLoraFromCivitAI", + "LoadWanVideoLoraFromComfyOnline", + "LoadWanVideoLoraFromHF", + "SaveAudioAsWav", + "SaveText" + ], + { + "title_aux": "comfyui-model-dynamic-loader" + } + ], + "https://github.com/jax-explorer/fast_video_comfyui": [ + [ + "FastImageListToImageBatch" + ], + { + "title_aux": "fast_video_comfyui" + } + ], + "https://github.com/jeffrey2212/ComfyUI-PonyCharacterPrompt": [ + [ + "Pony Character Prompt Picker" + ], + { + "title_aux": "Pony Character Prompt Picker for ComfyUI" + } + ], + "https://github.com/jeffy5/comfyui-faceless-node": [ + [ + "FacelessFaceRestore", + "FacelessFaceSwap", + "FacelessLoadImageUrl", + "FacelessLoadVideo", + "FacelessLoadVideoImages", + "FacelessLoadVideoUrl", + "FacelessMergeVideos", + "FacelessRemoveBackground", + "FacelessSaveVideo", + "FacelessUploadVideo", + "FacelessVideoFaceRestore", + "FacelessVideoFaceSwap", + "FacelessVideoRemoveBackground" + ], + { + "title_aux": "Faceless Node for ComfyUI" + } + ], + "https://github.com/jerrylongyan/ComfyUI-My-Mask": [ + [ + "MaskToBottonHalfConvexMask", + "MaskToConvexMask" + ], + { + "title_aux": "ComfyUI-My-Mask" + } + ], + "https://github.com/jerrywap/ComfyUI_LoadImageFromHttpURL": [ + [ + "LoadImageFromHttpURL" + ], + { + "title_aux": "ComfyUI_LoadImageFromHttpURL" + } + ], + "https://github.com/jerrywap/ComfyUI_UploadToWebhookHTTP": [ + [ + "UploadToWebHookHTTP" + ], + { + "title_aux": "ComfyUI_UploadToWebhookHTTP" + } + ], "https://github.com/jesenzhang/ComfyUI_StreamDiffusion": [ [ "StreamDiffusion_Loader", @@ -7883,6 +28092,57 @@ "title_aux": "ComfyUI_StreamDiffusion" } ], + "https://github.com/jhj0517/ComfyUI-Moondream-Gaze-Detection": [ + [ + "(Down)Load Moondream Model", + "Gaze Detection", + "Gaze Detection Video" + ], + { + "title_aux": "ComfyUI-Moondream-Gaze-Detection" + } + ], + "https://github.com/jhj0517/ComfyUI-jhj-Kokoro-Onnx": [ + [ + "(Down)Load Kokoro Model", + "Kokoro Audio Generator" + ], + { + "title_aux": "ComfyUI jhj Kokoro Onnx" + } + ], + "https://github.com/jiafuzeng/comfyui-LatentSync": [ + [ + "LatentSyncNode" + ], + { + "title_aux": "LatentSync" + } + ], + "https://github.com/jialuw0830/flux_api_comfyui_plugin": [ + [ + "FluxAPINode", + "KontextAPINode", + "QwenAPINode", + "nodes" + ], + { + "title_aux": "Eigen AI FLUX API Plugin" + } + ], + "https://github.com/jiaqianjing/ComfyUI-MidjourneyHub": [ + [ + "GPTImageEditNode", + "GPTImageGenerateNode", + "MidjourneyActionNode", + "MidjourneyBatchActionNode", + "MidjourneyBlendNode", + "MidjourneyImagineNode" + ], + { + "title_aux": "ComfyUI-MidjourneyHub" + } + ], "https://github.com/jiaxiangc/ComfyUI-ResAdapter": [ [ "ResAdapterLoader" @@ -7891,6 +28151,34 @@ "title_aux": "ResAdapter for ComfyUI" } ], + "https://github.com/jinanlongen/ComfyUI-Prompt-Expander": [ + [ + "PromptExpanderNode" + ], + { + "title_aux": "ComfyUI Prompt Expander Node" + } + ], + "https://github.com/jinchanz/ComfyUI-ADIC": [ + [ + "ADIC_COMMON_API", + "AliCloudOSSUpload", + "ImageTranslateAPI", + "ImageTranslateParamsBuilder", + "ImageTranslateResultExtractor", + "LoadImagesFromUrls", + "MaletteFluxKontextImageScale", + "MaletteImageConcatFromBatch", + "MaletteImageStitch", + "MaletteReferenceLatent", + "MarketImageGenerateWithPolling", + "PythonCodeExecutor", + "StringToJsonArray" + ], + { + "title_aux": "ComfyUI-ADIC" + } + ], "https://github.com/jitcoder/lora-info": [ [ "ImageFromURL", @@ -7915,24 +28203,234 @@ [ "CLIPTextEncodeWithStats", "OpenPoseEditorAdv", - "SaveImgAdv" + "SaveImgAdv", + "SolidMaskAdv" ], { "title_aux": "ULTools for ComfyUI" } ], + "https://github.com/jn-jairo/jn_comfyui": [ + [ + "JN_AreaAround", + "JN_AreaInfo", + "JN_AreaNormalize", + "JN_AreaToMask", + "JN_AreaWidthHeight", + "JN_AreaXY", + "JN_AudioArrayToBatch", + "JN_AudioAutoTune", + "JN_AudioBatchToArray", + "JN_AudioCompare", + "JN_AudioConcatenation", + "JN_AudioGetChannels", + "JN_AudioInfo", + "JN_AudioNoiseReduction", + "JN_AudioNormalize", + "JN_AudioPitch", + "JN_AudioPlot", + "JN_AudioReverberation", + "JN_AudioSampleRate", + "JN_AudioSetChannels", + "JN_AudioSlice", + "JN_AudioSpeed", + "JN_AudioSplitChannels", + "JN_AudioStackChannels", + "JN_AudioTempo", + "JN_AudioTrimSilence", + "JN_AudioVolume", + "JN_Blip", + "JN_BlipLoader", + "JN_BooleanOperation", + "JN_Condition", + "JN_CoolDown", + "JN_CoolDownOutput", + "JN_DatetimeFormat", + "JN_DatetimeInfo", + "JN_DatetimeNow", + "JN_Dump", + "JN_DumpOutput", + "JN_Exec", + "JN_ExecOutput", + "JN_FaceCrop", + "JN_FaceRestoreModelLoader", + "JN_FaceRestoreWithModel", + "JN_FirstActive", + "JN_Flow", + "JN_FlowOutput", + "JN_ImageAddBackground", + "JN_ImageAddMask", + "JN_ImageBatch", + "JN_ImageCenterArea", + "JN_ImageCrop", + "JN_ImageGrid", + "JN_ImageInfo", + "JN_ImageRemoveBackground", + "JN_ImageSharpness", + "JN_ImageSquare", + "JN_ImageToMask", + "JN_ImageUncrop", + "JN_KSampler", + "JN_KSamplerAdvancedParams", + "JN_KSamplerFaceRestoreParams", + "JN_KSamplerResizeInputParams", + "JN_KSamplerResizeMaskAreaParams", + "JN_KSamplerResizeOutputParams", + "JN_KSamplerSeamlessParams", + "JN_KSamplerTileParams", + "JN_KeyValue", + "JN_LoadAudioDirectory", + "JN_LoadImageDirectory", + "JN_LogicOperation", + "JN_MaskBatch", + "JN_MaskInfo", + "JN_MaskToArea", + "JN_MaskToImage", + "JN_MathOperation", + "JN_MathOperationArray", + "JN_MeowHrtfAudio3d", + "JN_MeowHrtfModel", + "JN_MeowHrtfPosition", + "JN_MeowLoadVoice", + "JN_MeowSaveVoice", + "JN_MeowSentenceSplit", + "JN_MeowTts", + "JN_MeowTtsAudioToContext", + "JN_MeowTtsCoarse", + "JN_MeowTtsDecode", + "JN_MeowTtsFine", + "JN_MeowTtsLoadContext", + "JN_MeowTtsModel", + "JN_MeowTtsModelCoarse", + "JN_MeowTtsModelEncodec", + "JN_MeowTtsModelFine", + "JN_MeowTtsModelHubert", + "JN_MeowTtsModelSemantic", + "JN_MeowTtsSaveContext", + "JN_MeowTtsSemantic", + "JN_MeowTtsTokenizerHubert", + "JN_MeowVc", + "JN_MeowVcConvertVoice", + "JN_MeowVcEncodeSource", + "JN_MeowVcEncodeTarget", + "JN_MeowVcLoadSpeaker", + "JN_MeowVcModelFreeVC", + "JN_MeowVcModelWavLM", + "JN_MeowVcSaveSpeaker", + "JN_PreviewAudio", + "JN_PreviewImage", + "JN_PreviewMask", + "JN_PrimitiveArrayInfo", + "JN_PrimitiveBatchToArray", + "JN_PrimitiveBoolean", + "JN_PrimitiveFloat", + "JN_PrimitiveInt", + "JN_PrimitivePrompt", + "JN_PrimitiveString", + "JN_PrimitiveStringMultiline", + "JN_PrimitiveStringToArray", + "JN_PrimitiveToArray", + "JN_PrimitiveToBoolean", + "JN_PrimitiveToFloat", + "JN_PrimitiveToInt", + "JN_PrimitiveToString", + "JN_RemBGSession", + "JN_SaveAudio", + "JN_SaveImage", + "JN_Seamless", + "JN_SeamlessBorder", + "JN_SeamlessBorderCrop", + "JN_SelectItem", + "JN_Sleep", + "JN_SleepOutput", + "JN_SliceOperation", + "JN_StopIf", + "JN_StopIfOutput", + "JN_TensorInfo", + "JN_TextConcatenation", + "JN_TextReplace", + "JN_TimedeltaFormat", + "JN_TimedeltaInfo" + ], + { + "title_aux": "JNComfy" + } + ], + "https://github.com/jnxmx/ComfyUI_HuggingFace_Downloader": [ + [ + "Hugging Face Download Folder", + "Hugging Face Download Model" + ], + { + "title_aux": "ComfyUI_HuggingFace_Downloader" + } + ], + "https://github.com/joanna910225/comfyui-housekeeper": [ + [ + "housekeeper-alignment", + "housekeeper-alignment-cmd", + "vue-basic" + ], + { + "title_aux": "HouseKeeper" + } + ], + "https://github.com/joeriben/ai4artsed_comfyui_nodes": [ + [ + "ai4artsed_conditioning_fusion", + "ai4artsed_image_analysis", + "ai4artsed_openrouter_key", + "ai4artsed_prompt_interception", + "ai4artsed_random_artform_generator", + "ai4artsed_random_instruction_generator", + "ai4artsed_random_language_selector", + "ai4artsed_stabilitai_key", + "ai4artsed_switch_promptsafety", + "ai4artsed_t5_clip_fusion", + "ai4artsed_text_remix", + "ai4artsed_vector_dimension_eliminator" + ], + { + "title_aux": "AI4ArtsEd Nodes" + } + ], + "https://github.com/john-mnz/ComfyUI-Inspyrenet-Rembg": [ + [ + "InspyrenetRembg", + "InspyrenetRembgAdvanced" + ], + { + "title_aux": "ComfyUI-Inspyrenet-Rembg" + } + ], "https://github.com/jojkaart/ComfyUI-sampler-lcm-alternative": [ [ "LCMScheduler", "SamplerLCMAlternative", - "SamplerLCMCycle" + "SamplerLCMCycle", + "SamplerLCMDualNoise", + "SamplerLCMDuoFusion", + "SamplerLCMParallel" ], { "title_aux": "ComfyUI-sampler-lcm-alternative" } ], + "https://github.com/joosthel/ComfyUI-CVOverlay": [ + [ + "CV_AestheticOverlay", + "CV_BlobTracker", + "CV_ModelLoader", + "CV_ObjectDetector" + ], + { + "title_aux": "ComfyUI-CVOverlay" + } + ], "https://github.com/jordoh/ComfyUI-Deepface": [ [ + "AverageList", + "DeepfaceAnalyze", "DeepfaceExtractFaces", "DeepfaceVerify" ], @@ -7940,6 +28438,66 @@ "title_aux": "ComfyUI Deepface" } ], + "https://github.com/joreyaesh/comfyui_scroll_over_textarea": [ + [ + "ScrollOverTextareaDummyNode" + ], + { + "title_aux": "ComfyUI Scroll Over Textarea" + } + ], + "https://github.com/joreyaesh/comfyui_touchpad_scroll_controller.enableTouchpadScroll": [ + [ + "TouchpadScrollControllerDummyNode" + ], + { + "title_aux": "ComfyUI Touchpad Scroll Controller" + } + ], + "https://github.com/jqy-yo/Comfyui-BBoxLowerMask2": [ + [ + "BBoxLowerMask2" + ], + { + "title_aux": "BBoxLowerMask2" + } + ], + "https://github.com/jqy-yo/comfyui-gemini-nodes": [ + [ + "GeminiFieldExtractor", + "GeminiImageBatchProcessor", + "GeminiImageEditor", + "GeminiImageGenADV", + "GeminiImageProcessor", + "GeminiJSONExtractor", + "GeminiJSONParser", + "GeminiStructuredOutput", + "GeminiTextAPI", + "GeminiVideoCaptioner", + "GeminiVideoGenerator", + "UnofficialGeminiAPI", + "UnofficialGeminiStreamAPI" + ], + { + "title_aux": "ComfyUI Gemini Nodes" + } + ], + "https://github.com/jroc22/ComfyUI-CSV-prompt-builder": [ + [ + "BuildPromptFromCSV" + ], + { + "title_aux": "ComfyUI-CSV-prompt-builder" + } + ], + "https://github.com/jstit/comfyui_custom_node_image": [ + [ + "ImageCropCircle" + ], + { + "title_aux": "comfyui_custom_node_image" + } + ], "https://github.com/jtrue/ComfyUI-JaRue": [ [ "Text2Image_jru", @@ -7950,13 +28508,387 @@ "title_aux": "ComfyUI-JaRue" } ], - "https://github.com/jtydhr88/ComfyUI-InstantMesh": [ + "https://github.com/jtrue/ComfyUI-Rect": [ [ - "InstantMeshLoader", - "InstantMeshRun" + "RectCrop", + "RectFill", + "RectMask", + "RectSelect" ], { - "title_aux": "ComfyUI-InstantMesh" + "description": "Rectangle selection and utilities for ComfyUI (modular).", + "nickname": "Rect", + "title": "Rect", + "title_aux": "ComfyUI-Rect" + } + ], + "https://github.com/jtrue/ComfyUI-WordEmbeddings": [ + [ + "WordEmbeddingsEquation", + "WordEmbeddingsExplorer", + "WordEmbeddingsInterpolator", + "WordEmbeddingsLoader", + "WordEmbeddingsLocalModelLoader", + "WordEmbeddingsTokenAxis", + "WordEmbeddingsTokenAxis2D", + "WordEmbeddingsTokenAxis3D", + "WordEmbeddingsTokenCentrality", + "WordEmbeddingsTokenNeighbors" + ], + { + "nodename_pattern": "_jru$", + "title_aux": "ComfyUI-WordEmbeddings" + } + ], + "https://github.com/jtydhr88/ComfyUI-AudioMass": [ + [ + "ComfyUIAudioMass" + ], + { + "title_aux": "ComfyUI-AudioMass" + } + ], + "https://github.com/jtydhr88/ComfyUI-Hunyuan3D-1-wrapper": [ + [ + "Hunyuan3D V1 - Image Loader", + "Hunyuan3D V1 - Image2Views", + "Hunyuan3D V1 - Image2Views Pipeline Load", + "Hunyuan3D V1 - Text2Image", + "Hunyuan3D V1 - Text2Image Pipeline Load", + "Hunyuan3D V1 - Views2Mesh", + "Hunyuan3D V1 - Views2Mesh Pipeline Load" + ], + { + "title_aux": "ComfyUI-Hunyuan3D-1-wrapper" + } + ], + "https://github.com/jtydhr88/ComfyUI-LayerDivider": [ + [ + "LayerDivider - Color Base", + "LayerDivider - Divide Layer", + "LayerDivider - Load SAM Mask Generator", + "LayerDivider - Segment Mask" + ], + { + "title_aux": "ComfyUI LayerDivider" + } + ], + "https://github.com/jtydhr88/ComfyUI-OpenCut": [ + [ + "ComfyUIOpenCut" + ], + { + "title_aux": "ComfyUI-OpenCut" + } + ], + "https://github.com/juddisjudd/ComfyUI-BawkNodes": [ + [ + "BawkSampler", + "DiffusionModelLoader", + "FluxImageSaver", + "FluxWildcardEncode" + ], + { + "title_aux": "Bawk Nodes Collection" + } + ], + "https://github.com/judian17/ComfyUI-Extract_Flux_Lora": [ + [ + "ExtractFluxLoRA" + ], + { + "title_aux": "ComfyUI-Extract_Flux_Lora" + } + ], + "https://github.com/judian17/ComfyUI-JoyCaption-beta-one-hf-llava-Prompt_node": [ + [ + "JoyCaptionOllamaExtraOptions", + "JoyCaptionOllamaPrompter" + ], + { + "title_aux": "ComfyUI-JoyCaption-beta-one-hf-llava-Prompt_node" + } + ], + "https://github.com/judian17/ComfyUI-UniWorld-jd17": [ + [ + "UniWorldEncoderNode", + "UniWorldScheduler", + "UniWorldSiglipEncoder", + "UniWorld_T5_CLIP_Encoder" + ], + { + "title_aux": "ComfyUI-UniWorld-jd17" + } + ], + "https://github.com/judian17/ComfyUI-joycaption-beta-one-GGUF": [ + [ + "JJC_JoyCaption_Custom_GGUF", + "JJC_JoyCaption_GGUF", + "JJC_JoyCaption_GGUF_ExtraOptions" + ], + { + "title_aux": "ComfyUI JoyCaption-Beta-GGUF Node" + } + ], + "https://github.com/judian17/ComfyUI_ZIM": [ + [ + "MaskToBbox_ZIM", + "MaskToPoints_ZIM", + "ZimSegment" + ], + { + "title_aux": "ComfyUI_ZIM" + } + ], + "https://github.com/juehackr/comfyui_fk_server": [ + [ + "FK_3dpose", + "FK_Node", + "FK_ShowBaseNode" + ], + { + "title_aux": "comfyui_fk_server" + } + ], + "https://github.com/jurdnf/ComfyUI-JurdnsIterativeNoiseKSampler": [ + [ + "KSamplerIterativeNoise" + ], + { + "title_aux": "ComfyUI-JurdnsIterativeNoiseKsampler" + } + ], + "https://github.com/jurdnf/ComfyUI-JurdnsModelSculptor": [ + [ + "ModelSculptorFlux", + "ModelSculptorSD3", + "ModelSculptorSDXL" + ], + { + "title_aux": "ComfyUI-JurdnsModelSculptor" + } + ], + "https://github.com/jurdnisglobby/ComfyUI-Jurdns-Groq-Node": [ + [ + "JurdnsGroqAPIPromptEnhancer" + ], + { + "title_aux": "Jurdns Groq API Node" + } + ], + "https://github.com/justUmen/Bjornulf_custom_nodes": [ + [ + "Bjornulf_APIGenerateCivitAI", + "Bjornulf_APIGenerateCivitAIAddLORA", + "Bjornulf_APIGenerateFalAI", + "Bjornulf_APIGenerateFlux", + "Bjornulf_APIGenerateGPT4o", + "Bjornulf_APIGenerateStability", + "Bjornulf_AddLineNumbers", + "Bjornulf_AllLoraSelector", + "Bjornulf_AnythingToFloat", + "Bjornulf_AnythingToInt", + "Bjornulf_AnythingToText", + "Bjornulf_ApiDynamicTextInputs", + "Bjornulf_AudioPreview", + "Bjornulf_AudioVideoSync", + "Bjornulf_BoundingRectangleMask", + "Bjornulf_BoundingRectangleMaskBlur", + "Bjornulf_CharacterDescriptionGenerator", + "Bjornulf_CivitAILoraSelector", + "Bjornulf_CivitAILoraSelectorHunyuan", + "Bjornulf_CivitAILoraSelectorPONY", + "Bjornulf_CivitAILoraSelectorSD15", + "Bjornulf_CivitAILoraSelectorSDXL", + "Bjornulf_CivitAIModelSelectorFLUX_D", + "Bjornulf_CivitAIModelSelectorFLUX_S", + "Bjornulf_CivitAIModelSelectorPony", + "Bjornulf_CivitAIModelSelectorSD15", + "Bjornulf_CivitAIModelSelectorSDXL", + "Bjornulf_CombineBackgroundOverlay", + "Bjornulf_CombineImages", + "Bjornulf_CombineTexts", + "Bjornulf_CombineTextsByLines", + "Bjornulf_CombineVideoAudio", + "Bjornulf_ConcatVideos", + "Bjornulf_ConcatVideosFromList", + "Bjornulf_ConditionalSwitch", + "Bjornulf_ConvertVideo", + "Bjornulf_DisplayNote", + "Bjornulf_EmptyVideoLatentWithSingle", + "Bjornulf_ExecuteWorkflowNode", + "Bjornulf_FFmpegConfig", + "Bjornulf_FaceSettings", + "Bjornulf_FixFace", + "Bjornulf_FourImageViewer", + "Bjornulf_FreeVRAM", + "Bjornulf_GlobalSeedManager", + "Bjornulf_GrayscaleTransform", + "Bjornulf_GreenScreenToTransparency", + "Bjornulf_HiResFix", + "Bjornulf_HorizontalCutAndShift", + "Bjornulf_HuggingFaceDownloader", + "Bjornulf_IfElse", + "Bjornulf_ImageBlend", + "Bjornulf_ImageDetails", + "Bjornulf_ImageMaskCutter", + "Bjornulf_ImageNote", + "Bjornulf_ImageNoteLoadImage", + "Bjornulf_ImageUpscaleWithModelTransparency", + "Bjornulf_ImagesListToVideo", + "Bjornulf_JSONImagePromptExtractor", + "Bjornulf_KokoroTTS", + "Bjornulf_LargestMaskOnly", + "Bjornulf_LatentResolutionSelector", + "Bjornulf_LineSelector", + "Bjornulf_ListLooper", + "Bjornulf_ListLooperCharacter", + "Bjornulf_ListLooperOutfitFemale", + "Bjornulf_ListLooperOutfitMale", + "Bjornulf_ListLooperScene", + "Bjornulf_ListLooperStyle", + "Bjornulf_ListSelector", + "Bjornulf_LoadCivitAILinks", + "Bjornulf_LoadFromBase64", + "Bjornulf_LoadGlobalVariables", + "Bjornulf_LoadImageWithTransparency", + "Bjornulf_LoadImageWithTransparencyFromPath", + "Bjornulf_LoadImagesFromSelectedFolder", + "Bjornulf_LoadTensor", + "Bjornulf_LoadTextFromFolder", + "Bjornulf_LoadTextFromPath", + "Bjornulf_LoadTextPickMeGlobal", + "Bjornulf_LoaderLoraWithPath", + "Bjornulf_LoopAllLines", + "Bjornulf_LoopBasicBatch", + "Bjornulf_LoopCombosSamplersSchedulers", + "Bjornulf_LoopFloat", + "Bjornulf_LoopImages", + "Bjornulf_LoopInteger", + "Bjornulf_LoopIntegerSequential", + "Bjornulf_LoopLinesSequential", + "Bjornulf_LoopLoraSelector", + "Bjornulf_LoopModelClipVae", + "Bjornulf_LoopModelSelector", + "Bjornulf_LoopRandomSeed", + "Bjornulf_LoopSamplers", + "Bjornulf_LoopSchedulers", + "Bjornulf_LoopTexts", + "Bjornulf_LoopWriteText", + "Bjornulf_LoraSelectorHunyuan", + "Bjornulf_LoraSelectorWanVideo", + "Bjornulf_MatchTextToInput", + "Bjornulf_MathNode", + "Bjornulf_MergeImagesHorizontally", + "Bjornulf_MergeImagesVertically", + "Bjornulf_ModelClipVaeSelector", + "Bjornulf_MultiOpenAIVisionNode", + "Bjornulf_OllamaConfig", + "Bjornulf_OllamaImageVision", + "Bjornulf_OllamaSystemJobSelector", + "Bjornulf_OllamaSystemPersonaSelector", + "Bjornulf_OllamaTalk", + "Bjornulf_OllamaVisionPromptSelector", + "Bjornulf_OpenAIVisionNode", + "Bjornulf_PassPreviewImage", + "Bjornulf_PauseResume", + "Bjornulf_PickInput", + "Bjornulf_PickMe", + "Bjornulf_PlayAudio", + "Bjornulf_PreviewFirstImage", + "Bjornulf_PurgeCLIPNode", + "Bjornulf_RandomFloatNode", + "Bjornulf_RandomImage", + "Bjornulf_RandomIntNode", + "Bjornulf_RandomLineFromInput", + "Bjornulf_RandomLoraSelector", + "Bjornulf_RandomModelClipVae", + "Bjornulf_RandomModelSelector", + "Bjornulf_RandomTexts", + "Bjornulf_ReassembleImageGrid", + "Bjornulf_RemoteTextEncodingWithCLIPs", + "Bjornulf_RemoteVAEDecoderNode", + "Bjornulf_RemoteVAEDecoderNodeTiled", + "Bjornulf_RemoveTransparency", + "Bjornulf_ResizeImage", + "Bjornulf_ResizeImagePercentage", + "Bjornulf_SaveBjornulfLobeChat", + "Bjornulf_SaveGlobalVariables", + "Bjornulf_SaveImagePath", + "Bjornulf_SaveImageToFolder", + "Bjornulf_SaveTensors", + "Bjornulf_SaveText", + "Bjornulf_SaveTmpAudio", + "Bjornulf_SaveTmpImage", + "Bjornulf_SaveTmpVideo", + "Bjornulf_ScramblerCharacter", + "Bjornulf_SelectImageFromList", + "Bjornulf_ShowFloat", + "Bjornulf_ShowInt", + "Bjornulf_ShowJson", + "Bjornulf_ShowStringText", + "Bjornulf_ShowText", + "Bjornulf_SpeechToText", + "Bjornulf_SplitImageGrid", + "Bjornulf_StyleSelector", + "Bjornulf_SwitchAnything", + "Bjornulf_SwitchText", + "Bjornulf_TextAnalyzer", + "Bjornulf_TextGenerator", + "Bjornulf_TextGeneratorCharacterCreature", + "Bjornulf_TextGeneratorCharacterFemale", + "Bjornulf_TextGeneratorCharacterMale", + "Bjornulf_TextGeneratorCharacterObject", + "Bjornulf_TextGeneratorCharacterPose", + "Bjornulf_TextGeneratorOutfitFemale", + "Bjornulf_TextGeneratorOutfitMale", + "Bjornulf_TextGeneratorScene", + "Bjornulf_TextGeneratorStyle", + "Bjornulf_TextGeneratorText2Video", + "Bjornulf_TextReplace", + "Bjornulf_TextSplitin10", + "Bjornulf_TextSplitin5", + "Bjornulf_TextToAnything", + "Bjornulf_TextToSpeech", + "Bjornulf_TextToStringAndSeed", + "Bjornulf_TextToVariable", + "Bjornulf_ToDoList", + "Bjornulf_VideoDetails", + "Bjornulf_VideoLatentResolutionSelector", + "Bjornulf_VideoPingPong", + "Bjornulf_VideoPreview", + "Bjornulf_VideoTextGenerator", + "Bjornulf_VideoToImagesList", + "Bjornulf_WriteText", + "Bjornulf_WriteTextAdvanced", + "Bjornulf_WriteTextPickMe", + "Bjornulf_WriteTextPickMeChain", + "Bjornulf_WriteTextPickMeGlobal", + "Bjornulf_XTTSConfig", + "Bjornulf_imagesToVideo", + "Bjornulf_loadImageBase64Transparency", + "Bjornulf_ollamaLoader" + ], + { + "title_aux": "Bjornulf_custom_nodes" + } + ], + "https://github.com/justin-vt/ComfyUI-brushstrokes": [ + [ + "OpenCVBrushStrokesNode", + "PILBrushStrokesNode", + "WandBrushStrokesNode" + ], + { + "title_aux": "ComfyUI-brushstrokes" + } + ], + "https://github.com/k-komarov/comfyui-bunny-cdn-storage": [ + [ + "Save Image to BunnyStorage" + ], + { + "title_aux": "comfyui-bunny-cdn-storage" } ], "https://github.com/ka-puna/comfyui-yanc": [ @@ -7966,23 +28898,113 @@ "YANC.GetWidgetValueString", "YANC.IntegerCaster", "YANC.MultilineString", + "YANC.SaveImageWEBP", "YANC.TruncateString" ], { "title_aux": "comfyui-yanc" } ], + "https://github.com/kaanyalova/ComfyUI_ExtendedImageFormats": [ + [ + "DDSSaveImage", + "ExtendedSaveImage" + ], + { + "title_aux": "Extended Image Formats for ComfyUI" + } + ], + "https://github.com/kaaskoek232/ComfyUI-MemoryManagement": [ + [ + "AutoMemoryCleanup", + "MemoryCleanup", + "MemoryLeakDetector", + "MemoryMonitor", + "SmartMemoryManager", + "VRAMOptimizer", + "VRAMUnload" + ], + { + "title_aux": "ComfyUI-MemoryManagement" + } + ], "https://github.com/kadirnar/ComfyUI-Transformers": [ [ - "DepthEstimationPipeline", + "DepthEstimationInference", "ImageClassificationPipeline", "ImageSegmentationPipeline", + "LoadDepthModel", "ObjectDetectionPipeline" ], { "title_aux": "ComfyUI-Transformers" } ], + "https://github.com/kadirnar/ComfyUI-YOLO": [ + [ + "BBoxToCoco", + "BBoxToXYWH", + "BBoxVisNode", + "CocoToNumber", + "ConvertToDict", + "CustomUltralyticsModelLoader", + "GetImageSize", + "ImageResizeAdvanced", + "UltralyticsInference", + "UltralyticsModelLoader", + "UltralyticsVisualization", + "ViewText" + ], + { + "title_aux": "ComfyUI-YOLO" + } + ], + "https://github.com/kael558/ComfyUI-GGUF-FantasyTalking": [ + [ + "CLIPLoaderGGUF", + "DownloadAndLoadWav2VecModel", + "FantasyTalkingModelLoader", + "FantasyTalkingWav2VecEmbeds", + "LoadWanVideoT5TextEncoderGGUF", + "ReCamMasterPoseVisualizer", + "UnetLoaderGGUF", + "UnetLoaderGGUF_LowVRAM", + "WanVideoATITracks", + "WanVideoATITracksVisualize", + "WanVideoATI_comfy", + "WanVideoControlnet", + "WanVideoControlnetLoader", + "WanVideoDiffusionForcingSampler", + "WanVideoFunCameraEmbeds", + "WanVideoReCamMasterCameraEmbed", + "WanVideoReCamMasterDefaultCamera", + "WanVideoReCamMasterGenerateOrbitCamera", + "WanVideoUni3C_ControlnetLoader", + "WanVideoUni3C_embeds", + "WanVideoUniAnimateDWPoseDetector", + "WanVideoUniAnimatePoseInput" + ], + { + "title_aux": "ComfyUI-GGUF-FantasyTalking" + } + ], + "https://github.com/kaibioinfo/ComfyUI_AdvancedRefluxControl": [ + [ + "ReduxAdvanced", + "StyleModelApplySimple" + ], + { + "title_aux": "Advanced Reflux control" + } + ], + "https://github.com/kaipard/comfyui-auto-latent-size": [ + [ + "AutoAspectLatent" + ], + { + "title_aux": "Auto Aspect Latent Generator" + } + ], "https://github.com/kale4eat/ComfyUI-path-util": [ [ "path_util_PathAbspath", @@ -8002,6 +29024,8 @@ "https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit": [ [ "SDT_AudioProperty", + "SDT_BSRoFormerApply", + "SDT_BSRoFormerLoader", "SDT_ConcatAudio", "SDT_CutAudio", "SDT_DemucsApply", @@ -8012,22 +29036,26 @@ "SDT_FasterWhisperTextFromSegments", "SDT_FasterWhisperTranscribe", "SDT_GriffinLim", + "SDT_HighpassBiquad", "SDT_JoinAudio", + "SDT_KotobaWhisperListSegments", + "SDT_KotobaWhisperLoaderLong", + "SDT_KotobaWhisperLoaderShort", + "SDT_KotobaWhisperSegmentProperty", + "SDT_KotobaWhisperTranscribeLong", + "SDT_KotobaWhisperTranscribeShort", "SDT_LFCC", "SDT_LoadAudio", "SDT_LoadAudios", + "SDT_LowpassBiquad", "SDT_MFCC", "SDT_MakeSilenceAudio", + "SDT_MelBandRoformerLoader", "SDT_MelSpectrogram", - "SDT_NemoAsrListSegments", - "SDT_NemoAsrListSubwords", "SDT_NemoAsrLoader", - "SDT_NemoAsrSegmentProperty", - "SDT_NemoAsrSubwordProperty", "SDT_NemoAsrTranscribe", "SDT_NueAsrLoader", "SDT_NueAsrTranscribe", - "SDT_PlayAudio", "SDT_PlotMelFilterBank", "SDT_PlotPitch", "SDT_PlotSpecgram", @@ -8035,7 +29063,6 @@ "SDT_PlotWaveForm", "SDT_ResampleAudio", "SDT_SaveAudio", - "SDT_SaveAudioWithSequentialNumbering", "SDT_SilenceAudio", "SDT_SileroVADApply", "SDT_SileroVADCollectChunks", @@ -8091,6 +29118,115 @@ "title_aux": "ComfyUI-text-file-util" } ], + "https://github.com/kambara/ComfyUI-PromptPalette": [ + [ + "PromptPalette" + ], + { + "title_aux": "ComfyUI-PromptPalette" + } + ], + "https://github.com/kanibus/kanibus": [ + [ + "AIDepthControl", + "AdvancedTrackingPro", + "BodyPoseEstimator", + "EmotionAnalyzer", + "HandTracking", + "KanibusMaster", + "LandmarkPro468", + "MultiControlNetApply", + "NeuralPupilTracker", + "NormalMapGenerator", + "ObjectSegmentation", + "SmartFacialMasking", + "TemporalSmoother", + "VideoFrameLoader" + ], + { + "title_aux": "KANIBUS - Advanced Eye Tracking ControlNet System" + } + ], + "https://github.com/kantsche/ComfyUI-MixMod": [ + [ + "MixModBandFFTGuiderNode", + "MixModDepthGuiderNode", + "MixModDynamicMaskAlternativeGuiderNode", + "MixModDynamicMaskGuiderNode", + "MixModFFTGuiderNode", + "MixModGuiderComponentNode", + "MixModGuiderComponentPipelineNode", + "MixModGuiderNode", + "MixModHighResGuiderNode", + "MixModOptionsMaskNode", + "MixModOptionsScaleNode", + "MixModOptionsSchedulerNode", + "MixModPipelineNode" + ], + { + "author": "Kantsche", + "description": "Model Mixture Guider", + "nickname": "MixMod", + "title": "ComfyUI-MixMod", + "title_aux": "ComfyUI-MixMod" + } + ], + "https://github.com/kappa54m/ComfyUI_Usability": [ + [ + "KLoadImageByPath", + "KLoadImageByPathAdvanced", + "KLoadImageDedup" + ], + { + "title_aux": "ComfyUI Usability" + } + ], + "https://github.com/karas17/ComfyUI-Camera-Watermark": [ + [ + "CameraWatermarkNode", + "ImageLoaderWithEXIF" + ], + { + "title_aux": "ComfyUI Camera Watermark" + } + ], + "https://github.com/karthikg-09/ComfyUI-Vton-Mask": [ + [ + "ComfyUIVtonMaskGenerator", + "ComfyUIVtonMaskLoader" + ], + { + "title_aux": "ComfyUI-Vton-Mask" + } + ], + "https://github.com/kasukanra/ComfyUI_StringToHex": [ + [ + "ColorNameToHex" + ], + { + "title_aux": "ComfyUI_StringToHex" + } + ], + "https://github.com/katalist-ai/comfyUI-nsfw-detection": [ + [ + "NudenetDetector" + ], + { + "title_aux": "comfyUI-nsfw-detection" + } + ], + "https://github.com/kazeyori/ComfyUI-QuickImageSequenceProcess": [ + [ + "QuickImageSequenceProcess" + ], + { + "author": "kazeyori", + "description": "A ComfyUI plugin for efficient image sequence processing. Features frame insertion, duplication, and removal with intuitive controls.", + "nickname": "QuickSeq", + "title": "Quick Image Sequence Process", + "title_aux": "ComfyUI-QuickImageSequenceProcess" + } + ], "https://github.com/kealiu/ComfyUI-S3-Tools": [ [ "Load Image From S3", @@ -8100,6 +29236,58 @@ "title_aux": "ComfyUI Load and Save file to S3" } ], + "https://github.com/kealiu/ComfyUI-Zero123-Porting": [ + [ + "Zero123: Image Preprocess", + "Zero123: Image Rotate in 3D" + ], + { + "title_aux": "ComfyUI-Zero123-Porting" + } + ], + "https://github.com/kealiu/ComfyUI-ZeroShot-MTrans": [ + [ + "ZeST: Grayout Subject" + ], + { + "title_aux": "ComfyUI-ZeroShot-MTrans" + } + ], + "https://github.com/keit0728/ComfyUI-Image-Toolkit": [ + [ + "AlphaFlatten", + "AlphaToGrayscale", + "AntialiasingImage", + "BinarizeImage", + "BinarizeImageUsingOtsu", + "BrightnessTransparency", + "GrayscaleImage", + "RemoveWhiteBackgroundNoise" + ], + { + "title_aux": "ComfyUI-Image-Toolkit" + } + ], + "https://github.com/keit0728/ComfyUI-keitNodes": [ + [ + "AspectRatioResolutionFinder", + "M2MTranslator", + "PixelLimitResizer", + "WanVideoOptimalResizer", + "WanVideoResolutionFinder" + ], + { + "title_aux": "ComfyUI-keitNodes" + } + ], + "https://github.com/keit0728/ComfyUI-musubi-tuner": [ + [ + "MusubiTunerWanGenerateVideo" + ], + { + "title_aux": "ComfyUI-musubi-tuner" + } + ], "https://github.com/kenjiqq/qq-nodes-comfyui": [ [ "Any List", @@ -8108,17 +29296,35 @@ "Axis Pack", "Axis To Any", "Axis Unpack", - "Image Accumulator End", - "Image Accumulator Start", "Load Lines From Text File", "Slice List", "Text Splitter", + "XY Grid Accumulator", "XY Grid Helper" ], { "title_aux": "qq-nodes-comfyui" } ], + "https://github.com/kevinmcmahondev/comfyui-kmcdev-image-filter-adjustments": [ + [ + "ImageBlankAlpha", + "ImageBlendMask", + "ImageFilterAdjustments", + "ImageMixColorByMask" + ], + { + "title_aux": "KMCDev Nodes" + } + ], + "https://github.com/kevinmcmahondev/comfyui-skin-tone-detector": [ + [ + "SkinToneDetector" + ], + { + "title_aux": "Skin Tone Detector for ComfyUI" + } + ], "https://github.com/kft334/Knodes": [ [ "Image(s) To Websocket (Base64)", @@ -8130,6 +29336,27 @@ "title_aux": "Knodes" } ], + "https://github.com/khanhlvg/vertex-ai-comfyui-nodes": [ + [ + "Chirp", + "Gemini", + "GeminiImage", + "ImagenComputedMaskConfig", + "ImagenMaskEditing", + "Imagen_Product_Recontext", + "Imagen_T2I", + "Lyria", + "PreviewVideo", + "Veo2", + "Veo2Extend", + "Veo3", + "Veo_Prompt_Writer", + "Virtual_Try_On" + ], + { + "title_aux": "[Unofficial] Vertex AI Custom Nodes for ComfyUI" + } + ], "https://github.com/kijai/ComfyUI-ADMotionDirector": [ [ "ADMD_AdditionalModelSelect", @@ -8172,12 +29399,58 @@ "https://github.com/kijai/ComfyUI-CCSR": [ [ "CCSR_Model_Select", - "CCSR_Upscale" + "CCSR_Upscale", + "DownloadAndLoadCCSRModel" ], { "title_aux": "ComfyUI-CCSR" } ], + "https://github.com/kijai/ComfyUI-CogVideoXWrapper": [ + [ + "CogVideoContextOptions", + "CogVideoControlNet", + "CogVideoDecode", + "CogVideoEnhanceAVideo", + "CogVideoImageEncode", + "CogVideoImageEncodeFunInP", + "CogVideoLatentPreview", + "CogVideoLoraSelect", + "CogVideoLoraSelectComfy", + "CogVideoSampler", + "CogVideoTextEncode", + "CogVideoTextEncodeCombine", + "CogVideoTransformerEdit", + "CogVideoXFasterCache", + "CogVideoXFunResizeToClosestBucket", + "CogVideoXModelLoader", + "CogVideoXTeaCache", + "CogVideoXTorchCompileSettings", + "CogVideoXVAELoader", + "DownloadAndLoadCogVideoControlNet", + "DownloadAndLoadCogVideoGGUFModel", + "DownloadAndLoadCogVideoModel", + "DownloadAndLoadToraModel", + "ToraEncodeOpticalFlow", + "ToraEncodeTrajectory" + ], + { + "title_aux": "ComfyUI CogVideoX Wrapper" + } + ], + "https://github.com/kijai/ComfyUI-ControlNeXt-SVD": [ + [ + "ControlNextDecode", + "ControlNextDiffusersScheduler", + "ControlNextGetPoses", + "ControlNextSVDApply", + "ControlNextSampler", + "DownloadAndLoadControlNeXt" + ], + { + "title_aux": "ComfyUI nodes for ControlNext-SVD v2" + } + ], "https://github.com/kijai/ComfyUI-DDColor": [ [ "DDColor_Colorize" @@ -8186,6 +29459,15 @@ "title_aux": "ComfyUI-DDColor" } ], + "https://github.com/kijai/ComfyUI-DepthAnythingV2": [ + [ + "DepthAnything_V2", + "DownloadAndLoadDepthAnythingV2Model" + ], + { + "title_aux": "ComfyUI-DepthAnythingV2" + } + ], "https://github.com/kijai/ComfyUI-DiffusionLight": [ [ "chrome_ball_to_envmap", @@ -8197,9 +29479,18 @@ ], "https://github.com/kijai/ComfyUI-DynamiCrafterWrapper": [ [ + "DownloadAndLoadCLIPModel", + "DownloadAndLoadCLIPVisionModel", + "DownloadAndLoadDynamiCrafterCNModel", + "DownloadAndLoadDynamiCrafterModel", "DynamiCrafterBatchInterpolation", + "DynamiCrafterCNLoader", + "DynamiCrafterControlnetApply", "DynamiCrafterI2V", - "DynamiCrafterModelLoader" + "DynamiCrafterLoadInitNoise", + "DynamiCrafterModelLoader", + "ToonCrafterDecode", + "ToonCrafterInterpolation" ], { "title_aux": "ComfyUI-DynamiCrafterWrapper" @@ -8207,6 +29498,8 @@ ], "https://github.com/kijai/ComfyUI-ELLA-wrapper": [ [ + "diffusers_model_loader", + "diffusers_sampler", "ella_model_loader", "ella_sampler", "ella_t5_embeds" @@ -8215,6 +29508,71 @@ "title_aux": "ComfyUI-ELLA-wrapper" } ], + "https://github.com/kijai/ComfyUI-Florence2": [ + [ + "DownloadAndLoadFlorence2Lora", + "DownloadAndLoadFlorence2Model", + "Florence2ModelLoader", + "Florence2Run" + ], + { + "preemptions": [ + "DownloadAndLoadFlorence2Lora", + "DownloadAndLoadFlorence2Model", + "Florence2ModelLoader", + "Florence2Run" + ], + "title_aux": "ComfyUI-Florence2" + } + ], + "https://github.com/kijai/ComfyUI-FluxTrainer": [ + [ + "ExtractFluxLoRA", + "FluxKohyaInferenceSampler", + "FluxTrainAndValidateLoop", + "FluxTrainBlockSelect", + "FluxTrainEnd", + "FluxTrainLoop", + "FluxTrainModelSelect", + "FluxTrainResume", + "FluxTrainSave", + "FluxTrainSaveModel", + "FluxTrainValidate", + "FluxTrainValidationSettings", + "FluxTrainerLossConfig", + "InitFluxLoRATraining", + "InitFluxTraining", + "InitSD3LoRATraining", + "InitSDXLLoRATraining", + "OptimizerConfig", + "OptimizerConfigAdafactor", + "OptimizerConfigProdigy", + "OptimizerConfigProdigyPlusScheduleFree", + "SD3ModelSelect", + "SD3TrainValidationSettings", + "SDXLModelSelect", + "SDXLTrainValidate", + "SDXLTrainValidationSettings", + "TrainDatasetAdd", + "TrainDatasetGeneralConfig", + "TrainDatasetRegularization", + "TrainNetworkConfig", + "UploadToHuggingFace", + "VisualizeLoss" + ], + { + "title_aux": "ComfyUI Flux Trainer" + } + ], + "https://github.com/kijai/ComfyUI-GIMM-VFI": [ + [ + "DownloadAndLoadGIMMVFIModel", + "GIMMVFI_interpolate" + ], + { + "title_aux": "ComfyUI-GIMM-VFI" + } + ], "https://github.com/kijai/ComfyUI-Geowizard": [ [ "geowizard_model_loader", @@ -8224,9 +29582,77 @@ "title_aux": "Geowizard depth and normal estimation in ComfyUI" } ], + "https://github.com/kijai/ComfyUI-HFRemoteVae": [ + [ + "HFRemoteVAE", + "HFRemoteVAEDecode" + ], + { + "title_aux": "ComfyUI-HFRemoteVae" + } + ], + "https://github.com/kijai/ComfyUI-HunyuanVideoWrapper": [ + [ + "DownloadAndLoadHyVideoTextEncoder", + "HunyuanVideoFresca", + "HunyuanVideoSLG", + "HyVideoBlockSwap", + "HyVideoCFG", + "HyVideoContextOptions", + "HyVideoCustomPromptTemplate", + "HyVideoDecode", + "HyVideoEmptyTextEmbeds", + "HyVideoEncode", + "HyVideoEncodeKeyframes", + "HyVideoEnhanceAVideo", + "HyVideoGetClosestBucketSize", + "HyVideoI2VEncode", + "HyVideoInverseSampler", + "HyVideoLatentPreview", + "HyVideoLoopArgs", + "HyVideoLoraBlockEdit", + "HyVideoLoraSelect", + "HyVideoModelLoader", + "HyVideoPromptMixSampler", + "HyVideoReSampler", + "HyVideoSTG", + "HyVideoSampler", + "HyVideoTeaCache", + "HyVideoTextEmbedBridge", + "HyVideoTextEmbedsLoad", + "HyVideoTextEmbedsSave", + "HyVideoTextEncode", + "HyVideoTextImageEncode", + "HyVideoTorchCompileSettings", + "HyVideoVAELoader" + ], + { + "title_aux": "ComfyUI-HunyuanVideoWrapper" + } + ], + "https://github.com/kijai/ComfyUI-IC-Light": [ + [ + "BackgroundScaler", + "CalculateNormalsFromImages", + "DetailTransfer", + "ICLightConditioning", + "LightSource", + "LoadAndApplyICLightUnet", + "LoadHDRImage" + ], + { + "title_aux": "ComfyUI-IC-Light" + } + ], "https://github.com/kijai/ComfyUI-KJNodes": [ [ "AddLabel", + "AppendInstanceDiffusionTracking", + "AppendStringsToList", + "ApplyRifleXRoPE_HunuyanVideo", + "ApplyRifleXRoPE_WanVideo", + "AudioConcatenate", + "BOOLConstant", "BatchCLIPSeg", "BatchCropFromMask", "BatchCropFromMaskAdvanced", @@ -8234,7 +29660,10 @@ "BatchUncropAdvanced", "BboxToInt", "BboxVisualize", + "CFGZeroStarAndInit", "CameraPoseVisualizer", + "CheckpointLoaderKJ", + "CheckpointPerturbWeights", "ColorMatch", "ColorToMask", "CondPassThrough", @@ -8247,47 +29676,113 @@ "CreateFadeMask", "CreateFadeMaskAdvanced", "CreateFluidMask", + "CreateGradientFromCoords", "CreateGradientMask", + "CreateInstanceDiffusionTracking", "CreateMagicMask", + "CreateShapeImageOnPath", "CreateShapeMask", + "CreateShapeMaskOnPath", "CreateTextMask", + "CreateTextOnPath", "CreateVoronoiMask", "CrossFadeImages", + "CrossFadeImagesMulti", + "CustomControlNetWeightsFluxFromList", "CustomSigmas", - "DummyLatentOut", + "CutAndDragOnPath", + "DiTBlockLoraLoader", + "DifferentialDiffusionAdvanced", + "DiffusionModelLoaderKJ", + "DiffusionModelSelector", + "DownloadAndLoadCLIPSeg", + "DrawInstanceDiffusionTracking", + "DummyOut", + "EmptyLatentImageCustomPresets", "EmptyLatentImagePresets", + "FastPreview", "FilterZeroMasksAndCorrespondingImages", "FlipSigmasAdjusted", "FloatConstant", "FloatToMask", - "GLIGENTextBoxApplyBatch", + "FloatToSigmas", + "FluxBlockLoraSelect", + "GLIGENTextBoxApplyBatchCoords", "GenerateNoise", "GetImageRangeFromBatch", + "GetImageSizeAndCount", "GetImagesFromBatchIndexed", + "GetLatentRangeFromBatch", + "GetLatentSizeAndCount", "GetLatentsFromBatchIndexed", + "GetMaskSizeAndCount", + "GradientToFloat", "GrowMaskWithBlur", + "HunyuanVideoBlockLoraSelect", + "HunyuanVideoEncodeKeyframesToCond", "INTConstant", + "ImageAddMulti", "ImageAndMaskPreview", + "ImageBatchFilter", + "ImageBatchJoinWithTransition", + "ImageBatchMulti", "ImageBatchRepeatInterleaving", "ImageBatchTestPattern", "ImageConcanate", + "ImageConcatFromBatch", + "ImageConcatMulti", + "ImageCropByMask", + "ImageCropByMaskAndResize", + "ImageCropByMaskBatch", "ImageGrabPIL", "ImageGridComposite2x2", "ImageGridComposite3x3", + "ImageGridtoBatch", + "ImageNoiseAugmentation", "ImageNormalize_Neg1_To_1", "ImagePadForOutpaintMasked", + "ImagePadForOutpaintTargetSize", + "ImagePadKJ", + "ImagePass", + "ImagePrepForICLora", + "ImageResizeKJ", + "ImageResizeKJv2", + "ImageTensorList", "ImageTransformByNormalizedAmplitude", + "ImageUncropByMask", "ImageUpscaleWithModelBatched", "InjectNoiseToLatent", "InsertImageBatchByIndexes", "InsertImagesToBatchIndexed", + "InsertLatentToIndexed", + "InterpolateCoords", "Intrinsic_lora_sampling", + "JoinStringMulti", "JoinStrings", + "LazySwitchKJ", + "LeapfusionHunyuanI2VPatcher", + "LoadAndResizeImage", + "LoadImagesFromFolderKJ", "LoadResAdapterNormalization", + "LoadVideosFromFolder", + "LoraExtractKJ", + "LoraReduceRankKJ", + "MaskBatchMulti", "MaskOrImageToWeight", + "MergeImageChannels", + "ModelPassThrough", + "ModelPatchTorchSettings", + "ModelSaveKJ", + "NormalizedAmplitudeToFloatList", "NormalizedAmplitudeToMask", "OffsetMask", "OffsetMaskByNormalizedAmplitude", + "PadImageBatchInterleaved", + "PatchModelPatcherOrder", + "PathchSageAttentionKJ", + "PlotCoordinates", + "PointsEditor", + "PreviewAnimation", "RemapImageRange", "RemapMaskRange", "ReplaceImagesInBatch", @@ -8295,25 +29790,99 @@ "ReverseImageBatch", "RoundMask", "SV3D_BatchSchedule", + "SaveImageKJ", "SaveImageWithAlpha", + "SaveStringKJ", "ScaleBatchPromptSchedule", + "ScheduledCFGGuidance", + "Screencap_mss", + "SeparateMasks", + "SetShakkerLabsUnionControlNetType", + "ShuffleImageBatch", + "SigmasToFloat", + "SkipLayerGuidanceWanVideo", "Sleep", "SomethingToString", "SoundReactive", "SplineEditor", "SplitBboxes", - "StabilityAPI_SD3", + "SplitImageChannels", "StableZero123_BatchSchedule", "StringConstant", "StringConstantMultiline", + "StringToFloatList", + "StyleModelApplyAdvanced", "Superprompt", + "TimerNodeKJ", + "TorchCompileControlNet", + "TorchCompileCosmosModel", + "TorchCompileLTXModel", + "TorchCompileModelFluxAdvanced", + "TorchCompileModelFluxAdvancedV2", + "TorchCompileModelHyVideo", + "TorchCompileModelQwenImage", + "TorchCompileModelWanVideo", + "TorchCompileModelWanVideoV2", + "TorchCompileVAE", + "TransitionImagesInBatch", + "TransitionImagesMulti", + "VAELoaderKJ", "VRAM_Debug", + "Wan21BlockLoraSelect", + "WanVideoEnhanceAVideoKJ", + "WanVideoNAG", + "WanVideoTeaCacheKJ", + "WebcamCaptureCV2", + "WeightScheduleConvert", + "WeightScheduleExtend", "WidgetToString" ], { "title_aux": "KJNodes for ComfyUI" } ], + "https://github.com/kijai/ComfyUI-KwaiKolorsWrapper": [ + [ + "DownloadAndLoadChatGLM3", + "DownloadAndLoadKolorsModel", + "KolorsSampler", + "KolorsTextEncode", + "LoadChatGLM3" + ], + { + "title_aux": "ComfyUI-KwaiKolorsWrapper" + } + ], + "https://github.com/kijai/ComfyUI-LBMWrapper": [ + [ + "LBMSampler", + "LoadLBMModel" + ], + { + "title_aux": "ComfyUI-LBMWrapper" + } + ], + "https://github.com/kijai/ComfyUI-LLaVA-OneVision": [ + [ + "DownloadAndLoadLLaVAOneVisionModel", + "LLaVA_OneVision_Run", + "OneVisionCaptionFolder", + "SaveCaptionToTextFile" + ], + { + "title_aux": "ComfyUI Llava-OneVision" + } + ], + "https://github.com/kijai/ComfyUI-LVCDWrapper": [ + [ + "LVCDDecoder", + "LVCDSampler", + "LoadLVCDModel" + ], + { + "title_aux": "ComfyUI wrapper nodes for LVCD" + } + ], "https://github.com/kijai/ComfyUI-LaVi-Bridge-Wrapper": [ [ "lavi_bridge_llama_encoder", @@ -8325,11 +29894,54 @@ "title_aux": "ComfyUI-LaVi-Bridge-Wrapper" } ], + "https://github.com/kijai/ComfyUI-LivePortraitKJ": [ + [ + "DownloadAndLoadLivePortraitModels", + "KeypointScaler", + "KeypointsToImage", + "LivePortraitComposite", + "LivePortraitCropper", + "LivePortraitLoadCropper", + "LivePortraitLoadFaceAlignmentCropper", + "LivePortraitLoadMediaPipeCropper", + "LivePortraitProcess", + "LivePortraitRetargeting" + ], + { + "title_aux": "ComfyUI-LivePortraitKJ" + } + ], + "https://github.com/kijai/ComfyUI-Lotus": [ + [ + "LoadLotusModel", + "LotusSampler" + ], + { + "title_aux": "ComfyUI-Lotus" + } + ], + "https://github.com/kijai/ComfyUI-LuminaWrapper": [ + [ + "DownloadAndLoadGemmaModel", + "DownloadAndLoadLuminaModel", + "GemmaSampler", + "LuminaGemmaTextEncode", + "LuminaGemmaTextEncodeArea", + "LuminaT2ISampler", + "LuminaTextAreaAppend" + ], + { + "title_aux": "ComfyUI-LuminaWrapper" + } + ], "https://github.com/kijai/ComfyUI-Marigold": [ [ "ColorizeDepthmap", "MarigoldDepthEstimation", "MarigoldDepthEstimationVideo", + "MarigoldDepthEstimation_v2", + "MarigoldDepthEstimation_v2_video", + "MarigoldModelLoader", "RemapDepth", "SaveImageOpenEXR" ], @@ -8337,6 +29949,65 @@ "title_aux": "Marigold depth estimation in ComfyUI" } ], + "https://github.com/kijai/ComfyUI-MelBandRoFormer": [ + [ + "MelBandRoFormerModelLoader", + "MelBandRoFormerSampler" + ], + { + "title_aux": "ComfyUI-MelBandRoFormer" + } + ], + "https://github.com/kijai/ComfyUI-MimicMotionWrapper": [ + [ + "DiffusersScheduler", + "DownloadAndLoadMimicMotionModel", + "MimicMotionDecode", + "MimicMotionGetPoses", + "MimicMotionSampler" + ], + { + "title_aux": "ComfyUI-MimicMotionWrapper" + } + ], + "https://github.com/kijai/ComfyUI-MoGe": [ + [ + "DownloadAndLoadMoGeModel", + "MoGeProcess" + ], + { + "title_aux": "ComfyUI-MoGe" + } + ], + "https://github.com/kijai/ComfyUI-OpenDiTWrapper": [ + [ + "DownloadAndLoadOpenDiTT5Model", + "DownloadAndLoadOpenSoraModel", + "DownloadAndLoadOpenSoraVAE", + "OpenDiTConditioning", + "OpenDiTSampler", + "OpenSoraDecode", + "OpenSoraEncodeReference" + ], + { + "title_aux": "ComfyUI-OpenDiTWrapper" + } + ], + "https://github.com/kijai/ComfyUI-PyramidFlowWrapper": [ + [ + "PyramidFlowLatentPreview", + "PyramidFlowSampler", + "PyramidFlowTextEncode", + "PyramidFlowTorchCompileSettings", + "PyramidFlowTransformerLoader", + "PyramidFlowVAEDecode", + "PyramidFlowVAEEncode", + "PyramidFlowVAELoader" + ], + { + "title_aux": "ComfyUI PyramidFlow Wrapper" + } + ], "https://github.com/kijai/ComfyUI-SUPIR": [ [ "SUPIR_Upscale", @@ -8346,6 +30017,7 @@ "SUPIR_first_stage", "SUPIR_model_loader", "SUPIR_model_loader_v2", + "SUPIR_model_loader_v2_clip", "SUPIR_sample", "SUPIR_tiles" ], @@ -8353,12 +30025,115 @@ "title_aux": "ComfyUI-SUPIR" } ], - "https://github.com/kijai/ComfyUI-SVD": [ + "https://github.com/kijai/ComfyUI-StableXWrapper": [ [ - "SVDimg2vid" + "DifferenceExtractorNode", + "DownloadAndLoadStableXModel", + "StableXProcessImage" ], { - "title_aux": "ComfyUI-SVD" + "title_aux": "ComfyUI-StableXWrapper" + } + ], + "https://github.com/kijai/ComfyUI-WanVideoWrapper": [ + [ + "CreateCFGScheduleFloatList", + "CreateScheduleFloatList", + "DownloadAndLoadNLFModel", + "DownloadAndLoadWav2VecModel", + "DrawNLFPoses", + "DummyComfyWanModelObject", + "ExtractStartFramesForContinuations", + "FantasyPortraitFaceDetector", + "FantasyPortraitModelLoader", + "FantasyTalkingModelLoader", + "FantasyTalkingWav2VecEmbeds", + "LandmarksToImage", + "LoadVQVAE", + "LoadWanVideoClipTextEncoder", + "LoadWanVideoT5TextEncoder", + "MTVCrafterEncodePoses", + "MultiTalkModelLoader", + "MultiTalkWav2VecEmbeds", + "NLFPredict", + "NormalizeAudioLoudness", + "QwenLoader", + "ReCamMasterPoseVisualizer", + "WanVideoATITracks", + "WanVideoATITracksVisualize", + "WanVideoATI_comfy", + "WanVideoAddControlEmbeds", + "WanVideoAddExtraLatent", + "WanVideoAddFantasyPortrait", + "WanVideoAddMTVMotion", + "WanVideoAddS2VEmbeds", + "WanVideoAddStandInLatent", + "WanVideoApplyNAG", + "WanVideoBlockList", + "WanVideoBlockSwap", + "WanVideoClipVisionEncode", + "WanVideoContextOptions", + "WanVideoControlEmbeds", + "WanVideoControlnet", + "WanVideoControlnetLoader", + "WanVideoDecode", + "WanVideoDiffusionForcingSampler", + "WanVideoEasyCache", + "WanVideoEmptyEmbeds", + "WanVideoEncode", + "WanVideoEnhanceAVideo", + "WanVideoExperimentalArgs", + "WanVideoExtraModelSelect", + "WanVideoFlowEdit", + "WanVideoFreeInitArgs", + "WanVideoFunCameraEmbeds", + "WanVideoImageClipEncode", + "WanVideoImageResizeToClosest", + "WanVideoImageToVideoEncode", + "WanVideoImageToVideoMultiTalk", + "WanVideoLatentReScale", + "WanVideoLoopArgs", + "WanVideoLoraBlockEdit", + "WanVideoLoraSelect", + "WanVideoLoraSelectMulti", + "WanVideoMagCache", + "WanVideoMiniMaxRemoverEmbeds", + "WanVideoModelLoader", + "WanVideoPhantomEmbeds", + "WanVideoPromptExtender", + "WanVideoPromptExtenderSelect", + "WanVideoReCamMasterCameraEmbed", + "WanVideoReCamMasterDefaultCamera", + "WanVideoReCamMasterGenerateOrbitCamera", + "WanVideoRealisDanceLatents", + "WanVideoRoPEFunction", + "WanVideoSLG", + "WanVideoSampler", + "WanVideoScheduler", + "WanVideoSetBlockSwap", + "WanVideoSetLoRAs", + "WanVideoSetRadialAttention", + "WanVideoSigmaToStep", + "WanVideoTeaCache", + "WanVideoTextEmbedBridge", + "WanVideoTextEncode", + "WanVideoTextEncodeCached", + "WanVideoTextEncodeSingle", + "WanVideoTinyVAELoader", + "WanVideoTorchCompileSettings", + "WanVideoUni3C_ControlnetLoader", + "WanVideoUni3C_embeds", + "WanVideoUniAnimateDWPoseDetector", + "WanVideoUniAnimatePoseInput", + "WanVideoVACEEncode", + "WanVideoVACEModelSelect", + "WanVideoVACEStartToEndFrame", + "WanVideoVAELoader", + "WanVideoVRAMManagement", + "Wav2VecModelLoader" + ], + { + "title_aux": "ComfyUI-WanVideoWrapper" } ], "https://github.com/kijai/ComfyUI-depth-fm": [ @@ -8378,6 +30153,36 @@ "title_aux": "ComfyUI-moondream" } ], + "https://github.com/kijai/ComfyUI-segment-anything-2": [ + [ + "DownloadAndLoadSAM2Model", + "Florence2toCoordinates", + "Sam2AutoSegmentation", + "Sam2Segmentation", + "Sam2VideoSegmentation", + "Sam2VideoSegmentationAddPoints" + ], + { + "preemptions": [ + "DownloadAndLoadSAM2Model", + "Florence2toCoordinates", + "Sam2AutoSegmentation", + "Sam2Segmentation", + "Sam2VideoSegmentation", + "Sam2VideoSegmentationAddPoints" + ], + "title_aux": "ComfyUI-segment-anything-2" + } + ], + "https://github.com/kimara-ai/ComfyUI-Kimara-AI-Advanced-Watermarks": [ + [ + "KimaraAIBatchImages", + "KimaraAIWatermarker" + ], + { + "title_aux": "Kimara.ai's Advanced Watermarking Tools" + } + ], "https://github.com/kinfolk0117/ComfyUI_GradientDeepShrink": [ [ "GradientPatchModelAddDownscale", @@ -8387,6 +30192,14 @@ "title_aux": "ComfyUI_GradientDeepShrink" } ], + "https://github.com/kinfolk0117/ComfyUI_GridSwapper": [ + [ + "GridSwapper" + ], + { + "title_aux": "Gridswapper" + } + ], "https://github.com/kinfolk0117/ComfyUI_Pilgram": [ [ "Pilgram" @@ -8407,21 +30220,86 @@ "title_aux": "SimpleTiles" } ], + "https://github.com/kk8bit/KayTool": [ + [ + "AB_Images", + "AIO_Translater", + "Abc_Math", + "Baidu_Translater", + "Color_Adjustment", + "Custom_Save_Image", + "Display_Any", + "Image_Composer", + "Image_Cropper", + "Image_Mask_Composer", + "Image_Resizer", + "Image_Size_Extractor", + "Kay_BiRefNet_Loader", + "Load_Image_Folder", + "Mask_Blur_Plus", + "Mask_Filler", + "Preview_Mask", + "Preview_Mask_Plus", + "RemBG_Loader", + "Remove_BG", + "Slider_10", + "Slider_100", + "Slider_1000", + "Strong_Prompt", + "Tencent_Translater", + "Text", + "To_Int" + ], + { + "title_aux": "KayTool" + } + ], "https://github.com/klinter007/klinter_nodes": [ [ - "Filter", - "PresentString", - "PrintFloats", - "SingleString", + "AspectSelector", + "BBoxCropper", + "FolderLoader", + "Json Extractor - klinter", + "LoadImagePlus", + "LoadVideoForExtendingKlinter", + "OutpaintPadding", + "PrepVideoForExtendKlinter", + "SaveAudioPlus", "SizeSelector", + "SpeedRamp", + "YellowBus", + "ZoomOutComposer", "concat", - "concat_klinter", - "whitelist" + "filter", + "nodevalue2stringmulti", + "string_contact_multi" ], { "title_aux": "Klinter_nodes" } ], + "https://github.com/kmlbdh/ComfyUI-kmlbdh-VideoCombine": [ + [ + "DeleteFolderAny", + "KMLBDH_RAMCleaner", + "KMLBDH_VideoCombine" + ], + { + "title_aux": "kmlbdh Video Combine (Smart + Tiled)" + } + ], + "https://github.com/kmlbdh/ComfyUI_LocalLLMNodes": [ + [ + "AddUserLocalKontextPreset", + "ArabicProductDescriptionGenerator", + "LocalKontextPromptGenerator", + "RemoveUserLocalKontextPreset", + "SetLocalLLMServiceConnector" + ], + { + "title_aux": "ComfyUI_LocalLLMNodes" + } + ], "https://github.com/knuknX/ComfyUI-Image-Tools": [ [ "BatchImagePathLoader", @@ -8437,6 +30315,18 @@ "title_aux": "ComfyUI-Image-Tools" } ], + "https://github.com/kohs100/comfyui-ppwc": [ + [ + "PPWCReplace" + ], + { + "author": "Phospholipids", + "description": "This extension offers wildcard prompting works solely in workflow.", + "nickname": "PPWC", + "title": "PPWildCard", + "title_aux": "PPWildCard" + } + ], "https://github.com/kohya-ss/ControlNet-LLLite-ComfyUI": [ [ "LLLiteLoader" @@ -8484,6 +30374,107 @@ "title_aux": "komojini-comfyui-nodes" } ], + "https://github.com/kostenickj/jk-comfyui-helpers": [ + [ + "EasyHRFix", + "EasyHRFix_Context", + "JKAnythingToString", + "JKBigContext", + "JKDynamicThresholdingMultiModel", + "JKEasyCheckpointLoader", + "JKEasyDetailer", + "JKEasyDetailer_Context", + "JKEasyKSampler_Context", + "JKEasyUpscaleImage", + "JKEasyWatermark", + "JKInspireSchedulerAdapter", + "JKLilContext", + "JKMultiModelSamplerUnpatch", + "JKStringEmpty", + "JKStringEquals", + "JKStringNotEmpty", + "JKStringNotEquals", + "JKStringToSamplerAdapter" + ], + { + "title_aux": "comfyui-jk-easy-nodes" + } + ], + "https://github.com/kpsss34/ComfyUI-kpsss34": [ + [ + "SD35sLoaderSampler" + ], + { + "title_aux": "ComfyUI kpsss34 Custom Node" + } + ], + "https://github.com/krakenunbound/ComfyUI-KrakenTools": [ + [ + "KrakenFluxEmptyLatentImage", + "KrakenResolutionHelper", + "KrakenUpscaleTileCalc" + ], + { + "title_aux": "ComfyUI-KrakenTools" + } + ], + "https://github.com/krigeta/qwen-image-controlnets-comfyui": [ + [ + "QwenImageBlockwiseControlNetApply", + "QwenImageBlockwiseControlNetLoader", + "QwenImageCannyPreprocessor", + "QwenImageDepthPreprocessor" + ], + { + "title_aux": "qwen-image-controlnets-comfyui" + } + ], + "https://github.com/krmahil/comfyui-hollow-preserve": [ + [ + "RemoveEnclosedMaskedAreas" + ], + { + "title_aux": "Hollow Preserve" + } + ], + "https://github.com/kukuo6666/ComfyUI-Equirect": [ + [ + "CubemapToEquirect", + "EquirectToCubemap" + ], + { + "title_aux": "ComfyUI Equirectangular Tools" + } + ], + "https://github.com/kungful/ComfyUI_to_webui": [ + [ + "BarcodeGeneratorNode", + "Barcode_seed", + "DeepseekNode", + "Go_to_image", + "GradioInputImage", + "GradioTextBad", + "GradioTextOk", + "HuaFloatNode", + "HuaIntNode", + "Hua_CheckpointLoaderSimple", + "Hua_LoraLoader", + "Hua_LoraLoaderModelOnly", + "Hua_Output", + "Hua_UNETLoader", + "Hua_Video_Output", + "Hua_gradio_Seed", + "Hua_gradio_jsonsave", + "Hua_gradio_resolution", + "Huaword", + "Modelhua", + "brucelee", + "\u5c0f\u5b57\u4f53\u8bf4\u660e\uff1a\u6211\u662fcomfyui_hua_boy\u7684model" + ], + { + "title_aux": "ComfyUI_to_webui" + } + ], "https://github.com/kunieone/ComfyUI_alkaid": [ [ "A_EmptyLatentImageLongside", @@ -8506,6 +30497,14 @@ "title_aux": "ComfyUI_alkaid" } ], + "https://github.com/kusurin/ComfyUI-chronophotography": [ + [ + "CreateChronophotography" + ], + { + "title_aux": "ComfyUI-chronophotography" + } + ], "https://github.com/kwaroran/abg-comfyui": [ [ "Remove Image Background (abg)" @@ -8514,6 +30513,74 @@ "title_aux": "abg-comfyui" } ], + "https://github.com/kycg/comfyui-Lora-auto-downloader": [ + [ + "Kw_JsonLoraLoader", + "Kw_Json_Lora_CivitAIDownloader" + ], + { + "title_aux": "Kw_Json_Lora_CivitAIDownloader" + } + ], + "https://github.com/l-comm/WatermarkRemoval": [ + [ + "FindWatermarkNode", + "RemoveWatermarkNode" + ], + { + "author": "l-comm", + "description": "Remove watermark", + "nickname": "Watermark Removal", + "title": "Watermark Removal", + "title_aux": "WatermarkRemoval" + } + ], + "https://github.com/l20richo/ComfyUI-Azure-Blob-Storage": [ + [ + "DownloadFileBLOB", + "LoadImageBLOB", + "SaveImageBLOB", + "SaveVideoFilesBLOB", + "UploadFileBLOB" + ], + { + "title_aux": "ComfyUI-Azure-Blob-Storage" + } + ], + "https://github.com/l3ony2k/comfyui-leon-nodes": [ + [ + "Leon_ByteDance_Image_API_Node", + "Leon_DALLE_Image_API_Node", + "Leon_Flux_Image_API_Node", + "Leon_Flux_Kontext_API_Node", + "Leon_GPT_Image_API_Node", + "Leon_GPT_OSS_API_Node", + "Leon_Google_Image_API_Node", + "Leon_Hypr_Upload_Node", + "Leon_Ideogram_Image_API_Node", + "Leon_Image_Split_4Grid_Node", + "Leon_ImgBB_Upload_Node", + "Leon_LLM_Chat_API_Node", + "Leon_LLM_JSON_API_Node", + "Leon_Luma_AI_Image_API_Node", + "Leon_Midjourney_Describe_API_Node", + "Leon_Midjourney_Proxy_API_Node", + "Leon_Midjourney_Upload_API_Node", + "Leon_Model_Selector_Node", + "Leon_Nano_Banana_API_Node", + "Leon_Qwen_Image_API_Node", + "Leon_Qwen_Image_Edit_API_Node", + "Leon_Recraft_Image_API_Node", + "Leon_StableDiffusion_35_API_Node", + "Leon_StableDiffusion_3_Ultra_API_Node", + "Leon_StableDiffusion_XL_API_Node", + "Leon_String_Combine_Node" + ], + { + "nodename_pattern": "^\ud83e\udd16 Leon", + "title_aux": "Leon's Utility and API Integration Nodes" + } + ], "https://github.com/laksjdjf/Batch-Condition-ComfyUI": [ [ "Batch String", @@ -8524,6 +30591,16 @@ "title_aux": "Batch-Condition-ComfyUI" } ], + "https://github.com/laksjdjf/ComfyUI-Imatrix": [ + [ + "ImatrixUNETLoader", + "LoRAdiff", + "SaveImatrix" + ], + { + "title_aux": "ComfyUI-Imatrix" + } + ], "https://github.com/laksjdjf/LCMSampler-ComfyUI": [ [ "SamplerLCM", @@ -8541,14 +30618,6 @@ "title_aux": "LoRTnoC-ComfyUI" } ], - "https://github.com/laksjdjf/attention-couple-ComfyUI": [ - [ - "Attention couple" - ], - { - "title_aux": "attention-couple-ComfyUI" - } - ], "https://github.com/laksjdjf/cd-tuner_negpip-ComfyUI": [ [ "CDTuner", @@ -8559,6 +30628,19 @@ "title_aux": "cd-tuner_negpip-ComfyUI" } ], + "https://github.com/laksjdjf/cgem156-ComfyUI": [ + [ + "GradualLatentSampler", + "LCMSamplerRCFG", + "LoadAestheticShadow", + "PredictAesthetic", + "TCDSampler", + "TextScheduler" + ], + { + "title_aux": "cgem156-ComfyUI\ud83c\udf4c" + } + ], "https://github.com/laksjdjf/pfg-ComfyUI": [ [ "PFG" @@ -8567,28 +30649,621 @@ "title_aux": "pfg-ComfyUI" } ], + "https://github.com/larsupb/LoRA-Merger-ComfyUI": [ + [ + "PM LoRA Apply", + "PM LoRA Loader", + "PM LoRA Merger", + "PM LoRA Resizer", + "PM LoRA SVD Merger", + "PM LoRA Save", + "XY: PM LoRA Modes", + "XY: PM LoRA SVD Rank", + "XY: PM LoRA Strengths" + ], + { + "title_aux": "LoRA Power-Merger ComfyUI" + } + ], + "https://github.com/latenightlabs/ComfyUI-LNL": [ + [ + "LNL_FrameSelectorV3", + "LNL_FrameSelectorV4" + ], + { + "title_aux": "LNL Frame Selector" + } + ], + "https://github.com/lazniak/Head-Orientation-Node-for-ComfyUI---by-PabloGFX": [ + [ + "HeadOrientationNode" + ], + { + "title_aux": "Head-Orientation-Node - by PabloGFX" + } + ], + "https://github.com/lazniak/LiquidTime-Interpolation": [ + [ + "LiquidTime" + ], + { + "title_aux": "LiquidTime - by PabloGFX" + } + ], + "https://github.com/lazniak/comfyui-google-photos-loader": [ + [ + "ContentFilter", + "DatePicker", + "Google Photos Album Lister", + "Google Photos Album Loader", + "Google Photos Album Selector", + "Google Photos Cache Manager", + "Google Photos Clear Cache", + "Google Photos Images Loader", + "Google Photos Login/Logout" + ], + { + "title_aux": "Google Photos Loader - by PabloGFX" + } + ], + "https://github.com/lc03lc/Comfyui_OmniConsistency": [ + [ + "Comfyui_OmniConsistency" + ], + { + "title_aux": "ComfyUI OmniConsistency Nodes" + } + ], + "https://github.com/lceric/comfyui-gpt-image": [ + [ + "GPTImage1Generate" + ], + { + "title_aux": "comfyui-gpt-image" + } + ], + "https://github.com/lebrosoft/ComfyUI-VideoChatWrapper": [ + [ + "AudioCombine", + "ConcatAudio", + "ConvertAudioChannels", + "JoinAudio", + "ResampleAudio", + "SplitAudio", + "VCW_LoadVideo", + "VCW_ModelLoader", + "VCW_VideoSummary" + ], + { + "title_aux": "ComfyUI-VideoChatWrapper" + } + ], + "https://github.com/leeguandong/ComfyUI_1Prompt1Story": [ + [ + "GenerateStoryImage", + "PromptStoryModelLoader" + ], + { + "title_aux": "ComfyUI_1Prompt1Story" + } + ], + "https://github.com/leeguandong/ComfyUI_ChatGen": [ + [ + "ChatGenGenerate", + "ChatGenImageProcessor", + "ChatGenModelLoader" + ], + { + "title_aux": "ComfyUI_ChatGen" + } + ], + "https://github.com/leeguandong/ComfyUI_Cogview4": [ + [ + "CogView4ImageGenerator", + "CogView4ModelLoader" + ], + { + "title_aux": "ComfyUI_Cogview4" + } + ], + "https://github.com/leeguandong/ComfyUI_CompareModelWeights": [ + [ + "CheckPointLoader_Compare", + "CompareModelWeightsDiff", + "CompareModelWeightsDiffNormalized", + "PreviewImageCompareModelWeights" + ], + { + "title_aux": "ComfyUI_CompareModelWeights" + } + ], + "https://github.com/leeguandong/ComfyUI_CrossImageAttention": [ + [ + "AppearanceTransferInference", + "AppearanceTransferModelModelLoader", + "CIAConfig", + "LoadImagePath", + "LoadLatents" + ], + { + "title_aux": "ComfyUI nodes to use CrossImageAttention" + } + ], + "https://github.com/leeguandong/ComfyUI_DeepSeekVL2": [ + [ + "deepseek_vl2_inference", + "deepseek_vl2_model_loader" + ], + { + "title_aux": "ComfyUI_DeepSeekVL2" + } + ], + "https://github.com/leeguandong/ComfyUI_FluxAttentionMask": [ + [ + "AMModelLoader", + "AMSample", + "AttentionMask" + ], + { + "title_aux": "ComfyUI nodes to use AttentionMask" + } + ], + "https://github.com/leeguandong/ComfyUI_FluxClipWeight": [ + [ + "CLIPTextEncodeFluxWeight" + ], + { + "title_aux": "ComfyUI nodes to use FluxClipWeight" + } + ], + "https://github.com/leeguandong/ComfyUI_FluxCustomId": [ + [ + "ApplyCustomIDFlux", + "CustomIDModelLoader" + ], + { + "title_aux": "ComfyUI_FluxCustomId" + } + ], + "https://github.com/leeguandong/ComfyUI_FluxLayerDiffuse": [ + [ + "FluxTransparentI2I", + "FluxTransparentModelLoader", + "FluxTransparentT2I" + ], + { + "title_aux": "ComfyUI_FluxLayerDiffuse" + } + ], + "https://github.com/leeguandong/ComfyUI_Gemma3": [ + [ + "ApplyGemma3", + "Gemma3ModelLoader" + ], + { + "title_aux": "ComfyUI_Gemma3" + } + ], + "https://github.com/leeguandong/ComfyUI_InternVL2": [ + [ + "DynamicPreprocess", + "InternVLHFInference", + "InternVLLMDEPLOYInference", + "InternVLModelLoader" + ], + { + "title_aux": "ComfyUI_InternVL2" + } + ], + "https://github.com/leeguandong/ComfyUI_LLaSM": [ + [ + "LLaSM2Interface", + "LLaSM2ModelLoader", + "LLaSMLoadAudio" + ], + { + "title_aux": "ComfyUI_LLaSM" + } + ], + "https://github.com/leeguandong/ComfyUI_M3Net": [ + [ + "M3Net_Interface", + "M3Net_ModelLoader" + ], + { + "title_aux": "ComfyUI_M3Net" + } + ], + "https://github.com/leeguandong/ComfyUI_MasaCtrl": [ + [ + "DirectSampler", + "MasaCtrlConcatImage", + "MasaCtrlInversion", + "MasaCtrlLoadImage", + "MasaCtrlModelLoader", + "MutualSelfAttentionControlMaskAutoSampler", + "MutualSelfAttentionControlSampler" + ], + { + "title_aux": "ComfyUI nodes to use MasaCtrl" + } + ], + "https://github.com/leeguandong/ComfyUI_QWQ32B": [ + [ + "QwQModelLoader", + "QwQTextGenerator" + ], + { + "title_aux": "ComfyUI_QWQ32B" + } + ], + "https://github.com/leeguandong/ComfyUI_Style_Aligned": [ + [ + "SAControlnet_ModelLoader", + "SADepth", + "SAHandler", + "SAInversion", + "SASDXLControlnetKsampler", + "SASDXLKampler", + "SASDXLTransferKsampler", + "SASDXL_ModelLoader", + "SchedulerLoader" + ], + { + "title_aux": "ComfyUI nodes to use Style-Aligned" + } + ], + "https://github.com/leeguandong/ComfyUI_VideoEditing": [ + [ + "LoadVideo2Images", + "VEdit_ControlNet_ModelLoader", + "VEdit_ModelLoader", + "VEdit_Sampler", + "VEdit_image2canny" + ], + { + "title_aux": "ComfyUI nodes to use VideoEditing" + } + ], + "https://github.com/leeguandong/ComfyUI_VisualAttentionMap": [ + [ + "DecodeLatent", + "HFModelLoader", + "ShowCrossAttn", + "ShowImages", + "ShowSelfAttn", + "Text2ImageInference" + ], + { + "title_aux": "ComfyUI_VisualAttentionMap" + } + ], + "https://github.com/leestuartx/ComfyUI-GG": [ + [ + "AddPaddingToImage", + "ForLoopNode", + "ImageAndTextDescriptionBySeed", + "ImageMetadataExtractor", + "InputNode", + "MetadataExtractBySeed", + "MetadataExtractorBySeed", + "OutputNode", + "ResizeImageProportionally", + "WorkspaceNode" + ], + { + "title_aux": "ComfyUI-GG" + } + ], + "https://github.com/lenskikh/ComfyUI-Prompt-Worker": [ + [ + "Clip and Text -> Encode", + "Prompt Body", + "Prompt Clothes", + "Prompt Merger", + "Prompt Worker", + "Prompt \u0421onstructor" + ], + { + "title_aux": "Propmt Worker" + } + ], + "https://github.com/leoleelxh/Comfy-Topaz-Photo": [ + [ + "ComfyTopazPhoto", + "ComfyTopazPhotoTestAndClean" + ], + { + "title_aux": "Comfy-Topaz-Photo" + } + ], "https://github.com/leoleelxh/ComfyUI-LLMs": [ [ - "\ud83d\uddbc\ufe0f LLMs_Vison_Ali", - "\ud83d\uddbc\ufe0f LLMs_Vison_GLM4", - "\ud83d\uddbc\ufe0f LLMs_Vison_Gemini", - "\ud83d\ude00 LLMs_Chat", - "\ud83d\ude00 LLMs_Chat_GLM4_Only" + "LLMs Chat", + "LLMs Vision Unified", + "LLMs_Vision_Unified" ], { "title_aux": "ComfyUI-LLMs" } ], - "https://github.com/lilly1987/ComfyUI_node_Lilly": [ + "https://github.com/leonardomiramondi/flux-context-comfyui": [ [ - "CheckpointLoaderSimpleText", - "LoraLoaderText", - "LoraLoaderTextRandom", - "Random_Sampler", - "VAELoaderDecode" + "FluxKontextNode" ], { - "title_aux": "simple wildcard for ComfyUI" + "title_aux": "Flux Context ComfyUI Node" + } + ], + "https://github.com/lepiai/ComfyUI-Minitools": [ + [ + "LP-CropTransparentEdges", + "LP-ImageToMaskWithAlpha", + "LP-TranslateToEN", + "LP-color2RGB", + "LP-hex2dec", + "NumericSlider" + ], + { + "title_aux": "ComfyUI-Minitools" + } + ], + "https://github.com/lerignoux/ComfyUI-PechaKucha": [ + [ + "GeneratePowerpoint", + "SplitPrompt" + ], + { + "title_aux": "ComfyUI-PechaKucha" + } + ], + "https://github.com/lerignoux/ComfyUI-Stable3DGen": [ + [ + "Stable3DGenerate3D", + "Stable3DLoadModels", + "Stable3DPreprocessImage" + ], + { + "title_aux": "ComfyUI Stable3DGen" + } + ], + "https://github.com/lgldlk/ComfyUI-PC-ding-dong": [ + [ + "pc ding dong", + "pc ding dong text", + "pc time sleep" + ], + { + "title_aux": "ComfyUI-PC-ding-dong" + } + ], + "https://github.com/lgldlk/ComfyUI-PSD-Replace": [ + [ + "psd replace" + ], + { + "title_aux": "ComfyUI-PSD-Replace" + } + ], + "https://github.com/liangt/comfyui-loadimagewithsubfolder": [ + [ + "LoadImageWithSubfolder" + ], + { + "title_aux": "comfyui-loadimagewithsubfolder" + } + ], + "https://github.com/licyk/ComfyUI-HakuImg": [ + [ + "BlendImage", + "Blur", + "Chromatic", + "Color", + "Curve", + "CustomExif", + "Flip", + "Glow", + "InOutPaint", + "LenDistortion", + "OutlineExpansion", + "PixelOE", + "Pixelize", + "PreResize", + "SaveImageWithCustomExif", + "Sketch", + "TiltShift" + ], + { + "title_aux": "ComfyUI-HakuImg" + } + ], + "https://github.com/licyk/ComfyUI-TCD-Sampler": [ + [ + "TCDScheduler" + ], + { + "title_aux": "ComfyUI-TCD-Sampler" + } + ], + "https://github.com/lihaoyun6/ComfyUI-BlindWatermark": [ + [ + "ApplyBlindWatermark", + "ApplyBlindWatermarkAdvanced", + "DecodeBlindWatermark", + "DecodeBlindWatermarkAdvanced" + ], + { + "title_aux": "ComfyUI-BlindWatermark" + } + ], + "https://github.com/lihaoyun6/ComfyUI-CSV-Random-Picker": [ + [ + "CSVRandomPicker" + ], + { + "title_aux": "ComfyUI-CSV-Random-Picker" + } + ], + "https://github.com/lihaoyun6/ComfyUI-QwenPromptRewriter": [ + [ + "QwenPromptRewriter" + ], + { + "title_aux": "Comfyui-QwenPromptRewriter" + } + ], + "https://github.com/lingha0h/comfyui_kj": [ + [ + "cpm_textInput" + ], + { + "title_aux": "comfyui_kj" + } + ], + "https://github.com/linjian-ufo/ComfyUI_GLM4V_voltspark": [ + [ + "Glm4vBatchNode", + "Glm4vNode" + ], + { + "title_aux": "GLM-4V Image Descriptor" + } + ], + "https://github.com/linjian-ufo/comfyui_deepseek_lj257_update": [ + [ + "DeepSeekChatNode" + ], + { + "title_aux": "DeepSeek Chat Node for ComfyUI" + } + ], + "https://github.com/linksluckytime/comfyui_snacknodes": [ + [ + "ImageInfo", + "ImageScaler", + "TextBox", + "TextProcessor" + ], + { + "title_aux": "comfyui_snacknodes" + } + ], + "https://github.com/linshier/comfyui-remote-tools": [ + [ + "LoadBase64(js)", + "LoadBase64FromRemote", + "SendBase64ToRemote" + ], + { + "title_aux": "comfyui-remote-tools" + } + ], + "https://github.com/lisaks/comfyui-panelforge": [ + [ + "FrameNode", + "PageNode", + "RowNode" + ], + { + "title_aux": "Pixstri ComfyUI Comics" + } + ], + "https://github.com/liuqianhonga/ComfyUI-Html2Image": [ + [ + "CameraWatermark", + "TemplateToImage", + "WebpageScreenshot" + ], + { + "title_aux": "ComfyUI-Html2Image" + } + ], + "https://github.com/liuqianhonga/ComfyUI-Image-Compressor": [ + [ + "BatchImageCompressor", + "ImageCompressor" + ], + { + "title_aux": "ComfyUI-Image-Compressor" + } + ], + "https://github.com/liuqianhonga/ComfyUI-QHNodes": [ + [ + "BatchImageCompressor", + "CameraWatermark", + "DownloadCheckpoint", + "DownloadControlNet", + "DownloadLora", + "DownloadUNET", + "DownloadVAE", + "DynamicExpression", + "FileSave", + "Gemini", + "ImageCompressor", + "ImageCountFromFolder", + "JsonToCSV", + "JsonUnpack", + "LoadImageFromFolder", + "LoadLoraFromFolder", + "LoadPromptsFromFolder", + "PresetSizeLatent", + "SamplerSettings", + "ShowTranslateString", + "StringConverter", + "StringFormatter", + "StringList", + "StringListFromCSV", + "StringListToCSV", + "StringMatcher", + "StringTranslate", + "TemplateToImage", + "TimeFormatter", + "UnifiedPromptGenerator", + "WebpageScreenshot" + ], + { + "title_aux": "ComfyUI-QHNodes" + } + ], + "https://github.com/liuqianhonga/ComfyUI-String-Helper": [ + [ + "JsonToCSV", + "ShowTranslateString", + "StringConverter", + "StringFormatter", + "StringList", + "StringListFromCSV", + "StringListToCSV", + "StringMatcher", + "StringTranslate", + "TimeFormatter" + ], + { + "title_aux": "ComfyUI-String-Helper" + } + ], + "https://github.com/liushuchun/ComfyUI_Lora_List_With_Url_Loader": [ + [ + "LoraListUrlLoader" + ], + { + "title_aux": "ComfyUI_Lora_List_With_Url_Loader" + } + ], + "https://github.com/liusida/ComfyUI-AutoCropFaces": [ + [ + "AutoCropFaces" + ], + { + "title_aux": "ComfyUI-AutoCropFaces" + } + ], + "https://github.com/liusida/ComfyUI-B-LoRA": [ + [ + "LoadBLoRA" + ], + { + "title_aux": "ComfyUI-B-LoRA" } ], "https://github.com/liusida/ComfyUI-Debug": [ @@ -8601,47 +31276,286 @@ "title_aux": "ComfyUI-Debug" } ], - "https://github.com/ljleb/comfy-mecha": [ + "https://github.com/liusida/ComfyUI-Login": [ [ - "Blocks Mecha Hyper", - "Custom Code Mecha Recipe", - "Mecha Merger", - "Model Mecha Recipe" + "LoadImageIncognito" ], { - "title_aux": "comfy-mecha" + "title_aux": "ComfyUI-Login" + } + ], + "https://github.com/liusida/ComfyUI-SD3-nodes": [ + [ + "SD3EmptyLatent", + "SD3LoadCLIPs", + "SD3LoadCheckpoint" + ], + { + "title_aux": "ComfyUI-SD3-nodes" + } + ], + "https://github.com/livepeer/ComfyUI-Stream-Pack": [ + [ + "FaceMeshDrawNode", + "FaceMeshMaskNode", + "FaceMeshNode", + "FeatureBankAttentionProcessor", + "SuperResolutionModelLoader", + "SuperResolutionUpscale" + ], + { + "title_aux": "ComfyUI-Stream-Pack" + } + ], + "https://github.com/ljleb/comfy-mecha": [ + [ + "Already Loaded Model Mecha Recipe", + "Any Model Mecha Recipe", + "Blocks Mecha Hyper", + "Bool Mecha Hyper", + "Float Mecha Hyper", + "Int Mecha Hyper", + "Lora Mecha Recipe", + "Mecha Converter", + "Mecha Deserializer", + "Mecha Merge Method Cache Unit", + "Mecha Merger", + "Mecha Recipe List", + "Mecha Regex Weights", + "Mecha Serializer", + "Mecha Subtract Recipe List", + "Model Mecha Recipe", + "SD1-LDM Mecha Blocks Parameters", + "SDXL-SGM Mecha Blocks Parameters", + "String Mecha Hyper" + ], + { + "title_aux": "Mecha Merge Node Pack" + } + ], + "https://github.com/lks-ai/ComfyUI-StableAudioSampler": [ + [ + "StableAudioConditioning", + "StableAudioLoadModel", + "StableAudioPrompt", + "StableAudioSampler" + ], + { + "author": "lks-ai", + "description": "A Simple integration of Stable Audio Diffusion with knobs and stuff!", + "nickname": "stableaudio", + "title": "StableAudioSampler", + "title_aux": "ComfyUI Stable Audio Open 1.0 Sampler" + } + ], + "https://github.com/lks-ai/anynode": [ + [ + "AnyNode", + "AnyNodeAnthropic", + "AnyNodeCodeViewer", + "AnyNodeExport", + "AnyNodeGemini", + "AnyNodeLocal" + ], + { + "author": "newsbubbles", + "description": "This single node uses an LLM to generate a functionality based on your request. You can make the node do anything.", + "nickname": "AnyNode", + "title": "AnyNode v0.1.1", + "title_aux": "ComfyUI AnyNode: Any Node you ask for" + } + ], + "https://github.com/lldacing/ComfyUI_BEN_ll": [ + [ + "BlurFusionForegroundEstimationForBen", + "GetMaskByBen", + "LoadRembgByBenModel", + "RembgByBen", + "RembgByBenAdvanced" + ], + { + "title_aux": "ComfyUI_BEN_ll" + } + ], + "https://github.com/lldacing/ComfyUI_BiRefNet_ll": [ + [ + "AutoDownloadBiRefNetModel", + "BlurFusionForegroundEstimation", + "GetMaskByBiRefNet", + "LoadRembgByBiRefNetModel", + "RembgByBiRefNet", + "RembgByBiRefNetAdvanced" + ], + { + "title_aux": "ComfyUI_BiRefNet_ll" + } + ], + "https://github.com/lldacing/ComfyUI_Patches_ll": [ + [ + "ApplyFirstBlockCachePatch", + "ApplyFirstBlockCachePatchAdvanced", + "ApplyTeaCachePatch", + "ApplyTeaCachePatchAdvanced", + "DitForwardOverrider", + "FluxForwardOverrider", + "VideoForwardOverrider" + ], + { + "title_aux": "ComfyUI_Patches_ll" + } + ], + "https://github.com/lldacing/ComfyUI_PuLID_Flux_ll": [ + [ + "ApplyPulidFlux", + "FixPulidFluxPatch", + "PulidFluxEvaClipLoader", + "PulidFluxFaceDetector", + "PulidFluxInsightFaceLoader", + "PulidFluxModelLoader", + "PulidFluxOptions" + ], + { + "title_aux": "ComfyUI_PuLID_Flux_ll" + } + ], + "https://github.com/lldacing/ComfyUI_StableDelight_ll": [ + [ + "ApplyStableDelight", + "LoadStableDelightModel" + ], + { + "title_aux": "ComfyUI_StableDelight_ll" + } + ], + "https://github.com/lldacing/ComfyUI_StableHair_ll": [ + [ + "ApplyHairRemover", + "ApplyHairTransfer", + "LoadStableHairRemoverModel", + "LoadStableHairTransferModel" + ], + { + "title_aux": "ComfyUI_StableHair_ll" } ], "https://github.com/lldacing/comfyui-easyapi-nodes": [ [ "Base64ToImage", "Base64ToMask", + "BboxToBbox", + "BboxToCropData", + "BboxesToBboxes", "ColorPicker", + "ConvertToJsonStr", + "ConvertTypeToAny", + "CopyAndRenameFiles", + "CropImageByBbox", + "CropTargetSizeImageByBbox", + "EmptyOutputNode", + "FilterSortDependSubGraphs", + "FilterValueForList", + "ForEachClose", + "ForEachOpen", "GetImageBatchSize", + "GetValueFromJsonObj", + "IfElseForEmptyObject", + "ImageEqual", + "ImageSizeGetter", "ImageToBase64", "ImageToBase64Advanced", + "IndexOfList", + "IndexesOfList", + "InnerIntCompare", + "InnerIntMathOperation", + "InnerLoopClose", "InsightFaceBBOXDetect", "IntToList", "IntToNumber", + "IsNoneOrEmpty", + "IsNoneOrEmptyOptional", "JoinList", "ListMerge", + "ListUnWrapper", + "ListWrapper", + "LoadImageFromLocalPath", "LoadImageFromURL", "LoadImageToBase64", + "LoadJsonStrToList", + "LoadLocalFilePath", + "LoadMaskFromLocalPath", "LoadMaskFromURL", + "MaskByBboxes", "MaskImageToBase64", "MaskToBase64", "MaskToBase64Image", + "MaskToRle", + "NodeListMerge", + "NodeListToList", + "NodeListToListMerge", + "NoneNode", + "ReadTextFromLocalFile", + "RleToMask", + "SDBaseVerNumber", "SamAutoMaskSEGS", + "SamAutoMaskSEGSAdvanced", + "SaveImagesWithoutOutput", + "SaveSingleImageWithoutOutput", + "SaveTextToFileByImagePath", + "SaveTextToLocalFile", + "SelectBbox", + "SelectBboxes", + "ShowBoolean", "ShowFloat", "ShowInt", "ShowNumber", "ShowString", - "StringToList" + "SliceList", + "SortDependSubGraphs", + "SplitStringToList", + "StringArea", + "StringToList", + "TryFreeMemory" ], { "title_aux": "comfyui-easyapi-nodes" } ], + "https://github.com/lo-th/Comfyui_three_js": [ + [ + "ThreeView" + ], + { + "title_aux": "Comfyui_three_js" + } + ], + "https://github.com/logtd/ComfyUI-4DHumans": [ + [ + "LoadDetectron", + "LoadHMR", + "ProcessHumans", + "SelectHuman" + ], + { + "title_aux": "ComfyUI-4DHumans" + } + ], + "https://github.com/logtd/ComfyUI-APGScaling": [ + [ + "APGFunction" + ], + { + "title_aux": "ComfyUI-APGScaling" + } + ], + "https://github.com/logtd/ComfyUI-DiLightNet": [ + [ + "LoadDiLightControlNet", + "PrepareDiLightCond" + ], + { + "title_aux": "ComfyUI-DiLightNet" + } + ], "https://github.com/logtd/ComfyUI-FLATTEN": [ [ "ApplyFlattenAttentionNode", @@ -8655,9 +31569,42 @@ "title_aux": "ComfyUI-FLATTEN" } ], + "https://github.com/logtd/ComfyUI-Fluxtapoz": [ + [ + "AddFluxFlow", + "ApplyFluxRaveAttention", + "ApplyRefFlux", + "ApplyRegionalConds", + "ConfigureModifiedFlux", + "CreateRegionalCond", + "FlowEditForwardSampler", + "FlowEditGuider", + "FlowEditReverseSampler", + "FlowEditSampler", + "FluxAttnOverride", + "FluxDeGuidance", + "FluxForwardODESampler", + "FluxInverseSampler", + "FluxNoiseMixer", + "FluxReverseODESampler", + "InFluxFlipSigmas", + "InFluxModelSamplingPred", + "OutFluxModelSamplingPred", + "PAGAttention", + "PrepareAttnBank", + "RFDoubleBlocksOverride", + "RFSingleBlocksOverride", + "RegionalStyleModelApply", + "SEGAttention" + ], + { + "title_aux": "ComfyUI-Fluxtapoz" + } + ], "https://github.com/logtd/ComfyUI-InstanceDiffusion": [ [ "ApplyScaleUModelNode", + "DownloadInstanceDiffusionModels", "InstanceDiffusionTrackingPrompt", "LoadInstanceFusersNode", "LoadInstancePositionNetModel", @@ -8677,6 +31624,29 @@ "title_aux": "ComfyUI-InversedNoise" } ], + "https://github.com/logtd/ComfyUI-MochiEdit": [ + [ + "MochiPrepareSigmas", + "MochiResampler", + "MochiUnsampler", + "MochiWrapperResampler", + "MochiWrapperSamplerCustom", + "MochiWrapperUnsampler" + ], + { + "title_aux": "ComfyUI-MochiEdit" + } + ], + "https://github.com/logtd/ComfyUI-MotionThiefExperiment": [ + [ + "ApplyRefMotionNode", + "MotionRefSettingsCustomNode", + "MotionRefSettingsDefaultNode" + ], + { + "title_aux": "ComfyUI-MotionThiefExperiment" + } + ], "https://github.com/logtd/ComfyUI-RAVE_ATTN": [ [ "ApplyRaveAttentionNode", @@ -8687,6 +31657,15 @@ "title_aux": "ComfyUI-RAVE Attention" } ], + "https://github.com/logtd/ComfyUI-ReNoise": [ + [ + "ReNoiseModelSamplingPred", + "ReNoiseSampler" + ], + { + "title_aux": "ComfyUI-ReNoise" + } + ], "https://github.com/logtd/ComfyUI-RefSampling": [ [ "ApplyRefContentNode", @@ -8697,6 +31676,51 @@ "title_aux": "ComfyUI-RefSampling" } ], + "https://github.com/logtd/ComfyUI-RefUNet": [ + [ + "ConfigRefMapAdv", + "ConfigureRefNet", + "CreateRefBank", + "CustomRefMapSD1", + "PrepareRefLatents", + "ReadSampler", + "RefModelSamplingPred", + "VisionClipEncode", + "WriteSampler" + ], + { + "title_aux": "ComfyUI-RefUNet" + } + ], + "https://github.com/logtd/ComfyUI-SEGAttention": [ + [ + "SEGAttention" + ], + { + "title_aux": "ComfyUI-SEGAttention" + } + ], + "https://github.com/logtd/ComfyUI-SSREncoder": [ + [ + "ApplySSR", + "EncodeSSRQuery", + "LoadSSRAligner", + "LoadSSRAttention" + ], + { + "title_aux": "ComfyUI-SSREncoder" + } + ], + "https://github.com/logtd/ComfyUI-SeeCoder": [ + [ + "LoadSeeCoder", + "LoadSeeCoderUncond", + "SeecoderEncode" + ], + { + "title_aux": "ComfyUI-SeeCoder" + } + ], "https://github.com/logtd/ComfyUI-TrackingNodes": [ [ "OpenPoseTrackerNode", @@ -8706,6 +31730,58 @@ "title_aux": "Tracking Nodes for Videos" } ], + "https://github.com/logtd/ComfyUI-ViewCrafter": [ + [ + "ApplyViewCrafter", + "LoadViewCrafter", + "ScaleImages" + ], + { + "title_aux": "ComfyUI-ViewCrafter" + } + ], + "https://github.com/lokinou/comfyui-offload-models": [ + [ + "OffloadModel", + "RecallModel" + ], + { + "title_aux": "ComfyUI-Offload-Models" + } + ], + "https://github.com/lonelyowl13/artist_randomizer": [ + [ + "AddRandomArtists", + "TextInput" + ], + { + "title_aux": "Artist tag randomizer for comfyui" + } + ], + "https://github.com/longgui0318/comfyui-common-util": [ + [ + "Added Layer Info To Array", + "Enhanced Random Light Source", + "Float Relay", + "HLFrequencyDetailRestore", + "Hex to Color", + "Image Add Alpha", + "Image Frequency Analyzer", + "Image Relay", + "Image Remove Alpha", + "Image Resize With Padding", + "Init Layer Info Array", + "Int Relay", + "Layer Image Seleted", + "Layer Images IPAdapter Advanced", + "Layer Info Array Fuse", + "Mask Relay", + "String Relay" + ], + { + "title_aux": "comfyui-common-util" + } + ], "https://github.com/longgui0318/comfyui-llm-assistant": [ [ "Chat With LLM", @@ -8716,68 +31792,174 @@ "title_aux": "comfyui-llm-assistant" } ], + "https://github.com/longgui0318/comfyui-magic-clothing": [ + [ + "Add Magic Clothing Attention", + "Change Pipeline Dtype And Device", + "Change Pixel Value Normalization", + "Diffusers Model Makeup &MC", + "Diffusers Scheduler Loader &MC", + "Load Magic Clothing Adapter", + "Load Magic Clothing Model", + "Load Magic Clothing Pipeline", + "Load Magic Clothing Pipeline With Path", + "RUN Magic Clothing Diffusers Model" + ], + { + "title_aux": "comfyui-magic-clothing" + } + ], "https://github.com/longgui0318/comfyui-mask-util": [ [ "Image Adaptive Crop M&R", "Image Adaptive Crop With Mask", + "Image Change DType", "Image Change Device", "Image Resolution Adaptive With X", "Image Resolution Limit With 8K", + "Load Image With Name", + "Mask Change DType", "Mask Change Device", "Mask Selection Of Masks", + "Model Change Device", + "Model Change Device Repeaters", + "Output Image To Input", "Split Masks" ], { "title_aux": "comfyui-mask-util" } ], - "https://github.com/longgui0318/comfyui-oms-diffusion": [ + "https://github.com/lord-lethris/ComfyUI-RPG-Characters": [ [ - "Add Magic Clothing Attention", - "InjectTensorHashLog", - "LOAD OMS", - "Load Magic Clothing Model", - "RUN OMS", - "VAE Mode Choose" + "ModelLikenessSwitch", + "PromptConcatenatorNode", + "PromptConditioningConverter", + "PromptSelectorNode", + "RPGArtStyleSelector", + "RPGCharacterSelector" ], { - "title_aux": "comfyui-oms-diffusion" + "title_aux": "ComfyUI-RPG-Characters" } ], - "https://github.com/lordgasmic/ComfyUI-Wildcards/raw/master/wildcards.py": [ + "https://github.com/lordgasmic/comfyui_save_image_with_options": [ + [ + "SaveImageWithOptions" + ], + { + "title_aux": "comfyui_save_image_with_options" + } + ], + "https://github.com/lordgasmic/comfyui_wildcards": [ [ "CLIPTextEncodeWithWildcards" ], { - "title_aux": "Wildcards" + "title_aux": "comfyui_wildcards" } ], - "https://github.com/lrzjason/ComfyUIJasonNode/raw/main/SDXLMixSampler.py": [ + "https://github.com/lquesada/ComfyUI-Inpaint-CropAndStitch": [ [ - "SDXLMixSampler" + "InpaintCrop", + "InpaintCropImproved", + "InpaintExtendOutpaint", + "InpaintResize", + "InpaintStitch", + "InpaintStitchImproved" ], { - "title_aux": "ComfyUIJasonNode" + "title_aux": "ComfyUI-Inpaint-CropAndStitch" + } + ], + "https://github.com/lquesada/ComfyUI-Interactive": [ + [ + "InteractiveFloat", + "InteractiveInteger", + "InteractiveReset", + "InteractiveSave", + "InteractiveSeed", + "InteractiveSelector", + "InteractiveSelectorWithParameters", + "InteractiveString", + "InteractiveStringAppend", + "InteractiveStringMultiline", + "InteractiveSwitch", + "InteractiveSwitchWithParameters" + ], + { + "title_aux": "ComfyUI-Interactive" + } + ], + "https://github.com/lquesada/ComfyUI-Prompt-Combinator": [ + [ + "PromptCombinator", + "PromptCombinatorExportGallery", + "PromptCombinatorMerger", + "PromptCombinatorRandomPrompt" + ], + { + "title_aux": "ComfyUI-Prompt-Combinator" + } + ], + "https://github.com/lrzjason/ComfyUI-Watermark-Detection": [ + [ + "WatermarkDetector", + "WatermarkDetectorLoader" + ], + { + "title_aux": "ComfyUI Watermark Detection Node" + } + ], + "https://github.com/lrzjason/Comfyui-In-Context-Lora-Utils": [ + [ + "AddMaskForICLora", + "AutoPatch", + "ConcatContextWindow", + "CreateContextWindow" + ], + { + "title_aux": "Comfyui-In-Context-Lora-Utils" + } + ], + "https://github.com/lrzjason/Comfyui-Kolors-Utils": [ + [ + "SaveKolors", + "SaveWeightAsKolorsUnet" + ], + { + "title_aux": "Comfyui Kolors Utils" + } + ], + "https://github.com/lrzjason/Comfyui-ThinkRemover": [ + [ + "ThinkRemover" + ], + { + "title_aux": "Comfyui-ThinkRemover" } ], "https://github.com/ltdrdata/ComfyUI-Impact-Pack": [ [ "AddMask", + "AnyPipeToBasic", "BasicPipeToDetailerPipe", "BasicPipeToDetailerPipeSDXL", - "BboxDetectorCombined", "BboxDetectorCombined_v2", - "BboxDetectorForEach", "BboxDetectorSEGS", "BitwiseAndMask", "BitwiseAndMaskForEach", + "BlackPatchRetryHookProvider", "CLIPSegDetectorProvider", "CfgScheduleHookProvider", "CombineRegionalPrompts", "CoreMLDetailerHookProvider", + "CustomNoiseDetailerHookProvider", + "CustomSamplerDetailerHookProvider", "DenoiseScheduleHookProvider", "DenoiseSchedulerDetailerHookProvider", "DetailerForEach", + "DetailerForEachAutoRetry", "DetailerForEachDebug", "DetailerForEachDebugPipe", "DetailerForEachPipe", @@ -8795,11 +31977,13 @@ "FromDetailerPipe", "FromDetailerPipeSDXL", "FromDetailerPipe_v2", + "GITSSchedulerFuncProvider", "ImageListToImageBatch", "ImageMaskSwitch", "ImageReceiver", "ImageSender", "ImpactAssembleSEGS", + "ImpactBoolean", "ImpactCombineConditionings", "ImpactCompare", "ImpactConcatConditionings", @@ -8811,12 +31995,15 @@ "ImpactControlNetApplySEGS", "ImpactControlNetClearSEGS", "ImpactConvertDataType", + "ImpactCount_Elts_in_SEGS", "ImpactDecomposeSEGS", "ImpactDilateMask", "ImpactDilateMaskInSEGS", "ImpactDilate_Mask_SEG_ELT", "ImpactDummyInput", "ImpactEdit_SEG_ELT", + "ImpactExecutionOrderController", + "ImpactFlattenMask", "ImpactFloat", "ImpactFrom_SEG_ELT", "ImpactFrom_SEG_ELT_bbox", @@ -8834,30 +32021,41 @@ "ImpactKSamplerAdvancedBasicPipe", "ImpactKSamplerBasicPipe", "ImpactLatentInfo", + "ImpactListBridge", "ImpactLogger", "ImpactLogicalOperators", + "ImpactMakeAnyList", "ImpactMakeImageBatch", "ImpactMakeImageList", + "ImpactMakeMaskBatch", + "ImpactMakeMaskList", "ImpactMakeTileSEGS", "ImpactMinMax", "ImpactNeg", + "ImpactNegativeConditioningPlaceholder", "ImpactNodeSetMuteState", "ImpactQueueTrigger", "ImpactQueueTriggerCountdown", "ImpactRemoteBoolean", "ImpactRemoteInt", + "ImpactSAM2VideoDetectorSEGS", "ImpactSEGSClassify", "ImpactSEGSConcat", + "ImpactSEGSIntersectionFilter", "ImpactSEGSLabelAssign", "ImpactSEGSLabelFilter", + "ImpactSEGSMerge", + "ImpactSEGSNMSFilter", "ImpactSEGSOrderedFilter", "ImpactSEGSPicker", "ImpactSEGSRangeFilter", "ImpactSEGSToMaskBatch", "ImpactSEGSToMaskList", "ImpactScaleBy_BBOX_SEG_ELT", + "ImpactSchedulerAdapter", "ImpactSegsAndMask", "ImpactSegsAndMaskForEach", + "ImpactSelectNthItemOfAnyList", "ImpactSetWidgetValue", "ImpactSimpleDetectorSEGS", "ImpactSimpleDetectorSEGSPipe", @@ -8873,15 +32071,15 @@ "IterativeLatentUpscale", "KSamplerAdvancedProvider", "KSamplerProvider", + "LamaRemoverDetailerHookProvider", "LatentPixelScale", "LatentReceiver", "LatentSender", "LatentSwitch", - "MMDetDetectorProvider", - "MMDetLoader", "MaskDetailerPipe", "MaskListToMaskBatch", - "MaskPainter", + "MaskRectArea", + "MaskRectAreaAdvanced", "MaskToSEGS", "MaskToSEGS_for_AnimateDiff", "MasksToMaskList", @@ -8920,16 +32118,14 @@ "SEGSToImageList", "SEGSUpscaler", "SEGSUpscalerPipe", - "SegmDetectorCombined", "SegmDetectorCombined_v2", - "SegmDetectorForEach", "SegmDetectorSEGS", "Segs Mask", "Segs Mask ForEach", - "SegsMaskCombine", "SegsToCombinedMask", "SetDefaultImageForSEGS", "StepsScheduleHookProvider", + "StringListToString", "SubtractMask", "SubtractMaskForEach", "TiledKSamplerProvider", @@ -8941,21 +32137,38 @@ "TwoSamplersForMask", "TwoSamplersForMaskUpscalerProvider", "TwoSamplersForMaskUpscalerProviderPipe", - "UltralyticsDetectorProvider", "UnsamplerDetailerHookProvider", - "UnsamplerHookProvider" + "UnsamplerHookProvider", + "VariationNoiseDetailerHookProvider", + "WildcardPromptFromString" ], { "author": "Dr.Lt.Data", "description": "This extension offers various detector nodes and detailer nodes that allow you to configure a workflow that automatically enhances facial details. And provide iterative upscaler.", "nickname": "Impact Pack", + "preemptions": [ + "SAMLoader" + ], "title": "Impact Pack", "title_aux": "ComfyUI Impact Pack" } ], + "https://github.com/ltdrdata/ComfyUI-Impact-Subpack": [ + [ + "UltralyticsDetectorProvider" + ], + { + "author": "Dr.Lt.Data", + "description": "This extension provides UltralyticsDetectorProvider node", + "nickname": "Impact Subpack", + "title": "Impact Subpack", + "title_aux": "ComfyUI Impact Subpack" + } + ], "https://github.com/ltdrdata/ComfyUI-Inspire-Pack": [ [ "AnimeLineArt_Preprocessor_Provider_for_SEGS //Inspire", + "ApplyLBW //Inspire", "ApplyRegionalIPAdapters //Inspire", "BindImageListPromptList //Inspire", "CLIPTextEncodeWithWeight //Inspire", @@ -8963,15 +32176,24 @@ "CacheBackendDataList //Inspire", "CacheBackendDataNumberKey //Inspire", "CacheBackendDataNumberKeyList //Inspire", + "CacheBridge //Inspire", "Canny_Preprocessor_Provider_for_SEGS //Inspire", "ChangeImageBatchSize //Inspire", "ChangeLatentBatchSize //Inspire", "CheckpointLoaderSimpleShared //Inspire", + "ColorMapToMasks //Inspire", + "ColorMaskToDepthMask //Inspire", "Color_Preprocessor_Provider_for_SEGS //Inspire", + "CompositeNoise //Inspire", "ConcatConditioningsWithMultiplier //Inspire", + "ConditioningStretch //Inspire", + "ConditioningUpscale //Inspire", "DWPreprocessor_Provider_for_SEGS //Inspire", + "DropItems //Inspire", "FakeScribblePreprocessor_Provider_for_SEGS //Inspire", "FloatRange //Inspire", + "ForeachListBegin //Inspire", + "ForeachListEnd //Inspire", "FromIPAdapterPipe //Inspire", "GlobalSampler //Inspire", "GlobalSeed //Inspire", @@ -8980,6 +32202,7 @@ "IPAdapterModelHelper //Inspire", "ImageBatchSplitter //Inspire", "InpaintPreprocessor_Provider_for_SEGS //Inspire", + "IsCached //Inspire", "KSampler //Inspire", "KSamplerAdvanced //Inspire", "KSamplerAdvancedPipe //Inspire", @@ -8990,15 +32213,19 @@ "LeRes_DepthMap_Preprocessor_Provider_for_SEGS //Inspire", "LineArt_Preprocessor_Provider_for_SEGS //Inspire", "ListCounter //Inspire", + "LoadDiffusionModelShared //Inspire", "LoadImage //Inspire", "LoadImageListFromDir //Inspire", "LoadImagesFromDir //Inspire", + "LoadLBW //Inspire", "LoadPromptsFromDir //Inspire", "LoadPromptsFromFile //Inspire", "LoadSinglePromptFromFile //Inspire", + "LoadTextEncoderShared //Inspire", "LoraBlockInfo //Inspire", "LoraLoaderBlockWeight //Inspire", "MakeBasicPipe //Inspire", + "MakeLBW //Inspire", "Manga2Anime_LineArt_Preprocessor_Provider_for_SEGS //Inspire", "MediaPipeFaceMeshDetectorProvider //Inspire", "MediaPipe_FaceMesh_Preprocessor_Provider_for_SEGS //Inspire", @@ -9007,7 +32234,10 @@ "OpenPose_Preprocessor_Provider_for_SEGS //Inspire", "PromptBuilder //Inspire", "PromptExtractor //Inspire", + "RGB_HexToHSV //Inspire", "RandomGeneratorForList //Inspire", + "RandomNoise //Inspire", + "RegionalCFG //Inspire", "RegionalConditioningColorMask //Inspire", "RegionalConditioningSimple //Inspire", "RegionalIPAdapterColorMask //Inspire", @@ -9024,44 +32254,584 @@ "RemoveControlNetFromRegionalPrompts //Inspire", "RetrieveBackendData //Inspire", "RetrieveBackendDataNumberKey //Inspire", + "SaveLBW //Inspire", + "ScheduledCFGGuider //Inspire", + "ScheduledPerpNegCFGGuider //Inspire", "SeedExplorer //Inspire", + "SeedLogger //Inspire", + "SelectNthMask //Inspire", "ShowCachedInfo //Inspire", "StableCascade_CheckpointLoader //Inspire", "TilePreprocessor_Provider_for_SEGS //Inspire", "ToIPAdapterPipe //Inspire", "UnzipPrompt //Inspire", "WildcardEncode //Inspire", + "WorklistToItemList //Inspire", "XY Input: Lora Block Weight //Inspire", "ZipPrompt //Inspire", "Zoe_DepthMap_Preprocessor_Provider_for_SEGS //Inspire" ], { "author": "Dr.Lt.Data", - "description": "This extension provides various nodes to support Lora Block Weight and the Impact Pack.", + "description": "This extension provides various nodes to support Lora Block Weight, Regional Nodes, Backend Cache, Prompt Utils, List Utils and the Impact Pack.", "nickname": "Inspire Pack", "nodename_pattern": "Inspire$", "title": "Inspire Pack", "title_aux": "ComfyUI Inspire Pack" } ], - "https://github.com/m-sokes/ComfyUI-Sokes-Nodes": [ - [ - "Custom Date Format | sokes \ud83e\uddac", - "Latent Switch x9 | sokes \ud83e\uddac" - ], + "https://github.com/ltdrdata/comfyui-connection-helper": [ + [], { - "title_aux": "ComfyUI Sokes Nodes" + "author": "Dr.Lt.Data", + "description": "Helper", + "nickname": "Connection Helper", + "nodename_pattern": "Inspire$", + "title": "ComfyUI Connection Helper", + "title_aux": "ComfyUI Connection Helper" } ], - "https://github.com/m957ymj75urz/ComfyUI-Custom-Nodes/raw/main/clip-text-encode-split/clip_text_encode_split.py": [ + "https://github.com/ltdrdata/was-node-suite-comfyui": [ [ - "RawText", - "RawTextCombine", - "RawTextEncode", - "RawTextReplace" + "BLIP Analyze Image", + "BLIP Model Loader", + "Blend Latents", + "Boolean To Text", + "Bounded Image Blend", + "Bounded Image Blend with Mask", + "Bounded Image Crop", + "Bounded Image Crop with Mask", + "Bus Node", + "CLIP Input Switch", + "CLIP Vision Input Switch", + "CLIPSEG2", + "CLIPSeg Batch Masking", + "CLIPSeg Masking", + "CLIPSeg Model Loader", + "CLIPTextEncode (BlenderNeko Advanced + NSP)", + "CLIPTextEncode (NSP)", + "Cache Node", + "Checkpoint Loader", + "Checkpoint Loader (Simple)", + "Conditioning Input Switch", + "Constant Number", + "Control Net Model Input Switch", + "Convert Masks to Images", + "Create Grid Image", + "Create Grid Image from Batch", + "Create Morph Image", + "Create Morph Image from Path", + "Create Video from Path", + "Debug Number to Console", + "Dictionary to Console", + "Diffusers Hub Model Down-Loader", + "Diffusers Model Loader", + "Export API", + "HSL to Hex", + "Hex to HSL", + "Image Analyze", + "Image Aspect Ratio", + "Image Batch", + "Image Blank", + "Image Blend", + "Image Blend by Mask", + "Image Blending Mode", + "Image Bloom Filter", + "Image Bounds", + "Image Bounds to Console", + "Image Canny Filter", + "Image Chromatic Aberration", + "Image Color Palette", + "Image Crop Face", + "Image Crop Location", + "Image Crop Square Location", + "Image Displacement Warp", + "Image Dragan Photography Filter", + "Image Edge Detection Filter", + "Image Film Grain", + "Image Filter Adjustments", + "Image Flip", + "Image Generate Gradient", + "Image Gradient Map", + "Image High Pass Filter", + "Image History Loader", + "Image Input Switch", + "Image Levels Adjustment", + "Image Load", + "Image Lucy Sharpen", + "Image Median Filter", + "Image Mix RGB Channels", + "Image Monitor Effects Filter", + "Image Nova Filter", + "Image Padding", + "Image Paste Crop", + "Image Paste Crop by Location", + "Image Paste Face", + "Image Perlin Noise", + "Image Perlin Power Fractal", + "Image Pixelate", + "Image Power Noise", + "Image Rembg (Remove Background)", + "Image Remove Background (Alpha)", + "Image Remove Color", + "Image Resize", + "Image Rotate", + "Image Rotate Hue", + "Image SSAO (Ambient Occlusion)", + "Image SSDO (Direct Occlusion)", + "Image Save", + "Image Seamless Texture", + "Image Select Channel", + "Image Select Color", + "Image Send HTTP", + "Image Shadows and Highlights", + "Image Size to Number", + "Image Stitch", + "Image Style Filter", + "Image Threshold", + "Image Tiled", + "Image Transpose", + "Image Voronoi Noise Filter", + "Image fDOF Filter", + "Image to Latent Mask", + "Image to Noise", + "Image to Seed", + "Images to Linear", + "Images to RGB", + "Inset Image Bounds", + "Integer place counter", + "KSampler (WAS)", + "KSampler Cycle", + "Latent Batch", + "Latent Input Switch", + "Latent Noise Injection", + "Latent Size to Number", + "Latent Upscale by Factor (WAS)", + "Load Cache", + "Load Image Batch", + "Load Lora", + "Load Text File", + "Logic Boolean", + "Logic Boolean Primitive", + "Logic Comparison AND", + "Logic Comparison OR", + "Logic Comparison XOR", + "Logic NOT", + "Lora Input Switch", + "Lora Loader", + "Mask Arbitrary Region", + "Mask Batch", + "Mask Batch to Mask", + "Mask Ceiling Region", + "Mask Crop Dominant Region", + "Mask Crop Minority Region", + "Mask Crop Region", + "Mask Dilate Region", + "Mask Dominant Region", + "Mask Erode Region", + "Mask Fill Holes", + "Mask Floor Region", + "Mask Gaussian Region", + "Mask Invert", + "Mask Minority Region", + "Mask Paste Region", + "Mask Rect Area", + "Mask Rect Area (Advanced)", + "Mask Smooth Region", + "Mask Threshold Region", + "Masks Add", + "Masks Combine Batch", + "Masks Combine Regions", + "Masks Subtract", + "MiDaS Depth Approximation", + "MiDaS Mask Image", + "MiDaS Model Loader", + "Model Input Switch", + "Number Counter", + "Number Input Condition", + "Number Input Switch", + "Number Multiple Of", + "Number Operation", + "Number PI", + "Number to Float", + "Number to Int", + "Number to Seed", + "Number to String", + "Number to Text", + "Prompt Multiple Styles Selector", + "Prompt Styles Selector", + "Random Number", + "SAM Image Mask", + "SAM Model Loader", + "SAM Parameters", + "SAM Parameters Combine", + "Samples Passthrough (Stat System)", + "Save Text File", + "Seed", + "String to Text", + "Tensor Batch to Image", + "Text Add Token by Input", + "Text Add Tokens", + "Text Compare", + "Text Concatenate", + "Text Contains", + "Text Dictionary Convert", + "Text Dictionary Get", + "Text Dictionary Keys", + "Text Dictionary New", + "Text Dictionary To Text", + "Text Dictionary Update", + "Text File History Loader", + "Text Find", + "Text Find and Replace", + "Text Find and Replace Input", + "Text Find and Replace by Dictionary", + "Text Input Switch", + "Text List", + "Text List Concatenate", + "Text List to Text", + "Text Load Line From File", + "Text Multiline", + "Text Multiline (Code Compatible)", + "Text Parse A1111 Embeddings", + "Text Parse Noodle Soup Prompts", + "Text Parse Tokens", + "Text Random Line", + "Text Random Prompt", + "Text Shuffle", + "Text Sort", + "Text String", + "Text String Truncate", + "Text to Conditioning", + "Text to Console", + "Text to Number", + "Text to String", + "True Random.org Number Generator", + "Upscale Model Loader", + "Upscale Model Switch", + "VAE Input Switch", + "Video Dump Frames", + "Write to GIF", + "Write to Video", + "unCLIP Checkpoint Loader" ], { - "title_aux": "m957ymj75urz/ComfyUI-Custom-Nodes" + "title_aux": "WAS Node Suite (Revised)" + } + ], + "https://github.com/lthero-big/ComfyUI-GaussianShadingWatermark": [ + [ + "DPR_Extractor", + "DPR_GS_Latent", + "DPR_KSamplerAdvanced" + ], + { + "title_aux": "ComfyUI-GaussianShadingWatermark" + } + ], + "https://github.com/luandev/ComfyUI-CrewAI": [ + [ + "DisplayText", + "\ud83d\udcceCrewAI Agent", + "\ud83d\udcceCrewAI Agent List", + "\ud83d\udcceCrewAI Crew", + "\ud83d\udcceCrewAI LLM Chat GPT", + "\ud83d\udcceCrewAI LLM Hugging Face", + "\ud83d\udcceCrewAI LLM Ollama", + "\ud83d\udcceCrewAI LLM OpenAI", + "\ud83d\udcceCrewAI Task", + "\ud83d\udcceCrewAI Task List", + "\ud83d\udcceCrewAI Text" + ], + { + "title_aux": "ComfyUI CrewAI" + } + ], + "https://github.com/lucak5s/comfyui_gfpgan": [ + [ + "GFPGANRestorer" + ], + { + "title_aux": "ComfyUI GFPGAN" + } + ], + "https://github.com/lucasgattas/comfyui-egregora-divide-and-enhance": [ + [ + "Egregora Algorithm", + "Egregora Analyze Content", + "Egregora Combine", + "Egregora Divide and Select", + "Egregora Preview", + "Egregora Turbo Prompt" + ], + { + "title_aux": "ComfyUI \u00b7 Egregora: Divide & Enhance" + } + ], + "https://github.com/lujiazho/ComfyUI-CatvtonFluxWrapper": [ + [ + "CatvtonFluxSampler", + "LoadCatvtonFlux", + "LoadCatvtonFluxLoRA", + "ModelPrinter" + ], + { + "title_aux": "ComfyUI-CatvtonFluxWrapper" + } + ], + "https://github.com/luke-mino-altherr/ComfyUI-LatentReverb": [ + [ + "LatentReverb" + ], + { + "title_aux": "ComfyUI-Latent-Reverb" + } + ], + "https://github.com/lum3on/ComfyUI-FrameUtilitys": [ + [ + "FrameExtender", + "FrameExtenderAdvanced", + "FrameReplacer", + "GitInstaller" + ], + { + "title_aux": "ComfyUI-FrameUtilitys" + } + ], + "https://github.com/lum3on/ComfyUI-ModelQuantizer": [ + [ + "ControlNetFP8QuantizeNode", + "ControlNetMetadataViewerNode", + "ModelToStateDict", + "QuantizeFP8Format", + "QuantizeModel", + "SaveAsSafeTensor" + ], + { + "title_aux": "ComfyUI-ModelQuantizer" + } + ], + "https://github.com/lum3on/ComfyUI-StableAudioX": [ + [ + "AudioXAdvancedVolumeControl", + "AudioXAudioProcessor", + "AudioXEnhancedTextToAudio", + "AudioXEnhancedTextToMusic", + "AudioXEnhancedVideoToAudio", + "AudioXModelLoader", + "AudioXMultiModalGeneration", + "AudioXPromptHelper", + "AudioXTextToAudio", + "AudioXTextToMusic", + "AudioXVideoAudioCombiner", + "AudioXVideoMuter", + "AudioXVideoToAudio", + "AudioXVideoToMusic", + "AudioXVolumeControl" + ], + { + "title_aux": "ComfyUI-AudioX" + } + ], + "https://github.com/lum3on/ComfyUI_MJ-Scraper": [ + [ + "MJScraper" + ], + { + "title_aux": "ComfyUI Midjourney Scraper Node" + } + ], + "https://github.com/lum3on/comfyui_EdgeTAM": [ + [ + "EdgeTAMVideoTracker", + "InteractiveMaskEditor" + ], + { + "title_aux": "comfyui_EdgeTAM" + } + ], + "https://github.com/lum3on/comfyui_HiDream-Sampler": [ + [ + "HiDreamImg2Img", + "HiDreamSampler", + "HiDreamSamplerAdvanced" + ], + { + "title_aux": "HiDream Sampler" + } + ], + "https://github.com/lum3on/comfyui_LLM_Polymath": [ + [ + "ConceptEraserNode", + "flux_context_preset", + "polymath_SaveAbsolute", + "polymath_StringListPicker", + "polymath_TextSplitter", + "polymath_chat", + "polymath_helper", + "polymath_scraper", + "polymath_settings", + "polymath_text_mask" + ], + { + "title_aux": "comfyui_LLM_Polymath" + } + ], + "https://github.com/lumalabs/ComfyUI-LumaAI-API": [ + [ + "CharacterReference", + "ConcatReferences", + "ImgBBUpload", + "LumaAIClient", + "LumaAddAudio2Video", + "LumaExtendGeneration", + "LumaImage2Video", + "LumaImageGeneration", + "LumaInterpolateGenerations", + "LumaModifyImage", + "LumaPreviewVideo", + "LumaText2Video", + "LumaUpscaleGeneration", + "Reference" + ], + { + "title_aux": "ComfyUI-LumaAI-API" + } + ], + "https://github.com/lxe/ComfyUI-OpenAI-Compat-LLM-Node": [ + [ + "OpenAILLMNode" + ], + { + "title_aux": "ComfyUI OpenAI Compatible LLM Node" + } + ], + "https://github.com/m-sokes/ComfyUI-Sokes-Nodes": [ + [ + "ComfyUI Folder Paths | sokes \ud83e\uddac", + "Current Date & Time | sokes \ud83e\uddac", + "Generate Random Background | sokes \ud83e\uddac", + "Hex Color Swatch | sokes \ud83e\uddac", + "Hex to Color Name | sokes \ud83e\uddac", + "Image Picker | sokes \ud83e\uddac", + "Latent Switch x9 | sokes \ud83e\uddac", + "Load Random Image | sokes \ud83e\uddac", + "Random Hex Color | sokes \ud83e\uddac", + "Random Number | sokes \ud83e\uddac", + "Replace Text with RegEx | sokes \ud83e\uddac", + "Runpod Serverless | sokes \ud83e\uddac", + "Street View Loader | sokes \ud83e\uddac" + ], + { + "title_aux": "ComfyUI Sokes Nodes \ud83e\uddac" + } + ], + "https://github.com/maepopi/Diffusers-in-ComfyUI": [ + [ + "BLoRALoader", + "GenerateImg2Image", + "GenerateInpaintImage", + "GenerateTxt2Image", + "Img2ImgStableDiffusionPipeline", + "InpaintingStableDiffusionPipeline", + "LoRALoader", + "MakeCanny", + "Text2ImgStableDiffusionPipeline" + ], + { + "title_aux": "Diffusers-in-ComfyUI" + } + ], + "https://github.com/magekinnarus/ComfyUI-V-Prediction-Node": [ + [ + "AddParam" + ], + { + "title_aux": "ComfyUI-V-Prediction-Node" + } + ], + "https://github.com/magic-eraser-org/ComfyUI-Unwatermark": [ + [ + "Remove Watermark" + ], + { + "title_aux": "ComfyUI-Unwatermark" + } + ], + "https://github.com/mamorett/ComfyUI_minicpmv4": [ + [ + "GenCheckerImage", + "MiniCPMV4GGUFLoader", + "MiniCPMV4VisionInfer", + "VisionPromptBuilder" + ], + { + "title_aux": "MiniCPM\u2011V\u20114 (GGUF) for ComfyUI" + } + ], + "https://github.com/mang01010/MangoNodePack": [ + [ + "CompositeMangoLoader", + "FluxGuidanceMango", + "FluxSamplerMango", + "ImageSaverMango", + "KSamplerMango", + "LatentImageMango", + "LoraStackMango", + "MangoImageLoader", + "MangoLoader", + "MangoLoader10Loras", + "MangoModelData", + "MangoPromptLoad", + "MangoTriggerExporter", + "PromptEmbedMango", + "PromptMango", + "PromptSave" + ], + { + "title_aux": "Mango Node Pack" + } + ], + "https://github.com/mango-rgb/ComfyUI-Mango-Random-node": [ + [ + "RandomFilePathNode", + "RandomImageNode", + "RandomImagePathNode", + "RandomTextNode", + "RandomVideoPathNode" + ], + { + "title_aux": "ComfyUI-Mango-Random" + } + ], + "https://github.com/mangobyed/ComfyUI_Detection_List": [ + [ + "YOLOv8ObjectDetectionNode" + ], + { + "title_aux": "ComfyUI YOLOv8 Object Detection Node" + } + ], + "https://github.com/manifestations/comfyui-globetrotter": [ + [ + "LoRATrainerNode", + "OllamaLLMNode", + "OllamaVisionNode", + "TextCombinerNode" + ], + { + "title_aux": "ComfyUI Globetrotter Nodes" + } + ], + "https://github.com/manifestations/comfyui-outfit": [ + [ + "OllamaLLMNode", + "PhotoStyleHelperNode", + "PresetPatchApplierNode", + "SimpleOllamaNode" + ], + { + "title_aux": "ComfyUI Outfit Nodes" } ], "https://github.com/mape/ComfyUI-mape-Helpers": [ @@ -9084,6 +32854,109 @@ "title_aux": "ComfyUI-SubjectStyle-CSV" } ], + "https://github.com/marawan206/ComfyUI-FaceCropper": [ + [ + "NodoFaceCropping" + ], + { + "title_aux": "Face Cropper Node (2:3 Ratio)" + } + ], + "https://github.com/marco-zanella/ComfyUI-BooleanExpression": [ + [ + "BooleanExpression.And", + "BooleanExpression.ArithmenticComparison.BinaryComparison", + "BooleanExpression.ArithmenticComparison.EqualTo", + "BooleanExpression.ArithmenticComparison.GreaterThan", + "BooleanExpression.ArithmenticComparison.GreaterThanOrEqualTo", + "BooleanExpression.ArithmenticComparison.LessThan", + "BooleanExpression.ArithmenticComparison.LessThanOrEqualTo", + "BooleanExpression.ArithmenticComparison.NotEqualTo", + "BooleanExpression.BinaryExpression", + "BooleanExpression.ConditionalBranch", + "BooleanExpression.False", + "BooleanExpression.Nand", + "BooleanExpression.Nor", + "BooleanExpression.Not", + "BooleanExpression.Or", + "BooleanExpression.StringComparison.AlphabeticalEqualTo", + "BooleanExpression.StringComparison.AlphabeticalGreaterThan", + "BooleanExpression.StringComparison.AlphabeticalGreaterThanOrEqualTo", + "BooleanExpression.StringComparison.AlphabeticalLessThan", + "BooleanExpression.StringComparison.AlphabeticalLessThanOrEqualTo", + "BooleanExpression.StringComparison.AlphabeticalNotEqualTo", + "BooleanExpression.StringComparison.Contains", + "BooleanExpression.StringComparison.EndsWith", + "BooleanExpression.StringComparison.NotContains", + "BooleanExpression.StringComparison.NotEndsWith", + "BooleanExpression.StringComparison.NotStartsWith", + "BooleanExpression.StringComparison.StartsWith", + "BooleanExpression.StringComparison.StringComparison", + "BooleanExpression.True", + "BooleanExpression.Xor" + ], + { + "title_aux": "ComfyUI-BooleanExpression" + } + ], + "https://github.com/marcoc2/ComfyUI-AnotherUtils": [ + [ + "AdaptiveNoise", + "CIELChNoiseGEGLLike", + "CharacterConstructor", + "CharacterRandomizer", + "CustomCrop", + "FightingGameCharacter", + "ImageTypeDetector", + "LastImage", + "LoadImageRemoveAlpha", + "LoadImagesOriginal", + "MeanCurvatureBlurGEGLLike", + "NearestUpscale", + "PixelArtConverter", + "PixelArtConverterParallel", + "PixelArtNormalizer", + "RGBNoiseGEGLLike", + "RemoveAlpha", + "SmartResize", + "WalkingPoseGenerator" + ], + { + "title_aux": "Image Processing Suite for ComfyUI" + } + ], + "https://github.com/marcoc2/ComfyUI_CogView4-6B_diffusers": [ + [ + "CogView4Generator" + ], + { + "title_aux": "ComfyUI-Cog" + } + ], + "https://github.com/marduk191/ComfyUI-Fluxpromptenhancer": [ + [ + "FluxPromptEnhance" + ], + { + "title_aux": "Flux Prompt Enhance Node for ComfyUI" + } + ], + "https://github.com/marduk191/comfyui-marnodes": [ + [ + "ImageToDevice", + "marduk191_5_text_string", + "marduk191_5way_text_switch", + "marduk191_s_random_latent", + "marduk191_workflow_settings" + ], + { + "author": "\u02f6marduk191", + "description": "marduk191s nodes.", + "nickname": "marduk191 workflow settings", + "title": "marduk191 workflow settings", + "title_aux": "marduk191 workflow settings" + } + ], "https://github.com/marhensa/sdxl-recommended-res-calc": [ [ "RecommendedResCalc" @@ -9092,10 +32965,64 @@ "title_aux": "Recommended Resolution Calculator" } ], + "https://github.com/marklieberman/ComfyUI-Liebs-Picker": [ + [ + "LiebsPicker", + "LiebsPickerSEGS" + ], + { + "title_aux": "ComfyUI-Liebs-Picker" + } + ], + "https://github.com/marklieberman/ComfyUI-Liebs-Title": [ + [ + "LiebsTitleVar" + ], + { + "title_aux": "ComfyUI-Liebs-Title" + } + ], + "https://github.com/marklieberman/ComfyUI-Liebs-Toast": [ + [ + "LiebsToast" + ], + { + "title_aux": "ComfyUI-Liebs-Toast" + } + ], + "https://github.com/markuryy/ComfyUI-Flux-Prompt-Saver": [ + [ + "FluxPromptSaver", + "FluxTextSampler", + "ModelName" + ], + { + "title_aux": "ComfyUI Flux Prompt Saver" + } + ], + "https://github.com/markuryy/ComfyUI-Simple-Video-XY-Plot": [ + [ + "VideoXYPlotSampler" + ], + { + "title_aux": "Video XY Plot" + } + ], + "https://github.com/markuryy/ComfyUI-SuperLoader": [ + [ + "Display String", + "Display String Multiline", + "LoRA Metadata" + ], + { + "title_aux": "Super Loader" + } + ], "https://github.com/martijnat/comfyui-previewlatent": [ [ "PreviewLatent", "PreviewLatentAdvanced", + "PreviewLatentFlux", "PreviewLatentXL" ], { @@ -9112,16 +33039,50 @@ ], "https://github.com/matan1905/ComfyUI-Serving-Toolkit": [ [ + "AlwaysExecute", + "CommandPickerServing", "DiscordServing", + "ServingInputImage", + "ServingInputImageAsLatent", "ServingInputNumber", "ServingInputText", + "ServingInputTextImage", + "ServingMultiImageOutput", "ServingOutput", + "ServingTextOutput", + "TelegramServing", "WebSocketServing" ], { "title_aux": "ComfyUI Serving toolkit" } ], + "https://github.com/matorzhin/milan-nodes-comfyui": [ + [ + "LoadMultipleImagesExtended", + "LoadOneImageExtended" + ], + { + "title_aux": "milan-nodes-comfyui" + } + ], + "https://github.com/mattjohnpowell/comfyui-lmstudio-image-to-text-node": [ + [ + "Expo Lmstudio Image To Text", + "Expo Lmstudio Text Generation", + "Expo Lmstudio Unified", + "ExpoLmstudioImageToText", + "ExpoLmstudioTextGeneration", + "ExpoLmstudioUnified" + ], + { + "author": "Matt John Powell", + "description": "This extension provides three custom nodes for ComfyUI that integrate LM Studio's capabilities:", + "nickname": "LM Studio Nodes", + "title": "LM Studio Nodes for ComfyUI", + "title_aux": "LM Studio Image to Text Node for ComfyUI" + } + ], "https://github.com/mav-rik/facerestore_cf": [ [ "CropFace", @@ -9132,6 +33093,16 @@ "title_aux": "Facerestore CF (Code Former)" } ], + "https://github.com/max-dingsda/OllamaTools": [ + [ + "OllamaPicDescriber", + "OllamaPromptBooster", + "PromptStylist" + ], + { + "title_aux": "OllamaTools for ComfyUI" + } + ], "https://github.com/mbrostami/ComfyUI-HF": [ [ "GPT2Node" @@ -9140,13 +33111,46 @@ "title_aux": "ComfyUI-HF" } ], + "https://github.com/mbrostami/ComfyUI-TITrain": [ + [ + "TextualInversionTraining", + "TextualInversionTrainingSDXL" + ], + { + "title_aux": "ComfyUI-TITrain" + } + ], + "https://github.com/mcDandy/more_math": [ + [ + "mrmth_AudioMathNode", + "mrmth_ConditioningMathNode", + "mrmth_FloatMathNode", + "mrmth_FloatToInt", + "mrmth_ImageMathNode", + "mrmth_IntToFloat", + "mrmth_LatentMathNode", + "mrmth_NoiseMathNode" + ], + { + "title_aux": "More Math" + } + ], "https://github.com/mcmonkeyprojects/sd-dynamic-thresholding": [ [ "DynamicThresholdingFull", "DynamicThresholdingSimple" ], { - "title_aux": "Stable Diffusion Dynamic Thresholding (CFG Scale Fix)" + "title_aux": "Dynamic Thresholding" + } + ], + "https://github.com/meanin2/comfyui-MGnodes": [ + [ + "ImageWatermarkNode", + "TextExtractorNode" + ], + { + "title_aux": "comfyui-MGnodes" } ], "https://github.com/meap158/ComfyUI-Background-Replacement": [ @@ -9174,6 +33178,33 @@ "title_aux": "ComfyUI-Prompt-Expansion" } ], + "https://github.com/mech-tools/comfyui-checkpoint-automatic-config": [ + [ + "CheckpointAutomaticConfig", + "ConfigPipe" + ], + { + "title_aux": "ComfyUI Checkpoint Automatic Config" + } + ], + "https://github.com/mediocreatmybest/ComfyUI-Transformers-Pipeline": [ + [ + "BatchProcessorTpl", + "CaptionExportTpl", + "CaptionGeneratorTpl", + "DebugModelNodeTpl", + "DebugNodeTpl", + "ExifMetadataExtractorTpl", + "Florence2NodeTpl", + "ImageLoaderTpl", + "ModelLoaderTpl", + "PresetModelListTpl", + "TaskListTpl" + ], + { + "title_aux": "ComfyUI-Transformers-Pipeline" + } + ], "https://github.com/melMass/comfy_mtb": [ [ "Animation Builder (mtb)", @@ -9242,6 +33273,83 @@ "title_aux": "MTB Nodes" } ], + "https://github.com/melMass/comfy_oiio": [ + [ + "OIIO_ColorspaceConvert", + "OIIO_ColorspaceMatchFinder", + "OIIO_LoadImage", + "OIIO_SaveImage" + ], + { + "title_aux": "comfy-oiio" + } + ], + "https://github.com/mengqin/ComfyUI-UnetBnbModelLoader": [ + [ + "UnetBnbModelLoader" + ], + { + "title_aux": "Unet Bnb Model Loader" + } + ], + "https://github.com/mephisto83/petty-paint-comfyui-node": [ + [ + "ConvertWhiteToAlpha", + "PPGenerateRandomFloat", + "PPGenerateRandomNumber", + "PPKSamplerAdvanced", + "PPSelectRandomValue", + "PettyImageImageColorToMask", + "PettyPaintAppend", + "PettyPaintApplyLoRAStack", + "PettyPaintArguments", + "PettyPaintBlurs", + "PettyPaintCheckpointLoaderSimple", + "PettyPaintComponent", + "PettyPaintConditioningSetMaskAndCombine", + "PettyPaintControlNetToMasking", + "PettyPaintConvert", + "PettyPaintCountFiles", + "PettyPaintEnsureDirectory", + "PettyPaintExec", + "PettyPaintFakeConvert", + "PettyPaintFileExists", + "PettyPaintImageColorsToMasks", + "PettyPaintImageCompositeMasked", + "PettyPaintImageDims", + "PettyPaintImageMaskCropper", + "PettyPaintImagePlacement", + "PettyPaintImageSave", + "PettyPaintImageStore", + "PettyPaintImageToMask", + "PettyPaintImagesToMasks", + "PettyPaintJsonMap", + "PettyPaintJsonRead", + "PettyPaintJsonReadArray", + "PettyPaintKSampler", + "PettyPaintKSamplerAdvanced", + "PettyPaintLoRAStack", + "PettyPaintLoadImage", + "PettyPaintLoadImageMasks", + "PettyPaintLoadImages", + "PettyPaintMap", + "PettyPaintMasksToImages", + "PettyPaintNot", + "PettyPaintPassThroughNode", + "PettyPaintProcessor", + "PettyPaintRemoveAddText", + "PettyPaintSDTurboScheduler", + "PettyPaintStoryImage", + "PettyPaintText", + "PettyPaintTexts_to_Conditioning", + "PettyPaintToJson", + "PettyPaintVAEDecode", + "SkippableVAEEncode" + ], + { + "title_aux": "petty-paint-comfyui-node" + } + ], "https://github.com/meshmesh-io/ComfyUI-MeshMesh": [ [ "ColorPicker", @@ -9272,6 +33380,117 @@ "title_aux": "mm-comfyui-megamask" } ], + "https://github.com/metal3d/ComfyUI_Human_Parts": [ + [ + "HumanParts" + ], + { + "title_aux": "Human Parts Detector" + } + ], + "https://github.com/metal3d/ComfyUI_M3D_photo_effects": [ + [ + "Bleach Bypass", + "RGB Curve" + ], + { + "title_aux": "M3D photo effects" + } + ], + "https://github.com/metncelik/comfyui_met_suite": [ + [ + "BBOXPadding", + "BBOXResize", + "ImageResizeKeepRatio", + "PrimitiveBBOX", + "RaiseError" + ], + { + "title_aux": "comfyui_met_suite" + } + ], + "https://github.com/mfg637/ComfyUI-ScheduledGuider-Ext": [ + [ + "ArctanScheduler", + "ConcatSigmas", + "CosineScheduler", + "CustomBaseLogarithm", + "CustomExponent", + "GaussianScheduler", + "InvertSigmas", + "LogNormal Scheduler", + "OffsetSigmas", + "Parametric Peak #1", + "PerpNegScheduledCFGGuider", + "PredefinedExponent", + "PredefinedLogarithm", + "ScaleToRange", + "ScheduledCFGGuider", + "SigmasToPower", + "SplitSigmasByValue", + "k/x scheduler" + ], + { + "title_aux": "ComfyUI-ScheduledGuider-Ext" + } + ], + "https://github.com/mgfxer/ComfyUI-FrameFX": [ + [ + "DynamicAnimatedWeightsHelper", + "EdgeFXSourceImages", + "FlorencePromptTravelHelper", + "LivePromptInterpolation", + "MaskSequenceHelper", + "PromptStackManager", + "PromptTravelHelper" + ], + { + "author": "mgfxer", + "description": "This extension provides various frame and mask sequence manipulation tools for animation workflows.", + "nickname": "FrameFX \ud83d\udcab", + "title": "FrameFX", + "title_aux": "ComfyUI-FrameFX" + } + ], + "https://github.com/miaoshouai/ComfyUI-Miaoshouai-Tagger": [ + [ + "Miaoshouai_Caption_Analyzer", + "Miaoshouai_Flux_CLIPTextEncode", + "Miaoshouai_SaveTags", + "Miaoshouai_Tagger" + ], + { + "title_aux": "ComfyUI-Miaoshouai-Tagger" + } + ], + "https://github.com/miaoshouai/ComfyUI-Video-Segmentation": [ + [ + "DownloadAndLoadTransNetModel", + "SelectVideo", + "TransNetV2_Run", + "ZipCompress" + ], + { + "title_aux": "ComfyUI Video Segmentation Node" + } + ], + "https://github.com/michaelgold/ComfyUI-HF-Model-Downloader": [ + [ + "DownloadModel", + "ModelDownloader" + ], + { + "title_aux": "ComfyUI-HF-Model-Downloader" + } + ], + "https://github.com/microbote/ComfyUI-StyledCLIPTextEncode": [ + [ + "StyledCLIPTextEncode" + ], + { + "title_aux": "StyledCLIPTextEncode" + } + ], "https://github.com/mihaiiancu/ComfyUI_Inpaint": [ [ "InpaintMediapipe" @@ -9280,6 +33499,33 @@ "title_aux": "mihaiiancu/Inpaint" } ], + "https://github.com/mikebilly/Transparent-background-comfyUI": [ + [ + "Transparentbackground RemBg" + ], + { + "title_aux": "Transparent-background-comfyUI" + } + ], + "https://github.com/mikeshuangyan/ComfyUI_MqUtils": [ + [ + "MqCheckFP4Support", + "MqIntSwitch", + "MqIntToString", + "MqTextSplitter" + ], + { + "title_aux": "ComfyUI_MqUtils" + } + ], + "https://github.com/mikheys/comfyui-gemini-mikheys": [ + [ + "Nano_Banana" + ], + { + "title_aux": "ComfyUI Nano Banana Node" + } + ], "https://github.com/mikkel/ComfyUI-text-overlay": [ [ "Image Text Overlay" @@ -9296,24 +33542,79 @@ "title_aux": "ComfyUI - Mask Bounding Box" } ], + "https://github.com/mingsky-ai/ComfyUI-MingNodes": [ + [ + "AddWaterMarkNode", + "AdjustBrightnessContrastSaturationNode", + "BaiduTranslateNode", + "ColorBalanceNode", + "ConvertGrayChannelNode", + "HSLColorNode", + "HighlightShadowBrightnessNode", + "ImitationHueNode", + "LightShapeNode", + "RemoveWatermarkNode" + ], + { + "title_aux": "ComfyUI-MingNodes" + } + ], + "https://github.com/mira-6/comfyui-sasolver": [ + [ + "SamplerSASolver", + "SamplerSASolverExperimental" + ], + { + "title_aux": "comfyui-sasolver" + } + ], "https://github.com/mirabarukaso/ComfyUI_Mira": [ [ + "BooleanListInterpreter1", + "BooleanListInterpreter4", + "BooleanListInterpreter8", "CanvasCreatorAdvanced", "CanvasCreatorBasic", "CanvasCreatorSimple", + "CheckpointLoaderSimpleMira", "CreateMaskWithCanvas", "CreateNestedPNGMask", + "CreateSimpleMask", "CreateTillingPNGMask", "CreateWatermarkRemovalMask", + "EightBooleanTrigger", "EightFloats", "EvenOrOdd", + "EvenOrOddList", + "FlatColorQuantization", + "FloatListInterpreter1", + "FloatListInterpreter4", + "FloatListInterpreter8", "FloatMultiplication", "FourBooleanTrigger", "FourFloats", + "FunctionSelectAuto", + "FunctionSwap", + "GzippedBase64ToImage", + "ImageBrightness", + "ImageColorTransferMira", + "ImageContrast", + "ImageGamma", + "ImageGrayscale", + "ImageHUE", + "ImageRGBChannel", + "ImageSaturation", + "ImageSaverMira", + "ImageSharpness", + "ImageToGzippedBase64", + "ImageToneCurve", "IntMultiplication", "IntSubtraction", "IntToFloatMultiplication", + "LoRALoaderWithNameStacker", + "LoRAfromText", "LogicNot", + "NoneToZero", "NumeralToString", "OneFloat", "PngColorMasksToMaskList", @@ -9324,23 +33625,134 @@ "PngRectanglesToMaskList", "RandomNestedLayouts", "RandomTillingLayouts", - "SeedGenerator", + "ReverseImageAndAllImages", + "SN74HC1G86", + "SN74HC86", + "SN74LVC1G125", + "SeedGeneratorMira", "SingleBooleanTrigger", "SixBooleanTrigger", - "SixFloats", + "StackImages", "StepsAndCfg", - "StepsAndCfgAndWH", - "TextBox", + "TextBoxMira", "TextCombinerSix", "TextCombinerTwo", + "TextLoopCombiner", + "TextSwitcherThreeWays", + "TextSwitcherTwoWays", + "TextWildcardSeprator", "TextWithBooleanSwitchAndCommonTextInput", "TwoBooleanTrigger", - "TwoFloats" + "TwoFloats", + "UpscaleImageByModelThenResize", + "illustrious_character_select", + "illustrious_character_select_en", + "llm_prompt_gen_node", + "local_llm_prompt_gen" ], { "title_aux": "ComfyUI_Mira" } ], + "https://github.com/misterjoessef/MLTask_ComfyUI": [ + [ + "FacebookPosterData", + "InstagramPosterData", + "LinkedinPosterData", + "MLTaskUtilsTextImageGenerator", + "PinterestPosterData", + "SocialManMediaToPoster", + "SocialManPostData", + "SocialManPoster", + "TiktokPosterData", + "TwitterPosterData", + "YoutubePosterData" + ], + { + "title_aux": "MLTask_ComfyUI" + } + ], + "https://github.com/mittimi/ComfyUI_mittimiDaisyChainText": [ + [ + "DaisyChainTextMittimi" + ], + { + "author": "mittimi", + "description": "It has the ability to concatenate text.", + "nickname": "mittimiDaisyChainText", + "title": "mittimiDaisyChainText", + "title_aux": "ComfyUI_mittimiDaisyChainText" + } + ], + "https://github.com/mittimi/ComfyUI_mittimiLoadPreset2": [ + [ + "CombineParamDataMittimi", + "LoadImageParamMittimi", + "LoadSetParamMittimi", + "SaveImageParamMittimi", + "SaveParamToPresetMittimi" + ], + { + "author": "mittimi", + "description": "This node can easily switch between models and prompts by saving presets.", + "nickname": "mittimiLoadPreset2", + "title": "mittimiLoadPreset2", + "title_aux": "ComfyUI_mittimiLoadPreset2" + } + ], + "https://github.com/mittimi/ComfyUI_mittimiRecalculateSize": [ + [ + "RecalculateSizeMittimi01" + ], + { + "author": "mittimi", + "description": "Switch between vertical and horizontal values with a single button.", + "nickname": "mittimiWidthHeight", + "title": "mittimiWidthHeight", + "title_aux": "ComfyUI_mittimiRecalculateSize" + } + ], + "https://github.com/mittimi/ComfyUI_mittimiWidthHeight": [ + [ + "WidthHeightMittimi01" + ], + { + "author": "mittimi", + "description": "Switch between vertical and horizontal values with a single button.", + "nickname": "mittimiWidthHeight", + "title": "mittimiWidthHeight", + "title_aux": "ComfyUI_mittimiWidthHeight" + } + ], + "https://github.com/mo230761/InsertAnything-ComfyUI-official": [ + [ + "CropBack", + "CropBackNoScaling", + "FillProcess", + "FillProcessNoScaling", + "MaskOption", + "ReduxProcess" + ], + { + "title_aux": "InsertAnything-ComfyUI-official" + } + ], + "https://github.com/mobilehacker/ComfyUI_format-lora-stack": [ + [ + "FormatLoraStack" + ], + { + "title_aux": "ComfyUI_format-lora-stack" + } + ], + "https://github.com/modelscope/comfyscope": [ + [ + "DashScopeFLUXAPI" + ], + { + "title_aux": "Dashscope FLUX API for ComfyUI" + } + ], "https://github.com/modusCell/ComfyUI-dimension-node-modusCell": [ [ "DimensionProviderFree modusCell", @@ -9351,12 +33763,367 @@ "title_aux": "Preset Dimensions" } ], - "https://github.com/mpiquero7164/ComfyUI-SaveImgPrompt": [ + "https://github.com/mohseni-mr/ComfyUI-Mohseni-Kit": [ [ - "Save IMG Prompt" + "FloatPreview" ], { - "title_aux": "SaveImgPrompt" + "title_aux": "ComfyUI Mohseni Kit" + } + ], + "https://github.com/mohsensd1373/comfyui_wordpress": [ + [ + "SaveToWordPressNode" + ], + { + "title_aux": "comfyui_wordpress" + } + ], + "https://github.com/monkeyWie/ComfyUI-FormInput": [ + [ + "BooleanInput_FormInput", + "DisplayText_FormInput", + "TextInput_FormInput" + ], + { + "title_aux": "ComfyUI-FormInput" + } + ], + "https://github.com/moon7star9/ComfyUI_BiRefNet_Universal": [ + [ + "BiRefNet_Loader", + "BiRefNet_Remove_Background" + ], + { + "title_aux": "ComfyUI_BiRefNet_Universal" + } + ], + "https://github.com/moonwhaler/comfyui-seedvr2-tilingupscaler": [ + [ + "SeedVR2TilingUpscaler" + ], + { + "title_aux": "SeedVR2 Tiling Upscaler" + } + ], + "https://github.com/morino-kumasan/comfyui-toml-prompt": [ + [ + "CheckPointLoaderSimpleFromString", + "IntSelector", + "JsonExtractFloat", + "JsonExtractInt", + "JsonExtractString", + "KSamplerFromJsonInfo", + "LatentSelector", + "MultipartCLIPTextEncode", + "MultipleLoraTagLoader", + "PromptLoader", + "SeedGenerator", + "StringConcat", + "StringConcatInt", + "StringPicker", + "StringSelector", + "StringViewer", + "SummaryReader", + "TomlPromptDecode" + ], + { + "title_aux": "comfyui-toml-prompt" + } + ], + "https://github.com/moustafa-nasr/ComfyUI-SimpleLogger": [ + [ + "Log Image", + "LogImageNode" + ], + { + "title_aux": "ComfyUI-SimpleLogger" + } + ], + "https://github.com/moyi7712/ComfyUI_Seamless_Patten": [ + [ + "SeamlessApply", + "SeamlessKSampler", + "SeamlessKSamplerAdvanced", + "SeamlessVae" + ], + { + "title_aux": "ComfyUI_Seamless_Patten" + } + ], + "https://github.com/mr7thing/circle_pattern_processor": [ + [ + "CirclePatternProcessor", + "CirclePatternSVGExporter", + "ImageBinarizer" + ], + { + "title_aux": "Circle Pattern Processor for ComfyUI" + } + ], + "https://github.com/mrchipset/ComfyUI-SaveImageS3": [ + [ + "SaveImageS3" + ], + { + "author": "Mr.Chip", + "description": "This extension offers a custom node to save image to S3-compatible oss.", + "nickname": "SaveImageS3", + "title": "SaveImageS3", + "title_aux": "ComfyUI-SaveImageS3" + } + ], + "https://github.com/mrhan1993/ComfyUI-Fooocus": [ + [ + "AlignYourStepsScheduler", + "BasicScheduler", + "CLIPLoader", + "CLIPMergeSimple", + "CLIPSave", + "CLIPSetLastLayer", + "CLIPTextEncode", + "CLIPTextEncodeSDXL", + "CLIPTextEncodeSDXLRefiner", + "CLIPVisionEncode", + "CLIPVisionLoader", + "Canny", + "CheckpointLoader", + "CheckpointLoaderSimple", + "CheckpointSave", + "ClearVram", + "ConditioningAverage", + "ConditioningCombine", + "ConditioningConcat", + "ConditioningSetArea", + "ConditioningSetAreaPercentage", + "ConditioningSetMask", + "ConditioningSetTimestepRange", + "ConditioningZeroOut", + "ControlNetApply", + "ControlNetApplyAdvanced", + "ControlNetLoader", + "CropMask", + "DiffControlNetLoader", + "DiffusersLoader", + "DualCLIPLoader", + "EmptyImage", + "EmptyLatentImage", + "EnhanceControl", + "EnhanceControls", + "ExponentialScheduler", + "FeatherMask", + "FlipSigmas", + "FooocusSampler", + "FooocusSettings", + "FreeU", + "FreeU_V2", + "GLIGENLoader", + "GLIGENTextBoxApply", + "GrowMask", + "HyperTile", + "HypernetworkLoader", + "ImageBatch", + "ImageBlend", + "ImageBlur", + "ImageColorToMask", + "ImageCompositeMasked", + "ImageCrop", + "ImageInvert", + "ImageOnlyCheckpointLoader", + "ImageOnlyCheckpointSave", + "ImagePadForOutpaint", + "ImagePrompts", + "ImageQuantize", + "ImageScale", + "ImageScaleBy", + "ImageScaleToTotalPixels", + "ImageSharpen", + "ImageToMask", + "ImageUpscaleWithModel", + "InpaintModelConditioning", + "InpaintOutpaint", + "InvertMask", + "JoinImageWithAlpha", + "KSampler", + "KSamplerAdvanced", + "KSamplerSelect", + "KarrasScheduler", + "LatentAdd", + "LatentBatch", + "LatentBatchSeedBehavior", + "LatentBlend", + "LatentComposite", + "LatentCompositeMasked", + "LatentCrop", + "LatentFlip", + "LatentFromBatch", + "LatentInterpolate", + "LatentMultiply", + "LatentRotate", + "LatentSubtract", + "LatentUpscale", + "LatentUpscaleBy", + "LoadImage", + "LoadImageMask", + "LoadLatent", + "LoraLoader", + "LoraLoaderModelOnly", + "LoraStacks", + "MaskComposite", + "MaskToImage", + "ModelMergeAdd", + "ModelMergeBlocks", + "ModelMergeSimple", + "ModelMergeSubtract", + "ModelSamplingContinuousEDM", + "ModelSamplingDiscrete", + "PatchModelAddDownscale", + "PerpNeg", + "PhotoMakerEncode", + "PhotoMakerLoader", + "PolyexponentialScheduler", + "PorterDuffImageComposite", + "PreviewImage", + "RebatchImages", + "RebatchLatents", + "RepeatImageBatch", + "RepeatLatentBatch", + "RescaleCFG", + "SDTurboScheduler", + "SD_4XUpscale_Conditioning", + "SVD_img2vid_Conditioning", + "SamplerCustom", + "SamplerDPMPP_2M_SDE", + "SamplerDPMPP_SDE", + "SamplerTCD", + "SaveAnimatedPNG", + "SaveAnimatedWEBP", + "SaveImage", + "SaveLatent", + "SelfAttentionGuidance", + "SetLatentNoiseMask", + "SolidMask", + "SplitImageWithAlpha", + "SplitSigmas", + "StableZero123_Conditioning", + "StableZero123_Conditioning_Batched", + "StyleModelApply", + "StyleModelLoader", + "TomePatchModel", + "UNETLoader", + "UpscaleModelLoader", + "UpscaleVary", + "VAEDecode", + "VAEDecodeTiled", + "VAEEncode", + "VAEEncodeForInpaint", + "VAEEncodeTiled", + "VAELoader", + "VAESave", + "VPScheduler", + "VideoLinearCFGGuidance", + "unCLIPCheckpointLoader", + "unCLIPConditioning" + ], + { + "author": "Konie", + "title_aux": "ComfyUI-Fooocus" + } + ], + "https://github.com/muhammederem/blip-comfyui": [ + [ + "Blip Processor Node", + "List to Text Node" + ], + { + "title_aux": "BLIP Vision-Language Model Integration" + } + ], + "https://github.com/mullakhmetov/comfyui_dynamic_util_nodes": [ + [ + "ConcatStrings", + "FormatString", + "GetFiles", + "LoadImageByPath", + "StringOutput" + ], + { + "title_aux": "comfyui_dynamic_util_nodes" + } + ], + "https://github.com/muxueChen/ComfyUI_NTCosyVoice": [ + [ + "NTCosyVoiceCrossLingualSampler", + "NTCosyVoiceInstruct2Sampler", + "NTCosyVoiceZeroShotSampler" + ], + { + "title_aux": "CosyVoice2 for ComfyUI" + } + ], + "https://github.com/muzi12888/ComfyUI-PoseKeypoint-Mask": [ + [ + "Image Brightness", + "Openpose Keypoint Mask" + ], + { + "title_aux": "PoseKeypoint Mask" + } + ], + "https://github.com/my-opencode/ComfyUI_IndustrialMagick": [ + [ + "IndustrialMagick", + "IndustrialMagickImageIngest" + ], + { + "title_aux": "ComfyUI_IndustrialMagick" + } + ], + "https://github.com/my-opencode/ComfyUI_KSamplerTimer": [ + [ + "KSamplerTimer" + ], + { + "author": "Ludovic Anterieur", + "description": "This extension provides a wrapper of the native KSampler which outputs generation time.", + "nickname": "\u23f1", + "title": "KSampler (timer)", + "title_aux": "ComfyUI_KSamplerTimer" + } + ], + "https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin": [ + [ + "ShellAgentPluginInputAudio", + "ShellAgentPluginInputBoolean", + "ShellAgentPluginInputFloat", + "ShellAgentPluginInputImage", + "ShellAgentPluginInputInteger", + "ShellAgentPluginInputText", + "ShellAgentPluginInputVideo", + "ShellAgentPluginOutputBoolean", + "ShellAgentPluginOutputFloat", + "ShellAgentPluginOutputInteger", + "ShellAgentPluginOutputText", + "ShellAgentPluginSaveAudio", + "ShellAgentPluginSaveAudios", + "ShellAgentPluginSaveImage", + "ShellAgentPluginSaveImages", + "ShellAgentPluginSaveVideoVHS" + ], + { + "author": "MyShell", + "description": "", + "title": "comfyui-shellagent-plugin", + "title_aux": "ComfyUI-ShellAgent-Plugin" + } + ], + "https://github.com/n0neye/A3D-comfyui-integration": [ + [ + "A3DListener", + "UniqueNodeName" + ], + { + "title_aux": "A3D ComfyUI Integration" } ], "https://github.com/nagolinc/ComfyUI_FastVAEDecorder_SDXL": [ @@ -9367,6 +34134,51 @@ "title_aux": "ComfyUI_FastVAEDecorder_SDXL" } ], + "https://github.com/nagolinc/comfyui_openai_node": [ + [ + "OpenAINode" + ], + { + "title_aux": "comfyui_openai_node" + } + ], + "https://github.com/nako-nakoko/ComfyUI_Mel_Nodes": [ + [ + "AddFileNameonly", + "ResolutionSwitcher", + "Split Image Batch", + "Unet Selector_gguf", + "mel_RandomIntNode", + "mel_TextFilterNode", + "mel_TextSplitNode", + "mel_TextSplitNode2" + ], + { + "title_aux": "ComfyUI_Mel_Nodes" + } + ], + "https://github.com/namtb96/OmniGen2-Simple-Node": [ + [ + "OmniGen2ModelLoader", + "OmniGen2Sampler" + ], + { + "title_aux": "OmniGen2 Simple Node" + } + ], + "https://github.com/narusas/Comfyui-Logic-Support": [ + [ + "BooleanIndexAdder", + "NumberConditionChecker", + "NumberRangeIndex", + "NumberSequenceGenerator", + "StringConcatenator", + "StringSwitchByNumber" + ], + { + "title_aux": "ComfyUI Logic Support" + } + ], "https://github.com/natto-maki/ComfyUI-NegiTools": [ [ "NegiTools_CompositeImages", @@ -9391,20 +34203,242 @@ "title_aux": "ComfyUI-NegiTools" } ], + "https://github.com/nchenevey1/comfyui-gimp-nodes": [ + [ + "NC_LoadImageGIMP", + "NC_LoadMaskGIMP", + "NC_SendImageDimsWebSocketGIMP", + "NC_SendImageWebSocketGIMP" + ], + { + "title_aux": "comfyui-gimp-nodes" + } + ], + "https://github.com/negaga53/comfyui-imgloader": [ + [ + "ImageLoader" + ], + { + "title_aux": "ComfyUI Universal Image Loader" + } + ], + "https://github.com/neggo/comfyui-sambanova": [ + [ + "SambaNova API Node", + "SambaNovaNode" + ], + { + "title_aux": "comfyui-sambanova" + } + ], + "https://github.com/neocrz/comfyui-usetaesd": [ + [ + "DecodeTAESD", + "DecodeTAESDTiled", + "EncodeTAESD", + "EncodeTAESDTiled" + ], + { + "title_aux": "comfyui-usetaesd" + } + ], + "https://github.com/neph1/comfyui-smooth-step-lora-loader": [ + [ + "Smooth_Step_Lora_Loader" + ], + { + "title_aux": "comfyui-smooth-step-lora-loader" + } + ], + "https://github.com/netroxin/comfyui_netro": [ + [ + "CamPromptNode" + ], + { + "title_aux": "comfyui_netro" + } + ], + "https://github.com/neverbiasu/ComfyUI-BAGEL": [ + [ + "BagelImageEdit", + "BagelImageUnderstanding", + "BagelModelLoader", + "BagelMultiImageEdit", + "BagelTextToImage" + ], + { + "title_aux": "ComfyUI-BAGEL" + } + ], + "https://github.com/neverbiasu/ComfyUI-ChatTTS": [ + [ + "ChatTTSLoader", + "ChatTTS_ExtractSpeaker", + "ChatTTS_LoadSpeakerProfile", + "ChatTTS_Sampler", + "ChatTTS_SaveSpeakerProfile", + "ChatTTS_SeedBasedSpeaker", + "ChatTTS_TextNormalizer", + "ChatTTS_TextSplitter" + ], + { + "title_aux": "ComfyUI-ChatTTS" + } + ], + "https://github.com/neverbiasu/ComfyUI-Dashscope": [ + [ + "DashscopeEmoCaller", + "DashscopeLLMLoader", + "DashscopeModelCaller", + "DashscopeOCRCaller", + "DashscopeVLMLoader" + ], + { + "title_aux": "ComfyUI-Dashscope" + } + ], + "https://github.com/neverbiasu/ComfyUI-Image-Captioner": [ + [ + "ImageCaptioner" + ], + { + "title_aux": "ComfyUI-Image-Captioner" + } + ], + "https://github.com/neverbiasu/ComfyUI-Ovis-U1": [ + [ + "OvisU1ImageEdit", + "OvisU1ImageToText", + "OvisU1ModelLoader", + "OvisU1TextToImage" + ], + { + "title_aux": "ComfyUI-Ovis-U1" + } + ], + "https://github.com/neverbiasu/ComfyUI-SAM2": [ + [ + "GroundingDinoModelLoader (segment anything2)", + "GroundingDinoSAM2Segment (segment anything2)", + "InvertMask (segment anything)", + "IsMaskEmpty", + "SAM2ModelLoader (segment anything2)" + ], + { + "title_aux": "ComfyUI SAM2(Segment Anything 2)" + } + ], + "https://github.com/neverbiasu/ComfyUI-StyleShot": [ + [ + "StyleShotApply" + ], + { + "title_aux": "ComfyUI-StyleShot" + } + ], + "https://github.com/ngosset/ComfyUI-ImageSimilarity": [ + [ + "Image Similarity" + ], + { + "title_aux": "ImageSimilarity" + } + ], + "https://github.com/nicehero/comfyui-SegGPT": [ + [ + "SegGPT" + ], + { + "title_aux": "comfyui-SegGPT" + } + ], "https://github.com/nickve28/ComfyUI-Nich-Utils": [ [ - "Image from Dir Selector (Nich)" + "Image from Dir Selector (Nich)", + "Select Text with Regular Expression (Nich)" ], { "title_aux": "ComfyUI Nich Utils" } ], - "https://github.com/nicolai256/comfyUI_Nodes_nicolai256/raw/main/yugioh-presets.py": [ + "https://github.com/nicofdga/DZ-FaceDetailer": [ [ - "yugioh_Presets" + "DZ_Face_Detailer" ], { - "title_aux": "comfyUI_Nodes_nicolai256" + "title_aux": "DZ-FaceDetailer" + } + ], + "https://github.com/niknah/ComfyUI-F5-TTS": [ + [ + "F5TTSAudio", + "F5TTSAudioAdvanced", + "F5TTSAudioInputs" + ], + { + "title_aux": "ComfyUI F5-TTS" + } + ], + "https://github.com/niknah/ComfyUI-Hunyuan-3D-2": [ + [ + "Hunyuan3D2ImageTo3D" + ], + { + "title_aux": "ComfyUI Hunyuan-3D-2" + } + ], + "https://github.com/niknah/ComfyUI-InfiniteYou": [ + [ + "InfiniteYouSampler" + ], + { + "title_aux": "ComfyUI-InfiniteYou" + } + ], + "https://github.com/niknah/audio-general-ComfyUI": [ + [ + "AudioBassTreble", + "AudioConcat", + "AudioInfo", + "AudioMix", + "AudioPitch", + "AudioSampleRate", + "AudioSpeed", + "AudioTrimSilenceRosa", + "AudioTrimSilenceVAD" + ], + { + "title_aux": "Audio General" + } + ], + "https://github.com/nilor-corp/nilor-nodes": [ + [ + "Nilor Blur Analysis", + "Nilor Categorize String", + "Nilor Count Images In Directory", + "Nilor Extract Filename from Path", + "Nilor Int To List Of Bools", + "Nilor Interpolated Float List", + "Nilor Inverse Map Float List", + "Nilor List of Ints", + "Nilor Load Image By Index", + "Nilor One Minus Float List", + "Nilor Output Filename String", + "Nilor Random String", + "Nilor Remap Float List", + "Nilor Remap Float List Auto Input", + "Nilor Repeat & Trim Image Batch", + "Nilor Repeat, Shuffle, & Trim Image Batch", + "Nilor Save EXR Arbitrary", + "Nilor Save Image To HF Dataset", + "Nilor Save Video To HF Dataset", + "Nilor Select Index From List", + "Nilor Shuffle Image Batch", + "Nilor To Sparse Index Method", + "Nilor n Fractions of Int" + ], + { + "title_aux": "Nilor Nodes by Nilor Corp" } ], "https://github.com/ningxiaoxiao/comfyui-NDI": [ @@ -9416,15 +34450,72 @@ "title_aux": "comfyui-NDI" } ], + "https://github.com/nirbhay-faaya/ImgProcessing_ComfyUI": [ + [ + "ImageConcat", + "ImageCropMultEight", + "ImageCut", + "LightingPreprocessor" + ], + { + "title_aux": "ImgProcessing_ComfyUI" + } + ], + "https://github.com/nirex0/ComfyUI_pytorch_openpose": [ + [ + "pytorch_openpose" + ], + { + "title_aux": "ComfyUI_pytorch_openpose" + } + ], + "https://github.com/nisaruj/comfyui-daam": [ + [ + "CLIPTextEncodeWithTokens", + "DAAMAnalyzer", + "KSamplerDAAM" + ], + { + "title_aux": "ComfyUI-DAAM" + } + ], + "https://github.com/nisimjoseph/ComfyUI_OpenAI-Prompter": [ + [ + "OpenAI Prompt Generator" + ], + { + "title_aux": "ComfyUI OpenAI Prompter" + } + ], + "https://github.com/njlent/ComfyUI_wavelet-colorfix": [ + [ + "WaveletColorFix" + ], + { + "title_aux": "ComfyUI Wavelet Color Fix" + } + ], + "https://github.com/nkchocoai/ComfyUI-DanbooruPromptQuiz": [ + [ + "DanbooruPromptComparison", + "DanbooruPromptQuiz" + ], + { + "title_aux": "ComfyUI-DanbooruPromptQuiz" + } + ], "https://github.com/nkchocoai/ComfyUI-Dart": [ [ "DanbooruTagsTransformerBanTagsFromRegex", "DanbooruTagsTransformerComposePrompt", + "DanbooruTagsTransformerComposePromptV2", "DanbooruTagsTransformerDecode", "DanbooruTagsTransformerDecodeBySplitedParts", "DanbooruTagsTransformerGenerate", "DanbooruTagsTransformerGenerateAdvanced", "DanbooruTagsTransformerGenerationConfig", + "DanbooruTagsTransformerGetAspectRatio", + "DanbooruTagsTransformerLoader", "DanbooruTagsTransformerRearrangedByAnimagine", "DanbooruTagsTransformerRemoveTagToken" ], @@ -9440,8 +34531,13 @@ "PromptUtilitiesJoinStringList", "PromptUtilitiesLoadPreset", "PromptUtilitiesLoadPresetAdvanced", + "PromptUtilitiesPromptWeight", "PromptUtilitiesRandomPreset", - "PromptUtilitiesRandomPresetAdvanced" + "PromptUtilitiesRandomPresetAdvanced", + "PromptUtilitiesReplaceOrInsertTag", + "PromptUtilitiesRoundPromptWeight", + "PromptUtilitiesSampleTags", + "PromptUtilitiesSampleTagsWithWeight" ], { "title_aux": "ComfyUI-PromptUtilities" @@ -9449,6 +34545,7 @@ ], "https://github.com/nkchocoai/ComfyUI-SaveImageWithMetaData": [ [ + "CreateExtraMetaData", "SaveImageWithMetaData" ], { @@ -9459,6 +34556,8 @@ [ "EmptyLatentImageFromPresetsSD15", "EmptyLatentImageFromPresetsSDXL", + "GetSimilarResolution", + "GetSimilarResolutionEmptyLatent", "RandomEmptyLatentImageFromPresetsSD15", "RandomEmptyLatentImageFromPresetsSDXL", "RandomSizeFromPresetsSD15", @@ -9482,6 +34581,24 @@ "title_aux": "ComfyUI-TextOnSegs" } ], + "https://github.com/nobrainX2/comfyUI-customDia": [ + [ + "Audio retimer", + "Dia text to speech" + ], + { + "title_aux": "ComfyUI Custom Dia" + } + ], + "https://github.com/noelkim12/ComfyUI-NoelTextUtil": [ + [ + "NoelLoRATriggerInjector", + "NoelUnifiedPrefix" + ], + { + "title_aux": "ComfyUI-ComfyUI-NoelTextUtil" + } + ], "https://github.com/noembryo/ComfyUI-noEmbryo": [ [ "PromptTermList1", @@ -9499,15 +34616,82 @@ "title_aux": "noEmbryo nodes" } ], - "https://github.com/nosiu/comfyui-instantId-faceswap": [ + "https://github.com/nofunstudio/Node_Fun_ComfyUI": [ [ - "FaceEmbed", - "FaceSwapGenerationInpaint", - "FaceSwapSetupPipeline", - "LCMLora" + "DynamicQueueCounter", + "FalAPI_kling_video", + "FalAPI_recraft_upscale", + "FluxKontextInpaintingConditioning", + "Fun KSampler", + "IframeView", + "IndexedStringSelector", + "Kontext Inpainting Conditioning", + "LayeredInfiniteZoom", + "MultiAlphaComposite", + "Replicate flux 1.1 pro ultra", + "ReplicateAPI_flux_1_1_pro_ultra", + "ReplicateAPI_flux_fill_pro", + "StringLower" ], { - "title_aux": "ComfyUI InstantID Faceswapper" + "title_aux": "Node_Fun_ComfyUI" + } + ], + "https://github.com/northumber/ComfyUI-northTools": [ + [ + "BooleanIndexesToString", + "ConcatHistoryString", + "ExtractMetadataByKey", + "ImageToTrue", + "LoadImagesFromDirByIndexBatch", + "LoadImagesFromDirByIndexList", + "LoadImagesFromDirList", + "SumIntegers" + ], + { + "title_aux": "ComfyUI-northTools" + } + ], + "https://github.com/nosiu/comfyui-instantId-faceswap": [ + [ + "AngleFromFace", + "AngleFromKps", + "ComposeRotated", + "ControlNetInstantIdApply", + "FaceEmbed", + "FaceEmbedCombine", + "InstantIdAdapterApply", + "InstantIdAndControlnetApply", + "Kps2dRandomizer", + "Kps3dFromImage", + "Kps3dRandomizer", + "KpsCrop", + "KpsDraw", + "KpsMaker", + "KpsRotate", + "KpsScale", + "KpsScaleBy", + "LoadInsightface", + "LoadInstantIdAdapter", + "MaskFromKps", + "PreprocessImage", + "PreprocessImageAdvanced", + "RotateImage" + ], + { + "title_aux": "comfyui-instantId-faceswap" + } + ], + "https://github.com/nosiu/comfyui-text-randomizer": [ + [ + "ConcatText", + "RandomTextChoice", + "RandomizeText", + "RandomizeTextWithCheck", + "ShowText" + ], + { + "title_aux": "comfyui-text-randomizer" } ], "https://github.com/noxinias/ComfyUI_NoxinNodes": [ @@ -9523,6 +34707,16 @@ "title_aux": "ComfyUI_NoxinNodes" } ], + "https://github.com/nsdtcloud3d/ComfyUI-3D-Convert": [ + [ + "ConvertTo3DFormat", + "Load3DConvertAPIKEY", + "Load3DFile" + ], + { + "title_aux": "ComfyUI-3D-Convert" + } + ], "https://github.com/ntc-ai/ComfyUI-DARE-LoRA-Merge": [ [ "Apply LoRA", @@ -9533,37 +34727,253 @@ "title_aux": "ComfyUI - Apply LoRA Stacker with DARE" } ], - "https://github.com/ntdviet/comfyui-ext/raw/main/custom_nodes/gcLatentTunnel/gcLatentTunnel.py": [ + "https://github.com/nuanarchy/ComfyUI-NuA-BIRD": [ [ - "gcLatentTunnel" + "Bird_Deblurring_NuA", + "Bird_Denoising_NuA", + "Bird_Inpainting_NuA", + "Bird_Loader_NuA", + "Bird_Non_Uniform_Deblurring_NuA", + "Bird_Super_Resolution_NuA" ], { - "title_aux": "ntdviet/comfyui-ext" + "title_aux": "ComfyUI-NuA-BIRD" + } + ], + "https://github.com/nuanarchy/ComfyUI-NuA-FlashFace": [ + [ + "FlashFace_Loader_NuA", + "FlashFace_Sampler_NuA" + ], + { + "title_aux": "ComfyUI-NuA-FlashFace" } ], "https://github.com/nullquant/ComfyUI-BrushNet": [ [ "BlendInpaint", - "BrushNetInpaint", + "BrushNet", "BrushNetLoader", - "BrushNetPipeline" + "CutForInpaint", + "PowerPaint", + "PowerPaintCLIPLoader", + "RAUNet", + "Terminal" ], { "author": "nullquant", - "description": "This repository contains an custom nodes for inpaint using BrushNet and PowerPaint models", + "description": "These are custom nodes for ComfyUI native implementation of BrushNet, PowerPaint and RAUNet models", "nickname": "BrushName nodes", "title": "BrushNet", "title_aux": "BrushNet" } ], + "https://github.com/numz/ComfyUI-FlowChain": [ + [ + "WorkflowLipSync" + ], + { + "title_aux": "ComfyUI-FlowChain" + } + ], + "https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler": [ + [ + "SeedVR2", + "SeedVR2BlockSwap" + ], + { + "title_aux": "ComfyUI-SeedVR2_VideoUpscaler" + } + ], + "https://github.com/numz/Comfyui-Orpheus": [ + [ + "orpheus", + "orpheusAdvanced" + ], + { + "title_aux": "ComfyUI-Orpheus" + } + ], + "https://github.com/nunchaku-tech/ComfyUI-nunchaku": [ + [ + "NunchakuWheelInstaller" + ], + { + "title_aux": "ComfyUI-nunchaku" + } + ], + "https://github.com/nux1111/ComfyUI_NetDist_Plus": [ + [ + "CombineImageBatch", + "ConditioningFromBase64(Nux)", + "ConditioningToBase64(Nux)", + "ExtractBase64FromImage(Nux)", + "ExtractBase64FromImageUpload(Nux)", + "FetchRemote", + "FetchRemoteWithExtras(Nux)", + "LatentToBase64(Nux)", + "LoadCurrentWorkflowJSON", + "LoadDiskWorkflowJSON", + "LoadImageUrl", + "LoadLatentFromBase64(Nux)", + "LoadLatentNumpy", + "LoadLatentUrl", + "LoadWorkflowJSON", + "RemoteApplyValues(Nux)", + "RemoteApplyValuesMulti(Nux)", + "RemoteChainEnd", + "RemoteChainStart", + "RemoteChainStart(Nux)", + "RemoteQueueSimple", + "RemoteQueueSimple(Nux)", + "RemoteQueueWorker", + "SaveDiskWorkflowJSON", + "SaveImageUrl", + "SaveImageWithBase64(Nux)", + "SaveLatentNumpy" + ], + { + "title_aux": "ComfyUI_NetDist_Plus" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-ChannelMixer": [ + [ + "OlmChannelMixer" + ], + { + "title_aux": "Olm Channel Mixer for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-ColorBalance": [ + [ + "OlmColorBalance" + ], + { + "title_aux": "Olm Color Balance for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-CurveEditor": [ + [ + "OlmCurveEditor" + ], + { + "title_aux": "Olm Curve Editor for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-DragCrop": [ + [ + "OlmCropInfoInterpreter", + "OlmDragCrop" + ], + { + "title_aux": "Olm DragCrop for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-Histogram": [ + [ + "OlmHistogram" + ], + { + "title_aux": "Olm Histogram for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-ImageAdjust": [ + [ + "OlmImageAdjust" + ], + { + "title_aux": "Olm Image Adjust for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-LGG": [ + [ + "OlmLGG" + ], + { + "title_aux": "Olm LGG (Lift, Gamma, Gain) for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-Resolution-Picker": [ + [ + "OlmResolutionPicker" + ], + { + "title_aux": "Olm Resolution Picker for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-Olm-Sketch": [ + [ + "OlmSketch" + ], + { + "title_aux": "Olm Sketch for ComfyUI" + } + ], + "https://github.com/o-l-l-i/ComfyUI-OlmLUT": [ + [ + "OlmLUT" + ], + { + "title_aux": "Olm LUT Node for ComfyUI" + } + ], + "https://github.com/obisin/ComfyUI-DGLS": [ + [ + "DGLSCleanup", + "DGLSModelLoader", + "DynamicSwappingLoader" + ], + { + "title_aux": "ComfyUI - DGLS (Dynamic GPU Layer Swapping)" + } + ], + "https://github.com/okgo4/ComfyUI-Mosaic-Mask": [ + [ + "MosaicMask" + ], + { + "title_aux": "ComfyUI-Mosaic-Mask" + } + ], "https://github.com/olduvai-jp/ComfyUI-HfLoader": [ [ + "ControlNet Loader From HF", "Lora Loader From HF" ], { "title_aux": "ComfyUI-HfLoader" } ], + "https://github.com/oleksandr612/ComfyUI-Counter": [ + [ + "Simple Counter" + ], + { + "title_aux": "ComfyUI-Counter" + } + ], + "https://github.com/oliverswitzer/ComfyUI-Lora-Visualizer": [ + [ + "LoRAVisualizer", + "PromptComposer", + "PromptSplitter" + ], + { + "title_aux": "LoRA Visualizer" + } + ], + "https://github.com/olivv-cs/ComfyUI-FunPack": [ + [ + "FunPackCLIPLoader", + "FunPackContinueVideo", + "FunPackImg2LatentInterpolation", + "FunPackPromptEnhancer", + "FunPackVideoStitch" + ], + { + "title_aux": "ComfyUI-FunPack" + } + ], "https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92": [ [ "CLIPStringEncode _O", @@ -9590,6 +35000,7 @@ "LatentUpscaleFactorSimple _O", "LatentUpscaleMultiply", "Note _O", + "QOL Split String", "RandomNSP _O", "Replace Text _O", "String _O", @@ -9623,11 +35034,266 @@ "title_aux": "Quality of life Suit:V2" } ], + "https://github.com/openvino-dev-samples/comfyui_openvino": [ + [ + "OpenVINO_TorchCompileModel" + ], + { + "title_aux": "ComfyUI-OpenVINO" + } + ], + "https://github.com/opvelll/ComfyUI_TextListProduct": [ + [ + "ProductedString", + "PromptPairConcat", + "TextListProduct", + "TextListProductWithSingleA", + "TextListProductWithSingleB", + "TextListProductWithSingleBoth" + ], + { + "title_aux": "Comfy UI Text List Product" + } + ], + "https://github.com/orange90/ComfyUI-Regex-Runner": [ + [ + "RegexNode" + ], + { + "title_aux": " ComfyUI-Regex-Runner" + } + ], + "https://github.com/orex2121/comfyui-OreX": [ + [ + "IoNetVision", + "KontextPresetsOrex", + "OreX Image Save", + "flux-kontext-orexnodes", + "orex IoNet Chat", + "orex IoNet Vision", + "orex IoNet Vision Url", + "orex Kontext Presets", + "orex Load Image", + "orex Load Image Batch", + "orex Load Image Batch Size", + "orex Save Image" + ], + { + "title_aux": "comfyui-OreX" + } + ], + "https://github.com/orion4d/Calculator_Pro": [ + [ + "DataConverter", + "LengthConverter", + "ManualRateConverter", + "MassConverter", + "ScientificCalculatorTri", + "TimeConverter", + "UniversalConverter", + "VolumeConverter" + ], + { + "title_aux": "CalculatorPro - Node Suite for ComfyUI" + } + ], + "https://github.com/orion4d/ComfyUI-Image-Effects": [ + [ + "AsciiArtNode", + "AsciiTextNode", + "AuroraNode", + "BarrelDistortionNode", + "CSSFiltersNode", + "ChannelMixerNode", + "ColorBalanceNode", + "CrystallizeNode", + "CurvesNode", + "FilmGrainNode", + "FisheyeNode", + "GodRaysNode", + "HexagonalPixelateNode", + "HolographicNode", + "KaleidoscopeAdvancedNode", + "KaleidoscopeNode", + "LensFlareNode", + "LevelsNode", + "LightLeaksNode", + "NeonGlowNode", + "PinchNode", + "PolaroidNode", + "PolygonNode", + "RippleNode", + "SaverPlusNode", + "ShadowHighlightNode", + "SpherizeNode", + "TriangulateNode", + "VHSGlitchNode", + "VibranceNode", + "VintageTVNode", + "VoronoiNode" + ], + { + "title_aux": "ComfyUI-Image-Effects" + } + ], + "https://github.com/orion4d/ComfyUI_DAO_master": [ + [ + "ConvertIMGtoSVG", + "ConvertSVGtoIMG", + "DAO Blur", + "DAO Move", + "DAO RVB Color Picker", + "DAO Text Maker", + "DXF Add Circle", + "DXF Add Ellipse", + "DXF Add Line", + "DXF Add Polygon", + "DXF Add Rectangle", + "DXF Add Rounded Rectangle", + "DXF Add Star", + "DXF Add Triangle", + "DXF Import", + "DXF New", + "DXF Preview", + "DXF Save", + "DXF Stats", + "DXF Transform", + "DXF to SVG", + "Folder File Pro", + "Load Image Pro", + "Path To Image", + "SVG Boolean", + "SVG Load", + "SVG Passthrough", + "SVG Preview", + "SVG Save", + "SVG Style" + ], + { + "title_aux": "ComfyUI_DAO_master" + } + ], + "https://github.com/orion4d/ComfyUI_SharpnessPro": [ + [ + "Clarity", + "HighPassSharpen", + "SmartSharpen", + "Texture", + "UnsharpMaskSharpen" + ], + { + "title_aux": "SharpnessPro pour ComfyUI" + } + ], + "https://github.com/orion4d/ComfyUI_colormaster": [ + [ + "AnnotateHexLines", + "ColorPaletteExtractor", + "HexColorToImage", + "ImageCollageNode", + "SelectHexLine" + ], + { + "title_aux": "ComfyUI Colormaster Nodes" + } + ], + "https://github.com/orion4d/ComfyUI_extract_imag": [ + [ + "ExtractAndSaveImagesFromDocument" + ], + { + "title_aux": "ComfyUI_extract_imag" + } + ], + "https://github.com/orion4d/ComfyUI_image-display": [ + [ + "DisplayImageWithMask" + ], + { + "title_aux": "Display Image with Mask for ComfyUI" + } + ], + "https://github.com/orion4d/ComfyUI_pdf_nodes": [ + [ + "PDFExtractTextFromPages", + "PDFGetPageCount", + "PDFLoad", + "PDFMerge", + "PDFRotatePages", + "PDFSave", + "PDFSelectPageAndExtractText" + ], + { + "title_aux": "ComfyUI PDF Nodes" + } + ], + "https://github.com/orion4d/illusion_node": [ + [ + "AdvancedAutostereogramNode", + "AutostereogramNode", + "CheckerboardNode", + "ColorImageNode", + "PatternGeneratorNode", + "TessellationNode", + "TileImageRepeaterNode" + ], + { + "title_aux": "ComfyUI Illusion & Pattern Nodes" + } + ], + "https://github.com/orssorbit/ComfyUI-wanBlockswap": [ + [ + "wanBlockSwap" + ], + { + "title_aux": "ComfyUI-wanBlockswap" + } + ], + "https://github.com/oshtz/ComfyUI-oshtz-nodes": [ + [ + "EasyAspectRatioNode", + "GPTImage1", + "LLMAIONode", + "LoRASwitcherNode", + "LoRASwitcherNode20", + "LoRASwitcherNode40", + "LoraSwitcherDynamic", + "StringSplitterNode" + ], + { + "title_aux": "oshtz Nodes" + } + ], + "https://github.com/osi1880vr/prompt_quill_comfyui": [ + [ + "PromptQuillGenerate", + "PromptQuillGenerateConditioning", + "PromptQuillSail", + "PromptQuillSailConditioning" + ], + { + "title_aux": "ComfyUI_Prompt-Quill" + } + ], + "https://github.com/ostris/ComfyUI-FlexTools": [ + [ + "Flex2Conditioner", + "FlexGuidance", + "FlexLoraLoader", + "FlexLoraLoaderModelOnly" + ], + { + "nodename_pattern": "- Ostris$", + "title_aux": "Flex.1 tools" + } + ], "https://github.com/ostris/ostris_nodes_comfyui": [ [ + "Batch Image Loader - Ostris", "LLM Pipe Loader - Ostris", "LLM Prompt Upsampling - Ostris", "One Seed - Ostris", + "Save Image Direct - Ostris", "Text Box - Ostris" ], { @@ -9635,6 +35301,35 @@ "title_aux": "Ostris Nodes ComfyUI" } ], + "https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer": [ + [ + "AIHubActionNewImage", + "AIHubDevWebsocketDebug", + "AIHubExposeBoolean", + "AIHubExposeConfigBoolean", + "AIHubExposeConfigFloat", + "AIHubExposeConfigInteger", + "AIHubExposeConfigString", + "AIHubExposeFloat", + "AIHubExposeImage", + "AIHubExposeImageBatch", + "AIHubExposeImageInfoOnly", + "AIHubExposeInteger", + "AIHubExposeSampler", + "AIHubExposeScheduler", + "AIHubExposeSeed", + "AIHubExposeString", + "AIHubExposeStringSelection", + "AIHubPatchActionSetConfigBoolean", + "AIHubPatchActionSetConfigFloat", + "AIHubPatchActionSetConfigInteger", + "AIHubPatchActionSetConfigString", + "AIHubWorkflowController" + ], + { + "title_aux": "ComfyUI-aihub-workflow-exposer" + } + ], "https://github.com/ownimage/ComfyUI-ownimage": [ [ "Caching Image Loader" @@ -9643,6 +35338,15 @@ "title_aux": "ComfyUI-ownimage" } ], + "https://github.com/oxysoft/ComfyUI-gowiththeflow": [ + [ + "KSamplerNoiseless", + "NoiseWarperNode" + ], + { + "title_aux": "ComfyUI-gowiththeflow" + } + ], "https://github.com/oyvindg/ComfyUI-TrollSuite": [ [ "BinaryImageMask", @@ -9655,12 +35359,37 @@ "title_aux": "ComfyUI-TrollSuite" } ], - "https://github.com/palant/extended-saveimage-comfyui": [ + "https://github.com/oztrkoguz/ComfyUI_StoryCreator": [ [ - "SaveImageExtended" + "Kosmos2SamplerSimple2", + "KosmosLoader2", + "StoryLoader", + "StorySamplerSimple", + "Write2" ], { - "title_aux": "Extended Save Image for ComfyUI" + "title_aux": "ComfyUI StoryCreater" + } + ], + "https://github.com/p1atdev/comfyui-timm-backbone": [ + [ + "TimmBackboneImageEncode", + "TimmBackboneImageNormalize", + "TimmBackboneLoader", + "TimmBackboneRGB2BGR", + "TimmEmbedsPrint" + ], + { + "title_aux": "comfyui-timm-backbone" + } + ], + "https://github.com/p1atdev/comfyui-tkg-chroma-key": [ + [ + "ApplyTKGChromaKeyAdvanced", + "ApplyTKGChromaKeySDXL" + ], + { + "title_aux": "TKG-DM (Training-free Chroma Key Content Generation Diffusion Model) for ComfyUI" } ], "https://github.com/palant/image-resize-comfyui": [ @@ -9671,12 +35400,60 @@ "title_aux": "Image Resize for ComfyUI" } ], - "https://github.com/pamparamm/sd-perturbed-attention": [ + "https://github.com/pamparamm/ComfyUI-ppm": [ [ - "PerturbedAttention" + "AttentionCouplePPM", + "CFGLimiterGuider", + "CFGPPSamplerSelect", + "CLIPMicroConditioning", + "CLIPNegPip", + "CLIPTextEncodeBREAK", + "CLIPTextEncodeInvertWeights", + "CLIPTokenCounter", + "ConditioningZeroOutCombine", + "ConvertTimestepToSigma", + "DynSamplerSelect", + "DynamicThresholdingPost", + "DynamicThresholdingSimplePost", + "EmptyLatentImageAR", + "FreeU2PPM", + "Guidance Limiter", + "LatentOperationTonemapLuminance", + "LatentToMaskBB", + "LatentToWidthHeight", + "MaskCompositePPM", + "PPMSamplerSelect", + "RenormCFGPost", + "RescaleCFGPost", + "SamplerGradientEstimation" ], { - "title_aux": "Perturbed-Attention Guidance" + "title_aux": "ComfyUI-ppm" + } + ], + "https://github.com/pamparamm/ComfyUI-vectorscope-cc": [ + [ + "DiffusionCG", + "NormalizeLatent", + "VectorscopeCC" + ], + { + "title_aux": "ComfyUI Vectorscope CC" + } + ], + "https://github.com/pamparamm/sd-perturbed-attention": [ + [ + "NormalizedAttentionGuidance", + "PerturbedAttention", + "Pladis", + "SlidingWindowGuidanceAdvanced", + "SmoothedEnergyGuidanceAdvanced", + "TRTAttachPag", + "TRTPerturbedAttention", + "TokenPerturbationGuidance" + ], + { + "title_aux": "sd-perturbed-attention" } ], "https://github.com/pants007/comfy-pants": [ @@ -9688,6 +35465,82 @@ "title_aux": "pants" } ], + "https://github.com/papcorns/ComfyUI-Papcorns-Node-LoadImageFromUrl": [ + [ + "LoadImageFromUrlOrPath" + ], + { + "title_aux": "ComfyUI Load Image From URL" + } + ], + "https://github.com/papcorns/Papcorns-Comfyui-Custom-Nodes": [ + [ + "PapcornsAspectResize", + "PapcornsAudioTrimAndSave", + "PapcornsAudioTrimmer", + "PapcornsFpsCalculator", + "PapcornsMemoryManager", + "PapcornsSimpleMemoryManager", + "UploadImageToGCS" + ], + { + "title_aux": "Papcorns ComfyUI Custom Nodes" + } + ], + "https://github.com/pathway8-sudo/ComfyUI-Pathway-CutPNG-Node": [ + [ + "CutPNGNode" + ], + { + "title_aux": "ComfyUI-Pathway-CutPNG-Node" + } + ], + "https://github.com/patriciogonzalezvivo/comfyui_glslnodes": [ + [ + "float", + "glslBuffers", + "glslEditor", + "glslEditorPro", + "glslUniforms", + "glslViewer", + "int", + "vec2", + "vec2 (pos)", + "vec3", + "vec3 (pos)", + "vec4", + "vec4 (color)" + ], + { + "author": "Patricio Gonzalez Vivo", + "description": "A set of nodes to work with GLSL shaders", + "nickname": "GLSL Nodes", + "title": "GLSL Nodes", + "title_aux": "GLSL Nodes" + } + ], + "https://github.com/paulh4x/ComfyUI_PHRenderFormerWrapper": [ + [ + "RenderFormerCamera", + "RenderFormerCameraTarget", + "RenderFormerExampleScene", + "RenderFormerFromJSON", + "RenderFormerGenerator", + "RenderFormerLighting", + "RenderFormerLightingCombine", + "RenderFormerLightingTarget", + "RenderFormerLoadMesh", + "RenderFormerMeshCombine", + "RenderFormerMeshTarget", + "RenderFormerModelLoader", + "RenderFormerRandomizeColors", + "RenderFormerRemeshMesh", + "RenderFormerSceneBuilder" + ], + { + "title_aux": "ComfyUI_PHRenderFormerWrapper" + } + ], "https://github.com/paulo-coronado/comfy_clip_blip_node": [ [ "CLIPTextEncodeBLIP", @@ -9698,6 +35551,173 @@ "title_aux": "comfy_clip_blip_node" } ], + "https://github.com/pawelmal0101/ComfyUI-Webhook": [ + [ + "Webhook" + ], + { + "title_aux": "ComfyUI Webhook Notifier" + } + ], + "https://github.com/pbpbpb2705/ComfyUI-LyraVSIH": [ + [ + "MultiObjectMask" + ], + { + "title_aux": "ComfyUI-LyraVSIH" + } + ], + "https://github.com/penposs/ComfyUI-Banana-Node": [ + [ + "BananaNode", + "TransparentImageNode" + ], + { + "title_aux": "ComfyUI-Banana-Node" + } + ], + "https://github.com/penposs/ComfyUI_Gemini_Pro": [ + [ + "Gemini File Processing", + "Gemini File Upload", + "Gemini Pro", + "Gemini-Pro-Chat", + "Gemini-Pro-Editimage" + ], + { + "title_aux": "ComfyUI Gemini Pro Node" + } + ], + "https://github.com/penposs/Comfyui_wan_api": [ + [ + "WanAPIImageToVideo", + "WanAPIImageUploader", + "WanAPI_Image2Video", + "WanAPI_ImageUploader" + ], + { + "title_aux": "Comfyui_wan_api" + } + ], + "https://github.com/pharmapsychotic/comfy-cliption": [ + [ + "CLIPtionBeamSearch", + "CLIPtionGenerate", + "CLIPtionLoader" + ], + { + "title_aux": "comfy-cliption" + } + ], + "https://github.com/phazei/ComfyUI-OrpheusTTS-LMStudio": [ + [ + "OrpheusTTSLMStudio" + ], + { + "title_aux": "ComfyUI-OrpheusTTS-LMStudio" + } + ], + "https://github.com/phazei/ComfyUI-Prompt-Stash": [ + [ + "PromptStashManager", + "PromptStashPassthrough", + "PromptStashSaver" + ], + { + "title_aux": "Prompt Stash" + } + ], + "https://github.com/philiprodriguez/ComfyUI-HunyuanImageLatentToVideoLatent": [ + [ + "HunyuanImageLatentToVideoLatent" + ], + { + "title_aux": "ComfyUI-HunyuanImageLatentToVideoLatent" + } + ], + "https://github.com/philipy1219/ComfyUI-CloudStorage": [ + [ + "LoadImageFromCloud", + "LoadMaskFromCloud", + "LoadVideoFromCloud", + "SaveImageToCloud", + "UploadFileToCloud" + ], + { + "title_aux": "ComfyUI-CloudStorage" + } + ], + "https://github.com/philipy1219/ComfyUI-TaylorSeer": [ + [ + "FluxBlockSwap", + "HidreamBlockSwap", + "TaylorSeer" + ], + { + "title_aux": "ComfyUI-TaylorSeer" + } + ], + "https://github.com/philz1337x/ComfyUI-ClarityAI": [ + [ + "Clarity AI Upscaler" + ], + { + "title_aux": "\u2728 Clarity AI - Creative Image Upscaler and Enhancer for ComfyUI" + } + ], + "https://github.com/phuvinh010701/ComfyUI-Nudenet": [ + [ + "ApplyNudenet", + "FilterdLabel", + "NudenetModelLoader" + ], + { + "title_aux": "ComfyUI-Nudenet" + } + ], + "https://github.com/phyblas/paint-by-example_comfyui": [ + [ + "PaintbyExampleAdvanced", + "PaintbyExampleGen", + "PaintbyExampleSimple", + "PaintbyIchimatsu", + "PaintbySingleColor" + ], + { + "title_aux": "paint-by-example @ ComfyUI" + } + ], + "https://github.com/pictorialink/ComfyUI-Custom-Node-Config": [ + [ + "FormSubmitNode" + ], + { + "title_aux": "ComfyUI-Custom-Node-Config" + } + ], + "https://github.com/pictorialink/ComfyUI-Qwen3-llama.cpp": [ + [ + "Qwen25_VL", + "Qwen3" + ], + { + "title_aux": "ComfyUI-Qwen3-llama.cpp" + } + ], + "https://github.com/pictorialink/ComfyUI-Text-Translation": [ + [ + "Get_Translator", + "Text", + "Text_Concatenate", + "Text_Switch", + "Text_Translation", + "Text_Translation_V2", + "Text_Translation_V2_Full" + ], + { + "title_aux": "ComfyUI-Text-Translation" + } + ], "https://github.com/picturesonpictures/comfy_PoP": [ [ "AdaptiveCannyDetector_PoP", @@ -9705,6 +35725,7 @@ "ConditioningMultiplier_PoP", "ConditioningNormalizer_PoP", "DallE3_PoP", + "EfficientAttention", "LoadImageResizer_PoP", "LoraStackLoader10_PoP", "LoraStackLoader_PoP", @@ -9715,6 +35736,29 @@ "title_aux": "comfy_PoP" } ], + "https://github.com/pikenrover/ComfyUI_PRNodes": [ + [ + "CheckpointLoaderSimpleExtended", + "EmptyLatentImageScaleBy", + "ImageScaleTo", + "LoadRandomImage", + "LoraLoaderExtended", + "RandomPrompt", + "RandomPromptMixed", + "Save Image w/Metadata" + ], + { + "title_aux": "ComfyUI_PRNodes" + } + ], + "https://github.com/pixelworldai/ComfyUI-AlphaFlatten": [ + [ + "FlattenByAlpha" + ], + { + "title_aux": "ComfyUI-AlphaFlatten" + } + ], "https://github.com/pkpkTech/ComfyUI-SaveAVIF": [ [ "SaveAvif" @@ -9733,6 +35777,248 @@ "title_aux": "ComfyUI-TemporaryLoader" } ], + "https://github.com/playbook3d/playbook3d-comfyui-nodes": [ + [ + "Beauty Pass Sequence", + "Depth Pass Sequence", + "Mask Pass Sequence", + "Outline Pass Sequence", + "Playbook Aspect Ratio Select", + "Playbook Beauty", + "Playbook Beauty Sequence", + "Playbook Boolean", + "Playbook Depth", + "Playbook Depth Sequence", + "Playbook Float", + "Playbook Image", + "Playbook LoRA Select", + "Playbook LoRA Selection", + "Playbook Mask", + "Playbook Mask Sequence", + "Playbook Number", + "Playbook Outline", + "Playbook Outline Sequence", + "Playbook Render Result", + "Playbook Seed", + "Playbook Text", + "Playbook Video" + ], + { + "title_aux": "Playbook Nodes" + } + ], + "https://github.com/plugcrypt/CRT-Nodes": [ + [ + "AdvancedBloomFX", + "AdvancedStringReplace", + "ArcaneBloomFX", + "AudioCompressor", + "AudioLoaderCrawl", + "AudioOrManualFrameCount", + "AudioPreviewer", + "AutopromptProcessor", + "Boolean Transform", + "BooleanInvert", + "CLIPTextEncodeFluxMerged", + "CRT Post-Process Suite", + "CRTChromaKeyOverlay", + "CRTFirstLastFrameSelector", + "CRTLoadLastMedia", + "CRTLoadLastVideo", + "CRTPctCropCalculator", + "CRTPostProcess", + "CRT_AddSettingsAndPrompt", + "CRT_DynamicPromptScheduler", + "CRT_FileBatchPromptScheduler", + "CRT_UpscaleModelAdv", + "CRT_WAN_BatchSampler", + "ClarityFX", + "ClearStyleModelDualCache", + "ColorIsolationFX", + "ColourfulnessFX", + "ContourFX", + "EmptyContext", + "EnableLatent", + "FaceEnhancementPipeline", + "FaceEnhancementPipelineWithInjection", + "FancyNoteNode", + "FancyTimerNode", + "FileLoaderCrawl", + "FileLoaderCrawlBatch", + "FilmGrainFX", + "FluxAIO_CRT", + "FluxControlnetSampler", + "FluxControlnetSamplerWithInjection", + "FluxLoraBlocksPatcher", + "FluxSemanticEncoder", + "FluxTiledSamplerCustomAdvanced", + "ImageLoaderCrawl", + "LatentNoiseInjectionSampler", + "LensDistortFX", + "LensFX", + "LoadImageResize", + "LoadLastLatent", + "LoadVideoForVCaptioning", + "Lora Loader Str", + "MaskEmptyFloatNode", + "MaskPassOrPlaceholder", + "ParametricEQNode", + "PonyFaceEnhancementPipelineWithInjection", + "PonyUpscaleSamplerWithInjection", + "Remove Trailing Comma", + "Resolution", + "SamplerSchedulerSelector", + "SaveAudioWithPath", + "SaveImageWithPath", + "SaveLatentWithPath", + "SaveTextWithPath", + "SaveVideoWithPath", + "SeamlessLoopBlender", + "SimpleFluxShiftNode", + "SimpleKnobNode", + "SimpleToggleNode", + "SmartControlNetApply", + "SmartDeNoiseFX", + "SmartPreprocessor", + "SmartStyleModelApplyDual", + "Strength To Steps", + "Technicolor2FX", + "Toggle Lora Unet Blocks L1", + "Toggle Lora Unet Blocks L2", + "Video Duration Calculator", + "VideoLoaderCrawl", + "WAN2.2 LoRA Compare Sampler" + ], + { + "author": "chflame", + "description": "A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.", + "nickname": "LayerStyle", + "title": "LayerStyle", + "title_aux": "CRT-Nodes" + } + ], + "https://github.com/pmarmotte2/ComfyUI-Speaker-Isolation": [ + [ + "SpeakerDiarizer" + ], + { + "title_aux": "ComfyUI-Speaker-Isolation" + } + ], + "https://github.com/pnikolic-amd/ComfyUI_MIGraphX": [ + [ + "CompileDiffusersMIGraphX" + ], + { + "title_aux": "MIGraphX Node for ComfyUI" + } + ], + "https://github.com/pollockjj/ComfyUI-MultiGPU": [ + [ + "CheckpointLoaderAdvancedDisTorch2MultiGPU", + "CheckpointLoaderAdvancedMultiGPU", + "DeviceSelectorMultiGPU", + "HunyuanVideoEmbeddingsAdapter" + ], + { + "title_aux": "ComfyUI-MultiGPU" + } + ], + "https://github.com/popoimm/comfyui-popo-utility": [ + [ + "PopoImageAspectRatioNode", + "PopoImageDimensionsNode", + "PopoImageSizeNode", + "PopoMathExpressionNode" + ], + { + "title_aux": "ComfyUI Popo Utility" + } + ], + "https://github.com/portu-sim/comfyui_bmab": [ + [ + "BMAB Alpha Composit", + "BMAB Base64 Image", + "BMAB Basic", + "BMAB Black And White", + "BMAB Blend", + "BMAB Clip Text Encoder SDXL", + "BMAB Conditioning To Bind", + "BMAB Context", + "BMAB ControlNet", + "BMAB ControlNet IPAdapter", + "BMAB ControlNet Openpose", + "BMAB Crop", + "BMAB Detail Anything", + "BMAB Detect And Mask", + "BMAB Detect And Paste", + "BMAB Detection Crop", + "BMAB Detector", + "BMAB Dummy", + "BMAB Edge", + "BMAB Extractor", + "BMAB Face Detailer", + "BMAB Flux ControlNet", + "BMAB Flux Integrator", + "BMAB Google Gemini Prompt", + "BMAB Image Storage", + "BMAB Import Integrator", + "BMAB Inpaint", + "BMAB Integrator", + "BMAB KSampler", + "BMAB KSamplerHiresFix", + "BMAB KSamplerHiresFixWithUpscaler", + "BMAB KSamplerKohyaDeepShrink", + "BMAB Lama Inpaint", + "BMAB LoRA Loader", + "BMAB Load Image", + "BMAB Load Output Image", + "BMAB Masks To Images", + "BMAB Model To Bind", + "BMAB Noise Generator", + "BMAB Normalize Size", + "BMAB Openpose Hand Detailer", + "BMAB Outpaint By Ratio", + "BMAB Person Detailer", + "BMAB Preview Text", + "BMAB Prompt", + "BMAB Reframe", + "BMAB Remote Access And Save", + "BMAB Remove Background", + "BMAB Resize By Person", + "BMAB Resize By Ratio", + "BMAB Resize and Fill", + "BMAB SD-WebUI API BMAB Extension", + "BMAB SD-WebUI API ControlNet", + "BMAB SD-WebUI API I2I", + "BMAB SD-WebUI API Server", + "BMAB SD-WebUI API T2I", + "BMAB SD-WebUI API T2I Hires.Fix", + "BMAB Save Image", + "BMAB SeedGenerator", + "BMAB Segment Anything", + "BMAB Simple Hand Detailer", + "BMAB Square", + "BMAB Subframe Hand Detailer", + "BMAB Text", + "BMAB ToBind", + "BMAB Upscale With Model", + "BMAB Upscaler", + "BMAB Watermark", + "BMAB Zoom Out" + ], + { + "title_aux": "comfyui_bmab" + } + ], + "https://github.com/prodogape/ComfyUI-EasyOCR": [ + [ + "Apply EasyOCR" + ], + { + "title_aux": "ComfyUI-EasyOCR" + } + ], "https://github.com/prodogape/ComfyUI-Minio": [ [ "Load Image From Minio", @@ -9743,6 +36029,173 @@ "title_aux": "Comfyui-Minio" } ], + "https://github.com/prodogape/ComfyUI-OmDet": [ + [ + "Apply OmDet" + ], + { + "title_aux": "ComfyUI-OmDet" + } + ], + "https://github.com/prodogape/Comfyui-Yolov8-JSON": [ + [ + "Apply Yolov8 Model", + "Apply Yolov8 Model Seg", + "Draw Labelme Json", + "Load Yolov8 Model", + "Load Yolov8 Model From Path", + "Save Labelme Json" + ], + { + "title_aux": "Comfyui-Yolov8-JSON" + } + ], + "https://github.com/pschroedl/ComfyUI-SAM2-Realtime": [ + [ + "DownloadAndLoadSAM2RealtimeModel", + "Sam2RealtimeSegmentation" + ], + { + "title_aux": "ComfyUI-SAM2-Realtime" + } + ], + "https://github.com/ptmaster/ComfyUI-Load-Diffusion-Model-to-Muti-GPUs/raw/refs/heads/main/Load%20Diffusion%20Model%20into%20Muti%20GPUs.py": [ + [ + "OverrideLoadedDiffusionDevice" + ], + { + "title_aux": "ComfyUI-Load-Diffusion-Model-to-Muti-GPUs" + } + ], + "https://github.com/ptmaster/Comfyui-PT-Keyframe-Camera": [ + [ + "PT_KeyframeCamera" + ], + { + "title_aux": "Comfyui-PT-Keyframe-Camera" + } + ], + "https://github.com/ptmaster/comfyui-audio-speed": [ + [ + "PT48KHZ", + "PTAudioSpeed", + "PTEnsureStereo" + ], + { + "title_aux": "ComfyUI-audio-speed" + } + ], + "https://github.com/pupba/Comfy_ForEach": [ + [ + "EventBridgeTriggerNode", + "FolderImageLoaderNode", + "IndexedImageSelectorNode", + "IndexedNameSelectorNode", + "IsLastIndexNode", + "LoadPreCheckpointModel", + "LoadPreControlNetModel", + "SaveExactNameImageNode", + "StringViewer", + "TaskIDStorageNode" + ], + { + "title_aux": "ComfyForEach" + } + ], + "https://github.com/purewater2011/comfyui_color_detection": [ + [ + "IsYellowish", + "YellowHeatmap" + ], + { + "title_aux": "comfyui_color_detection" + } + ], + "https://github.com/purpen/ComfyUI-AIRedoon": [ + [ + "AIRedoonApplyLoRAStack", + "AIRedoonCheckLoraFile", + "AIRedoonCheckModelFile", + "AIRedoonConcatText", + "AIRedoonImageCaptioning", + "AIRedoonImageRGBA2RGB", + "AIRedoonLoRAStack", + "AIRedoonPreviewText", + "AIRedoonQwenModelLoader", + "AIRedoonSaveText", + "AIRedoonTranslator" + ], + { + "title_aux": "AIRedoon" + } + ], + "https://github.com/purpen/ComfyUI-ImageTagger": [ + [ + "AIRedoonImageCaptioning" + ], + { + "title_aux": "ComfyUI-ImageTagger" + } + ], + "https://github.com/pvlprk/comfyui-pvl-api-nodes": [ + [ + "PVL Call OpenAI Assistant", + "PVL ComfyDeploy API Caller", + "PVL KONTEXT MAX", + "PVLCheckIfConnected", + "PVL_ImageResize", + "PVL_ImageStitch", + "PVL_NoneOutputNode", + "PVL_OpenPoseMatch", + "PVL_OpenPoseMatch_Z", + "PVL_SaveOrNot", + "PVL_Switch_Huge", + "PVL_fal_FluxDev_API", + "PVL_fal_FluxGeneral_API", + "PVL_fal_FluxPro_Fill_API", + "PVL_fal_FluxPro_v1_1_Ultra_API", + "PVL_fal_FluxWithLora_API", + "PVL_fal_KontextDevInpaint_API", + "PVL_fal_KontextDevLora_API", + "PVL_fal_KontextMaxMulti_API", + "PVL_fal_KontextMaxSingle_API", + "PVL_fal_KontextPro_API", + "PVL_fal_Kontext_Dev_API", + "PVL_fal_LumaPhoton_FlashReframe_API", + "PVL_fal_LumaPhoton_Reframe_API", + "PVL_fal_NanoBanana_API", + "PvlKontextMax" + ], + { + "title_aux": "ComfyUI Assistant Node" + } + ], + "https://github.com/pxl-pshr/GlitchNodes": [ + [ + "ASCII", + "Corruptor", + "DataBend", + "DitherMe", + "FrequencyModulation", + "GlitchIT", + "LineScreen", + "LuminousFlow", + "OrderedDithering", + "Pixel8Bit", + "PixelFloat", + "PixelRedistribution", + "Rekked", + "Scanz", + "TvGlitch", + "VHSonAcid", + "VaporWave", + "VideoModulation", + "interference" + ], + { + "title_aux": "GlitchNodes" + } + ], "https://github.com/pythongosssss/ComfyUI-Custom-Scripts": [ [ "CheckpointLoader|pysssss", @@ -9757,10 +36210,11 @@ "ReroutePrimitive|pysssss", "SaveText|pysssss", "ShowText|pysssss", - "StringFunction|pysssss" + "StringFunction|pysssss", + "SystemNotification|pysssss" ], { - "title_aux": "pythongosssss/ComfyUI-Custom-Scripts" + "title_aux": "ComfyUI-Custom-Scripts" } ], "https://github.com/pythongosssss/ComfyUI-WD14-Tagger": [ @@ -9771,6 +36225,111 @@ "title_aux": "ComfyUI WD 1.4 Tagger" } ], + "https://github.com/pzc163/Comfyui_MiniCPMv2_6-prompt-generator": [ + [ + "Prompt_Generator", + "Save_Prompts" + ], + { + "title_aux": "Comfyui_MiniCPMv2_6-prompt-generator" + } + ], + "https://github.com/quank123wip/ComfyUI-Step1X-Edit": [ + [ + "Step-1XEditNode" + ], + { + "title_aux": "ComfyUI-Step1X-Edit" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesCompositionGuides": [ + [ + "EsesCompositionGuides" + ], + { + "title_aux": "ComfyUI-EsesCompositionGuides" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageAdjustments": [ + [ + "EsesImageAdjustments2" + ], + { + "title_aux": "ComfyUI-EsesImageAdjustments" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageCompare": [ + [ + "EsesImageCompare" + ], + { + "title_aux": "ComfyUI-EsesImageCompare" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageEffectBloom": [ + [ + "EsesImageEffectBloom" + ], + { + "title_aux": "ComfyUI-EsesImageEffectBloom" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageEffectCurves": [ + [ + "EsesImageEffectCurves" + ], + { + "title_aux": "ComfyUI-EsesImageEffectCurves" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageEffectLevels": [ + [ + "EsesImageEffectLevels" + ], + { + "title_aux": "ComfyUI-EsesImageEffectLevels" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageLensEffects": [ + [ + "EsesImageLensEffects" + ], + { + "title_aux": "ComfyUI-EsesImageLensEffects" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageOffset": [ + [ + "EsesImageOffset" + ], + { + "title_aux": "ComfyUI-EsesImageOffset" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageResize": [ + [ + "EsesImageResize" + ], + { + "title_aux": "EsesImageResize" + } + ], + "https://github.com/quasiblob/ComfyUI-EsesImageTransform": [ + [ + "EsesImageTransform" + ], + { + "title_aux": "ComfyUI-EsesImageTransform" + } + ], + "https://github.com/quasiblob/EsesCompositionGoldenRatio": [ + [ + "EsesCompositionGoldenRatio" + ], + { + "title_aux": "EsesCompositionGoldenRatio" + } + ], "https://github.com/qwixiwp/queuetools": [ [ "load images (queue tools)" @@ -9779,8 +36338,84 @@ "title_aux": "queuetools" } ], + "https://github.com/r3dial/redial-discomphy": [ + [ + "DiscordMessage" + ], + { + "title_aux": "Redial Discomphy - Discord Integration for ComfyUI" + } + ], + "https://github.com/r3dsd/comfyui-template-loader": [ + [ + "TemplateLoader" + ], + { + "title_aux": "Comfyui-Template-Loader" + } + ], + "https://github.com/railep/ComfyUI-HunyuanVideo-Foley": [ + [ + "HunyuanFoleyNode" + ], + { + "title_aux": "HunyuanVideo-Foley Audio Generator" + } + ], + "https://github.com/raindrop313/ComfyUI-WanVideoStartEndFrames": [ + [ + "WanVideoSEDecode", + "WanVideoSEImageClipEncode", + "WanVideoSEModelLoader", + "WanVideoSESampler", + "WanVideoSEVAELoader" + ], + { + "title_aux": "ComfyUI-WanVideoStartEndFrames" + } + ], + "https://github.com/raindrop313/ComfyUI_SD3_Flowedit": [ + [ + "FlowEditCFGGuider", + "FlowEditSampler", + "OutSD3ModelSamplingPred" + ], + { + "title_aux": "ComfyUI_SD3_Flowedit" + } + ], + "https://github.com/rainlizard/ComfyUI-Raffle": [ + [ + "PreviewHistory", + "Raffle", + "TagCategoryStrength" + ], + { + "title_aux": "Raffle" + } + ], + "https://github.com/rainlizard/ComfyUI-WhirlpoolUpscaler": [ + [ + "WhirlpoolUpscaler" + ], + { + "title_aux": "Whirlpool Upscaler" + } + ], + "https://github.com/ramesh-x90/ComfyUI_pyannote": [ + [ + "Speaker Diarization", + "Whisper Segments to Speaker" + ], + { + "title_aux": "ComfyUI_pyannote" + } + ], "https://github.com/ramyma/A8R8_ComfyUI_nodes": [ [ + "AttentionCouple", + "AttentionCoupleRegion", + "AttentionCoupleRegions", "Base64ImageInput", "Base64ImageOutput" ], @@ -9788,6 +36423,36 @@ "title_aux": "A8R8 ComfyUI Nodes" } ], + "https://github.com/randjtw/advance-aesthetic-score": [ + [ + "Adv_Scoring" + ], + { + "title_aux": "advance-aesthetic-score" + } + ], + "https://github.com/randomnoner11/ComfyUI-MistralAI-API": [ + [ + "InvokeMistralEndpoint", + "LoadFewShotPrompt" + ], + { + "title_aux": "ComfyUI-MistralAI-API" + } + ], + "https://github.com/ranska/pixel_palette_art": [ + [ + "ColorFormatterNode", + "ColorPreviewNode", + "CreateColorFromRGBNode", + "GimpPaletteLoader", + "PaletteFormatter", + "PixelPaletteExtractor" + ], + { + "title_aux": "Pixel Palette Art" + } + ], "https://github.com/ratulrafsan/Comfyui-SAL-VTON": [ [ "SALVTON_Apply", @@ -9797,6 +36462,31 @@ "title_aux": "Comfyui-SAL-VTON" } ], + "https://github.com/raykindle/ComfyUI_Step1X-Edit": [ + [ + "Step1XEditGenerate", + "Step1XEditModelLoader", + "Step1XEditTeaCacheGenerate", + "Step1XEditTeaCacheModelLoader" + ], + { + "title_aux": "ComfyUI_Step1X-Edit" + } + ], + "https://github.com/raysers/Mflux-ComfyUI": [ + [ + "MfluxControlNetLoader", + "MfluxCustomModels", + "MfluxImg2Img", + "MfluxLorasLoader", + "MfluxModelsDownloader", + "MfluxModelsLoader", + "QuickMfluxNode" + ], + { + "title_aux": "Mflux-ComfyUI" + } + ], "https://github.com/rcfcu2000/zhihuige-nodes-comfyui": [ [ "Combine ZHGMasks", @@ -9829,8 +36519,36 @@ "title_aux": "rcsaquino/comfyui-custom-nodes" } ], + "https://github.com/rdancer/ComfyUI_Florence2SAM2": [ + [ + "RdancerFlorence2SAM2GenerateMask" + ], + { + "title_aux": "ComfyUI_Florence2SAM2" + } + ], + "https://github.com/rdomunky/comfyui-subfolderimageloader": [ + [ + "SubfolderImageLoader" + ], + { + "title_aux": "comfyui-subfolderimageloader" + } + ], + "https://github.com/reallusion/ComfyUI-Reallusion": [ + [ + "additional_image", + "control_net", + "core", + "upscale_data" + ], + { + "title_aux": "Reallusion ComfyUI Custom Nodes" + } + ], "https://github.com/receyuki/comfyui-prompt-reader-node": [ [ + "SDAnyConverter", "SDBatchLoader", "SDLoraLoader", "SDLoraSelector", @@ -9843,22 +36561,43 @@ ], { "author": "receyuki", - "description": "ComfyUI node version of the SD Prompt Reader", + "description": "The ultimate solution for managing image metadata and multi-tool compatibility. ComfyUI node version of the SD Prompt Reader", "nickname": "SD Prompt Reader", "title": "SD Prompt Reader", "title_aux": "SD Prompt Reader" } ], + "https://github.com/recraft-ai/ComfyUI-RecraftAI": [ + [ + "RecraftBackgroundRemover", + "RecraftBackgroundReplacer", + "RecraftClarityUpscaler", + "RecraftClient", + "RecraftGenerativeUpscaler", + "RecraftImageGenerator", + "RecraftImageToImageTransformer", + "RecraftInpainter" + ], + { + "title_aux": "ComfyUI-RecraftAI" + } + ], "https://github.com/redhottensors/ComfyUI-Prediction": [ [ "AvoidErasePrediction", "CFGPrediction", + "CharacteristicGuidancePrediction", "CombinePredictions", "ConditionedPrediction", + "EarlyMiddleLatePrediction", + "InterpolatePredictions", + "LogSigmas", "PerpNegPrediction", "SamplerCustomPrediction", "ScalePrediction", "ScaledGuidancePrediction", + "SelectSigmas", + "SplitAtSigma", "SwitchPredictions" ], { @@ -9869,6 +36608,73 @@ "title_aux": "ComfyUI-Prediction" } ], + "https://github.com/regiellis/ComfyUI-EasyColorCorrector": [ + [ + "BatchColorCorrection", + "ColorCorrectionViewer", + "ColorPaletteExtractor", + "EasyColorCorrection", + "FilmEmulation", + "RawImageProcessor", + "VAEColorCorrector" + ], + { + "title_aux": "Easy Color Correction" + } + ], + "https://github.com/regiellis/ComfyUI-EasyNoobai": [ + [ + "EasyNoobai", + "EasyNoobaiMasterModel", + "NoobaiArtists", + "NoobaiCharacters", + "NoobaiClothing", + "NoobaiE621Artists", + "NoobaiE621Characters", + "NoobaiHairstyles", + "NoobaiPony", + "NoobaiPoses" + ], + { + "title_aux": "ComfyUI-EasyNoobai" + } + ], + "https://github.com/regiellis/ComfyUI-EasyPony": [ + [ + "EasyPony" + ], + { + "title_aux": "ComfyUI-EasyPony" + } + ], + "https://github.com/regiellis/ComfyUI-SDXL-Adherence": [ + [ + "AlignHintsToLatent", + "AutoSize64", + "CropByBBox", + "NegativePromptHelper", + "PostPolish", + "SDXLDualClipEncode", + "SDXLPromptStyler", + "SmartLatent" + ], + { + "title_aux": "SDXL Adherence" + } + ], + "https://github.com/revirevy/Comfyui_saveimage_imgbb": [ + [ + "ImgBBUploader", + "LLM_prompt_generator" + ], + { + "author": "N.RHEVI", + "description": "This custom node allow save image to imgbb.", + "nickname": "save image to imgbb", + "title": "save image to imgbb", + "title_aux": "Comfyui_saveimage_imgbb" + } + ], "https://github.com/rgthree/rgthree-comfy": [ [], { @@ -9880,6 +36686,54 @@ "title_aux": "rgthree's ComfyUI Nodes" } ], + "https://github.com/rhdunn/comfyui-audio-processing": [ + [ + "ComfyAudio.ApplyFilterBank", + "ComfyAudio.GriffinLim", + "ComfyAudio.InverseSpectrogram", + "ComfyAudio.LinearFilterBank", + "ComfyAudio.LoadAudio", + "ComfyAudio.MelScaleFilterBank", + "ComfyAudio.PlotFilterBank", + "ComfyAudio.PlotSpectrogram", + "ComfyAudio.PlotWaveform", + "ComfyAudio.Spectrogram" + ], + { + "title_aux": "comfyui-audio-processing" + } + ], + "https://github.com/rhdunn/comfyui-bus-plugin": [ + [ + "ComfyBus.CLIPConditioningBusNode", + "ComfyBus.CLIPEncodedPromptBusNode", + "ComfyBus.CheckpointBusNode", + "ComfyBus.ImageBusNode", + "ComfyBus.ImageParameterBusNode", + "ComfyBus.ImageScaleToSideParameterBusNode", + "ComfyBus.ImageSizeBusNode", + "ComfyBus.LatentImageBusNode", + "ComfyBus.LatentImageParameterBusNode", + "ComfyBus.PromptBusNode", + "ComfyBus.PromptSDXLBusNode" + ], + { + "title_aux": "comfyui-bus-plugin" + } + ], + "https://github.com/rhplus0831/ComfyMepi": [ + [ + "MepiCheckpoint", + "MepiImageSize", + "MepiNegativePrompt", + "MepiPositivePrompt", + "MepiSaveImage", + "MepiStepsAndCfg" + ], + { + "title_aux": "ComfyMepi" + } + ], "https://github.com/richinsley/Comfy-LFO": [ [ "LFO_Pulse", @@ -9894,18 +36748,35 @@ ], "https://github.com/ricklove/comfyui-ricklove": [ [ + "RL_BBox", + "RL_CacheImageSequence", + "RL_CacheMaskSequence", + "RL_CivitaiTopImagePrompts", "RL_Crop_Resize", "RL_Crop_Resize_Batch", - "RL_Depth16", "RL_Finetune_Analyze", "RL_Finetune_Analyze_Batch", "RL_Finetune_Variable", + "RL_ForceDependencyOrder", + "RL_ForceDependencyOrder_ImageString", + "RL_ForceDependencyOrder_Images", + "RL_ForceDependencyOrder_Latents", + "RL_ForceDependencyOrder_String", + "RL_ForceDependencyOrder_Strings", + "RL_IfFileExists", "RL_Image_Shadow", "RL_Image_Threshold_Channels", "RL_Internet_Search", "RL_LoadImageSequence", + "RL_Load_Flow", + "RL_LoraTextExtractTags", "RL_Optical_Flow_Dip", + "RL_RebootComfyIfLeaky", "RL_SaveImageSequence", + "RL_Save_Flow", + "RL_SequenceContext", + "RL_Sequence_ToFilePathList", + "RL_StopIfBlack", "RL_Uncrop", "RL_Warp_Image", "RL_Zoe_Depth_Map_Preprocessor", @@ -9916,13 +36787,149 @@ "title_aux": "comfyui-ricklove" } ], - "https://github.com/rklaffehn/rk-comfy-nodes": [ + "https://github.com/rickrender/ComfyUI-Vectorizer-API": [ [ - "RK_CivitAIAddHashes", - "RK_CivitAIMetaChecker" + "BackgroundRemoverNode", + "BackgroundRemoverSVGNode", + "VectorizerAINode" ], { - "title_aux": "rk-comfy-nodes" + "title_aux": "Vectorizer API" + } + ], + "https://github.com/rickyars/comfyui-llm-tile": [ + [ + "TiledImageGenerator", + "TiledImageGeneratorAdvanced" + ], + { + "title_aux": "Tiled Image Generator for ComfyUI" + } + ], + "https://github.com/risunobushi/ComfyUI-Similarity-Score": [ + [ + "ImageSimilarityScores" + ], + { + "title_aux": "ComfyUI-Similarity-Score" + } + ], + "https://github.com/risunobushi/ComfyUI_DisplacementMapTools": [ + [ + "DisplaceLogo", + "ExtractDisplacementMap" + ], + { + "title_aux": "ComfyUI_DisplacementMapTools" + } + ], + "https://github.com/risunobushi/ComfyUI_sm4ll-Wrapper": [ + [ + "VTONAPINode", + "VTONAPIPaidNode" + ], + { + "title_aux": "ComfyUI_sm4ll-Wrapper" + } + ], + "https://github.com/risunobushi/comfyUI_FrequencySeparation_RGB-HSV": [ + [ + "FrequencyCombination", + "FrequencyCombinationHSV", + "FrequencySeparation", + "FrequencySeparationHSV" + ], + { + "title_aux": "comfyUI_FrequencySeparation_RGB-HSV" + } + ], + "https://github.com/rkfg/ComfyUI-Dia_tts": [ + [ + "DiaModelLoader", + "DiaSampler" + ], + { + "title_aux": "Dia realistic TTS" + } + ], + "https://github.com/rndnanthu/ComfyUI-RndNanthu": [ + [ + "AutoGradePro", + "ColorAnalysisPlotNode", + "ColorSpaceSim", + "ConvertToLogImage", + "FilmGrain", + "ProColorGrading", + "PromptGenerator" + ], + { + "title_aux": "ComfyUI-RndNanthu" + } + ], + "https://github.com/robertvoy/ComfyUI-Distributed": [ + [ + "DistributedCollector", + "DistributedSeed", + "ImageBatchDivider", + "UltimateSDUpscaleDistributed" + ], + { + "title_aux": "ComfyUI-Distributed" + } + ], + "https://github.com/robertvoy/ComfyUI-Flux-Continuum": [ + [ + "BatchSlider", + "BooleanToEnabled", + "CannySlider", + "ConfigurableDrawText", + "ConfigurableModelRouter", + "ControlNetSlider", + "DenoiseSlider", + "DrawTextConfig", + "FluxContinuumModelRouter", + "GPUSlider", + "GuidanceSlider", + "IPAdapterSlider", + "ImageBatchBoolean", + "ImpactControlBridgeFix", + "IntPass", + "LatentPass", + "MaxShiftSlider", + "OutputGetString", + "PipePass", + "ResolutionMultiplySlider", + "ResolutionPicker", + "SEGSPass", + "SamplerParameterPacker", + "SamplerParameterUnpacker", + "SelectFromBatch", + "SimpleTextTruncate", + "SplitVec2", + "SplitVec3", + "StepSlider", + "TextVersions" + ], + { + "title_aux": "ComfyUI Flux Continuum: Modular Interface" + } + ], + "https://github.com/robtl2/ComfyUI-ComfyBridge": [ + [ + "CB_ImageReceiver", + "CB_ImageSender" + ], + { + "title_aux": "ComfyUI-ComfyBridge" + } + ], + "https://github.com/rohitsainier/ComfyUI-InstagramDownloader": [ + [ + "InstagramDownloader", + "MediaOrganizer" + ], + { + "title_aux": "ComfyUI-InstagramDownloader" } ], "https://github.com/romeobuilderotti/ComfyUI-PNG-Metadata": [ @@ -9934,6 +36941,16 @@ "title_aux": "ComfyUI PNG Metadata" } ], + "https://github.com/ronaldzgithub/ComfyUI_Appstore": [ + [ + "ComfyUIAppstoreHost", + "ComfyUIAppstoreParam", + "sdAppstore_saveImage" + ], + { + "title_aux": "ComfyUI_Appstore" + } + ], "https://github.com/ronniebasak/ComfyUI-Tara-LLM-Integration": [ [ "TaraAdvancedComposition", @@ -9949,6 +36966,104 @@ "title_aux": "ComfyUI-Tara-LLM-Integration" } ], + "https://github.com/ronsantash/Comfyui-flexi-lora-loader": [ + [ + "ComfyUIFlexiLoRALoader" + ], + { + "title_aux": "ComfyUIFlexiLoRALoader" + } + ], + "https://github.com/rookiepsi/comfypsi_blur_mask": [ + [ + "comfypsi_blur_mask" + ], + { + "title_aux": "Blur Mask" + } + ], + "https://github.com/rookiepsi/comfyui-extended": [ + [ + "ImageLiquify", + "ImageSwitch", + "MaskSwitch", + "PreviewBoolean", + "PreviewFloat", + "PreviewInteger", + "PreviewMask", + "PreviewText", + "PrimitiveBoolean", + "PrimitiveDimensions", + "PrimitiveFloat", + "PrimitiveInteger", + "PrimitiveText", + "UtilityExpression", + "UtilityImageDimensions", + "UtilitySwitch", + "rookiepsi_BlurMask", + "rookiepsi_ConstructMask", + "rookiepsi_CropImageToMask", + "rookiepsi_ResizeMask" + ], + { + "title_aux": "ComfyUI Extended" + } + ], + "https://github.com/roundyyy/ComfyUI-mesh-simplifier": [ + [ + "MeshSimplifierNode" + ], + { + "title_aux": "Mesh Simplifier for ComfyUI" + } + ], + "https://github.com/routhakash/AkkiNodes-LLM-Suite-for-ComfyUI": [ + [ + "AICharacterLookdevBible-Akki", + "AICinematographer_Akki", + "AIQCSupervisor-Akki", + "AISceneChoreographerBible-Akki", + "AIScriptCrafter01FoundationBible-Akki", + "AIScriptCrafter02BeatSheetBible-Akki", + "AIScriptCrafter03ScreenplayBible-Akki", + "AISetLookdevBible-Akki", + "AIShotDurationCalculator-Akki", + "AIVideoPromptEngineerPro-Akki", + "AssetSelector-Akki", + "GenericFileLoader-Akki", + "GenericFileSaver-Akki", + "GenericImageLoader-Akki", + "GenericImageNamer-Akki", + "KeywordLoader-Akki", + "LLMLoader-Akki", + "LLMLoaderLMStudio-Akki", + "LoadTextFileAdvanced-Akki", + "LoadTextFileSimple-Akki", + "LookdevBibleLoader-Akki", + "ProShotListParser-Akki", + "ProjectDirector-Akki", + "SaveTextFile-Akki", + "SceneChoreographyLoader-Akki", + "ShotAssetLoader-Akki", + "ShotSelector-Akki", + "StoryWriter-Akki", + "VideoPromptLoader-Akki" + ], + { + "title_aux": "AkkiNodes LLM Suite: Your Personal AI Film Studio" + } + ], + "https://github.com/royceschultz/ComfyUI-Notifications": [ + [ + "Notif-PlaySound", + "Notif-SystemNotification", + "Notif-UnifiedNotification", + "Notif-Webhook" + ], + { + "title_aux": "ComfyUI-Notifications" + } + ], "https://github.com/royceschultz/ComfyUI-TranscriptionTools": [ [ "TT-AudioSink", @@ -9964,6 +37079,58 @@ "title_aux": "ComfyUI-TranscriptionTools" } ], + "https://github.com/rslosch/ComfyUI-EZ_Prompts": [ + [ + "EZPromptsNode", + "LoadImageSetFromFolderSortedNode", + "PadImageForOutpaintByAspectRatio" + ], + { + "title_aux": "ComfyUI-EZ_Prompts" + } + ], + "https://github.com/rubenvillarreal/ComfyUI_PoseAlign": [ + [ + "PoseAlignTwoToOne", + "PoseViewer" + ], + { + "title_aux": "ComfyUI_PoseAlign" + } + ], + "https://github.com/rubi-du/ComfyUI-BiRefNet-Super": [ + [ + "BiRefNet_Lite", + "BiRefNet_Super", + "BiRefNet_onnx" + ], + { + "title_aux": "ComfyUI-BiRefNet-lite" + } + ], + "https://github.com/rubi-du/ComfyUI-Flux-Inpainting": [ + [ + "Flux Inpainting", + "FluxGuffInpainting", + "FluxInpainting", + "FluxSimpleInpainting", + "FluxTransformerInpainting", + "FluxVAELoader" + ], + { + "title_aux": "ComfyUI-Flux-Inpainting" + } + ], + "https://github.com/rubi-du/ComfyUI-ICC-nodes": [ + [ + "LoadImageICC", + "PreviewImageICC", + "SaveImageICC" + ], + { + "title_aux": "ComfyUI-ICC-nodes" + } + ], "https://github.com/rui40000/RUI-Nodes": [ [ "ABCondition", @@ -9973,12 +37140,491 @@ "title_aux": "RUI-Nodes" } ], - "https://github.com/s1dlx/comfy_meh/raw/main/meh.py": [ + "https://github.com/ruiqutech/ComfyUI-RuiquNodes": [ [ - "MergingExecutionHelper" + "EvaluateListMultiple1", + "EvaluateListMultiple3", + "EvaluateListMultiple6", + "EvaluateListMultiple9", + "EvaluateMultiple1", + "EvaluateMultiple3", + "EvaluateMultiple6", + "EvaluateMultiple9", + "ImageDilate", + "ImageErode", + "ListPath", + "MaskDilate", + "MaskErode", + "PreviewMask", + "RangeSplit", + "SaveMask", + "StringAsAny", + "StringConcat1", + "StringConcat3", + "StringConcat6", + "StringConcat9", + "StringPathStem", + "TermsToList", + "VAEDecodeSave" ], { - "title_aux": "comfy_meh" + "title_aux": "RuiquNodes for ComfyUI" + } + ], + "https://github.com/runtime44/comfyui_r44_nodes": [ + [ + "Runtime44ColorMatch", + "Runtime44DynamicKSampler", + "Runtime44FilmGrain", + "Runtime44ImageEnhance", + "Runtime44ImageOverlay", + "Runtime44ImageResizer", + "Runtime44ImageToNoise", + "Runtime44IterativeUpscaleFactor", + "Runtime44MaskSampler", + "Runtime44TiledMaskSampler", + "Runtime44Upscaler" + ], + { + "title_aux": "Runtime44 ComfyUI Nodes" + } + ], + "https://github.com/ruucm/ruucm-comfy": [ + [ + "BatchAverageImage", + "LoadExternalLoraModelOnly", + "RuucmShareScreen" + ], + { + "nodename_pattern": " \\(ruucm\\)$", + "title_aux": "Ruucm's ComfyUI Nodes" + } + ], + "https://github.com/ryanontheinside/ComfyUI-DeepLiveCam": [ + [ + "DeepLiveCamNode" + ], + { + "title_aux": "Deep Live Cam for ComfyUI" + } + ], + "https://github.com/ryanontheinside/ComfyUI_ControlFreak": [ + [ + "ControlFreak" + ], + { + "title_aux": "Control Freak for ComfyUI" + } + ], + "https://github.com/ryanontheinside/ComfyUI_Doom": [ + [ + "Doom" + ], + { + "title_aux": "Doom" + } + ], + "https://github.com/ryanontheinside/ComfyUI_EfficientTAM": [ + [ + "EfficientTAMLoader", + "EfficientTAMPredictor" + ], + { + "title_aux": "ComfyUI-EfficientTAM" + } + ], + "https://github.com/ryanontheinside/ComfyUI_ProfilerX": [ + [ + "CATEGORY", + "ExecutionTracker", + "FUNCTION", + "INPUT_TYPES", + "OUTPUT_NODE", + "ProfilerX", + "RETURN_TYPES" + ], + { + "title_aux": "ComfyUI_ProfilerX" + } + ], + "https://github.com/ryanontheinside/ComfyUI_RealtimeNodes": [ + [ + "BlendshapeControlFloat", + "BlendshapeControlInt", + "BlendshapeTrigger", + "CompareMediaPipeEmbeddings", + "CoordinateConverter", + "FaceDetectionToMask", + "FaceLandmarkPosition", + "FaceTextureWarp", + "HandLandmarkPosition", + "HeadPoseControlFloat", + "HeadPoseControlInt", + "HeadPoseTrigger", + "MaskFromFaceLandmarks", + "MaskFromHandLandmarks", + "MaskFromPoseLandmarks", + "MediaPipeFaceDetector", + "MediaPipeFaceDetectorModelLoader", + "MediaPipeFaceLandmarker", + "MediaPipeFaceLandmarkerModelLoader", + "MediaPipeFaceStylizer", + "MediaPipeFaceStylizerModelLoader", + "MediaPipeGestureRecognizer", + "MediaPipeGestureRecognizerModelLoader", + "MediaPipeHandLandmarker", + "MediaPipeHandLandmarkerModelLoader", + "MediaPipeHolisticLandmarker", + "MediaPipeHolisticVisualizer", + "MediaPipeImageEmbedder", + "MediaPipeImageEmbedderModelLoader", + "MediaPipeImageSegmenter", + "MediaPipeImageSegmenterModelLoader", + "MediaPipeInteractiveSegmenter", + "MediaPipeInteractiveSegmenterModelLoader", + "MediaPipeObjectDetector", + "MediaPipeObjectDetectorModelLoader", + "MediaPipePoseLandmarker", + "MediaPipePoseLandmarkerModelLoader", + "Point2D", + "PointList", + "PoseLandmarkPosition", + "RTCoordinateConverter", + "RTDrawLines", + "RTDrawPoints", + "RTDrawPolygon", + "ReshapeMediaPipeEmbedding", + "SelectMediaPipeSegment", + "VisualizeFaceDetections", + "VisualizeFaceLandmarks", + "VisualizeGestureRecognitions", + "VisualizeHandLandmarks", + "VisualizeObjectDetections", + "VisualizePoseLandmarks" + ], + { + "title_aux": "Nodes for use with real-time applications of ComfyUI" + } + ], + "https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside": [ + [ + "ACEStepAnalyzeLatent", + "ACEStepAudioPostProcessor", + "ACEStepExtendGuider", + "ACEStepHybridGuider", + "ACEStepMaskVisualizer", + "ACEStepRepaintGuider", + "ACEStepTimeRange", + "AdvancedLuminanceMask", + "AnimatedFeaturePreview", + "AreaFeatureNode", + "AudioChannelMerge", + "AudioChannelSplit", + "AudioDither", + "AudioFade", + "AudioFeatureExtractor", + "AudioFeatureVisualizer", + "AudioFilter", + "AudioGain", + "AudioInfo", + "AudioLatentBlend", + "AudioLatentInfo", + "AudioMaskAnalyzer", + "AudioPad", + "AudioPitchShift", + "AudioRegionMask", + "AudioResample", + "AudioSeparatorSimple", + "AudioSubtract", + "AudioTemporalMask", + "AudioTimeStretch", + "AudioTrim", + "AudioVolumeNormalization", + "Audio_Combine", + "Audio_Concatenate", + "BrightnessFeatureNode", + "ColorFeatureNode", + "Color_Picker", + "ContextModifier", + "DepthBlender", + "DepthFeatureNode", + "DepthInjection", + "DepthMapProtrusion", + "DepthRippleEffect", + "DepthShapeModifier", + "DepthShapeModifierPrecise", + "Doom_", + "DownloadCREPEModel", + "DownloadOpenUnmixModel", + "DrawableFeatureNode", + "DyeImage", + "EffectVisualizer", + "EmbeddingGuidedLatentInterpolate", + "EmitterEmissionRateModulation", + "EmitterMovement", + "EmptyImageAndMaskFromAudio", + "EmptyImageFromAudio", + "EmptyMaskFromAudio", + "FeatureAccumulate", + "FeatureCombine", + "FeatureContiguousInterpolate", + "FeatureFade", + "FeatureInfoNode", + "FeatureInterpolateMulti", + "FeatureInterpolator", + "FeatureMath", + "FeatureMixer", + "FeatureOscillator", + "FeaturePeakDetector", + "FeatureRebase", + "FeatureRenormalize", + "FeatureScaler", + "FeatureSmoothing", + "FeatureToFilteredList", + "FeatureToFlexFloatParam", + "FeatureToFlexIntParam", + "FeatureToFloat", + "FeatureToLatentKeyframe", + "FeatureToMask", + "FeatureToSplineData", + "FeatureToTimestepKeyframe", + "FeatureToWeightsStrategy", + "FeatureTruncateOrExtend", + "FlexAudioPitchShift", + "FlexAudioTimeStretch", + "FlexAudioVisualizerCircular", + "FlexAudioVisualizerContour", + "FlexAudioVisualizerLine", + "FlexFeatureAttentionControl", + "FlexImageBloom", + "FlexImageChromaticAberration", + "FlexImageColorGrade", + "FlexImageContrast", + "FlexImageDepthWarp", + "FlexImageEdgeDetect", + "FlexImageGlitch", + "FlexImageHorizontalToVertical", + "FlexImageHueShift", + "FlexImageKaleidoscope", + "FlexImageParallax", + "FlexImagePixelate", + "FlexImagePosterize", + "FlexImageTiltShift", + "FlexImageTransform", + "FlexImageVignette", + "FlexImageWarp", + "FlexLatentBlend", + "FlexLatentInterpolate", + "FlexLatentNoise", + "FlexMaskBinary", + "FlexMaskDepthChamber", + "FlexMaskEmanatingRings", + "FlexMaskInterpolate", + "FlexMaskMath", + "FlexMaskMorph", + "FlexMaskOpacity", + "FlexMaskRandomShapes", + "FlexMaskTransform", + "FlexMaskVoronoiScheduled", + "FlexMaskWarp", + "FlexMaskWavePropagation", + "FlexVideoDirection", + "FlexVideoFrameBlend", + "FlexVideoSeek", + "FlexVideoSpeed", + "FlexlatentAudioBlend", + "FloatFeatureNode", + "FrequencyFilterCustom", + "FrequencyFilterPreset", + "FrequencyRange", + "GravityWell", + "ImageCASBatch", + "ImageChunk", + "ImageDifference", + "ImageIndexSelect", + "ImageInterval", + "ImageIntervalSelectPercentage", + "ImageScaleToTarget", + "Image_Shuffle", + "Knob", + "LatentFrequencyBlender", + "LocationFromMask", + "LocationFromPoint", + "LocationTransform", + "MIDIFeatureExtractor", + "MIDILoader", + "MIDIToAudio", + "ManualFeatureFromPipe", + "ManualFeatureNode", + "ManualFeaturePipe", + "ManualWhisperAlignmentData", + "MaskCompositePlus", + "MaskMath", + "MaskMorph", + "MaskRings", + "MaskToAudioMask", + "MaskTransform", + "MaskWarp", + "MotionFeatureNode", + "MovingShape", + "OpticalFlowDirectionMask", + "OpticalFlowMaskModulation", + "OpticalFlowParticleSystem", + "ParticleColorModulation", + "ParticleEmissionMask", + "ParticleEmitter", + "ParticleSizeModulation", + "ParticleSpeedModulation", + "PitchFeatureExtractor", + "PitchRange", + "PitchRangeByNoteNode", + "PitchRangePreset", + "PitchVisualizer", + "PoseInterpolator", + "PreviewFeature", + "ProximityFeatureNode", + "ProximityVisualizer", + "RhythmFeatureExtractor", + "SplineFeatureModulator", + "SplineRhythmModulator", + "SpringJointSetting", + "StaticBody", + "SwapDevice", + "TextMaskNode", + "TimeFeatureNode", + "TranslucentComposite", + "TriggerBuilder", + "VideoChunk", + "Vortex", + "WhisperAutoAdjust", + "WhisperFeature", + "WhisperTextRenderer", + "WhisperTimeAdjuster", + "WhisperToPromptTravel", + "_mfc" + ], + { + "title_aux": "RyanOnTheInside" + } + ], + "https://github.com/ryanontheinside/ComfyUI_SuperResolution": [ + [ + "SuperResolutionModelLoader", + "SuperResolutionUpscale" + ], + { + "title_aux": "ComfyUI_SuperResolution" + } + ], + "https://github.com/rzgarespo/ComfyUI-qwen-image-size-picker": [ + [ + "QwenImageSize" + ], + { + "title_aux": "ComfyUI-Qwen-Image-Size-Picker" + } + ], + "https://github.com/s9roll7/comfyui_cotracker_node": [ + [ + "CoTrackerNode", + "GridPointGeneratorNode", + "PerlinCoordinateRandomizerNode", + "XYMotionAmplifierNode" + ], + { + "title_aux": "Comfyui CoTracker Node" + } + ], + "https://github.com/saftle/uber_comfy_nodes": [ + [ + "ControlNet Selector", + "ControlNetOptionalLoader", + "DiffusersSelector", + "ModelSimilarityNode", + "MultiInputVariableRewrite", + "SaveImageJPGNoMeta", + "TextRegexOperations", + "VideoSegmentCalculator" + ], + { + "title_aux": "Suplex Misc ComfyUI Nodes" + } + ], + "https://github.com/sakura1bgx/ComfyUI_FlipStreamViewer": [ + [ + "FlipStreamBatchPrompt", + "FlipStreamChat", + "FlipStreamFileSelect_AnimateDiffModel", + "FlipStreamFileSelect_Checkpoints", + "FlipStreamFileSelect_ControlNetModel", + "FlipStreamFileSelect_Input", + "FlipStreamFileSelect_Output", + "FlipStreamFileSelect_TensorRT", + "FlipStreamFileSelect_VAE", + "FlipStreamFilmVfi", + "FlipStreamGate", + "FlipStreamGetParam", + "FlipStreamGetPreviewRoi", + "FlipStreamImageSize", + "FlipStreamInputBox", + "FlipStreamLogBox", + "FlipStreamParseJson", + "FlipStreamPreviewBox", + "FlipStreamRembg", + "FlipStreamScreenGrabber", + "FlipStreamSection", + "FlipStreamSegMask", + "FlipStreamSelectBox_Samplers", + "FlipStreamSelectBox_Scheduler", + "FlipStreamSetMessage", + "FlipStreamSetParam", + "FlipStreamSetUpdateAndReload", + "FlipStreamSlider", + "FlipStreamSource", + "FlipStreamSwitch", + "FlipStreamSwitchImage", + "FlipStreamSwitchLatent", + "FlipStreamTextBox", + "FlipStreamTextReplace", + "FlipStreamVideoInput", + "FlipStreamViewer" + ], + { + "title_aux": "ComfyUI_FlipStreamViewer" + } + ], + "https://github.com/sanbuphy/ComfyUI-AudioLDM": [ + [ + "AudioLDM", + "PreviewAudioLDM", + "SaveAudioLDM" + ], + { + "title_aux": "ComfyUI-AudioLDM" + } + ], + "https://github.com/santiagosamuel3455/ComfyUI-GeminiImageToPrompt": [ + [ + "DeepseekR1KlingAINode", + "GeminiImageToPromptNode", + "GeminiTextToCinematicPromptNode", + "ShowGeneratedText", + "ShowTextNode" + ], + { + "title_aux": "ComfyUI-GeminiImageToPrompt" + } + ], + "https://github.com/scraed/LanPaint": [ + [ + "LanPaint_KSampler", + "LanPaint_KSamplerAdvanced", + "LanPaint_MaskBlend", + "LanPaint_SamplerCustom", + "LanPaint_SamplerCustomAdvanced" + ], + { + "title_aux": "LanPaint" } ], "https://github.com/sdfxai/SDFXBridgeForComfyUI": [ @@ -9989,6 +37635,22 @@ "title_aux": "SDFXBridgeForComfyUI - ComfyUI Custom Node for SDFX Integration" } ], + "https://github.com/sdtana/ComfyUI-FDG": [ + [ + "FDGNode" + ], + { + "title_aux": "ComfyUI-FDG" + } + ], + "https://github.com/seanjang990/comfyui-document-auto-crop": [ + [ + "CropRotateNode" + ], + { + "title_aux": "ComfyUI Document Auto Crop Node" + } + ], "https://github.com/seanlynch/comfyui-optical-flow": [ [ "Apply optical flow", @@ -10010,6 +37672,29 @@ "title_aux": "SRL's nodes" } ], + "https://github.com/sebord/ComfyUI-LMCQ": [ + [ + "LmcqCodeDecryptionLoader", + "LmcqCodeEncryption", + "LmcqDeepGen", + "LmcqDeepLoader", + "LmcqGetMachineCode", + "LmcqImageSaver", + "LmcqImageSaverTransit", + "LmcqImageSaverWeb", + "LmcqInputValidator", + "LmcqLoadFluxNF4Checkpoint", + "LmcqRuntimeLoraDecryption", + "LmcqRuntimeLoraEncryption", + "LmcqRuntimeModelDecryption", + "LmcqRuntimeModelEncryption", + "LmcqRuntimeWorkflowDecryption", + "LmcqRuntimeWorkflowEncryption" + ], + { + "title_aux": "ComfyUI-LMCQ" + } + ], "https://github.com/sergekatzmann/ComfyUI_Nimbus-Pack": [ [ "AdjustAndRoundDimensions", @@ -10022,6 +37707,35 @@ "title_aux": "ComfyUI_Nimbus-Pack" } ], + "https://github.com/sh570655308/ComfyUI-GigapixelAI": [ + [ + "GigapixelAI", + "GigapixelModelSettings", + "GigapixelUpscaleSettings" + ], + { + "title_aux": "ComfyUI-GigapixelAI" + } + ], + "https://github.com/sh570655308/ComfyUI-TopazVideoAI": [ + [ + "TopazUpscaleParams", + "TopazVideoAI" + ], + { + "title_aux": "ComfyUI-TopazVideoAI" + } + ], + "https://github.com/shabri-arrahim/ComfyUI-Safety-Checker": [ + [ + "CompVisSafetyChecker", + "FalconsAISafetyChecker", + "loadImageBase64" + ], + { + "title_aux": "ComfyUI Safety Checker" + } + ], "https://github.com/shadowcz007/comfyui-Image-reward": [ [ "ImageBatchToList_", @@ -10040,18 +37754,43 @@ "title_aux": "Consistency Decoder" } ], + "https://github.com/shadowcz007/comfyui-edit-mask": [ + [ + "EditMask" + ], + { + "title_aux": "comfyui-edit-mask" + } + ], + "https://github.com/shadowcz007/comfyui-liveportrait": [ + [ + "ExpressionEditor_", + "ExpressionVideo2VideoNode", + "ExpressionVideoNode", + "FaceCropInfo", + "LivePortraitNode", + "LivePortraitVideoNode", + "Retargeting" + ], + { + "title_aux": "comfyui-liveportrait" + } + ], "https://github.com/shadowcz007/comfyui-mixlab-nodes": [ [ "3DImage", + "AnalyzeAudio", "AppInfo", "ApplyVisualStylePrompting_", "AreaToMask", + "AudioPlay", "CenterImage", - "CharacterInText", - "ChatGPTOpenAI", "CkptNames_", "Color", + "ComparingTwoFrames_", "CompositeImages_", + "CreateJsonNode", + "DepthViewer", "DynamicDelayProcessor", "EmbeddingPrompt", "EnhanceImage", @@ -10061,25 +37800,25 @@ "FloatingVideo", "Font", "GLIGENTextBoxApply_Advanced", - "GamePal", "GetImageSize_", "GradientImage", "GridDisplayAndSave", "GridInput", "GridOutput", + "ImageBatchToList_", "ImageColorTransfer", "ImageCropByAlpha", - "ImageListReplace_", + "ImageListToBatch_", "ImagesPrompt_", "IncrementingListNode_", "IntNumber", "JoinWithDelimiter", + "KeyInput", "LimitNumber", "ListSplit_", "LoadImagesFromPath", "LoadImagesFromURL", "LoadImagesToBatch", - "LoadVideoAndSegment_", "LoraNames_", "LoraPrompt", "MaskListMerge_", @@ -10090,6 +37829,8 @@ "NewLayer", "NoiseImage", "OutlineMask", + "P5Input", + "PreviewMask_", "PromptImage", "PromptSimplification", "PromptSlide", @@ -10101,7 +37842,6 @@ "ScreenShare", "Seed_", "ShowLayer", - "ShowTextForGPT", "SmoothMask", "SpeechRecognition", "SpeechSynthesis", @@ -10116,18 +37856,39 @@ "TESTNODE_TOKEN", "TextImage", "TextInput_", - "TextSplitByDelimiter", "TextToNumber", "TransparentImage", "VAEDecodeConsistencyDecoder", - "VAEEncodeForInpaint_Frames", - "VAELoaderConsistencyDecoder", - "VideoCombine_Adv" + "VAELoaderConsistencyDecoder" ], { "title_aux": "comfyui-mixlab-nodes" } ], + "https://github.com/shadowcz007/comfyui-sound-lab": [ + [ + "AudioPlay", + "Musicgen_", + "StableAudio_" + ], + { + "title_aux": "comfyui-sound-lab" + } + ], + "https://github.com/shadowcz007/comfyui-try-on": [ + [ + "CatVTONNode", + "FashionClothMask", + "FashionClothMask2" + ], + { + "author": "chflame", + "description": "CatVTON warpper for ComfyUI", + "nickname": "CatVTON_Wrapper", + "title": "CatVTON_Wrapper", + "title_aux": "comfyui-try-on" + } + ], "https://github.com/shadowcz007/comfyui-ultralytics-yolo": [ [ "DetectByLabel" @@ -10136,6 +37897,57 @@ "title_aux": "comfyui-ultralytics-yolo" } ], + "https://github.com/shahkoorosh/ComfyUI-KGnodes": [ + [ + "CustomResolutionLatentNode", + "FaceDetectorAndCropper", + "ImageScaleToSide", + "OverlayRGBAonRGB", + "StyleSelector", + "TextBehindImage" + ], + { + "author": "ShahKoorosh", + "description": "This Custom node pack offers various nodes to make it easier to use ComfyUI.", + "nickname": "KGnodes", + "title": "ComfyUI-KGnodes", + "title_aux": "ComfyUI-KGnodes" + } + ], + "https://github.com/shahkoorosh/ComfyUI-PersianText": [ + [ + "PersianText" + ], + { + "author": "shahkoorosh", + "description": "A powerful ComfyUI node for rendering text with advanced styling options, including full support for Persian/Farsi and Arabic scripts.", + "nickname": "PersianText", + "title": "ComfyUI-PersianText", + "title_aux": "ComfyUI-PersianText" + } + ], + "https://github.com/shenduldh/ComfyUI-Lightning": [ + [ + "ApplyFBCacheAndSkipBlocks", + "ApplyMBCacheAndSkipBlocks", + "ApplyMBCacheAndSkipBlocksForSana", + "ApplySageAttention", + "ApplySpargeAttn", + "ApplyTeaCacheAndSkipBlocks", + "ApplyToCa", + "ApplyTokenMerging", + "CompileAndQuantizeModel", + "SanaCLIPLoader", + "SanaDiffusionLoader", + "SanaEmptyLatentImage", + "SanaTextEncode", + "SanaVAELoader", + "SaveSpargeAttnHyperparams" + ], + { + "title_aux": "ComfyUI-Lightning" + } + ], "https://github.com/shi3z/ComfyUI_Memeplex_DALLE": [ [ "DallERender", @@ -10149,9 +37961,22 @@ "title_aux": "ComfyUI_Memeplex_DALLE" } ], + "https://github.com/shiertier/ComfyUI-TeaCache-lumina2": [ + [ + "TeaCacheForLumina2", + "TeaCacheForLuminaAuto", + "TeaCacheForLuminaNext" + ], + { + "title_aux": "ComfyUI-TeaCache-Lumina" + } + ], "https://github.com/shiimizu/ComfyUI-PhotoMaker-Plus": [ [ "PhotoMakerEncodePlus", + "PhotoMakerInsightFaceLoader", + "PhotoMakerLoaderPlus", + "PhotoMakerLoraLoaderPlus", "PhotoMakerStyles", "PrepImagesForClipVisionFromPath" ], @@ -10162,6 +37987,7 @@ "https://github.com/shiimizu/ComfyUI-TiledDiffusion": [ [ "NoiseInversion", + "SpotDiffusionParams_TiledDiffusion", "TiledDiffusion", "VAEDecodeTiled_TiledDiffusion", "VAEEncodeTiled_TiledDiffusion" @@ -10170,6 +37996,14 @@ "title_aux": "Tiled Diffusion & VAE for ComfyUI" } ], + "https://github.com/shiimizu/ComfyUI-semantic-aware-guidance": [ + [ + "SemanticAwareGuidance" + ], + { + "title_aux": "Semantic-aware Guidance (S-CFG)" + } + ], "https://github.com/shiimizu/ComfyUI_smZNodes": [ [ "smZ CLIPTextEncode", @@ -10179,29 +38013,75 @@ "title_aux": "smZNodes" } ], - "https://github.com/shingo1228/ComfyUI-SDXL-EmptyLatentImage": [ + "https://github.com/shinich39/comfyui-break-workflow": [ [ - "SDXL Empty Latent Image" + "BreakWorkflow" ], { - "title_aux": "ComfyUI-SDXL-EmptyLatentImage" + "author": "shinich39", + "description": "Break the execution, save the incompleted image then continue later.", + "nickname": "comfyui-break-workflow", + "title": "comfyui-break-workflow", + "title_aux": "comfyui-break-workflow" } ], - "https://github.com/shingo1228/ComfyUI-send-eagle-slim": [ + "https://github.com/shinich39/comfyui-dynamic-routes": [ [ - "Send Eagle with text", - "Send Webp Image to Eagle" + "DynamicRoutes" ], { - "title_aux": "ComfyUI-send-Eagle(slim)" + "author": "shinich39", + "description": "Shuffle nodes after queue execution.", + "nickname": "comfyui-dynamic-routes", + "title": "comfyui-dynamic-routes", + "title_aux": "comfyui-dynamic-routes" } ], - "https://github.com/shockz0rz/ComfyUI_InterpolateEverything": [ + "https://github.com/shinich39/comfyui-get-meta": [ [ - "OpenposePreprocessorInterpolate" + "GetBooleanFromImage", + "GetComboFromImage", + "GetFloatFromImage", + "GetIntFromImage", + "GetNodesFromImage", + "GetPromptFromImage", + "GetStringFromImage", + "GetWorkflowFromImage" ], { - "title_aux": "InterpolateEverything" + "author": "shinich39", + "description": "Get metadata from image.", + "nickname": "comfyui-get-meta", + "title": "comfyui-get-meta", + "title_aux": "comfyui-get-meta" + } + ], + "https://github.com/shinich39/comfyui-no-one-above-me": [ + [ + "NoOneAboveMe" + ], + { + "author": "shinich39", + "description": "Fix node to top.", + "nickname": "comfyui-no-one-above-me", + "title": "comfyui-no-one-above-me", + "title_aux": "comfyui-no-one-above-me" + } + ], + "https://github.com/shinyakidoguchi301/comfyui-lora-tag-loader": [ + [ + "LoRA_TagLoader" + ], + { + "title_aux": "shinyakidoguchi301/LoRA Tag Loader for ComfyUI" + } + ], + "https://github.com/shobhitic/ComfyUI-PlusMinusTextClip": [ + [ + "PlusMinusTextClip" + ], + { + "title_aux": "PlusMinusTextClip - Single node for Positive and Negative Prompts" } ], "https://github.com/shockz0rz/comfy-easy-grids": [ @@ -10223,40 +38103,75 @@ "title_aux": "comfy-easy-grids" } ], - "https://github.com/siliconflow/onediff_comfy_nodes": [ + "https://github.com/silveroxides/ComfyUI-ModelUtils": [ [ - "CompareModel", - "ModelGraphLoader", - "ModelGraphSaver", - "ModelSpeedup", - "ModuleDeepCacheSpeedup", - "OneDiffCheckpointLoaderSimple", - "OneDiffControlNetLoader", - "OneDiffDeepCacheCheckpointLoaderSimple", - "SVDSpeedup", - "ShowImageDiff", - "VaeGraphLoader", - "VaeGraphSaver", - "VaeSpeedup" + "CLIPMetaKeys", + "CheckpointMetaKeys", + "LoRAMetaKeys", + "UNetMetaKeys" ], { - "title_aux": "OneDiff Nodes" + "title_aux": "Model Utility Toolkit" + } + ], + "https://github.com/silveroxides/ComfyUI_EmbeddingToolkit": [ + [ + "SaveA1111WeightedEmbeddings", + "SaveTokenEmbeddings", + "SaveWeightedEmbeddings", + "SliceExistingEmbedding" + ], + { + "title_aux": "ComfyUI_EmbeddingToolkit" + } + ], + "https://github.com/silveroxides/ComfyUI_FDGuidance": [ + [ + "FDG_APG_Patcher", + "FrequencyDecoupledGuidance" + ], + { + "title_aux": "ComfyUI_FDGuidance" + } + ], + "https://github.com/silveroxides/ComfyUI_PowerShiftScheduler": [ + [ + "PowerShiftScheduler" + ], + { + "title_aux": "ComfyUI Power Shift Scheduler" + } + ], + "https://github.com/silveroxides/ComfyUI_SigmoidOffsetScheduler": [ + [ + "SigmoidOffsetScheduler" + ], + { + "title_aux": "ComfyUI Sigmoid Offset Scheduler" } ], "https://github.com/sipherxyz/comfyui-art-venture": [ [ + "AV_AwsBedrockClaudeApi", + "AV_AwsBedrockMistralApi", "AV_CheckpointMerge", "AV_CheckpointModelsToParametersPipe", "AV_CheckpointSave", + "AV_ClaudeApi", "AV_ControlNetEfficientLoader", "AV_ControlNetEfficientLoaderAdvanced", "AV_ControlNetEfficientStacker", "AV_ControlNetEfficientStackerSimple", "AV_ControlNetLoader", "AV_ControlNetPreprocessor", + "AV_LLMApiConfig", + "AV_LLMChat", + "AV_LLMCompletion", + "AV_LLMMessage", "AV_LoraListLoader", "AV_LoraListStacker", "AV_LoraLoader", + "AV_OpenAIApi", "AV_ParametersPipeToCheckpointModels", "AV_ParametersPipeToPrompts", "AV_PromptsToParametersPipe", @@ -10266,10 +38181,13 @@ "BLIPCaption", "BLIPLoader", "BooleanPrimitive", + "CheckpointNameSelector", "ColorBlend", "ColorCorrect", "DeepDanbooruCaption", "DependenciesEdit", + "DownloadAndLoadBlip", + "DownloadISNetModel", "Fooocus_KSampler", "Fooocus_KSamplerAdvanced", "GetBoolFromJson", @@ -10293,7 +38211,9 @@ "LaMaInpaint", "LoadImageAsMaskFromUrl", "LoadImageFromUrl", + "LoadJsonFromText", "LoadJsonFromUrl", + "LoadLaMaModel", "MergeModels", "NumberScaler", "OverlayInpaintedImage", @@ -10307,12 +38227,42 @@ "SDXLPromptStyler", "SeedSelector", "StringToInt", - "StringToNumber" + "StringToNumber", + "TextRandomMultiline", + "TextSwitchCase" ], { "title_aux": "comfyui-art-venture" } ], + "https://github.com/sipie800/ComfyUI-PuLID-Flux-Enhanced": [ + [ + "ApplyPulidFlux", + "PulidFluxEvaClipLoader", + "PulidFluxInsightFaceLoader", + "PulidFluxModelLoader" + ], + { + "title_aux": "ComfyUI-PuLID-Flux-Enhanced" + } + ], + "https://github.com/sittere/ComfyUI-YK_Line-loading": [ + [ + "MultiTextLoader" + ], + { + "title_aux": "ComfyUI-YK Line loading" + } + ], + "https://github.com/sjh00/ComfyUI-LoadImageWithInfo": [ + [ + "LoadImageWithInfo", + "SaveImageWithInfo" + ], + { + "title_aux": "ComfyUI LoadImageWithInfo" + } + ], "https://github.com/skfoo/ComfyUI-Coziness": [ [ "LoraTextExtractor-b1f83aa2", @@ -10322,6 +38272,94 @@ "title_aux": "ComfyUI-Coziness" } ], + "https://github.com/skycoder182/comfyui-filename-tools": [ + [ + "ExtractAndTrimFilename", + "LoadImageWithFilename" + ], + { + "title_aux": "Filename Tools" + } + ], + "https://github.com/skycoder182/comfyui-skycoder-tools": [ + [ + "Aspect_Ratio_and_Tile_size_calculator", + "BLIP2Captioning", + "BooleanToggle", + "ConcatenateAndTestIfEmpty", + "DirectoryImageInfo", + "DirectoryImageLoader", + "ImageBasicNode" + ], + { + "title_aux": "Skycoder Tools" + } + ], + "https://github.com/slvslvslv/ComfyUI-SmartHelperNodes": [ + [ + "SmartFormatString", + "SmartFormatString10", + "SmartHVLoraSelect", + "SmartHVLoraStack", + "SmartLoadLoRA", + "SmartModelOrLoraToString", + "SmartPrompt", + "SmartRemoveComments", + "SmartSaveText", + "SmartShowAnything" + ], + { + "title_aux": "ComfyUI Smart Helper Nodes" + } + ], + "https://github.com/slvslvslv/ComfyUI-SmartImageTools": [ + [ + "SmartBackgroundRemove", + "SmartDrawPoints", + "SmartGenerateImage", + "SmartImagePaletteConvert", + "SmartImagePaletteExtract", + "SmartImagePoint", + "SmartImagePreviewScaled", + "SmartImageRegion", + "SmartImagesProcessor", + "SmartPoint", + "SmartPointSet", + "SmartPointSetMerge", + "SmartPreviewPalette", + "SmartSaveAnimatedPNG", + "SmartSavePNG", + "SmartSemiTransparenceRemove", + "SmartVideoPreviewScaled" + ], + { + "title_aux": "ComfyUI-SmartImageTools" + } + ], + "https://github.com/slyt/comfyui-ollama-nodes": [ + [ + "BooleanToString", + "DownloadHuggingfaceModel", + "FloatToString", + "GenerateOllama", + "IntToString", + "ListModels", + "ListToString", + "PullModel" + ], + { + "title_aux": "comfyui-ollama-nodes" + } + ], + "https://github.com/sm079/ComfyUI-Face-Detection": [ + [ + "FaceCombine", + "FaceDetection" + ], + { + "title_aux": "ComfyUI-Face-Detection" + } + ], "https://github.com/smagnetize/kb-comfyui-nodes": [ [ "SingleImageDataUrlLoader" @@ -10330,8 +38368,69 @@ "title_aux": "kb-comfyui-nodes" } ], + "https://github.com/smlbiobot/ComfyUI-Flux-Replicate-API": [ + [ + "SML_FluxProUltra_Replicate_Standalone", + "SML_FluxPro_Replicate_Standalone" + ], + { + "title_aux": "ComfyUI-Flux-Replicate-API" + } + ], + "https://github.com/smlbiobot/sml-comfyui-prompt-expansion": [ + [ + "SML_Prompt_Generator" + ], + { + "title_aux": "sml-comfyui-prompt-expansion" + } + ], + "https://github.com/smthemex/ComfyUI_AniCrafter": [ + [ + "AniCrafterLoader", + "AniCrafterPreImage", + "AniCrafterPreText", + "AniCrafterPreVideo", + "AniCrafterSampler" + ], + { + "title_aux": "ComfyUI_AniCrafter" + } + ], + "https://github.com/smthemex/ComfyUI_AnyDoor": [ + [ + "AnyDoor_LoadModel", + "AnyDoor_img2img" + ], + { + "title_aux": "ComfyUI_AnyDoor" + } + ], + "https://github.com/smthemex/ComfyUI_CSD_MT": [ + [ + "CSDMTLoader", + "CSDMTSampler" + ], + { + "title_aux": "ComfyUI_CSD_MT" + } + ], + "https://github.com/smthemex/ComfyUI_CSGO_Wrapper": [ + [ + "Blip_Loader", + "CSGO_Loader", + "CSGO_Sampler" + ], + { + "title_aux": "ComfyUI_CSGO_Wrapper" + } + ], "https://github.com/smthemex/ComfyUI_ChatGLM_API": [ [ + "Glm_4_9b_Chat", + "Glm_4v_9b", + "Glm_Lcoal_Or_Repo", + "ZhipuaiApi_Character", "ZhipuaiApi_Txt", "ZhipuaiApi_img" ], @@ -10339,24 +38438,504 @@ "title_aux": "ComfyUI_ChatGLM_API" } ], + "https://github.com/smthemex/ComfyUI_CustomNet": [ + [ + "CustomNet_LoadModel", + "CustomNet_Sampler" + ], + { + "title_aux": "ComfyUI_CustomNet" + } + ], + "https://github.com/smthemex/ComfyUI_DICE_Talk": [ + [ + "Dice_Talk_Loader", + "Dice_Talk_PreData", + "Dice_Talk_Sampler" + ], + { + "title_aux": "ComfyUI_DICE_Talk" + } + ], + "https://github.com/smthemex/ComfyUI_DeepFakeDefenders": [ + [ + "DeepFakeDefender_Loader", + "DeepFakeDefender_Sampler" + ], + { + "title_aux": "ComfyUI_DeepFakeDefenders" + } + ], + "https://github.com/smthemex/ComfyUI_Demucs": [ + [ + "Demucs_Loader", + "Demucs_Sampler" + ], + { + "title_aux": "ComfyUI_Demucs" + } + ], + "https://github.com/smthemex/ComfyUI_Diffree": [ + [ + "Diffree_Model_Loader", + "Diffree_Sampler" + ], + { + "title_aux": "ComfyUI_Diffree" + } + ], + "https://github.com/smthemex/ComfyUI_DiffuEraser": [ + [ + "DiffuEraserLoader", + "DiffuEraserSampler" + ], + { + "title_aux": "ComfyUI_DiffuEraser" + } + ], + "https://github.com/smthemex/ComfyUI_EchoMimic": [ + [ + "Echo_LoadModel", + "Echo_Predata", + "Echo_Sampler" + ], + { + "title_aux": "ComfyUI_EchoMimic" + } + ], + "https://github.com/smthemex/ComfyUI_Face_Anon_Simple": [ + [ + "Face_Anon_Simple_Align", + "Face_Anon_Simple_LoadModel", + "Face_Anon_Simple_Sampler" + ], + { + "title_aux": "ComfyUI_Face_Anon_Simple" + } + ], + "https://github.com/smthemex/ComfyUI_FoleyCrafter": [ + [ + "FoleyCrafter_LoadModel", + "FoleyCrafter_Sampler" + ], + { + "title_aux": "ComfyUI_FoleyCrafter" + } + ], + "https://github.com/smthemex/ComfyUI_FollowYourEmoji": [ + [ + "Emoji_Make_Temple", + "FollowYouEmoji_LoadModel", + "FollowYouEmoji_Sampler" + ], + { + "title_aux": "ComfyUI_FollowYourEmoji" + } + ], + "https://github.com/smthemex/ComfyUI_Hallo2": [ + [ + "HalloLoader", + "HalloPreImgAndAudio", + "HallosSampler", + "HallosUpscaleloader", + "HallosVideoUpscale" + ], + { + "title_aux": "ComfyUI_Hallo2" + } + ], + "https://github.com/smthemex/ComfyUI_HiDiffusion_Pro": [ + [ + "HI_Diffusers_Model_Loader", + "Hi_Sampler" + ], + { + "title_aux": "ComfyUI_HiDiffusion_Pro" + } + ], + "https://github.com/smthemex/ComfyUI_HunyuanAvatar_Sm": [ + [ + "HY_Avatar_Loader", + "HY_Avatar_PreData", + "HY_Avatar_Sampler" + ], + { + "title_aux": "ComfyUI_HunyuanAvatar_Sm" + } + ], + "https://github.com/smthemex/ComfyUI_ID_Animator": [ + [ + "ID_Animator", + "ID_Repo_Choice" + ], + { + "title_aux": "ComfyUI_ID_Animator" + } + ], + "https://github.com/smthemex/ComfyUI_InstantIR_Wrapper": [ + [ + "InstantIR_Loader", + "InstantIR_Sampler" + ], + { + "author": "zhaoyafei", + "title_aux": "ComfyUI_InstantIR_Wrapper" + } + ], + "https://github.com/smthemex/ComfyUI_KV_Edit": [ + [ + "KV_Edit_Load", + "KV_Edit_PreData", + "KV_Edit_Sampler" + ], + { + "title_aux": "ComfyUI_KV_Edit" + } + ], + "https://github.com/smthemex/ComfyUI_Light_A_Video": [ + [ + "Light_A_Video_Loader", + "Light_A_Video_Sampler" + ], + { + "title_aux": "ComfyUI_Light_A_Video" + } + ], + "https://github.com/smthemex/ComfyUI_Llama3_8B": [ + [ + "ChatQA_1p5_8b", + "Local_Or_Repo_Choice", + "Meta_Llama3_8B", + "MiniCPM_Llama3_V25" + ], + { + "title_aux": "ComfyUI_Llama3_8B" + } + ], + "https://github.com/smthemex/ComfyUI_MS_Diffusion": [ + [ + "MS_Object_img_Batch", + "MSdiffusion_Model_Loader", + "MSdiffusion_Sampler" + ], + { + "title_aux": "ComfyUI_MS_Diffusion" + } + ], + "https://github.com/smthemex/ComfyUI_MangaNinjia": [ + [ + "MangaNinjiaLoader", + "MangaNinjiaSampler", + "MarkImageNode" + ], + { + "title_aux": "ComfyUI_MangaNinjia" + } + ], + "https://github.com/smthemex/ComfyUI_MooER": [ + [ + "MooER_LoadModel", + "MooER_Sampler" + ], + { + "title_aux": "ComfyUI_MooER" + } + ], + "https://github.com/smthemex/ComfyUI_ObjectClear": [ + [ + "ObjectClearBatch", + "ObjectClearLoader", + "ObjectClearSampler", + "ObjectClearVision" + ], + { + "title_aux": "ComfyUI_ObjectClear" + } + ], + "https://github.com/smthemex/ComfyUI_OmniParser": [ + [ + "OmniParser_Loader", + "OmniParser_Sampler" + ], + { + "title_aux": "ComfyUI_OmniParser" + } + ], + "https://github.com/smthemex/ComfyUI_OmniSVG": [ + [ + "OmniSVGLoader", + "OmniSVGSampler" + ], + { + "title_aux": "ComfyUI_OmniSVG" + } + ], + "https://github.com/smthemex/ComfyUI_PBR_Maker": [ + [ + "Load_MatForger", + "MatForger_Sampler" + ], + { + "title_aux": "ComfyUI_PBR_Maker" + } + ], "https://github.com/smthemex/ComfyUI_ParlerTTS": [ [ - "ModelDownload", - "PromptToAudio" + "ParlerTTS_LoadModel", + "ParlerTTS_Sampler" ], { "title_aux": "ComfyUI_ParlerTTS" } ], + "https://github.com/smthemex/ComfyUI_PartPacker": [ + [ + "PartPacker_Loader", + "PartPacker_Sampler" + ], + { + "title_aux": "ComfyUI_PartPacker" + } + ], + "https://github.com/smthemex/ComfyUI_Personalize_Anything": [ + [ + "Personalize_Anything_Load", + "Personalize_Anything_Sampler" + ], + { + "title_aux": "ComfyUI_Personalize_Anything" + } + ], + "https://github.com/smthemex/ComfyUI_PhotoDoodle": [ + [ + "PhotoDoodle_Loader", + "PhotoDoodle_Sampler" + ], + { + "title_aux": "ComfyUI_PhotoDoodle" + } + ], "https://github.com/smthemex/ComfyUI_Pic2Story": [ [ - "DownloadModel", - "Pic2Story" + "Pic2Story_Loader", + "Pic2Story_Sampler" ], { "title_aux": "ComfyUI_Pic2Story" } ], + "https://github.com/smthemex/ComfyUI_Pipeline_Tool": [ + [ + "Pipeline_Tool" + ], + { + "title_aux": "ComfyUI_Pipeline_Tool" + } + ], + "https://github.com/smthemex/ComfyUI_Pops": [ + [ + "Pops_Decoder", + "Pops_Repo_Loader", + "Pops_Sampler" + ], + { + "title_aux": "ComfyUI_Pops" + } + ], + "https://github.com/smthemex/ComfyUI_SVFR": [ + [ + "SVFR_LoadModel", + "SVFR_Sampler", + "SVFR_img2mask" + ], + { + "title_aux": "ComfyUI_SVFR" + } + ], + "https://github.com/smthemex/ComfyUI_Sapiens": [ + [ + "SapiensLoader", + "SapiensSampler" + ], + { + "title_aux": "ComfyUI_Sapiens" + } + ], + "https://github.com/smthemex/ComfyUI_SongGeneration": [ + [ + "SongGeneration_Sampler", + "SongGeneration_Stage1", + "SongGeneration_Stage2" + ], + { + "title_aux": "ComfyUI_SongGeneration" + } + ], + "https://github.com/smthemex/ComfyUI_Sonic": [ + [ + "SONICSampler", + "SONICTLoader", + "SONIC_PreData" + ], + { + "title_aux": "ComfyUI_Sonic" + } + ], + "https://github.com/smthemex/ComfyUI_StableAudio_Open": [ + [ + "StableAudio_ModelLoader", + "StableAudio_Sampler" + ], + { + "title_aux": "ComfyUI_StableAudio_Open" + } + ], + "https://github.com/smthemex/ComfyUI_StableAvatar": [ + [ + "StableAvatar_LoadModel", + "StableAvatar_Predata", + "StableAvatar_Sampler" + ], + { + "title_aux": "ComfyUI_StableAvatar" + } + ], + "https://github.com/smthemex/ComfyUI_Stable_Makeup": [ + [ + "StableMakeup_LoadModel", + "StableMakeup_Sampler" + ], + { + "author": "Sajjad Ayobbi", + "title_aux": "ComfyUI_Stable_Makeup" + } + ], + "https://github.com/smthemex/ComfyUI_StoryDiffusion": [ + [ + "Comic_Type", + "EasyFunction_Lite", + "Pre_Translate_prompt", + "StoryDiffusion_Apply", + "StoryDiffusion_CLIPTextEncode", + "StoryDiffusion_KSampler" + ], + { + "title_aux": "ComfyUI_StoryDiffusion" + } + ], + "https://github.com/smthemex/ComfyUI_Streamv2v_Plus": [ + [ + "Stream_Lora_Loader", + "Stream_Model_Loader", + "Stream_Sampler" + ], + { + "title_aux": "ComfyUI_Streamv2v_Plus" + } + ], + "https://github.com/smthemex/ComfyUI_TRELLIS": [ + [ + "Trellis_LoadModel", + "Trellis_Sampler", + "Trellis_multiimage_loader" + ], + { + "title_aux": "ComfyUI_TRELLIS" + } + ], + "https://github.com/smthemex/ComfyUI_VisualCloze": [ + [ + "Img_Quadruple", + "VisualCloze_Aplly", + "VisualCloze_CLIPText", + "VisualCloze_KSampler" + ], + { + "title_aux": "ComfyUI_VisualCloze" + } + ], + "https://github.com/smthemex/ComfyUI_YuE": [ + [ + "YUE_Stage_A_Loader", + "YUE_Stage_A_Sampler", + "YUE_Stage_B_Loader", + "YUE_Stage_B_Sampler" + ], + { + "title_aux": "ComfyUI_YuE" + } + ], + "https://github.com/sn0w12/ComfyUI-Sn0w-Scripts": [ + [ + "Character Selector", + "Copy/Paste Textbox", + "Filter Tags", + "Generate All Characters", + "Get Font Size", + "Load Lora Folder", + "Load Lora Sn0w", + "Lora Selector", + "Lora Tester", + "Prompt Combine", + "Prompt Selector", + "Sn0w KSampler", + "Sn0w Lora Stacker", + "TaggedTiledUpscaler", + "Upscale Image With Model By" + ], + { + "title_aux": "ComfyUI-Sn0w-Scripts" + } + ], + "https://github.com/sneccc/comfyui-snek-nodes": [ + [ + "Aesthetics", + "Aesthetics V2", + "Load AI Toolkit Latent Flux", + "Save_Image_And_Caption", + "Send_to_Eagle", + "\ud83d\udc0d Random Prompt From JSON" + ], + { + "title_aux": "comfyui-snek-nodes" + } + ], + "https://github.com/snomiao/ComfyUI-Video-Crop": [ + [ + "VideoCropNode" + ], + { + "title_aux": "ComfyUI Video Crop" + } + ], + "https://github.com/souki202/ComfyUI-LoadImage-Advanced": [ + [ + "ColorAdjustment", + "LoadImageUpscale", + "LoadImageUpscaleBy" + ], + { + "title_aux": "ComfyUI-LoadImage-Advanced" + } + ], + "https://github.com/sourceful-official/LoadLoraModelOnlyWithUrl": [ + [ + "LoadLoraModelOnlyWithUrl" + ], + { + "title_aux": "LoadLoraModelOnlyWithUrl" + } + ], + "https://github.com/sousakujikken/ComfyUI-PixydustQuantizer": [ + [ + "CRTLikeEffectNode", + "Quantizer", + "XYBlurNode" + ], + { + "title_aux": "ComfyUI-PixydustQuantizer" + } + ], "https://github.com/space-nuko/ComfyUI-Disco-Diffusion": [ [ "DiscoDiffusion_DiscoDiffusion", @@ -10386,11 +38965,30 @@ "title_aux": "nui suite" } ], + "https://github.com/spacepxl/ComfyUI-Depth-Pro": [ + [ + "DepthPro", + "FocalFromList", + "FocalMMtoPX", + "FocalPXtoMM", + "LoadDepthPro", + "MetricDepthToInverse", + "MetricDepthToRelative" + ], + { + "title_aux": "ComfyUI-Depth-Pro" + } + ], "https://github.com/spacepxl/ComfyUI-HQ-Image-Save": [ [ "LoadEXR", + "LoadEXRFrames", + "LoadImageAndPrompt", "LoadLatentEXR", "SaveEXR", + "SaveEXRFrames", + "SaveImageAndPromptExact", + "SaveImageAndPromptIncremental", "SaveLatentEXR", "SaveTiff" ], @@ -10398,46 +38996,12 @@ "title_aux": "ComfyUI-HQ-Image-Save" } ], - "https://github.com/spacepxl/ComfyUI-Image-Filters": [ + "https://github.com/spacepxl/ComfyUI-LossTesting": [ [ - "AdainImage", - "AdainLatent", - "AlphaClean", - "AlphaMatte", - "BatchAlign", - "BatchAverageImage", - "BatchAverageUnJittered", - "BatchNormalizeImage", - "BatchNormalizeLatent", - "BetterFilmGrain", - "BlurImageFast", - "BlurMaskFast", - "ClampOutliers", - "ColorMatchImage", - "ConvertNormals", - "DifferenceChecker", - "DilateErodeMask", - "EnhanceDetail", - "ExposureAdjust", - "GuidedFilterAlpha", - "ImageConstant", - "ImageConstantHSV", - "InstructPixToPixConditioningAdvanced", - "JitterImage", - "Keyer", - "LatentNormalizeShuffle", - "LatentStats", - "NormalMapSimple", - "OffsetLatentImage", - "RelightSimple", - "RemapRange", - "ShuffleChannels", - "Tonemap", - "UnJitterImage", - "UnTonemap" + "Measure Timestep Loss" ], { - "title_aux": "ComfyUI-Image-Filters" + "title_aux": "ComfyUI-LossTesting" } ], "https://github.com/spacepxl/ComfyUI-RAVE": [ @@ -10453,6 +39017,50 @@ "title_aux": "ComfyUI-RAVE" } ], + "https://github.com/spacepxl/ComfyUI-StyleGan": [ + [ + "BatchAverageStyleGANLatents", + "BlendStyleGANLatents", + "GenerateStyleGANLatent", + "LoadStyleGAN", + "StyleGANInversion", + "StyleGANLatentFromBatch", + "StyleGANSampler" + ], + { + "title_aux": "ComfyUI-StyleGan" + } + ], + "https://github.com/spawner1145/CUI-Lumina2-TeaCache": [ + [ + "LPIPS_Model_Loader", + "Store_Baseline_Image", + "TeaCache_LPIPS_Evaluator", + "TeaCache_Lumina2", + "TeaCache_Patcher", + "TeaCache_Result_Collector" + ], + { + "title_aux": "CUI-Lumina2-TeaCache" + } + ], + "https://github.com/spawner1145/comfyui-aichat": [ + [ + "GeminiApiLoader", + "GeminiChat", + "GeminiFileUploader", + "GeminiImageEncoder", + "GeminiTextBlock", + "OpenAIApiLoader", + "OpenAIChat", + "OpenAIFileUploader", + "OpenAIImageEncoder", + "OpenAITextBlock" + ], + { + "title_aux": "comfyui-aichat" + } + ], "https://github.com/spinagon/ComfyUI-seam-carving": [ [ "SeamCarving" @@ -10480,9 +39088,18 @@ "title_aux": "Latent Mirror node for ComfyUI" } ], + "https://github.com/squirrel765/ComfyUI-LLM-VLM-Node": [ + [ + "UnifiedGenerator|LP" + ], + { + "title_aux": "ComfyUI-LLM-VLM-Node" + } + ], "https://github.com/ssitu/ComfyUI_UltimateSDUpscale": [ [ "UltimateSDUpscale", + "UltimateSDUpscaleCustomSample", "UltimateSDUpscaleNoUpscale" ], { @@ -10506,7 +39123,9 @@ "KRestartSampler", "KRestartSamplerAdv", "KRestartSamplerCustom", - "KRestartSamplerSimple" + "KRestartSamplerSimple", + "RestartSampler", + "RestartScheduler" ], { "title_aux": "Restart Sampling" @@ -10521,16 +39140,134 @@ "title_aux": "ComfyUI roop" } ], + "https://github.com/stavsap/comfyui-downloader": [ + [ + "DownloadSummaryParser", + "DownloadTokenLoader", + "Downloader" + ], + { + "title_aux": "comfyui-downloader" + } + ], + "https://github.com/stavsap/comfyui-kokoro": [ + [ + "KokoroGenerator", + "KokoroSpeaker", + "KokoroSpeakerCombiner" + ], + { + "title_aux": "comfyui-kokoro" + } + ], "https://github.com/stavsap/comfyui-ollama": [ [ + "OllamaConnectivityV2", "OllamaGenerate", "OllamaGenerateAdvance", + "OllamaGenerateV2", + "OllamaLoadContext", + "OllamaOptionsV2", + "OllamaSaveContext", "OllamaVision" ], { "title_aux": "ComfyUI Ollama" } ], + "https://github.com/stduhpf/ComfyUI--Wan22FirstLastFrameToVideoLatent": [ + [ + "Wan22FirstLastFrameToVideoLatent", + "Wan22FirstLastFrameToVideoLatentTiledVAE" + ], + { + "title_aux": "Wan22FirstLastFrameToVideoLatent for ComfyUI" + } + ], + "https://github.com/stduhpf/ComfyUI--WanImageToVideoTiled": [ + [ + "Wan22ImageToVideoLatentTiledVAE", + "WanCameraImageToVideoTiledVAE", + "WanFirstLastFrameToVideoTiledVAE", + "WanFunControlToVideoTiledVAE", + "WanFunInpaintToVideoTiledVAE", + "WanImageToVideoTiledVAE", + "WanPhantomSubjectToVideoTiledVAE", + "WanTrackToVideoTiledVAE", + "WanVaceToVideoTiledVAE" + ], + { + "title_aux": "WanImageToVideoTiledVAE for ComfyUI" + } + ], + "https://github.com/stduhpf/ComfyUI-WanMoeKSampler": [ + [ + "SplitSigmasAtT", + "WanMoeKSampler", + "WanMoeKSamplerAdvanced" + ], + { + "title_aux": "KSampler for Wan 2.2 MoE for ComfyUI" + } + ], + "https://github.com/stepfun-ai/ComfyUI-StepVideo": [ + [ + "TI2V", + "TI2V_API" + ], + { + "title_aux": "ComfyUI-StepVideo" + } + ], + "https://github.com/stevenwg/ComfyUI-VideoGrid": [ + [ + "VideosConcateHorizontal:", + "VideosConcateVertical" + ], + { + "title_aux": "ComfyUI-VideoGrid" + } + ], + "https://github.com/stormcenter/ComfyUI-AutoSplitGridImage": [ + [ + "EvenImageResizer", + "GridImageSplitter" + ], + { + "title_aux": "ComfyUI-AutoSplitGridImage" + } + ], + "https://github.com/stormcenter/ComfyUI-LivePhotoCreator": [ + [ + "ImageCompareTransition", + "LivePhotoCreator", + "LivePhotoPreview" + ], + { + "title_aux": "ComfyUI LivePhoto Creator" + } + ], + "https://github.com/stormcenter/ComfyUI-SVGFullfill": [ + [ + "SVGEditor", + "SVGUploader" + ], + { + "title_aux": "ComfyUI-SVGFullfill" + } + ], + "https://github.com/storyicon/comfyui_musev_evolved": [ + [ + "AnimationZoom (comfyui_musev_evolved)", + "ImageSelector (comfyui_musev_evolved)", + "MuseVImg2Vid V1 (comfyui_musev_evolved)", + "MuseVPredictor V1 (comfyui_musev_evolved)" + ], + { + "author": "infguo", + "title_aux": "ComfyUI MuseV Evolved" + } + ], "https://github.com/storyicon/comfyui_segment_anything": [ [ "GroundingDinoModelLoader (segment anything)", @@ -10543,7 +39280,29 @@ "title_aux": "segment anything" } ], - "https://github.com/strimmlarn/ComfyUI_Strimmlarns_aesthetic_score": [ + "https://github.com/strand1/ComfyUI-Autogen": [ + [ + "AutogenAssistantAgent", + "AutogenCodeExecutor", + "AutogenGroupChat", + "AutogenModel" + ], + { + "title_aux": "ComfyUI-Autogen" + } + ], + "https://github.com/strawberryPunch/vram_optimizer": [ + [ + "StrawberryGPUMonitor", + "StrawberryVramOptimizer", + "custom_nodes" + ], + { + "nodename_pattern": "StFist", + "title_aux": "StrawberryFist VRAM Optimizer" + } + ], + "https://github.com/strimmlarn/ComfyUI-Strimmlarns-Aesthetic-Score": [ [ "AesthetlcScoreSorter", "CalculateAestheticScore", @@ -10570,14 +39329,125 @@ "title_aux": "ComfyUI-sudo-latent-upscale" } ], + "https://github.com/sugarkwork/ComfyUI_AspectRatioToSize": [ + [ + "AspectRatio", + "AspectRatioToSize", + "CalcFactorWidthHeight", + "CalculateImagePadding", + "MatchImageToAspectRatio", + "SizeToWidthHeight" + ], + { + "title_aux": "ComfyUI_AspectRatioToSize" + } + ], + "https://github.com/sugarkwork/comfyui-trtupscaler": [ + [ + "TRTUpscaler" + ], + { + "title_aux": "comfyui-trtupscaler" + } + ], + "https://github.com/sugarkwork/comfyui_cohere": [ + [ + "SimpleCohereNode" + ], + { + "title_aux": "comfyui_cohere" + } + ], "https://github.com/sugarkwork/comfyui_tag_fillter": [ [ - "TagFilter" + "TagCategory", + "TagCategoryEnhance", + "TagComparator", + "TagEnhance", + "TagFilter", + "TagFlag", + "TagFlagImage", + "TagIf", + "TagMerger", + "TagMerger4", + "TagMerger6", + "TagRemover", + "TagReplace", + "TagSelector", + "TagSwitcher", + "TagWildcardFilter" ], { "title_aux": "comfyui_tag_filter" } ], + "https://github.com/superyoman/comfyui_lumaAPI": [ + [ + "LUMA_API_YoC", + "LUMA_API_result_YoC" + ], + { + "title_aux": "comfyui_lumaAPI" + } + ], + "https://github.com/surinder83singh/ComfyUI-compare-videos": [ + [ + "CompareVideos" + ], + { + "title_aux": "Compare Videos" + } + ], + "https://github.com/svetozarov/AS_LLM_nodes": [ + [ + "AS_ComfyGPT", + "AS_GeminiCaptioning", + "AS_MultimodalGemini" + ], + { + "title_aux": "AS_LLM_nodes" + } + ], + "https://github.com/svntax/ComfyUI-RetroDiffusion-API-Node": [ + [ + "Retro Diffusion API Node" + ], + { + "title_aux": "ComfyUI-RetroDiffusion-API-Node" + } + ], + "https://github.com/sweetndata/ComfyUI-Image-Harmonizer": [ + [ + "harmonizer" + ], + { + "title_aux": "ComfyUI-Image-Harmonizer" + } + ], + "https://github.com/sweetndata/ComfyUI-Reflatent": [ + [ + "RefLatent" + ], + { + "title_aux": "ComfyUI-Reflatent" + } + ], + "https://github.com/sweetndata/ComfyUI-googletrans": [ + [ + "googletrans" + ], + { + "title_aux": "ComfyUI-googletrans" + } + ], + "https://github.com/sweetndata/ComfyUI_Sticker_Compositer": [ + [ + "Sticker_Compositer" + ], + { + "title_aux": "ComfyUI_Sticker_Compositer" + } + ], "https://github.com/syllebra/bilbox-comfyui": [ [ "BilboXLut", @@ -10604,6 +39474,91 @@ "title_aux": "Vid2vid" } ], + "https://github.com/synthetai/ComfyUI-JM-KLing-API": [ + [ + "JM-KLingAI-API/api-key", + "JM-KLingAI-API/hybrid-video", + "JM-KLingAI-API/image-downloader", + "JM-KLingAI-API/image-generation", + "JM-KLingAI-API/image2video", + "JM-KLingAI-API/lip-sync", + "JM-KLingAI-API/lip-sync-async", + "JM-KLingAI-API/multi-image2image", + "JM-KLingAI-API/multi-image2video", + "JM-KLingAI-API/query-status", + "JM-KLingAI-API/text2video", + "JM-KLingAI-API/video-downloader" + ], + { + "title_aux": "ComfyUI-JM-KLing-API" + } + ], + "https://github.com/synthetai/ComfyUI-JM-MiniMax-API": [ + [ + "JM-MiniMax-API/check-video-status", + "JM-MiniMax-API/download-video", + "JM-MiniMax-API/load-audio", + "JM-MiniMax-API/text-to-speech", + "JM-MiniMax-API/video-generation", + "JM-MiniMax-API/voice-cloning", + "JM-MiniMax-API/voice-design" + ], + { + "title_aux": "ComfyUI-JM-MiniMax-API" + } + ], + "https://github.com/synthetai/ComfyUI-JM-Volcengine-API": [ + [ + "VolcengineI2VS2Pro", + "VolcengineImgEditV3", + "volcengine-doubao-seedance", + "volcengine-i2v-s2pro", + "volcengine-img-edit-v3", + "volcengine-seedream-v3" + ], + { + "title_aux": "ComfyUI-JM-Volcengine-API" + } + ], + "https://github.com/synthetai/ComfyUI-ToolBox": [ + [ + "AutoDLDownload", + "CreatePaths", + "FolderDeleter", + "FolderViewe", + "PathOutput" + ], + { + "title_aux": "ComfyUI-ToolBox" + } + ], + "https://github.com/synthetai/ComfyUI_FaceEnhancer": [ + [ + "GFPGANFaceEnhancer", + "GFPGANFolderProcessor" + ], + { + "title_aux": "ComfyUI_FaceEnhancer" + } + ], + "https://github.com/synthetai/ComfyUI_PromptBatcher": [ + [ + "LoadPromptsFromDir", + "SaveTextToFiles" + ], + { + "title_aux": "ComfyUI_PromptBatcher" + } + ], + "https://github.com/sysL-padawan/comfyui-elevenlabs-integration": [ + [ + "ElevenlabsTextToEffect", + "ElevenlabsTextToSpeech" + ], + { + "title_aux": "ComfyUI ElevenLabs API integration" + } + ], "https://github.com/szhublox/ambw_comfyui": [ [ "Auto Merge Block Weighted", @@ -10616,21 +39571,7 @@ "title_aux": "Auto-MBW" } ], - "https://github.com/taabata/Comfy_Syrian_Falcon_Nodes/raw/main/SyrianFalconNodes.py": [ - [ - "CompositeImage", - "KSamplerAlternate", - "KSamplerPromptEdit", - "KSamplerPromptEditAndAlternate", - "LoopBack", - "QRGenerate", - "WordAsImage" - ], - { - "title_aux": "Syrian Falcon Nodes" - } - ], - "https://github.com/taabata/LCM_Inpaint-Outpaint_Comfy": [ + "https://github.com/taabata/LCM_Inpaint_Outpaint_Comfy": [ [ "ComfyNodesToSaveCanvas", "FloatNumber", @@ -10679,6 +39620,25 @@ "title_aux": "LCM_Inpaint-Outpaint_Comfy" } ], + "https://github.com/taabata/SANA_LOWVRAM": [ + [ + "SANADiffuse", + "SANATextEncode" + ], + { + "title_aux": "SANA_LOWVRAM" + } + ], + "https://github.com/takemetosiberia/ComfyUI-SAMURAI--SAM2-": [ + [ + "SAMURAIBoxInputNode", + "SAMURAIPointsInputNode", + "SAMURAIRefineNode" + ], + { + "title_aux": "SAMURAI Nodes for ComfyUI" + } + ], "https://github.com/talesofai/comfyui-browser": [ [ "DifyTextGenerator //Browser", @@ -10691,18 +39651,127 @@ "title_aux": "ComfyUI Browser" } ], - "https://github.com/theUpsider/ComfyUI-Logic": [ + "https://github.com/tanglaoya321/ComfyUI-StoryMaker": [ [ - "Bool", - "Compare", - "DebugPrint", - "Float", - "If ANY execute A else B", - "Int", - "String" + "StoryMakerSinglePortraitNode", + "StoryMakerSwapClothNode", + "StoryMakerTwoPortraitNode" ], { - "title_aux": "ComfyUI-Logic" + "title_aux": "ComfyUI-StoryMaker" + } + ], + "https://github.com/tatookan/comfyui_ssl_gemini_EXP": [ + [ + "SSL_GeminiAPIKeyConfig", + "SSL_GeminiTextPrompt" + ], + { + "title_aux": "comfyui_ssl_gemini_EXP" + } + ], + "https://github.com/tauraloke/ComfyUI-Unfake-Pixels": [ + [ + "PixelArtScaler" + ], + { + "title_aux": "ComfyUI-Unfake-Pixels" + } + ], + "https://github.com/tavyra/ComfyUI_Curves": [ + [ + "Curve Visualizer", + "RGB Curve Editor", + "RGBCurvesAdvanced" + ], + { + "title_aux": "ComfyUI_Curves" + } + ], + "https://github.com/teamalpha-ai/comfyui-image-transformer": [ + [ + "ImageTransformerResizeToMaxPixels" + ], + { + "title_aux": "ComfyUI-ImageTransformer" + } + ], + "https://github.com/tercumantanumut/ComfyUI-Omini-Kontext": [ + [ + "OminiKontextImageEncoder", + "OminiKontextImageScale", + "OminiKontextLatentCombiner", + "OminiKontextLatentDecoder", + "OminiKontextLatentVisualizer", + "OminiKontextLoRALoader", + "OminiKontextLoRAMerge", + "OminiKontextLoRAUnload", + "OminiKontextPipeline", + "OminiKontextPipelineLoader", + "OminiKontextReferenceEncoder", + "OminiKontextSplitPipelineLoader", + "OminiKontextTextEncoder" + ], + { + "title_aux": "ComfyUI-Omini-Kontext" + } + ], + "https://github.com/tetsuoo-online/comfyui-too-xmp-metadata": [ + [ + "ReadXMPMetadata", + "WriteXMPMetadataLossless", + "WriteXMPMetadataTensor" + ], + { + "title_aux": "comfyui-too-xmp-metadata" + } + ], + "https://github.com/teward/ComfyUI-Helper-Nodes": [ + [ + "HelperNodes_CfgScale", + "HelperNodes_CheckpointSelector", + "HelperNodes_MultilineStringLiteral", + "HelperNodes_Prompt", + "HelperNodes_SDXLCommonResolutions", + "HelperNodes_SamplerSelector", + "HelperNodes_SaveImage", + "HelperNodes_SchedulerSelector", + "HelperNodes_SeedSelector", + "HelperNodes_Steps", + "HelperNodes_StringLiteral", + "HelperNodes_VAESelector", + "HelperNodes_WidthHeight" + ], + { + "title_aux": "ComfyUI-Helper-Nodes" + } + ], + "https://github.com/thalismind/ComfyUI-Blend-Nodes": [ + [ + "BlendImageNode" + ], + { + "title_aux": "ComfyUI Blend Image Nodes" + } + ], + "https://github.com/thalismind/ComfyUI-LoadImageWithFilename": [ + [ + "CropImageByMask", + "LoadImageFolder", + "LoadImageWithFilename", + "SaveImageWithFilename" + ], + { + "title_aux": "ComfyUI LoadImageWithFilename" + } + ], + "https://github.com/theAdamColton/ComfyUI-texflow-extension": [ + [ + "Load Texflow Depth Image", + "Save Texflow Image" + ], + { + "title_aux": "ComfyUI-texflow-extension" } ], "https://github.com/theUpsider/ComfyUI-Styles_CSV_Loader": [ @@ -10733,12 +39802,219 @@ "title_aux": "ComfyUI Stable Video Diffusion" } ], - "https://github.com/thedyze/save-image-extended-comfyui": [ + "https://github.com/thedivergentai/divergent_nodes": [ [ - "SaveImageExtended" + "CLIPTokenCounter", + "DivergentGeminiNode", + "KoboldCppApiNode", + "LoraStrengthXYPlot", + "MusiQNode", + "SaveImageEnhancedNode" ], { - "title_aux": "Save Image Extended for ComfyUI" + "title_aux": "Divergent Nodes" + } + ], + "https://github.com/theshubzworld/ComfyUI-FaceCalloutNode": [ + [ + "FaceCalloutEffect", + "IntegratedFaceComposite", + "IsolatedFaceCallout" + ], + { + "title_aux": "ComfyUI-FaceCalloutNode" + } + ], + "https://github.com/theshubzworld/ComfyUI-SD3.5-Latent-Size-Picker": [ + [ + "FluxEmptyLatent", + "SD3_5EmptyLatent" + ], + { + "title_aux": "SD3.5 Empty Latent Size Picker" + } + ], + "https://github.com/theshubzworld/ComfyUI-TogetherVision": [ + [ + "Together Image \ud83c\udfa8", + "TogetherVisionBatchNode", + "TogetherVisionNode", + "TogetherVisionNode \ud83d\udd0d (Enhanced)" + ], + { + "title_aux": "Together Vision Node" + } + ], + "https://github.com/theshubzworld/ComfyUI-ollama_killer": [ + [ + "OllamaKiller" + ], + { + "title_aux": "ComfyUI-ollama_killer" + } + ], + "https://github.com/thezveroboy/ComfyUI-CSM-Nodes": [ + [ + "CSMTextToSpeech", + "LoadCSMCheckpoint", + "LoadCSMTokenizer" + ], + { + "title_aux": "ComfyUI-CSM-Nodes" + } + ], + "https://github.com/thezveroboy/ComfyUI-WAN-ClipSkip": [ + [ + "CLIPSkip" + ], + { + "title_aux": "ComfyUI-WAN-ClipSkip" + } + ], + "https://github.com/thezveroboy/ComfyUI-lut": [ + [ + "ImageToLUT" + ], + { + "title_aux": "ComfyUI-LUT" + } + ], + "https://github.com/thezveroboy/ComfyUI_ACE-Step-zveroboy": [ + [ + "ACEModelLoaderZveroboy", + "ACEStepEditZveroboy", + "ACEStepExtendZveroboy", + "ACEStepGenerateZveroboy", + "ACEStepRepaintZveroboy" + ], + { + "title_aux": "ComfyUI_ACE-Step-zveroboy" + } + ], + "https://github.com/thezveroboy/comfyui-RandomPromptsZveroboy": [ + [ + "RandomPromptsZveroboy" + ], + { + "title_aux": "comfyui-RandomPromptsZveroboy" + } + ], + "https://github.com/thezveroboy/comfyui-random-image-loader": [ + [ + "LoadRandomImage" + ], + { + "title_aux": "ComfyUI Random Image Loader" + } + ], + "https://github.com/thimpat/ThimPatUtils": [ + [ + "CalculateAndDisplay", + "CalculateVideoFrameCount", + "ExtractAudioInfo", + "IntToFloatConverter", + "LoadPathToAudioInfo", + "ResizeVideoFrames" + ], + { + "title_aux": "ComfyUI Multimedia Utilities" + } + ], + "https://github.com/thoddnn/ComfyUI-MLX": [ + [ + "MLXClipTextEncoder", + "MLXDecoder", + "MLXLoadFlux", + "MLXSampler" + ], + { + "title_aux": "ComfyUI MLX Nodes" + } + ], + "https://github.com/tianguanggliu/Utools": [ + [ + "UTools" + ], + { + "title_aux": "comfyui-utools" + } + ], + "https://github.com/tiankuan93/ComfyUI-V-Express": [ + [ + "Load_Audio_Path", + "Load_Audio_Path_From_Video", + "Load_Image_Path", + "Load_Kps_Path", + "Load_Kps_Path_From_Video", + "Load_Video_Path", + "VEINTConstant", + "VEPreview_Video", + "VEStringConstant", + "V_Express_Loader", + "V_Express_Sampler" + ], + { + "title_aux": "V-Express: Conditional Dropout for Progressive Training of Portrait Video Generation" + } + ], + "https://github.com/tianlang0704/ComfyUI-StableProjectorzBridge": [ + [ + "ProjectorzControlnetInput", + "ProjectorzControlnetParameter", + "ProjectorzInitInput", + "ProjectorzOutput", + "ProjectorzParameter", + "ProjectorzStringToFloat", + "ProjectorzStringToInt" + ], + { + "title_aux": "Stable Projectorz Bridge" + } + ], + "https://github.com/tianyuw/ComfyUI-LLM-API": [ + [ + "PromptWithImage" + ], + { + "title_aux": "Custom nodes for llm chat with optional image input" + } + ], + "https://github.com/tighug/comfyui-eagle-feeder": [ + [ + "EagleFeederAnimatedWebp", + "EagleFeederMp4", + "EagleFeederPng" + ], + { + "title_aux": "ComfyUI Eagle Feeder" + } + ], + "https://github.com/tighug/comfyui-rating-checker": [ + [ + "RatingCheckerGantMan", + "RatingCheckerMarqo", + "RatingCheckerNudeNet" + ], + { + "title_aux": "ComfyUI Rating Checker" + } + ], + "https://github.com/tkreuziger/comfyui-claude": [ + [ + "Combine Texts", + "Describe Image", + "Transform Text" + ], + { + "title_aux": "ComfyUI and Claude" + } + ], + "https://github.com/tmagara/ComfyUI-Prediction-Boost": [ + [ + "PredictionBoost" + ], + { + "title_aux": "ComfyUI-Prediction-Boost" } ], "https://github.com/tocubed/ComfyUI-AudioReactor": [ @@ -10752,29 +40028,152 @@ "title_aux": "ComfyUI-AudioReactor" } ], + "https://github.com/tocubed/ComfyUI-EvTexture": [ + [ + "EVTEventsToImage", + "EVTLoadEvTextureModel", + "EVTTextureUpscaleVideo", + "EVTVideoToEvents" + ], + { + "title_aux": "ComfyUI-EvTexture" + } + ], + "https://github.com/tomudo/ComfyUI-ascii-art": [ + [ + "ImageToAscii" + ], + { + "author": "dfl", + "description": "CLIP text encoder that does BREAK prompting like A1111", + "nickname": "CLIP with BREAK", + "title": "CLIP with BREAK syntax", + "title_aux": "ComfyUI-ascii-art" + } + ], + "https://github.com/tooldigital/ComfyUI-Yolo-Cropper": [ + [ + "ToolYoloCropper" + ], + { + "title_aux": "Easy automatic (square) image cropper using Yolo" + } + ], + "https://github.com/toxicwind/ComfyUI-TTools": [ + [ + "TTools Extract JSON", + "TTools SD3 Resolution Solver" + ], + { + "title_aux": "TTools for ComfyUI" + } + ], + "https://github.com/toyxyz/ComfyUI_rgbx_Wrapper": [ + [ + "rgb2x" + ], + { + "title_aux": "ComfyUI_rgbx_Wrapper" + } + ], "https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes": [ [ "CaptureWebcam", + "Depth to normal", + "Direct Screen Capture", + "Export glb", "ImageResize_Padding", "LatentDelay", + "Load Random Text From File", "LoadWebcamImage", - "SaveImagetoPath" + "Remove noise", + "SaveImagetoPath", + "VisualAreaMask" ], { "title_aux": "ComfyUI_toyxyz_test_nodes" } ], + "https://github.com/traugdor/ComfyUI-Riffusion": [ + [ + "RiffusionNode", + "RiffusionToBatchNode" + ], + { + "title_aux": "ComfyUI-Riffusion" + } + ], + "https://github.com/traugdor/ComfyUI-UltimateSDUpscale-GGUF": [ + [ + "UltimateSDUpscaleGGUF" + ], + { + "title_aux": "ComfyUI-UltimateSDUpscale-GGUF" + } + ], "https://github.com/traugdor/ComfyUI-quadMoons-nodes": [ [ + "AnimateDiff Script", + "Apply ControlNet Stack", + "Control Net Stacker", + "Eff. Loader SDXL", + "Efficient Loader", + "HighRes-Fix Script", + "Image Overlay", + "Join XY Inputs of Same Type", + "KSampler (Efficient)", + "KSampler Adv. (Efficient)", + "KSampler SDXL (Eff.)", + "LatentUpscaler", + "LoRA Stack to String converter", + "LoRA Stacker", + "Manual XY Entry Info", + "NNLatentUpscale", + "Noise Control Script", + "Pack SDXL Tuple", + "Tiled Upscaler Script", + "Unpack SDXL Tuple", + "XY Input: Add/Return Noise", + "XY Input: Aesthetic Score", + "XY Input: CFG Scale", + "XY Input: Checkpoint", + "XY Input: Clip Skip", + "XY Input: Control Net", + "XY Input: Control Net Plot", + "XY Input: Denoise", + "XY Input: LoRA", + "XY Input: LoRA Plot", + "XY Input: LoRA Stacks", + "XY Input: Manual XY Entry", + "XY Input: Prompt S/R", + "XY Input: Refiner On/Off", + "XY Input: Sampler/Scheduler", + "XY Input: Seeds++ Batch", + "XY Input: Steps", + "XY Input: VAE", + "XY Plot", + "quadmoonBatchFromLatent", "quadmoonCLIPTextEncode", + "quadmoonCLIPTextEncode2", + "quadmoonChangeBackground", "quadmoonConvertBoolToString", "quadmoonConvertFloatToString", + "quadmoonConvertImageToPrompt", "quadmoonConvertIntToString", "quadmoonConvertNormalizeHW", "quadmoonConvertNumberToString", "quadmoonINTConditionalOperation", "quadmoonKSampler", "quadmoonKSamplerAdvanced", + "quadmoonKSamplerBatched", + "quadmoonLatentImage", + "quadmoonLoadConfigs", + "quadmoonModelLoader", + "quadmoonRotationalSampler", + "quadmoonSaveNeg", + "quadmoonSavePrompt", + "quadmoonSmartNeg", + "quadmoonSmartPrompt", "quadmoonThebutton" ], { @@ -10785,9 +40184,70 @@ "title_aux": "quadmoon's ComfyUI nodes" } ], + "https://github.com/tritant/ComfyUI-Advanced-Photo-Grain": [ + [ + "PhotoFilmGrain" + ], + { + "title_aux": "Advanced Photo Grain" + } + ], + "https://github.com/tritant/ComfyUI_CreaPrompt": [ + [ + "CreaPrompt", + "CreaPrompt List", + "CreaPrompt_0", + "CreaPrompt_1", + "CreaPrompt_2", + "CreaPrompt_3", + "CreaPrompt_4" + ], + { + "title_aux": "ComfyUI-CreaPrompt" + } + ], + "https://github.com/tritant/ComfyUI_Flux_Block_Lora_Merger": [ + [ + "FluxBlockLoraMerger" + ], + { + "title_aux": "Flux Block LoRA Merger" + } + ], + "https://github.com/tritant/ComfyUI_Flux_Lora_Merger": [ + [ + "FluxLoraMerger" + ], + { + "title_aux": "Flux LoRA Merger" + } + ], + "https://github.com/tritant/ComfyUI_Layers_Utility": [ + [ + "LayerSystem" + ], + { + "title_aux": "Layers System" + } + ], + "https://github.com/tritant/ComfyUI_Relight_Img": [ + [ + "RelightNode" + ], + { + "title_aux": "Advanced_Relight_Img" + } + ], + "https://github.com/tritant/ComfyUI_Remove_Banding_Artifacts": [ + [ + "ResampleBandingFix" + ], + { + "title_aux": "Remove Banding Artifacts" + } + ], "https://github.com/trojblue/trNodes": [ [ - "JpgConvertNode", "trColorCorrection", "trLayering", "trRouter", @@ -10797,6 +40257,14 @@ "title_aux": "trNodes" } ], + "https://github.com/troyxmccall/ComfyUI-ScaleToTargetMegapixels": [ + [ + "ScaleToTargetMegapixels" + ], + { + "title_aux": "ComfyUI-ScaleToTargetMegapixels" + } + ], "https://github.com/trumanwong/ComfyUI-NSFW-Detection": [ [ "NSFWDetection" @@ -10831,6 +40299,7 @@ ], "https://github.com/ttulttul/ComfyUI-Tensor-Operations": [ [ + "Fast Image to Noise", "Image Match Normalize", "Latent Match Normalize" ], @@ -10838,82 +40307,61 @@ "title_aux": "ComfyUI-Tensor-Operations" } ], - "https://github.com/tudal/Hakkun-ComfyUI-nodes/raw/main/hakkun_nodes.py": [ + "https://github.com/tungdop2/Comfyui_face_restorer": [ [ - "Any Converter", - "Calculate Upscale", - "Image Resize To Height", - "Image Resize To Width", - "Image size to string", - "Load Random Image", - "Load Text", - "Multi Text Merge", - "Prompt Parser", - "Random Line", - "Random Line 4" + "FaceRestorer", + "FaceRestorerLoader" ], { - "title_aux": "Hakkun-ComfyUI-nodes" + "title_aux": "Face Restorer for ComfyUI" } ], - "https://github.com/turkyden/ComfyUI-Comic": [ + "https://github.com/tungdop2/Comfyui_joy-caption-alpha-two": [ [ - "Image To Comic" + "JoyCaptioner" ], { - "title_aux": "ComfyUI-Comic" + "title_aux": "Joy Caption Alpha Two for ComfyUI" } ], - "https://github.com/turkyden/ComfyUI-Sticker": [ + "https://github.com/turkyden/ComfyUI-SmartCrop": [ [ - "Image To Sticker" + "ImageSmartCrop" ], { - "title_aux": "ComfyUI-Sticker" + "title_aux": "ComfyUI-SmartCrop" } ], "https://github.com/tusharbhutt/Endless-Nodes": [ [ - "ESS Aesthetic Scoring", - "ESS Aesthetic Scoring Auto", - "ESS Combo Parameterizer", - "ESS Combo Parameterizer & Prompts", - "ESS Eight Input Random", - "ESS Eight Input Text Switch", - "ESS Float to Integer", - "ESS Float to Number", - "ESS Float to String", - "ESS Float to X", - "ESS Global Envoy", - "ESS Image Reward", - "ESS Image Reward Auto", - "ESS Image Saver with JSON", - "ESS Integer to Float", - "ESS Integer to Number", - "ESS Integer to String", - "ESS Integer to X", - "ESS Number to Float", - "ESS Number to Integer", - "ESS Number to String", - "ESS Number to X", - "ESS Parameterizer", - "ESS Parameterizer & Prompts", - "ESS Six Float Output", - "ESS Six Input Random", - "ESS Six Input Text Switch", - "ESS Six Integer IO Switch", - "ESS Six Integer IO Widget", - "ESS String to Float", - "ESS String to Integer", - "ESS String to Num", - "ESS String to X", - "\u267e\ufe0f\ud83c\udf0a\u2728 Image Saver with JSON" + "BatchNegativePrompts", + "Eight_Input_Int_Switch", + "Eight_Input_Int_Switch_Widget", + "Eight_Input_Text_Switch", + "EndlessReplicateLatents", + "FluxBatchPrompts", + "FluxKontextBatchPrompts", + "Four_Input_Int_Switch", + "Four_Input_Int_Switch_Widget", + "Four_Input_Text_Switch", + "ImageComplexityScorer", + "ImageNoveltyScorer", + "Image_saver", + "LatentReplicator", + "LatentReplicatorPrompts", + "PromptCounter", + "Random_Prompt_Multipicker", + "Random_Prompt_Selector", + "Randomizer_Chaos", + "Randomizer_Mayhem", + "Randomizer_Pandemonium", + "SDXLBatchPrompts", + "SimpleBatchPrompts", + "Six_Input_Int_Switch", + "Six_Input_Int_Switch_Widget", + "Six_Input_Text_Switch" ], { - "author": "BiffMunky", - "description": "A small set of nodes I created for various numerical and text inputs. Features image saver with ability to have JSON saved to separate folder, parameter collection nodes, two aesthetic scoring models, switches for text and numbers, and conversion of string to numeric and vice versa.", - "nickname": "\u267e\ufe0f\ud83c\udf0a\u2728", - "title": "Endless \ufe0f\ud83c\udf0a\u2728 Nodes", "title_aux": "Endless \ufe0f\ud83c\udf0a\u2728 Nodes" } ], @@ -10926,6 +40374,16 @@ "title_aux": "SDXL Prompt Styler" } ], + "https://github.com/ty0x2333/ComfyUI-Dev-Utils": [ + [ + "TY_ExecutionTime", + "TY_UploadAnything", + "TY_UrlDownload" + ], + { + "title_aux": "ComfyUI-Dev-Utils" + } + ], "https://github.com/uarefans/ComfyUI-Fans": [ [ "Fans Prompt Styler Negative", @@ -10945,6 +40403,77 @@ "title_aux": "comfyui-webcam-node" } ], + "https://github.com/uihp/ComfyUI-String-Chain": [ + [ + "String Chain", + "String Concat", + "String Toggle", + "String Toggle (Multiline)" + ], + { + "title_aux": "ComfyUI-String-Chain" + } + ], + "https://github.com/umiyuki/comfyui-pad-to-eight": [ + [ + "Pad To Eight" + ], + { + "title_aux": "ComfyUI Pad To Eight" + } + ], + "https://github.com/un-seen/comfyui-tensorops": [ + [ + "BackgroundSelect", + "ChannelSelector", + "DownloadAndLoadFlorence2Model", + "DownloadAndLoadSAM2Model", + "FaceSwap", + "FalDifferentialDiffusion", + "FalDiffusion", + "FetchFromRedis", + "FetchJsonFromSurreal", + "Florence2Run", + "Florence2toCoordinates", + "ForegroundMask", + "GetLayerMask", + "MaskImage", + "Sam2AutoSegmentation", + "Sam2Segmentation", + "Sam2VideoSegmentation", + "Sam2VideoSegmentationAddPoints", + "SaveImageToS3", + "SaveJsonToSurreal", + "SaveTextToSurreal", + "SaveToRedis", + "SendImageOnWebSocket", + "SendJsonOnWebSocket", + "SeparateMask" + ], + { + "title_aux": "comfyui-tensorop" + } + ], + "https://github.com/un-seen/comfyui_segment_anything_plus": [ + [ + "GroundingDinoModelLoader (segment anything plus)", + "GroundingDinoSAMSegment (segment anything plus)", + "InvertMask (segment anything plus)", + "IsMaskEmpty (segment anything plus)", + "SAMModelLoader (segment anything plus)" + ], + { + "title_aux": "ComfyUI Segment Anything" + } + ], + "https://github.com/unicough/comfy_openai_image_api": [ + [ + "OpenAI Image API" + ], + { + "title_aux": "OpenAI Image API with gpt-image-1" + } + ], "https://github.com/unwdef/unwdef-nodes-comfyui": [ [ "RandomTextFromMultiline", @@ -10956,6 +40485,102 @@ "title_aux": "unwdef-nodes" } ], + "https://github.com/upseem/comfyui_sun_nodes": [ + [ + "SunxAI_BatchImageLoopCloseChen", + "SunxAI_BatchImageLoopOpenChen" + ], + { + "title_aux": "SunxAI Custom Nodes for ComfyUI" + } + ], + "https://github.com/upseem/comfyui_sunxAI_facetools": [ + [ + "ApplyInstantID", + "ColorAdjustNew(FaceParsing)", + "CropFaces", + "DetectFaces", + "Example", + "InstantIDFaceAnalysis", + "InstantIDModelLoader", + "LoadFaceEmbeds", + "SaveFaceEmbeds", + "SaveImageWebsocketNew", + "SelectFloatByBool", + "VAEDecodeNew", + "VAEEncodeNew", + "WarpFacesBack" + ], + { + "title_aux": "comfyui_sunxAI_facetools" + } + ], + "https://github.com/usrname0/comfyui-holdup": [ + [ + "HoldUp" + ], + { + "title_aux": "comfyui-holdup" + } + ], + "https://github.com/vadimcro/VKRiez-Edge": [ + [ + "VKriezEnhancedEdgePreprocessor", + "VKriezHybridEdgePreprocessor" + ], + { + "title_aux": "VKRiez-Edge" + } + ], + "https://github.com/vahidzxc/va-nodes": [ + [ + "VA_Seed" + ], + { + "title_aux": "va-nodes" + } + ], + "https://github.com/vahlok-alunmid/ComfyUI-ExtendIPAdapterClipVision": [ + [ + "EXTEND_CLIP_VISION_INPUT_SIZE", + "IPAdapterAdvancedSizeAware" + ], + { + "title_aux": "ComfyUI-ExtendIPAdapterClipVision" + } + ], + "https://github.com/vaishnav-vn/va1": [ + [ + "RandomAspectRatioMask" + ], + { + "title_aux": "va1" + } + ], + "https://github.com/valofey/Openrouter-Node": [ + [ + "OpenrouterNode" + ], + { + "title_aux": "OpenRouter Node" + } + ], + "https://github.com/vanche1212/ComfyUI-ZMG-Nodes": [ + [ + "VC_Load_Video_Path_Unified_Output", + "VC_Load_Video_Upload_Unified_Output", + "VC_Video_Combine_Unified_Output", + "Waveform2Audio", + "\ud83d\ude0bAPI Request Node", + "\ud83d\ude0bJSON Parser Node", + "\ud83d\ude0bOld Photo Colorization Node", + "\ud83d\ude0bOllama Request Node", + "\ud83d\ude0bSave Image Unified Output" + ], + { + "title_aux": "ZMG PLUGIN" + } + ], "https://github.com/vanillacode314/SimpleWildcardsComfyUI": [ [ "SimpleConcat", @@ -10969,6 +40594,93 @@ "title_aux": "Simple Wildcard" } ], + "https://github.com/var1ableX/ComfyUI_Accessories": [ + [ + "ACC_AnyCast", + "AccMakeListNode", + "GetMaskDimensions", + "GetRandomDimensions", + "isImageEmpty", + "isMaskEmpty" + ], + { + "title_aux": "ComfyUI_Accessories" + } + ], + "https://github.com/vault-developer/comfyui-image-blender": [ + [ + "ImageBlender" + ], + { + "title_aux": "ImageBlender" + } + ], + "https://github.com/veighnsche/comfyui_gr85": [ + [ + "GR85_CTGPhrases", + "GR85_CTGPhrasesSimple", + "GR85_ContainsWord", + "GR85_FilterAndCombineMasks", + "GR85_Florence2RunCTPG", + "GR85_Florence2toCoordinatesGR85", + "GR85_FluxAttentionSeeker2", + "GR85_FluxAttentionSeeker3", + "GR85_FluxAttentionSeekerGenerator", + "GR85_FluxModelMergeParameters", + "GR85_ImageDimensionResizer", + "GR85_ImageSizer", + "GR85_ImageSizerAll", + "GR85_IntToString", + "GR85_IntegerSequenceModifier", + "GR85_IslandMaskGenerator", + "GR85_MaskBatchToSEGS", + "GR85_MaskConnectMST", + "GR85_MaskSplitter", + "GR85_NextSeed", + "GR85_PasteByMaskGr85", + "GR85_RandomFloat", + "GR85_RandomInt", + "GR85_RandomRatio", + "GR85_RandomizedMaskTransform", + "GR85_Sam2Segmentation", + "GR85_SaveImageFile", + "GR85_SaveTextFile", + "GR85_SeedBasedOutputSelector", + "GR85_ShowText", + "GR85_SimpleWildcardPicker", + "GR85_StrSafe", + "GR85_TagInjector", + "GR85_TagInjectorDuo", + "GR85_TagInjectorLarge", + "GR85_TagInjectorSingle", + "GR85_VerticalWildcardPicker" + ], + { + "title_aux": "comfyui_gr85" + } + ], + "https://github.com/vekitan55/SimpleFlux1Merger": [ + [ + "ExpertFlux1Merge", + "SimplifiedFlux1Merge" + ], + { + "title_aux": "Simple Flux.1 Merger for ComfyUI" + } + ], + "https://github.com/verIdyia/ComfyUI-Qwen-Image-DF11": [ + [ + "DFloat11QwenImageLoader", + "QwenImageAspectRatio", + "QwenImageDecode", + "QwenImagePresetSampler", + "QwenImageSampler", + "QwenImageTextEncode" + ], + { + "title_aux": "ComfyUI Qwen-Image DFloat11 Nodes" + } + ], "https://github.com/victorchall/comfyui_webcamcapture": [ [ "WebcamCapture" @@ -10987,18 +40699,71 @@ ], "https://github.com/violet-chen/comfyui-psd2png": [ [ - "Psd2Png" + "Psd2Png", + "StringInsert" ], { "title_aux": "comfyui-psd2png" } ], - "https://github.com/viperyl/ComfyUI-BiRefNet": [ + "https://github.com/violet0927/ComfyUI-HuggingFaceLoraUploader": [ [ - "BiRefNet" + "HuggingFaceLoraUploader", + "ModelScopeLoraUploader" ], { - "title_aux": "ComfyUI-BiRefNet" + "title_aux": "Hugging Face LoRA Uploader" + } + ], + "https://github.com/viperyl/ComfyUI-RGT": [ + [ + "RGT_Upscale" + ], + { + "title_aux": "ComfyUI-RGT" + } + ], + "https://github.com/visualbruno/ComfyUI-Hunyuan3d-2-1": [ + [ + "Hy3D21CameraConfig", + "Hy3D21ExportMesh", + "Hy3D21GenerateMultiViewsBatch", + "Hy3D21IMRemesh", + "Hy3D21LoadImageWithTransparency", + "Hy3D21LoadMesh", + "Hy3D21MeshGenerationBatch", + "Hy3D21MeshUVWrap", + "Hy3D21MeshlibDecimate", + "Hy3D21MultiViewsGeneratorWithMetaData", + "Hy3D21MultiViewsMeshGenerator", + "Hy3D21PostprocessMesh", + "Hy3D21ResizeImages", + "Hy3D21SimpleMeshlibDecimate", + "Hy3D21UseMultiViews", + "Hy3D21UseMultiViewsFromMetaData", + "Hy3D21VAEConfig", + "Hy3D21VAEDecode", + "Hy3D21VAELoader", + "Hy3DBakeMultiViews", + "Hy3DBakeMultiViewsWithMetaData", + "Hy3DHighPolyToLowPolyBakeMultiViewsWithMetaData", + "Hy3DInPaint", + "Hy3DMeshGenerator", + "Hy3DMultiViewsGenerator" + ], + { + "title_aux": "ComfyUI-Hunyuan3d-2-1" + } + ], + "https://github.com/vivax3794/ComfyUI-Sub-Nodes": [ + [ + "VIV_Default", + "VIV_Subgraph", + "VIV_Subgraph_Inputs", + "VIV_Subgraph_Outputs" + ], + { + "title_aux": "ComfyUI-Sub-Nodes" } ], "https://github.com/vivax3794/ComfyUI-Vivax-Nodes": [ @@ -11014,6 +40779,56 @@ "title_aux": "ComfyUI-Vivax-Nodes" } ], + "https://github.com/vkff5833/ComfyUI-MobileClient": [ + [ + "MobileClient" + ], + { + "title_aux": "ComfyUI-MobileClient" + } + ], + "https://github.com/vkff5833/ComfyUI-PromptConverter": [ + [ + "PromptConverter", + "PromptConverterWithFilter" + ], + { + "title_aux": "ComfyUI-PromptConverter" + } + ], + "https://github.com/vladpro3/ComfyUI_BishaNodes": [ + [ + "CreatePromptsWithTextFromFile", + "EmptyLatentSizePicker", + "LoadDataFromFiles", + "SimpleSizePicker", + "WildcardReplace", + "WildcardReplaceFromFile" + ], + { + "title_aux": "ComfyUI_BishaNodes" + } + ], + "https://github.com/vrgamegirl19/comfyui-vrgamedevgirl": [ + [ + "ColorMatchToReference", + "FastFilmGrain", + "FastLaplacianSharpen", + "FastSobelSharpen", + "FastUnsharpSharpen" + ], + { + "title_aux": "VRGameDevGirl Video Enhancement Nodes" + } + ], + "https://github.com/vsaan212/Comfy-ui-textsplit": [ + [ + "TextSplit" + ], + { + "title_aux": "ComfyUI Text Split Node" + } + ], "https://github.com/vsevolod-oparin/comfyui-kandinsky22": [ [ "comfy-kandinsky22-decoder-loader", @@ -11034,6 +40849,69 @@ "title_aux": "Kandinsky 2.2 ComfyUI Plugin" } ], + "https://github.com/vslinx/ComfyUI-vslinx-nodes": [ + [ + "vsLinx_LoadSelectedImagesBatch", + "vsLinx_LoadSelectedImagesList" + ], + { + "title_aux": "ComfyUI vsLinx Nodes" + } + ], + "https://github.com/vuongminh1907/ComfyUI_ZenID": [ + [ + "ApplyZenID", + "InstantIDFaceAnalysis", + "InstantIDModelLoader", + "ZenIDCombineFace" + ], + { + "title_aux": "ComfyUI_ZenID" + } + ], + "https://github.com/wTechArtist/ComfyUI-CustomNodes": [ + [ + "GPT4 WWL", + "IPAdapter FaceID With Bool", + "IPAdapter Mad Scientist Weight_Type", + "Image Blending Mode Mask", + "Load Image With Bool", + "Load Lora With Shared" + ], + { + "title_aux": "ComfyUI-CustomNodes" + } + ], + "https://github.com/wTechArtist/ComfyUI-StableDelight-weiweiliang": [ + [ + "WWL_StableDelight" + ], + { + "title_aux": "ComfyUI-StableDelight-weiweiliang" + } + ], + "https://github.com/wTechArtist/ComfyUI_VVL_VideoCamera_Advanced": [ + [ + "VGGTVideoCameraNode" + ], + { + "title_aux": "ComfyUI VVL Video Camera Advanced" + } + ], + "https://github.com/wakattac/ComfyUI-AbstractImaGen": [ + [ + "AbstractImageBackground", + "AbstractImageFilledShapes", + "AbstractImageGenerator", + "AbstractImageLines", + "AbstractImageNoise", + "AbstractImagePattern", + "AbstractImagePostprocessing" + ], + { + "title_aux": "ComfyUI-AbstractImaGen" + } + ], "https://github.com/wallish77/wlsh_nodes": [ [ "Alternating KSampler (WLSH)", @@ -11081,6 +40959,152 @@ "title_aux": "wlsh_nodes" } ], + "https://github.com/wasilone11/comfyui-pvm-node": [ + [ + "SyncPVMessengerNode" + ], + { + "title_aux": "ComfyUI Sync PVM Node" + } + ], + "https://github.com/wasilone11/comfyui-sync-lipsync-node": [ + [ + "SyncLipsyncInputNode", + "SyncLipsyncMainNode", + "SyncLipsyncOutputNode" + ], + { + "title_aux": "ComfyUI Sync Lipsync Node" + } + ], + "https://github.com/watarika/ComfyUI-SendToEagle-w-Metadata": [ + [ + "CreateExtraMetadata", + "SendToEagleWithMetadata", + "SendToEagleWithMetadataSimple" + ], + { + "title_aux": "ComfyUI-SendToEagle-w-Metadata" + } + ], + "https://github.com/wawahuy/ComfyUI-HTTP": [ + [ + "Base64ToImageNode", + "HTTPFormDataConcatNode", + "HTTPFormDataNode", + "HTTPFormFileItemNode", + "HTTPFormImageItemNode", + "HTTPFormTextItemNode", + "HTTPGetJSONFieldNode", + "HTTPGetNode", + "HTTPPostFormDataNode", + "HTTPPostJSONNode", + "HTTPPostRawNode", + "ImageToBase64Node" + ], + { + "title_aux": "ComfyUI HTTP - REST API Nodes" + } + ], + "https://github.com/web3nomad/ComfyUI_Invisible_Watermark": [ + [ + "InvisibleWatermarkEncode" + ], + { + "title_aux": "ComfyUI Invisible Watermark" + } + ], + "https://github.com/weberjc/book-cover-finder-comfy": [ + [ + "BookCoverFinder" + ], + { + "title_aux": "BookCoverFinder" + } + ], + "https://github.com/webfiltered/DebugNode-ComfyUI": [ + [ + "WTFDebugNode" + ], + { + "title_aux": "WTF? - a debug node for ComfyUI" + } + ], + "https://github.com/webuilder/WB-ComfyUI-Utils": [ + [ + "WB_AudioDuration" + ], + { + "title_aux": "ComfyUI WB Utils" + } + ], + "https://github.com/weekii/comfyui-save-image-pro": [ + [ + "SaveImageAdvanced", + "SaveImageSimple" + ], + { + "author": "weekii", + "description": "\u4e13\u4e1a\u7ea7\u56fe\u50cf\u4fdd\u5b58\u63d2\u4ef6\uff0c\u652f\u6301\u591a\u683c\u5f0f\u3001\u81ea\u5b9a\u4e49\u547d\u540d\u548c\u9ad8\u7ea7\u529f\u80fd", + "nickname": "Save Image Pro", + "title": "ComfyUI Save Image Pro", + "title_aux": "comfyui-save-image-pro" + } + ], + "https://github.com/weilin9999/WeiLin-Comfyui-Tools": [ + [ + "WeiLinPromptUI", + "WeiLinPromptUIOnlyLoraStack", + "WeiLinPromptUIWithoutLora" + ], + { + "title_aux": "WeiLin-Comfyui-Tools" + } + ], + "https://github.com/welltop-cn/ComfyUI-TeaCache": [ + [ + "CompileModel", + "TeaCache", + "TeaCacheForCogVideoX" + ], + { + "title_aux": "ComfyUI-TeaCache" + } + ], + "https://github.com/wentao-uw/ComfyUI-template-matching": [ + [ + "IsMaskEmptyNode (template matching)", + "TemplateMatching (template matching)" + ], + { + "title_aux": "ComfyUI template matching" + } + ], + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-editor": [ + [ + "AppendageEditorNode", + "OpenposeEditorNode" + ], + { + "title_aux": "ComfyUI-ultimate-openpose-editor" + } + ], + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-estimator": [ + [ + "OpenposeEstimatorNode" + ], + { + "title_aux": "ComfyUI-ultimate-openpose-estimator" + } + ], + "https://github.com/westNeighbor/ComfyUI-ultimate-openpose-render": [ + [ + "OpenposeRenderNode" + ], + { + "title_aux": "ComfyUI-ultimate-openpose-render" + } + ], "https://github.com/whatbirdisthat/cyberdolphin": [ [ "\ud83d\udc2c Gradio ChatInterface", @@ -11101,6 +41125,232 @@ "title_aux": "ComfyUI-Openpose-Editor-Plus" } ], + "https://github.com/whmc76/ComfyUI-RemoveBackgroundSuite": [ + [ + "BiRefNetUltra_RBS", + "MaskProcessDetails_RBS", + "TransparentBackgroundUltra_RBS" + ], + { + "title_aux": "ComfyUI-RemoveBackgroundSuite" + } + ], + "https://github.com/whmc76/ComfyUI-UniversalToolkit": [ + [ + "AudioCropProcessUTK", + "CheckMask_UTK", + "CropByMask_UTK", + "DepthMapBlur_UTK", + "EmptyUnitGenerator_UTK", + "FillMaskedArea_UTK", + "ImageAndMaskPreview_UTK", + "ImageCombineAlpha_UTK", + "ImageConcatenateMulti_UTK", + "ImageConcatenate_UTK", + "ImageMaskScaleAs_UTK", + "ImagePadForOutpaintMasked_UTK", + "ImageRatioDetector_UTK", + "ImageRemoveAlpha_UTK", + "ImageScaleByAspectRatio_UTK", + "ImageScaleRestore_UTK", + "ImitationHueNode_UTK", + "LoadAudioPlusFromPath_UTK", + "LoadKontextPresets_UTK", + "LoraInfo_UTK", + "MaskAdd_UTK", + "MaskAnd_UTK", + "MaskSub_UTK", + "MathExpression_UTK", + "PurgeVRAM_UTK", + "RestoreCropBox_UTK", + "TextBoxNode_UTK", + "TextConcatenate_UTK", + "ThinkRemover_UTK", + "Video_Prompt_Helper" + ], + { + "title_aux": "ComfyUI-UniversalToolkit" + } + ], + "https://github.com/wildminder/ComfyUI-Chatterbox": [ + [ + "ChatterboxTTS", + "ChatterboxVC" + ], + { + "title_aux": "ComfyUI-Chatterbox" + } + ], + "https://github.com/wildminder/ComfyUI-KEEP": [ + [ + "KEEP_FaceUpscaleImage", + "KEEP_ModelLoader", + "KEEP_ProcessImageSequence" + ], + { + "title_aux": "ComfyUI-KEEP" + } + ], + "https://github.com/wildminder/ComfyUI-VibeVoice": [ + [ + "VibeVoiceTTS" + ], + { + "title_aux": "ComfyUI-VibeVoice" + } + ], + "https://github.com/willchil/ComfyUI-Environment-Visualizer": [ + [ + "EnvironmentVisualizer", + "InterpolateEdges", + "MapEquirectangular" + ], + { + "title_aux": "ComfyUI-Environment-Visualizer" + } + ], + "https://github.com/windfancy/zsq_prompt": [ + [ + "BatchPromptJson", + "BatchPromptSelector", + "ConnectionString", + "DoubleCLIPEncode", + "FloatMathOperation", + "ImageAddText", + "ImageEmpty", + "IndexString", + "IntMathOperation", + "JoinImageBatch", + "LLMImage", + "LLMText", + "OptionString", + "PortraitStyler", + "SaveJpgImage", + "StringInput", + "ZSQPixelLatent", + "ZSQRatioLatent", + "ZSQShowINT", + "ZSQShowText", + "checkpoint_sampler", + "controlnetStack", + "controlnetStack_2", + "imageConcat", + "imageCount", + "imageCrop", + "imageDetailTransfer", + "imageFilter", + "imageFlip", + "imageGaussianBlur", + "imageHug", + "imageRGB", + "imageRatio", + "imageResize", + "imageRotate", + "imageSaveSimple", + "imageScaleDown", + "imageScaleDownBy", + "imageSharpen", + "imageSize", + "imageTilesFromBatch", + "imagesSplitImage", + "loraStack", + "loraStack_2", + "stylesSelector", + "zsqcheckpoint", + "zsqcontrolnet", + "zsqsampler" + ], + { + "title_aux": "zsq_prompt" + } + ], + "https://github.com/wings6407/ComfyUI_HBH-image_overlay": [ + [ + "HBH_ImageCoordinatePicker", + "HBH_ImageCoordinatePreview", + "HBH_ImageInteractivePicker", + "HBH_ImageOverlay", + "HBH_ImageOverlayPreview", + "HBH_ImagePreview" + ], + { + "title_aux": "ComfyUI_HBH-image_overlay" + } + ], + "https://github.com/wirytiox/ComfyUI-SelectStringFromListWithIndex": [ + [ + "StringFromList" + ], + { + "title_aux": "ComfyUI-SelectStringFromListWithIndex" + } + ], + "https://github.com/withmpx/mpx-comfyui-nodes": [ + [ + "Agent_PickBestImageFromList", + "Agent_ReflectionOnImageList", + "ImagesTo3DModels", + "LoadImageData", + "ObjectListToImageList", + "PickFromList", + "SaveModelsToDisk", + "ShowList", + "ShowString", + "StringListToStringList", + "StringListToText", + "TextToImage", + "TextToList", + "TextToObjectList", + "TextToScriptBreakdown", + "TextToStory", + "TextToText", + "TransformObjectList", + "TwoTextToText" + ], + { + "title_aux": "mpx-comfyui-nodes" + } + ], + "https://github.com/wjl0313/ComfyUI_KimNodes": [ + [ + "Add_ImageMetadata", + "BoundingBox_Cropper", + "Crop_Paste", + "Distribute_Icons", + "Edge_Element_Cropper", + "ExtractDifferenceLora", + "IconDistributeByGrid", + "Icon_Position_Cropper", + "Image_Classification", + "Image_PixelFilter", + "Image_Resize", + "KimFilter", + "KimHDR", + "LoRA_Metadata_Reader", + "LoadImage_Metadata", + "Manual_MetadataInput", + "Mask_Noise_Cleaner", + "Mask_White_Area_Ratio", + "MaxLength_ImageListSelector", + "Percentage_Cropper", + "Pixelate_Filter", + "Prompt_Text", + "Save_Image", + "Seamless_Icon_Generator", + "Split_Mask", + "Text_Match", + "Text_Processor", + "Transparent_Area_Cropper", + "Transparent_Image_Filter", + "Whitening_Node", + "YOLOWorld_Match", + "YOLO_Crop", + "YOLO_Multi_Crop" + ], + { + "title_aux": "ComfyUI_KimNodes" + } + ], "https://github.com/wmatson/easy-comfy-nodes": [ [ "EZAssocDictNode", @@ -11111,13 +41361,49 @@ "EZLoadImgBatchFromUrlsNode", "EZLoadImgFromUrlNode", "EZRemoveImgBackground", - "EZS3Uploader", - "EZVideoCombiner" + "EZS3Uploader" ], { "title_aux": "easy-comfy-nodes" } ], + "https://github.com/wmpmiles/comfyui-some-image-processing-stuff": [ + [ + "Blur Mask", + "Color Grading", + "Latent Zero Mask", + "Mask-Crop Inpaint | Post", + "Mask-Crop Inpaint | Pre", + "Mask-Crop | Post", + "Mask-Crop | Pre", + "Resample Image", + "Resample Latent", + "Resample Mask", + "Resampler | Area", + "Resampler | Jinc-Lanczos", + "Resampler | Lanczos", + "Resampler | Mitchell-Netravali", + "Resampler | Nearest-Neighbor", + "Resampler | Triangle", + "Scaler | Area", + "Scaler | Fixed", + "Scaler | Megapixels", + "Scaler | Pixel Deltas", + "Scaler | Side", + "Scaler | Sides Unlinked" + ], + { + "title_aux": "comfyui-some-image-processing-stuff" + } + ], + "https://github.com/woct0rdho/ComfyUI-RadialAttn": [ + [ + "PatchRadialAttn" + ], + { + "title_aux": "ComfyUI-RadialAttn" + } + ], "https://github.com/wolfden/ComfyUi_PromptStylers": [ [ "SDXLPromptStylerAll", @@ -11168,12 +41454,47 @@ "title_aux": "ComfyUi_String_Function_Tree" } ], - "https://github.com/wsippel/comfyui_ws/raw/main/sdxl_utility.py": [ + "https://github.com/wootwootwootwoot/ComfyUI-RK-Sampler": [ [ - "SDXLResolutionPresets" + "RungeKuttaSampler" ], { - "title_aux": "SDXLResolutionPresets" + "author": "wootwootwootwoot", + "description": "Batched Runge-Kutta Samplers for ComfyUI", + "nickname": "ComfyUI-RK-Sampler", + "title": "ComfyUI-RK-Sampler", + "title_aux": "ComfyUI-RK-Sampler" + } + ], + "https://github.com/wqjuser/ComfyUI-Chat-Image": [ + [ + "LLMImageDescription" + ], + { + "title_aux": "ComfyUI-Chat-Image" + } + ], + "https://github.com/wu12023/ComfyUI-Image-Evaluation": [ + [ + "Clip_Score-\ud83d\udd2c", + "Dino_Score-\ud83d\udd2c" + ], + { + "title_aux": "ComfyUI-Image-Evaluation" + } + ], + "https://github.com/wujm424606/ComfyUi-Ollama-YN": [ + [ + "MyOllamaDeleteModel", + "MyOllamaGenerate", + "MyOllamaGenerateAdvance", + "MyOllamaLoadContext", + "MyOllamaSaveContext", + "MyOllamaSpecialGenerateAdvance", + "MyOllamaVision" + ], + { + "title_aux": "ComfyUi-Ollama-YN" } ], "https://github.com/wutipong/ComfyUI-TextUtils": [ @@ -11195,6 +41516,14 @@ "title_aux": "ComfyUI-Simple-Aspect-Ratio" } ], + "https://github.com/wywywywy/ComfyUI-pause": [ + [ + "PauseWorkflowNode" + ], + { + "title_aux": "ComfyUI Pause Workflow Node" + } + ], "https://github.com/xXAdonesXx/NodeGPT": [ [ "AppendAgent", @@ -11238,6 +41567,61 @@ "title_aux": "NodeGPT" } ], + "https://github.com/xfgexo/EXO-Custom-ComfyUI-Nodes": [ + [ + "ComfyUI_EXO_Clip_Text_Encode", + "ComfyUI_EXO_DisplayText", + "ComfyUI_EXO_FluxSampler", + "ComfyUI_EXO_FluxSamplerMini", + "ComfyUI_EXO_ImageRescale", + "ComfyUI_EXO_LatentImageSize", + "ComfyUI_EXO_LatentImageSizeX", + "ComfyUI_EXO_Notes", + "ComfyUI_EXO_NumericValue", + "ComfyUI_EXO_PromptBuilderDeluxe", + "ComfyUI_EXO_SaveText", + "ComfyUI_EXO_TranslateText" + ], + { + "title_aux": "EXO Custom ComfyUI Nodes" + } + ], + "https://github.com/xhiroga/ComfyUI-FramePackWrapper_PlusOne": [ + [ + "DownloadAndLoadFramePackModel", + "FramePackFindNearestBucket", + "FramePackLoraSelect", + "FramePackSampler", + "FramePackSampler_F1", + "FramePackSingleFrameResizeSampler", + "FramePackSingleFrameSampler", + "FramePackTimestampedTextEncode", + "FramePackTorchCompileSettings", + "LoadFramePackModel", + "ReferenceEmbedsList", + "ReferenceLatentList", + "ReferenceMaskList" + ], + { + "title_aux": "ComfyUI-FramePackWrapper_PlusOne" + } + ], + "https://github.com/xiaogui8dangjia/Comfyui-imagetoSTL": [ + [ + "ImageToSTLNode" + ], + { + "title_aux": "Comfyui-imagetoSTL" + } + ], + "https://github.com/xiaowc-lib/comfyui-dynamic-params": [ + [ + "DynamicParams" + ], + { + "title_aux": "Comfyui-Dynamic-Params" + } + ], "https://github.com/xiaoxiaodesha/hd_node": [ [ "Combine HDMasks", @@ -11252,7 +41636,47 @@ "title_aux": "hd-nodes-comfyui" } ], - "https://github.com/xliry/ComfyUI_SendDiscord/raw/main/SendDiscord.py": [ + "https://github.com/xingBaGan/ComfyUI-connect-ui": [ + [ + "SaveImageByWebsocket", + "reciveImageByWebsocket" + ], + { + "title_aux": "ComfyUI-connect-ui" + } + ], + "https://github.com/xlinx/ComfyUI-decadetw-auto-messaging-realtime": [ + [ + "Auto-MSG-ALL", + "Auto-MSG-Discord-Bot", + "Auto-MSG-Line-Notify", + "Auto-MSG-Telegram-Bot" + ], + { + "title_aux": "ComfyUI-decadetw-auto-messaging-realtime" + } + ], + "https://github.com/xlinx/ComfyUI-decadetw-auto-prompt-llm": [ + [ + "Auto-LLM-Chat", + "Auto-LLM-Text", + "Auto-LLM-Text-Vision", + "Auto-LLM-Vision" + ], + { + "title_aux": "ComfyUI-decadetw-auto-prompt-llm" + } + ], + "https://github.com/xlinx/ComfyUI-decadetw-spout-syphon-im-vj": [ + [ + "Im-SD-VJ-SPOUT", + "Im-SD-VJ-SYPHON" + ], + { + "title_aux": "ComfyUI-decadetw-spout-syphon-im-vj" + } + ], + "https://github.com/xliry/ComfyUI_SendDiscord": [ [ "SendDiscord" ], @@ -11260,6 +41684,234 @@ "title_aux": "ComfyUI_SendDiscord" } ], + "https://github.com/xmarre/TorchCompileModel_LoRASafe": [ + [ + "TorchCompileModel_LoRASafe" + ], + { + "title_aux": "LoRA-Safe TorchCompile" + } + ], + "https://github.com/xobiomesh/ComfyUI_xObiomesh": [ + [ + "OllamaModelSelect", + "OllamaTextGen", + "ShowText_xO", + "xO_ComfyUIPortRunner", + "xO_GetImageFilename", + "xO_LoadRecentFile", + "xO_TestScriptRunner", + "xO_WorkflowRunner" + ], + { + "title_aux": "ComfyUI Neural Nodes" + } + ], + "https://github.com/xs315431/Comfyui_Get_promptId": [ + [ + "GetPromptId", + "SuccessCallback", + "UploadVideo" + ], + { + "title_aux": "Comfyui_Get_promptId" + } + ], + "https://github.com/xuhongming251/ComfyUI-GPEN": [ + [ + "FaceEnhancement" + ], + { + "title_aux": "ComfyUI-GPEN" + } + ], + "https://github.com/xuhongming251/ComfyUI-Jimeng": [ + [ + "JimengAPIClient", + "JimengFirstLastFrame2Video", + "JimengImage2Video", + "PreviewVideoFromUrl" + ], + { + "title_aux": "ComfyUI-Jimeng" + } + ], + "https://github.com/xuhongming251/ComfyUI-MuseTalkUtils": [ + [ + "MuseTalkPostprocess", + "MuseTalkPreprocess", + "MuseTalkTrain", + "MuseTalkTrainPreprocess", + "MuseTalkUncropMask" + ], + { + "title_aux": "ComfyUI-MuseTalkUtils" + } + ], + "https://github.com/xuhongming251/ComfyUI_Camera": [ + [ + "Load Image From Local Camera", + "Save Image To Local Camera" + ], + { + "title_aux": "ComfyUI_Camera" + } + ], + "https://github.com/yamanacn/comfyui_kontext_Analyze": [ + [ + "KontextDuoImageAnalyzer" + ], + { + "title_aux": "ComfyUI Kontext Duo Image Analyzer" + } + ], + "https://github.com/yanhuifair/comfyui-janus": [ + [ + "JanusProImageGenerationNode", + "JanusProModelLoaderNode", + "JanusProMultimodalUnderstandingNode" + ], + { + "title_aux": "comfyui-janus" + } + ], + "https://github.com/yanlang0123/ComfyUI_Lam": [ + [ + "AppParams", + "AspectRatio", + "AudioBeforeAfterSilence", + "AutioInfo", + "AutioPath", + "DoWhileEnd", + "DoWhileStart", + "EasyPromptSelecto", + "FaceFusion", + "ForEnd", + "ForInnerEnd", + "ForInnerStart", + "ForStart", + "GLM3Prompt", + "IdentifyingQR", + "IfInnerExecute", + "Image2Video", + "ImageAddMask", + "ImageBlank", + "ImageClone", + "ImageCropFaces", + "ImageLama", + "ImageToMasks", + "JyAnimationGroup", + "JyAnimationIn", + "JyAnimationOut", + "JyAudio2CaptionsGroup", + "JyAudioNative", + "JyAudioTrack", + "JyCaptionsNative", + "JyCaptionsTrack", + "JyEffectNative", + "JyEffectTrack", + "JyMediaAnimation", + "JyMediaNative", + "JyMediaTrack", + "JyMultiAudioGroup", + "JyMultiCaptionsGroup", + "JyMultiEffectGroup", + "JyMultiMediaGroup", + "JySaveDraft", + "JySaveNoOutDraft", + "JySaveNotOutDraft", + "JySaveOutDraft", + "JyTransition", + "LAM.OpenPoseEditorPlus", + "LamCommonHidden", + "LamCommonNames", + "LamCommonPrint", + "LamCommonPrintNoOutput", + "LamFaceAnalysisModels", + "LamGetPngInfo", + "LamHeyGemNode", + "LamHeyGemQueryNode", + "LamLoadImageBase64", + "LamLoadPathImage", + "LamLoadVideo", + "LamReadFileList", + "LamSamplerName", + "LamSaveAudio", + "LamSaveOnly", + "LamSaveVideo", + "LamScheduler", + "LamSwitcherCase", + "LamViewVideo", + "LamViewVideoOut", + "LoadDirImgPaths", + "LoadImagePath", + "LoadReplaceImage", + "LongTextToList", + "MultiControlNetApply", + "MultiGLIGENTextBoxApply", + "MultiIPAdapterRegional", + "MultiIntFormula", + "MultiMergeAudio", + "MultiMergeVideos", + "MultiParamFormula", + "MultiTextConcatenate", + "MultiTextEncode", + "MultiTextEncodeAdvanced", + "MultiTextSelelct", + "MultiTextSetArea", + "MultiTextSetGligen", + "MultiTextSetMask", + "OutDoWhileEnd", + "OutDoWhileStart", + "PreviewImageLam", + "PromptTranslator", + "QRCode", + "SaveImageLam", + "SaveImgOutputLam", + "SectionEnd", + "SectionStart", + "StyleSelecto", + "Text2AutioEdgeTts", + "TextListSelelct", + "VideoAddAudio", + "VideoExtractAudio", + "VideoFaceFusion", + "VideoPath", + "WaitImagSelector", + "ZhPromptTranslator" + ], + { + "title_aux": "ComfyUI_Lam" + } + ], + "https://github.com/yasser-baalla/comfyUI-SemanticImageFetch": [ + [ + "ColorGradeSampler", + "ColorGrading", + "SemanticImageFetch" + ], + { + "title_aux": "comfyUI-SemanticImageFetch" + } + ], + "https://github.com/ycchanau/ComfyUI_Preview_Magnifier": [ + [ + "YC.ImageComparerMagnifier", + "YC.PreviewImageMagnifier", + "YC.XYPreviewImageMagnifier" + ], + { + "title_aux": "ComfyUI Preview Magnifier" + } + ], + "https://github.com/ycyy/ComfyUI-YCYY-LoraInfo": [ + [ + "LoraInfo" + ], + { + "title_aux": "ComfyUI-YCYY-LoraInfo" + } + ], "https://github.com/yffyhk/comfyui_auto_danbooru": [ [ "GetDanbooru", @@ -11269,6 +41921,235 @@ "title_aux": "comfyui_auto_danbooru" } ], + "https://github.com/yhayano-ponotech/ComfyUI-Fal-API-Flux": [ + [ + "FalAPIFluxControlNetConfigNode", + "FalAPIFluxControlNetUnionConfigNode", + "FalAPIFluxDevCannyWithLoraNode", + "FalAPIFluxDevImageToImageNode", + "FalAPIFluxDevNode", + "FalAPIFluxDevWithLoraAndControlNetImageToImageNode", + "FalAPIFluxDevWithLoraAndControlNetInpaintNode", + "FalAPIFluxDevWithLoraAndControlNetNode", + "FalAPIFluxDevWithLoraImageToImageNode", + "FalAPIFluxDevWithLoraInpaintNode", + "FalAPIFluxDevWithLoraNode", + "FalAPIFluxLoraConfigNode", + "FalAPIFluxProCannyNode", + "FalAPIFluxProDepthNode", + "FalAPIFluxProFillNode", + "FalAPIFluxProNode", + "FalAPIFluxProReduxNode", + "FalAPIFluxProV11Node", + "FalAPIFluxProV11UltraNode" + ], + { + "title_aux": "ComfyUI-Fal-API-Flux" + } + ], + "https://github.com/yhayano-ponotech/comfyui-save-image-local": [ + [ + "Local Save" + ], + { + "title_aux": "ComfyUI Local Save Node" + } + ], + "https://github.com/yhayano-ponotech/comfyui-stability-ai-api": [ + [ + "Preview3DModel", + "Save3DModel", + "StabilityControlSketch", + "StabilityControlStructure", + "StabilityControlStyle", + "StabilityEdit", + "StabilityImageCore", + "StabilityImageSD3", + "StabilityImageToVideo", + "StabilityImageUltra", + "StabilityUpscaleConservative", + "StabilityUpscaleCreative", + "StabilityUpscaleFast", + "StableFast3D", + "StablePointAware3D" + ], + { + "title_aux": "ComfyUI-Stability-AI-API" + } + ], + "https://github.com/yichengup/ComfyUI-LinearTransition": [ + [ + "GradientTransition", + "LinearTransition" + ], + { + "title_aux": "ComfyUI-LinearTransition" + } + ], + "https://github.com/yichengup/ComfyUI-YCNodes": [ + [ + "AdvancedImageSelector", + "DynamicThreshold", + "ImageBatchSelector", + "ImageBlendResize", + "ImageIC", + "ImageICAdvanced", + "ImageLoaderAdvanced", + "ImageMirror", + "ImageMosaic", + "ImageRotate", + "ImageSelector", + "ImageUpscaleTiled", + "IrregularToEllipseMask", + "LoadImagesFromFolder", + "MaskBatchComposite", + "MaskBatchCopy", + "MaskContourFillNode", + "MaskCropRestore_YC", + "MaskCrop_YC", + "MaskFilterBySolidity", + "MaskFromBatch", + "MaskPreviewNode", + "MaskRepeatBatch", + "MaskSmartValleySplit", + "MaskSplitFilter", + "MaskTopNFilter", + "TextKeyword", + "YC Extract Number", + "YC Mask Condition Switch", + "YC Seed List", + "YC Super Selector", + "YC Text Condition Switch", + "YC Text Index Switch", + "YC Universal Gate", + "YCImageSmartCrop", + "YCImageSmartPad", + "YCImageTile", + "YCImageUntile", + "YCMaskComposite", + "YCRemapMaskRange", + "YCTextImageGenerator", + "YC_FiveTextCombineNode", + "YC_Image_Save", + "YC_SingleTextNode", + "YC_textReplaceNode" + ], + { + "title_aux": "ComfyUI-YCNodes" + } + ], + "https://github.com/yichengup/ComfyUI_SwiftCut": [ + [ + "SelectImages", + "SelectImagesAdvanced", + "YCImageBatchBlend", + "YCImageOverlayBlend", + "YCImagePushPullLens" + ], + { + "title_aux": "ComfyUI_SwiftCut" + } + ], + "https://github.com/yichengup/ComfyUI_Yc_JanusPro": [ + [ + "ImageAnalyzer", + "JanusChatAnalyzer", + "JanusImageGenerator", + "JanusProLoader" + ], + { + "title_aux": "ComfyUI_Yc_JanusPro" + } + ], + "https://github.com/yichengup/Comfyui-Deepseek": [ + [ + "DeepseekAdvancedNode", + "DeepseekNode", + "DeepseekReasonerNode", + "SiliconDeepseekChat", + "SiliconDeepseekReasoner" + ], + { + "title_aux": "Comfyui-Deepseek" + } + ], + "https://github.com/yichengup/Comfyui-Ycanvas": [ + [ + "CanvasNode" + ], + { + "title_aux": "Comfyui-Ycanvas" + } + ], + "https://github.com/yichengup/Comfyui_Flux_Style_Adjust": [ + [ + "StyleModelAdvancedApply" + ], + { + "title_aux": "Comfyui_Flux_Style_Adjust (Redux)" + } + ], + "https://github.com/yichengup/Comfyui_Redux_Advanced": [ + [ + "StyleAdvancedApply", + "YC_LG_Redux" + ], + { + "title_aux": "Comfyui_Redux_Advanced" + } + ], + "https://github.com/yichengup/comfyui-face-liquify": [ + [ + "FaceLiquifyNode" + ], + { + "title_aux": "comfyui-face-liquify" + } + ], + "https://github.com/yiwangsimple/ComfyUI_DW_Chat": [ + [ + "DeepSeekChatNode", + "DeepSeekTranslator", + "ErrorLogNode", + "ExecutionTime", + "FileBasedChatNode", + "FluxPromptEngineeringNode", + "Gemini1_5Text", + "Gemini1_5Vision", + "GeminiFluxPrompt", + "Gemma2PromptNode", + "GemmaDialogueNode", + "GithubLinkNode", + "GroqChatNode", + "MoonshotMultiChatNode", + "MoonshotSingleChatNode", + "OllamaImageToText", + "OllamaPromptExtractor", + "OllamaTextToText", + "PaliGemma3bCaptioner", + "PromptEngineeringNode", + "PromptExtractorNode", + "Qwen2VLCaption", + "Qwen2VLLocalCaption", + "SD3LongCaptionerV2", + "SDPromptAgent", + "dwimage2" + ], + { + "title_aux": "ComfyUI_DW_Chat" + } + ], + "https://github.com/yiwangsimple/florence_dw": [ + [ + "Florence2", + "Florence2Postprocess", + "Florence2PostprocessAll", + "LoadFlorence2Model" + ], + { + "title_aux": "florence_dw" + } + ], "https://github.com/yolain/ComfyUI-Easy-Use": [ [ "dynamicThresholdingFull", @@ -11277,6 +42158,7 @@ "easy XYInputs: Checkpoint", "easy XYInputs: ControlNet", "easy XYInputs: Denoise", + "easy XYInputs: FluxGuidance", "easy XYInputs: Lora", "easy XYInputs: ModelMergeBlocks", "easy XYInputs: NegativeCond", @@ -11290,29 +42172,58 @@ "easy XYPlot", "easy XYPlotAdvanced", "easy a1111Loader", + "easy ab", + "easy anythingIndexSwitch", + "easy anythingInversedSwitch", + "easy applyBrushNet", + "easy applyFooocusInpaint", + "easy applyInpaint", + "easy applyPowerPaint", + "easy batchAnything", + "easy blocker", "easy boolean", "easy cascadeKSampler", "easy cascadeLoader", + "easy ckptNames", "easy cleanGpuUsed", "easy clearCacheAll", "easy clearCacheKey", "easy comfyLoader", "easy compare", + "easy conditioningIndexSwitch", "easy controlnetLoader", + "easy controlnetLoader++", "easy controlnetLoaderADV", + "easy controlnetNames", + "easy controlnetStack", + "easy controlnetStackApply", "easy convertAnything", "easy detailerFix", - "easy dynamiCrafterLoader", "easy float", - "easy fooocusInpaintLoader", + "easy fluxLoader", + "easy forLoopEnd", + "easy forLoopStart", "easy fullCascadeKSampler", "easy fullLoader", "easy fullkSampler", "easy globalSeed", "easy hiresFix", + "easy humanSegmentation", + "easy hunyuanDiTLoader", + "easy icLightApply", "easy if", + "easy ifElse", + "easy imageBatchToImageList", "easy imageChooser", + "easy imageColorMatch", + "easy imageConcat", + "easy imageCount", + "easy imageCropFromMask", + "easy imageDetailTransfer", + "easy imageIndexSwitch", "easy imageInsetCrop", + "easy imageInterrogator", + "easy imageListToImageBatch", "easy imagePixelPerfect", "easy imageRatio", "easy imageRemBg", @@ -11320,12 +42231,22 @@ "easy imageScaleDown", "easy imageScaleDownBy", "easy imageScaleDownToSize", + "easy imageScaleToNormPixels", "easy imageSize", "easy imageSizeByLongerSide", "easy imageSizeBySide", + "easy imageSplitGrid", "easy imageSplitList", + "easy imageSplitTiles", "easy imageSwitch", + "easy imageTilesFromBatch", + "easy imageToBase64", "easy imageToMask", + "easy imageUncropFromBBOX", + "easy imagesCountInDirectory", + "easy imagesSplitImage", + "easy indexAnything", + "easy injectNoiseToLatent", "easy instantIDApply", "easy instantIDApplyADV", "easy int", @@ -11333,24 +42254,50 @@ "easy ipadapterApplyADV", "easy ipadapterApplyEmbeds", "easy ipadapterApplyEncoder", + "easy ipadapterApplyFaceIDKolors", + "easy ipadapterApplyFromParams", + "easy ipadapterApplyRegional", "easy ipadapterStyleComposition", + "easy isFileExist", + "easy isMaskEmpty", + "easy isNone", "easy isSDXL", "easy joinImageBatch", + "easy joyCaption2API", + "easy joyCaption3API", "easy kSampler", + "easy kSamplerCustom", "easy kSamplerDownscaleUnet", "easy kSamplerInpainting", "easy kSamplerLayerDiffusion", "easy kSamplerSDTurbo", "easy kSamplerTiled", + "easy kolorsLoader", "easy latentCompositeMaskedWithCond", "easy latentNoisy", + "easy lengthAnything", + "easy loadImageBase64", + "easy loadImagesForLoop", + "easy loraNames", + "easy loraPromptApply", "easy loraStack", + "easy loraStackApply", + "easy loraSwitcher", + "easy makeImageForICLora", + "easy mathFloat", + "easy mathInt", + "easy mathString", + "easy mochiLoader", "easy negative", + "easy outputToList", "easy pipeBatchIndex", "easy pipeEdit", + "easy pipeEditPrompt", "easy pipeIn", "easy pipeOut", "easy pipeToBasicPipe", + "easy pixArtLoader", + "easy pixels", "easy portraitMaster", "easy poseEditor", "easy positive", @@ -11365,26 +42312,44 @@ "easy preSamplingLayerDiffusionADDTL", "easy preSamplingNoiseIn", "easy preSamplingSdTurbo", + "easy prompt", + "easy promptAwait", "easy promptConcat", "easy promptLine", "easy promptList", "easy promptReplace", + "easy pulIDApply", + "easy pulIDApplyADV", "easy rangeFloat", "easy rangeInt", + "easy removeLocalImage", "easy samLoaderPipe", + "easy saveImageLazy", + "easy saveText", + "easy saveTextLazy", "easy seed", + "easy seedList", "easy showAnything", + "easy showAnythingLazy", "easy showLoaderSettingsNames", "easy showSpentTime", "easy showTensorShape", + "easy sleep", + "easy sliderControl", "easy stableDiffusion3API", "easy string", + "easy styleAlignedBatchAlign", "easy stylesSelector", "easy sv3dLoader", "easy svdLoader", + "easy textIndexSwitch", + "easy textSwitch", "easy ultralyticsDetectorPipe", "easy unSampler", + "easy whileLoopEnd", + "easy whileLoopStart", "easy wildcards", + "easy wildcardsMatrix", "easy xyAny", "easy zero123Loader" ], @@ -11392,6 +42357,14 @@ "title_aux": "ComfyUI Easy Use" } ], + "https://github.com/yolanother/ComfyUI-Save16bitPng": [ + [ + "SaveImageARGB16PNG" + ], + { + "title_aux": "Save Uncompressed 16 Bit PNG" + } + ], "https://github.com/yolanother/DTAIComfyImageSubmit": [ [ "DTSimpleSubmitImage", @@ -11466,6 +42439,72 @@ "title_aux": "Image to Text Node" } ], + "https://github.com/yondonfu/ComfyUI-Background-Edit": [ + [ + "BackgroundColor", + "Composite", + "GaussianBlur" + ], + { + "title_aux": "ComfyUI-Background-Edit" + } + ], + "https://github.com/yondonfu/ComfyUI-Torch-Compile": [ + [ + "TorchCompileLoadControlNet", + "TorchCompileLoadVAE" + ], + { + "title_aux": "ComfyUI-Torch-Compile" + } + ], + "https://github.com/yorkane/ComfyUI-KYNode": [ + [ + "KY_AnyByIndex", + "KY_AnyToList", + "KY_BBoxPosition", + "KY_BBoxToXYWH", + "KY_BBoxesToSAM2", + "KY_CreateMask", + "KY_CreateVideoObjectFromPath", + "KY_FilePathAnalyzer-", + "KY_FileSequenceAnalyzer", + "KY_First_NOT_EMPTY", + "KY_ImageCropByBBox", + "KY_JSONToBBox", + "KY_JoinToString", + "KY_LoadImageFrom", + "KY_LoadImagesFromFolder", + "KY_LoadVideoByPath", + "KY_MathExpression", + "KY_MergeToJSON", + "KY_OpenAICaptionImage", + "KY_OpenAICaptionImages", + "KY_OpenAIChat", + "KY_ReadImage", + "KY_RegexExtractor", + "KY_RegexReplace", + "KY_SaveImageToPath", + "KY_ToVideoUrl", + "KY_VideoCompare", + "KY_isNone", + "KY_restoreBBox", + "KY_toBBox" + ], + { + "title_aux": "ComfyUI-KYNode" + } + ], + "https://github.com/younyokel/comfyui_prompt_formatter": [ + [ + "CLIPTextEncodeFormatter", + "TextAppendFormatter", + "TextOnlyFormatter" + ], + { + "title_aux": "ComfyUI Prompt Formatter" + } + ], "https://github.com/youyegit/tdxh_node_comfyui": [ [ "TdxhBoolNumber", @@ -11481,20 +42520,91 @@ "TdxhOnOrOff", "TdxhReference", "TdxhStringInput", - "TdxhStringInputTranslator" + "TdxhStringInputTranslator", + "TdxhToggleGuest", + "TdxhToggleMaster" ], { "title_aux": "tdxh_node_comfyui" } ], + "https://github.com/yuan199696/add_text_2_img": [ + [ + "AddText" + ], + { + "title_aux": "add_text_2_img" + } + ], + "https://github.com/yuan199696/chinese_clip_encode": [ + [ + "ChineseCLIPEncode" + ], + { + "title_aux": "chinese_clip_encode" + } + ], + "https://github.com/yushan777/ComfyUI-Y7-SBS-2Dto3D": [ + [ + "Y7_SideBySide", + "Y7_VideoSideBySide" + ], + { + "title_aux": "ComfyUI-Y7-SBS-2Dto3D" + } + ], + "https://github.com/yushan777/ComfyUI-Y7Nodes": [ + [ + "Y7Nodes_CLIP_TokenCounter", + "Y7Nodes_CatchEditTextNodeDual", + "Y7Nodes_Grid2Batch", + "Y7Nodes_ImageRow", + "Y7Nodes_ImageSizePresets", + "Y7Nodes_PromptEnhancerFlux", + "Y7Nodes_ShowAnything", + "Y7Nodes_SmolVLM", + "Y7Nodes_T5_TokenCounter", + "Y7Nodes_Text" + ], + { + "title_aux": "Y7Nodes for ComfyUI" + } + ], "https://github.com/yuvraj108c/ComfyUI-Depth-Anything-Tensorrt": [ [ - "DepthAnythingTensorrtNode" + "DepthAnythingEngineBuilder", + "DepthAnythingTensorrt" ], { "title_aux": "ComfyUI Depth Anything TensorRT" } ], + "https://github.com/yuvraj108c/ComfyUI-Dwpose-Tensorrt": [ + [ + "DwposeTensorrt", + "LoadDwposeTensorrtModels" + ], + { + "title_aux": "ComfyUI Dwpose TensorRT" + } + ], + "https://github.com/yuvraj108c/ComfyUI-FLOAT": [ + [ + "FloatProcess", + "LoadFloatModels" + ], + { + "title_aux": "ComfyUI FLOAT" + } + ], + "https://github.com/yuvraj108c/ComfyUI-Facerestore-Tensorrt": [ + [ + "FaceRestoreTensorrt" + ], + { + "title_aux": "ComfyUI Facerestore TensorRT" + } + ], "https://github.com/yuvraj108c/ComfyUI-PiperTTS": [ [ "PiperTTS" @@ -11505,6 +42615,8 @@ ], "https://github.com/yuvraj108c/ComfyUI-Pronodes": [ [ + "ImagesSeekerNode", + "ImagesShufflerNode", "LoadImageFromOutputDirectoryNode", "LoadYoutubeVideoNode", "PreviewVHSAudioNode", @@ -11515,6 +42627,41 @@ "title_aux": "ComfyUI-Pronodes" } ], + "https://github.com/yuvraj108c/ComfyUI-Rife-Tensorrt": [ + [ + "RifeTensorrt" + ], + { + "title_aux": "ComfyUI Rife TensorRT" + } + ], + "https://github.com/yuvraj108c/ComfyUI-Thera": [ + [ + "LoadTheraModel", + "TheraProcess" + ], + { + "title_aux": "ComfyUI Thera" + } + ], + "https://github.com/yuvraj108c/ComfyUI-Upscaler-Tensorrt": [ + [ + "LoadUpscalerTensorrtModel", + "UpscalerTensorrt" + ], + { + "title_aux": "ComfyUI Upscaler TensorRT" + } + ], + "https://github.com/yuvraj108c/ComfyUI-Video-Depth-Anything": [ + [ + "LoadVideoDepthAnythingModel", + "VideoDepthAnythingProcess" + ], + { + "title_aux": "ComfyUI Video Depth Anything" + } + ], "https://github.com/yuvraj108c/ComfyUI-Vsgan": [ [ "DepthAnythingTrtNode", @@ -11536,16 +42683,113 @@ "title_aux": "ComfyUI Whisper" } ], - "https://github.com/yytdfc/ComfyUI-Bedrock": [ + "https://github.com/yuvraj108c/ComfyUI-YoloNasPose-Tensorrt": [ [ - "Bedrock - Claude", - "Bedrock - SDXL", - "Bedrock - Titan Image", - "Prompt Regex Remove", - "Prompt Template" + "YoloNasPoseEngineBuilder", + "YoloNasPoseTensorrt" ], { - "title_aux": "Amazon Bedrock nodes for for ComfyUI" + "title_aux": "ComfyUI YoloNasPose Tensorrt" + } + ], + "https://github.com/yuvraj108c/ComfyUI_InvSR": [ + [ + "InvSRSampler", + "LoadInvSRModels" + ], + { + "title_aux": "ComfyUI InvSR" + } + ], + "https://github.com/yvann-ba/ComfyUI_Yvann-Nodes": [ + [ + "Audio Analysis", + "Audio IPAdapter Transitions", + "Audio Peaks Detection", + "Audio Prompt Schedule", + "Audio Remixer", + "Edit Audio Weights", + "Float to Int", + "Floats To Weights Strategy", + "Floats Visualizer", + "Invert Floats", + "Load Audio Separation Model", + "Mask To Float", + "Repeat Image To Count" + ], + { + "title_aux": "ComfyUI_Yvann-Nodes" + } + ], + "https://github.com/za-wa-n-go/ComfyUI_Zwng_Nodes": [ + [ + "ZwngLoadImagePathOrURL", + "ZwngPreviewImageAndMask", + "ZwngSimpleGoogleTranslater", + "ZwngSimplePhotoshopConnector" + ], + { + "title_aux": "ComfyUI_Zwng_Nodes" + } + ], + "https://github.com/zade23/Comfyui-Distill-Any-Depth": [ + [ + "DistillAnyDepthProcessImage", + "DownloadDistillAnyDepthModel" + ], + { + "title_aux": "Comfyui-Distill-Any-Depth" + } + ], + "https://github.com/zade23/Comfyui-MoGe2": [ + [ + "RunMoGe2Process" + ], + { + "title_aux": "ComfyUI-MoGe2" + } + ], + "https://github.com/zaheenrahman/ComfyUI-ColorCorrection": [ + [ + "ClothingColorCorrection" + ], + { + "title_aux": "ComfyUI-ColorCorrection" + } + ], + "https://github.com/zccrs/comfyui-dci": [ + [ + "Base64Decoder", + "Base64Encoder", + "BinaryFileLoader", + "BinaryFileSaver", + "DCIAnalysis", + "DCIFileNode", + "DCIFileSaver", + "DCIImage", + "DCIImagePreview", + "DCIPreviewNode", + "DCISampleImage", + "DCI_Analysis", + "DCI_Base64Decoder", + "DCI_Base64Encoder", + "DCI_BinaryFileLoader", + "DCI_BinaryFileSaver", + "DCI_DebLoader", + "DCI_DebPackager", + "DCI_DirectoryLoader", + "DCI_FileNode", + "DCI_FileSaver", + "DCI_Image", + "DCI_ImagePreview", + "DCI_PreviewNode", + "DCI_SampleImage", + "DebLoader", + "DebPackager", + "DirectoryLoader" + ], + { + "title_aux": "ComfyUI DCI" } ], "https://github.com/zcfrank1st/Comfyui-Toolbox": [ @@ -11577,6 +42821,44 @@ "title_aux": "comfyui_visual_anagram" } ], + "https://github.com/zeeoale/PromptCreatorNode": [ + [ + "PromptCreatorNode" + ], + { + "title_aux": "PromptCreatorNodetraumakom Prompt Generator" + } + ], + "https://github.com/zentrocdot/ComfyUI-RealESRGAN_Upscaler": [ + [ + "\ud83d\ude80 Universal RealESRGAN Upscaler", + "\ud83e\uddf3 Show Data" + ], + { + "title_aux": "ComfyUI-RealESRGAN_Upscaler" + } + ], + "https://github.com/zentrocdot/ComfyUI-Simple_Image_To_Prompt": [ + [ + "\ud83d\udc41\ufe0f Image To Prompt", + "\ud83d\udc41\ufe0f Image To Prompt (NO UPDATE)", + "\ud83e\uddf3 Show Data" + ], + { + "title_aux": "ComfyUI-Simple_Image_To_Prompt" + } + ], + "https://github.com/zentrocdot/ComfyUI_Circle_Detection": [ + [ + "\u270f\ufe0f Input Data", + "\ud83d\udcc4 Show Data", + "\ud83d\udd2c Circle Detection (Hough)", + "\ud83d\udd2c Ellipse Detection (Simple)" + ], + { + "title_aux": "ComfyUI_Circle_Detection" + } + ], "https://github.com/zer0TF/cute-comfy": [ [ "Cute.Placeholder" @@ -11585,6 +42867,33 @@ "title_aux": "Cute Comfy" } ], + "https://github.com/zer0thgear/zer0-comfy-utils": [ + [ + "List Combine Node (zer0)", + "Multiline String Node (zer0)", + "Prompt Minimizer And Splitter Node (zer0)", + "Quality Tag Prepend Node (zer0)", + "Tavern Card Creation Node (zer0)", + "Tavern Card Info Node (zer0)" + ], + { + "author": "zer0gear", + "description": "Dubiously useful nodes that I've made for my own use.", + "nickname": "zer0gear Comfy Utils", + "title": "zer0gear's Comfy Utilities", + "title_aux": "zer0 Comfy Utilities" + } + ], + "https://github.com/zeroxoxo/ComfyUI-Fast-Style-Transfer": [ + [ + "FastStyleTransfer", + "NeuralStyleTransfer", + "TrainFastStyleTransfer" + ], + { + "title_aux": "ComfyUI-Fast-Style-Transfer" + } + ], "https://github.com/zfkun/ComfyUI_zfkun": [ [ "ZFLoadImagePath", @@ -11599,14 +42908,75 @@ ], "https://github.com/zhangp365/ComfyUI-utils-nodes": [ [ - "ConcatText", + "BooleanControlOutput", + "CheckpointLoaderSimpleWithSwitch", + "ColorCorrectOfUtils", + "ConcatTextOfUtils", + "CropByMaskToSpecificSize", + "DeepfaceAnalyzeFaceAttributes", + "DetectorForNSFW", + "EmptyConditioning", + "FloatMultipleAddLiteral", + "FrameAdjuster", + "GeminiPromptEnhance", + "GenderControlOutput", + "ImageAutoSelector", "ImageBatchOneOrMore", - "IntAndIntAddOffsetLiteral", + "ImageCompositeMaskedOneByOne", + "ImageCompositeMaskedWithSwitch", + "ImageCompositeWatermark", + "ImageConcanateOfUtils", + "ImageMaskColorAverage", + "ImageResizeTo8x", + "ImageTransition", + "ImageTransitionBottomToTop", + "ImageTransitionLeftToRight", + "ImageTransitionRightToLeft", + "ImageTransitionTopToBottom", + "ImagesConcanateToGrid", + "IntMultipleAddLiteral", + "LoadImageMaskWithSwitch", + "LoadImageMaskWithoutListDir", "LoadImageWithSwitch", - "ModifyTextGender" + "LoadImageWithoutListDir", + "MaskAreaComparison", + "MaskAutoSelector", + "MaskCoverFourCorners", + "MaskFastGrow", + "MaskFromFaceModel", + "MaskofCenter", + "MatchImageRatioToPreset", + "ModifyTextGender", + "NeedImageSizeAndCount", + "ReplicateRequstNode", + "SplitMask", + "TextInputAutoSelector", + "TextPreview", + "TorchCompileModelAdvanced", + "UpscaleImageWithModelIfNeed", + "VolcanoImageEditNode", + "VolcanoOutpaintingNode" ], { - "title_aux": "zhangp365/Some Utils for ComfyUI" + "title_aux": "zhangp365/ComfyUI-utils-nodes" + } + ], + "https://github.com/zhangp365/ComfyUI_photomakerV2_native": [ + [ + "PhotoMakerEncodeV2", + "PhotoMakerLoaderV2" + ], + { + "title_aux": "ComfyUI_photomakerV2_native" + } + ], + "https://github.com/zhiselfly/ComfyUI-Alimama-ControlNet-compatible": [ + [ + "SD3AlimamaInpaintControlNetApplyAdvanced", + "SD3AlimamaInpaintControlNetLoader" + ], + { + "title_aux": "ComfyUI-Alimama-ControlNet-compatible" } ], "https://github.com/zhongpei/ComfyUI-InstructIR": [ @@ -11618,30 +42988,6 @@ "title_aux": "ComfyUI for InstructIR" } ], - "https://github.com/zhongpei/Comfyui_image2prompt": [ - [ - "CLIP AdvancedTextEncode|fofo", - "CLIP PromptConditioning|fofo", - "Image2Text", - "Image2TextWithTags", - "ImageBatchToList|fofo", - "ImageRewardScore|fofo", - "LoadImage2TextModel", - "LoadImageRewardScoreModel|fofo", - "LoadT5Model|fofo", - "LoadText2PromptModel", - "ShowText|fofo", - "T5QuantizationConfig|fofo", - "T5Text2Prompt|fofo", - "Text2GPTPrompt", - "Text2Prompt", - "TextBox|fofo", - "Translate2Chinese|fofo" - ], - { - "title_aux": "Comfyui_image2prompt" - } - ], "https://github.com/zhuanqianfish/ComfyUI-EasyNode": [ [ "EasyCaptureNode", @@ -11652,8 +42998,89 @@ "title_aux": "EasyCaptureNode for ComfyUI" } ], + "https://github.com/zhulu111/ComfyUI_Bxb": [ + [ + "bxbSwitch", + "sdBxb", + "sdBxb_saveImage", + "sdBxb_textInput" + ], + { + "title_aux": "ComfyUI_Bxb" + } + ], + "https://github.com/zichongc/ComfyUI-Attention-Distillation": [ + [ + "ADOptimizer", + "ADSampler", + "LoadDistiller", + "LoadPILImage", + "PureText", + "ResizeImage" + ], + { + "title_aux": "ComfyUI-Attention-Distillation" + } + ], + "https://github.com/ziwang-com/comfyui-deepseek-r1": [ + [ + "deep_gen", + "deep_load" + ], + { + "title_aux": "comfyui-deepseek-r1" + } + ], + "https://github.com/zl9739379/ComfyUI-ArkVideoGenerate": [ + [ + "ArkVideoGenerate" + ], + { + "title_aux": "ComfyUI-ArkVideoGenerate" + } + ], + "https://github.com/zmwv823/ComfyUI_Anytext": [ + [ + "UL_AnyText2Fonts", + "UL_AnyTextComposer", + "UL_AnyTextEncoder", + "UL_AnyTextFontImg", + "UL_AnyTextFormatter", + "UL_AnyTextLoader", + "UL_AnyTextSampler", + "UL_DiffusersCheckpointLoader", + "UL_DiffusersControlNetApplyAdvanced", + "UL_DiffusersControlNetLoader", + "UL_Image_Generation_Diffusers_Sampler", + "UL_Image_Generation_Glyph_ByT5", + "UL_Image_Generation_Glyph_ByT5_Checkponits_Loader", + "UL_Image_Generation_Glyph_ByT5_Font", + "UL_Image_Generation_JoyType_Font_Img", + "UL_Image_Generation_JoyType_Render_List", + "UL_Image_Process_Common_Cv2_Canny", + "UL_Translator", + "UL_TranslatorLoader", + "U_LoRAS" + ], + { + "title_aux": "ComfyUI_Anytext" + } + ], + "https://github.com/zohac/ComfyUI_ZC_DrawShape": [ + [ + "ZcDrawShape" + ], + { + "author": "Zohac", + "description": "nodes for artists, designers and animators.", + "nickname": "Zc DrawShape", + "title": "Zc DrawShape", + "title_aux": "ComfyUI_ZC_DrawShape" + } + ], "https://github.com/zombieyang/sd-ppp": [ [ + "CLIP Text Encode PS Regional", "Get Image From Photoshop Layer", "Send Images To Photoshop" ], @@ -11661,12 +43088,313 @@ "title_aux": "SD-PPP" } ], + "https://github.com/zubenelakrab/ComfyUI-ASV-Nodes": [ + [ + "ASVPromptGenerator" + ], + { + "title_aux": "ComfyUI-ASV-Nodes Node" + } + ], + "https://github.com/zygion/comfyui-zygion-util-nodes": [ + [ + "ItemListNode", + "SceneQueueNode", + "TemplateInputNode", + "TemplateProcessorNode", + "TriggerPassthroughNode" + ], + { + "title_aux": "i-zygion-util-nodes" + } + ], + "https://github.com/zzubnik/TT_TextTools": [ + [ + "TT_StoryCombiner", + "TT_TextFileSelectorNode", + "TT_TextInput", + "TT_TextReplacer" + ], + { + "title_aux": "TT_TextTools" + } + ], + "https://github.com/zzw5516/ComfyUI-zw-tools": [ + [ + "ZwPrompt", + "ZwPromptText" + ], + { + "title_aux": "ComfyUI-zw-tools" + } + ], + "https://raw.githubusercontent.com/1shadow1/hayo_comfyui_nodes/main/LZCNodes.py": [ + [ + "LoadPILImages", + "MergeImages", + "make_transparentmask", + "tensor_trans_pil", + "words_generatee" + ], + { + "title_aux": "Hayo comfyui nodes" + } + ], + "https://raw.githubusercontent.com/CaptainGrock/ComfyUIInvisibleWatermark/main/Invisible%20Watermark.py": [ + [ + "Apply Invisible Watermark", + "Extract Watermark" + ], + { + "title_aux": "ComfyUIInvisibleWatermark" + } + ], + "https://raw.githubusercontent.com/Dehypnotic/comfyui-aspect-ratio-advanced/main/aspect_ratio_advanced.py": [ + [ + "AspectRatioAdvanced" + ], + { + "title_aux": "AspectRatioAdvanced" + } + ], + "https://raw.githubusercontent.com/NeuralNotW0rk/ComfyUI-Waveform-Extensions/main/EXT_AudioManipulation.py": [ + [ + "BatchJoinAudio", + "CutAudio", + "DuplicateAudio", + "JoinAudio", + "ResampleAudio", + "ReverseAudio", + "StretchAudio" + ], + { + "title_aux": "Waveform Extensions" + } + ], + "https://raw.githubusercontent.com/Onierous/QRNG_Node_ComfyUI/main/qrng_node.py": [ + [ + "QRNG_Node_CSV" + ], + { + "title_aux": "QRNG_Node_ComfyUI" + } + ], + "https://raw.githubusercontent.com/SadaleNet/CLIPTextEncodeA1111-ComfyUI/master/custom_nodes/clip_text_encoder_a1111.py": [ + [ + "CLIPTextEncodeA1111", + "RerouteTextForCLIPTextEncodeA1111" + ], + { + "title_aux": "ComfyUI A1111-like Prompt Custom Node Solution" + } + ], + "https://raw.githubusercontent.com/Ser-Hilary/SDXL_sizing/main/conditioning_sizing_for_SDXL.py": [ + [ + "get_aspect_from_image", + "get_aspect_from_ints", + "sizing_node", + "sizing_node_basic", + "sizing_node_unparsed" + ], + { + "title_aux": "SDXL_sizing" + } + ], + "https://raw.githubusercontent.com/barckley75/comfyUI_DaVinciResolve/main/custom_nodes/node_text_to_speech.py": [ + [ + "TextToSpeech" + ], + { + "title_aux": "comfyUI_DaVinciResolve" + } + ], + "https://raw.githubusercontent.com/bkunbargi/BrevImage/main/BrevLoadImage.py": [ + [ + "BrevImage" + ], + { + "title_aux": "BrevImage" + } + ], + "https://raw.githubusercontent.com/catscandrive/comfyui-imagesubfolders/main/loadImageWithSubfolders.py": [ + [ + "LoadImagewithSubfolders" + ], + { + "title_aux": "Image loader with subfolders" + } + ], + "https://raw.githubusercontent.com/dawangraoming/ComfyUI_ksampler_gpu/main/ksampler_gpu.py": [ + [ + "KSamplerAdvancedGPU", + "KSamplerGPU" + ], + { + "title_aux": "KSampler GPU" + } + ], + "https://raw.githubusercontent.com/fitCorder/fcSuite/main/fcSuite.py": [ + [ + "fcFloat", + "fcFloatMatic", + "fcHex", + "fcInteger" + ], + { + "title_aux": "fcSuite" + } + ], + "https://raw.githubusercontent.com/folkghost/comfyui_search_csv/main/search_csv_node.py": [ + [ + "Search CSV" + ], + { + "title_aux": "CSV Search Node" + } + ], + "https://raw.githubusercontent.com/huimengshiguang/AspectAwareTiling/refs/heads/main/hmsg-quanjing.py": [ + [ + "AspectAwareTiling" + ], + { + "title_aux": "AspectAwareTiling" + } + ], + "https://raw.githubusercontent.com/lordgasmic/comfyui_wildcards/master/wildcards.py": [ + [ + "CLIPTextEncodeWithWildcards" + ], + { + "title_aux": "Wildcards" + } + ], + "https://raw.githubusercontent.com/lrzjason/ComfyUIJasonNode/main/SDXLMixSampler.py": [ + [ + "SDXLMixSampler" + ], + { + "title_aux": "ComfyUIJasonNode" + } + ], + "https://raw.githubusercontent.com/m957ymj75urz/ComfyUI-Custom-Nodes/main/clip-text-encode-split/clip_text_encode_split.py": [ + [ + "RawText", + "RawTextCombine", + "RawTextEncode", + "RawTextReplace" + ], + { + "title_aux": "m957ymj75urz/ComfyUI-Custom-Nodes" + } + ], + "https://raw.githubusercontent.com/nicolai256/comfyUI_Nodes_nicolai256/main/yugioh-presets.py": [ + [ + "yugioh_Presets" + ], + { + "title_aux": "comfyUI_Nodes_nicolai256" + } + ], + "https://raw.githubusercontent.com/ntdviet/comfyui-ext/main/custom_nodes/gcLatentTunnel/gcLatentTunnel.py": [ + [ + "gcLatentTunnel" + ], + { + "title_aux": "ntdviet/comfyui-ext" + } + ], + "https://raw.githubusercontent.com/s1dlx/comfy_meh/main/meh.py": [ + [ + "MergingExecutionHelper" + ], + { + "title_aux": "comfy_meh" + } + ], + "https://raw.githubusercontent.com/seghier/ComfyUI_LibreTranslate/main/translate_node.py": [ + [ + "LibreTranslateLocally", + "LibreTranslateOnline" + ], + { + "title_aux": "ComfyUI_LibreTranslate" + } + ], + "https://raw.githubusercontent.com/taabata/Comfy_Syrian_Falcon_Nodes/main/SyrianFalconNodes.py": [ + [ + "CompositeImage", + "KSamplerAlternate", + "KSamplerPromptEdit", + "KSamplerPromptEditAndAlternate", + "LoopBack", + "QRGenerate", + "WordAsImage" + ], + { + "title_aux": "Syrian Falcon Nodes" + } + ], "https://raw.githubusercontent.com/throttlekitty/SDXLCustomAspectRatio/main/SDXLAspectRatio.py": [ [ "SDXLAspectRatio" ], { + "preemptions": [ + "SAMLoader" + ], "title_aux": "SDXLCustomAspectRatio" } + ], + "https://raw.githubusercontent.com/time-river/ComfyUI-CLIPSeg/main/custom_nodes/clipseg.py": [ + [ + "CLIPSeg", + "CombineSegMasks" + ], + { + "title_aux": "CLIPSeg" + } + ], + "https://raw.githubusercontent.com/tudal/Hakkun-ComfyUI-nodes/main/hakkun_nodes.py": [ + [ + "Any Converter", + "Calculate Upscale", + "Image Resize To Height", + "Image Resize To Width", + "Image size to string", + "Load Random Image", + "Load Text", + "Multi Text Merge", + "Prompt Parser", + "Random Line", + "Random Line 4" + ], + { + "title_aux": "Hakkun-ComfyUI-nodes" + } + ], + "https://raw.githubusercontent.com/ultimatech-cn/FaceSimilarity/main/faceSimilarity.py": [ + [ + "Face-analyze", + "Face-similarity" + ], + { + "title_aux": "FaceSimilarity" + } + ], + "https://raw.githubusercontent.com/vxinhao/color2rgb/main/color2rgb.py": [ + [ + "color2RGB" + ], + { + "title_aux": "color2rgb" + } + ], + "https://raw.githubusercontent.com/wsippel/comfyui_ws/main/sdxl_utility.py": [ + [ + "SDXLResolutionPresets" + ], + { + "title_aux": "SDXLResolutionPresets" + } ] } \ No newline at end of file diff --git a/node_db/new/model-list.json b/node_db/new/model-list.json index 18ba54ac..8b696c97 100644 --- a/node_db/new/model-list.json +++ b/node_db/new/model-list.json @@ -1,726 +1,692 @@ { "models": [ + { - "name": "SUPIR-v0F.ckpt", - "type": "checkpoints", - "base": "SUPIR", - "save_path": "checkpoints/SUPIR", - "description": "SUPIR checkpoint model", - "reference": "https://huggingface.co/camenduru/SUPIR/tree/main", - "filename": "SUPIR-v0F.ckpt", - "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0F.ckpt" + "name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v high noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_high_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp16.safetensors", + "size": "28.6GB" }, { - "name": "SUPIR-v0Q.ckpt", - "type": "checkpoints", - "base": "SUPIR", - "save_path": "checkpoints/SUPIR", - "description": "SUPIR checkpoint model", - "reference": "https://huggingface.co/camenduru/SUPIR/tree/main", - "filename": "SUPIR-v0Q.ckpt", - "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0Q.ckpt" - },{ - "name": "Depth-FM-v1 fp16 safetensors", - "type": "checkpoints", - "base": "Depth-FM", - "save_path": "checkpoints/depthfm", - "description": "Depth-FM monocular depth estimation model", - "reference": "https://huggingface.co/Kijai/depth-fm-pruned", - "filename": "depthfm-v1_fp16.safetensors", - "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp16.safetensors" + "name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v high noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" }, { - "name": "Depth-FM-v1 fp32 safetensors", - "type": "checkpoints", - "base": "Depth-FM", - "save_path": "checkpoints/depthfm", - "description": "Depth-FM monocular depth estimation model", - "reference": "https://huggingface.co/Kijai/depth-fm-pruned", - "filename": "depthfm-v1_fp32.safetensors", - "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp32.safetensors" + "name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v low noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_low_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp16.safetensors", + "size": "28.6GB" }, { - "name": "monster-labs - Controlnet QR Code Monster v1 For SDXL", - "type": "controlnet", - "base": "SDXL", + "name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v low noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v high noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_high_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v high noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v low noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_low_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v low noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 ti2v 5B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for ti2v 5B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_ti2v_5B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_ti2v_5B_fp16.safetensors", + "size": "10.0GB" + }, + + { + "name": "sam2.1_hiera_tiny.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (tiny)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_tiny.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_tiny.pt", + "size": "149.0MB" + }, + { + "name": "sam2.1_hiera_small.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (small)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_small.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_small.pt", + "size": "176.0MB" + }, + { + "name": "sam2.1_hiera_base_plus.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (base+)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_base_plus.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_base_plus.pt", + "size": "309.0MB" + }, + { + "name": "sam2.1_hiera_large.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (large)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_large.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_large.pt", + "size": "857.0MB" + }, + + { + "name": "sam2_hiera_tiny.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (tiny)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_tiny.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_tiny.pt", + "size": "149.0MB" + }, + { + "name": "sam2_hiera_small.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (small)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_small.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_small.pt", + "size": "176.0MB" + }, + { + "name": "sam2_hiera_base_plus.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (base+)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_base_plus.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_base_plus.pt", + "size": "309.0MB" + }, + { + "name": "sam2_hiera_large.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (large)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_large.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt", + "size": "857.0MB" + }, + + { + "name": "Comfy-Org/omnigen2_fp16.safetensors", + "type": "diffusion_model", + "base": "OmniGen2", "save_path": "default", - "description": "monster-labs - Controlnet QR Code Monster v1 For SDXL", - "reference": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster", - "filename": "control_v1p_sdxl_qrcode_monster.safetensors", - "url": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster/resolve/main/diffusion_pytorch_model.safetensors" + "description": "OmniGen2 diffusion model. This is required for using OmniGen2.", + "reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged", + "filename": "omnigen2_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/omnigen2_fp16.safetensors", + "size": "7.93GB" }, { - "name": "DynamiCrafter 1024 bf16 safetensors", - "type": "checkpoints", - "base": "DynamiCrafter", - "save_path": "checkpoints/dynamicrafter", - "description": "DynamiCrafter image2video model 1024x575", - "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned/", - "filename": "dynamicrafter_1024_v1_bf16.safetensors", - "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_1024_v1_bf16.safetensors" - }, - { - "name": "DynamiCrafter 512 interpolation bf16 safetensors", - "type": "checkpoints", - "base": "DynamiCrafter", - "save_path": "checkpoints/dynamicrafter", - "description": "DynamiCrafter image2video interpolation model 512", - "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned/", - "filename": "dynamicrafter_512_interp_v1_bf16.safetensors", - "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_512_interp_v1_bf16.safetensors" - }, - { - "name": "MobileSAM", - "type": "sam", - "base": "SAM", - "save_path": "sams", - "description": "MobileSAM", - "reference": "https://github.com/ChaoningZhang/MobileSAM/", - "filename": "mobile_sam.pt", - "url": "https://github.com/ChaoningZhang/MobileSAM/blob/master/weights/mobile_sam.pt" - }, - - { - "name": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L", - "type": "BLIP_MODEL", - "base": "blip_model", - "save_path": "blip", - "description": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L", - "reference": "https://github.com/salesforce/BLIP", - "filename": "model_base_capfilt_large.pth", - "url": "https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_base_capfilt_large.pth" - }, - { - "name": "GroundingDINO SwinT OGC - Model", - "type": "GroundingDINO", - "base": "DINO", - "save_path": "groundingdino", - "description": "GroundingDINO SwinT OGC Model", - "reference": "https://huggingface.co/ShilongLiu/GroundingDINO", - "filename": "groundingdino_swint_ogc.pth", - "url": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/groundingdino_swint_ogc.pth" - }, - { - "name": "GroundingDINO SwinT OGC - CFG File", - "type": "GroundingDINO", - "base": "DINO", - "save_path": "groundingdino", - "description": "GroundingDINO SwinT OGC CFG File", - "reference": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/GroundingDINO_SwinT_OGC.cfg.py", - "filename": "GroundingDINO_SwinT_OGC.cfg.py", - "url": "https://huggingface.co/ShilongLiu/GroundingDINO/raw/main/GroundingDINO_SwinT_OGC.cfg.py" - }, - { - "name": "SDXL Lightning LoRA (2step)", - "type": "lora", - "base": "SDXL", - "save_path": "loras/SDXL-Lightning", - "description": "SDXL Lightning LoRA (2step)", - "reference": "https://huggingface.co/ByteDance/SDXL-Lightning", - "filename": "sdxl_lightning_2step_lora.safetensors", - "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_2step_lora.safetensors" - }, - { - "name": "SDXL Lightning LoRA (4step)", - "type": "lora", - "base": "SDXL", - "save_path": "loras/SDXL-Lightning", - "description": "SDXL Lightning LoRA (4step)", - "reference": "https://huggingface.co/ByteDance/SDXL-Lightning", - "filename": "sdxl_lightning_4step_lora.safetensors", - "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_4step_lora.safetensors" - }, - { - "name": "SDXL Lightning LoRA (8step)", - "type": "lora", - "base": "SDXL", - "save_path": "loras/SDXL-Lightning", - "description": "SDXL Lightning LoRA (8tep)", - "reference": "https://huggingface.co/ByteDance/SDXL-Lightning", - "filename": "sdxl_lightning_8step_lora.safetensors", - "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_8step_lora.safetensors" - }, - - { - "name": "shape_predictor_68_face_landmarks.dat [Face Analysis]", - "type": "Shape Predictor", - "base": "DLIB", - "save_path": "custom_nodes/ComfyUI_FaceAnalysis/dlib", - "description": "To use the Face Analysis for ComfyUI custom node, installation of this model is needed.", - "reference": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/tree/main", - "filename": "shape_predictor_68_face_landmarks.dat", - "url": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/resolve/main/shape_predictor_68_face_landmarks.dat" - }, - { - "name": "dlib_face_recognition_resnet_model_v1.dat [Face Analysis]", - "type": "Face Recognition", - "base": "DLIB", - "save_path": "custom_nodes/ComfyUI_FaceAnalysis/dlib", - "description": "To use the Face Analysis for ComfyUI custom node, installation of this model is needed.", - "reference": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/tree/main", - "filename": "dlib_face_recognition_resnet_model_v1.dat", - "url": "https://huggingface.co/matt3ounstable/dlib_predictor_recognition/resolve/main/dlib_face_recognition_resnet_model_v1.dat" - }, - - { - "name": "efficient_sam_s_cpu.jit [ComfyUI-YoloWorld-EfficientSAM]", - "type": "efficient_sam", - "base": "efficient_sam", - "save_path": "custom_nodes/ComfyUI-YoloWorld-EfficientSAM", - "description": "Install efficient_sam_s_cpu.jit into ComfyUI-YoloWorld-EfficientSAM", - "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main", - "filename": "efficient_sam_s_cpu.jit", - "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_cpu.jit" - }, - { - "name": "efficient_sam_s_gpu.jit [ComfyUI-YoloWorld-EfficientSAM]", - "type": "efficient_sam", - "base": "efficient_sam", - "save_path": "custom_nodes/ComfyUI-YoloWorld-EfficientSAM", - "description": "Install efficient_sam_s_gpu.jit into ComfyUI-YoloWorld-EfficientSAM", - "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main", - "filename": "efficient_sam_s_gpu.jit", - "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_gpu.jit" - }, - - { - "name": "stabilityai/comfyui_checkpoints/stable_cascade_stage_b.safetensors", - "type": "checkpoints", - "base": "Stable Cascade", - "save_path": "checkpoints/Stable-Cascade", - "description": "[4.55GB] Stable Cascade stage_b checkpoints", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stable_cascade_stage_b.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_b.safetensors" - }, - { - "name": "stabilityai/comfyui_checkpoints/stable_cascade_stage_c.safetensors", - "type": "checkpoints", - "base": "Stable Cascade", - "save_path": "checkpoints/Stable-Cascade", - "description": "[9.22GB] Stable Cascade stage_c checkpoints", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stable_cascade_stage_c.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_c.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: effnet_encoder.safetensors (VAE)", - "type": "VAE", - "base": "Stable Cascade", - "save_path": "vae/Stable-Cascade", - "description": "[81.5MB] Stable Cascade: effnet_encoder.\nVAE encoder for stage_c latent.", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "effnet_encoder.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/effnet_encoder.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: stage_a.safetensors (VAE)", - "type": "VAE", - "base": "Stable Cascade", - "save_path": "vae/Stable-Cascade", - "description": "[73.7MB] Stable Cascade: stage_a", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stage_a.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_a.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: stage_b.safetensors (UNET)", - "type": "unet", - "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[6.25GB] Stable Cascade: stage_b", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stage_b.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: stage_b_bf16.safetensors (UNET)", - "type": "unet", - "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[3.13GB] Stable Cascade: stage_b/bf16", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stage_b_bf16.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_bf16.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: stage_b_lite.safetensors (UNET)", - "type": "unet", - "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[2.8GB] Stable Cascade: stage_b/lite", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stage_b_lite.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: stage_b_lite.safetensors (UNET)", - "type": "unet", - "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[1.4GB] Stable Cascade: stage_b/bf16,lite", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stage_b_lite_bf16.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite_bf16.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: stage_c.safetensors (UNET)", - "type": "unet", - "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[14.4GB] Stable Cascade: stage_c", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stage_c.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: stage_c_bf16.safetensors (UNET)", - "type": "unet", - "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[7.18GB] Stable Cascade: stage_c/bf16", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stage_c_bf16.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_bf16.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: stage_c_lite.safetensors (UNET)", - "type": "unet", - "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[4.12GB] Stable Cascade: stage_c/lite", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stage_c_lite.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: stage_c_lite.safetensors (UNET)", - "type": "unet", - "base": "Stable Cascade", - "save_path": "unet/Stable-Cascade", - "description": "[2.06GB] Stable Cascade: stage_c/bf16,lite", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "stage_c_lite_bf16.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite_bf16.safetensors" - }, - { - "name": "stabilityai/Stable Cascade: text_encoder (CLIP)", + "name": "Comfy-Org/qwen_2.5_vl_fp16.safetensors", "type": "clip", - "base": "Stable Cascade", - "save_path": "clip/Stable-Cascade", - "description": "[1.39GB] Stable Cascade: text_encoder", - "reference": "https://huggingface.co/stabilityai/stable-cascade", - "filename": "model.safetensors", - "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/text_encoder/model.safetensors" - }, - - { - "name": "1k3d68.onnx", - "type": "insightface", - "base": "inswapper", - "save_path": "insightface/models/antelopev2", - "description": "Antelopev2 1k3d68.onnx model for InstantId. (InstantId needs all Antelopev2 models)", - "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", - "filename": "1k3d68.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/1k3d68.onnx" - }, - { - "name": "2d106det.onnx", - "type": "insightface", - "base": "inswapper", - "save_path": "insightface/models/antelopev2", - "description": "Antelopev2 2d106det.onnx model for InstantId. (InstantId needs all Antelopev2 models)", - "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", - "filename": "2d106det.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/2d106det.onnx" - }, - { - "name": "genderage.onnx", - "type": "insightface", - "base": "inswapper", - "save_path": "insightface/models/antelopev2", - "description": "Antelopev2 genderage.onnx model for InstantId. (InstantId needs all Antelopev2 models)", - "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", - "filename": "genderage.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/genderage.onnx" - }, - { - "name": "glintr100.onnx", - "type": "insightface", - "base": "inswapper", - "save_path": "insightface/models/antelopev2", - "description": "Antelopev2 glintr100.onnx model for InstantId. (InstantId needs all Antelopev2 models)", - "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", - "filename": "glintr100.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/glintr100.onnx" - }, - { - "name": "scrfd_10g_bnkps.onnx", - "type": "insightface", - "base": "inswapper", - "save_path": "insightface/models/antelopev2", - "description": "Antelopev2 scrfd_10g_bnkps.onnx model for InstantId. (InstantId needs all Antelopev2 models)", - "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", - "filename": "scrfd_10g_bnkps.onnx", - "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/scrfd_10g_bnkps.onnx" - }, - - { - "name": "photomaker-v1.bin", - "type": "photomaker", - "base": "SDXL", - "save_path": "photomaker", - "description": "PhotoMaker model. This model is compatible with SDXL.", - "reference": "https://huggingface.co/TencentARC/PhotoMaker", - "filename": "photomaker-v1.bin", - "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin" - }, - { - "name": "ip-adapter-faceid_sdxl.bin", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "IP-Adapter-FaceID Model (SDXL) [ipadapter]", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid_sdxl.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl.bin" - }, - { - "name": "ip-adapter-faceid-plusv2_sdxl.bin", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "IP-Adapter-FaceID Plus Model (SDXL) [ipadapter]", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid-plusv2_sdxl.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl.bin" - }, - { - "name": "ip-adapter-faceid_sdxl_lora.safetensors", - "type": "lora", - "base": "SDXL", - "save_path": "loras/ipadapter", - "description": "IP-Adapter-FaceID LoRA Model (SDXL) [ipadapter]", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid_sdxl_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl_lora.safetensors" - }, - { - "name": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", - "type": "lora", - "base": "SDXL", - "save_path": "loras/ipadapter", - "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SDXL) [ipadapter]", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl_lora.safetensors" - }, - - { - "name": "TencentARC/motionctrl.pth", - "type": "checkpoints", - "base": "MotionCtrl", - "save_path": "checkpoints/motionctrl", - "description": "To use the ComfyUI-MotionCtrl extension, downloading this model is required.", - "reference": "https://huggingface.co/TencentARC/MotionCtrl", - "filename": "motionctrl.pth", - "url": "https://huggingface.co/TencentARC/MotionCtrl/resolve/main/motionctrl.pth" - }, - { - "name": "ip-adapter-faceid-plusv2_sd15.bin", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "IP-Adapter-FaceID-Plus V2 Model (SD1.5)", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid-plusv2_sd15.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15.bin" - }, - { - "name": "ip-adapter-faceid-plusv2_sd15_lora.safetensors", - "type": "lora", - "base": "SD1.5", - "save_path": "loras/ipadapter", - "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SD1.5)", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid-plusv2_sd15_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15_lora.safetensors" - }, - { - "name": "ip-adapter-faceid-plus_sd15_lora.safetensors", - "type": "lora", - "base": "SD1.5", - "save_path": "loras/ipadapter", - "description": "IP-Adapter-FaceID Plus LoRA Model (SD1.5) [ipadapter]", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid-plus_sd15_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15_lora.safetensors" - }, - - { - "name": "ControlNet-HandRefiner-pruned (inpaint-depth-hand; fp16)", - "type": "controlnet", - "base": "SD1.5", + "base": "qwen-2.5", "save_path": "default", - "description": "This inpaint-depth controlnet model is specialized for the hand refiner.", - "reference": "https://huggingface.co/hr16/ControlNet-HandRefiner-pruned", - "filename": "control_sd15_inpaint_depth_hand_fp16.safetensors", - "url": "https://huggingface.co/hr16/ControlNet-HandRefiner-pruned/resolve/main/control_sd15_inpaint_depth_hand_fp16.safetensors" - }, - { - "name": "stabilityai/stable-diffusion-x4-upscaler", - "type": "checkpoints", - "base": "upscale", - "save_path": "checkpoints/upscale", - "description": "[3.53GB] This upscaling model is a latent text-guided diffusion model and should be used with SD_4XUpscale_Conditioning and KSampler.", - "reference": "https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler", - "filename": "x4-upscaler-ema.safetensors", - "url": "https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler/resolve/main/x4-upscaler-ema.safetensors" - }, - { - "name": "LDSR(Latent Diffusion Super Resolution)", - "type": "upscale", - "base": "upscale", - "save_path": "upscale_models/ldsr", - "description": "LDSR upscale model. Through the [a/ComfyUI-Flowty-LDSR](https://github.com/flowtyone/ComfyUI-Flowty-LDSR) extension, the upscale model can be utilized.", - "reference": "https://github.com/CompVis/latent-diffusion", - "filename": "last.ckpt", - "url": "https://heibox.uni-heidelberg.de/f/578df07c8fc04ffbadf3/?dl=1" - }, - { - "name": "control_boxdepth_LooseControlfp16 (fp16)", - "type": "controlnet", - "base": "SD1.5", - "save_path": "default", - "description": "Loose ControlNet model", - "reference": "https://huggingface.co/ioclab/LooseControl_WebUICombine", - "filename": "control_boxdepth_LooseControlfp16.safetensors", - "url": "https://huggingface.co/ioclab/LooseControl_WebUICombine/resolve/main/control_boxdepth_LooseControlfp16.safetensors" + "description": "text encoder for OmniGen2", + "reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged", + "filename": "qwen_2.5_vl_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/text_encoders/qwen_2.5_vl_fp16.safetensors", + "size": "7.51GB" }, { - "name": "ip-adapter-faceid-portrait_sd15.bin", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "IP-Adapter-FaceID Portrait Model (SD1.5) [ipadapter]", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid-portrait_sd15.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sd15.bin" + "name": "Latent Bridge Matching for Image Relighting", + "type": "diffusion_model", + "base": "LBM", + "save_path": "diffusion_models/LBM", + "description": "Latent Bridge Matching (LBM) Relighting model", + "reference": "https://huggingface.co/jasperai/LBM_relighting", + "filename": "LBM_relighting.safetensors", + "url": "https://huggingface.co/jasperai/LBM_relighting/resolve/main/model.safetensors", + "size": "5.02GB" + }, + + { + "name": "LTX-Video 13B Distilled v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Distilled version of the LTX-Video 13B model, providing improved efficiency while maintaining high-resolution quality.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-distilled.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled.safetensors", + "size": "28.6GB" }, { - "name": "ip-adapter-faceid-plus_sd15.bin", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "IP-Adapter-FaceID Plus Model (SD1.5) [ipadapter]", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid-plus_sd15.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15.bin" + "name": "LTX-Video 13B Distilled FP8 v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized distilled version of the LTX-Video 13B model, optimized for even lower VRAM usage while maintaining quality.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-distilled-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-fp8.safetensors", + "size": "15.7GB" }, { - "name": "ip-adapter-faceid_sd15.bin", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "IP-Adapter-FaceID Model (SD1.5)", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid_sd15.bin", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15.bin" - }, - { - "name": "ip-adapter-faceid_sd15_lora.safetensors", + "name": "LTX-Video 13B Distilled LoRA v0.9.7", "type": "lora", - "base": "SD1.5", - "save_path": "loras/ipadapter", - "description": "IP-Adapter-FaceID LoRA Model (SD1.5)", - "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", - "filename": "ip-adapter-faceid_sd15_lora.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15_lora.safetensors" + "base": "LTX-Video", + "save_path": "loras", + "description": "A LoRA adapter that transforms the standard LTX-Video 13B model into a distilled version when loaded.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-distilled-lora128.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-lora128.safetensors", + "size": "1.33GB" + }, + { + "name": "lllyasviel/FramePackI2V_HY", + "type": "FramePackI2V", + "base": "FramePackI2V", + "save_path": "diffusers/lllyasviel", + "description": "[SNAPSHOT] This is the f1k1_x_g9_f1k1f2k2f16k4_td FramePack for HY. [w/You cannot download this item on ComfyUI-Manager versions below V3.18]", + "reference": "https://huggingface.co/lllyasviel/FramePackI2V_HY", + "filename": "", + "url": "lllyasviel/FramePackI2V_HY", + "size": "25.75GB" }, { - "name": "LongAnimatediff/lt_long_mm_16_64_frames_v1.1.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", - "type": "animatediff", - "base": "SD1.x", - "save_path": "animatediff_models", - "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", - "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", - "filename": "lt_long_mm_16_64_frames_v1.1.ckpt", - "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames_v1.1.ckpt" + "name": "LTX-Video Spatial Upscaler v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Spatial upscaler model for LTX-Video. This model enhances the spatial resolution of generated videos.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-spatial-upscaler-0.9.7.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-spatial-upscaler-0.9.7.safetensors", + "size": "505MB" + }, + { + "name": "LTX-Video Temporal Upscaler v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Temporal upscaler model for LTX-Video. This model enhances the temporal resolution and smoothness of generated videos.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-temporal-upscaler-0.9.7.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-temporal-upscaler-0.9.7.safetensors", + "size": "524MB" + }, + { + "name": "LTX-Video 13B v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "High-resolution quality LTX-Video 13B model.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-dev.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-dev.safetensors", + "size": "28.6GB" + }, + { + "name": "LTX-Video 13B FP8 v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized version of the LTX-Video 13B model, optimized for lower VRAM usage while maintaining high quality.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-dev-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-dev-fp8.safetensors", + "size": "15.7GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_bf16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp8_e4m3fn.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp8_scaled.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_bf16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_fp16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_fp8_e4m3fn.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_fp8_scaled.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/clip_vision_h.safetensors", + "type": "clip_vision", + "base": "clip_vision_h", + "save_path": "clip_vision", + "description": "clip_vision_h model for Wan2.1", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "clip_vision_h.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/clip_vision/clip_vision_h.safetensors", + "size": "1.26GB" + }, + + { + "name": "Comfy-Org/Wan2.1 t2v 1.3B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 1.3B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_1.3B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_1.3B_bf16.safetensors", + "size": "2.84GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 1.3B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 1.3B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_1.3B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_1.3B_fp16.safetensors", + "size": "2.84GB" + }, + + { + "name": "Comfy-Org/Wan2.1 t2v 14B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_bf16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 14B (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_fp8_e4m3fn.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.1 VAE", + "type": "vae", + "base": "Wan2.1", + "save_path": "vae", + "description": "Wan2.1 VAE model", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "size": "254MB" + }, + + + { + "name": "Comfy-Org/umt5_xxl_fp16.safetensors", + "type": "clip", + "base": "umt5_xxl", + "save_path": "text_encoders", + "description": "umt5_xxl_fp16 text encoder for Wan2.1", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "umt5_xxl_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp16.safetensors", + "size": "11.4GB" + }, + { + "name": "Comfy-Org/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "type": "clip", + "base": "umt5_xxl", + "save_path": "text_encoders", + "description": "umt5_xxl_fp8_e4m3fn_scaled text encoder for Wan2.1", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "size": "6.74GB" + }, + + { + "name": "Comfy-Org/hunyuan_video_image_to_video_720p_bf16.safetensors", + "type": "diffusion_model", + "base": "Hunyuan Video", + "save_path": "diffusion_models/hunyuan_video", + "description": "Huyuan Video Image2Video diffusion model. repackaged version.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "hunyuan_video_image_to_video_720p_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/diffusion_models/hunyuan_video_image_to_video_720p_bf16.safetensors", + "size": "25.6GB" + }, + { + "name": "Comfy-Org/llava_llama3_vision.safetensors", + "type": "clip_vision", + "base": "LLaVA-Llama-3", + "save_path": "text_encoders", + "description": "llava_llama3_vision clip vison model. This is required for using Hunyuan Video Image2Video.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "llava_llama3_vision.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/clip_vision/llava_llama3_vision.safetensors", + "size": "649MB" + }, + + { + "name": "LTX-Video 2B v0.9.5 Checkpoint", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltx-video-2b-v0.9.5.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.5.safetensors", + "size": "6.34GB" + }, + { + "name": "kolors/vae/diffusion_pytorch_model.fp16.safetensors", + "type": "VAE", + "base": "Kolors", + "save_path": "vae/kolors", + "description": "Kolors VAE", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.fp16.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/vae/diffusion_pytorch_model.fp16.safetensors", + "size": "167MB" + }, + { + "name": "kolors/vae/diffusion_pytorch_model.safetensors", + "type": "VAE", + "base": "Kolors", + "save_path": "vae/kolors", + "description": "Kolors VAE", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/vae/diffusion_pytorch_model.safetensors", + "size": "335MB" }, { - "name": "animatediff/v3_sd15_sparsectrl_rgb.ckpt (ComfyUI-AnimateDiff-Evolved)", - "type": "controlnet", - "base": "SD1.x", - "save_path": "controlnet/SD1.5/animatediff", - "description": "AnimateDiff SparseCtrl RGB ControlNet model", - "reference": "https://huggingface.co/guoyww/animatediff", - "filename": "v3_sd15_sparsectrl_rgb.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_rgb.ckpt" + "name": "deepseek-ai/Janus-Pro-1B", + "type": "Janus-Pro", + "base": "Janus-Pro", + "save_path": "Janus-Pro", + "description": "[SNAPSHOT] Janus-Pro-1B model.[w/You cannot download this item on ComfyUI-Manager versions below V3.18]", + "reference": "https://huggingface.co/deepseek-ai/Janus-Pro-1B", + "filename": "", + "url": "deepseek-ai/Janus-Pro-1B", + "size": "7.8GB" }, { - "name": "animatediff/v3_sd15_sparsectrl_scribble.ckpt", - "type": "controlnet", - "base": "SD1.x", - "save_path": "controlnet/SD1.5/animatediff", - "description": "AnimateDiff SparseCtrl Scribble ControlNet model", - "reference": "https://huggingface.co/guoyww/animatediff", - "filename": "v3_sd15_sparsectrl_scribble.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_scribble.ckpt" - }, - { - "name": "animatediff/v3_sd15_mm.ckpt (ComfyUI-AnimateDiff-Evolved)", - "type": "animatediff", - "base": "SD1.x", - "save_path": "custom_nodes/ComfyUI-AnimateDiff-Evolved/models", - "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node. (Note: Requires ComfyUI-Manager V0.24 or above)", - "reference": "https://huggingface.co/guoyww/animatediff", - "filename": "v3_sd15_mm.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_mm.ckpt" - }, - { - "name": "animatediff/v3_sd15_adapter.ckpt", - "type": "lora", - "base": "SD1.x", - "save_path": "loras/SD1.5/animatediff", - "description": "AnimateDiff Adapter LoRA (SD1.5)", - "reference": "https://huggingface.co/guoyww/animatediff", - "filename": "v3_sd15_adapter.ckpt", - "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_adapter.ckpt" + "name": "deepseek-ai/Janus-Pro-7B", + "type": "Janus-Pro", + "base": "Janus-Pro", + "save_path": "Janus-Pro", + "description": "[SNAPSHOT] Janus-Pro-7B model.[w/You cannot download this item on ComfyUI-Manager versions below V3.18]", + "reference": "https://huggingface.co/deepseek-ai/Janus-Pro-7B", + "filename": "", + "url": "deepseek-ai/Janus-Pro-7B", + "size": "14.85GB" }, { - "name": "Segmind-Vega", - "type": "checkpoints", - "base": "segmind-vega", - "save_path": "checkpoints/segmind-vega", - "description": "The Segmind-Vega Model is a distilled version of the Stable Diffusion XL (SDXL), offering a remarkable 70% reduction in size and an impressive 100% speedup while retaining high-quality text-to-image generation capabilities.", - "reference": "https://huggingface.co/segmind/Segmind-Vega", - "filename": "segmind-vega.safetensors", - "url": "https://huggingface.co/segmind/Segmind-Vega/resolve/main/segmind-vega.safetensors" - }, - { - "name": "Segmind-VegaRT - Latent Consistency Model (LCM) LoRA of Segmind-Vega", - "type": "lora", - "base": "segmind-vega", - "save_path": "loras/segmind-vega", - "description": "Segmind-VegaRT a distilled consistency adapter for Segmind-Vega that allows to reduce the number of inference steps to only between 2 - 8 steps.", - "reference": "https://huggingface.co/segmind/Segmind-VegaRT", - "filename": "pytorch_lora_weights.safetensors", - "url": "https://huggingface.co/segmind/Segmind-VegaRT/resolve/main/pytorch_lora_weights.safetensors" - }, - - { - "name": "stabilityai/Stable Zero123", - "type": "zero123", - "base": "zero123", - "save_path": "checkpoints/zero123", - "description": "Stable Zero123 is a model for view-conditioned image generation based on [a/Zero123](https://github.com/cvlab-columbia/zero123).", - "reference": "https://huggingface.co/stabilityai/stable-zero123", - "filename": "stable_zero123.ckpt", - "url": "https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt" - }, - { - "name": "LongAnimatediff/lt_long_mm_32_frames.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", - "type": "animatediff", + "name": "Leoxing/pia.ckpt", + "type": "animatediff-pia", "base": "SD1.x", "save_path": "animatediff_models", - "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", - "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", - "filename": "lt_long_mm_32_frames.ckpt", - "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_32_frames.ckpt" + "description": "AnimateDiff-PIA Model", + "reference": "https://huggingface.co/Leoxing/PIA/tree/main", + "filename": "pia.ckpt", + "url": "https://huggingface.co/Leoxing/PIA/resolve/main/pia.ckpt", + "size": "1.67GB" + }, + + { + "name": "comfyanonymous/cosmos_cv8x8x8_1.0.safetensors", + "type": "VAE", + "base": "Cosmos-1.0", + "save_path": "default", + "description": "VAE model for Cosmos 1.0", + "reference": "https://huggingface.co/comfyanonymous/cosmos_1.0_text_encoder_and_VAE_ComfyUI/tree/main", + "filename": "cosmos_cv8x8x8_1.0.safetensors", + "url": "https://huggingface.co/comfyanonymous/cosmos_1.0_text_encoder_and_VAE_ComfyUI/resolve/main/vae/cosmos_cv8x8x8_1.0.safetensors", + "size": "211MB" }, { - "name": "LongAnimatediff/lt_long_mm_16_64_frames.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", - "type": "animatediff", - "base": "SD1.x", - "save_path": "animatediff_models", - "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", - "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", - "filename": "lt_long_mm_16_64_frames.ckpt", - "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames.ckpt" + "name": "mcmonkey/Cosmos-1_0-Diffusion-7B-Text2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Text2World Diffusion Model (7B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-7B-Text2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-7B-Text2World.safetensors", + "size": "14.5GB" }, { - "name": "ip-adapter_sd15.safetensors", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "ip-adapter_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.safetensors" + "name": "mcmonkey/Cosmos-1_0-Diffusion-7B-Video2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Video2World Diffusion Model (7B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-7B-Video2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-7B-Video2World.safetensors", + "size": "14.5GB" }, { - "name": "ip-adapter_sd15_light.safetensors", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "ip-adapter_sd15_light.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light.safetensors" + "name": "mcmonkey/Cosmos-1_0-Diffusion-14B-Text2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Text2World Diffusion Model (14B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-14B-Text2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-14B-Text2World.safetensors", + "size": "28.5GB" }, { - "name": "ip-adapter_sd15_vit-G.safetensors", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "ip-adapter_sd15_vit-G.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_vit-G.safetensors" + "name": "mcmonkey/Cosmos-1_0-Diffusion-14B-Video2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Video2World Diffusion Model (14B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-14B-Video2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-14B-Video2World.safetensors", + "size": "28.5GB" + }, + + { + "name": "Comfy-Org/llava_llama3_fp8_scaled.safetensors", + "type": "clip", + "base": "LLaVA-Llama-3", + "save_path": "text_encoders", + "description": "llava_llama3_fp8_scaled text encoder model. This is required for using Hunyuan Video.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "llava_llama3_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/llava_llama3_fp8_scaled.safetensors", + "size": "9.09GB" }, { - "name": "ip-adapter-plus_sd15.safetensors", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "ip-adapter-plus_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors" - }, - { - "name": "ip-adapter-plus-face_sd15.safetensors", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "ip-adapter-plus-face_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus-face_sd15.safetensors" - }, - { - "name": "ip-adapter-full-face_sd15.safetensors", - "type": "IP-Adapter", - "base": "SD1.5", - "save_path": "ipadapter", - "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "ip-adapter-full-face_sd15.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-full-face_sd15.safetensors" - }, - { - "name": "ip-adapter_sdxl.safetensors", - "type": "IP-Adapter", - "base": "SDXL", - "save_path": "ipadapter", - "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "ip-adapter_sdxl.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl.safetensors" - }, - { - "name": "ip-adapter_sdxl_vit-h.safetensors", - "type": "IP-Adapter", - "base": "SDXL", - "save_path": "ipadapter", - "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints", - "reference": "https://huggingface.co/h94/IP-Adapter", - "filename": "ip-adapter_sdxl_vit-h.safetensors", - "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl_vit-h.safetensors" + "name": "Comfy-Org/llava_llama3_fp16.safetensors", + "type": "clip", + "base": "LLaVA-Llama-3", + "save_path": "text_encoders", + "description": "llava_llama3_fp16 text encoder model. This is required for using Hunyuan Video.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "llava_llama3_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/llava_llama3_fp16.safetensors", + "size": "16.1GB" } ] } diff --git a/node_db/tutorial/custom-node-list.json b/node_db/tutorial/custom-node-list.json index d71faec3..16b5255e 100644 --- a/node_db/tutorial/custom-node-list.json +++ b/node_db/tutorial/custom-node-list.json @@ -1,5 +1,15 @@ { "custom_nodes": [ + { + "author": "Comfy-Org", + "title": "ComfyUI React Extension Template", + "reference": "https://github.com/Comfy-Org/ComfyUI-React-Extension-Template", + "files": [ + "https://github.com/Comfy-Org/ComfyUI-React-Extension-Template" + ], + "install_type": "git-clone", + "description": "A minimal template for creating React/TypeScript frontend extensions for ComfyUI, with complete boilerplate setup including internationalization and unit testing." + }, { "author": "Suzie1", "title": "Guide To Making Custom Nodes in ComfyUI", @@ -80,16 +90,6 @@ "install_type": "git-clone", "description": "Tutorial nodes" }, - { - "author": "GraftingRayman", - "title": "ComfyUI-Trajectory", - "reference": "https://github.com/GraftingRayman/ComfyUI-Trajectory", - "files": [ - "https://github.com/GraftingRayman/ComfyUI-Trajectory" - ], - "install_type": "git-clone", - "description": "Nodes:GR Trajectory" - }, { "author": "wailovet", "title": "ComfyUI-WW", @@ -100,16 +100,6 @@ "install_type": "git-clone", "description": "Nodes:WW_ImageResize" }, - { - "author": "bmz55", - "title": "bmz nodes", - "reference": "https://github.com/bmz55/comfyui-bmz-nodes", - "files": [ - "https://github.com/bmz55/comfyui-bmz-nodes" - ], - "install_type": "git-clone", - "description": "Nodes:Load Images From Dir With Name (Inspire - BMZ), Count Images In Dir (BMZ), Get Level Text (BMZ), Get Level Float (BMZ)" - }, { "author": "azure-dragon-ai", "title": "ComfyUI-HPSv2-Nodes", @@ -161,24 +151,206 @@ "description": "This module provides an annotation @ComfyFunc to streamline adding custom node types in ComfyUI. It processes your function's signature to create a wrapped function and custom node definition required for ComfyUI, eliminating all the boilerplate code. In most cases you can just add a @ComfyFunc(\"category\") annotation to your existing function." }, { - "author": "MokkaBoss1", - "title": "Woman_in_a_dress", - "reference": "https://github.com/MokkaBoss1/Woman_in_a_dress", + "author": "OuticNZ", + "title": "ComfyUI-Simple-Of-Complex", + "reference": "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex", "files": [ - "https://github.com/MokkaBoss1/Woman_in_a_dress/raw/main/Woman_In_A_Dress.py" + "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex" ], "install_type": "git-clone", - "description": "Nodes:Woman_in_a_dress" + "description": "Keeping it simple for starting. Single branch for now and will add development branch later." }, { - "author": "shinich39", - "title": "comfyui-concat-text-39", - "reference": "https://github.com/shinich39/comfyui-concat-text-39", + "author": "jtong", + "title": "comfyui-jtong-workflow", + "reference": "https://github.com/jtong/comfyui-jtong-workflow", "files": [ - "https://github.com/shinich39/comfyui-concat-text-39" + "https://github.com/jtong/comfyui-jtong-workflow" ], "install_type": "git-clone", - "description": "Nodes:Concatenate multiple text nodes." + "description": "Nodes:jtong.Highway, Example" + }, + { + "author": "thinkthinking", + "title": "ComfyUI-Ye", + "reference": "https://github.com/thinkthinking/ComfyUI-Ye", + "files": [ + "https://github.com/thinkthinking/ComfyUI-Ye" + ], + "install_type": "git-clone", + "description": "Nodes:Signature|Ye, CheckpointLoader|Ye, PrintHelloWorld|Ye." + }, + { + "author": "BoosterCore", + "title": "ComfyUI-BC-Experimental", + "reference": "https://github.com/BoosterCore/ComfyUI-BC-Experimental", + "files": [ + "https://github.com/BoosterCore/ComfyUI-BC-Experimental" + ], + "install_type": "git-clone", + "description": "Nodes:ClipTextEncodeBC, SaveAnyText, SimpleText" + }, + { + "author": "sonyeon-sj", + "title": "ComfyUI-easy_ImageSize_Selecter", + "reference": "https://github.com/sonyeon-sj/ComfyUI-easy_ImageSize_Selecter", + "files": [ + "https://github.com/sonyeon-sj/ComfyUI-easy_ImageSize_Selecter" + ], + "install_type": "git-clone", + "description": "Custom node for ComfyUI Select the image size from the preset and select Vertical and Horizontal to output Width and Height." + }, + { + "author": "boricuapab", + "title": "ComfyUI_BoricuapabWFNodePack", + "reference": "https://github.com/boricuapab/ComfyUI_BoricuapabWFNodePack", + "files": [ + "https://github.com/boricuapab/ComfyUI_BoricuapabWFNodePack" + ], + "install_type": "git-clone", + "description": "Learning how to make my own comfy ui custom nodes" + }, + { + "author": "mira-6", + "title": "mira-wildcard-node", + "reference": "https://github.com/mira-6/mira-wildcard-node", + "files": [ + "https://github.com/mira-6/mira-wildcard-node" + ], + "install_type": "git-clone", + "description": "Mira's Simple Wildcard Node" + }, + { + "author": "BetaDoggo", + "title": "ComfyUI Tetris", + "id": "tetris", + "reference": "https://github.com/BetaDoggo/ComfyUI-Tetris", + "files": [ + "https://github.com/BetaDoggo/ComfyUI-Tetris" + ], + "install_type": "git-clone", + "description": "The primitive node and dummy input are required because comfy doesn't accept requests with identical graphs. You'll also need a show text node. I like the one from ComfyUI-Custom-Scripts. I got the generic tetris remake from claude so it may or may not be ripped from somewhere else." + }, + { + "author": "FlyMyAI", + "title": "ComfyUI-ExampleNode", + "reference": "https://github.com/FlyMyAI/ComfyUI-ExampleNode", + "files": [ + "https://github.com/FlyMyAI/ComfyUI-ExampleNode" + ], + "install_type": "git-clone", + "description": "Node to provide convenient ComfyUI standard, supported by flymy_comfyui." + }, + { + "author": "Wanghanying", + "title": "ComfyUI_RAGDemo", + "reference": "https://github.com/Wanghanying/ComfyUI_RAGDemo", + "files": [ + "https://github.com/Wanghanying/ComfyUI_RAGDemo" + ], + "install_type": "git-clone", + "description": "RAG Demo for LLM" + }, + { + "author": "FelixTeutsch", + "title": "BachelorThesis", + "reference": "https://github.com/FelixTeutsch/BachelorThesis", + "files": [ + "https://github.com/FelixTeutsch/BachelorThesis" + ], + "install_type": "git-clone", + "description": "This is a ComfyUi custom node, that build a new UI on top of the already existing AI, to enable the use of custom controllers" + }, + { + "author": "jhj0517", + "title": "ComfyUI-CustomNodes-Template", + "reference": "https://github.com/jhj0517/ComfyUI-CustomNodes-Template", + "files": [ + "https://github.com/jhj0517/ComfyUI-CustomNodes-Template" + ], + "install_type": "git-clone", + "description": "This is the ComfyUI custom node template repository that anyone can use to create their own custom nodes." + }, + { + "author": "laogou666", + "title": "Comfyui_LG_Advertisement", + "reference": "https://github.com/LAOGOU-666/Comfyui_LG_Advertisement", + "files": [ + "https://github.com/LAOGOU-666/Comfyui_LG_Advertisement" + ], + "install_type": "git-clone", + "description": "A node for demonstration." + }, + { + "author": "amorano", + "title": "cozy_spoke", + "reference": "https://github.com/cozy-comfyui/cozy_spoke", + "files": [ + "https://github.com/cozy-comfyui/cozy_spoke" + ], + "install_type": "git-clone", + "description": "Example node communicating between ComfyUI Javascript and Python." + }, + { + "author": "amorano", + "title": "Cozy Link Toggle", + "id": "cozyLinkToggle", + "reference": "https://github.com/cozy-comfyui/cozy_link_toggle", + "files": [ + "https://github.com/cozy-comfyui/cozy_link_toggle" + ], + "install_type": "git-clone", + "description": "Example of using ComfyUI Toolbar to Toggle ComfyUI links on/off" + }, + { + "author": "xhiroga", + "title": "ComfyUI-TypeScript-CustomNode", + "reference": "https://github.com/xhiroga/ComfyUI-TypeScript-CustomNode", + "files": [ + "https://github.com/xhiroga/ComfyUI-TypeScript-CustomNode" + ], + "install_type": "git-clone", + "description": "This project is generated from xhiroga/ComfyUI-TypeScript-CustomNode" + }, + { + "author": "zentrocdot", + "title": "ComfyUI-Turtle_Graphics_Demos", + "reference": "https://github.com/zentrocdot/ComfyUI-Turtle_Graphics_Demo", + "files": [ + "https://github.com/zentrocdot/ComfyUI-Turtle_Graphics_Demo" + ], + "description": "ComfyUI node for creating some Turtle Graphic demos.", + "install_type": "git-clone" + }, + { + "author": "cozy-comfyui", + "title": "cozy_ex_dynamic", + "reference": "https://github.com/cozy-comfyui/cozy_ex_dynamic", + "files": [ + "https://github.com/cozy-comfyui/cozy_ex_dynamic" + ], + "description": "Dynamic Node examples for ComfyUI", + "install_type": "git-clone" + }, + { + "author": "Jonathon-Doran", + "title": "remote-combo-demo", + "reference": "https://github.com/Jonathon-Doran/remote-combo-demo", + "files": [ + "https://github.com/Jonathon-Doran/remote-combo-demo" + ], + "install_type": "git-clone", + "description": "A minimal test suite demonstrating how remote COMBO inputs behave in ComfyUI, with and without force_input" + }, + { + "author": "J1mB091", + "title": "ComfyUI-J1mB091 Custom Nodes", + "reference": "https://github.com/J1mB091/ComfyUI-J1mB091", + "files": [ + "https://github.com/J1mB091/ComfyUI-J1mB091" + ], + "install_type": "git-clone", + "description": "Vibe Coded ComfyUI Custom Nodes" } ] } \ No newline at end of file diff --git a/node_db/tutorial/extension-node-map.json b/node_db/tutorial/extension-node-map.json index 9e26dfee..d5b0c984 100644 --- a/node_db/tutorial/extension-node-map.json +++ b/node_db/tutorial/extension-node-map.json @@ -1 +1,573 @@ -{} \ No newline at end of file +{ + "https://github.com/BadCafeCode/execution-inversion-demo-comfyui": [ + [ + "AccumulateNode", + "AccumulationGetItemNode", + "AccumulationGetLengthNode", + "AccumulationHeadNode", + "AccumulationSetItemNode", + "AccumulationTailNode", + "AccumulationToListNode", + "BoolOperationNode", + "ComponentInput", + "ComponentMetadata", + "ComponentOutput", + "DebugPrint", + "ExecutionBlocker", + "FloatConditions", + "ForLoopClose", + "ForLoopOpen", + "IntConditions", + "IntMathOperation", + "InversionDemoAdvancedPromptNode", + "InversionDemoLazyConditional", + "InversionDemoLazyIndexSwitch", + "InversionDemoLazyMixImages", + "InversionDemoLazySwitch", + "ListToAccumulationNode", + "MakeListNode", + "StringConditions", + "ToBoolNode", + "WhileLoopClose", + "WhileLoopOpen" + ], + { + "title_aux": "execution-inversion-demo-comfyui" + } + ], + "https://github.com/BetaDoggo/ComfyUI-Tetris": [ + [ + "Tetris" + ], + { + "title_aux": "ComfyUI Tetris" + } + ], + "https://github.com/BoosterCore/ComfyUI-BC-Experimental": [ + [ + "ClipTextEncodeBC", + "ClipTextEncodeBCA", + "FluxEmptyLatentSize", + "LoraWithTriggerWord", + "SaveAnyText", + "SimpleText" + ], + { + "title_aux": "ComfyUI-BC-Experimental" + } + ], + "https://github.com/FlyMyAI/ComfyUI-ExampleNode": [ + [ + "ExampleT2IFMANode" + ], + { + "title_aux": "ComfyUI-ExampleNode" + } + ], + "https://github.com/IvanRybakov/comfyui-node-int-to-string-convertor": [ + [ + "Int To String" + ], + { + "title_aux": "comfyui-node-int-to-string-convertor" + } + ], + "https://github.com/LarryJane491/Custom-Node-Base": [ + [ + "My First Node" + ], + { + "title_aux": "Custom-Node-Base" + } + ], + "https://github.com/OuticNZ/ComfyUI-Simple-Of-Complex": [ + [ + "Pipe From Parameters", + "Pipe To Parameters", + "Prompt Tidy", + "Text Switch 2 Way", + "Text With Context" + ], + { + "title_aux": "ComfyUI-Simple-Of-Complex" + } + ], + "https://github.com/Suzie1/ComfyUI_Guide_To_Making_Custom_Nodes": [ + [ + "Concatenate Hello World", + "Hello World Overlay Text", + "Print Hello World" + ], + { + "title_aux": "Guide To Making Custom Nodes in ComfyUI" + } + ], + "https://github.com/Wanghanying/ComfyUI_RAGDemo": [ + [ + "testRAG" + ], + { + "title_aux": "ComfyUI_RAGDemo" + } + ], + "https://github.com/azure-dragon-ai/ComfyUI-HPSv2-Nodes": [ + [ + "GetImageSize", + "HaojihuiHPSv2ImageProcessor", + "HaojihuiHPSv2ImageScore", + "HaojihuiHPSv2ImageScores", + "HaojihuiHPSv2Loader", + "HaojihuiHPSv2SaveAnimatedWEBP", + "HaojihuiHPSv2SaveImage", + "HaojihuiHPSv2SaveWEBP", + "HaojihuiHPSv2SaveWebpImage", + "HaojihuiHPSv2TextProcessor", + "SaveImageWebp", + "ScaleShort" + ], + { + "title_aux": "ComfyUI-HPSv2-Nodes" + } + ], + "https://github.com/bamboodia/BAM_Nodes": [ + [ + "BAM Crop To Ratio", + "BAM Empty Latent By Ratio", + "BAM Get Shortest Side", + "BAM OnOff INT", + "BAM Random Float", + "BAM Random Image From Folder" + ], + { + "title_aux": "BAM Nodes" + } + ], + "https://github.com/boricuapab/ComfyUI_BoricuapabWFNodePack": [ + [ + "BoricuapabWF Concatenate Hello World", + "BoricuapabWF Integer", + "BoricuapabWF Print Hello Puerto Rican World", + "BoricuapabWF Print Puerto Rican" + ], + { + "title_aux": "ComfyUI_BoricuapabWFNodePack" + } + ], + "https://github.com/comfyanonymous/ComfyUI": [ + [ + "AddNoise", + "AlignYourStepsScheduler", + "BasicGuider", + "BasicScheduler", + "BetaSamplingScheduler", + "CFGGuider", + "CLIPAttentionMultiply", + "CLIPLoader", + "CLIPMergeAdd", + "CLIPMergeSimple", + "CLIPMergeSubtract", + "CLIPSave", + "CLIPSetLastLayer", + "CLIPTextEncode", + "CLIPTextEncodeControlnet", + "CLIPTextEncodeFlux", + "CLIPTextEncodeHunyuanDiT", + "CLIPTextEncodePixArtAlpha", + "CLIPTextEncodeSD3", + "CLIPTextEncodeSDXL", + "CLIPTextEncodeSDXLRefiner", + "CLIPVisionEncode", + "CLIPVisionLoader", + "Canny", + "CheckpointLoader", + "CheckpointLoaderSimple", + "CheckpointSave", + "ConditioningAverage", + "ConditioningCombine", + "ConditioningConcat", + "ConditioningSetArea", + "ConditioningSetAreaPercentage", + "ConditioningSetAreaStrength", + "ConditioningSetMask", + "ConditioningSetTimestepRange", + "ConditioningStableAudio", + "ConditioningZeroOut", + "ControlNetApply", + "ControlNetApplyAdvanced", + "ControlNetApplySD3", + "ControlNetInpaintingAliMamaApply", + "ControlNetLoader", + "CropMask", + "DiffControlNetLoader", + "DifferentialDiffusion", + "DiffusersLoader", + "DisableNoise", + "DualCFGGuider", + "DualCLIPLoader", + "EmptyHunyuanLatentVideo", + "EmptyImage", + "EmptyLTXVLatentVideo", + "EmptyLatentAudio", + "EmptyLatentImage", + "EmptyMochiLatentVideo", + "EmptySD3LatentImage", + "ExponentialScheduler", + "FeatherMask", + "FlipSigmas", + "FluxGuidance", + "FreeU", + "FreeU_V2", + "GITSScheduler", + "GLIGENLoader", + "GLIGENTextBoxApply", + "GrowMask", + "HyperTile", + "HypernetworkLoader", + "ImageBatch", + "ImageBlend", + "ImageBlur", + "ImageColorToMask", + "ImageCompositeMasked", + "ImageCrop", + "ImageFromBatch", + "ImageInvert", + "ImageOnlyCheckpointLoader", + "ImageOnlyCheckpointSave", + "ImagePadForOutpaint", + "ImageQuantize", + "ImageScale", + "ImageScaleBy", + "ImageScaleToTotalPixels", + "ImageSharpen", + "ImageToMask", + "ImageUpscaleWithModel", + "InpaintModelConditioning", + "InstructPixToPixConditioning", + "InvertMask", + "JoinImageWithAlpha", + "KSampler", + "KSamplerAdvanced", + "KSamplerSelect", + "KarrasScheduler", + "LTXVConditioning", + "LTXVImgToVideo", + "LTXVScheduler", + "LaplaceScheduler", + "LatentAdd", + "LatentApplyOperation", + "LatentApplyOperationCFG", + "LatentBatch", + "LatentBatchSeedBehavior", + "LatentBlend", + "LatentComposite", + "LatentCompositeMasked", + "LatentCrop", + "LatentFlip", + "LatentFromBatch", + "LatentInterpolate", + "LatentMultiply", + "LatentOperationSharpen", + "LatentOperationTonemapReinhard", + "LatentRotate", + "LatentSubtract", + "LatentUpscale", + "LatentUpscaleBy", + "Load3D", + "Load3DAnimation", + "LoadAudio", + "LoadImage", + "LoadImageMask", + "LoadLatent", + "LoraLoader", + "LoraLoaderModelOnly", + "LoraSave", + "Mahiro", + "MaskComposite", + "MaskToImage", + "ModelMergeAdd", + "ModelMergeAuraflow", + "ModelMergeBlocks", + "ModelMergeFlux1", + "ModelMergeLTXV", + "ModelMergeMochiPreview", + "ModelMergeSD1", + "ModelMergeSD2", + "ModelMergeSD35_Large", + "ModelMergeSD3_2B", + "ModelMergeSDXL", + "ModelMergeSimple", + "ModelMergeSubtract", + "ModelSamplingAuraFlow", + "ModelSamplingContinuousEDM", + "ModelSamplingContinuousV", + "ModelSamplingDiscrete", + "ModelSamplingFlux", + "ModelSamplingLTXV", + "ModelSamplingSD3", + "ModelSamplingStableCascade", + "ModelSave", + "Morphology", + "PatchModelAddDownscale", + "PerpNeg", + "PerpNegGuider", + "PerturbedAttentionGuidance", + "PhotoMakerEncode", + "PhotoMakerLoader", + "PolyexponentialScheduler", + "PorterDuffImageComposite", + "Preview3D", + "PreviewAudio", + "PreviewImage", + "RandomNoise", + "RebatchImages", + "RebatchLatents", + "RepeatImageBatch", + "RepeatLatentBatch", + "RescaleCFG", + "SDTurboScheduler", + "SD_4XUpscale_Conditioning", + "SV3D_Conditioning", + "SVD_img2vid_Conditioning", + "SamplerCustom", + "SamplerCustomAdvanced", + "SamplerDPMAdaptative", + "SamplerDPMPP_2M_SDE", + "SamplerDPMPP_2S_Ancestral", + "SamplerDPMPP_3M_SDE", + "SamplerDPMPP_SDE", + "SamplerEulerAncestral", + "SamplerEulerAncestralCFGPP", + "SamplerEulerCFGpp", + "SamplerLCMUpscale", + "SamplerLMS", + "SaveAnimatedPNG", + "SaveAnimatedWEBP", + "SaveAudio", + "SaveImage", + "SaveImageWebsocket", + "SaveLatent", + "SelfAttentionGuidance", + "SetLatentNoiseMask", + "SetUnionControlNetType", + "SkipLayerGuidanceDiT", + "SkipLayerGuidanceSD3", + "SolidMask", + "SplitImageWithAlpha", + "SplitSigmas", + "SplitSigmasDenoise", + "StableCascade_EmptyLatentImage", + "StableCascade_StageB_Conditioning", + "StableCascade_StageC_VAEEncode", + "StableCascade_SuperResolutionControlnet", + "StableZero123_Conditioning", + "StableZero123_Conditioning_Batched", + "StubConstantImage", + "StubFloat", + "StubImage", + "StubInt", + "StubMask", + "StyleModelApply", + "StyleModelLoader", + "TestAccumulateNode", + "TestAccumulationGetItemNode", + "TestAccumulationGetLengthNode", + "TestAccumulationHeadNode", + "TestAccumulationSetItemNode", + "TestAccumulationTailNode", + "TestAccumulationToListNode", + "TestBoolOperationNode", + "TestCustomIsChanged", + "TestCustomValidation1", + "TestCustomValidation2", + "TestCustomValidation3", + "TestCustomValidation4", + "TestCustomValidation5", + "TestDynamicDependencyCycle", + "TestExecutionBlocker", + "TestFloatConditions", + "TestForLoopClose", + "TestForLoopOpen", + "TestIntConditions", + "TestIntMathOperation", + "TestIsChangedWithConstants", + "TestLazyMixImages", + "TestListToAccumulationNode", + "TestMakeListNode", + "TestMixedExpansionReturns", + "TestStringConditions", + "TestToBoolNode", + "TestVariadicAverage", + "TestWhileLoopClose", + "TestWhileLoopOpen", + "ThresholdMask", + "TomePatchModel", + "TorchCompileModel", + "TripleCLIPLoader", + "UNETLoader", + "UNetCrossAttentionMultiply", + "UNetSelfAttentionMultiply", + "UNetTemporalAttentionMultiply", + "UpscaleModelLoader", + "VAEDecode", + "VAEDecodeAudio", + "VAEDecodeTiled", + "VAEEncode", + "VAEEncodeAudio", + "VAEEncodeForInpaint", + "VAEEncodeTiled", + "VAELoader", + "VAESave", + "VPScheduler", + "VideoLinearCFGGuidance", + "VideoTriangleCFGGuidance", + "WebcamCapture", + "unCLIPCheckpointLoader", + "unCLIPConditioning" + ], + { + "title_aux": "ComfyUI" + } + ], + "https://github.com/dynamixar/Atluris": [ + [ + "RandomLine" + ], + { + "title_aux": "Atluris" + } + ], + "https://github.com/ecjojo/ecjojo-example-nodes": [ + [ + "BiggerNote_Example", + "DisplayTextNode_Example", + "EmptyNode_Example", + "ExampleNode_Example", + "FilePrefixNode_Example", + "HelloWorldNode_Example", + "RandomSizeNode_Example", + "StringNode_Example", + "TextOverlayNode_Example" + ], + { + "title_aux": "ecjojo_example_nodes" + } + ], + "https://github.com/et118/ComfyUI-ElGogh-Nodes": [ + [ + "ElGoghCLIPSetLastLayer", + "ElGoghCheckpointLoaderSimple", + "ElGoghEmptyLatentImage", + "ElGoghKSamplerAdvanced", + "ElGoghNegativePrompt", + "ElGoghPositivePrompt", + "ElGoghPrimaryLoraLoader", + "ElGoghSecondaryLoraLoader", + "ElGoghSendWebsocketNSFWBool", + "ElGoghTertiaryLoraLoader", + "ElGoghVAELoader" + ], + { + "title_aux": "ComfyUI-ElGogh-Nodes" + } + ], + "https://github.com/foxtrot-roger/comfyui-custom-nodes": [ + [ + "RF_Tutorial" + ], + { + "title_aux": "comfyui-custom-nodes" + } + ], + "https://github.com/jhj0517/ComfyUI-CustomNodes-Template": [ + [ + "(Down)Load My Model", + "Calculate Minus", + "Calculate Plus", + "Example Output Node" + ], + { + "title_aux": "ComfyUI-CustomNodes-Template" + } + ], + "https://github.com/jtong/comfyui-jtong-workflow": [ + [ + "Example", + "high_workflow_caller", + "jtong.Highend", + "jtong.Highway" + ], + { + "author": "Trung0246", + "description": "Random nodes for ComfyUI I made to solve my struggle with ComfyUI (ex: pipe, process). Have varying quality.", + "nickname": "ComfyUI-0246", + "title": "ComfyUI-0246", + "title_aux": "comfyui-jtong-workflow" + } + ], + "https://github.com/kappa54m/ComfyUI_Usability": [ + [ + "KLoadImageByPath", + "KLoadImageByPathAdvanced", + "KLoadImageDedup" + ], + { + "title_aux": "ComfyUI-HPSv2-Nodes" + } + ], + "https://github.com/mira-6/mira-wildcard-node": [ + [ + "MiraWildcard" + ], + { + "author": "mira-6", + "description": "Single-node wildcard implementation.", + "nickname": "mira-wildcard-node", + "title": "mira-wildcard-node", + "title_aux": "mira-wildcard-node" + } + ], + "https://github.com/sonyeon-sj/ComfyUI-easy_ImageSize_Selecter": [ + [ + "ImageSizer", + "promptSelecter" + ], + { + "title_aux": "ComfyUI-easy_ImageSize_Selecter" + } + ], + "https://github.com/thinkthinking/ComfyUI-Ye": [ + [ + "CheckpointLoader|Ye", + "OllamaVision|Ye", + "PrintHelloWorld|Ye", + "Signature|Ye" + ], + { + "title_aux": "ComfyUI-Ye" + } + ], + "https://github.com/wailovet/ComfyUI-WW": [ + [ + "WW_AccumulationPreviewImages", + "WW_AppendString", + "WW_CurrentPreviewImages", + "WW_ImageResize", + "WW_PreviewTextNode", + "WW_RandString" + ], + { + "title_aux": "ComfyUI-WW" + } + ], + "https://github.com/yowipr/ComfyUI-Manual": [ + [ + "EXAMPLE", + "M_Layer", + "M_Output", + "M_RenderArea" + ], + { + "title_aux": "ComfyUI-Manual" + } + ] +} \ No newline at end of file diff --git a/node_db/tutorial/scan.sh b/node_db/tutorial/scan.sh index 5d8d8c48..6e3e6daf 100755 --- a/node_db/tutorial/scan.sh +++ b/node_db/tutorial/scan.sh @@ -1,4 +1,3 @@ #!/bin/bash -source ../../../../venv/bin/activate -rm .tmp/*.py > /dev/null -python ../../scanner.py +rm ~/.tmp/dev/*.py > /dev/null 2>&1 +python ../../scanner.py ~/.tmp/tutorial diff --git a/notebooks/comfyui_colab_with_manager.ipynb b/notebooks/comfyui_colab_with_manager.ipynb index 55ee514a..3cfa484b 100644 --- a/notebooks/comfyui_colab_with_manager.ipynb +++ b/notebooks/comfyui_colab_with_manager.ipynb @@ -1,371 +1,373 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "aaaaaaaaaa" - }, - "source": [ - "Git clone the repo and install the requirements. (ignore the pip errors about protobuf)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "bbbbbbbbbb" - }, - "outputs": [], - "source": [ - "# #@title Environment Setup\n", - "\n", - "from pathlib import Path\n", - "\n", - "OPTIONS = {}\n", - "\n", - "USE_GOOGLE_DRIVE = True #@param {type:\"boolean\"}\n", - "UPDATE_COMFY_UI = True #@param {type:\"boolean\"}\n", - "USE_COMFYUI_MANAGER = True #@param {type:\"boolean\"}\n", - "INSTALL_CUSTOM_NODES_DEPENDENCIES = True #@param {type:\"boolean\"}\n", - "OPTIONS['USE_GOOGLE_DRIVE'] = USE_GOOGLE_DRIVE\n", - "OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI\n", - "OPTIONS['USE_COMFYUI_MANAGER'] = USE_COMFYUI_MANAGER\n", - "OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES'] = INSTALL_CUSTOM_NODES_DEPENDENCIES\n", - "\n", - "current_dir = !pwd\n", - "WORKSPACE = f\"{current_dir[0]}/ComfyUI\"\n", - "\n", - "if OPTIONS['USE_GOOGLE_DRIVE']:\n", - " !echo \"Mounting Google Drive...\"\n", - " %cd /\n", - "\n", - " from google.colab import drive\n", - " drive.mount('/content/drive')\n", - "\n", - " WORKSPACE = \"/content/drive/MyDrive/ComfyUI\"\n", - " %cd /content/drive/MyDrive\n", - "\n", - "![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI\n", - "%cd $WORKSPACE\n", - "\n", - "if OPTIONS['UPDATE_COMFY_UI']:\n", - " !echo -= Updating ComfyUI =-\n", - "\n", - " # Correction of the issue of permissions being deleted on Google Drive.\n", - " ![ -f \".ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\n", - " ![ -f \".ci/nightly/windows_base_files/run_nvidia_gpu.bat\" ] && chmod 755 .ci/nightly/windows_base_files/run_nvidia_gpu.bat\n", - " ![ -f \".ci/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows/update_comfyui_and_python_dependencies.bat\n", - " ![ -f \".ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\n", - " ![ -f \".ci/update_windows/update.py\" ] && chmod 755 .ci/update_windows/update.py\n", - " ![ -f \".ci/update_windows/update_comfyui.bat\" ] && chmod 755 .ci/update_windows/update_comfyui.bat\n", - " ![ -f \".ci/update_windows/README_VERY_IMPORTANT.txt\" ] && chmod 755 .ci/update_windows/README_VERY_IMPORTANT.txt\n", - " ![ -f \".ci/update_windows/run_cpu.bat\" ] && chmod 755 .ci/update_windows/run_cpu.bat\n", - " ![ -f \".ci/update_windows/run_nvidia_gpu.bat\" ] && chmod 755 .ci/update_windows/run_nvidia_gpu.bat\n", - "\n", - " !git pull\n", - "\n", - "!echo -= Install dependencies =-\n", - "!pip3 install accelerate\n", - "!pip3 install einops transformers>=4.25.1 safetensors>=0.3.0 aiohttp pyyaml Pillow scipy tqdm psutil\n", - "!pip3 install xformers!=0.0.18 torch==2.1.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121\n", - "!pip3 install torchsde\n", - "\n", - "if OPTIONS['USE_COMFYUI_MANAGER']:\n", - " %cd custom_nodes\n", - "\n", - " # Correction of the issue of permissions being deleted on Google Drive.\n", - " ![ -f \"ComfyUI-Manager/check.sh\" ] && chmod 755 ComfyUI-Manager/check.sh\n", - " ![ -f \"ComfyUI-Manager/scan.sh\" ] && chmod 755 ComfyUI-Manager/scan.sh\n", - " ![ -f \"ComfyUI-Manager/node_db/dev/scan.sh\" ] && chmod 755 ComfyUI-Manager/node_db/dev/scan.sh\n", - " ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\n", - " ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\n", - "\n", - " ![ ! -d ComfyUI-Manager ] && echo -= Initial setup ComfyUI-Manager =- && git clone https://github.com/ltdrdata/ComfyUI-Manager\n", - " %cd ComfyUI-Manager\n", - " !git pull\n", - "\n", - "%cd $WORKSPACE\n", - "\n", - "if OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES']:\n", - " !echo -= Install custom nodes dependencies =-\n", - " !pip install GitPython\n", - " !python custom_nodes/ComfyUI-Manager/cm-cli.py restore-dependencies\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cccccccccc" - }, - "source": [ - "Download some models/checkpoints/vae or custom comfyui nodes (uncomment the commands for the ones you want)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "dddddddddd" - }, - "outputs": [], - "source": [ - "# Checkpoints\n", - "\n", - "### SDXL\n", - "### I recommend these workflow examples: https://comfyanonymous.github.io/ComfyUI_examples/sdxl/\n", - "\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -P ./models/checkpoints/\n", - "\n", - "# SDXL ReVision\n", - "#!wget -c https://huggingface.co/comfyanonymous/clip_vision_g/resolve/main/clip_vision_g.safetensors -P ./models/clip_vision/\n", - "\n", - "# SD1.5\n", - "!wget -c https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/\n", - "\n", - "# SD2\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n", - "\n", - "# Some SD1.5 anime style\n", - "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n", - "\n", - "# Waifu Diffusion 1.5 (anime style SD2.x 768-v)\n", - "#!wget -c https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors -P ./models/checkpoints/\n", - "\n", - "\n", - "# unCLIP models\n", - "#!wget -c https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", - "\n", - "\n", - "# VAE\n", - "!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n", - "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n", - "#!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n", - "\n", - "\n", - "# Loras\n", - "#!wget -c https://civitai.com/api/download/models/10350 -O ./models/loras/theovercomer8sContrastFix_sd21768.safetensors #theovercomer8sContrastFix SD2.x 768-v\n", - "#!wget -c https://civitai.com/api/download/models/10638 -O ./models/loras/theovercomer8sContrastFix_sd15.safetensors #theovercomer8sContrastFix SD1.x\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -P ./models/loras/ #SDXL offset noise lora\n", - "\n", - "\n", - "# T2I-Adapter\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n", - "\n", - "# T2I Styles Model\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n", - "\n", - "# CLIPVision model (needed for styles model)\n", - "#!wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n", - "\n", - "\n", - "# ControlNet\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/\n", - "\n", - "# ControlNet SDXL\n", - "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors -P ./models/controlnet/\n", - "\n", - "# Controlnet Preprocessor nodes by Fannovel16\n", - "#!cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n", - "\n", - "\n", - "# GLIGEN\n", - "#!wget -c https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors -P ./models/gligen/\n", - "\n", - "\n", - "# ESRGAN upscale model\n", - "#!wget -c https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P ./models/upscale_models/\n", - "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n", - "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kkkkkkkkkkkkkkk" - }, - "source": [ - "### Run ComfyUI with cloudflared (Recommended Way)\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jjjjjjjjjjjjjj" - }, - "outputs": [], - "source": [ - "!wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb\n", - "!dpkg -i cloudflared-linux-amd64.deb\n", - "\n", - "import subprocess\n", - "import threading\n", - "import time\n", - "import socket\n", - "import urllib.request\n", - "\n", - "def iframe_thread(port):\n", - " while True:\n", - " time.sleep(0.5)\n", - " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", - " result = sock.connect_ex(('127.0.0.1', port))\n", - " if result == 0:\n", - " break\n", - " sock.close()\n", - " print(\"\\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\\n\")\n", - "\n", - " p = subprocess.Popen([\"cloudflared\", \"tunnel\", \"--url\", \"http://127.0.0.1:{}\".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n", - " for line in p.stderr:\n", - " l = line.decode()\n", - " if \"trycloudflare.com \" in l:\n", - " print(\"This is the URL to access ComfyUI:\", l[l.find(\"http\"):], end='')\n", - " #print(l, end='')\n", - "\n", - "\n", - "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", - "\n", - "!python main.py --dont-print-server" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kkkkkkkkkkkkkk" - }, - "source": [ - "### Run ComfyUI with localtunnel\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jjjjjjjjjjjjj" - }, - "outputs": [], - "source": [ - "!npm install -g localtunnel\n", - "\n", - "import subprocess\n", - "import threading\n", - "import time\n", - "import socket\n", - "import urllib.request\n", - "\n", - "def iframe_thread(port):\n", - " while True:\n", - " time.sleep(0.5)\n", - " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", - " result = sock.connect_ex(('127.0.0.1', port))\n", - " if result == 0:\n", - " break\n", - " sock.close()\n", - " print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\\n\")\n", - "\n", - " print(\"The password/enpoint ip for localtunnel is:\", urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"))\n", - " p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n", - " for line in p.stdout:\n", - " print(line.decode(), end='')\n", - "\n", - "\n", - "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", - "\n", - "!python main.py --dont-print-server" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gggggggggg" - }, - "source": [ - "### Run ComfyUI with colab iframe (use only in case the previous way with localtunnel doesn't work)\n", - "\n", - "You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n", - "\n", - "If you want to open it in another window use the link.\n", - "\n", - "Note that some UI features like live image previews won't work because the colab iframe blocks websockets." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "hhhhhhhhhh" - }, - "outputs": [], - "source": [ - "import threading\n", - "import time\n", - "import socket\n", - "def iframe_thread(port):\n", - " while True:\n", - " time.sleep(0.5)\n", - " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", - " result = sock.connect_ex(('127.0.0.1', port))\n", - " if result == 0:\n", - " break\n", - " sock.close()\n", - " from google.colab import output\n", - " output.serve_kernel_port_as_iframe(port, height=1024)\n", - " print(\"to open it in a window you can open this link here:\")\n", - " output.serve_kernel_port_as_window(port)\n", - "\n", - "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", - "\n", - "!python main.py --dont-print-server" - ] - } - ], - "metadata": { - "accelerator": "GPU", - "colab": { - "provenance": [] - }, - "gpuClass": "standard", - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "aaaaaaaaaa" + }, + "source": [ + "Git clone the repo and install the requirements. (ignore the pip errors about protobuf)" + ] }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "bbbbbbbbbb" + }, + "outputs": [], + "source": [ + "# #@title Environment Setup\n", + "\n", + "from pathlib import Path\n", + "\n", + "OPTIONS = {}\n", + "\n", + "USE_GOOGLE_DRIVE = True #@param {type:\"boolean\"}\n", + "UPDATE_COMFY_UI = True #@param {type:\"boolean\"}\n", + "USE_COMFYUI_MANAGER = True #@param {type:\"boolean\"}\n", + "INSTALL_CUSTOM_NODES_DEPENDENCIES = True #@param {type:\"boolean\"}\n", + "OPTIONS['USE_GOOGLE_DRIVE'] = USE_GOOGLE_DRIVE\n", + "OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI\n", + "OPTIONS['USE_COMFYUI_MANAGER'] = USE_COMFYUI_MANAGER\n", + "OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES'] = INSTALL_CUSTOM_NODES_DEPENDENCIES\n", + "\n", + "current_dir = !pwd\n", + "WORKSPACE = f\"{current_dir[0]}/ComfyUI\"\n", + "\n", + "if OPTIONS['USE_GOOGLE_DRIVE']:\n", + " !echo \"Mounting Google Drive...\"\n", + " %cd /\n", + "\n", + " from google.colab import drive\n", + " drive.mount('/content/drive')\n", + "\n", + " WORKSPACE = \"/content/drive/MyDrive/ComfyUI\"\n", + " %cd /content/drive/MyDrive\n", + "\n", + "![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI\n", + "%cd $WORKSPACE\n", + "\n", + "if OPTIONS['UPDATE_COMFY_UI']:\n", + " !echo -= Updating ComfyUI =-\n", + "\n", + " # Correction of the issue of permissions being deleted on Google Drive.\n", + " ![ -f \".ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/nightly/update_windows/update_comfyui_and_python_dependencies.bat\n", + " ![ -f \".ci/nightly/windows_base_files/run_nvidia_gpu.bat\" ] && chmod 755 .ci/nightly/windows_base_files/run_nvidia_gpu.bat\n", + " ![ -f \".ci/update_windows/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows/update_comfyui_and_python_dependencies.bat\n", + " ![ -f \".ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\" ] && chmod 755 .ci/update_windows_cu118/update_comfyui_and_python_dependencies.bat\n", + " ![ -f \".ci/update_windows/update.py\" ] && chmod 755 .ci/update_windows/update.py\n", + " ![ -f \".ci/update_windows/update_comfyui.bat\" ] && chmod 755 .ci/update_windows/update_comfyui.bat\n", + " ![ -f \".ci/update_windows/README_VERY_IMPORTANT.txt\" ] && chmod 755 .ci/update_windows/README_VERY_IMPORTANT.txt\n", + " ![ -f \".ci/update_windows/run_cpu.bat\" ] && chmod 755 .ci/update_windows/run_cpu.bat\n", + " ![ -f \".ci/update_windows/run_nvidia_gpu.bat\" ] && chmod 755 .ci/update_windows/run_nvidia_gpu.bat\n", + "\n", + " !git pull\n", + "\n", + "!echo -= Install dependencies =-\n", + "!pip3 install accelerate\n", + "!pip3 install einops transformers>=4.28.1 safetensors>=0.4.2 aiohttp pyyaml Pillow scipy tqdm psutil tokenizers>=0.13.3\n", + "!pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121\n", + "!pip3 install torchsde\n", + "!pip3 install kornia>=0.7.1 spandrel soundfile sentencepiece\n", + "\n", + "if OPTIONS['USE_COMFYUI_MANAGER']:\n", + " %cd custom_nodes\n", + "\n", + " # Correction of the issue of permissions being deleted on Google Drive.\n", + " ![ -f \"ComfyUI-Manager/check.sh\" ] && chmod 755 ComfyUI-Manager/check.sh\n", + " ![ -f \"ComfyUI-Manager/scan.sh\" ] && chmod 755 ComfyUI-Manager/scan.sh\n", + " ![ -f \"ComfyUI-Manager/node_db/dev/scan.sh\" ] && chmod 755 ComfyUI-Manager/node_db/dev/scan.sh\n", + " ![ -f \"ComfyUI-Manager/node_db/tutorial/scan.sh\" ] && chmod 755 ComfyUI-Manager/node_db/tutorial/scan.sh\n", + " ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-linux.sh\n", + " ![ -f \"ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\" ] && chmod 755 ComfyUI-Manager/scripts/install-comfyui-venv-win.bat\n", + "\n", + " ![ ! -d ComfyUI-Manager ] && echo -= Initial setup ComfyUI-Manager =- && git clone https://github.com/ltdrdata/ComfyUI-Manager\n", + " %cd ComfyUI-Manager\n", + " !git pull\n", + "\n", + "%cd $WORKSPACE\n", + "\n", + "if OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES']:\n", + " !echo -= Install custom nodes dependencies =-\n", + " !pip install GitPython\n", + " !python custom_nodes/ComfyUI-Manager/cm-cli.py restore-dependencies\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cccccccccc" + }, + "source": [ + "Download some models/checkpoints/vae or custom comfyui nodes (uncomment the commands for the ones you want)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "dddddddddd" + }, + "outputs": [], + "source": [ + "# Checkpoints\n", + "\n", + "### SDXL\n", + "### I recommend these workflow examples: https://comfyanonymous.github.io/ComfyUI_examples/sdxl/\n", + "\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -P ./models/checkpoints/\n", + "\n", + "# SDXL ReVision\n", + "#!wget -c https://huggingface.co/comfyanonymous/clip_vision_g/resolve/main/clip_vision_g.safetensors -P ./models/clip_vision/\n", + "\n", + "# SD1.5\n", + "!wget -c https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/\n", + "\n", + "# SD2\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n", + "\n", + "# Some SD1.5 anime style\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n", + "\n", + "# Waifu Diffusion 1.5 (anime style SD2.x 768-v)\n", + "#!wget -c https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors -P ./models/checkpoints/\n", + "\n", + "\n", + "# unCLIP models\n", + "#!wget -c https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", + "\n", + "\n", + "# VAE\n", + "!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n", + "#!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n", + "\n", + "\n", + "# Loras\n", + "#!wget -c https://civitai.com/api/download/models/10350 -O ./models/loras/theovercomer8sContrastFix_sd21768.safetensors #theovercomer8sContrastFix SD2.x 768-v\n", + "#!wget -c https://civitai.com/api/download/models/10638 -O ./models/loras/theovercomer8sContrastFix_sd15.safetensors #theovercomer8sContrastFix SD1.x\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -P ./models/loras/ #SDXL offset noise lora\n", + "\n", + "\n", + "# T2I-Adapter\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n", + "\n", + "# T2I Styles Model\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n", + "\n", + "# CLIPVision model (needed for styles model)\n", + "#!wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n", + "\n", + "\n", + "# ControlNet\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/\n", + "\n", + "# ControlNet SDXL\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors -P ./models/controlnet/\n", + "\n", + "# Controlnet Preprocessor nodes by Fannovel16\n", + "#!cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n", + "\n", + "\n", + "# GLIGEN\n", + "#!wget -c https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors -P ./models/gligen/\n", + "\n", + "\n", + "# ESRGAN upscale model\n", + "#!wget -c https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P ./models/upscale_models/\n", + "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n", + "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kkkkkkkkkkkkkkk" + }, + "source": [ + "### Run ComfyUI with cloudflared (Recommended Way)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "jjjjjjjjjjjjjj" + }, + "outputs": [], + "source": [ + "!wget -P ~ https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb\n", + "!dpkg -i ~/cloudflared-linux-amd64.deb\n", + "\n", + "import subprocess\n", + "import threading\n", + "import time\n", + "import socket\n", + "import urllib.request\n", + "\n", + "def iframe_thread(port):\n", + " while True:\n", + " time.sleep(0.5)\n", + " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", + " result = sock.connect_ex(('127.0.0.1', port))\n", + " if result == 0:\n", + " break\n", + " sock.close()\n", + " print(\"\\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\\n\")\n", + "\n", + " p = subprocess.Popen([\"cloudflared\", \"tunnel\", \"--url\", \"http://127.0.0.1:{}\".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n", + " for line in p.stderr:\n", + " l = line.decode()\n", + " if \"trycloudflare.com \" in l:\n", + " print(\"This is the URL to access ComfyUI:\", l[l.find(\"http\"):], end='')\n", + " #print(l, end='')\n", + "\n", + "\n", + "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", + "\n", + "!python main.py --dont-print-server" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kkkkkkkkkkkkkk" + }, + "source": [ + "### Run ComfyUI with localtunnel\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "jjjjjjjjjjjjj" + }, + "outputs": [], + "source": [ + "!npm install -g localtunnel\n", + "\n", + "import subprocess\n", + "import threading\n", + "import time\n", + "import socket\n", + "import urllib.request\n", + "\n", + "def iframe_thread(port):\n", + " while True:\n", + " time.sleep(0.5)\n", + " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", + " result = sock.connect_ex(('127.0.0.1', port))\n", + " if result == 0:\n", + " break\n", + " sock.close()\n", + " print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\\n\")\n", + "\n", + " print(\"The password/enpoint ip for localtunnel is:\", urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"))\n", + " p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n", + " for line in p.stdout:\n", + " print(line.decode(), end='')\n", + "\n", + "\n", + "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", + "\n", + "!python main.py --dont-print-server" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gggggggggg" + }, + "source": [ + "### Run ComfyUI with colab iframe (use only in case the previous way with localtunnel doesn't work)\n", + "\n", + "You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n", + "\n", + "If you want to open it in another window use the link.\n", + "\n", + "Note that some UI features like live image previews won't work because the colab iframe blocks websockets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "hhhhhhhhhh" + }, + "outputs": [], + "source": [ + "import threading\n", + "import time\n", + "import socket\n", + "def iframe_thread(port):\n", + " while True:\n", + " time.sleep(0.5)\n", + " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", + " result = sock.connect_ex(('127.0.0.1', port))\n", + " if result == 0:\n", + " break\n", + " sock.close()\n", + " from google.colab import output\n", + " output.serve_kernel_port_as_iframe(port, height=1024)\n", + " print(\"to open it in a window you can open this link here:\")\n", + " output.serve_kernel_port_as_window(port)\n", + "\n", + "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", + "\n", + "!python main.py --dont-print-server" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "provenance": [] + }, + "gpuClass": "standard", + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/openapi.yaml b/openapi.yaml new file mode 100644 index 00000000..0446259e --- /dev/null +++ b/openapi.yaml @@ -0,0 +1,903 @@ +openapi: 3.1.0 +info: + title: ComfyUI-Manager API + description: | + API for ComfyUI-Manager, a comprehensive management tool for ComfyUI custom nodes, models, and components. + This API enables programmatic access to node management, model downloading, snapshot operations, + and overall system configuration. + version: "3.32.3" + contact: + name: ComfyUI-Manager Maintainers +servers: + - url: '/' + description: Default ComfyUI server + +# Common API components +components: + schemas: + Error: + type: object + properties: + error: + type: string + description: Error message + + NodePackageMetadata: + type: object + properties: + title: + type: string + description: Display name of the node package + name: + type: string + description: Repository/package name + files: + type: array + items: + type: string + description: Source URLs for the package + description: + type: string + description: Description of the node package functionality + install_type: + type: string + enum: [git, copy, pip] + description: Installation method + version: + type: string + description: Version identifier + id: + type: string + description: Unique identifier for the node package + ui_id: + type: string + description: ID for UI reference + channel: + type: string + description: Source channel + mode: + type: string + description: Source mode + + ModelMetadata: + type: object + properties: + name: + type: string + description: Name of the model + type: + type: string + description: Type of model + base: + type: string + description: Base model type + save_path: + type: string + description: Path for saving the model + url: + type: string + description: Download URL + filename: + type: string + description: Target filename + ui_id: + type: string + description: ID for UI reference + + SnapshotItem: + type: string + description: Name of the snapshot + + QueueStatus: + type: object + properties: + total_count: + type: integer + description: Total number of tasks + done_count: + type: integer + description: Number of completed tasks + in_progress_count: + type: integer + description: Number of tasks in progress + is_processing: + type: boolean + description: Whether the queue is currently processing + + ImportFailInfoBulkRequest: + type: object + properties: + cnr_ids: + type: array + items: + type: string + description: A list of CNR IDs to check. + urls: + type: array + items: + type: string + description: A list of repository URLs to check. + + ImportFailInfoBulkResponse: + type: object + additionalProperties: + $ref: '#/components/schemas/ImportFailInfoItem' + description: >- + A dictionary where each key is a cnr_id or url from the request, + and the value is the corresponding error info. + + ImportFailInfoItem: + oneOf: + - type: object + properties: + error: + type: string + traceback: + type: string + - type: "null" + + securitySchemes: + securityLevel: + type: apiKey + in: header + name: Security-Level + description: Security level for sensitive operations + + parameters: + modeParam: + name: mode + in: query + description: Source mode (e.g., "local", "remote") + schema: + type: string + enum: [local, remote, default] + + targetParam: + name: target + in: query + description: Target identifier + required: true + schema: + type: string + + valueParam: + name: value + in: query + description: New value to set + required: true + schema: + type: string + +# API Paths +paths: + # Custom Nodes Endpoints + /customnode/getmappings: + get: + summary: Get node-to-package mappings + description: Provides unified mapping between nodes and node packages + parameters: + - $ref: '#/components/parameters/modeParam' + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: object + additionalProperties: + type: array + items: + type: array + description: Mapping of node packages to node classes + + /customnode/fetch_updates: + get: + summary: Check for updates + description: Fetches updates for custom nodes + parameters: + - $ref: '#/components/parameters/modeParam' + responses: + '200': + description: No updates available + '201': + description: Updates found + '400': + description: Error occurred + + /customnode/installed: + get: + summary: Get installed custom nodes + description: Returns a list of installed node packages + parameters: + - name: mode + in: query + description: Lists mode, default or imported + schema: + type: string + enum: [default, imported] + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: object + additionalProperties: + $ref: '#/components/schemas/NodePackageMetadata' + + /customnode/getlist: + get: + summary: Get custom node list + description: Provides a list of available custom nodes + parameters: + - $ref: '#/components/parameters/modeParam' + - name: skip_update + in: query + description: Skip update check + schema: + type: boolean + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: object + properties: + channel: + type: string + node_packs: + type: object + additionalProperties: + $ref: '#/components/schemas/NodePackageMetadata' + + /customnode/alternatives: + get: + summary: Get alternative node options + description: Provides alternatives for nodes + parameters: + - $ref: '#/components/parameters/modeParam' + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: object + additionalProperties: + type: object + + /customnode/versions/{node_name}: + get: + summary: Get available versions for a node + description: Lists all available versions for a specific node + parameters: + - name: node_name + in: path + required: true + schema: + type: string + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: array + items: + type: object + properties: + version: + type: string + '400': + description: Node not found + + /customnode/disabled_versions/{node_name}: + get: + summary: Get disabled versions for a node + description: Lists all disabled versions for a specific node + parameters: + - name: node_name + in: path + required: true + schema: + type: string + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: array + items: + type: object + properties: + version: + type: string + '400': + description: Node not found + + /customnode/import_fail_info: + post: + summary: Get import failure information + description: Returns information about why a node failed to import + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + cnr_id: + type: string + url: + type: string + responses: + '200': + description: Successful operation + '400': + description: No information available + + /v2/customnode/import_fail_info_bulk: + post: + summary: Get import failure info for multiple nodes + description: Retrieves recorded import failure information for a list of custom nodes. + tags: + - customnode + requestBody: + description: A list of CNR IDs or repository URLs to check. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ImportFailInfoBulkRequest' + responses: + '200': + description: A dictionary containing the import failure information. + content: + application/json: + schema: + $ref: '#/components/schemas/ImportFailInfoBulkResponse' + '400': + description: Bad Request. The request body is invalid. + '500': + description: Internal Server Error. + + /customnode/install/git_url: + post: + summary: Install custom node via Git URL + description: Installs a custom node from a Git repository URL + security: + - securityLevel: [] + requestBody: + required: true + content: + text/plain: + schema: + type: string + responses: + '200': + description: Installation successful or already installed + '400': + description: Installation failed + '403': + description: Security policy violation + + /customnode/install/pip: + post: + summary: Install custom node dependencies via pip + description: Installs Python package dependencies for custom nodes + security: + - securityLevel: [] + requestBody: + required: true + content: + text/plain: + schema: + type: string + responses: + '200': + description: Installation successful + '403': + description: Security policy violation + + # Model Management Endpoints + /externalmodel/getlist: + get: + summary: Get external model list + description: Provides a list of available external models + parameters: + - $ref: '#/components/parameters/modeParam' + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: object + properties: + models: + type: array + items: + $ref: '#/components/schemas/ModelMetadata' + + # Queue Management Endpoints + /manager/queue/update_all: + get: + summary: Update all custom nodes + description: Queues update operations for all installed custom nodes + security: + - securityLevel: [] + parameters: + - $ref: '#/components/parameters/modeParam' + responses: + '200': + description: Update queued successfully + '401': + description: Processing already in progress + '403': + description: Security policy violation + + /manager/queue/reset: + get: + summary: Reset queue + description: Resets the operation queue + responses: + '200': + description: Queue reset successfully + + /manager/queue/status: + get: + summary: Get queue status + description: Returns the current status of the operation queue + responses: + '200': + description: Successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/QueueStatus' + + /manager/queue/install: + post: + summary: Install custom node + description: Queues installation of a custom node + security: + - securityLevel: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodePackageMetadata' + responses: + '200': + description: Installation queued successfully + '403': + description: Security policy violation + '404': + description: Target node not found or security issue + + /manager/queue/start: + get: + summary: Start queue processing + description: Starts processing the operation queue + responses: + '200': + description: Processing started + '201': + description: Processing already in progress + + /manager/queue/fix: + post: + summary: Fix custom node + description: Attempts to fix a broken custom node installation + security: + - securityLevel: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodePackageMetadata' + responses: + '200': + description: Fix operation queued successfully + '403': + description: Security policy violation + + /manager/queue/reinstall: + post: + summary: Reinstall custom node + description: Uninstalls and then reinstalls a custom node + security: + - securityLevel: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodePackageMetadata' + responses: + '200': + description: Reinstall operation queued successfully + '403': + description: Security policy violation + + /manager/queue/uninstall: + post: + summary: Uninstall custom node + description: Queues uninstallation of a custom node + security: + - securityLevel: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodePackageMetadata' + responses: + '200': + description: Uninstallation queued successfully + '403': + description: Security policy violation + + /manager/queue/update: + post: + summary: Update custom node + description: Queues update of a custom node + security: + - securityLevel: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodePackageMetadata' + responses: + '200': + description: Update queued successfully + '403': + description: Security policy violation + + /manager/queue/disable: + post: + summary: Disable custom node + description: Disables a custom node without uninstalling it + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/NodePackageMetadata' + responses: + '200': + description: Disable operation queued successfully + + /manager/queue/update_comfyui: + get: + summary: Update ComfyUI + description: Queues an update operation for ComfyUI itself + responses: + '200': + description: Update queued successfully + + /manager/queue/install_model: + post: + summary: Install model + description: Queues installation of a model + security: + - securityLevel: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ModelMetadata' + responses: + '200': + description: Installation queued successfully + '400': + description: Invalid model request + '403': + description: Security policy violation + + # Snapshot Management Endpoints + /snapshot/getlist: + get: + summary: Get snapshot list + description: Returns a list of available snapshots + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: object + properties: + items: + type: array + items: + $ref: '#/components/schemas/SnapshotItem' + + /snapshot/remove: + get: + summary: Remove snapshot + description: Removes a specified snapshot + security: + - securityLevel: [] + parameters: + - $ref: '#/components/parameters/targetParam' + responses: + '200': + description: Snapshot removed successfully + '400': + description: Error removing snapshot + '403': + description: Security policy violation + + /snapshot/restore: + get: + summary: Restore snapshot + description: Restores a specified snapshot + security: + - securityLevel: [] + parameters: + - $ref: '#/components/parameters/targetParam' + responses: + '200': + description: Snapshot restoration scheduled + '400': + description: Error restoring snapshot + '403': + description: Security policy violation + + /snapshot/get_current: + get: + summary: Get current snapshot + description: Returns the current system state as a snapshot + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: object + '400': + description: Error creating snapshot + + /snapshot/save: + get: + summary: Save snapshot + description: Saves the current system state as a new snapshot + responses: + '200': + description: Snapshot saved successfully + '400': + description: Error saving snapshot + + # ComfyUI Management Endpoints + /comfyui_manager/comfyui_versions: + get: + summary: Get ComfyUI versions + description: Returns available and current ComfyUI versions + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: object + properties: + versions: + type: array + items: + type: string + current: + type: string + '400': + description: Error retrieving versions + + /comfyui_manager/comfyui_switch_version: + get: + summary: Switch ComfyUI version + description: Switches to a specified ComfyUI version + parameters: + - name: ver + in: query + description: Target version + schema: + type: string + responses: + '200': + description: Version switch successful + '400': + description: Error switching version + + /manager/reboot: + get: + summary: Reboot ComfyUI + description: Restarts the ComfyUI server + security: + - securityLevel: [] + responses: + '200': + description: Reboot initiated + '403': + description: Security policy violation + + # Configuration Endpoints + /manager/preview_method: + get: + summary: Get or set preview method + description: Gets or sets the latent preview method + parameters: + - name: value + in: query + required: false + description: New preview method + schema: + type: string + enum: [auto, latent2rgb, taesd, none] + responses: + '200': + description: Setting updated or current value returned + content: + text/plain: + schema: + type: string + + /manager/db_mode: + get: + summary: Get or set database mode + description: Gets or sets the database mode + parameters: + - name: value + in: query + required: false + description: New database mode + schema: + type: string + enum: [channel, local, remote] + responses: + '200': + description: Setting updated or current value returned + content: + text/plain: + schema: + type: string + + /manager/policy/component: + get: + summary: Get or set component policy + description: Gets or sets the component policy + parameters: + - name: value + in: query + required: false + description: New component policy + schema: + type: string + responses: + '200': + description: Setting updated or current value returned + content: + text/plain: + schema: + type: string + + /manager/policy/update: + get: + summary: Get or set update policy + description: Gets or sets the update policy + parameters: + - name: value + in: query + required: false + description: New update policy + schema: + type: string + enum: [stable, nightly, nightly-comfyui] + responses: + '200': + description: Setting updated or current value returned + content: + text/plain: + schema: + type: string + + /manager/channel_url_list: + get: + summary: Get or set channel URL + description: Gets or sets the channel URL for custom node sources + parameters: + - name: value + in: query + required: false + description: New channel name + schema: + type: string + responses: + '200': + description: Setting updated or channel list returned + content: + application/json: + schema: + type: object + properties: + selected: + type: string + list: + type: array + items: + type: object + properties: + name: + type: string + url: + type: string + + # Component Management Endpoints + /manager/component/save: + post: + summary: Save component + description: Saves a reusable workflow component + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + workflow: + type: object + responses: + '200': + description: Component saved successfully + content: + text/plain: + schema: + type: string + '400': + description: Error saving component + + /manager/component/loads: + post: + summary: Load components + description: Loads all available workflow components + responses: + '200': + description: Components loaded successfully + content: + application/json: + schema: + type: object + '400': + description: Error loading components + + # Miscellaneous Endpoints + /manager/version: + get: + summary: Get manager version + description: Returns the current version of ComfyUI-Manager + responses: + '200': + description: Successful operation + content: + text/plain: + schema: + type: string + + /manager/notice: + get: + summary: Get manager notice + description: Returns HTML content with notices and version information + responses: + '200': + description: Successful operation + content: + text/html: + schema: + type: string \ No newline at end of file diff --git a/pip_overrides.json.template b/pip_overrides.json.template index a6b1f262..3884edb9 100644 --- a/pip_overrides.json.template +++ b/pip_overrides.json.template @@ -4,8 +4,8 @@ "imageio_ffmpeg": "imageio", "diffusers~=0.21.4": "diffusers", "huggingface_hub": "huggingface-hub", - "numpy<1.24>=1.18": "numpy", - "numpy>=1.18.5, <1.25.0": "numpy", + "numpy<1.24>=1.18": "numpy==1.26.4", + "numpy>=1.18.5, <1.25.0": "numpy==1.26.4", "opencv-contrib-python": "opencv-contrib-python-headless", "opencv-python": "opencv-contrib-python-headless", "opencv-python-headless": "opencv-contrib-python-headless", diff --git a/pip_overrides.osx.template b/pip_overrides.osx.template new file mode 100644 index 00000000..3884edb9 --- /dev/null +++ b/pip_overrides.osx.template @@ -0,0 +1,21 @@ +{ + "imageio-ffmpeg": "imageio", + "imageio[ffmpeg]": "imageio", + "imageio_ffmpeg": "imageio", + "diffusers~=0.21.4": "diffusers", + "huggingface_hub": "huggingface-hub", + "numpy<1.24>=1.18": "numpy==1.26.4", + "numpy>=1.18.5, <1.25.0": "numpy==1.26.4", + "opencv-contrib-python": "opencv-contrib-python-headless", + "opencv-python": "opencv-contrib-python-headless", + "opencv-python-headless": "opencv-contrib-python-headless", + "opencv-python-headless[ffmpeg]<=4.7.0.72": "opencv-contrib-python-headless", + "opencv-python>=4.7.0.72": "opencv-contrib-python-headless", + "pandas<=1.5.1": "pandas", + "scikit-image==0.20.0": "scikit-image", + "scipy>=1.11.4": "scipy", + "segment_anything": "segment-anything", + "timm==0.6.5": "timm", + "timm>=0.4.12": "timm", + "transformers==4.26.1": "transformers" +} \ No newline at end of file diff --git a/prestartup_script.py b/prestartup_script.py index c3476c9b..f3e52ea4 100644 --- a/prestartup_script.py +++ b/prestartup_script.py @@ -1,5 +1,5 @@ -import datetime import os +import shutil import subprocess import sys import atexit @@ -8,16 +8,39 @@ import re import locale import platform import json - +import ast +import logging +import traceback glob_path = os.path.join(os.path.dirname(__file__), "glob") sys.path.append(glob_path) -from manager_util import * +import security_check +import manager_util import cm_global +import manager_downloader +import folder_paths + +manager_util.add_python_path_to_env() + +import datetime as dt + +if hasattr(dt, 'datetime'): + from datetime import datetime as dt_datetime + + def current_timestamp(): + return dt_datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3] +else: + # NOTE: Occurs in some Mac environments. + import time + logging.error(f"[ComfyUI-Manager] fallback timestamp mode\n datetime module is invalid: '{dt.__file__}'") + + def current_timestamp(): + return str(time.time()).split('.')[0] -cm_global.pip_downgrade_blacklist = ['torch', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia'] +cm_global.pip_blacklist = {'torch', 'torchaudio', 'torchsde', 'torchvision'} +cm_global.pip_downgrade_blacklist = ['torch', 'torchaudio', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia'] def skip_pip_spam(x): @@ -40,23 +63,18 @@ def is_import_failed_extension(name): return name in import_failed_extensions -def check_file_logging(): - global enable_file_logging - try: - import configparser - config_path = os.path.join(os.path.dirname(__file__), "config.ini") - config = configparser.ConfigParser() - config.read(config_path) - default_conf = config['default'] +comfy_path = os.environ.get('COMFYUI_PATH') +comfy_base_path = os.environ.get('COMFYUI_FOLDERS_BASE_PATH') - if 'file_logging' in default_conf and default_conf['file_logging'].lower() == 'false': - enable_file_logging = False - except Exception: - pass +if comfy_path is None: + # legacy env var + comfy_path = os.environ.get('COMFYUI_PATH') +if comfy_path is None: + comfy_path = os.path.abspath(os.path.dirname(sys.modules['__main__'].__file__)) -check_file_logging() - +if comfy_base_path is None: + comfy_base_path = comfy_path sys.__comfyui_manager_register_message_collapse = register_message_collapse sys.__comfyui_manager_is_import_failed_extension = is_import_failed_extension @@ -64,20 +82,60 @@ cm_global.register_api('cm.register_message_collapse', register_message_collapse cm_global.register_api('cm.is_import_failed_extension', is_import_failed_extension) -comfyui_manager_path = os.path.dirname(__file__) -custom_nodes_path = os.path.abspath(os.path.join(comfyui_manager_path, "..")) -startup_script_path = os.path.join(comfyui_manager_path, "startup-scripts") -restore_snapshot_path = os.path.join(startup_script_path, "restore-snapshot.json") -git_script_path = os.path.join(comfyui_manager_path, "git_helper.py") -pip_overrides_path = os.path.join(comfyui_manager_path, "pip_overrides.json") +comfyui_manager_path = os.path.abspath(os.path.dirname(__file__)) +custom_nodes_base_path = folder_paths.get_folder_paths('custom_nodes')[0] +manager_files_path = os.path.abspath(os.path.join(folder_paths.get_user_directory(), 'default', 'ComfyUI-Manager')) +manager_pip_overrides_path = os.path.join(manager_files_path, "pip_overrides.json") +manager_pip_blacklist_path = os.path.join(manager_files_path, "pip_blacklist.list") +restore_snapshot_path = os.path.join(manager_files_path, "startup-scripts", "restore-snapshot.json") +manager_config_path = os.path.join(manager_files_path, 'config.ini') + +cm_cli_path = os.path.join(comfyui_manager_path, "cm-cli.py") + + +default_conf = {} + +def read_config(): + global default_conf + try: + import configparser + config = configparser.ConfigParser(strict=False) + config.read(manager_config_path) + default_conf = config['default'] + except Exception: + pass + +def read_uv_mode(): + if 'use_uv' in default_conf: + manager_util.use_uv = default_conf['use_uv'].lower() == 'true' + +def check_file_logging(): + global enable_file_logging + if 'file_logging' in default_conf and default_conf['file_logging'].lower() == 'false': + enable_file_logging = False + + +read_config() +read_uv_mode() +security_check.security_check() +check_file_logging() cm_global.pip_overrides = {} -if os.path.exists(pip_overrides_path): - with open(pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file: + +if os.path.exists(manager_pip_overrides_path): + with open(manager_pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file: cm_global.pip_overrides = json.load(json_file) +if os.path.exists(manager_pip_blacklist_path): + with open(manager_pip_blacklist_path, 'r', encoding="UTF-8", errors="ignore") as f: + for x in f.readlines(): + y = x.strip() + if y != '': + cm_global.pip_blacklist.add(y) + + def remap_pip_package(pkg): if pkg in cm_global.pip_overrides: res = cm_global.pip_overrides[pkg] @@ -90,36 +148,6 @@ def remap_pip_package(pkg): std_log_lock = threading.Lock() -class TerminalHook: - def __init__(self): - self.hooks = {} - - def add_hook(self, k, v): - self.hooks[k] = v - - def remove_hook(self, k): - if k in self.hooks: - del self.hooks[k] - - def write_stderr(self, msg): - for v in self.hooks.values(): - try: - v.write_stderr(msg) - except Exception: - pass - - def write_stdout(self, msg): - for v in self.hooks.values(): - try: - v.write_stdout(msg) - except Exception: - pass - - -terminal_hook = TerminalHook() -sys.__comfyui_manager_terminal_hook = terminal_hook - - def handle_stream(stream, prefix): stream.reconfigure(encoding=locale.getpreferredencoding(), errors='replace') for msg in stream: @@ -135,8 +163,8 @@ def handle_stream(stream, prefix): print(prefix, msg, end="") -def process_wrap(cmd_str, cwd_path, handler=None): - process = subprocess.Popen(cmd_str, cwd=cwd_path, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, bufsize=1) +def process_wrap(cmd_str, cwd_path, handler=None, env=None): + process = subprocess.Popen(cmd_str, cwd=cwd_path, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, bufsize=1) if handler is None: handler = handle_stream @@ -153,25 +181,75 @@ def process_wrap(cmd_str, cwd_path, handler=None): return process.wait() +original_stdout = sys.stdout + + +def try_get_custom_nodes(x): + for custom_nodes_dir in folder_paths.get_folder_paths('custom_nodes'): + if x.startswith(custom_nodes_dir): + relative_path = os.path.relpath(x, custom_nodes_dir) + next_segment = relative_path.split(os.sep)[0] + if next_segment.lower() != 'comfyui-manager': + return next_segment, os.path.join(custom_nodes_dir, next_segment) + return None + + +def extract_origin_module(): + stack = traceback.extract_stack()[:-2] + for frame in reversed(stack): + info = try_get_custom_nodes(frame.filename) + if info is None: + continue + else: + return info + return None + +def extract_origin_module_from_strings(file_paths): + for filepath in file_paths: + info = try_get_custom_nodes(filepath) + if info is None: + continue + else: + return info + return None + + +def finalize_startup(): + res = {} + for k, v in cm_global.error_dict.items(): + if v['path'] in import_failed_extensions: + res[k] = v + + cm_global.error_dict = res + + try: if '--port' in sys.argv: port_index = sys.argv.index('--port') if port_index + 1 < len(sys.argv): port = int(sys.argv[port_index + 1]) postfix = f"_{port}" + else: + postfix = "" else: postfix = "" # Logger setup + log_path_base = None if enable_file_logging: - if os.path.exists(f"comfyui{postfix}.log"): - if os.path.exists(f"comfyui{postfix}.prev.log"): - if os.path.exists(f"comfyui{postfix}.prev2.log"): - os.remove(f"comfyui{postfix}.prev2.log") - os.rename(f"comfyui{postfix}.prev.log", f"comfyui{postfix}.prev2.log") - os.rename(f"comfyui{postfix}.log", f"comfyui{postfix}.prev.log") + log_path_base = os.path.join(folder_paths.user_directory, 'comfyui') - log_file = open(f"comfyui{postfix}.log", "w", encoding="utf-8", errors="ignore") + if not os.path.exists(folder_paths.user_directory): + os.makedirs(folder_paths.user_directory) + + if os.path.exists(f"{log_path_base}{postfix}.log"): + if os.path.exists(f"{log_path_base}{postfix}.prev.log"): + if os.path.exists(f"{log_path_base}{postfix}.prev2.log"): + os.remove(f"{log_path_base}{postfix}.prev2.log") + os.rename(f"{log_path_base}{postfix}.prev.log", f"{log_path_base}{postfix}.prev2.log") + os.rename(f"{log_path_base}{postfix}.log", f"{log_path_base}{postfix}.prev.log") + + log_file = open(f"{log_path_base}{postfix}.log", "w", encoding="utf-8", errors="ignore") log_lock = threading.Lock() @@ -192,10 +270,11 @@ try: write_stderr = wrapper_stderr pat_tqdm = r'\d+%.*\[(.*?)\]' - pat_import_fail = r'seconds \(IMPORT FAILED\):.*[/\\]custom_nodes[/\\](.*)$' + pat_import_fail = r'seconds \(IMPORT FAILED\):(.*)$' is_start_mode = True + class ComfyUIManagerLogger: def __init__(self, is_stdout): self.is_stdout = is_stdout @@ -212,6 +291,9 @@ try: # Handle error raise ValueError("The object does not have a fileno method") + def isatty(self): + return False + def write(self, message): global is_start_mode @@ -221,10 +303,18 @@ try: if is_start_mode: match = re.search(pat_import_fail, message) if match: - import_failed_extensions.add(match.group(1)) + import_failed_extensions.add(match.group(1).strip()) - if 'Starting server' in message: - is_start_mode = False + if not self.is_stdout: + origin_info = extract_origin_module() + if origin_info is not None: + name, origin_path = origin_info + + if name != 'comfyui-manager': + if name not in cm_global.error_dict: + cm_global.error_dict[name] = {'name': name, 'path': origin_path, 'msg': ''} + + cm_global.error_dict[name]['msg'] += message if not self.is_stdout: match = re.search(pat_tqdm, message) @@ -241,28 +331,35 @@ try: else: self.sync_write(message) - def sync_write(self, message): + def sync_write(self, message, file_only=False): with log_lock: - timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')[:-3] + timestamp = current_timestamp() if self.last_char != '\n': log_file.write(message) else: log_file.write(f"[{timestamp}] {message}") - log_file.flush() + + try: + log_file.flush() + except Exception: + pass + self.last_char = message if message == '' else message[-1] - with std_log_lock: - if self.is_stdout: - write_stdout(message) - original_stdout.flush() - terminal_hook.write_stderr(message) - else: - write_stderr(message) - original_stderr.flush() - terminal_hook.write_stdout(message) + if not file_only: + with std_log_lock: + if self.is_stdout: + write_stdout(message) + original_stdout.flush() + else: + write_stderr(message) + original_stderr.flush() def flush(self): - log_file.flush() + try: + log_file.flush() + except Exception: + pass with std_log_lock: if self.is_stdout: @@ -290,59 +387,109 @@ try: if enable_file_logging: sys.stdout = ComfyUIManagerLogger(True) - sys.stderr = ComfyUIManagerLogger(False) + stderr_wrapper = ComfyUIManagerLogger(False) + sys.stderr = stderr_wrapper atexit.register(close_log) else: sys.stdout.close_log = lambda: None + stderr_wrapper = None + + + class LoggingHandler(logging.Handler): + def emit(self, record): + global is_start_mode + + message = record.getMessage() + + if is_start_mode: + match = re.search(pat_import_fail, message) + if match: + import_failed_extensions.add(match.group(1).strip()) + + if 'Traceback' in message: + file_lists = self._extract_file_paths(message) + origin_info = extract_origin_module_from_strings(file_lists) + if origin_info is not None: + name, origin_path = origin_info + + if name != 'comfyui-manager': + if name not in cm_global.error_dict: + cm_global.error_dict[name] = {'name': name, 'path': origin_path, 'msg': ''} + + cm_global.error_dict[name]['msg'] += message + + if 'Starting server' in message: + is_start_mode = False + finalize_startup() + + if stderr_wrapper: + stderr_wrapper.sync_write(message+'\n', file_only=True) + + def _extract_file_paths(self, msg): + file_paths = [] + for line in msg.split('\n'): + match = re.findall(r'File \"(.*?)\", line \d+', line) + for x in match: + if not x.startswith('<'): + file_paths.extend(match) + return file_paths + + + logging.getLogger().addHandler(LoggingHandler()) + except Exception as e: print(f"[ComfyUI-Manager] Logging failed: {e}") -try: - import git -except: - my_path = os.path.dirname(__file__) - requirements_path = os.path.join(my_path, "requirements.txt") +def ensure_dependencies(): + try: + import git # noqa: F401 + import toml # noqa: F401 + import rich # noqa: F401 + import chardet # noqa: F401 + except ModuleNotFoundError: + my_path = os.path.dirname(__file__) + requirements_path = os.path.join(my_path, "requirements.txt") - print(f"## ComfyUI-Manager: installing dependencies. (GitPython)") - - result = subprocess.check_output([sys.executable, '-s', '-m', 'pip', 'install', '-r', requirements_path]) + print("## ComfyUI-Manager: installing dependencies. (GitPython)") + try: + subprocess.check_output(manager_util.make_pip_cmd(['install', '-r', requirements_path])) + except subprocess.CalledProcessError: + print("## [ERROR] ComfyUI-Manager: Attempting to reinstall dependencies using an alternative method.") + try: + subprocess.check_output(manager_util.make_pip_cmd(['install', '--user', '-r', requirements_path])) + except subprocess.CalledProcessError: + print("## [ERROR] ComfyUI-Manager: Failed to install the GitPython package in the correct Python environment. Please install it manually in the appropriate environment. (You can seek help at https://app.element.io/#/room/%23comfyui_space%3Amatrix.org)") try: - import git + print("## ComfyUI-Manager: installing dependencies done.") except: - print(f"## [ERROR] ComfyUI-Manager: Attempting to reinstall dependencies using an alternative method.") - result = subprocess.check_output([sys.executable, '-s', '-m', 'pip', 'install', '--user', '-r', requirements_path]) + # maybe we should sys.exit() here? there is at least two screens worth of error messages still being pumped after our error messages + print("## [ERROR] ComfyUI-Manager: GitPython package seems to be installed, but failed to load somehow. Make sure you have a working git client installed") - try: - import git - except: - print(f"## [ERROR] ComfyUI-Manager: Failed to install the GitPython package in the correct Python environment. Please install it manually in the appropriate environment. (You can seek help at https://app.element.io/#/room/%23comfyui_space%3Amatrix.org)") - - print(f"## ComfyUI-Manager: installing dependencies done.") +ensure_dependencies() -print("** ComfyUI startup time:", datetime.datetime.now()) +print("** ComfyUI startup time:", current_timestamp()) print("** Platform:", platform.system()) print("** Python version:", sys.version) print("** Python executable:", sys.executable) +print("** ComfyUI Path:", comfy_path) +print("** ComfyUI Base Folder Path:", comfy_base_path) +print("** User directory:", folder_paths.user_directory) +print("** ComfyUI-Manager config path:", manager_config_path) -if enable_file_logging: - print("** Log path:", os.path.abspath('comfyui.log')) + +if log_path_base is not None: + print("** Log path:", os.path.abspath(f'{log_path_base}.log')) else: print("** Log path: file logging is disabled") def read_downgrade_blacklist(): try: - import configparser - config_path = os.path.join(os.path.dirname(__file__), "config.ini") - config = configparser.ConfigParser() - config.read(config_path) - default_conf = config['default'] - if 'downgrade_blacklist' in default_conf: items = default_conf['downgrade_blacklist'].split(',') items = [x.strip() for x in items if x != ''] @@ -357,50 +504,20 @@ read_downgrade_blacklist() def check_bypass_ssl(): try: - import configparser import ssl - config_path = os.path.join(os.path.dirname(__file__), "config.ini") - config = configparser.ConfigParser() - config.read(config_path) - default_conf = config['default'] - if 'bypass_ssl' in default_conf and default_conf['bypass_ssl'].lower() == 'true': - print(f"[ComfyUI-Manager] WARN: Unsafe - SSL verification bypass option is Enabled. (see ComfyUI-Manager/config.ini)") + print(f"[ComfyUI-Manager] WARN: Unsafe - SSL verification bypass option is Enabled. (see {manager_config_path})") ssl._create_default_https_context = ssl._create_unverified_context # SSL certificate error fix. except Exception: pass - check_bypass_ssl() # Perform install processed_install = set() -script_list_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "startup-scripts", "install-scripts.txt") -pip_map = None - - -def get_installed_packages(): - global pip_map - - if pip_map is None: - try: - result = subprocess.check_output([sys.executable, '-m', 'pip', 'list'], universal_newlines=True) - - pip_map = {} - for line in result.split('\n'): - x = line.strip() - if x: - y = line.split() - if y[0] == 'Package' or y[0].startswith('-'): - continue - - pip_map[y[0]] = y[1] - except subprocess.CalledProcessError as e: - print(f"[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.") - return set() - - return pip_map +script_list_path = os.path.join(folder_paths.user_directory, "default", "ComfyUI-Manager", "startup-scripts", "install-scripts.txt") +pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, manager_files_path) def is_installed(name): @@ -409,25 +526,49 @@ def is_installed(name): if name.startswith('#'): return True - pattern = r'([^<>!=]+)([<>!=]=?)(.*)' + pattern = r'([^<>!~=]+)([<>!~=]=?)([0-9.a-zA-Z]*)' match = re.search(pattern, name) if match: name = match.group(1) + if name in cm_global.pip_blacklist: + return True + if name in cm_global.pip_downgrade_blacklist: - pips = get_installed_packages() + pips = manager_util.get_installed_packages() if match is None: if name in pips: return True - elif match.group(2) in ['<=', '==', '<']: + elif match.group(2) in ['<=', '==', '<', '~=']: if name in pips: - if StrictVersion(pips[name]) >= StrictVersion(match.group(3)): + if manager_util.StrictVersion(pips[name]) >= manager_util.StrictVersion(match.group(3)): print(f"[ComfyUI-Manager] skip black listed pip installation: '{name}'") return True - return name.lower() in get_installed_packages() + pkg = manager_util.get_installed_packages().get(name.lower()) + if pkg is None: + return False # update if not installed + + if match is None: + return True # don't update if version is not specified + + if match.group(2) in ['>', '>=']: + if manager_util.StrictVersion(pkg) < manager_util.StrictVersion(match.group(3)): + return False + elif manager_util.StrictVersion(pkg) > manager_util.StrictVersion(match.group(3)): + print(f"[SKIP] Downgrading pip package isn't allowed: {name.lower()} (cur={pkg})") + + if match.group(2) == '==': + if manager_util.StrictVersion(pkg) < manager_util.StrictVersion(match.group(3)): + return False + + if match.group(2) == '~=': + if manager_util.StrictVersion(pkg) == manager_util.StrictVersion(match.group(3)): + return False + + return True # prevent downgrade if os.path.exists(restore_snapshot_path): @@ -455,51 +596,22 @@ if os.path.exists(restore_snapshot_path): else: print(prefix, msg, end="") - print(f"[ComfyUI-Manager] Restore snapshot.") - cmd_str = [sys.executable, git_script_path, '--apply-snapshot', restore_snapshot_path] - exit_code = process_wrap(cmd_str, custom_nodes_path, handler=msg_capture) + print("[ComfyUI-Manager] Restore snapshot.") + new_env = os.environ.copy() + if 'COMFYUI_FOLDERS_BASE_PATH' not in new_env: + new_env["COMFYUI_FOLDERS_BASE_PATH"] = comfy_path - repository_name = '' - for url in cloned_repos: - try: - repository_name = url.split("/")[-1].strip() - repo_path = os.path.join(custom_nodes_path, repository_name) - repo_path = os.path.abspath(repo_path) - - requirements_path = os.path.join(repo_path, 'requirements.txt') - install_script_path = os.path.join(repo_path, 'install.py') - - this_exit_code = 0 - - if os.path.exists(requirements_path): - with open(requirements_path, 'r', encoding="UTF-8", errors="ignore") as file: - for line in file: - package_name = remap_pip_package(line.strip()) - if package_name and not is_installed(package_name): - install_cmd = [sys.executable, "-m", "pip", "install", package_name] - this_exit_code += process_wrap(install_cmd, repo_path) - - if os.path.exists(install_script_path) and f'{repo_path}/install.py' not in processed_install: - processed_install.add(f'{repo_path}/install.py') - install_cmd = [sys.executable, install_script_path] - print(f">>> {install_cmd} / {repo_path}") - this_exit_code += process_wrap(install_cmd, repo_path) - - if this_exit_code != 0: - print(f"[ComfyUI-Manager] Restoring '{repository_name}' is failed.") - - except Exception as e: - print(e) - print(f"[ComfyUI-Manager] Restoring '{repository_name}' is failed.") + cmd_str = [sys.executable, cm_cli_path, 'restore-snapshot', restore_snapshot_path] + exit_code = process_wrap(cmd_str, custom_nodes_base_path, handler=msg_capture, env=new_env) if exit_code != 0: - print(f"[ComfyUI-Manager] Restore snapshot failed.") + print("[ComfyUI-Manager] Restore snapshot failed.") else: - print(f"[ComfyUI-Manager] Restore snapshot done.") + print("[ComfyUI-Manager] Restore snapshot done.") except Exception as e: print(e) - print(f"[ComfyUI-Manager] Restore snapshot failed.") + print("[ComfyUI-Manager] Restore snapshot failed.") os.remove(restore_snapshot_path) @@ -512,25 +624,119 @@ def execute_lazy_install_script(repo_path, executable): if os.path.exists(requirements_path): print(f"Install: pip packages for '{repo_path}'") - with open(requirements_path, "r") as requirements_file: - for line in requirements_file: - package_name = remap_pip_package(line.strip()) - if package_name and not is_installed(package_name): - install_cmd = [executable, "-m", "pip", "install", package_name] - process_wrap(install_cmd, repo_path) + + lines = manager_util.robust_readlines(requirements_path) + for line in lines: + package_name = remap_pip_package(line.strip()) + package_name = package_name.split('#')[0].strip() + if package_name and not is_installed(package_name): + if '--index-url' in package_name: + s = package_name.split('--index-url') + install_cmd = manager_util.make_pip_cmd(["install", s[0].strip(), '--index-url', s[1].strip()]) + else: + install_cmd = manager_util.make_pip_cmd(["install", package_name]) + + process_wrap(install_cmd, repo_path) if os.path.exists(install_script_path) and f'{repo_path}/install.py' not in processed_install: processed_install.add(f'{repo_path}/install.py') print(f"Install: install script for '{repo_path}'") install_cmd = [executable, "install.py"] - process_wrap(install_cmd, repo_path) + + new_env = os.environ.copy() + if 'COMFYUI_FOLDERS_BASE_PATH' not in new_env: + new_env["COMFYUI_FOLDERS_BASE_PATH"] = comfy_path + process_wrap(install_cmd, repo_path, env=new_env) -# Check if script_list_path exists -if os.path.exists(script_list_path): +def execute_lazy_cnr_switch(target, zip_url, from_path, to_path, no_deps, custom_nodes_path): + import uuid + import shutil + + # 1. download + archive_name = f"CNR_temp_{str(uuid.uuid4())}.zip" # should be unpredictable name - security precaution + download_path = os.path.join(custom_nodes_path, archive_name) + manager_downloader.download_url(zip_url, custom_nodes_path, archive_name) + + # 2. extract files into @ + extracted = manager_util.extract_package_as_zip(download_path, from_path) + os.remove(download_path) + + if extracted is None: + if len(os.listdir(from_path)) == 0: + shutil.rmtree(from_path) + + print(f'Empty archive file: {target}') + return False + + + # 3. calculate garbage files (.tracking - extracted) + tracking_info_file = os.path.join(from_path, '.tracking') + prev_files = set() + with open(tracking_info_file, 'r') as f: + for line in f: + prev_files.add(line.strip()) + garbage = prev_files.difference(extracted) + garbage = [os.path.join(custom_nodes_path, x) for x in garbage] + + # 4-1. remove garbage files + for x in garbage: + if os.path.isfile(x): + os.remove(x) + + # 4-2. remove garbage dir if empty + for x in garbage: + if os.path.isdir(x): + if not os.listdir(x): + os.rmdir(x) + + # 5. rename dir name @ ==> @ + print(f"'{from_path}' is moved to '{to_path}'") + shutil.move(from_path, to_path) + + # 6. create .tracking file + tracking_info_file = os.path.join(to_path, '.tracking') + with open(tracking_info_file, "w", encoding='utf-8') as file: + file.write('\n'.join(list(extracted))) + + +script_executed = False + +def execute_startup_script(): + global script_executed print("\n#######################################################################") print("[ComfyUI-Manager] Starting dependency installation/(de)activation for the extension\n") + custom_nodelist_cache = None + + def get_custom_node_paths(): + nonlocal custom_nodelist_cache + if custom_nodelist_cache is None: + custom_nodelist_cache = set() + for base in folder_paths.get_folder_paths('custom_nodes'): + for x in os.listdir(base): + fullpath = os.path.join(base, x) + if os.path.isdir(fullpath): + custom_nodelist_cache.add(fullpath) + + return custom_nodelist_cache + + def execute_lazy_delete(path): + # Validate to prevent arbitrary paths from being deleted + if path not in get_custom_node_paths(): + logging.error(f"## ComfyUI-Manager: The scheduled '{path}' is not a custom node path, so the deletion has been canceled.") + return + + if not os.path.exists(path): + logging.info(f"## ComfyUI-Manager: SKIP-DELETE => '{path}' (already deleted)") + return + + try: + shutil.rmtree(path) + logging.info(f"## ComfyUI-Manager: DELETE => '{path}'") + except Exception as e: + logging.error(f"## ComfyUI-Manager: Failed to delete '{path}' ({e})") + executed = set() # Read each line from the file and convert it to a list using eval with open(script_list_path, 'r', encoding="UTF-8", errors="ignore") as file: @@ -541,12 +747,19 @@ if os.path.exists(script_list_path): executed.add(line) try: - script = eval(line) + script = ast.literal_eval(line) if script[1].startswith('#') and script[1] != '#FORCE': if script[1] == "#LAZY-INSTALL-SCRIPT": execute_lazy_install_script(script[0], script[2]) + elif script[1] == "#LAZY-CNR-SWITCH-SCRIPT": + execute_lazy_cnr_switch(script[0], script[2], script[3], script[4], script[5], script[6]) + execute_lazy_install_script(script[3], script[7]) + + elif script[1] == "#LAZY-DELETE-NODEPACK": + execute_lazy_delete(script[2]) + elif os.path.exists(script[0]): if script[1] == "#FORCE": del script[1] @@ -555,35 +768,73 @@ if os.path.exists(script_list_path): continue print(f"\n## ComfyUI-Manager: EXECUTE => {script[1:]}") - print(f"\n## Execute install/(de)activation script for '{script[0]}'") + print(f"\n## Execute management script for '{script[0]}'") - exit_code = process_wrap(script[1:], script[0]) + new_env = os.environ.copy() + if 'COMFYUI_FOLDERS_BASE_PATH' not in new_env: + new_env["COMFYUI_FOLDERS_BASE_PATH"] = comfy_path + exit_code = process_wrap(script[1:], script[0], env=new_env) if exit_code != 0: - print(f"install/(de)activation script failed: {script[0]}") + print(f"management script failed: {script[0]}") else: print(f"\n## ComfyUI-Manager: CANCELED => {script[1:]}") except Exception as e: - print(f"[ERROR] Failed to execute install/(de)activation script: {line} / {e}") + print(f"[ERROR] Failed to execute management script: {line} / {e}") # Remove the script_list_path file if os.path.exists(script_list_path): + script_executed = True os.remove(script_list_path) print("\n[ComfyUI-Manager] Startup script completed.") print("#######################################################################\n") + +# Check if script_list_path exists +if os.path.exists(script_list_path): + execute_startup_script() + + +pip_fixer.fix_broken() + del processed_install -del pip_map +del pip_fixer +manager_util.clear_pip_cache() + +if script_executed: + # Restart + print("[ComfyUI-Manager] Restarting to reapply dependency installation.") + + if '__COMFY_CLI_SESSION__' in os.environ: + with open(os.path.join(os.environ['__COMFY_CLI_SESSION__'] + '.reboot'), 'w'): + pass + + print("--------------------------------------------------------------------------\n") + exit(0) + else: + sys_argv = sys.argv.copy() + + if sys_argv[0].endswith("__main__.py"): # this is a python module + module_name = os.path.basename(os.path.dirname(sys_argv[0])) + cmds = [sys.executable, '-m', module_name] + sys_argv[1:] + elif sys.platform.startswith('win32'): + cmds = ['"' + sys.executable + '"', '"' + sys_argv[0] + '"'] + sys_argv[1:] + else: + cmds = [sys.executable] + sys_argv + + print(f"Command: {cmds}", flush=True) + print("--------------------------------------------------------------------------\n") + + os.execv(sys.executable, cmds) def check_windows_event_loop_policy(): try: import configparser - config_path = os.path.join(os.path.dirname(__file__), "config.ini") - config = configparser.ConfigParser() - config.read(config_path) + config = configparser.ConfigParser(strict=False) + config.read(manager_config_path) default_conf = config['default'] if 'windows_selector_event_loop_policy' in default_conf and default_conf['windows_selector_event_loop_policy'].lower() == 'true': @@ -591,7 +842,7 @@ def check_windows_event_loop_policy(): import asyncio import asyncio.windows_events asyncio.set_event_loop_policy(asyncio.windows_events.WindowsSelectorEventLoopPolicy()) - print(f"[ComfyUI-Manager] Windows event loop policy mode enabled") + print("[ComfyUI-Manager] Windows event loop policy mode enabled") except Exception as e: print(f"[ComfyUI-Manager] WARN: Windows initialization fail: {e}") except Exception: diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..8d369067 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,15 @@ +[project] +name = "comfyui-manager" +description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI." +version = "3.36" +license = { file = "LICENSE.txt" } +dependencies = ["GitPython", "PyGithub", "matrix-nio", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"] + +[project.urls] +Repository = "https://github.com/ltdrdata/ComfyUI-Manager" +# Used by Comfy Registry https://comfyregistry.org + +[tool.comfy] +PublisherId = "drltdata" +DisplayName = "ComfyUI-Manager" +Icon = "" diff --git a/requirements.txt b/requirements.txt index 70a430f7..08372455 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,11 @@ GitPython PyGithub -matrix-client==0.4.0 +matrix-nio transformers -huggingface-hub>0.20 \ No newline at end of file +huggingface-hub>0.20 +typer +rich +typing-extensions +toml +uv +chardet diff --git a/ruff.toml b/ruff.toml new file mode 100644 index 00000000..26ec1d89 --- /dev/null +++ b/ruff.toml @@ -0,0 +1,12 @@ +# Disable all rules by default +lint.ignore = ["ALL"] + +# Enable specific rules +lint.select = [ + "S307", # suspicious-eval-usage + # The "F" series in Ruff stands for "Pyflakes" rules, which catch various Python syntax errors and undefined names. + # See all rules here: https://docs.astral.sh/ruff/rules/#pyflakes-f + "F", +] + +exclude = ["*.ipynb"] diff --git a/scan.sh b/scan.sh index f1f088ec..c35e90a5 100755 --- a/scan.sh +++ b/scan.sh @@ -3,5 +3,9 @@ rm ~/.tmp/default/*.py > /dev/null 2>&1 python scanner.py ~/.tmp/default $* cp extension-node-map.json node_db/new/. -echo Integrity check -./check.sh +echo "Integrity check" +if [ -f "check2.sh" ]; then + ./check2.sh +else + ./check.sh +fi \ No newline at end of file diff --git a/scanner.py b/scanner.py index c23bb5fc..c7138550 100644 --- a/scanner.py +++ b/scanner.py @@ -3,9 +3,10 @@ import re import os import json from git import Repo -from torchvision.datasets.utils import download_url import concurrent import datetime +import concurrent.futures +import requests builtin_nodes = set() @@ -15,6 +16,29 @@ from urllib.parse import urlparse from github import Github +def download_url(url, dest_folder, filename=None): + # Ensure the destination folder exists + if not os.path.exists(dest_folder): + os.makedirs(dest_folder) + + # Extract filename from URL if not provided + if filename is None: + filename = os.path.basename(url) + + # Full path to save the file + dest_path = os.path.join(dest_folder, filename) + + # Download the file + response = requests.get(url, stream=True) + if response.status_code == 200: + with open(dest_path, 'wb') as file: + for chunk in response.iter_content(chunk_size=1024): + if chunk: + file.write(chunk) + else: + raise Exception(f"Failed to download file from {url}") + + # prepare temp dir if len(sys.argv) > 1: temp_dir = sys.argv[1] @@ -37,21 +61,36 @@ else: print(f"TEMP DIR: {temp_dir}") +parse_cnt = 0 + + def extract_nodes(code_text): + global parse_cnt + try: + if parse_cnt % 100 == 0: + print(".", end="", flush=True) + parse_cnt += 1 + + code_text = re.sub(r'\\[^"\']', '', code_text) parsed_code = ast.parse(code_text) assignments = (node for node in parsed_code.body if isinstance(node, ast.Assign)) - + for assignment in assignments: - if isinstance(assignment.targets[0], ast.Name) and assignment.targets[0].id == 'NODE_CLASS_MAPPINGS': + if isinstance(assignment.targets[0], ast.Name) and assignment.targets[0].id in ['NODE_CONFIG', 'NODE_CLASS_MAPPINGS']: node_class_mappings = assignment.value break else: node_class_mappings = None if node_class_mappings: - s = set([key.s.strip() for key in node_class_mappings.keys if key is not None]) + s = set() + + for key in node_class_mappings.keys: + if key is not None and isinstance(key.value, str): + s.add(key.value.strip()) + return s else: return set() @@ -63,12 +102,8 @@ def extract_nodes(code_text): def scan_in_file(filename, is_builtin=False): global builtin_nodes - try: - with open(filename, encoding='utf-8') as file: - code = file.read() - except UnicodeDecodeError: - with open(filename, encoding='cp949') as file: - code = file.read() + with open(filename, encoding='utf-8', errors='ignore') as file: + code = file.read() pattern = r"_CLASS_MAPPINGS\s*=\s*{([^}]*)}" regex = re.compile(pattern, re.MULTILINE | re.DOTALL) @@ -77,16 +112,26 @@ def scan_in_file(filename, is_builtin=False): class_dict = {} nodes |= extract_nodes(code) + code = re.sub(r'^#.*?$', '', code, flags=re.MULTILINE) - pattern2 = r'^[^=]*_CLASS_MAPPINGS\["(.*?)"\]' - keys = re.findall(pattern2, code) - for key in keys: - nodes.add(key.strip()) + def extract_keys(pattern, code): + keys = re.findall(pattern, code) + return {key.strip() for key in keys} - pattern3 = r'^[^=]*_CLASS_MAPPINGS\[\'(.*?)\'\]' - keys = re.findall(pattern3, code) - for key in keys: - nodes.add(key.strip()) + def update_nodes(nodes, new_keys): + nodes |= new_keys + + patterns = [ + r'^[^=]*_CLASS_MAPPINGS\["(.*?)"\]', + r'^[^=]*_CLASS_MAPPINGS\[\'(.*?)\'\]', + r'@register_node\("(.+)",\s*\".+"\)', + r'"(\w+)"\s*:\s*{"class":\s*\w+\s*' + ] + + with concurrent.futures.ThreadPoolExecutor() as executor: + futures = {executor.submit(extract_keys, pattern, code): pattern for pattern in patterns} + for future in concurrent.futures.as_completed(futures): + update_nodes(nodes, future.result()) matches = regex.findall(code) for match in matches: @@ -196,24 +241,27 @@ def get_py_urls_from_json(json_file): def clone_or_pull_git_repository(git_url): - repo_name = git_url.split("/")[-1].split(".")[0] + repo_name = git_url.split("/")[-1] + if repo_name.endswith(".git"): + repo_name = repo_name[:-4] + repo_dir = os.path.join(temp_dir, repo_name) if os.path.exists(repo_dir): try: repo = Repo(repo_dir) origin = repo.remote(name="origin") - origin.pull(rebase=True) + origin.pull() repo.git.submodule('update', '--init', '--recursive') print(f"Pulling {repo_name}...") except Exception as e: - print(f"Pulling {repo_name} failed: {e}") + print(f"Failed to pull '{repo_name}': {e}") else: try: Repo.clone_from(git_url, repo_dir, recursive=True) print(f"Cloning {repo_name}...") except Exception as e: - print(f"Cloning {repo_name} failed: {e}") + print(f"Failed to clone '{repo_name}': {e}") def update_custom_nodes(): @@ -245,7 +293,7 @@ def update_custom_nodes(): pass def is_rate_limit_exceeded(): - return g.rate_limiting[0] == 0 + return g.rate_limiting[0] <= 20 if is_rate_limit_exceeded(): print(f"GitHub API Rate Limit Exceeded: remained - {(g.rate_limiting_resettime - datetime.datetime.now().timestamp())/60:.2f} min") @@ -254,6 +302,9 @@ def update_custom_nodes(): if is_rate_limit_exceeded(): return + if 'github.com' not in url: + return None + print('.', end="") sys.stdout.flush() try: @@ -265,24 +316,37 @@ def update_custom_nodes(): if len(path_parts) >= 2 and domain == "github.com": owner_repo = "/".join(path_parts[-2:]) repo = g.get_repo(owner_repo) - + owner = repo.owner + now = datetime.datetime.now(datetime.timezone.utc) + author_time_diff = now - owner.created_at + last_update = repo.pushed_at.strftime("%Y-%m-%d %H:%M:%S") if repo.pushed_at else 'N/A' - github_stats[url] = { + item = { "stars": repo.stargazers_count, "last_update": last_update, - "cached_time": datetime.datetime.now().timestamp(), + "cached_time": now.timestamp(), + "author_account_age_days": author_time_diff.days, } - with open(GITHUB_STATS_CACHE_FILENAME, 'w', encoding='utf-8') as file: - json.dump(github_stats, file, ensure_ascii=False, indent=4) + return url, item else: print(f"\nInvalid URL format for GitHub repository: {url}\n") except Exception as e: print(f"\nERROR on {url}\n{e}") + return None + # resolve unresolved urls - for url, title, preemptions, node_pattern in git_url_titles_preemptions: - if url not in github_stats: - renew_stat(url) + with concurrent.futures.ThreadPoolExecutor(11) as executor: + futures = [] + for url, title, preemptions, node_pattern in git_url_titles_preemptions: + if url not in github_stats: + futures.append(executor.submit(renew_stat, url)) + + for future in concurrent.futures.as_completed(futures): + url_item = future.result() + if url_item is not None: + url, item = url_item + github_stats[url] = item # renew outdated cache outdated_urls = [] @@ -291,26 +355,34 @@ def update_custom_nodes(): if elapsed > 60*60*12: # 12 hours outdated_urls.append(k) - for url in outdated_urls: - renew_stat(url) + with concurrent.futures.ThreadPoolExecutor(11) as executor: + for url in outdated_urls: + futures.append(executor.submit(renew_stat, url)) + + for future in concurrent.futures.as_completed(futures): + url_item = future.result() + if url_item is not None: + url, item = url_item + github_stats[url] = item + + with open('github-stats-cache.json', 'w', encoding='utf-8') as file: + json.dump(github_stats, file, ensure_ascii=False, indent=4) with open(GITHUB_STATS_FILENAME, 'w', encoding='utf-8') as file: for v in github_stats.values(): if "cached_time" in v: del v["cached_time"] + github_stats = dict(sorted(github_stats.items())) + json.dump(github_stats, file, ensure_ascii=False, indent=4) - print(f"Successfully written to {GITHUB_STATS_FILENAME}, removing {GITHUB_STATS_CACHE_FILENAME}.") - # try: - # os.remove(GITHUB_STATS_CACHE_FILENAME) # This cache file is just for avoiding failure of GitHub API fetch, so it is safe to remove. - # except: - # pass + print(f"Successfully written to {GITHUB_STATS_FILENAME}.") + + if not skip_stat_update: + process_git_stats(git_url_titles_preemptions) with concurrent.futures.ThreadPoolExecutor(11) as executor: - if not skip_stat_update: - executor.submit(process_git_stats, git_url_titles_preemptions) # One single thread for `process_git_stats()`. Runs concurrently with `process_git_url_title()`. - for url, title, preemptions, node_pattern in git_url_titles_preemptions: executor.submit(process_git_url_title, url, title, preemptions, node_pattern) @@ -408,7 +480,14 @@ def gen_json(node_info): git_url, title, preemptions, node_pattern = node_info[extension] with open(node_list_json_path, 'r', encoding='utf-8') as f: - node_list_json = json.load(f) + try: + node_list_json = json.load(f) + except Exception as e: + print(f"\nERROR: Invalid json format '{node_list_json_path}'") + print("------------------------------------------------------") + print(e) + print("------------------------------------------------------") + node_list_json = {} metadata_in_url = {} if git_url not in data: @@ -417,8 +496,15 @@ def gen_json(node_info): nodes_in_url, metadata_in_url = data[git_url] nodes = set(nodes_in_url) - for x, desc in node_list_json.items(): - nodes.add(x.strip()) + try: + for x, desc in node_list_json.items(): + nodes.add(x.strip()) + except Exception as e: + print(f"\nERROR: Invalid json format '{node_list_json_path}'") + print("------------------------------------------------------") + print(e) + print("------------------------------------------------------") + node_list_json = {} metadata_in_url['title_aux'] = title @@ -432,7 +518,7 @@ def gen_json(node_info): nodes.sort() data[git_url] = (nodes, metadata_in_url) - json_path = f"extension-node-map.json" + json_path = "extension-node-map.json" with open(json_path, "w", encoding='utf-8') as file: json.dump(data, file, indent=4, sort_keys=True) @@ -445,3 +531,4 @@ updated_node_info = update_custom_nodes() print("\n# 'extension-node-map.json' file is generated.\n") gen_json(updated_node_info) +print("\nDONE.\n") \ No newline at end of file diff --git a/scripts/install-comfyui-venv-linux.sh b/scripts/install-comfyui-venv-linux.sh index fecf3d5b..5a736ef1 100755 --- a/scripts/install-comfyui-venv-linux.sh +++ b/scripts/install-comfyui-venv-linux.sh @@ -1,12 +1,12 @@ git clone https://github.com/comfyanonymous/ComfyUI cd ComfyUI/custom_nodes -git clone https://github.com/ltdrdata/ComfyUI-Manager +git clone https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager cd .. python -m venv venv source venv/bin/activate python -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121 python -m pip install -r requirements.txt -python -m pip install -r custom_nodes/ComfyUI-Manager/requirements.txt +python -m pip install -r custom_nodes/comfyui-manager/requirements.txt cd .. echo "#!/bin/bash" > run_gpu.sh echo "cd ComfyUI" >> run_gpu.sh diff --git a/scripts/install-comfyui-venv-win.bat b/scripts/install-comfyui-venv-win.bat index 2789ef6d..47470098 100755 --- a/scripts/install-comfyui-venv-win.bat +++ b/scripts/install-comfyui-venv-win.bat @@ -1,12 +1,12 @@ git clone https://github.com/comfyanonymous/ComfyUI cd ComfyUI/custom_nodes -git clone https://github.com/ltdrdata/ComfyUI-Manager +git clone https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager cd .. python -m venv venv call venv/Scripts/activate python -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121 python -m pip install -r requirements.txt -python -m pip install -r custom_nodes/ComfyUI-Manager/requirements.txt +python -m pip install -r custom_nodes/comfyui-manager/requirements.txt cd .. echo "cd ComfyUI" >> run_gpu.bat echo "call venv/Scripts/activate" >> run_gpu.bat diff --git a/scripts/install-manager-for-portable-version.bat b/scripts/install-manager-for-portable-version.bat index 7b067dfd..6eb58b74 100644 --- a/scripts/install-manager-for-portable-version.bat +++ b/scripts/install-manager-for-portable-version.bat @@ -1,2 +1,3 @@ .\python_embeded\python.exe -s -m pip install gitpython -.\python_embeded\python.exe -c "import git; git.Repo.clone_from('https://github.com/ltdrdata/ComfyUI-Manager', './ComfyUI/custom_nodes/ComfyUI-Manager')" +.\python_embeded\python.exe -c "import git; git.Repo.clone_from('https://github.com/ltdrdata/ComfyUI-Manager', './ComfyUI/custom_nodes/comfyui-manager')" +.\python_embeded\python.exe -m pip install -r ./ComfyUI/custom_nodes/comfyui-manager/requirements.txt diff --git a/scripts/update-fix.py b/scripts/update-fix.py deleted file mode 100644 index d2ac1007..00000000 --- a/scripts/update-fix.py +++ /dev/null @@ -1,12 +0,0 @@ -import git - -commit_hash = "a361cc1" - -repo = git.Repo('.') - -if repo.is_dirty(): - repo.git.stash() - -repo.git.update_ref("refs/remotes/origin/main", commit_hash) -repo.remotes.origin.fetch() -repo.git.pull("origin", "main")