Compare commits

...

87 Commits

Author SHA1 Message Date
bymyself
1a83bab57b [api] Add OpenAPI specification file 2025-05-20 15:55:19 -07:00
Dr.Lt.Data
416122d61d update DB 2025-05-21 00:03:10 +09:00
Dr.Lt.Data
d3c625e791 update DB 2025-05-20 23:43:34 +09:00
2frames
ca2c41783c Add AQnodes (#1849)
* add AQnodes

* add AQnodes - fix repo url

---------

Co-authored-by: pk <poczta@aquasite.pl>
2025-05-20 23:42:57 +09:00
Dr.Lt.Data
e2a6446585 update DB 2025-05-20 23:42:44 +09:00
ICAI Icelandic Center for Artificial Intelligence
839790b5ab Update custom-node-list.json (#1848)
added entry for Sample Scheduler Metrics Tester custom node
2025-05-20 23:41:32 +09:00
jqy-yo
58b9946936 Add Comfyui-BBoxLowerMask2 to custom-node-list (#1842) 2025-05-20 23:41:00 +09:00
Dr.Lt.Data
a19ba22eaf update DB 2025-05-20 23:40:40 +09:00
Yuan-Man
117715aa22 Add ComfyUI-MoviiGen node (#1846) 2025-05-20 23:35:37 +09:00
lum3on
891a5a85ee add ModelQuantizer node to custom node list (#1806)
* add-ModelQuantizer to custom node list

* Update custom-node-list.json

---------

Co-authored-by: yogotatara3 <milan.kastenmueller@thjnk.de>
Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-05-20 23:32:43 +09:00
Dr.Lt.Data
166debfabb modified: In Python 3.13, the functionality to forcibly downgrade the numpy version below 3.13 is disabled.
- Starting from Python 3.13, prebuilt wheels for `numpy` 1.26.4 are no longer provided.

https://github.com/comfyanonymous/ComfyUI/discussions/8187
2025-05-19 05:13:40 +09:00
Dr.Lt.Data
7258a09fe5 update DB 2025-05-19 05:03:54 +09:00
Dr.Lt.Data
058a436187 update DB 2025-05-17 17:39:31 +09:00
Yuan-Man
1950802c55 Update ComfyUI-Step1X-3D node (#1840) 2025-05-17 17:11:51 +09:00
Dr.Lt.Data
eb52a03372 update DB 2025-05-16 03:52:03 +09:00
Dr.Lt.Data
f8aa428be3 update DB 2025-05-15 22:09:48 +09:00
Dr.Lt.Data
ec0893f136 update DB 2025-05-15 21:48:56 +09:00
TrophiHunter
92b99ea963 Update custom-node-list.json (#1832)
add my nodes to manager
2025-05-15 21:47:37 +09:00
Dr.Lt.Data
02cd52bb65 update DB 2025-05-15 21:45:19 +09:00
Dontdrunk
af1ec2c87b Update custom-node-list.json (#1818)
* Submit Registration

* Update custom-node-list.json

* Update custom-node-list.json
2025-05-15 21:43:29 +09:00
Dr.Lt.Data
41006c3a33 update DB 2025-05-15 08:09:03 +09:00
Gilad Schreiber
116a6d500d model-list: add new ltxv 13b distilled models. (#1835)
Co-authored-by: gschreiber <gschreiber@infra-image-generator.c.ltx-research-vms.internal>
2025-05-15 08:03:12 +09:00
Dr.Lt.Data
87d0ac807f update DB 2025-05-15 07:24:34 +09:00
Dr.Lt.Data
fc943172eb update DB 2025-05-14 06:07:35 +09:00
Gilad Schreiber
9daa5a2fbd fix: update ltxv upscale models metadata. (#1830)
Co-authored-by: gschreiber <gschreiber@infra-image-generator.c.ltx-research-vms.internal>
2025-05-14 06:07:22 +09:00
Dr.Lt.Data
b7b2746a61 update DB 2025-05-13 03:36:18 +09:00
Dr.Lt.Data
d66a4fbfc8 update DB 2025-05-13 03:23:47 +09:00
Dr.Lt.Data
683a172ad8 modified: Added a feature to prevent numpy from being forcibly downgraded to below 2 via pip_overrides.json.
https://github.com/Comfy-Org/ComfyUI-Manager/issues/1665#issuecomment-2862099191
2025-05-13 03:04:27 +09:00
Dr.Lt.Data
6e12358f5a update DB 2025-05-13 02:56:36 +09:00
Dr.Lt.Data
8bcf16dc90 fixed: A type error occurred during the creation of the pip fixer object when an error occurred while retrieving the list of installed packages.
https://github.com/Comfy-Org/ComfyUI-Manager/issues/1804
2025-05-13 02:46:34 +09:00
Dr.Lt.Data
65c0a2a1f5 update DB 2025-05-13 02:10:21 +09:00
Alastor 666 1933
115236eb9c adding caching_to_not_waste custom node (#1786) 2025-05-13 02:06:23 +09:00
Dr.Lt.Data
08de942abe update DB 2025-05-13 02:05:51 +09:00
Seb Hirsch
e9dff83290 Update custom-node-list.json (#1802)
added seb nodes
2025-05-13 02:02:55 +09:00
Yuan-Man
3bc6c7584d Add ComfyUI-Muyan-TTS node (#1805) 2025-05-13 02:00:54 +09:00
Dr.Lt.Data
22a2bf1584 Apply https://github.com/Comfy-Org/ComfyUI-Manager/pull/1811 to prestartup_script as well. 2025-05-13 01:59:42 +09:00
Tomasz Dowgielewicz
79ece5f72c fix: handle pip package names with inline comments during installation (#1811)
Co-authored-by: Tomasz Dowgielewicz <todowgielewicz@artflow.me>
2025-05-13 01:53:44 +09:00
VitoChenLY
5da6fe1373 extract_url_and_commit_id (#1813)
Co-authored-by: chenyijian <chenyijian@infini-ai.com>
2025-05-13 01:52:02 +09:00
moldwebs
48c10d0b95 Show models used in current workflow (#1819)
Simple javascript modify that filter models used in current workflow
2025-05-13 01:48:29 +09:00
Dr.Lt.Data
9bb56b1457 update DB 2025-05-13 01:46:26 +09:00
1hew
83420fd828 Add ComfyUI-1hewNodes to custom node list (#1826)
Co-authored-by: yige1127 <wangyihe370875982@gmail.com>
2025-05-13 01:45:34 +09:00
Dr.Lt.Data
52f4b9506f update DB 2025-05-13 01:44:07 +09:00
fpgaminer
b501e9b20b Add fpgaminer/joycaption_comfyui to custom-node-list.json (#1827) 2025-05-13 01:43:28 +09:00
Dr.Lt.Data
1f7ae5319a update DB 2025-05-13 01:42:35 +09:00
Goshe-nite
68c201239d Update custom-node-list.json (#1825) 2025-05-13 01:42:13 +09:00
Dr.Lt.Data
6e4e43f612 update DB 2025-05-13 01:41:12 +09:00
AIWarper
81c3708f39 Add NormalCrafterWrapper custom node by AIWarper (#1816) 2025-05-13 01:40:43 +09:00
Dr.Lt.Data
f4d2bbde34 update DB 2025-05-13 01:40:25 +09:00
gasparuff
d14b42a42c Update custom-node-list.json (#1810)
added customselector node to custom-node-list.json
2025-05-13 01:34:46 +09:00
Dr.Lt.Data
0e9c32344c fix: syntax error 2025-05-12 18:33:24 +09:00
Liangbin Lian
30c4ea06af fix model DB for Hyper-SD LoRA (4steps) - SDXL (#1815) 2025-05-12 18:20:42 +09:00
Fadel Mochammad
8211264993 Add inline comment to __init__.py (#1823) 2025-05-12 18:15:27 +09:00
ClownsharkBatwing
67cf5b49e1 Update custom-node-list.json (#1821) 2025-05-12 18:15:12 +09:00
Dr.Lt.Data
8e7ba18e05 update DB 2025-05-09 08:04:39 +09:00
Dr.Lt.Data
8359e1063e update DB 2025-05-09 07:23:33 +09:00
VitoChenLY
ca078e54b9 Add 'exit-on-fail' parameter to control failure behavior (#1807)
Co-authored-by: chenyijian <chenyijian@infini-ai.com>
2025-05-09 07:08:41 +09:00
Dr.Lt.Data
f7e930c5a2 update DB 2025-05-08 02:03:46 +09:00
Dr.Lt.Data
479d95e1c8 update DB 2025-05-08 01:43:01 +09:00
Demis Bellot
2b0ff08eef Add ComfyUI Asset Downloader (#1799) 2025-05-08 01:34:02 +09:00
Dr.Lt.Data
67a487db15 update DB 2025-05-08 01:30:54 +09:00
Dr.Lt.Data
2488cb3458 update DB 2025-05-08 00:11:28 +09:00
Dr.Lt.Data
157e6336fa update DB 2025-05-08 00:09:38 +09:00
IrsalKhan
d808a1f406 Add ComfyUI DAM Object Extractor node (#1796)
* Update custom-node-list.json

* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-05-08 00:08:58 +09:00
Dr.Lt.Data
2bb4d8cd63 update DB 2025-05-08 00:08:42 +09:00
CY-CHENYUE
a8164e1631 Update custom-node-list.json (#1791)
* Update custom-node-list.json

* Update custom-node-list.json

---------

Co-authored-by: Dr.Lt.Data <128333288+ltdrdata@users.noreply.github.com>
2025-05-08 00:07:50 +09:00
Dr.Lt.Data
a31d286945 update DB 2025-05-08 00:05:49 +09:00
wakattac
12eeef4cf0 Update custom-node-list.json (#1793) 2025-05-08 00:04:36 +09:00
Yuan-Man
ce8e6dc36e Add ComfyUI-AudioX node (#1798) 2025-05-08 00:03:58 +09:00
Sssnap
7a32e544a7 Update custom-node-list.json (#1792) 2025-05-07 23:54:45 +09:00
Dr.Lt.Data
e16e9d7a0e update DB 2025-05-03 23:40:58 +09:00
unicough
821f908dbc Update custom-node-list.json (#1784) 2025-05-03 23:12:05 +09:00
Dr.Lt.Data
e007e6f897 update DB 2025-05-01 02:08:58 +09:00
Yuan-Man
94f496fd65 Add ComfyUI-Step1X-Edit node (#1780) 2025-05-01 01:15:03 +09:00
Dr.Lt.Data
d2ce35d2e6 update DB 2025-05-01 01:13:31 +09:00
somesomebody
2eeebb32dc Add comfyui-lorainfo-sidebar to custom node list (#1778) 2025-05-01 01:12:44 +09:00
Sander
f6d636d82f Add fixed MagicQuill node (#1768) 2025-05-01 01:08:11 +09:00
Dr.Lt.Data
0cd397623e update DB 2025-04-29 00:21:59 +09:00
Dr.Lt.Data
5978b6c9ee updated: PIPFixer - support for pytorch 2.7.0 2025-04-28 23:49:42 +09:00
Dr.Lt.Data
9e132811bc update DB 2025-04-28 00:43:52 +09:00
Dr.Lt.Data
3a3b5c1f92 update DB 2025-04-27 23:16:48 +09:00
hua(Kungfu)
26be01ff82 Update custom-node-list.json (#1774) 2025-04-27 22:52:56 +09:00
Dr.Lt.Data
8f6dd92374 update DB 2025-04-26 18:24:56 +09:00
Dr.Lt.Data
d50b71a887 update DB 2025-04-26 14:51:07 +09:00
Dr.Lt.Data
3bc9cbc767 update DB 2025-04-26 13:16:26 +09:00
Yuan-Man
b6f6b4fd8a Add ComfyUI-LiveCC node (#1770) 2025-04-26 13:12:14 +09:00
Christian Byrne
a66bada8a3 Update workflow-metadata.js 2025-04-23 17:24:07 -07:00
Dr.Lt.Data
a804f7de19 update DB 2025-04-22 02:14:50 +09:00
21 changed files with 17386 additions and 6963 deletions

View File

@@ -1,3 +1,7 @@
"""
This file is the entry point for the ComfyUI-Manager package, handling CLI-only mode and initial setup.
"""
import os import os
import sys import sys

View File

@@ -45,7 +45,11 @@ comfyui_manager_path = os.path.abspath(os.path.dirname(__file__))
cm_global.pip_blacklist = {'torch', 'torchaudio', 'torchsde', 'torchvision'} 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', 'torchaudio', 'torchsde', 'torchvision', 'transformers', 'safetensors', 'kornia']
cm_global.pip_overrides = {'numpy': 'numpy<2'}
if sys.version_info < (3, 13):
cm_global.pip_overrides = {'numpy': 'numpy<2'}
else:
cm_global.pip_overrides = {}
if os.path.exists(os.path.join(manager_util.comfyui_manager_path, "pip_overrides.json")): 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: with open(os.path.join(manager_util.comfyui_manager_path, "pip_overrides.json"), 'r', encoding="UTF-8", errors="ignore") as json_file:
@@ -147,7 +151,9 @@ class Ctx:
if os.path.exists(core.manager_pip_overrides_path): 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: with open(core.manager_pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file:
cm_global.pip_overrides = json.load(json_file) cm_global.pip_overrides = json.load(json_file)
cm_global.pip_overrides = {'numpy': 'numpy<2'}
if sys.version_info < (3, 13):
cm_global.pip_overrides = {'numpy': 'numpy<2'}
if os.path.exists(core.manager_pip_blacklist_path): if os.path.exists(core.manager_pip_blacklist_path):
with open(core.manager_pip_blacklist_path, 'r', encoding="UTF-8", errors="ignore") as f: with open(core.manager_pip_blacklist_path, 'r', encoding="UTF-8", errors="ignore") as f:
@@ -184,13 +190,18 @@ class Ctx:
cmd_ctx = Ctx() cmd_ctx = Ctx()
def install_node(node_spec_str, is_all=False, cnt_msg=''): 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): if core.is_valid_url(node_spec_str):
# install via urls # install via urls
res = asyncio.run(core.gitclone_install(node_spec_str, no_deps=cmd_ctx.no_deps)) res = asyncio.run(core.gitclone_install(node_spec_str, no_deps=cmd_ctx.no_deps))
if not res.result: if not res.result:
print(res.msg) print(res.msg)
print(f"[bold red]ERROR: An error occurred while installing '{node_spec_str}'.[/bold red]") print(f"[bold red]ERROR: An error occurred while installing '{node_spec_str}'.[/bold red]")
if exit_on_fail:
sys.exit(1)
else: else:
print(f"{cnt_msg} [INSTALLED] {node_spec_str:50}") print(f"{cnt_msg} [INSTALLED] {node_spec_str:50}")
else: else:
@@ -225,6 +236,8 @@ def install_node(node_spec_str, is_all=False, cnt_msg=''):
print("") print("")
else: else:
print(f"[bold red]ERROR: An error occurred while installing '{node_name}'.\n{res.msg}[/bold red]") 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_spec_str, is_all=False, cnt_msg=''): def reinstall_node(node_spec_str, is_all=False, cnt_msg=''):
@@ -586,7 +599,7 @@ def get_all_installed_node_specs():
return res return res
def for_each_nodes(nodes, act, allow_all=True): def for_each_nodes(nodes, act, allow_all=True, **kwargs):
is_all = False is_all = False
if allow_all and 'all' in nodes: if allow_all and 'all' in nodes:
is_all = True is_all = True
@@ -598,7 +611,7 @@ def for_each_nodes(nodes, act, allow_all=True):
i = 1 i = 1
for x in nodes: for x in nodes:
try: 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: except Exception as e:
print(f"ERROR: {e}") print(f"ERROR: {e}")
traceback.print_exc() traceback.print_exc()
@@ -642,13 +655,17 @@ def install(
None, None,
help="user directory" help="user directory"
), ),
exit_on_fail: bool = typer.Option(
False,
help="Exit on failure"
)
): ):
cmd_ctx.set_user_directory(user_directory) cmd_ctx.set_user_directory(user_directory)
cmd_ctx.set_channel_mode(channel, mode) cmd_ctx.set_channel_mode(channel, mode)
cmd_ctx.set_no_deps(no_deps) cmd_ctx.set_no_deps(no_deps)
pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path) pip_fixer = manager_util.PIPFixer(manager_util.get_installed_packages(), comfy_path, core.manager_files_path)
for_each_nodes(nodes, act=install_node) for_each_nodes(nodes, act=install_node, exit_on_fail=exit_on_fail)
pip_fixer.fix_broken() pip_fixer.fix_broken()

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -43,7 +43,7 @@ import manager_downloader
from node_package import InstalledNodePackage from node_package import InstalledNodePackage
version_code = [3, 31, 12] version_code = [3, 32, 3]
version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '') version_str = f"V{version_code[0]}.{version_code[1]}" + (f'.{version_code[2]}' if len(version_code) > 2 else '')
@@ -868,8 +868,9 @@ class UnifiedManager:
package_name = remap_pip_package(line.strip()) package_name = remap_pip_package(line.strip())
if package_name and not package_name.startswith('#') and package_name not in self.processed_install: if package_name and not package_name.startswith('#') and package_name not in self.processed_install:
self.processed_install.add(package_name) self.processed_install.add(package_name)
install_cmd = manager_util.make_pip_cmd(["install", package_name]) clean_package_name = package_name.split('#')[0].strip()
if package_name.strip() != "" and not package_name.startswith('#'): 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) res = res and try_install_script(url, repo_path, install_cmd, instant_execution=instant_execution)
pip_fixer.fix_broken() pip_fixer.fix_broken()
@@ -2072,6 +2073,13 @@ def is_valid_url(url):
return False return False
def extract_url_and_commit_id(s):
index = s.rfind('@')
if index == -1:
return (s, '')
else:
return (s[:index], s[index+1:])
async def gitclone_install(url, instant_execution=False, msg_prefix='', no_deps=False): async def gitclone_install(url, instant_execution=False, msg_prefix='', no_deps=False):
await unified_manager.reload('cache') await unified_manager.reload('cache')
await unified_manager.get_custom_nodes('default', 'cache') await unified_manager.get_custom_nodes('default', 'cache')
@@ -2089,8 +2097,11 @@ async def gitclone_install(url, instant_execution=False, msg_prefix='', no_deps=
cnr = unified_manager.get_cnr_by_repo(url) cnr = unified_manager.get_cnr_by_repo(url)
if cnr: if cnr:
cnr_id = cnr['id'] cnr_id = cnr['id']
return await unified_manager.install_by_id(cnr_id, version_spec='nightly', channel='default', mode='cache') return await unified_manager.install_by_id(cnr_id, version_spec=None, channel='default', mode='cache')
else: 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_name = os.path.splitext(os.path.basename(url))[0]
# NOTE: Keep original name as possible if unknown node # NOTE: Keep original name as possible if unknown node
@@ -2123,6 +2134,10 @@ async def gitclone_install(url, instant_execution=False, msg_prefix='', no_deps=
return result.fail(f"Failed to clone '{clone_url}' into '{repo_path}'") return result.fail(f"Failed to clone '{clone_url}' into '{repo_path}'")
else: else:
repo = git.Repo.clone_from(clone_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.git.clear_cache()
repo.close() repo.close()

View File

@@ -15,6 +15,7 @@ import re
import logging import logging
import platform import platform
import shlex import shlex
import cm_global
cache_lock = threading.Lock() cache_lock = threading.Lock()
@@ -256,7 +257,7 @@ def get_installed_packages(renew=False):
pip_map[normalized_name] = y[1] pip_map[normalized_name] = y[1]
except subprocess.CalledProcessError: except subprocess.CalledProcessError:
logging.error("[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.") logging.error("[ComfyUI-Manager] Failed to retrieve the information of installed pip packages.")
return set() return {}
return pip_map return pip_map
@@ -307,6 +308,7 @@ def parse_requirement_line(line):
torch_torchvision_torchaudio_version_map = { torch_torchvision_torchaudio_version_map = {
'2.7.0': ('0.22.0', '2.7.0'),
'2.6.0': ('0.21.0', '2.6.0'), '2.6.0': ('0.21.0', '2.6.0'),
'2.5.1': ('0.20.0', '2.5.0'), '2.5.1': ('0.20.0', '2.5.0'),
'2.5.0': ('0.20.0', '2.5.0'), '2.5.0': ('0.20.0', '2.5.0'),
@@ -410,8 +412,9 @@ class PIPFixer:
if len(targets) > 0: if len(targets) > 0:
for x in targets: for x in targets:
cmd = make_pip_cmd(['install', f"{x}=={versions[0].version_string}", "numpy<2"]) if sys.version_info < (3, 13):
subprocess.check_output(cmd, universal_newlines=True) cmd = make_pip_cmd(['install', f"{x}=={versions[0].version_string}", "numpy<2"])
subprocess.check_output(cmd, universal_newlines=True)
logging.info(f"[ComfyUI-Manager] 'opencv' dependencies were fixed: {targets}") logging.info(f"[ComfyUI-Manager] 'opencv' dependencies were fixed: {targets}")
except Exception as e: except Exception as e:
@@ -419,17 +422,21 @@ class PIPFixer:
logging.error(e) logging.error(e)
# fix numpy # fix numpy
try: if sys.version_info >= (3, 13):
np = new_pip_versions.get('numpy') logging.info("[ComfyUI-Manager] In Python 3.13 and above, PIP Fixer does not downgrade `numpy` below version 2.0. If you need to force a downgrade of `numpy`, please use `pip_auto_fix.list`.")
if np is not None: else:
if StrictVersion(np) >= StrictVersion('2'): try:
cmd = make_pip_cmd(['install', "numpy<2"]) np = new_pip_versions.get('numpy')
subprocess.check_output(cmd , universal_newlines=True) if cm_global.pip_overrides.get('numpy') == 'numpy<2':
if np is not None:
if StrictVersion(np) >= StrictVersion('2'):
cmd = make_pip_cmd(['install', "numpy<2"])
subprocess.check_output(cmd , universal_newlines=True)
logging.info("[ComfyUI-Manager] 'numpy' dependency were fixed") logging.info("[ComfyUI-Manager] 'numpy' dependency were fixed")
except Exception as e: except Exception as e:
logging.error("[ComfyUI-Manager] Failed to restore numpy") logging.error("[ComfyUI-Manager] Failed to restore numpy")
logging.error(e) logging.error(e)
# fix missing frontend # fix missing frontend
try: try:

View File

@@ -81,10 +81,13 @@ export class ModelManager {
value: "" value: ""
}, { }, {
label: "Installed", label: "Installed",
value: "True" value: "installed"
}, { }, {
label: "Not Installed", label: "Not Installed",
value: "False" value: "not_installed"
}, {
label: "In Workflow",
value: "in_workflow"
}]; }];
this.typeList = [{ this.typeList = [{
@@ -254,12 +257,31 @@ export class ModelManager {
rowFilter: (rowItem) => { rowFilter: (rowItem) => {
const searchableColumns = ["name", "type", "base", "description", "filename", "save_path"]; 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); let shouldShown = grid.highlightKeywordsFilter(rowItem, searchableColumns, this.keywords);
if (shouldShown) { if (shouldShown) {
if(this.filter && rowItem.installed !== this.filter) { if(this.filter) {
return false; 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) { if(this.type && rowItem.type !== this.type) {

View File

@@ -71,7 +71,7 @@ class WorkflowMetadataExtension {
if (cnr_id) nodeProperties.cnr_id = cnr_id; if (cnr_id) nodeProperties.cnr_id = cnr_id;
else nodeProperties.aux_id = aux_id; else nodeProperties.aux_id = aux_id;
if (ver) nodeProperties.ver = ver.trim(); if (ver) nodeProperties.ver = ver.trim();
} else if (["nodes", "comfy_extras"].includes(moduleType)) { } else if (["nodes", "comfy_extras", "comfy_api_nodes"].includes(moduleType)) {
nodeProperties.cnr_id = "comfy-core"; nodeProperties.cnr_id = "comfy-core";
nodeProperties.ver = this.comfyCoreVersion; nodeProperties.ver = this.comfyCoreVersion;
} }

View File

@@ -749,8 +749,8 @@
"save_path": "loras/HyperSD/SDXL", "save_path": "loras/HyperSD/SDXL",
"description": "Hyper-SD LoRA (4steps) - SDXL", "description": "Hyper-SD LoRA (4steps) - SDXL",
"reference": "https://huggingface.co/ByteDance/Hyper-SD", "reference": "https://huggingface.co/ByteDance/Hyper-SD",
"filename": "Hyper-SD15-4steps-lora.safetensors", "filename": "Hyper-SDXL-4steps-lora.safetensors",
"url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-4steps-lora.safetensors", "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-4steps-lora.safetensors",
"size": "787MB" "size": "787MB"
}, },
{ {
@@ -4953,6 +4953,107 @@
"filename": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", "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", "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" "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": "<huggingface>",
"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 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": "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"
} }
] ]
} }

View File

@@ -12,6 +12,697 @@
{
"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": "pomePLaszlo-collablyu",
"title": "comfyui_ejam",
"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": "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": "vivi-gomez",
"title": "ComfyUI-fixnodetranslate",
"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": "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": "Good-Dream-Studio",
"title": "ComfyUI-Connect [WIP]",
"reference": "https://github.com/Good-Dream-Studio/ComfyUI-Connect",
"files": [
"https://github.com/Good-Dream-Studio/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": "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 node pack is installed and the server is running with remote access enabled, it can read the contents of JSON files located in arbitrary paths.]"
},
{
"author": "silveroxides",
"title": "ComfyUI_EmbeddingToolkit",
"reference": "https://github.com/silveroxides/ComfyUI_EmbeddingToolkit",
"files": [
"https://github.com/silveroxides/ComfyUI_EmbeddingToolkit"
],
"install_type": "git-clone",
"description": "NODES: Save Token Embeddings, Save Weighted Embeddings, Save A1111-style Weighted Embeddings"
},
{
"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: 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 node pack 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": "wTechArtist",
"title": "ComfyUI_WWL_Florence2SAM2",
"reference": "https://github.com/wTechArtist/ComfyUI_WWL_Florence2SAM2",
"files": [
"https://github.com/wTechArtist/ComfyUI_WWL_Florence2SAM2"
],
"install_type": "git-clone",
"description": "NODES: WWL_Florence2SAM2"
},
{
"author": "virallover",
"title": "comfyui-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"
},
{
"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": "MakkiShizu",
"title": "ComfyUI-MakkiTools",
"reference": "https://github.com/MakkiShizu/ComfyUI-MakkiTools",
"files": [
"https://github.com/MakkiShizu/ComfyUI-MakkiTools"
],
"install_type": "git-clone",
"description": "NODES: GetImageNthCount, ImageChannelSeparate, ImageCountConcatenate, MergeImageChannels, ImageWidthStitch, ImageHeigthStitch"
},
{
"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": "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": "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/ronaldstg/comfyui-plus-integrations",
"files": [
"https://github.com/ronaldstg/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": "MicheleGuidi",
"title": "ComfyUI-Computer-Vision [WIP]",
"reference": "https://github.com/MicheleGuidi/ComfyUI-Contextual-SAM2",
"files": [
"https://github.com/MicheleGuidi/comfyui-computer-vision"
],
"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).\nNOTE: The files in the repo are not organized."
},
{
"author": "shinich39",
"title": "comfyui-textarea-is-shit",
"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-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-FTM-Pack",
"reference": "https://github.com/ftechmax/ComfyUI-FTM-Pack",
"files": [
"https://github.com/ftechmax/ComfyUI-FTM-Pack"
],
"install_type": "git-clone",
"description": "NODES: Count Tokens"
},
{
"author": "BobRandomNumber",
"title": "ComfyUI DiaTest TTS Node [WIP]",
"reference": "https://github.com/BobRandomNumber/ComfyUI-DiaTest",
"files": [
"https://github.com/BobRandomNumber/ComfyUI-DiaTest"
],
"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": "ComfyUI Frontend Vue Basic is custom node that demonstrate how to use vue as frontend framework along with primevue and vue-i18n, cooperating with ComfyUI API"
},
{
"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": "An attempt to implement ComfyUI custom nodes using the Rust programming 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": "GACLove",
"title": "ComfyUI-Lightx2vWrapper",
"reference": "https://github.com/GACLove/ComfyUI-Lightx2vWrapper",
"files": [
"https://github.com/GACLove/ComfyUI-Lightx2vWrapper"
],
"install_type": "git-clone",
"description": "NODES: LightX2V WAN T5 Encoder Loader, LightX2V WAN T5 Encoder, LightX2V WAN CLIP Vision Encoder Loader, LightX2V WAN CLIP Vision Encoder, LightX2V WAN VAE Loader, LightX2V WAN Image Encoder, LightX2V WAN VAE Decoder, LightX2V WAN Model Loader, LightX2V WAN Video Sampler, LightX2V WAN Tea Cache, LightX2V WAN Video Empty Embeds"
},
{
"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", "author": "leon-etienne",
"title": "ComfyUI_Scoring-Nodes", "title": "ComfyUI_Scoring-Nodes",
@@ -282,16 +973,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "VideoDepthAnything nodes for ComfyUI" "description": "VideoDepthAnything nodes for ComfyUI"
}, },
{
"author": "MITCAP",
"title": "ComfyUI OpenAI DALL-E 3 Node [WIP]",
"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": "benmizrahi", "author": "benmizrahi",
"title": "ComfyGCS [WIP]", "title": "ComfyGCS [WIP]",
@@ -322,16 +1003,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A wrapper for CraftsMan\nNOTE: The files in the repo are not organized." "description": "A wrapper for CraftsMan\nNOTE: The files in the repo are not organized."
}, },
{
"author": "jax-explorer",
"title": "ComfyUI-H-flow",
"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": "Slix-M-Lestragg", "author": "Slix-M-Lestragg",
"title": "comfyui-enhanced [WIP]", "title": "comfyui-enhanced [WIP]",
@@ -432,16 +1103,6 @@
"install_type": "git-clone", "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." "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": "Kur0butiMegane",
"title": "Comfyui-StringUtils",
"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": "techtruth", "author": "techtruth",
"title": "ComfyUI-Dreambooth", "title": "ComfyUI-Dreambooth",
@@ -582,16 +1243,6 @@
"install_type": "git-clone", "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." "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": "fredconex",
"title": "ComfyUI-PaintTurbo",
"reference": "https://github.com/fredconex/ComfyUI-PaintTurbo",
"files": [
"https://github.com/fredconex/ComfyUI-PaintTurbo"
],
"install_type": "git-clone",
"description": "NODES: Hunyuan3D Texture Mesh"
},
{ {
"author": "zhaorishuai", "author": "zhaorishuai",
"title": "ComfyUI-StoryboardDistributor", "title": "ComfyUI-StoryboardDistributor",
@@ -602,16 +1253,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A ComfyUI plugin that automatically assigns storyboard content to 9 storyboard nodes." "description": "A ComfyUI plugin that automatically assigns storyboard content to 9 storyboard nodes."
}, },
{
"author": "Apache0ne",
"title": "ComfyUI-LantentCompose [WIP]",
"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": "alexgenovese", "author": "alexgenovese",
"title": "ComfyUI-Diffusion-4k [WIP]", "title": "ComfyUI-Diffusion-4k [WIP]",
@@ -785,7 +1426,7 @@
}, },
{ {
"author": "Solankimayursinh", "author": "Solankimayursinh",
"title": "PMSnodes", "title": "PMSnodes [WIP]",
"reference": "https://github.com/Solankimayursinh/PMSnodes", "reference": "https://github.com/Solankimayursinh/PMSnodes",
"files": [ "files": [
"https://github.com/Solankimayursinh/PMSnodes" "https://github.com/Solankimayursinh/PMSnodes"
@@ -981,7 +1622,7 @@
"https://github.com/BuffMcBigHuge/ComfyUI-Buff-Nodes" "https://github.com/BuffMcBigHuge/ComfyUI-Buff-Nodes"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "Assorted Nodes by BuffMcBigHuge" "description": "Several quality-of-life batch operation and string manipulation nodes."
}, },
{ {
"author": "ritikvirus", "author": "ritikvirus",
@@ -1464,16 +2105,6 @@
"install_type": "git-clone", "install_type": "git-clone",
"description": "A collection of custom nodes for ComfyUI, focusing on image handling and LoRA training." "description": "A collection of custom nodes for ComfyUI, focusing on image handling and LoRA training."
}, },
{
"author": "thedivergentai",
"title": "Divergent Nodes [WIP]",
"reference": "https://github.com/thedivergentai/divergent_nodes",
"files": [
"https://github.com/thedivergentai/divergent_nodes"
],
"install_type": "git-clone",
"description": "A ComfyUI custom node for counting CLIP tokens in text input."
},
{ {
"author": "gold24park", "author": "gold24park",
"title": "loki-comfyui-node", "title": "loki-comfyui-node",
@@ -2254,7 +2885,7 @@
"https://github.com/emranemran/ComfyUI-FasterLivePortrait" "https://github.com/emranemran/ComfyUI-FasterLivePortrait"
], ],
"install_type": "git-clone", "install_type": "git-clone",
"description": "NODES: Load FasterLivePortrait Models, FasterLivePortrait Process" "description": "Improve mouth tracking with live AI Video"
}, },
{ {
"author": "kandy", "author": "kandy",
@@ -3173,16 +3804,6 @@
"install_type": "copy", "install_type": "copy",
"description": "This platform extension provides ZhipuAI nodes, enabling you to configure a workflow for online video generation." "description": "This platform extension provides ZhipuAI nodes, enabling you to configure a workflow for online video generation."
}, },
{
"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": "NODES:SheduledCFGGuider, CosineScheduler, InvertSigmas, ConcatSigmas."
},
{ {
"author": "netanelben", "author": "netanelben",
"title": "comfyui-photobooth-customnode", "title": "comfyui-photobooth-customnode",
@@ -3555,16 +4176,6 @@
"install_type": "git-clone", "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." "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": "shinich39",
"title": "comfyui-event-handler [USAFE]",
"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": "Comfy Org", "author": "Comfy Org",
"title": "ComfyUI_devtools [WIP]", "title": "ComfyUI_devtools [WIP]",

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,280 @@
}, },
{
"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", "author": "zhuanqianfish",
"title": "TaesdDecoder [REMOVED]", "title": "TaesdDecoder [REMOVED]",

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,106 @@
{ {
"models": [ "models": [
{
"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": "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 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": "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": "<huggingface>",
"url": "lllyasviel/FramePackI2V_HY",
"size": "25.75GB"
},
{
"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)", "name": "Comfy-Org/Wan2.1 i2v 480p 14B (bf16)",
"type": "diffusion_model", "type": "diffusion_model",
@@ -590,121 +691,6 @@
"filename": "sigclip_vision_patch14_384.safetensors", "filename": "sigclip_vision_patch14_384.safetensors",
"url": "https://huggingface.co/Comfy-Org/sigclip_vision_384/resolve/main/sigclip_vision_patch14_384.safetensors", "url": "https://huggingface.co/Comfy-Org/sigclip_vision_384/resolve/main/sigclip_vision_patch14_384.safetensors",
"size": "857MB" "size": "857MB"
},
{
"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": "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/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": "pulid_flux_v0.9.1.safetensors",
"type": "PuLID",
"base": "FLUX",
"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": "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"
} }
] ]
} }

View File

@@ -1,5 +1,15 @@
{ {
"custom_nodes": [ "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", "author": "Suzie1",
"title": "Guide To Making Custom Nodes in ComfyUI", "title": "Guide To Making Custom Nodes in ComfyUI",

846
openapi.yaml Normal file
View File

@@ -0,0 +1,846 @@
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
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
/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

View File

@@ -121,11 +121,17 @@ read_config()
read_uv_mode() read_uv_mode()
check_file_logging() check_file_logging()
cm_global.pip_overrides = {'numpy': 'numpy<2'} if sys.version_info < (3, 13):
cm_global.pip_overrides = {'numpy': 'numpy<2'}
else:
cm_global.pip_overrides = {}
if os.path.exists(manager_pip_overrides_path): if os.path.exists(manager_pip_overrides_path):
with open(manager_pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file: with open(manager_pip_overrides_path, 'r', encoding="UTF-8", errors="ignore") as json_file:
cm_global.pip_overrides = json.load(json_file) cm_global.pip_overrides = json.load(json_file)
cm_global.pip_overrides['numpy'] = 'numpy<2'
if sys.version_info < (3, 13):
cm_global.pip_overrides['numpy'] = 'numpy<2'
if os.path.exists(manager_pip_blacklist_path): if os.path.exists(manager_pip_blacklist_path):
@@ -620,6 +626,7 @@ def execute_lazy_install_script(repo_path, executable):
lines = manager_util.robust_readlines(requirements_path) lines = manager_util.robust_readlines(requirements_path)
for line in lines: for line in lines:
package_name = remap_pip_package(line.strip()) package_name = remap_pip_package(line.strip())
package_name = package_name.split('#')[0].strip()
if package_name and not is_installed(package_name): if package_name and not is_installed(package_name):
if '--index-url' in package_name: if '--index-url' in package_name:
s = package_name.split('--index-url') s = package_name.split('--index-url')

View File

@@ -1,7 +1,7 @@
[project] [project]
name = "comfyui-manager" 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." description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI."
version = "3.31.12" version = "3.32.3"
license = { file = "LICENSE.txt" } license = { file = "LICENSE.txt" }
dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"] dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"]